chore: import from github.com/twx284558/ledcontrol
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQudXRpbHM7CgppbXBvcnQgYW5kcm9pZC5vcy5IYW5k
|
||||||
|
bGVyOwppbXBvcnQgYW5kcm9pZC5vcy5NZXNzYWdlOwppbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsK
|
||||||
|
CmltcG9ydCBhbmRyb2lkeC5hbm5vdGF0aW9uLk5vbk51bGw7CgppbXBvcnQgamF2YS5pby5GaWxl
|
||||||
|
OwppbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLkZpbGVPdXRw
|
||||||
|
dXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLkZpbGVXcml0ZXI7CmltcG9ydCBqYXZhLmlvLklPRXhj
|
||||||
|
ZXB0aW9uOwppbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5jb25j
|
||||||
|
dXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWU7CgpwdWJsaWMgY2xhc3MgQnl0ZVV0aWwgewogICAg
|
||||||
|
cHJpdmF0ZSBzdGF0aWMgY2hhcltdIGhleEFycmF5ID0gIjAxMjM0NTY3ODlBQkNERUYiLnRvQ2hh
|
||||||
|
ckFycmF5KCk7CiAgICAvL0RlZmF1bHQgYnl0ZQogICAgLyoqCiAgICAgKiDlrZfnrKbkuLLovazl
|
||||||
|
rZfoioLmlbDnu4QKICAgICAqCiAgICAgKiBAcGFyYW0gcyDlrZfnrKbkuLIKICAgICAqIEByZXR1
|
||||||
|
cm4g5pWw57uECiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIGhleFN0cmluZ1RvQnl0
|
||||||
|
ZUFycmF5KFN0cmluZyBzKSB7CiAgICAgICAgaWYgKHMubGVuZ3RoKCkgPCAyKSB7CiAgICAgICAg
|
||||||
|
ICAgIHMgPSAiMCIgKyBzOwogICAgICAgIH0KICAgICAgICBpbnQgbGVuID0gcy5sZW5ndGgoKTsK
|
||||||
|
ICAgICAgICBieXRlW10gZGF0YSA9IG5ldyBieXRlW2xlbiAvIDJdOwogICAgICAgIGZvciAoaW50
|
||||||
|
IGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpIHsKICAgICAgICAgICAgZGF0YVtpIC8gMl0gPSAoYnl0
|
||||||
|
ZSkgKChDaGFyYWN0ZXIuZGlnaXQocy5jaGFyQXQoaSksIDE2KSA8PCA0KSArIENoYXJhY3Rlci5k
|
||||||
|
aWdpdChzLmNoYXJBdChpICsgMSksIDE2KSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRh
|
||||||
|
OwogICAgfQoKICAgIC8qKgogICAgICog5a2X6IqC5pWw57uE6L2s5a2X56ym5LiyCiAgICAgKgog
|
||||||
|
ICAgICogQHBhcmFtIGhleEJ5dGVzIOaVsOe7hAogICAgICogQHJldHVybiDlrZfnrKbkuLIKICAg
|
||||||
|
ICAqLwogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4Qnl0ZXNUb1N0cmluZyhieXRlW10gaGV4
|
||||||
|
Qnl0ZXMpIHsKICAgICAgICBjaGFyW10gaGV4Q2hhcnMgPSBuZXcgY2hhcltoZXhCeXRlcy5sZW5n
|
||||||
|
dGggKiAyXTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGhleEJ5dGVzLmxlbmd0aDsgaisr
|
||||||
|
KSB7CiAgICAgICAgICAgIGludCB2ID0gaGV4Qnl0ZXNbal0gJiAweEZGOwogICAgICAgICAgICBo
|
||||||
|
ZXhDaGFyc1tqICogMl0gPSBoZXhBcnJheVt2ID4+PiA0XTsKICAgICAgICAgICAgaGV4Q2hhcnNb
|
||||||
|
aiAqIDIgKyAxXSA9IGhleEFycmF5W3YgJiAweDBGXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJu
|
||||||
|
IG5ldyBTdHJpbmcoaGV4Q2hhcnMpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGhleFN0
|
||||||
|
cmluZ1RvSW50KFN0cmluZyBoZXhTdHJpbmcpIHsKICAgICAgICByZXR1cm4gSW50ZWdlci5wYXJz
|
||||||
|
ZUludChoZXhTdHJpbmcsIDE2KTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBoZXhT
|
||||||
|
dHJpbmdUb0J5dGVzKFN0cmluZyBoZXhTdHJpbmcpIHsKICAgICAgICBpZiAoaGV4U3RyaW5nID09
|
||||||
|
IG51bGwgfHwgaGV4U3RyaW5nLmVxdWFscygiIikpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7
|
||||||
|
CiAgICAgICAgfQogICAgICAgIGhleFN0cmluZyA9IGhleFN0cmluZy50b1VwcGVyQ2FzZSgpOwog
|
||||||
|
ICAgICAgIGludCBsZW5ndGggPSBoZXhTdHJpbmcubGVuZ3RoKCkgLyAyOwogICAgICAgIGNoYXJb
|
||||||
|
XSBoZXhDaGFycyA9IGhleFN0cmluZy50b0NoYXJBcnJheSgpOwogICAgICAgIGJ5dGVbXSBkID0g
|
||||||
|
bmV3IGJ5dGVbbGVuZ3RoXTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
|
||||||
|
KSB7CiAgICAgICAgICAgIGludCBwb3MgPSBpICogMjsKICAgICAgICAgICAgZFtpXSA9IChieXRl
|
||||||
|
KSAoY2hhclRvQnl0ZShoZXhDaGFyc1twb3NdKSA8PCA0IHwgY2hhclRvQnl0ZShoZXhDaGFyc1tw
|
||||||
|
b3MgKyAxXSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZDsKICAgIH0KCiAgICBwdWJsaWMg
|
||||||
|
c3RhdGljIGJ5dGUgY2hhclRvQnl0ZShjaGFyIGMpIHsKICAgICAgICByZXR1cm4gKGJ5dGUpICIw
|
||||||
|
MTIzNDU2Nzg5QUJDREVGIi5pbmRleE9mKGMpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgYnl0
|
||||||
|
ZVtdIGludFRvQnl0ZUFycmF5KGludCBhKSB7CiAgICAgICAgYnl0ZVtdIHJldCA9IG5ldyBieXRl
|
||||||
|
WzRdOwogICAgICAgIHJldFszXSA9IChieXRlKSAoYSAmIDB4RkYpOwogICAgICAgIHJldFsyXSA9
|
||||||
|
IChieXRlKSAoKGEgPj4gOCkgJiAweEZGKTsKICAgICAgICByZXRbMV0gPSAoYnl0ZSkgKChhID4+
|
||||||
|
IDE2KSAmIDB4RkYpOwogICAgICAgIHJldFswXSA9IChieXRlKSAoKGEgPj4gMjQpICYgMHhGRik7
|
||||||
|
CiAgICAgICAgcmV0dXJuIHJldDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0hl
|
||||||
|
eChieXRlW10gYnl0ZXMsIGludCBvZmZzZXQsIGludCBsZW5ndGgpIHsKICAgICAgICBjaGFyW10g
|
||||||
|
aGV4Q2hhcnMgPSBuZXcgY2hhcltsZW5ndGggKiAyXTsKICAgICAgICBTdHJpbmdCdWlsZGVyIHN0
|
||||||
|
cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwogICAgICAgIGZvciAoaW50IGogPSBv
|
||||||
|
ZmZzZXQ7IGogPCBsZW5ndGggKyBvZmZzZXQ7IGorKykgewogICAgICAgICAgICBpbnQgdiA9IGJ5
|
||||||
|
dGVzW2pdICYgMHhGRjsKICAgICAgICAgICAgaGV4Q2hhcnNbKGogLSBvZmZzZXQpICogMl0gPSBo
|
||||||
|
ZXhBcnJheVt2ID4+PiA0XTsKICAgICAgICAgICAgaGV4Q2hhcnNbKGogLSBvZmZzZXQpICogMiAr
|
||||||
|
IDFdID0gaGV4QXJyYXlbdiAmIDB4MEZdOwogICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
|
||||||
|
ZChoZXhBcnJheVt2ID4+PiA0XSk7CiAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGhl
|
||||||
|
eEFycmF5W3YgJiAweDBGXSk7CiAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCJcdCIp
|
||||||
|
OwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhoZXhDaGFycyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9IZXgoYnl0ZVtdIGJ5dGVzKSB7CiAgICAgICAgcmV0dXJuIHRvSGV4KGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvSGV4KGludCBhQnl0ZSkgewogICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KCIweCUwMlgiLCBhQnl0ZSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYnl0ZXNUb0hleFdpdGhTcGFjZShieXRlW10gYnl0ZXMpIHsKICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKICAgICAgICBmb3IgKGJ5dGUgYiA6IGJ5dGVzKSB7IHNiLmFwcGVuZChTdHJpbmcuZm9ybWF0KCIlMDJYIiwgYikpOyB9CiAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYnl0ZXNUb0hleFdpdGhTcGFjZShieXRlIGIpIHsKICAgICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdCgiJTAyWCAiLCBiKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBieXRlc1RvSGV4V2l0aE5ld0xpbmUoYnl0ZVtdIGJ5dGVzKSB7CiAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgICAgZm9yIChieXRlIGIgOiBieXRlcykgeyBzYi5hcHBlbmQoU3RyaW5nLmZvcm1hdCgiJTAyWCIsIGIpKS5hcHBlbmQoIlxuIik7IH0KICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGJ5dGUgdG9CeXRlKEludGVnZXIgYnl0ZUludGVnZXIsIGludCBkZWZhdWx0Qnl0ZSkgewogICAgICAgIHJldHVybiBieXRlSW50ZWdlciA9PSBudWxsID8gKGJ5dGUpIGRlZmF1bHRCeXRlIDogYnl0ZUludGVnZXIuYnl0ZVZhbHVlKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBieXRlIHRvQnl0ZShTdHJpbmcgZmlsZU5hbWUsIGludCBkZWZhdWx0Qnl0ZSkgewogICAgICAgIGlmIChmaWxlTmFtZS5pc0VtcHR5KCkpIHsgcmV0dXJuIChieXRlKSBkZWZhdWx0Qnl0ZTsgfQogICAgICAgIHJldHVybiBCeXRlLnBhcnNlQnl0ZShmaWxlTmFtZSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBBcnJheUxpc3Q8QXJyYXlMaXN0PFN0cmluZz4+IGNhY2hlUmVzdWx0ID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciByZWFkUiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKICAgIHB1YmxpYyBzdGF0aWMgTGlua2VkQmxvY2tpbmdRdWV1ZTxBcnJheUxpc3Q8U3RyaW5nPj4gdW5ib3VuZGVkUXVldWUgPSBuZXcgTGlua2VkQmxvY2tpbmdRdWV1ZTw+KCk7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIHJlYWRCaW5hcnlGaWxlKFN0cmluZyBmaWxlUGF0aCkgewogICAgICAgIHJlYWRSID0gbmV3IFN0cmluZ0J1ZmZlcigpOwogICAgICAgIGNhY2hlUmVzdWx0LmNsZWFyKCk7CiAgICAgICAgdW5ib3VuZGVkUXVldWUuY2xlYXIoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShmaWxlUGF0aCk7CiAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOwogICAgICAgICAgICBsb25nIGxlbmd0aCA9IGZpbGUubGVuZ3RoKCk7CiAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlWyhpbnQpIGxlbmd0aF07CiAgICAgICAgICAgIGZpcy5yZWFkKGJ5dGVzKTsKICAgICAgICAgICAgZmlzLmNsb3NlKCk7CiAgICAgICAgICAgIGludCBwYXJ0U2l6ZSA9IGJ5dGVzLmxlbmd0aCAvIDEwMjQgLSAxOwogICAgICAgICAgICBpbnQgdG90YWxTaXplID0gMDsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXJ0U2l6ZTsgaSsrKSB7CiAgICAgICAgICAgICAgICBieXRlW10gbmV3QXJyYXkgPSBuZXcgYnl0ZVsxMDI0XTsKICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZXMsIGkgKiAxMDI0LCBuZXdBcnJheSwgMCwgMTAyNCk7CiAgICAgICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiB0ZW0gPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICAgICAgICAgIGZvciAoYnl0ZSBiIDogbmV3QXJyYXkpIHsgdGVtLmFkZChTdHJpbmcuZm9ybWF0KCIlMDJYIiwgYikpOyB9CiAgICAgICAgICAgICAgICBjYWNoZVJlc3VsdC5hZGQodGVtKTsKICAgICAgICAgICAgICAgIHVuYm91bmRlZFF1ZXVlLmFkZCh0ZW0pOwogICAgICAgICAgICAgICAgdG90YWxTaXplICs9IG5ld0FycmF5Lmxlbmd0aDsKICAgICAgICAgICAgfQogICAgICAgICAgICBieXRlW10gbGFzdEFycmF5ID0gbmV3IGJ5dGVbMTAyNF07CiAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZXMsIHBhcnRTaXplICogMTAyNCwgbGFzdEFycmF5LCAwLCBieXRlcy5sZW5ndGggLSBwYXJ0U2l6ZSAqIDEwMjQpOwogICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiB0ZW0gPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICAgICAgZm9yIChieXRlIGIgOiBsYXN0QXJyYXkpIHsgdGVtLmFkZChTdHJpbmcuZm9ybWF0KCIlMDJYIiwgYikpOyB9CiAgICAgICAgICAgIGNhY2hlUmVzdWx0LmFkZCh0ZW0pOwogICAgICAgICAgICB1bmJvdW5kZWRRdWV1ZS5hZGQodGVtKTsKICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZVN0cmluZ1RvRmlsZShieXRlW10gY29udGVudCwgU3RyaW5nIGZpbGVQYXRoKSB7CiAgICAgICAgdHJ5IChGaWxlT3V0cHV0U3RyZWFtIGZvcyA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVQYXRoKSkgewogICAgICAgICAgICBmb3Mud3JpdGUoY29udGVudCk7CiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0KICAgIH0KfQo=
|
||||||
Reference in New Issue
Block a user