mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(app-proxy): remove canary time freeze (#1554)
This commit is contained in:
@@ -5,7 +5,6 @@ use base64::Engine;
|
||||
use std::sync::LazyLock;
|
||||
|
||||
const STABLE_SNAPSHOT_SHA: &str = "3250c73cbf94e97e8b9ca5a0ecb03c20bdde3867";
|
||||
const CANARY_SNAPSHOT_SHA: &str = "2026.605.11941";
|
||||
|
||||
const STABLE_INDEX_HTML: &str = "\
|
||||
PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0bGU+Rmx1eGVyPC90\
|
||||
@@ -304,312 +303,6 @@ eyJzaGEiOiIzMjUwYzczY2JmOTRlOTdlOGI5Y2E1YTBlY2IwM2MyMGJkZGUzODY3IiwiYnVpbGROdW1i
|
||||
aW1lc3RhbXAiOiIxNzgwNzgxMTY4In0=\
|
||||
";
|
||||
|
||||
const CANARY_INDEX_HTML: &str = "\
|
||||
PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0bGU+Rmx1eGVyPC90aXRsZT48bWV0YSBuYW1l\
|
||||
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSx2aWV3cG9ydC1maXQ9Y292ZXIsaW50ZXJhY3RpdmUtd2lk\
|
||||
Z2V0PXJlc2l6ZXMtY29udGVudCxtYXhpbXVtLXNjYWxlPTEsdXNlci1zY2FsYWJsZT1ubyI+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkZs\
|
||||
dXhlciBpcyBhIGZyZWUgYW5kIG9wZW4gc291cmNlIGluc3RhbnQgbWVzc2FnaW5nIGFuZCBWb0lQIGNoYXQgYXBwIGJ1aWx0IGZvciBmcmllbmRzLCBncm91\
|
||||
cHMsIGFuZCBjb21tdW5pdGllcy4iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0ie3tTVEFUSUNfQ0ROX0VORFBPSU5UfX0iPjxsaW5rIHJlbD0ic3R5\
|
||||
bGVzaGVldCIgaHJlZj0ie3tTVEFUSUNfQ0ROX0VORFBPSU5UfX0vZm9udHMvaWJtLXBsZXguY3NzIj48bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvbWFu\
|
||||
aWZlc3QuanNvbiI+PGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0ie3tTVEFUSUNfQ0ROX0VORFBPSU5UfX0v\
|
||||
d2ViL2Zhdmljb24tMzJ4MzIucG5nIj48bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSJ7e1NUQVRJQ19DRE5fRU5E\
|
||||
UE9JTlR9fS93ZWIvYXBwbGUtdG91Y2gtaWNvbi5wbmciPjxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+\
|
||||
PG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZSIgY29udGVudD0iZGVmYXVsdCI+PG1ldGEgbmFtZT0iYXBwbGUtbW9i\
|
||||
aWxlLXdlYi1hcHAtdGl0bGUiIGNvbnRlbnQ9IkZsdXhlciI+PG1ldGEgbmFtZT0ibW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj48bWV0\
|
||||
YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIzQ2NDFEOSI+PG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1uYXZidXR0b24tY29sb3IiIGNvbnRlbnQ9\
|
||||
IiM0NjQxRDkiPjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjNDY0MUQ5Ij48bWV0YSBuYW1lPSJmb3JtYXQtZGV0ZWN0\
|
||||
aW9uIiBjb250ZW50PSJ0ZWxlcGhvbmU9bm8iPjxtZXRhIG5hbWU9ImRpc3BsYXkiIGNvbnRlbnQ9InN0YW5kYWxvbmUiPjxzY3JpcHQgbm9uY2U9Int7Q1NQ\
|
||||
X05PTkNFX1BMQUNFSE9MREVSfX0iPiFmdW5jdGlvbigpe3RyeXt2YXIgZT13aW5kb3cubG9jYXRpb247aWYoIi8iPT09ZS5wYXRobmFtZSl7dmFyIGE9Ii9j\
|
||||
aGFubmVscy9AbWUiO2Uuc2VhcmNoJiYoYSs9ZS5zZWFyY2gpLGUuaGFzaCYmKGErPWUuaGFzaCksZS5yZXBsYWNlKGEpfX1jYXRjaChlKXt9fSgpLGZ1bmN0\
|
||||
aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ0aGVtZSIpO2UmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0\
|
||||
aGVtZS0iK2UpfWNhdGNoe319KCk8L3NjcmlwdD48bGluayBocmVmPSJodHRwczovL2ZsdXhlcnN0YXRpYy5jb20vYXNzZXRzL2JiZjQxNDA1ZDkyZTI3MjYu\
|
||||
Y3NzIiByZWw9InN0eWxlc2hlZXQiPjwvaGVhZD48Ym9keT48ZGl2IGlkPSJyb290Ij48L2Rpdj4KPG5vc2NyaXB0PkphdmFTY3JpcHQgaXMgcmVxdWlyZWQg\
|
||||
dG8gdXNlIHRoaXMgYXBwbGljYXRpb24uPC9ub3NjcmlwdD4KCgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mbHV4ZXJzdGF0aWMuY29tL2Fzc2V0cy9kODI1ZDc0\
|
||||
Y2I3NGVjMjc3LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2ZsdXhlcnN0YXRpYy5jb20vYXNzZXRzLzNhYzFlYmYx\
|
||||
YjY1ZTBhYjMuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vZmx1eGVyc3RhdGljLmNvbS9hc3NldHMvZTE5NGM4MTEx\
|
||||
NzNmMDhhNy5qcyIgdHlwZT0ibW9kdWxlIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9mbHV4ZXJzdGF0aWMuY29tL2Fzc2V0cy9lYTUyM2JkOWM4\
|
||||
NjBkZjI1LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2ZsdXhlcnN0YXRpYy5jb20vYXNzZXRzLzVhYjdjNzdiM2I5\
|
||||
NzI3ODYuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vZmx1eGVyc3RhdGljLmNvbS9hc3NldHMvM2E4NjFhMjYzM2Q4\
|
||||
NzM2My5qcyIgdHlwZT0ibW9kdWxlIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9mbHV4ZXJzdGF0aWMuY29tL2Fzc2V0cy84NjY3MzIxZDM3OWQ3\
|
||||
NGZmLmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2ZsdXhlcnN0YXRpYy5jb20vYXNzZXRzLzZiODVkYTIyNjRiZmI5\
|
||||
ODAuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vZmx1eGVyc3RhdGljLmNvbS9hc3NldHMvYjU4MDVjYTAzZTJmYzI4\
|
||||
Ni5qcyIgdHlwZT0ibW9kdWxlIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9mbHV4ZXJzdGF0aWMuY29tL2Fzc2V0cy80NzRiODYwYjA1ZjJlZThm\
|
||||
LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2ZsdXhlcnN0YXRpYy5jb20vYXNzZXRzL2I3MWM5MjhjMWZiMGZlNzYu\
|
||||
anMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vZmx1eGVyc3RhdGljLmNvbS9hc3NldHMvYjI1MDgxOWM4NDZhZGVmZS5q\
|
||||
cyIgdHlwZT0ibW9kdWxlIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9mbHV4ZXJzdGF0aWMuY29tL2Fzc2V0cy9hN2U1MjQ1ZTFjNDc4MmJkLmpz\
|
||||
IiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2ZsdXhlcnN0YXRpYy5jb20vYXNzZXRzLzZiZWJjYTI2NjBlNDdmZmQuanMi\
|
||||
IHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vZmx1eGVyc3RhdGljLmNvbS9hc3NldHMvNzk5Yjc3Y2Y0MjJkNjRiMS5qcyIg\
|
||||
dHlwZT0ibW9kdWxlIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9mbHV4ZXJzdGF0aWMuY29tL2Fzc2V0cy80MjZmMDA2NDY2ZTc2Mzc5LmpzIiB0\
|
||||
eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjwvYm9keT48L2h0bWw+\
|
||||
";
|
||||
const CANARY_SW_JS: &str = "\
|
||||
InVzZSBzdHJpY3QiOwooKCkgPT4gewogIC8vIDxkZWZpbmU6X19GTFVYRVJfUFJFQ0FDSEVfTUFOSUZFU1RfXz4KICB2YXIgZGVmaW5lX0ZMVVhFUl9QUkVD\
|
||||
QUNIRV9NQU5JRkVTVF9kZWZhdWx0ID0gW3sgdXJsOiAiL2luZGV4Lmh0bWwiLCByZXZpc2lvbjogIjMxODY6MTc4MDYyMjQ5MTM2MSIgfSwgeyB1cmw6ICIv\
|
||||
IiwgcmV2aXNpb246ICIzMTg2OjE3ODA2MjI0OTEzNjEiIH0sIHsgdXJsOiAiL21hbmlmZXN0Lmpzb24iLCByZXZpc2lvbjogIjExNTA6MTc4MDYyMjQ5MTM1\
|
||||
NyIgfSwgeyB1cmw6ICIvYnJvd3NlcmNvbmZpZy54bWwiLCByZXZpc2lvbjogIjI0ODoxNzgwNjIyNDkxMjkzIiB9LCB7IHVybDogIi9yb2JvdHMudHh0Iiwg\
|
||||
cmV2aXNpb246ICIyMzoxNzgwNjIyNDkxNDc3IiB9LCB7IHVybDogIi92ZXJzaW9uLmpzb24iLCByZXZpc2lvbjogIjI4OjE3ODA2MjI0OTE1NjEiIH1dOwoK\
|
||||
ICAvLyBzcmMvZmVhdHVyZXMvYXBwL2NvbmZpZy9Qcm9kdWN0Q29uc3RhbnRzLnRzCiAgdmFyIFBST0RVQ1RfTkFNRSA9ICJGbHV4ZXIiOwoKICAvLyBzcmMv\
|
||||
ZmVhdHVyZXMvcGxhdGZvcm0vbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25BbGVydE9wdGlvbnMudHMKICB2YXIgTk9USUZJQ0FUSU9OX1ZJQlJBVElPTl9Q\
|
||||
QVRURVJOID0gWzIwMCwgMTAwLCAyMDBdOwogIGZ1bmN0aW9uIGlzSU9TTW9iaWxlT3JUYWJsZXRVc2VyQWdlbnQodXNlckFnZW50LCBtYXhUb3VjaFBvaW50\
|
||||
cyA9IDApIHsKICAgIHJldHVybiAvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QodXNlckFnZW50KSB8fCAvTWFjaW50b3NoL2kudGVzdCh1c2VyQWdlbnQpICYm\
|
||||
IG1heFRvdWNoUG9pbnRzID4gMTsKICB9CiAgZnVuY3Rpb24gaXNNb2JpbGVPclRhYmxldFVzZXJBZ2VudCh1c2VyQWdlbnQsIG1heFRvdWNoUG9pbnRzID0g\
|
||||
MCkgewogICAgcmV0dXJuIC9BbmRyb2lkL2kudGVzdCh1c2VyQWdlbnQpIHx8IGlzSU9TTW9iaWxlT3JUYWJsZXRVc2VyQWdlbnQodXNlckFnZW50LCBtYXhU\
|
||||
b3VjaFBvaW50cyk7CiAgfQogIGZ1bmN0aW9uIGdldE5vdGlmaWNhdGlvbkFsZXJ0T3B0aW9ucyh7CiAgICBtb2JpbGVPclRhYmxldCwKICAgIHNpbGVudE9u\
|
||||
Tm9uTW9iaWxlCiAgfSkgewogICAgaWYgKG1vYmlsZU9yVGFibGV0KSB7CiAgICAgIHJldHVybiB7IHZpYnJhdGU6IFsuLi5OT1RJRklDQVRJT05fVklCUkFU\
|
||||
SU9OX1BBVFRFUk5dIH07CiAgICB9CiAgICBpZiAoc2lsZW50T25Ob25Nb2JpbGUpIHsKICAgICAgcmV0dXJuIHsgc2lsZW50OiB0cnVlIH07CiAgICB9CiAg\
|
||||
ICByZXR1cm4ge307CiAgfQoKICAvLyBzcmMvZmVhdHVyZXMvcGxhdGZvcm0vc2VydmljZV93b3JrZXIvV29ya2VyQ2FjaGVDbGVhbnVwLnRzCiAgdmFyIFdP\
|
||||
UktFUl9DQUNIRV9QUkVGSVggPSAiZmx1eGVyIjsKICB2YXIgTEVHQUNZX0VYUFJFU1NJT05fQVNTRVRfQ0FDSEVfUFJFRklYID0gYCR7V09SS0VSX0NBQ0hF\
|
||||
X1BSRUZJWH0tZXhwcmVzc2lvbi1hc3NldHNgOwogIGZ1bmN0aW9uIGlzTGVnYWN5RXhwcmVzc2lvbkFzc2V0Q2FjaGVOYW1lKGNhY2hlTmFtZSkgewogICAg\
|
||||
cmV0dXJuIGNhY2hlTmFtZSA9PT0gTEVHQUNZX0VYUFJFU1NJT05fQVNTRVRfQ0FDSEVfUFJFRklYIHx8IGNhY2hlTmFtZS5zdGFydHNXaXRoKGAke0xFR0FD\
|
||||
WV9FWFBSRVNTSU9OX0FTU0VUX0NBQ0hFX1BSRUZJWH0tYCk7CiAgfQogIGZ1bmN0aW9uIHNob3VsZERlbGV0ZVdvcmtlckNhY2hlKGNhY2hlTmFtZSwgZXhw\
|
||||
ZWN0ZWRDYWNoZXMpIHsKICAgIGlmIChpc0xlZ2FjeUV4cHJlc3Npb25Bc3NldENhY2hlTmFtZShjYWNoZU5hbWUpKSB7CiAgICAgIHJldHVybiB0cnVlOwog\
|
||||
ICAgfQogICAgaWYgKCFjYWNoZU5hbWUuc3RhcnRzV2l0aChgJHtXT1JLRVJfQ0FDSEVfUFJFRklYfS1gKSB8fCBleHBlY3RlZENhY2hlcy5oYXMoY2FjaGVO\
|
||||
YW1lKSkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBpZiAoY2FjaGVOYW1lLnN0YXJ0c1dpdGgoYCR7V09SS0VSX0NBQ0hFX1BSRUZJWH0tYXNz\
|
||||
ZXRzLWApKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0KCiAgLy8gc3JjL2ZlYXR1cmVzL3BsYXRmb3JtL3NlcnZp\
|
||||
Y2Vfd29ya2VyL1dvcmtlck5hdmlnYXRpb24udHMKICB2YXIgQVBQX05BVklHQVRJT05fRVhBQ1RfUEFUSFMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChb\
|
||||
CiAgICAiLyIsCiAgICAiL2xvZ2luIiwKICAgICIvcmVnaXN0ZXIiLAogICAgIi9mb3Jnb3QiLAogICAgIi9yZXNldCIsCiAgICAiL3ZlcmlmeSIsCiAgICAi\
|
||||
L2F1dGhvcml6ZS1pcCIsCiAgICAiL3dhc250bWUiLAogICAgIi9wZW5kaW5nIiwKICAgICIvb2F1dGgyL2F1dGhvcml6ZSIsCiAgICAiL2F1dGgvc3NvL2Nh\
|
||||
bGxiYWNrIiwKICAgICIvYm9va21hcmtzIiwKICAgICIvbWVudGlvbnMiLAogICAgIi9ub3RpZmljYXRpb25zIiwKICAgICIveW91IiwKICAgICIvcmVwb3J0\
|
||||
IiwKICAgICIvcHJlbWl1bS1jYWxsYmFjayIsCiAgICAiL2FnZS12ZXJpZmljYXRpb24tY2FsbGJhY2siLAogICAgIi9jb25uZWN0aW9uLWNhbGxiYWNrIiwK\
|
||||
ICAgICIvdGhlbWUtc3R1ZGlvIiwKICAgICIvX19ub3Rmb3VuZCIsCiAgICAiL2ludml0ZSIsCiAgICAiL2dpZnQiLAogICAgIi90aGVtZSIKICBdKTsKICB2\
|
||||
YXIgQVBQX05BVklHQVRJT05fUFJFRklYRVMgPSBbIi9jaGFubmVscy8iLCAiL3VzZXJzLyIsICIvaW52aXRlLyIsICIvZ2lmdC8iLCAiL3RoZW1lLyJdOwog\
|
||||
IGZ1bmN0aW9uIGlzQXBwTmF2aWdhdGlvblBhdGgocGF0aG5hbWUpIHsKICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRobmFtZSA9IHBhdGhuYW1lLmxlbmd0aCA+\
|
||||
IDEgPyBwYXRobmFtZS5yZXBsYWNlKC9cLyskLywgIiIpIDogcGF0aG5hbWU7CiAgICBpZiAoQVBQX05BVklHQVRJT05fRVhBQ1RfUEFUSFMuaGFzKG5vcm1h\
|
||||
bGl6ZWRQYXRobmFtZSkpIHsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gQVBQX05BVklHQVRJT05fUFJFRklYRVMuc29tZSgocHJlZml4\
|
||||
KSA9PiBub3JtYWxpemVkUGF0aG5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKTsKICB9CgogIC8vIHNyYy9mZWF0dXJlcy9wbGF0Zm9ybS9zZXJ2aWNlX3dvcmtl\
|
||||
ci9Xb3JrZXJGZXRjaFJvdXRpbmcudHMKICBmdW5jdGlvbiBpc05hdmlnYXRpb25SZXF1ZXN0KHJlcXVlc3QpIHsKICAgIGlmIChyZXF1ZXN0Lm1vZGUgPT09\
|
||||
ICJuYXZpZ2F0ZSIpIHJldHVybiB0cnVlOwogICAgY29uc3QgYWNjZXB0ID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiYWNjZXB0IikgPz8gIiI7CiAgICByZXR1\
|
||||
cm4gcmVxdWVzdC5kZXN0aW5hdGlvbiA9PT0gImRvY3VtZW50IiB8fCBhY2NlcHQuaW5jbHVkZXMoInRleHQvaHRtbCIpOwogIH0KICBmdW5jdGlvbiBnZXRX\
|
||||
b3JrZXJGZXRjaFJvdXRlKHJlcXVlc3QsIHdvcmtlck9yaWdpbikgewogICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAiR0VUIikgewogICAgICByZXR1cm4g\
|
||||
Imlnbm9yZSI7CiAgICB9CiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTsKICAgIGlmICh1cmwub3JpZ2luICE9PSB3b3JrZXJPcmlnaW4p\
|
||||
IHsKICAgICAgcmV0dXJuICJpZ25vcmUiOwogICAgfQogICAgaWYgKGlzTmF2aWdhdGlvblJlcXVlc3QocmVxdWVzdCkpIHsKICAgICAgcmV0dXJuIGlzQXBw\
|
||||
TmF2aWdhdGlvblBhdGgodXJsLnBhdGhuYW1lKSA/ICJuYXZpZ2F0aW9uIiA6ICJpZ25vcmUiOwogICAgfQogICAgaWYgKHVybC5wYXRobmFtZS5zdGFydHNX\
|
||||
aXRoKCIvYXNzZXRzLyIpKSB7CiAgICAgIHJldHVybiAic3RhdGljLWFzc2V0IjsKICAgIH0KICAgIGlmICh1cmwucGF0aG5hbWUgPT09ICIvbWFuaWZlc3Qu\
|
||||
anNvbiIgfHwgdXJsLnBhdGhuYW1lID09PSAiL3ZlcnNpb24uanNvbiIpIHsKICAgICAgcmV0dXJuICJtZXRhZGF0YSI7CiAgICB9CiAgICByZXR1cm4gImln\
|
||||
bm9yZSI7CiAgfQoKICAvLyBzcmMvZmVhdHVyZXMvcGxhdGZvcm0vc2VydmljZV93b3JrZXIvV29ya2VyUHVzaFBheWxvYWQudHMKICB2YXIgbm9ybWFsaXpl\
|
||||
UHVzaFBheWxvYWQgPSAocmF3KSA9PiB7CiAgICBjb25zdCBwYXlsb2FkID0gcmF3ID8/IHt9OwogICAgaWYgKHBheWxvYWQud2ViX3B1c2ggPT09IDgwMzAg\
|
||||
JiYgcGF5bG9hZC5ub3RpZmljYXRpb24gJiYgdHlwZW9mIHBheWxvYWQubm90aWZpY2F0aW9uID09PSAib2JqZWN0IikgewogICAgICBjb25zdCBpbm5lciA9\
|
||||
IHBheWxvYWQubm90aWZpY2F0aW9uOwogICAgICBjb25zdCBuYXZpZ2F0ZVVybCA9IGlubmVyLm5hdmlnYXRlOwogICAgICBjb25zdCBkYXRhID0geyAuLi5p\
|
||||
bm5lci5kYXRhID8/IHt9IH07CiAgICAgIGlmICh0eXBlb2YgbmF2aWdhdGVVcmwgPT09ICJzdHJpbmciICYmICFkYXRhLnVybCkgZGF0YS51cmwgPSBuYXZp\
|
||||
Z2F0ZVVybDsKICAgICAgcmV0dXJuIHsgLi4uaW5uZXIsIGRhdGEgfTsKICAgIH0KICAgIHJldHVybiBwYXlsb2FkOwogIH07CiAgdmFyIGdldEJhZGdlQ291\
|
||||
bnQgPSAocGF5bG9hZCkgPT4gewogICAgY29uc3QgYmFkZ2VWYWx1ZSA9IHBheWxvYWQuZGF0YT8uYmFkZ2VfY291bnQ7CiAgICBpZiAodHlwZW9mIGJhZGdl\
|
||||
VmFsdWUgPT09ICJudW1iZXIiICYmIE51bWJlci5pc0Zpbml0ZShiYWRnZVZhbHVlKSkgewogICAgICByZXR1cm4gYmFkZ2VWYWx1ZTsKICAgIH0KICAgIGlm\
|
||||
ICh0eXBlb2YgYmFkZ2VWYWx1ZSA9PT0gInN0cmluZyIgJiYgYmFkZ2VWYWx1ZS5sZW5ndGggPiAwKSB7CiAgICAgIGNvbnN0IHBhcnNlZCA9IE51bWJlcihi\
|
||||
YWRnZVZhbHVlKTsKICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbDsKICAgIH0KICAgIHJldHVybiBudWxsOwog\
|
||||
IH07CiAgdmFyIHJlc29sdmVQdXNoTm90aWZpY2F0aW9uVGFnID0gKHBheWxvYWQpID0+IHsKICAgIGNvbnN0IGV4cGxpY2l0VGFnID0gcGF5bG9hZC50YWcg\
|
||||
Pz8gcGF5bG9hZC5kYXRhPy5ub3RpZmljYXRpb25fdGFnID8/IHBheWxvYWQuZGF0YT8udGFnOwogICAgaWYgKHR5cGVvZiBleHBsaWNpdFRhZyA9PT0gInN0\
|
||||
cmluZyIgJiYgZXhwbGljaXRUYWcubGVuZ3RoID4gMCkgewogICAgICByZXR1cm4gZXhwbGljaXRUYWc7CiAgICB9CiAgICBjb25zdCBjaGFubmVsSWQgPSBw\
|
||||
YXlsb2FkLmRhdGE/LmNoYW5uZWxfaWQ7CiAgICBpZiAodHlwZW9mIGNoYW5uZWxJZCA9PT0gInN0cmluZyIgJiYgY2hhbm5lbElkLmxlbmd0aCA+IDApIHsK\
|
||||
ICAgICAgcmV0dXJuIGBjaGFubmVsOiR7Y2hhbm5lbElkfWA7CiAgICB9CiAgICByZXR1cm4gdm9pZCAwOwogIH07CiAgdmFyIGdldFB1c2hOb3RpZmljYXRp\
|
||||
b25DbGllbnRTdGF0ZSA9IChjbGllbnRzKSA9PiAoewogICAgaGFzV2luZG93Q2xpZW50OiBjbGllbnRzLmxlbmd0aCA+IDAsCiAgICBoYXNWaXNpYmxlQ2xp\
|
||||
ZW50OiBjbGllbnRzLnNvbWUoKGNsaWVudCkgPT4gY2xpZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gInZpc2libGUiKQogIH0pOwogIHZhciBzaG91bGRTaWxl\
|
||||
bmNlTm9uTW9iaWxlUHVzaE5vdGlmaWNhdGlvbiA9IChjbGllbnRTdGF0ZSkgPT4gY2xpZW50U3RhdGUuaGFzV2luZG93Q2xpZW50OwogIHZhciBpc05vdGlm\
|
||||
aWNhdGlvbkNsZWFyUGF5bG9hZCA9IChwYXlsb2FkKSA9PiB7CiAgICBjb25zdCByZWNvcmQgPSBwYXlsb2FkOwogICAgY29uc3QgZGF0YSA9IHBheWxvYWQu\
|
||||
ZGF0YSA/PyB7fTsKICAgIHJldHVybiByZWNvcmQudHlwZSA9PT0gIm5vdGlmaWNhdGlvbl9jbGVhciIgfHwgcmVjb3JkLmFjdGlvbiA9PT0gImNsZWFyX2No\
|
||||
YW5uZWwiIHx8IGRhdGEudHlwZSA9PT0gIm5vdGlmaWNhdGlvbl9jbGVhciIgfHwgZGF0YS5hY3Rpb24gPT09ICJjbGVhcl9jaGFubmVsIiB8fCBwYXlsb2Fk\
|
||||
Lm5vdGlmaWNhdGlvbj8uZGF0YT8udHlwZSA9PT0gIm5vdGlmaWNhdGlvbl9jbGVhciIgfHwgcGF5bG9hZC5ub3RpZmljYXRpb24/LmRhdGE/LmFjdGlvbiA9\
|
||||
PT0gImNsZWFyX2NoYW5uZWwiOwogIH07CgogIC8vIHNyYy9mZWF0dXJlcy9wbGF0Zm9ybS9zZXJ2aWNlX3dvcmtlci9Xb3JrZXIudHMKICB2YXIgd29ya2Vy\
|
||||
TmF2aWdhdG9yID0gc2VsZi5uYXZpZ2F0b3I7CiAgdmFyIGVuc3VyZVNlcnZpY2VXb3JrZXJSZWFkeSA9IFByb21pc2UucmVzb2x2ZSgpOwogIHZhciBTRVJW\
|
||||
SUNFX1dPUktFUl9WRVJTSU9OID0gdHJ1ZSA/ICIxNzgwNjIyNDkyMjcxIiA6ICJkZXYiOwogIHZhciBQUkVDQUNIRV9NQU5JRkVTVCA9IHR5cGVvZiBkZWZp\
|
||||
bmVfRkxVWEVSX1BSRUNBQ0hFX01BTklGRVNUX2RlZmF1bHQgPT09ICJ1bmRlZmluZWQiID8gW10gOiBkZWZpbmVfRkxVWEVSX1BSRUNBQ0hFX01BTklGRVNU\
|
||||
X2RlZmF1bHQ7CiAgdmFyIFBSRUNBQ0hFX0NBQ0hFID0gYCR7V09SS0VSX0NBQ0hFX1BSRUZJWH0tcHJlY2FjaGUtJHtTRVJWSUNFX1dPUktFUl9WRVJTSU9O\
|
||||
fWA7CiAgdmFyIEFTU0VUX0NBQ0hFID0gYCR7V09SS0VSX0NBQ0hFX1BSRUZJWH0tYXNzZXRzLSR7U0VSVklDRV9XT1JLRVJfVkVSU0lPTn1gOwogIHZhciBO\
|
||||
QVZJR0FUSU9OX0NBQ0hFID0gYCR7V09SS0VSX0NBQ0hFX1BSRUZJWH0tbmF2aWdhdGlvbi0ke1NFUlZJQ0VfV09SS0VSX1ZFUlNJT059YDsKICB2YXIgRVhQ\
|
||||
RUNURURfQ0FDSEVTID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1BSRUNBQ0hFX0NBQ0hFLCBBU1NFVF9DQUNIRSwgTkFWSUdBVElPTl9DQUNIRV0pOwog\
|
||||
IHZhciBOQVZJR0FUSU9OX05FVFdPUktfVElNRU9VVF9NUyA9IDY1MDsKICB2YXIgc2VydmljZVdvcmtlckNhY2hlcyA9IHNlbGYuY2FjaGVzOwogIHZhciBp\
|
||||
c05hdGl2ZURlc2t0b3BVc2VyQWdlbnQgPSAodXNlckFnZW50KSA9PiAvXGJFbGVjdHJvblwvXGQrKD86XC5cZCspKi8udGVzdCh1c2VyQWdlbnQpOwogIHRy\
|
||||
eSB7CiAgICBkZWxldGUgc2VsZi5jYWNoZXM7CiAgfSBjYXRjaCB7CiAgfQogIHZhciBsb2cgPSBhc3luYyAobGV2ZWwsIG1lc3NhZ2UsIGRhdGEpID0+IHsK\
|
||||
ICAgIHRyeSB7CiAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICBjb25zdCBmbiA9IGxldmVsID09PSAiZXJyb3Ii\
|
||||
ID8gY29uc29sZS5lcnJvciA6IGxldmVsID09PSAid2FybiIgPyBjb25zb2xlLndhcm4gOiBsZXZlbCA9PT0gImluZm8iID8gY29uc29sZS5pbmZvIDogY29u\
|
||||
c29sZS5kZWJ1ZzsKICAgICAgICBpZiAoZGF0YSAhPT0gdm9pZCAwKSBmbj8uY2FsbChjb25zb2xlLCAiW1NXXSIsIG1lc3NhZ2UsIGRhdGEpOwogICAgICAg\
|
||||
IGVsc2UgZm4/LmNhbGwoY29uc29sZSwgIltTV10iLCBtZXNzYWdlKTsKICAgICAgfQogICAgfSBjYXRjaCB7CiAgICB9CiAgfTsKICB2YXIgaXNDYWNoZWFi\
|
||||
bGVSZXNwb25zZSA9IChyZXNwb25zZSkgPT4gewogICAgcmV0dXJuIHJlc3BvbnNlLm9rIHx8IHJlc3BvbnNlLnR5cGUgPT09ICJvcGFxdWUiOwogIH07CiAg\
|
||||
dmFyIHBydW5lQ2FjaGVFbnRyaWVzID0gYXN5bmMgKGNhY2hlLCBtYXhFbnRyaWVzKSA9PiB7CiAgICBjb25zdCBrZXlzID0gYXdhaXQgY2FjaGUua2V5cygp\
|
||||
OwogICAgY29uc3Qgb3ZlcmZsb3cgPSBrZXlzLmxlbmd0aCAtIG1heEVudHJpZXM7CiAgICBpZiAob3ZlcmZsb3cgPD0gMCkgewogICAgICByZXR1cm47CiAg\
|
||||
ICB9CiAgICBhd2FpdCBQcm9taXNlLmFsbChrZXlzLnNsaWNlKDAsIG92ZXJmbG93KS5tYXAoKHJlcXVlc3QpID0+IGNhY2hlLmRlbGV0ZShyZXF1ZXN0KSkp\
|
||||
OwogIH07CiAgdmFyIGNhY2hlUmVxdWVzdCA9IGFzeW5jIChjYWNoZU5hbWUsIHJlcXVlc3QsIHJlc3BvbnNlLCBtYXhFbnRyaWVzKSA9PiB7CiAgICBpZiAo\
|
||||
IWlzQ2FjaGVhYmxlUmVzcG9uc2UocmVzcG9uc2UpKSB7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHRyeSB7CiAgICAgIGlmICghc2VydmljZVdvcmtlckNh\
|
||||
Y2hlcykgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHNlcnZpY2VXb3JrZXJDYWNoZXMub3BlbihjYWNoZU5h\
|
||||
bWUpOwogICAgICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgcmVzcG9uc2UuY2xvbmUoKSk7CiAgICAgIGlmIChtYXhFbnRyaWVzICE9IG51bGwpIHsKICAg\
|
||||
ICAgICBhd2FpdCBwcnVuZUNhY2hlRW50cmllcyhjYWNoZSwgbWF4RW50cmllcyk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGF3YWl0\
|
||||
IGxvZygid2FybiIsICJjYWNoZSBwdXQgZmFpbGVkIiwgeyBjYWNoZU5hbWUsIGVycm9yOiBkZXNjcmliZUVycm9yKGVycm9yKSB9KTsKICAgIH0KICB9Owog\
|
||||
IHZhciBwcmVjYWNoZUFwcFNoZWxsID0gYXN5bmMgKCkgPT4gewogICAgaWYgKCFzZXJ2aWNlV29ya2VyQ2FjaGVzKSB7CiAgICAgIHJldHVybjsKICAgIH0K\
|
||||
ICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgc2VydmljZVdvcmtlckNhY2hlcy5vcGVuKFBSRUNBQ0hFX0NBQ0hFKTsKICAgIGF3YWl0IFByb21pc2UuYWxsU2V0\
|
||||
dGxlZCgKICAgICAgUFJFQ0FDSEVfTUFOSUZFU1QubWFwKGFzeW5jIChlbnRyeSkgPT4gewogICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVxdWVzdChu\
|
||||
ZXcgVVJMKGVudHJ5LnVybCwgc2VsZi5sb2NhdGlvbi5vcmlnaW4pLnRvU3RyaW5nKCksIHsgY2FjaGU6ICJyZWxvYWQiIH0pOwogICAgICAgIGNvbnN0IHJl\
|
||||
c3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdCk7CiAgICAgICAgaWYgKGlzQ2FjaGVhYmxlUmVzcG9uc2UocmVzcG9uc2UpKSB7CiAgICAgICAgICBhd2Fp\
|
||||
dCBjYWNoZS5wdXQoZW50cnkudXJsLCByZXNwb25zZSk7CiAgICAgICAgfQogICAgICB9KQogICAgKTsKICB9OwogIHZhciBjbGVhbnVwT2xkQ2FjaGVzID0g\
|
||||
YXN5bmMgKCkgPT4gewogICAgaWYgKCFzZXJ2aWNlV29ya2VyQ2FjaGVzKSB7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IG5hbWVzID0gYXdhaXQg\
|
||||
c2VydmljZVdvcmtlckNhY2hlcy5rZXlzKCk7CiAgICBhd2FpdCBQcm9taXNlLmFsbCgKICAgICAgbmFtZXMubWFwKChuYW1lKSA9PiB7CiAgICAgICAgaWYg\
|
||||
KCFzaG91bGREZWxldGVXb3JrZXJDYWNoZShuYW1lLCBFWFBFQ1RFRF9DQUNIRVMpKSB7CiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIH0KICAg\
|
||||
ICAgICByZXR1cm4gc2VydmljZVdvcmtlckNhY2hlcy5kZWxldGUobmFtZSk7CiAgICAgIH0pCiAgICApOwogIH07CiAgdmFyIGdldENhY2hlZEFwcFNoZWxs\
|
||||
ID0gYXN5bmMgKCkgPT4gewogICAgaWYgKCFzZXJ2aWNlV29ya2VyQ2FjaGVzKSB7CiAgICAgIHJldHVybiB2b2lkIDA7CiAgICB9CiAgICByZXR1cm4gYXdh\
|
||||
aXQgc2VydmljZVdvcmtlckNhY2hlcy5tYXRjaCgiL2luZGV4Lmh0bWwiKSA/PyBhd2FpdCBzZXJ2aWNlV29ya2VyQ2FjaGVzLm1hdGNoKCIvIikgPz8gYXdh\
|
||||
aXQgc2VydmljZVdvcmtlckNhY2hlcy5tYXRjaChuZXcgUmVxdWVzdCgiL2luZGV4Lmh0bWwiLCB7IGNhY2hlOiAicmVsb2FkIiB9KSkgPz8gdm9pZCAwOwog\
|
||||
IH07CiAgdmFyIGZldGNoTmF2aWdhdGlvbiA9IGFzeW5jIChyZXF1ZXN0KSA9PiB7CiAgICBjb25zdCB0aW1lb3V0ID0gbmV3IFByb21pc2UoKHJlc29sdmUp\
|
||||
ID0+IHsKICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKHZvaWQgMCksIE5BVklHQVRJT05fTkVUV09SS19USU1FT1VUX01TKTsKICAgIH0pOwogICAg\
|
||||
Y29uc3QgbmV0d29yayA9IGZldGNoKHJlcXVlc3QpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7CiAgICAgIGF3YWl0IGNhY2hlUmVxdWVzdChOQVZJR0FU\
|
||||
SU9OX0NBQ0hFLCAiL2luZGV4Lmh0bWwiLCByZXNwb25zZSk7CiAgICAgIHJldHVybiByZXNwb25zZTsKICAgIH0pOwogICAgbGV0IG5ldHdvcmtSZXNwb25z\
|
||||
ZTsKICAgIHRyeSB7CiAgICAgIG5ldHdvcmtSZXNwb25zZSA9IGF3YWl0IFByb21pc2UucmFjZShbbmV0d29yaywgdGltZW91dF0pOwogICAgICBpZiAobmV0\
|
||||
d29ya1Jlc3BvbnNlICYmIGlzQ2FjaGVhYmxlUmVzcG9uc2UobmV0d29ya1Jlc3BvbnNlKSkgewogICAgICAgIHJldHVybiBuZXR3b3JrUmVzcG9uc2U7CiAg\
|
||||
ICAgIH0KICAgIH0gY2F0Y2ggewogICAgfQogICAgY29uc3QgY2FjaGVkID0gYXdhaXQgZ2V0Q2FjaGVkQXBwU2hlbGwoKTsKICAgIGlmIChjYWNoZWQpIHsK\
|
||||
ICAgICAgbmV0d29yay5jYXRjaCgoKSA9PiB2b2lkIDApOwogICAgICByZXR1cm4gY2FjaGVkOwogICAgfQogICAgaWYgKG5ldHdvcmtSZXNwb25zZSkgewog\
|
||||
ICAgICByZXR1cm4gbmV0d29ya1Jlc3BvbnNlOwogICAgfQogICAgcmV0dXJuIG5ldHdvcms7CiAgfTsKICB2YXIgZmV0Y2hDYWNoZUZpcnN0ID0gYXN5bmMg\
|
||||
KHJlcXVlc3QpID0+IHsKICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHNlcnZpY2VXb3JrZXJDYWNoZXM/Lm1hdGNoKHJlcXVlc3QpOwogICAgaWYgKGNhY2hl\
|
||||
ZCkgewogICAgICByZXR1cm4gY2FjaGVkOwogICAgfQogICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXF1ZXN0KTsKICAgIGF3YWl0IGNhY2hl\
|
||||
UmVxdWVzdChBU1NFVF9DQUNIRSwgcmVxdWVzdCwgcmVzcG9uc2UpOwogICAgcmV0dXJuIHJlc3BvbnNlOwogIH07CiAgdmFyIGZldGNoTmV0d29ya0ZpcnN0\
|
||||
ID0gYXN5bmMgKHJlcXVlc3QpID0+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdCk7CiAgICAgIGF3YWl0\
|
||||
IGNhY2hlUmVxdWVzdChQUkVDQUNIRV9DQUNIRSwgcmVxdWVzdCwgcmVzcG9uc2UpOwogICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICB9IGNhdGNoIChlcnJv\
|
||||
cikgewogICAgICBjb25zdCBjYWNoZWQgPSBhd2FpdCBzZXJ2aWNlV29ya2VyQ2FjaGVzPy5tYXRjaChyZXF1ZXN0KTsKICAgICAgaWYgKGNhY2hlZCkgewog\
|
||||
ICAgICAgIHJldHVybiBjYWNoZWQ7CiAgICAgIH0KICAgICAgdGhyb3cgZXJyb3I7CiAgICB9CiAgfTsKICBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImluc3Rh\
|
||||
bGwiLCAoZXZlbnQpID0+IHsKICAgIGV2ZW50LndhaXRVbnRpbCgKICAgICAgKGFzeW5jICgpID0+IHsKICAgICAgICBhd2FpdCBlbnN1cmVTZXJ2aWNlV29y\
|
||||
a2VyUmVhZHk7CiAgICAgICAgYXdhaXQgcHJlY2FjaGVBcHBTaGVsbCgpOwogICAgICAgIGF3YWl0IGxvZygiaW5mbyIsICJpbnN0YWxsIik7CiAgICAgICAg\
|
||||
c2VsZi5za2lwV2FpdGluZygpOwogICAgICB9KSgpCiAgICApOwogIH0pOwogIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigiYWN0aXZhdGUiLCAoZXZlbnQpID0+\
|
||||
IHsKICAgIGV2ZW50LndhaXRVbnRpbCgKICAgICAgKGFzeW5jICgpID0+IHsKICAgICAgICBhd2FpdCBlbnN1cmVTZXJ2aWNlV29ya2VyUmVhZHk7CiAgICAg\
|
||||
ICAgYXdhaXQgbG9nKCJpbmZvIiwgImFjdGl2YXRlIik7CiAgICAgICAgYXdhaXQgY2xlYW51cE9sZENhY2hlcygpOwogICAgICAgIGF3YWl0IHNlbGYuY2xp\
|
||||
ZW50cy5jbGFpbSgpOwogICAgICAgIGF3YWl0IGxvZygiZGVidWciLCAiY2xpZW50cyBjbGFpbWVkIik7CiAgICAgIH0pKCkKICAgICk7CiAgfSk7CiAgc2Vs\
|
||||
Zi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4gewogICAgY29uc3QgcmVxdWVzdCA9IGV2ZW50LnJlcXVlc3Q7CiAgICBjb25zdCByb3V0\
|
||||
ZSA9IGdldFdvcmtlckZldGNoUm91dGUocmVxdWVzdCwgc2VsZi5sb2NhdGlvbi5vcmlnaW4pOwogICAgaWYgKHJvdXRlID09PSAibmF2aWdhdGlvbiIpIHsK\
|
||||
ICAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2hOYXZpZ2F0aW9uKHJlcXVlc3QpKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJvdXRlID09PSAi\
|
||||
c3RhdGljLWFzc2V0IikgewogICAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaENhY2hlRmlyc3QocmVxdWVzdCkpOwogICAgICByZXR1cm47CiAgICB9CiAg\
|
||||
ICBpZiAocm91dGUgPT09ICJtZXRhZGF0YSIpIHsKICAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2hOZXR3b3JrRmlyc3QocmVxdWVzdCkpOwogICAgfQog\
|
||||
IH0pOwogIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4gewogICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE7CiAgICBjb25z\
|
||||
dCB0eXBlID0gZGF0YT8udHlwZTsKICAgIGlmICh0eXBlID09PSAiU0tJUF9XQUlUSU5HIikgewogICAgICBldmVudC53YWl0VW50aWwobG9nKCJpbmZvIiwg\
|
||||
Im1lc3NhZ2U6IFNLSVBfV0FJVElORyIpKTsKICAgICAgc2VsZi5za2lwV2FpdGluZygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAodHlwZSA9PT0g\
|
||||
IkFQUF9VUERBVEVfQkFER0UiKSB7CiAgICAgIGNvbnN0IHJhd0NvdW50ID0gZGF0YT8uY291bnQ7CiAgICAgIGxldCBiYWRnZUNvdW50ID0gbnVsbDsKICAg\
|
||||
ICAgaWYgKHR5cGVvZiByYXdDb3VudCA9PT0gIm51bWJlciIgJiYgTnVtYmVyLmlzRmluaXRlKHJhd0NvdW50KSkgewogICAgICAgIGJhZGdlQ291bnQgPSBy\
|
||||
YXdDb3VudDsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmF3Q291bnQgPT09ICJzdHJpbmciICYmIHJhd0NvdW50Lmxlbmd0aCA+IDApIHsKICAgICAgICBj\
|
||||
b25zdCBwYXJzZWQgPSBOdW1iZXIocmF3Q291bnQpOwogICAgICAgIGJhZGdlQ291bnQgPSBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IG51\
|
||||
bGw7CiAgICAgIH0KICAgICAgZXZlbnQud2FpdFVudGlsKHVwZGF0ZUFwcEJhZGdlKGJhZGdlQ291bnQpKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgZXZl\
|
||||
bnQud2FpdFVudGlsKGxvZygiZGVidWciLCAibWVzc2FnZTogdW5rbm93biIsIHsgdHlwZSB9KSk7CiAgfSk7CiAgdmFyIHVwZGF0ZUFwcEJhZGdlID0gYXN5\
|
||||
bmMgKGNvdW50KSA9PiB7CiAgICBpZiAodHlwZW9mIG5hdmlnYXRvci5zZXRBcHBCYWRnZSAhPT0gImZ1bmN0aW9uIiAmJiB0eXBlb2YgbmF2aWdhdG9yLmNs\
|
||||
ZWFyQXBwQmFkZ2UgIT09ICJmdW5jdGlvbiIpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgdHJ5IHsKICAgICAgaWYgKGNvdW50ICE9PSBudWxsICYmIGNv\
|
||||
dW50ID4gMCkgewogICAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yLnNldEFwcEJhZGdlID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBhd2FpdCBuYXZp\
|
||||
Z2F0b3Iuc2V0QXBwQmFkZ2UoY291bnQpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbmF2aWdhdG9yLmNsZWFyQXBwQmFkZ2UgPT09ICJm\
|
||||
dW5jdGlvbiIpIHsKICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xlYXJBcHBCYWRnZSgpOwogICAgICB9CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBh\
|
||||
d2FpdCBsb2coImVycm9yIiwgIkZhaWxlZCB0byB1cGRhdGUgYXBwIGJhZGdlIiwgeyBlcnJvcjogZGVzY3JpYmVFcnJvcihlcnJvcikgfSk7CiAgICB9CiAg\
|
||||
fTsKICB2YXIgY2xvc2VQdXNoTm90aWZpY2F0aW9ucyA9IGFzeW5jICh0YWcpID0+IHsKICAgIGlmICghdGFnIHx8IHR5cGVvZiBzZWxmLnJlZ2lzdHJhdGlv\
|
||||
bi5nZXROb3RpZmljYXRpb25zICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgdHJ5IHsKICAgICAgY29uc3Qgbm90aWZpY2F0\
|
||||
aW9ucyA9IGF3YWl0IHNlbGYucmVnaXN0cmF0aW9uLmdldE5vdGlmaWNhdGlvbnMoeyB0YWcgfSk7CiAgICAgIGZvciAoY29uc3Qgbm90aWZpY2F0aW9uIG9m\
|
||||
IG5vdGlmaWNhdGlvbnMpIHsKICAgICAgICBub3RpZmljYXRpb24uY2xvc2UoKTsKICAgICAgfQogICAgICByZXR1cm4gbm90aWZpY2F0aW9ucy5sZW5ndGg7\
|
||||
CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBhd2FpdCBsb2coImVycm9yIiwgInB1c2g6IGZhaWxlZCB0byBjbG9zZSBub3RpZmljYXRpb25zIiwgeyB0\
|
||||
YWcsIGVycm9yOiBkZXNjcmliZUVycm9yKGVycm9yKSB9KTsKICAgICAgcmV0dXJuIDA7CiAgICB9CiAgfTsKICB2YXIgcmVzb2x2ZVRhcmdldFVybCA9ICh1\
|
||||
cmwpID0+IHsKICAgIGlmICghdXJsKSByZXR1cm4gbnVsbDsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIHNlbGYubG9j\
|
||||
YXRpb24ub3JpZ2luKTsKICAgICAgaWYgKHJlc29sdmVkLnByb3RvY29sICE9PSAiaHR0cDoiICYmIHJlc29sdmVkLnByb3RvY29sICE9PSAiaHR0cHM6Iikg\
|
||||
cmV0dXJuIG51bGw7CiAgICAgIHJldHVybiByZXNvbHZlZC50b1N0cmluZygpOwogICAgfSBjYXRjaCB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogIH07\
|
||||
CiAgdmFyIHBvc3RNZXNzYWdlVG9DbGllbnRzID0gYXN5bmMgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IGNsaWVudExpc3QgPSBhd2Fp\
|
||||
dCBzZWxmLmNsaWVudHMubWF0Y2hBbGwoewogICAgICAgIHR5cGU6ICJ3aW5kb3ciLAogICAgICAgIGluY2x1ZGVVbmNvbnRyb2xsZWQ6IHRydWUKICAgICAg\
|
||||
fSk7CiAgICAgIGZvciAoY29uc3QgY2xpZW50IG9mIGNsaWVudExpc3QpIHsKICAgICAgICBjbGllbnQucG9zdE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgIH0K\
|
||||
ICAgICAgcmV0dXJuIGNsaWVudExpc3Q7CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBhd2FpdCBsb2coImVycm9yIiwgIlVuYWJsZSB0byBicm9hZGNh\
|
||||
c3QgdG8gY2xpZW50cyIsIHsgZXJyb3I6IGRlc2NyaWJlRXJyb3IoZXJyb3IpIH0pOwogICAgICByZXR1cm4gW107CiAgICB9CiAgfTsKICB2YXIgZm9jdXNP\
|
||||
ck9wZW5DbGllbnQgPSBhc3luYyAodGFyZ2V0VXJsLCB0YXJnZXRVc2VySWQpID0+IHsKICAgIGNvbnN0IG1lc3NhZ2UgPSB7CiAgICAgIHR5cGU6ICJOT1RJ\
|
||||
RklDQVRJT05fQ0xJQ0tfTkFWSUdBVEUiLAogICAgICB1cmw6IHRhcmdldFVybAogICAgfTsKICAgIGlmICh0YXJnZXRVc2VySWQpIHsKICAgICAgbWVzc2Fn\
|
||||
ZS50YXJnZXRVc2VySWQgPSB0YXJnZXRVc2VySWQ7CiAgICB9CiAgICBjb25zdCBjbGllbnRMaXN0ID0gYXdhaXQgcG9zdE1lc3NhZ2VUb0NsaWVudHMobWVz\
|
||||
c2FnZSk7CiAgICBjb25zdCBleGFjdCA9IGNsaWVudExpc3QuZmluZCgoYykgPT4gYy51cmwgPT09IHRhcmdldFVybCk7CiAgICBpZiAoZXhhY3QpIHsKICAg\
|
||||
ICAgYXdhaXQgbG9nKCJkZWJ1ZyIsICJmb2N1cyBleGFjdCBjbGllbnQiLCB7IHVybDogdGFyZ2V0VXJsIH0pOwogICAgICBhd2FpdCBleGFjdC5mb2N1cygp\
|
||||
OwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBzYW1lT3JpZ2luID0gY2xpZW50TGlzdC5maW5kKChjKSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAg\
|
||||
cmV0dXJuIG5ldyBVUkwoYy51cmwpLm9yaWdpbiA9PT0gc2VsZi5sb2NhdGlvbi5vcmlnaW47CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiBmYWxz\
|
||||
ZTsKICAgICAgfQogICAgfSk7CiAgICBpZiAoc2FtZU9yaWdpbikgewogICAgICBhd2FpdCBsb2coImRlYnVnIiwgImZvY3VzIHNhbWUtb3JpZ2luIGNsaWVu\
|
||||
dCIsIHsgdXJsOiBzYW1lT3JpZ2luLnVybCB9KTsKICAgICAgYXdhaXQgc2FtZU9yaWdpbi5mb2N1cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAo\
|
||||
c2VsZi5jbGllbnRzLm9wZW5XaW5kb3cpIHsKICAgICAgYXdhaXQgbG9nKCJkZWJ1ZyIsICJvcGVuV2luZG93IiwgeyB1cmw6IHRhcmdldFVybCB9KTsKICAg\
|
||||
ICAgYXdhaXQgc2VsZi5jbGllbnRzLm9wZW5XaW5kb3codGFyZ2V0VXJsKTsKICAgIH0KICB9OwogIGZ1bmN0aW9uIGRlc2NyaWJlRXJyb3IoZXJyb3IpIHsK\
|
||||
ICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7CiAgICAgIHJldHVybiB7IG5hbWU6IGVycm9yLm5hbWUsIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2Us\
|
||||
IHN0YWNrOiBlcnJvci5zdGFjayB9OwogICAgfQogICAgcmV0dXJuIHsgdmFsdWU6IFN0cmluZyhlcnJvcikgfTsKICB9CiAgc2VsZi5hZGRFdmVudExpc3Rl\
|
||||
bmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CiAgICBldmVudC53YWl0VW50aWwoCiAgICAgIChhc3luYyAoKSA9PiB7CiAgICAgICAgYXdhaXQgZW5zdXJlU2Vy\
|
||||
dmljZVdvcmtlclJlYWR5OwogICAgICAgIGxldCByYXc7CiAgICAgICAgbGV0IHJhd1RleHQgPSBudWxsOwogICAgICAgIHRyeSB7CiAgICAgICAgICByYXdU\
|
||||
ZXh0ID0gZXZlbnQuZGF0YT8udGV4dCgpID8/IG51bGw7CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICByYXdUZXh0ID0gbnVsbDsKICAgICAgICB9CiAg\
|
||||
ICAgICAgdHJ5IHsKICAgICAgICAgIHJhdyA9IGV2ZW50LmRhdGE/Lmpzb24/LigpOwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICBhd2Fp\
|
||||
dCBsb2coImVycm9yIiwgInB1c2g6IEpTT04gcGFyc2UgZmFpbGVkIiwgewogICAgICAgICAgICBlcnJvcjogZGVzY3JpYmVFcnJvcihlcnJvciksCiAgICAg\
|
||||
ICAgICAgIHJhd1ByZXZpZXc6IHJhd1RleHQ/LnNsaWNlKDAsIDUxMikgPz8gbnVsbAogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHBh\
|
||||
eWxvYWQgPSBub3JtYWxpemVQdXNoUGF5bG9hZChyYXcgPz8geyB0aXRsZTogUFJPRFVDVF9OQU1FIH0pOwogICAgICAgIGNvbnN0IHRpdGxlID0gcGF5bG9h\
|
||||
ZC50aXRsZSA/PyBQUk9EVUNUX05BTUU7CiAgICAgICAgY29uc3QgdGFnID0gcmVzb2x2ZVB1c2hOb3RpZmljYXRpb25UYWcocGF5bG9hZCk7CiAgICAgICAg\
|
||||
Y29uc3QgYmFkZ2VDb3VudCA9IGdldEJhZGdlQ291bnQocGF5bG9hZCk7CiAgICAgICAgaWYgKGlzTm90aWZpY2F0aW9uQ2xlYXJQYXlsb2FkKHBheWxvYWQp\
|
||||
KSB7CiAgICAgICAgICBjb25zdCBjbG9zZWRDb3VudCA9IGF3YWl0IGNsb3NlUHVzaE5vdGlmaWNhdGlvbnModGFnKTsKICAgICAgICAgIGF3YWl0IHVwZGF0\
|
||||
ZUFwcEJhZGdlKGJhZGdlQ291bnQpOwogICAgICAgICAgYXdhaXQgbG9nKCJpbmZvIiwgInB1c2ggY2xlYXIgcmVjZWl2ZWQiLCB7IHRhZywgY2xvc2VkQ291\
|
||||
bnQsIGJhZGdlQ291bnQgfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChpc05hdGl2ZURlc2t0b3BVc2VyQWdlbnQod29ya2Vy\
|
||||
TmF2aWdhdG9yLnVzZXJBZ2VudCkpIHsKICAgICAgICAgIGF3YWl0IHVwZGF0ZUFwcEJhZGdlKGJhZGdlQ291bnQpOwogICAgICAgICAgYXdhaXQgbG9nKCJ3\
|
||||
YXJuIiwgInB1c2ggaWdub3JlZCBpbiBuYXRpdmUgZGVza3RvcCBzZXJ2aWNlIHdvcmtlciIsIHsgYmFkZ2VDb3VudCB9KTsKICAgICAgICAgIHJldHVybjsK\
|
||||
ICAgICAgICB9CiAgICAgICAgY29uc3QgYm9keSA9IHBheWxvYWQuYm9keSA/PyAiIjsKICAgICAgICBsZXQgY2xpZW50U3RhdGUgPSBnZXRQdXNoTm90aWZp\
|
||||
Y2F0aW9uQ2xpZW50U3RhdGUoW10pOwogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBjbGllbnRMaXN0ID0gYXdhaXQgc2VsZi5jbGllbnRzLm1hdGNo\
|
||||
QWxsKHsKICAgICAgICAgICAgdHlwZTogIndpbmRvdyIsCiAgICAgICAgICAgIGluY2x1ZGVVbmNvbnRyb2xsZWQ6IHRydWUKICAgICAgICAgIH0pOwogICAg\
|
||||
ICAgICAgY2xpZW50U3RhdGUgPSBnZXRQdXNoTm90aWZpY2F0aW9uQ2xpZW50U3RhdGUoY2xpZW50TGlzdCk7CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAg\
|
||||
fQogICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CiAgICAgICAgICBib2R5LAogICAgICAgICAgaWNvbjogcGF5bG9hZC5pY29uID8/IHZvaWQgMCwKICAgICAg\
|
||||
ICAgIGJhZGdlOiBwYXlsb2FkLmJhZGdlID8/IHZvaWQgMCwKICAgICAgICAgIGRhdGE6IHBheWxvYWQuZGF0YSA/PyB2b2lkIDAsCiAgICAgICAgICB0YWcs\
|
||||
CiAgICAgICAgICByZW5vdGlmeTogdGFnICE9PSB2b2lkIDAsCiAgICAgICAgICAuLi5nZXROb3RpZmljYXRpb25BbGVydE9wdGlvbnMoewogICAgICAgICAg\
|
||||
ICBtb2JpbGVPclRhYmxldDogaXNNb2JpbGVPclRhYmxldFVzZXJBZ2VudCh3b3JrZXJOYXZpZ2F0b3IudXNlckFnZW50LCB3b3JrZXJOYXZpZ2F0b3IubWF4\
|
||||
VG91Y2hQb2ludHMgPz8gMCksCiAgICAgICAgICAgIHNpbGVudE9uTm9uTW9iaWxlOiBzaG91bGRTaWxlbmNlTm9uTW9iaWxlUHVzaE5vdGlmaWNhdGlvbihj\
|
||||
bGllbnRTdGF0ZSkKICAgICAgICAgIH0pCiAgICAgICAgfTsKICAgICAgICBhd2FpdCBsb2coImluZm8iLCAicHVzaCByZWNlaXZlZCIsIHsKICAgICAgICAg\
|
||||
IHRpdGxlLAogICAgICAgICAgaGFzQm9keTogQm9vbGVhbihwYXlsb2FkLmJvZHkpLAogICAgICAgICAgdGFnLAogICAgICAgICAgaGFzRGF0YTogcGF5bG9h\
|
||||
ZC5kYXRhICE9PSB2b2lkIDAsCiAgICAgICAgICBiYWRnZUNvdW50LAogICAgICAgICAgaGFzV2luZG93Q2xpZW50OiBjbGllbnRTdGF0ZS5oYXNXaW5kb3dD\
|
||||
bGllbnQsCiAgICAgICAgICBoYXNWaXNpYmxlQ2xpZW50OiBjbGllbnRTdGF0ZS5oYXNWaXNpYmxlQ2xpZW50LAogICAgICAgICAgd2ViUHVzaDogcGF5bG9h\
|
||||
ZC53ZWJfcHVzaCA/PyBudWxsCiAgICAgICAgfSk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtzZWxmLnJlZ2lzdHJhdGlv\
|
||||
bi5zaG93Tm90aWZpY2F0aW9uKHRpdGxlLCBvcHRpb25zKSwgdXBkYXRlQXBwQmFkZ2UoYmFkZ2VDb3VudCldKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikg\
|
||||
ewogICAgICAgICAgYXdhaXQgbG9nKCJlcnJvciIsICJwdXNoOiBzaG93Tm90aWZpY2F0aW9uIGZhaWxlZCwgc2hvd2luZyBmYWxsYmFjayIsIHsgZXJyb3I6\
|
||||
IGRlc2NyaWJlRXJyb3IoZXJyb3IpIH0pOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgYXdhaXQgc2VsZi5yZWdpc3RyYXRpb24uc2hvd05vdGlmaWNh\
|
||||
dGlvbihQUk9EVUNUX05BTUUsIHsgYm9keTogIiIgfSk7CiAgICAgICAgICB9IGNhdGNoIChmYWxsYmFja0Vycm9yKSB7CiAgICAgICAgICAgIGF3YWl0IGxv\
|
||||
ZygiZXJyb3IiLCAicHVzaDogZmFsbGJhY2sgc2hvd05vdGlmaWNhdGlvbiBhbHNvIGZhaWxlZCIsIHsKICAgICAgICAgICAgICBlcnJvcjogZGVzY3JpYmVF\
|
||||
cnJvcihmYWxsYmFja0Vycm9yKQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pKCkKICAgICk7CiAgfSk7CiAgc2VsZi5h\
|
||||
ZGRFdmVudExpc3RlbmVyKCJub3RpZmljYXRpb25jbGljayIsIChldmVudCkgPT4gewogICAgZXZlbnQubm90aWZpY2F0aW9uLmNsb3NlKCk7CiAgICBjb25z\
|
||||
dCB0YXJnZXRVcmwgPSByZXNvbHZlVGFyZ2V0VXJsKGV2ZW50Lm5vdGlmaWNhdGlvbi5kYXRhPy51cmwpOwogICAgY29uc3QgdGFyZ2V0VXNlcklkID0gZXZl\
|
||||
bnQubm90aWZpY2F0aW9uLmRhdGE/LnRhcmdldF91c2VyX2lkOwogICAgZXZlbnQud2FpdFVudGlsKAogICAgICAoYXN5bmMgKCkgPT4gewogICAgICAgIGF3\
|
||||
YWl0IGVuc3VyZVNlcnZpY2VXb3JrZXJSZWFkeTsKICAgICAgICBhd2FpdCBsb2coImluZm8iLCAibm90aWZpY2F0aW9uY2xpY2siLCB7IHRhcmdldFVybCwg\
|
||||
dGFyZ2V0VXNlcklkLCB0YWc6IGV2ZW50Lm5vdGlmaWNhdGlvbi50YWcgfSk7CiAgICAgICAgaWYgKCF0YXJnZXRVcmwpIHJldHVybjsKICAgICAgICB0cnkg\
|
||||
ewogICAgICAgICAgYXdhaXQgZm9jdXNPck9wZW5DbGllbnQodGFyZ2V0VXJsLCB0YXJnZXRVc2VySWQpOwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAg\
|
||||
ICAgICAgICBhd2FpdCBsb2coImVycm9yIiwgIm5vdGlmaWNhdGlvbmNsaWNrOiBmb2N1c09yT3BlbiBmYWlsZWQiLCB7IGVycm9yOiBkZXNjcmliZUVycm9y\
|
||||
KGVycm9yKSB9KTsKICAgICAgICB9CiAgICAgIH0pKCkKICAgICk7CiAgfSk7CiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJub3RpZmljYXRpb25jbG9zZSIs\
|
||||
IChldmVudCkgPT4gewogICAgZXZlbnQud2FpdFVudGlsKGxvZygiZGVidWciLCAibm90aWZpY2F0aW9uY2xvc2UiLCB7IHRhZzogZXZlbnQubm90aWZpY2F0\
|
||||
aW9uLnRhZyB9KSk7CiAgfSk7CiAgdmFyIGFycmF5QnVmZmVyVG9CYXNlNjRVcmwgPSAoYnVmZmVyKSA9PiB7CiAgICBpZiAoIWJ1ZmZlcikgcmV0dXJuIG51\
|
||||
bGw7CiAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7CiAgICBsZXQgYmluYXJ5ID0gIiI7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8\
|
||||
IGJ5dGVzLmxlbmd0aDsgaSArPSAxKSBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSk7CiAgICByZXR1cm4gYnRvYShiaW5hcnkpLnJl\
|
||||
cGxhY2UoL1wrL2csICItIikucmVwbGFjZSgvXC8vZywgIl8iKS5yZXBsYWNlKC89KyQvLCAiIik7CiAgfTsKICB2YXIgdXJsQmFzZTY0VG9VaW50OEFycmF5\
|
||||
ID0gKGJhc2U2NCkgPT4gewogICAgY29uc3QgcGFkZGluZyA9ICI9Ii5yZXBlYXQoKDQgLSBiYXNlNjQubGVuZ3RoICUgNCkgJSA0KTsKICAgIGNvbnN0IHJh\
|
||||
dyA9IGF0b2IoKGJhc2U2NCArIHBhZGRpbmcpLnJlcGxhY2UoLy0vZywgIisiKS5yZXBsYWNlKC9fL2csICIvIikpOwogICAgY29uc3Qgb3V0ID0gbmV3IFVp\
|
||||
bnQ4QXJyYXkocmF3Lmxlbmd0aCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhdy5sZW5ndGg7IGkgKz0gMSkgb3V0W2ldID0gcmF3LmNoYXJDb2RlQXQo\
|
||||
aSk7CiAgICByZXR1cm4gb3V0OwogIH07CiAgdmFyIGZldGNoSW5zdGFuY2VDb25maWcgPSBhc3luYyAoKSA9PiB7CiAgICB0cnkgewogICAgICBjb25zdCBy\
|
||||
ZXMgPSBhd2FpdCBmZXRjaCgiLy53ZWxsLWtub3duL2ZsdXhlciIsIHsgY3JlZGVudGlhbHM6ICJpbmNsdWRlIiB9KTsKICAgICAgaWYgKCFyZXMub2spIHJl\
|
||||
dHVybiBudWxsOwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTsKICAgICAgY29uc3QgYXBpQ2xpZW50ID0gZGF0YS5lbmRwb2ludHM/LmFw\
|
||||
aV9jbGllbnQgPz8gZGF0YS5lbmRwb2ludHM/LmFwaTsKICAgICAgaWYgKCFhcGlDbGllbnQpIHJldHVybiBudWxsOwogICAgICByZXR1cm4geyBhcGlDbGll\
|
||||
bnQsIHZhcGlkS2V5OiBkYXRhLnB1c2g/LnB1YmxpY192YXBpZF9rZXkgPz8gbnVsbCB9OwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgYXdhaXQgbG9n\
|
||||
KCJlcnJvciIsICJGYWlsZWQgdG8gZmV0Y2ggaW5zdGFuY2UgY29uZmlnIGluIFNXIiwgeyBlcnJvcjogZGVzY3JpYmVFcnJvcihlcnJvcikgfSk7CiAgICAg\
|
||||
IHJldHVybiBudWxsOwogICAgfQogIH07CiAgdmFyIFNXX0FQSV9WRVJTSU9OID0gMTsKICB2YXIgcm90YXRlU3Vic2NyaXB0aW9uT25TZXJ2ZXIgPSBhc3lu\
|
||||
YyAob2xkRW5kcG9pbnQsIG5ld1N1YiwgYXBpQ2xpZW50KSA9PiB7CiAgICBjb25zdCBwMjU2ZGggPSBhcnJheUJ1ZmZlclRvQmFzZTY0VXJsKG5ld1N1Yi5n\
|
||||
ZXRLZXkoInAyNTZkaCIpKTsKICAgIGNvbnN0IGF1dGggPSBhcnJheUJ1ZmZlclRvQmFzZTY0VXJsKG5ld1N1Yi5nZXRLZXkoImF1dGgiKSk7CiAgICBpZiAo\
|
||||
IXAyNTZkaCB8fCAhYXV0aCkgewogICAgICBhd2FpdCBsb2coImVycm9yIiwgInJvdGF0ZTogbmV3IHN1YnNjcmlwdGlvbiBtaXNzaW5nIGtleXMiKTsKICAg\
|
||||
ICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgdXJsID0gYCR7YXBpQ2xpZW50fS92JHtTV19BUElfVkVSU0lPTn0vdXNlcnMvQG1lL3B1c2gvcm90YXRlYDsK\
|
||||
ICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwgewogICAgICAgIG1ldGhvZDogIlBPU1QiLAogICAgICAgIGNyZWRlbnRpYWxz\
|
||||
OiAiaW5jbHVkZSIsCiAgICAgICAgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICAgICAgYm9keTogSlNPTi5z\
|
||||
dHJpbmdpZnkoewogICAgICAgICAgb2xkX2VuZHBvaW50OiBvbGRFbmRwb2ludCwKICAgICAgICAgIGVuZHBvaW50OiBuZXdTdWIuZW5kcG9pbnQsCiAgICAg\
|
||||
ICAgICBrZXlzOiB7IHAyNTZkaCwgYXV0aCB9LAogICAgICAgICAgdXNlcl9hZ2VudDogc2VsZi5uYXZpZ2F0b3IudXNlckFnZW50CiAgICAgICAgfSkKICAg\
|
||||
ICAgfSk7CiAgICAgIGF3YWl0IGxvZyhyZXMub2sgPyAiaW5mbyIgOiAiZXJyb3IiLCAicm90YXRlOiBzZXJ2ZXIgcmVzcG9uc2UiLCB7IHN0YXR1czogcmVz\
|
||||
LnN0YXR1cywgb2s6IHJlcy5vayB9KTsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIGF3YWl0IGxvZygiZXJyb3IiLCAicm90YXRlOiBmZXRjaCBmYWls\
|
||||
ZWQiLCB7IGVycm9yOiBkZXNjcmliZUVycm9yKGVycm9yKSB9KTsKICAgIH0KICB9OwogIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicHVzaHN1YnNjcmlwdGlv\
|
||||
bmNoYW5nZSIsIChldmVudCkgPT4gewogICAgZXZlbnQud2FpdFVudGlsKAogICAgICAoYXN5bmMgKCkgPT4gewogICAgICAgIGF3YWl0IGVuc3VyZVNlcnZp\
|
||||
Y2VXb3JrZXJSZWFkeTsKICAgICAgICBhd2FpdCBsb2coImluZm8iLCAicHVzaHN1YnNjcmlwdGlvbmNoYW5nZSIsIHsKICAgICAgICAgIGhhc09sZDogQm9v\
|
||||
bGVhbihldmVudC5vbGRTdWJzY3JpcHRpb24pLAogICAgICAgICAgaGFzTmV3OiBCb29sZWFuKGV2ZW50Lm5ld1N1YnNjcmlwdGlvbiksCiAgICAgICAgICBv\
|
||||
bGRFbmRwb2ludDogZXZlbnQub2xkU3Vic2NyaXB0aW9uPy5lbmRwb2ludCA/PyBudWxsLAogICAgICAgICAgbmV3RW5kcG9pbnQ6IGV2ZW50Lm5ld1N1YnNj\
|
||||
cmlwdGlvbj8uZW5kcG9pbnQgPz8gbnVsbAogICAgICAgIH0pOwogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBvbGRFbmRwb2ludCA9IGV2ZW50Lm9s\
|
||||
ZFN1YnNjcmlwdGlvbj8uZW5kcG9pbnQgPz8gbnVsbDsKICAgICAgICAgIGxldCBhcHBTZXJ2ZXJLZXkgPSBldmVudC5vbGRTdWJzY3JpcHRpb24/Lm9wdGlv\
|
||||
bnM/LmFwcGxpY2F0aW9uU2VydmVyS2V5ID8/IG51bGw7CiAgICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBmZXRjaEluc3RhbmNlQ29uZmlnKCk7CiAg\
|
||||
ICAgICAgICBpZiAoIWFwcFNlcnZlcktleSAmJiBjb25maWc/LnZhcGlkS2V5KSB7CiAgICAgICAgICAgIGFwcFNlcnZlcktleSA9IHVybEJhc2U2NFRvVWlu\
|
||||
dDhBcnJheShjb25maWcudmFwaWRLZXkpLmJ1ZmZlcjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghYXBwU2VydmVyS2V5KSB7CiAgICAgICAgICAgIGF3\
|
||||
YWl0IGxvZygiZXJyb3IiLCAicHVzaHN1YnNjcmlwdGlvbmNoYW5nZTogbm8gVkFQSUQga2V5IGF2YWlsYWJsZSIpOwogICAgICAgICAgICBhd2FpdCBwb3N0\
|
||||
TWVzc2FnZVRvQ2xpZW50cyh7IHR5cGU6ICJQVVNIX1NVQlNDUklQVElPTl9DSEFOR0UiIH0pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAg\
|
||||
ICAgICAgICBjb25zdCBuZXdTdWIgPSBldmVudC5uZXdTdWJzY3JpcHRpb24gPz8gYXdhaXQgc2VsZi5yZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIuc3Vic2Ny\
|
||||
aWJlKHsKICAgICAgICAgICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAogICAgICAgICAgICBhcHBsaWNhdGlvblNlcnZlcktleTogYXBwU2VydmVyS2V5CiAg\
|
||||
ICAgICAgICB9KTsKICAgICAgICAgIGlmIChvbGRFbmRwb2ludCAmJiBjb25maWcpIHsKICAgICAgICAgICAgYXdhaXQgcm90YXRlU3Vic2NyaXB0aW9uT25T\
|
||||
ZXJ2ZXIob2xkRW5kcG9pbnQsIG5ld1N1YiwgY29uZmlnLmFwaUNsaWVudCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhd2FpdCBsb2coIndh\
|
||||
cm4iLCAicHVzaHN1YnNjcmlwdGlvbmNoYW5nZTogdW5hYmxlIHRvIHJvdGF0ZSBvbiBzZXJ2ZXIiLCB7CiAgICAgICAgICAgICAgaGFzT2xkRW5kcG9pbnQ6\
|
||||
IEJvb2xlYW4ob2xkRW5kcG9pbnQpLAogICAgICAgICAgICAgIGhhc0NvbmZpZzogQm9vbGVhbihjb25maWcpCiAgICAgICAgICAgIH0pOwogICAgICAgICAg\
|
||||
fQogICAgICAgICAgYXdhaXQgcG9zdE1lc3NhZ2VUb0NsaWVudHMoeyB0eXBlOiAiUFVTSF9TVUJTQ1JJUFRJT05fQ0hBTkdFIiB9KTsKICAgICAgICB9IGNh\
|
||||
dGNoIChlcnJvcikgewogICAgICAgICAgYXdhaXQgbG9nKCJlcnJvciIsICJwdXNoc3Vic2NyaXB0aW9uY2hhbmdlIGhhbmRsZXIgZmFpbGVkIiwgeyBlcnJv\
|
||||
cjogZGVzY3JpYmVFcnJvcihlcnJvcikgfSk7CiAgICAgICAgICBhd2FpdCBwb3N0TWVzc2FnZVRvQ2xpZW50cyh7IHR5cGU6ICJQVVNIX1NVQlNDUklQVElP\
|
||||
Tl9DSEFOR0UiIH0pLmNhdGNoKCgpID0+IHZvaWQgMCk7CiAgICAgICAgfQogICAgICB9KSgpCiAgICApOwogIH0pOwp9KSgpOwovLyMgc291cmNlTWFwcGlu\
|
||||
Z1VSTD1zdy5qcy5tYXAK\
|
||||
";
|
||||
const CANARY_VERSION_JSON: &str = "\
|
||||
eyJ2ZXJzaW9uIjoiMjAyNi42MDUuMTE5NDEifQ==\
|
||||
";
|
||||
|
||||
fn decode(b64: &str) -> Vec<u8> {
|
||||
base64::engine::general_purpose::STANDARD
|
||||
.decode(b64)
|
||||
@@ -623,13 +316,6 @@ pub static STABLE_SNAPSHOT: LazyLock<FrozenSnapshot> = LazyLock::new(|| FrozenSn
|
||||
version_json: decode(STABLE_VERSION_JSON),
|
||||
});
|
||||
|
||||
pub static CANARY_SNAPSHOT: LazyLock<FrozenSnapshot> = LazyLock::new(|| FrozenSnapshot {
|
||||
sha: CANARY_SNAPSHOT_SHA.to_owned(),
|
||||
index_html: decode(CANARY_INDEX_HTML),
|
||||
sw_js: decode(CANARY_SW_JS),
|
||||
version_json: decode(CANARY_VERSION_JSON),
|
||||
});
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
@@ -639,27 +325,19 @@ mod tests {
|
||||
assert_eq!(STABLE_SNAPSHOT.sha, STABLE_SNAPSHOT_SHA);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn canary_snapshot_sha_matches() {
|
||||
assert_eq!(CANARY_SNAPSHOT.sha, CANARY_SNAPSHOT_SHA);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn index_html_decodes_and_starts_with_doctype() {
|
||||
assert_index_html(&STABLE_SNAPSHOT);
|
||||
assert_index_html(&CANARY_SNAPSHOT);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sw_js_decodes_and_is_javascript() {
|
||||
assert_sw_js(&STABLE_SNAPSHOT);
|
||||
assert_sw_js(&CANARY_SNAPSHOT);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn version_json_decodes_and_is_valid_json() {
|
||||
assert_version_json(&STABLE_SNAPSHOT);
|
||||
assert_version_json(&CANARY_SNAPSHOT);
|
||||
}
|
||||
|
||||
fn assert_index_html(snapshot: &FrozenSnapshot) {
|
||||
|
||||
@@ -99,11 +99,10 @@ pub fn load_time_freeze_config_for_index_source(
|
||||
|
||||
#[cfg(feature = "time-freeze")]
|
||||
fn load_frozen_snapshot(release_channel: ReleaseChannel) -> Option<FrozenSnapshot> {
|
||||
let snapshot = match release_channel {
|
||||
ReleaseChannel::Stable => &*crate::frozen_snapshots::STABLE_SNAPSHOT,
|
||||
ReleaseChannel::Canary => &*crate::frozen_snapshots::CANARY_SNAPSHOT,
|
||||
};
|
||||
Some(snapshot.clone())
|
||||
match release_channel {
|
||||
ReleaseChannel::Stable => Some(crate::frozen_snapshots::STABLE_SNAPSHOT.clone()),
|
||||
ReleaseChannel::Canary => None,
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "time-freeze"))]
|
||||
@@ -291,14 +290,15 @@ mod tests {
|
||||
|
||||
#[cfg(feature = "time-freeze")]
|
||||
#[test]
|
||||
fn canary_channel_has_frozen_snapshot() {
|
||||
fn canary_channel_has_no_frozen_snapshot() {
|
||||
let config = load_time_freeze_config(ReleaseChannel::Canary, false);
|
||||
assert!(
|
||||
config.snapshot.is_some(),
|
||||
"canary channel should have a frozen snapshot"
|
||||
);
|
||||
assert_eq!(config.release_channel, ReleaseChannel::Canary);
|
||||
assert!(should_serve_frozen(&config).is_some());
|
||||
assert!(config.snapshot.is_none());
|
||||
assert!(should_serve_frozen(&config).is_none());
|
||||
|
||||
let debug = describe_decision(&config);
|
||||
assert_eq!(debug.decision, TimeFreezeDecision::NoSnapshot);
|
||||
assert!(debug.snapshot_sha.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -340,7 +340,7 @@ mod tests {
|
||||
#[cfg(feature = "time-freeze")]
|
||||
#[test]
|
||||
fn exempt_client_gets_live_content_even_with_snapshot() {
|
||||
let config = load_time_freeze_config(ReleaseChannel::Canary, true);
|
||||
let config = load_time_freeze_config(ReleaseChannel::Stable, true);
|
||||
assert!(config.snapshot.is_some());
|
||||
assert!(should_serve_frozen(&config).is_none());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user