[{"name":"1x1.gif","aliases":["1x1-transparent.gif"],"kind":{"mime":"image/gif"},"content":"R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="},{"name":"2x2.png","aliases":["2x2-transparent.png"],"kind":{"mime":"image/png"},"content":"iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAC0lEQVQI12NgQAcAABIAAe+JVKQAAAAASUVORK5CYII="},{"name":"3x2.png","aliases":["3x2-transparent.png"],"kind":{"mime":"image/png"},"content":"iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAC0lEQVQI12NgwAUAABoAASRETuUAAAAASUVORK5CYII="},{"name":"32x32.png","aliases":["32x32-transparent.png"],"kind":{"mime":"image/png"},"content":"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGklEQVRYw+3BAQEAAACCIP+vbkhAAQAAAO8GECAAAZf3V9cAAAAASUVORK5CYII="},{"name":"addthis_widget.js","aliases":["addthis.com/addthis_widget.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB3aW5kb3cuYWRkdGhpcyA9IHsKICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBub29wZm4sCiAgICAgICAgYnV0dG9uOiBub29wZm4sCiAgICAgICAgY291bnRlcjogbm9vcGZuLAogICAgICAgIGluaXQ6IG5vb3BmbiwKICAgICAgICBsYXllcnM6IG5vb3BmbiwKICAgICAgICByZWFkeTogbm9vcGZuLAogICAgICAgIHNoYXJlY291bnRlcnM6IHsKICAgICAgICAgICAgZ2V0U2hhcmVDb3VudHM6IG5vb3BmbgogICAgICAgIH0sCiAgICAgICAgdG9vbGJveDogbm9vcGZuLAogICAgICAgIHVwZGF0ZTogbm9vcGZuCiAgICB9Owp9KSgpOwo="},{"name":"amazon_ads.js","aliases":["amazon-adsystem.com/aax2/amzn_ads.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBpZiAoIGFtem5hZHMgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHcgPSB3aW5kb3c7CiAgICB2YXIgbm9vcGZuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgOwogICAgfS5iaW5kKCk7CiAgICB2YXIgYW16bmFkcyA9IHsKICAgICAgICBhcHBlbmRTY3JpcHRUYWc6IG5vb3BmbiwKICAgICAgICBhcHBlbmRUYXJnZXRpbmdUb0FkU2VydmVyVXJsOiBub29wZm4sCiAgICAgICAgYXBwZW5kVGFyZ2V0aW5nVG9RdWVyeVN0cmluZzogbm9vcGZuLAogICAgICAgIGNsZWFyVGFyZ2V0aW5nRnJvbUdQVEFzeW5jOiBub29wZm4sCiAgICAgICAgZG9BbGxUYXNrczogbm9vcGZuLAogICAgICAgIGRvR2V0QWRzQXN5bmM6IG5vb3BmbiwKICAgICAgICBkb1Rhc2s6IG5vb3BmbiwKICAgICAgICBkZXRlY3RJZnJhbWVBbmRHZXRVUkw6IG5vb3BmbiwKICAgICAgICBnZXRBZHM6IG5vb3BmbiwKICAgICAgICBnZXRBZHNBc3luYzogbm9vcGZuLAogICAgICAgIGdldEFkRm9yU2xvdDogbm9vcGZuLAogICAgICAgIGdldEFkc0NhbGxiYWNrOiBub29wZm4sCiAgICAgICAgZ2V0RGlzcGxheUFkczogbm9vcGZuLAogICAgICAgIGdldERpc3BsYXlBZHNBc3luYzogbm9vcGZuLAogICAgICAgIGdldERpc3BsYXlBZHNDYWxsYmFjazogbm9vcGZuLAogICAgICAgIGdldEtleXM6IG5vb3BmbiwKICAgICAgICBnZXRSZWZlcnJlclVSTDogbm9vcGZuLAogICAgICAgIGdldFNjcmlwdFNvdXJjZTogbm9vcGZuLAogICAgICAgIGdldFRhcmdldGluZzogbm9vcGZuLAogICAgICAgIGdldFRva2Vuczogbm9vcGZuLAogICAgICAgIGdldFZhbGlkTWlsbGlzZWNvbmRzOiBub29wZm4sCiAgICAgICAgZ2V0VmlkZW9BZHM6IG5vb3BmbiwKICAgICAgICBnZXRWaWRlb0Fkc0FzeW5jOiBub29wZm4sCiAgICAgICAgZ2V0VmlkZW9BZHNDYWxsYmFjazogbm9vcGZuLAogICAgICAgIGhhbmRsZUNhbGxCYWNrOiBub29wZm4sCiAgICAgICAgaGFzQWRzOiBub29wZm4sCiAgICAgICAgcmVuZGVyQWQ6IG5vb3BmbiwKICAgICAgICBzYXZlQWRzOiBub29wZm4sCiAgICAgICAgc2V0VGFyZ2V0aW5nOiBub29wZm4sCiAgICAgICAgc2V0VGFyZ2V0aW5nRm9yR1BUQXN5bmM6IG5vb3BmbiwKICAgICAgICBzZXRUYXJnZXRpbmdGb3JHUFRTeW5jOiBub29wZm4sCiAgICAgICAgdHJ5R2V0QWRzQXN5bmM6IG5vb3BmbiwKICAgICAgICB1cGRhdGVBZHM6IG5vb3BmbgogICAgfTsKICAgIHcuYW16bmFkcyA9IGFtem5hZHM7CiAgICB3LmFtem5fYWRzID0gdy5hbXpuX2FkcyB8fCBub29wZm47CiAgICB3LmFheF93cml0ZSA9IHcuYWF4X3dyaXRlIHx8IG5vb3BmbjsKICAgIHcuYWF4X3JlbmRlcl9hZCA9IHcuYWF4X3JlbmRlcl9hZCB8fCBub29wZm47Cn0pKCk7Cg=="},{"name":"amazon_apstag.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgovLyBodHRwczovL3d3dy5yZWRkaXQuY29tL3IvdUJsb2NrT3JpZ2luL2NvbW1lbnRzL2doanFwaC8KLy8gaHR0cHM6Ly9naXRodWIuY29tL05hbm9NZW93L1F1aWNrUmVwb3J0cy9pc3N1ZXMvMzcxNwovLyBodHRwczovL3d3dy5yZWRkaXQuY29tL3IvdUJsb2NrT3JpZ2luL2NvbW1lbnRzL3F5eDdlbi8KCi8vIGh0dHBzOi8vc2VhcmNoZm94Lm9yZy9tb3ppbGxhLWNlbnRyYWwvc291cmNlL2Jyb3dzZXIvZXh0ZW5zaW9ucy93ZWJjb21wYXQvc2hpbXMvYXBzdGFnLmpzCi8vICAgSW1wb3J0IHF1ZXVlLXJlbGF0ZWQgaW5pdGlhbGl6YXRpb24gY29kZS4KCihmdW5jdGlvbigpIHsKICAgICd1c2Ugc3RyaWN0JzsKICAgIGNvbnN0IHcgPSB3aW5kb3c7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgICAgICA7IC8vIGpzaGludCBpZ25vcmU6bGluZQogICAgfS5iaW5kKCk7CiAgICBjb25zdCBfUSA9IHcuYXBzdGFnICYmIHcuYXBzdGFnLl9RIHx8IFtdOwogICAgY29uc3QgYXBzdGFnID0gewogICAgICAgIF9RLAogICAgICAgIGZldGNoQmlkczogZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICBpZiAoIHR5cGVvZiBiID09PSAnZnVuY3Rpb24nICkgewogICAgICAgICAgICAgICAgYihbXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGluaXQ6IG5vb3BmbiwKICAgICAgICBzZXREaXNwbGF5Qmlkczogbm9vcGZuLAogICAgICAgIHRhcmdldGluZ0tleXM6IG5vb3BmbiwKICAgIH07CiAgICB3LmFwc3RhZyA9IGFwc3RhZzsKICAgIF9RLnB1c2ggPSBmdW5jdGlvbihwcmVmaXgsIGFyZ3MpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBzd2l0Y2ggKHByZWZpeCkgewogICAgICAgICAgICBjYXNlICdmJzoKICAgICAgICAgICAgICAgIGFwc3RhZy5mZXRjaEJpZHMoLi4uYXJncyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgY29uc29sZS50cmFjZShlKTsKICAgICAgICB9CiAgICB9OwogICAgZm9yICggY29uc3QgY21kIG9mIF9RICkgewogICAgICAgIF9RLnB1c2goY21kKTsKICAgIH0KfSkoKTsK"},{"name":"ampproject_v0.js","aliases":["ampproject.org/v0.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuaGVhZDsKICAgIGlmICggIWhlYWQgKSB7IHJldHVybjsgfQogICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogICAgc3R5bGUudGV4dENvbnRlbnQgPSBbCiAgICAgICAgJ2JvZHkgeycsCiAgICAgICAgJyAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7JywKICAgICAgICAnICBvdmVyZmxvdzogdW5zZXQgIWltcG9ydGFudDsnLAogICAgICAgICd9JwogICAgXS5qb2luKCdcbicpOwogICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7Cn0pKCk7Cg=="},{"name":"chartbeat.js","aliases":["static.chartbeat.com/chartbeat.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB3aW5kb3cucFNVUEVSRkxZID0gewogICAgICAgIGFjdGl2aXR5OiBub29wZm4sCiAgICAgICAgdmlydHVhbFBhZ2U6IG5vb3BmbgogICAgfTsKfSkoKTsK"},{"name":"doubleclick_instream_ad_status.js","aliases":["doubleclick.net/instream/ad_status.js"],"kind":{"mime":"application/javascript"},"content":"d2luZG93Lmdvb2dsZV9hZF9zdGF0dXMgPSAxOwo="},{"name":"empty","aliases":[],"kind":{"mime":"application/octet-stream"},"content":""},{"name":"fingerprint2.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxNC1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBsZXQgYnJvd3NlcklkID0gJyc7CiAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCA4OyBpKysgKSB7CiAgICAgICAgYnJvd3NlcklkICs9IChNYXRoLnJhbmRvbSgpICogMHgxMDAwMCArIDB4MTAwMCB8IDApLnRvU3RyaW5nKDE2KS5zbGljZSgtNCk7CiAgICB9CiAgICBjb25zdCBmcDIgPSBmdW5jdGlvbigpe307CiAgICBmcDIuZ2V0ID0gZnVuY3Rpb24ob3B0cywgY2IpIHsKICAgICAgICBpZiAoICFjYiAgKSB7IGNiID0gb3B0czsgfQogICAgICAgIHNldFRpbWVvdXQoKCApID0+IHsgY2IoYnJvd3NlcklkLCBbXSk7IH0sIDEpOwogICAgfTsKICAgIGZwMi5wcm90b3R5cGUgPSB7CiAgICAgICAgZ2V0OiBmcDIuZ2V0CiAgICB9OwogICAgd2luZG93LkZpbmdlcnByaW50MiA9IGZwMjsKfSkoKTsK"},{"name":"fingerprint3.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAyMi1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCB2aXNpdG9ySWQgPSAoKCApID0+IHsKICAgICAgICBsZXQgaWQgPSAnJzsKICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCA4OyBpKysgKSB7CiAgICAgICAgICAgIGlkICs9IChNYXRoLnJhbmRvbSgpICogMHgxMDAwMCArIDB4MTAwMCB8IDApLnRvU3RyaW5nKDE2KS5zbGljZSgtNCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpZDsKICAgIH0pKCk7CiAgICBjb25zdCBGaW5nZXJwcmludEpTID0gY2xhc3MgewogICAgICAgIHN0YXRpYyBoYXNoQ29tcG9uZW50cygpIHsKICAgICAgICAgICAgcmV0dXJuIHZpc2l0b3JJZDsKICAgICAgICB9CiAgICAgICAgc3RhdGljIGxvYWQoKSB7CiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEZpbmdlcnByaW50SlMoKSk7CiAgICAgICAgfQogICAgICAgIGdldCgpIHsKICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7CiAgICAgICAgICAgICAgICB2aXNpdG9ySWQsCiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CiAgICB3aW5kb3cuRmluZ2VycHJpbnRKUyA9IEZpbmdlcnByaW50SlM7Cn0pKCk7Cg=="},{"name":"google-analytics_analytics.js","aliases":["google-analytics.com/analytics.js","googletagmanager_gtm.js","googletagmanager.com/gtm.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vYW5hbHl0aWNzanMvCiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICAvLwogICAgY29uc3QgVHJhY2tlciA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIGNvbnN0IHAgPSBUcmFja2VyLnByb3RvdHlwZTsKICAgIHAuZ2V0ID0gbm9vcGZuOwogICAgcC5zZXQgPSBub29wZm47CiAgICBwLnNlbmQgPSBub29wZm47CiAgICAvLwogICAgY29uc3QgdyA9IHdpbmRvdzsKICAgIGNvbnN0IGdhTmFtZSA9IHcuR29vZ2xlQW5hbHl0aWNzT2JqZWN0IHx8ICdnYSc7CiAgICBjb25zdCBnYVF1ZXVlID0gd1tnYU5hbWVdOwogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VCbG9ja09yaWdpbi91QXNzZXRzL3B1bGwvNDExNQogICAgY29uc3QgZ2EgPSBmdW5jdGlvbigpIHsKICAgICAgICBjb25zdCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoOwogICAgICAgIGlmICggbGVuID09PSAwICkgeyByZXR1cm47IH0KICAgICAgICBjb25zdCBhcmdzID0gQXJyYXkuZnJvbShhcmd1bWVudHMpOwogICAgICAgIGxldCBmbjsKICAgICAgICBsZXQgYSA9IGFyZ3NbbGVuLTFdOwogICAgICAgIGlmICggYSBpbnN0YW5jZW9mIE9iamVjdCAmJiBhLmhpdENhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gKSB7CiAgICAgICAgICAgIGZuID0gYS5oaXRDYWxsYmFjazsKICAgICAgICB9IGVsc2UgaWYgKCBhIGluc3RhbmNlb2YgRnVuY3Rpb24gKSB7CiAgICAgICAgICAgIGZuID0gKCApID0+IHsgYShnYS5jcmVhdGUoKSk7IH07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgcG9zID0gYXJncy5pbmRleE9mKCdoaXRDYWxsYmFjaycpOwogICAgICAgICAgICBpZiAoIHBvcyAhPT0gLTEgJiYgYXJnc1twb3MrMV0gaW5zdGFuY2VvZiBGdW5jdGlvbiApIHsKICAgICAgICAgICAgICAgIGZuID0gYXJnc1twb3MrMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCBmbiBpbnN0YW5jZW9mIEZ1bmN0aW9uID09PSBmYWxzZSApIHsgcmV0dXJuOyB9CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm4oKTsKICAgICAgICB9IGNhdGNoIChleCkgewogICAgICAgIH0KICAgIH07CiAgICBnYS5jcmVhdGUgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gbmV3IFRyYWNrZXIoKTsKICAgIH07CiAgICBnYS5nZXRCeU5hbWUgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gbmV3IFRyYWNrZXIoKTsKICAgIH07CiAgICBnYS5nZXRBbGwgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gW25ldyBUcmFja2VyKCldOwogICAgfTsKICAgIGdhLnJlbW92ZSA9IG5vb3BmbjsKICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS91QmxvY2tPcmlnaW4vdUFzc2V0cy9pc3N1ZXMvMjEwNwogICAgZ2EubG9hZGVkID0gdHJ1ZTsKICAgIHdbZ2FOYW1lXSA9IGdhOwogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrL2lzc3Vlcy8zMDc1CiAgICBjb25zdCBkbCA9IHcuZGF0YUxheWVyOwogICAgaWYgKCBkbCBpbnN0YW5jZW9mIE9iamVjdCApIHsKICAgICAgICBpZiAoIGRsLmhpZGUgaW5zdGFuY2VvZiBPYmplY3QgJiYgdHlwZW9mIGRsLmhpZGUuZW5kID09PSAnZnVuY3Rpb24nICkgewogICAgICAgICAgICBkbC5oaWRlLmVuZCgpOwogICAgICAgICAgICBkbC5oaWRlLmVuZCA9ICgpPT57fTsKICAgICAgICB9CiAgICAgICAgaWYgKCB0eXBlb2YgZGwucHVzaCA9PT0gJ2Z1bmN0aW9uJyApIHsKICAgICAgICAgICAgY29uc3QgZG9DYWxsYmFjayA9IGZ1bmN0aW9uKGl0ZW0pIHsKICAgICAgICAgICAgICAgIGlmICggaXRlbSBpbnN0YW5jZW9mIE9iamVjdCA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQogICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgaXRlbS5ldmVudENhbGxiYWNrICE9PSAnZnVuY3Rpb24nICkgeyByZXR1cm47IH0KICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoaXRlbS5ldmVudENhbGxiYWNrLCAxKTsKICAgICAgICAgICAgICAgIGl0ZW0uZXZlbnRDYWxsYmFjayA9ICgpPT57fTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZGwucHVzaCA9IG5ldyBQcm94eShkbC5wdXNoLCB7CiAgICAgICAgICAgICAgICBhcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CiAgICAgICAgICAgICAgICAgICAgZG9DYWxsYmFjayhhcmdzWzBdKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKCBBcnJheS5pc0FycmF5KGRsKSApIHsKICAgICAgICAgICAgICAgIGNvbnN0IHEgPSBkbC5zbGljZSgpOwogICAgICAgICAgICAgICAgZm9yICggY29uc3QgaXRlbSBvZiBxICkgewogICAgICAgICAgICAgICAgICAgIGRvQ2FsbGJhY2soaXRlbSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAvLyBlbXB0eSBnYSBxdWV1ZQogICAgaWYgKCBnYVF1ZXVlIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQXJyYXkuaXNBcnJheShnYVF1ZXVlLnEpICkgewogICAgICAgIGNvbnN0IHEgPSBnYVF1ZXVlLnEuc2xpY2UoKTsKICAgICAgICBnYVF1ZXVlLnEubGVuZ3RoID0gMDsKICAgICAgICBmb3IgKCBjb25zdCBlbnRyeSBvZiBxICkgewogICAgICAgICAgICBnYSguLi5lbnRyeSk7CiAgICAgICAgfQogICAgfQp9KSgpOwo="},{"name":"google-analytics_cx_api.js","aliases":["google-analytics.com/cx/api.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB3aW5kb3cuY3hBcGkgPSB7CiAgICAgICAgY2hvb3NlVmFyaWF0aW9uOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfSwKICAgICAgICBnZXRDaG9zZW5WYXJpYXRpb246IG5vb3BmbiwKICAgICAgICBzZXRBbGxvd0hhc2g6IG5vb3BmbiwKICAgICAgICBzZXRDaG9zZW5WYXJpYXRpb246IG5vb3BmbiwKICAgICAgICBzZXRDb29raWVQYXRoOiBub29wZm4sCiAgICAgICAgc2V0RG9tYWluTmFtZTogbm9vcGZuCiAgICAgICAgfTsKfSkoKTsK"},{"name":"google-analytics_ga.js","aliases":["google-analytics.com/ga.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICAvLwogICAgY29uc3QgR2FxID0gZnVuY3Rpb24oKSB7CiAgICB9OwogICAgR2FxLnByb3RvdHlwZS5OYSA9IG5vb3BmbjsKICAgIEdhcS5wcm90b3R5cGUuTyA9IG5vb3BmbjsKICAgIEdhcS5wcm90b3R5cGUuU2EgPSBub29wZm47CiAgICBHYXEucHJvdG90eXBlLlRhID0gbm9vcGZuOwogICAgR2FxLnByb3RvdHlwZS5WYSA9IG5vb3BmbjsKICAgIEdhcS5wcm90b3R5cGUuX2NyZWF0ZUFzeW5jVHJhY2tlciA9IG5vb3BmbjsKICAgIEdhcS5wcm90b3R5cGUuX2dldEFzeW5jVHJhY2tlciA9IG5vb3BmbjsKICAgIEdhcS5wcm90b3R5cGUuX2dldFBsdWdpbiA9IG5vb3BmbjsKICAgIEdhcS5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uKGEpIHsKICAgICAgICBpZiAoIHR5cGVvZiBhID09PSAnZnVuY3Rpb24nICkgewogICAgICAgICAgICBhKCk7IHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKCBBcnJheS5pc0FycmF5KGEpID09PSBmYWxzZSApIHsgcmV0dXJuOyB9CiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2dhanMvbWV0aG9kcy9nYUpTQXBpRG9tYWluRGlyZWN0b3J5I19nYXQuR0FfVHJhY2tlcl8uX2xpbmsKICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdUJsb2NrT3JpZ2luL3VCbG9jay1pc3N1ZXMvaXNzdWVzLzE4MDcKICAgICAgICBpZiAoCiAgICAgICAgICAgIHR5cGVvZiBhWzBdID09PSAnc3RyaW5nJyAmJgogICAgICAgICAgICAvKF58XC4pX2xpbmskLy50ZXN0KGFbMF0pICYmCiAgICAgICAgICAgIHR5cGVvZiBhWzFdID09PSAnc3RyaW5nJwogICAgICAgICkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihhWzFdKTsKICAgICAgICAgICAgfSBjYXRjaChleCkgewogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb3JoaWxsL3VCbG9jay9pc3N1ZXMvMjE2MgogICAgICAgIGlmICggYVswXSA9PT0gJ19zZXQnICYmIGFbMV0gPT09ICdoaXRDYWxsYmFjaycgJiYgdHlwZW9mIGFbMl0gPT09ICdmdW5jdGlvbicgKSB7CiAgICAgICAgICAgIGFbMl0oKTsKICAgICAgICB9CiAgICB9OwogICAgLy8KICAgIGNvbnN0IHRyYWNrZXIgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgY29uc3Qgb3V0ID0ge307CiAgICAgICAgY29uc3QgYXBpID0gWwogICAgICAgICAgICAnX2FkZElnbm9yZWRPcmdhbmljIF9hZGRJZ25vcmVkUmVmIF9hZGRJdGVtIF9hZGRPcmdhbmljJywKICAgICAgICAgICAgJ19hZGRUcmFucyBfY2xlYXJJZ25vcmVkT3JnYW5pYyBfY2xlYXJJZ25vcmVkUmVmIF9jbGVhck9yZ2FuaWMnLAogICAgICAgICAgICAnX2Nvb2tpZVBhdGhDb3B5IF9kZWxldGVDdXN0b21WYXIgX2dldE5hbWUgX3NldEFjY291bnQnLAogICAgICAgICAgICAnX2dldEFjY291bnQgX2dldENsaWVudEluZm8gX2dldERldGVjdEZsYXNoIF9nZXREZXRlY3RUaXRsZScsCiAgICAgICAgICAgICdfZ2V0TGlua2VyVXJsIF9nZXRMb2NhbEdpZlBhdGggX2dldFNlcnZpY2VNb2RlIF9nZXRWZXJzaW9uJywKICAgICAgICAgICAgJ19nZXRWaXNpdG9yQ3VzdG9tVmFyIF9pbml0RGF0YSBfbGlua0J5UG9zdCcsCiAgICAgICAgICAgICdfc2V0QWxsb3dBbmNob3IgX3NldEFsbG93SGFzaCBfc2V0QWxsb3dMaW5rZXIgX3NldENhbXBDb250ZW50S2V5JywKICAgICAgICAgICAgJ19zZXRDYW1wTWVkaXVtS2V5IF9zZXRDYW1wTmFtZUtleSBfc2V0Q2FtcE5PS2V5IF9zZXRDYW1wU291cmNlS2V5JywKICAgICAgICAgICAgJ19zZXRDYW1wVGVybUtleSBfc2V0Q2FtcGFpZ25Db29raWVUaW1lb3V0IF9zZXRDYW1wYWlnblRyYWNrIF9zZXRDbGllbnRJbmZvJywKICAgICAgICAgICAgJ19zZXRDb29raWVQYXRoIF9zZXRDb29raWVQZXJzaXN0ZW5jZSBfc2V0Q29va2llVGltZW91dCBfc2V0Q3VzdG9tVmFyJywKICAgICAgICAgICAgJ19zZXREZXRlY3RGbGFzaCBfc2V0RGV0ZWN0VGl0bGUgX3NldERvbWFpbk5hbWUgX3NldExvY2FsR2lmUGF0aCcsCiAgICAgICAgICAgICdfc2V0TG9jYWxSZW1vdGVTZXJ2ZXJNb2RlIF9zZXRMb2NhbFNlcnZlck1vZGUgX3NldFJlZmVycmVyT3ZlcnJpZGUgX3NldFJlbW90ZVNlcnZlck1vZGUnLAogICAgICAgICAgICAnX3NldFNhbXBsZVJhdGUgX3NldFNlc3Npb25UaW1lb3V0IF9zZXRTaXRlU3BlZWRTYW1wbGVSYXRlIF9zZXRTZXNzaW9uQ29va2llVGltZW91dCcsCiAgICAgICAgICAgICdfc2V0VmFyIF9zZXRWaXNpdG9yQ29va2llVGltZW91dCBfdHJhY2tFdmVudCBfdHJhY2tQYWdlTG9hZFRpbWUnLAogICAgICAgICAgICAnX3RyYWNrUGFnZXZpZXcgX3RyYWNrU29jaWFsIF90cmFja1RpbWluZyBfdHJhY2tUcmFucycsCiAgICAgICAgICAgICdfdmlzaXRDb2RlJwogICAgICAgIF0uam9pbignICcpLnNwbGl0KC9ccysvKTsKICAgICAgICBmb3IgKCBjb25zdCBtZXRob2Qgb2YgYXBpICkgewogICAgICAgICAgICBvdXRbbWV0aG9kXSA9IG5vb3BmbjsKICAgICAgICB9CiAgICAgICAgb3V0Ll9nZXRMaW5rZXJVcmwgPSBmdW5jdGlvbihhKSB7CiAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgIH07CiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0FkZ3VhcmRUZWFtL1NjcmlwdGxldHMvaXNzdWVzLzE1NAogICAgICAgIG91dC5fbGluayA9IGZ1bmN0aW9uKGEpIHsKICAgICAgICAgICAgaWYgKCB0eXBlb2YgYSAhPT0gJ3N0cmluZycgKSB7IHJldHVybjsgfQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihhKTsKICAgICAgICAgICAgfSBjYXRjaChleCkgewogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3V0OwogICAgfSkoKTsKICAgIC8vCiAgICBjb25zdCBHYXQgPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICBHYXQucHJvdG90eXBlLl9hbm9ueW1pemVJUCA9IG5vb3BmbjsKICAgIEdhdC5wcm90b3R5cGUuX2NyZWF0ZVRyYWNrZXIgPSBub29wZm47CiAgICBHYXQucHJvdG90eXBlLl9mb3JjZVNTTCA9IG5vb3BmbjsKICAgIEdhdC5wcm90b3R5cGUuX2dldFBsdWdpbiA9IG5vb3BmbjsKICAgIEdhdC5wcm90b3R5cGUuX2dldFRyYWNrZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdHJhY2tlcjsKICAgIH07CiAgICBHYXQucHJvdG90eXBlLl9nZXRUcmFja2VyQnlOYW1lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRyYWNrZXI7CiAgICB9OwogICAgR2F0LnByb3RvdHlwZS5fZ2V0VHJhY2tlcnMgPSBub29wZm47CiAgICBHYXQucHJvdG90eXBlLmFhID0gbm9vcGZuOwogICAgR2F0LnByb3RvdHlwZS5hYiA9IG5vb3BmbjsKICAgIEdhdC5wcm90b3R5cGUuaGIgPSBub29wZm47CiAgICBHYXQucHJvdG90eXBlLmxhID0gbm9vcGZuOwogICAgR2F0LnByb3RvdHlwZS5vYSA9IG5vb3BmbjsKICAgIEdhdC5wcm90b3R5cGUucGEgPSBub29wZm47CiAgICBHYXQucHJvdG90eXBlLnUgPSBub29wZm47CiAgICBjb25zdCBnYXQgPSBuZXcgR2F0KCk7CiAgICB3aW5kb3cuX2dhdCA9IGdhdDsKICAgIC8vCiAgICBjb25zdCBnYXEgPSBuZXcgR2FxKCk7CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgY29uc3QgYWEgPSB3aW5kb3cuX2dhcSB8fCBbXTsKICAgICAgICBpZiAoIEFycmF5LmlzQXJyYXkoYWEpICkgewogICAgICAgICAgICB3aGlsZSAoIGFhWzBdICkgewogICAgICAgICAgICAgICAgZ2FxLnB1c2goYWEuc2hpZnQoKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KSgpOwogICAgd2luZG93Ll9nYXEgPSBnYXEucWYgPSBnYXE7Cn0pKCk7Cg=="},{"name":"google-analytics_inpage_linkid.js","aliases":["google-analytics.com/inpage_linkid.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICB3aW5kb3cuX2dhcSA9IHdpbmRvdy5fZ2FxIHx8IHsKICAgICAgICBwdXNoOiBmdW5jdGlvbigpIHsKICAgICAgICB9CiAgICB9Owp9KSgpOwo="},{"name":"google-ima.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqCiAqIAogKiBTb3VyY2UgYmVsb3cgaXMgYmFzZWQgb24gTW96aWxsYSBzb3VyY2UgY29kZToKICogaHR0cHM6Ly9zZWFyY2hmb3gub3JnL21vemlsbGEtY2VudHJhbC9yZXYvZDMxN2U5M2Q5YTU5YzllNGMwNmFkYTg1ZmJmZjlmNmExY2VhYWFkMS9icm93c2VyL2V4dGVuc2lvbnMvd2ViY29tcGF0L3NoaW1zL2dvb2dsZS1pbWEuanMKICogCiAqIE1vZGlmaWNhdGlvbnMgdG8gdGhlIG9yaWdpbmFsIGNvZGUgYmVsb3cgdGhpcyBjb21tZW50OgogKiAtIEF2b2lkIEpTIHN5bnRheCBub3Qgc3VwcG9ydGVkIGJ5IG9sZGVyIGJyb3dzZXIgdmVyc2lvbnMKICogLSBBZGQgbWlzc2luZyBzaGltIGV2ZW50CiAqIC0gTW9kaWZpZWQgdG8gYXZvaWQganNoaW50IHdhcm5pbmdzIGFzIHBlciB1Qk8ncyBjb25maWcKICogCiAqIFJlbGF0ZWQgaXNzdWU6CiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL3VCbG9ja09yaWdpbi91QmxvY2staXNzdWVzL2lzc3Vlcy8yMTU4CiAqIAoqKi8KIAondXNlIHN0cmljdCc7CgovKiBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAqIExpY2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXMKICogZmlsZSwgWW91IGNhbiBvYnRhaW4gb25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9yZy9NUEwvMi4wLy4gKi8KCi8qKgogKiBCdWcgMTcxMzY5MCAtIFNoaW0gR29vZ2xlIEludGVyYWN0aXZlIE1lZGlhIEFkcyBpbWEzLmpzCiAqCiAqIE1hbnkgc2l0ZXMgdXNlIGltYTMuanMgZm9yIGFkIGJpZGRpbmcgYW5kIHBsYWNlbWVudCwgb2Z0ZW4gaW4gY29uanVuY3Rpb24KICogd2l0aCBHb29nbGUgUHVibGlzaGVyIFRhZ3MsIFByZWJpZC5qcyBhbmQvb3Igb3RoZXIgc2NyaXB0cy4gVGhpcyBzaGltCiAqIHByb3ZpZGVzIGEgc3R1YmJlZC1vdXQgdmVyc2lvbiBvZiB0aGUgQVBJIHdoaWNoIGhlbHBzIHdvcmsgYXJvdW5kIHJlbGF0ZWQKICogc2l0ZSBicmVha2FnZSwgc3VjaCBhcyBibGFjayBieG9lcyB3aGVyZSB2aWRlb3Mgb3VnaHQgdG8gYmUgcGxhY2VkLgogKi8KCmlmICghd2luZG93Lmdvb2dsZSB8fCAhd2luZG93Lmdvb2dsZS5pbWEgfHwgIXdpbmRvdy5nb29nbGUuaW1hLlZFUlNJT04pIHsKICBjb25zdCBWRVJTSU9OID0gIjMuNTE3LjIiOwoKICBjb25zdCBDaGVja0NhbkF1dG9wbGF5ID0gKGZ1bmN0aW9uKCkgewogICAgLy8gU291cmNlZCBmcm9tOiBodHRwczovL3NlYXJjaGZveC5vcmcvbW96aWxsYS1jZW50cmFsL3NvdXJjZS9kb20vbWVkaWEvZ3Rlc3QvbmVnYXRpdmVfZHVyYXRpb24ubXA0CiAgICBjb25zdCBURVNUX1ZJREVPID0gbmV3IEJsb2IoCiAgICAgIFsKICAgICAgICBuZXcgVWludDMyQXJyYXkoWwogICAgICAgICAgNDY5NzYyMDQ4LAogICAgICAgICAgMTg4NzAwNzg0NiwKICAgICAgICAgIDE3NTIzOTIwMzYsCiAgICAgICAgICAwLAogICAgICAgICAgOTEzMjczNzA1LAogICAgICAgICAgMTcxNzk4NzY5NiwKICAgICAgICAgIDgyODYwMTk1MywKICAgICAgICAgIC0xODc4OTE3MTIwLAogICAgICAgICAgMTk4NzAxNDUwOSwKICAgICAgICAgIDE4MTE5MzkzMjgsCiAgICAgICAgICAxNjg0NTY3NjYxLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgLTQwMjQ1NjU3NiwKICAgICAgICAgIDAsCiAgICAgICAgICAyNTYsCiAgICAgICAgICAxLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAyNTYsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAyNTYsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICA2NCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDMzNTU0NDMyLAogICAgICAgICAgLTIwMTI2MTA1NiwKICAgICAgICAgIDE4MDE1NDg0MDQsCiAgICAgICAgICAxNzQ0ODMwNDY0LAogICAgICAgICAgMTY4NDU2NDg1MiwKICAgICAgICAgIDI1MTY1ODI0MSwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAxNjc3NzIxNiwKICAgICAgICAgIDAsCiAgICAgICAgICAtMSwKICAgICAgICAgIC0xLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDI1NiwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDI1NiwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDY0LAogICAgICAgICAgNSwKICAgICAgICAgIDUzMjUwLAogICAgICAgICAgLTIwODAzMDkyNDgsCiAgICAgICAgICAxNjM0Mjk2OTQxLAogICAgICAgICAgNzM4MTk3NTA0LAogICAgICAgICAgMTY4NDU2MzA1MywKICAgICAgICAgIDEsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgLTIxMzc2MTQzMzYsCiAgICAgICAgICAtMSwKICAgICAgICAgIC0xLAogICAgICAgICAgNTAyNjEsCiAgICAgICAgICA3NTQ5NzQ3MjAsCiAgICAgICAgICAxOTE5NzA2MjE2LAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAxNzAxMDc5NDE0LAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMTcwMTA3OTM4MiwKICAgICAgICAgIDE4NTE4NjkyOTUsCiAgICAgICAgICAxOTE5MjQ5NTA4LAogICAgICAgICAgMTY3NzcyMTYsCiAgICAgICAgICAxODUyNDAyOTc5LAogICAgICAgICAgMTAyLAogICAgICAgICAgMTc1MjAwNDExNiwKICAgICAgICAgIDEwMCwKICAgICAgICAgIDEsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDE4NTI0MDA2NzYsCiAgICAgICAgICAxMDIsCiAgICAgICAgICAxNzAxOTk1NTQ4LAogICAgICAgICAgMTAyLAogICAgICAgICAgMCwKICAgICAgICAgIDEsCiAgICAgICAgICAxODE5NDQwMzk2LAogICAgICAgICAgMzIsCiAgICAgICAgICAxLAogICAgICAgICAgMTY1MTc5OTAxMSwKICAgICAgICAgIDEwOCwKICAgICAgICAgIDE5MzcwMTE2MDcsCiAgICAgICAgICAxMDAsCiAgICAgICAgICAwLAogICAgICAgICAgMSwKICAgICAgICAgIDE2Njg3MDI1OTksCiAgICAgICAgICA0OSwKICAgICAgICAgIDAsCiAgICAgICAgICAxLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMzM1NTU3MTIsCiAgICAgICAgICA0NzE4ODAwLAogICAgICAgICAgNDcxODU5MiwKICAgICAgICAgIDAsCiAgICAgICAgICA2NTUzNiwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMTY3NzY5ODQsCiAgICAgICAgICAxNjMwNjAxMjE2LAogICAgICAgICAgMjExOTM1OTAsCiAgICAgICAgICAtMTQ3NDU1MDAsCiAgICAgICAgICAxNzI5NjI2MzM3LAogICAgICAgICAgLTE0MDcyNTQ0MjgsCiAgICAgICAgICA4OTE2MTk0NSwKICAgICAgICAgIDEwNDkwMTksCiAgICAgICAgICA5NDUzMDU2LAogICAgICAgICAgLTI1MTYxMTEyNSwKICAgICAgICAgIDI3MjY5NTA3LAogICAgICAgICAgLTM3OTA1ODY4OCwKICAgICAgICAgIC0xMzI5MDI0MzkyLAogICAgICAgICAgMjY4NDM1NDU2LAogICAgICAgICAgMTkzNzAxMTgyNywKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMjY4NDM1NDU2LAogICAgICAgICAgMTY2ODUxMDgzNSwKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMzM1NTQ0MzIwLAogICAgICAgICAgMjA1NDM4NjgwMywKICAgICAgICAgIDAsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDI2ODQzNTQ1NiwKICAgICAgICAgIDE4Njg3ODg4NTEsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDY3MTA4ODY0MCwKICAgICAgICAgIDIwMTk5MTUzNzMsCiAgICAgICAgICA1MzY4NzA5MTIsCiAgICAgICAgICAyMDE5OTE0MzU2LAogICAgICAgICAgMCwKICAgICAgICAgIDE2Nzc3MjE2LAogICAgICAgICAgMTY3NzcyMTYsCiAgICAgICAgICAwLAogICAgICAgICAgMCwKICAgICAgICAgIDAsCiAgICAgICAgXSksCiAgICAgIF0sCiAgICAgIHsgdHlwZTogInZpZGVvL21wNCIgfQogICAgKTsKCiAgICBsZXQgdGVzdFZpZGVvOwoKICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgaWYgKCF0ZXN0VmlkZW8pIHsKICAgICAgICB0ZXN0VmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOwogICAgICAgIHRlc3RWaWRlby5zdHlsZSA9CiAgICAgICAgICAicG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyBsZWZ0OjA7IHJpZ2h0OjA7IHotaW5kZXg6LTE7IGJvcmRlcjowIjsKICAgICAgICB0ZXN0VmlkZW8uc2V0QXR0cmlidXRlKCJtdXRlZCIsICJtdXRlZCIpOwogICAgICAgIHRlc3RWaWRlby5zZXRBdHRyaWJ1dGUoInBsYXlzaW5saW5lIiwgInBsYXlzaW5saW5lIik7CiAgICAgICAgdGVzdFZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoVEVTVF9WSURFTyk7CiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0VmlkZW8pOwogICAgICB9CiAgICAgIHJldHVybiB0ZXN0VmlkZW8ucGxheSgpOwogICAgfTsKICB9KSgpOwoKICBsZXQgaW1hID0ge307CgogIGNsYXNzIEFkRGlzcGxheUNvbnRhaW5lciB7CiAgICBkZXN0cm95KCkge30KICAgIGluaXRpYWxpemUoKSB7fQogIH0KCiAgY2xhc3MgSW1hU2RrU2V0dGluZ3MgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgIHRoaXMuYyA9IHRydWU7CiAgICAgIHRoaXMuZiA9IHt9OwogICAgICB0aGlzLmkgPSBmYWxzZTsKICAgICAgdGhpcy5sID0gIiI7CiAgICAgIHRoaXMucCA9ICIiOwogICAgICB0aGlzLnIgPSAwOwogICAgICB0aGlzLnQgPSAiIjsKICAgICAgdGhpcy52ID0gIiI7CiAgICB9CiAgICBnZXRDb21wYW5pb25CYWNrZmlsbCgpIHt9CiAgICBnZXREaXNhYmxlQ3VzdG9tUGxheWJhY2tGb3JJT1MxMFBsdXMoKSB7CiAgICAgIHJldHVybiB0aGlzLmk7CiAgICB9CiAgICBnZXRGZWF0dXJlRmxhZ3MoKSB7CiAgICAgIHJldHVybiB0aGlzLmY7CiAgICB9CiAgICBnZXRMb2NhbGUoKSB7CiAgICAgIHJldHVybiB0aGlzLmw7CiAgICB9CiAgICBnZXROdW1SZWRpcmVjdHMoKSB7CiAgICAgIHJldHVybiB0aGlzLnI7CiAgICB9CiAgICBnZXRQbGF5ZXJUeXBlKCkgewogICAgICByZXR1cm4gdGhpcy50OwogICAgfQogICAgZ2V0UGxheWVyVmVyc2lvbigpIHsKICAgICAgcmV0dXJuIHRoaXMudjsKICAgIH0KICAgIGdldFBwaWQoKSB7CiAgICAgIHJldHVybiB0aGlzLnA7CiAgICB9CiAgICBpc0Nvb2tpZXNFbmFibGVkKCkgewogICAgICByZXR1cm4gdGhpcy5jOwogICAgfQogICAgc2V0QXV0b1BsYXlBZEJyZWFrcygpIHt9CiAgICBzZXRDb21wYW5pb25CYWNrZmlsbCgpIHt9CiAgICBzZXRDb29raWVzRW5hYmxlZChjKSB7CiAgICAgIHRoaXMuYyA9ICEhYzsKICAgIH0KICAgIHNldERpc2FibGVDdXN0b21QbGF5YmFja0ZvcklPUzEwUGx1cyhpKSB7CiAgICAgIHRoaXMuaSA9ICEhaTsKICAgIH0KICAgIHNldEZlYXR1cmVGbGFncyhmKSB7CiAgICAgIHRoaXMuZiA9IGY7CiAgICB9CiAgICBzZXRMb2NhbGUobCkgewogICAgICB0aGlzLmwgPSBsOwogICAgfQogICAgc2V0TnVtUmVkaXJlY3RzKHIpIHsKICAgICAgdGhpcy5yID0gcjsKICAgIH0KICAgIHNldFBsYXllclR5cGUodCkgewogICAgICB0aGlzLnQgPSB0OwogICAgfQogICAgc2V0UGxheWVyVmVyc2lvbih2KSB7CiAgICAgIHRoaXMudiA9IHY7CiAgICB9CiAgICBzZXRQcGlkKHApIHsKICAgICAgdGhpcy5wID0gcDsKICAgIH0KICAgIHNldFNlc3Npb25JZCgvKnMqLykge30KICAgIHNldFZwYWlkQWxsb3dlZCgvKmEqLykge30KICAgIHNldFZwYWlkTW9kZSgvKm0qLykge30KICB9CiAgSW1hU2RrU2V0dGluZ3MuQ29tcGFuaW9uQmFja2ZpbGxNb2RlID0gewogICAgQUxXQVlTOiAiYWx3YXlzIiwKICAgIE9OX01BU1RFUl9BRDogIm9uX21hc3Rlcl9hZCIsCiAgfTsKICBJbWFTZGtTZXR0aW5ncy5WcGFpZE1vZGUgPSB7CiAgICBESVNBQkxFRDogMCwKICAgIEVOQUJMRUQ6IDEsCiAgICBJTlNFQ1VSRTogMiwKICB9OwoKICBjbGFzcyBFdmVudEhhbmRsZXIgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgIHRoaXMubGlzdGVuZXJzID0gbmV3IE1hcCgpOwogICAgfQoKICAgIF9kaXNwYXRjaChlKSB7CiAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzLmdldChlLnR5cGUpIHx8IFtdOwogICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIEFycmF5LmZyb20obGlzdGVuZXJzKSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBsaXN0ZW5lcihlKTsKICAgICAgICB9IGNhdGNoIChyKSB7CiAgICAgICAgICBjb25zb2xlLmVycm9yKHIpOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIGFkZEV2ZW50TGlzdGVuZXIodCwgYykgewogICAgICBpZiAoIXRoaXMubGlzdGVuZXJzLmhhcyh0KSkgewogICAgICAgIHRoaXMubGlzdGVuZXJzLnNldCh0LCBuZXcgU2V0KCkpOwogICAgICB9CiAgICAgIHRoaXMubGlzdGVuZXJzLmdldCh0KS5hZGQoYyk7CiAgICB9CgogICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCBjKSB7CiAgICAgIGNvbnN0IHR5cGVTZXQgPSB0aGlzLmxpc3RlbmVycy5nZXQodCk7CiAgICAgIGlmICghdHlwZVNldCkgeyByZXR1cm47IH0KICAgICAgdHlwZVNldC5kZWxldGUoYyk7CiAgICB9CiAgfQoKICBjbGFzcyBBZHNMb2FkZXIgZXh0ZW5kcyBFdmVudEhhbmRsZXIgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIHRoaXMuc2V0dGluZ3MgPSBuZXcgSW1hU2RrU2V0dGluZ3MoKTsKICAgIH0KICAgIGNvbnRlbnRDb21wbGV0ZSgpIHt9CiAgICBkZXN0cm95KCkge30KICAgIGdldFNldHRpbmdzKCkgewogICAgICByZXR1cm4gdGhpcy5zZXR0aW5nczsKICAgIH0KICAgIGdldFZlcnNpb24oKSB7CiAgICAgIHJldHVybiBWRVJTSU9OOwogICAgfQogICAgcmVxdWVzdEFkcygvKnIsIGMqLykgewogICAgICAvLyBJZiBhdXRvcGxheSBpcyBkaXNhYmxlZCBhbmQgdGhlIHBhZ2UgaXMgdHJ5aW5nIHRvIGF1dG9wbGF5IGEgdHJhY2tpbmcKICAgICAgLy8gYWQsIHRoZW4gSU1BIGZhaWxzIHdpdGggYW4gZXJyb3IsIGFuZCB0aGUgcGFnZSBpcyBleHBlY3RlZCB0byByZXF1ZXN0CiAgICAgIC8vIGFkcyBhZ2FpbiBsYXRlciB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0byBwbGF5LgogICAgICBDaGVja0NhbkF1dG9wbGF5KCkudGhlbigKICAgICAgICAoKSA9PiB7CiAgICAgICAgICBjb25zdCB7IEFEU19NQU5BR0VSX0xPQURFRCB9ID0gQWRzTWFuYWdlckxvYWRlZEV2ZW50LlR5cGU7CiAgICAgICAgICB0aGlzLl9kaXNwYXRjaChuZXcgaW1hLkFkc01hbmFnZXJMb2FkZWRFdmVudChBRFNfTUFOQUdFUl9MT0FERUQpKTsKICAgICAgICB9LAogICAgICAgICgpID0+IHsKICAgICAgICAgIGNvbnN0IGUgPSBuZXcgaW1hLkFkRXJyb3IoCiAgICAgICAgICAgICJhZFBsYXlFcnJvciIsCiAgICAgICAgICAgIDEyMDUsCiAgICAgICAgICAgIDEyMDUsCiAgICAgICAgICAgICJUaGUgYnJvd3NlciBwcmV2ZW50ZWQgcGxheWJhY2sgaW5pdGlhdGVkIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iCiAgICAgICAgICApOwogICAgICAgICAgdGhpcy5fZGlzcGF0Y2gobmV3IGltYS5BZEVycm9yRXZlbnQoZSkpOwogICAgICAgIH0KICAgICAgKTsKICAgIH0KICB9CgogIGNsYXNzIEFkc01hbmFnZXIgZXh0ZW5kcyBFdmVudEhhbmRsZXIgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIHRoaXMudm9sdW1lID0gMTsKICAgIH0KICAgIGNvbGxhcHNlKCkge30KICAgIGNvbmZpZ3VyZUFkc01hbmFnZXIoKSB7fQogICAgZGVzdHJveSgpIHt9CiAgICBkaXNjYXJkQWRCcmVhaygpIHt9CiAgICBleHBhbmQoKSB7fQogICAgZm9jdXMoKSB7fQogICAgZ2V0QWRTa2lwcGFibGVTdGF0ZSgpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgZ2V0Q3VlUG9pbnRzKCkgewogICAgICByZXR1cm4gWzBdOwogICAgfQogICAgZ2V0Q3VycmVudEFkKCkgewogICAgICByZXR1cm4gY3VycmVudEFkOwogICAgfQogICAgZ2V0Q3VycmVudEFkQ3VlUG9pbnRzKCkgewogICAgICByZXR1cm4gW107CiAgICB9CiAgICBnZXRSZW1haW5pbmdUaW1lKCkgewogICAgICByZXR1cm4gMDsKICAgIH0KICAgIGdldFZvbHVtZSgpIHsKICAgICAgcmV0dXJuIHRoaXMudm9sdW1lOwogICAgfQogICAgaW5pdCgvKncsIGgsIG0sIGUqLykge30KICAgIGlzQ3VzdG9tQ2xpY2tUcmFja2luZ1VzZWQoKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGlzQ3VzdG9tUGxheWJhY2tVc2VkKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBwYXVzZSgpIHt9CiAgICByZXF1ZXN0TmV4dEFkQnJlYWsoKSB7fQogICAgcmVzaXplKC8qdywgaCwgbSovKSB7fQogICAgcmVzdW1lKCkge30KICAgIHNldFZvbHVtZSh2KSB7CiAgICAgIHRoaXMudm9sdW1lID0gdjsKICAgIH0KICAgIHNraXAoKSB7fQogICAgc3RhcnQoKSB7CiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIFsKICAgICAgICAgIEFkRXZlbnQuVHlwZS5MT0FERUQsCiAgICAgICAgICBBZEV2ZW50LlR5cGUuU1RBUlRFRCwKICAgICAgICAgIEFkRXZlbnQuVHlwZS5DT05URU5UX1JFU1VNRV9SRVFVRVNURUQsCiAgICAgICAgICBBZEV2ZW50LlR5cGUuQURfQlVGRkVSSU5HLAogICAgICAgICAgQWRFdmVudC5UeXBlLkZJUlNUX1FVQVJUSUxFLAogICAgICAgICAgQWRFdmVudC5UeXBlLk1JRFBPSU5ULAogICAgICAgICAgQWRFdmVudC5UeXBlLlRISVJEX1FVQVJUSUxFLAogICAgICAgICAgQWRFdmVudC5UeXBlLkNPTVBMRVRFLAogICAgICAgICAgQWRFdmVudC5UeXBlLkFMTF9BRFNfQ09NUExFVEVELAogICAgICAgIF0pIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoKG5ldyBpbWEuQWRFdmVudCh0eXBlKSk7CiAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIHN0b3AoKSB7fQogICAgdXBkYXRlQWRzUmVuZGVyaW5nU2V0dGluZ3MoLypzKi8pIHt9CiAgfQoKICBjbGFzcyBBZHNSZW5kZXJpbmdTZXR0aW5ncyB7fQoKICBjbGFzcyBBZHNSZXF1ZXN0IHsKICAgIHNldEFkV2lsbEF1dG9QbGF5KCkge30KICAgIHNldEFkV2lsbFBsYXlNdXRlZCgpIHt9CiAgICBzZXRDb250aW51b3VzUGxheWJhY2soKSB7fQogIH0KCiAgY2xhc3MgQWRQb2RJbmZvIHsKICAgIGdldEFkUG9zaXRpb24oKSB7CiAgICAgIHJldHVybiAxOwogICAgfQogICAgZ2V0SXNCdW1wZXIoKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGdldE1heER1cmF0aW9uKCkgewogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBnZXRQb2RJbmRleCgpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICBnZXRUaW1lT2Zmc2V0KCkgewogICAgICByZXR1cm4gMDsKICAgIH0KICAgIGdldFRvdGFsQWRzKCkgewogICAgICByZXR1cm4gMTsKICAgIH0KICB9CgogIGNsYXNzIEFkIHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICB0aGlzLl9waSA9IG5ldyBBZFBvZEluZm8oKTsKICAgIH0KICAgIGdldEFkSWQoKSB7CiAgICAgIHJldHVybiAiIjsKICAgIH0KICAgIGdldEFkUG9kSW5mbygpIHsKICAgICAgcmV0dXJuIHRoaXMuX3BpOwogICAgfQogICAgZ2V0QWRTeXN0ZW0oKSB7CiAgICAgIHJldHVybiAiIjsKICAgIH0KICAgIGdldEFkdmVydGlzZXJOYW1lKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgICBnZXRBcGlGcmFtZXdvcmsoKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogICAgZ2V0Q29tcGFuaW9uQWRzKCkgewogICAgICByZXR1cm4gW107CiAgICB9CiAgICBnZXRDb250ZW50VHlwZSgpIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogICAgZ2V0Q3JlYXRpdmVBZElkKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgICBnZXRDcmVhdGl2ZUlkKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgICBnZXREZWFsSWQoKSB7CiAgICAgIHJldHVybiAiIjsKICAgIH0KICAgIGdldERlc2NyaXB0aW9uKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgICBnZXREdXJhdGlvbigpIHsKICAgICAgcmV0dXJuIDguNTsKICAgIH0KICAgIGdldEhlaWdodCgpIHsKICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBnZXRNZWRpYVVybCgpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBnZXRNaW5TdWdnZXN0ZWREdXJhdGlvbigpIHsKICAgICAgcmV0dXJuIC0yOwogICAgfQogICAgZ2V0U2tpcFRpbWVPZmZzZXQoKSB7CiAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIGdldFN1cnZleVVybCgpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBnZXRUaXRsZSgpIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogICAgZ2V0VHJhZmZpY2tpbmdQYXJhbWV0ZXJzKCkgewogICAgICByZXR1cm4ge307CiAgICB9CiAgICBnZXRUcmFmZmlja2luZ1BhcmFtZXRlcnNTdHJpbmcoKSB7CiAgICAgIHJldHVybiAiIjsKICAgIH0KICAgIGdldFVpRWxlbWVudHMoKSB7CiAgICAgIHJldHVybiBbIiJdOwogICAgfQogICAgZ2V0VW5pdmVyc2FsQWRJZFJlZ2lzdHJ5KCkgewogICAgICByZXR1cm4gInVua25vd24iOwogICAgfQogICAgZ2V0VW5pdmVyc2FsQWRJZHMoKSB7CiAgICAgIHJldHVybiBbIiJdOwogICAgfQogICAgZ2V0VW5pdmVyc2FsQWRJZFZhbHVlKCkgewogICAgICByZXR1cm4gInVua25vd24iOwogICAgfQogICAgZ2V0VmFzdE1lZGlhQml0cmF0ZSgpIHsKICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBnZXRWYXN0TWVkaWFIZWlnaHQoKSB7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgZ2V0VmFzdE1lZGlhV2lkdGgoKSB7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgZ2V0V2lkdGgoKSB7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgZ2V0V3JhcHBlckFkSWRzKCkgewogICAgICByZXR1cm4gWyIiXTsKICAgIH0KICAgIGdldFdyYXBwZXJBZFN5c3RlbXMoKSB7CiAgICAgIHJldHVybiBbIiJdOwogICAgfQogICAgZ2V0V3JhcHBlckNyZWF0aXZlSWRzKCkgewogICAgICByZXR1cm4gWyIiXTsKICAgIH0KICAgIGlzTGluZWFyKCkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIGlzU2tpcHBhYmxlKCkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CgogIGNsYXNzIENvbXBhbmlvbkFkIHsKICAgIGdldEFkU2xvdElkKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgICBnZXRDb250ZW50KCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgICBnZXRDb250ZW50VHlwZSgpIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogICAgZ2V0SGVpZ2h0KCkgewogICAgICByZXR1cm4gMTsKICAgIH0KICAgIGdldFdpZHRoKCkgewogICAgICByZXR1cm4gMTsKICAgIH0KICB9CgogIGNsYXNzIEFkRXJyb3IgewogICAgY29uc3RydWN0b3IodHlwZSwgY29kZSwgdmFzdCwgbWVzc2FnZSkgewogICAgICB0aGlzLmVycm9yQ29kZSA9IGNvZGU7CiAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgIHRoaXMudmFzdEVycm9yQ29kZSA9IHZhc3Q7CiAgICB9CiAgICBnZXRFcnJvckNvZGUoKSB7CiAgICAgIHJldHVybiB0aGlzLmVycm9yQ29kZTsKICAgIH0KICAgIGdldElubmVyRXJyb3IoKSB7fQogICAgZ2V0TWVzc2FnZSgpIHsKICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZTsKICAgIH0KICAgIGdldFR5cGUoKSB7CiAgICAgIHJldHVybiB0aGlzLnR5cGU7CiAgICB9CiAgICBnZXRWYXN0RXJyb3JDb2RlKCkgewogICAgICByZXR1cm4gdGhpcy52YXN0RXJyb3JDb2RlOwogICAgfQogICAgdG9TdHJpbmcoKSB7CiAgICAgIHJldHVybiBgQWRFcnJvciAke3RoaXMuZXJyb3JDb2RlfTogJHt0aGlzLm1lc3NhZ2V9YDsKICAgIH0KICB9CiAgQWRFcnJvci5FcnJvckNvZGUgPSB7fTsKICBBZEVycm9yLlR5cGUgPSB7fTsKCiAgY29uc3QgaXNFbmdhZGdldCA9ICgpID0+IHsKICAgIHRyeSB7CiAgICAgIGZvciAoY29uc3QgY3R4IG9mIE9iamVjdC52YWx1ZXMod2luZG93LnZpZGlibGUuX2dldENvbnRleHRzKCkpKSB7CiAgICAgICAgY29uc3QgcGxheWVyID0gY3R4LmdldFBsYXllcigpOwogICAgICAgIGlmICghcGxheWVyKSB7IGNvbnRpbnVlO30KICAgICAgICBjb25zdCBkaXYgPSBwbGF5ZXIuZGl2OwogICAgICAgIGlmICghZGl2KSB7IGNvbnRpbnVlOyB9CiAgICAgICAgaWYgKGRpdi5pbm5lckhUTUwuaW5jbHVkZXMoInd3dy5lbmdhZGdldC5jb20iKSkgewogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9IGNhdGNoIChfKSB7fQogICAgcmV0dXJuIGZhbHNlOwogIH07CgogIGNvbnN0IGN1cnJlbnRBZCA9IGlzRW5nYWRnZXQoKSA/IHVuZGVmaW5lZCA6IG5ldyBBZCgpOwoKICBjbGFzcyBBZEV2ZW50IHsKICAgIGNvbnN0cnVjdG9yKHR5cGUpIHsKICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgIH0KICAgIGdldEFkKCkgewogICAgICByZXR1cm4gY3VycmVudEFkOwogICAgfQogICAgZ2V0QWREYXRhKCkgewogICAgICByZXR1cm4ge307CiAgICB9CiAgfQogIEFkRXZlbnQuVHlwZSA9IHsKICAgIEFEX0JSRUFLX1JFQURZOiAiYWRCcmVha1JlYWR5IiwKICAgIEFEX0JVRkZFUklORzogImFkQnVmZmVyaW5nIiwKICAgIEFEX0NBTl9QTEFZOiAiYWRDYW5QbGF5IiwKICAgIEFEX01FVEFEQVRBOiAiYWRNZXRhZGF0YSIsCiAgICBBRF9QUk9HUkVTUzogImFkUHJvZ3Jlc3MiLAogICAgQUxMX0FEU19DT01QTEVURUQ6ICJhbGxBZHNDb21wbGV0ZWQiLAogICAgQ0xJQ0s6ICJjbGljayIsCiAgICBDT01QTEVURTogImNvbXBsZXRlIiwKICAgIENPTlRFTlRfUEFVU0VfUkVRVUVTVEVEOiAiY29udGVudFBhdXNlUmVxdWVzdGVkIiwKICAgIENPTlRFTlRfUkVTVU1FX1JFUVVFU1RFRDogImNvbnRlbnRSZXN1bWVSZXF1ZXN0ZWQiLAogICAgRFVSQVRJT05fQ0hBTkdFOiAiZHVyYXRpb25DaGFuZ2UiLAogICAgRVhQQU5ERURfQ0hBTkdFRDogImV4cGFuZGVkQ2hhbmdlZCIsCiAgICBGSVJTVF9RVUFSVElMRTogImZpcnN0UXVhcnRpbGUiLAogICAgSU1QUkVTU0lPTjogImltcHJlc3Npb24iLAogICAgSU5URVJBQ1RJT046ICJpbnRlcmFjdGlvbiIsCiAgICBMSU5FQVJfQ0hBTkdFOiAibGluZWFyQ2hhbmdlIiwKICAgIExJTkVBUl9DSEFOR0VEOiAibGluZWFyQ2hhbmdlZCIsCiAgICBMT0FERUQ6ICJsb2FkZWQiLAogICAgTE9HOiAibG9nIiwKICAgIE1JRFBPSU5UOiAibWlkcG9pbnQiLAogICAgUEFVU0VEOiAicGF1c2UiLAogICAgUkVTVU1FRDogInJlc3VtZSIsCiAgICBTS0lQUEFCTEVfU1RBVEVfQ0hBTkdFRDogInNraXBwYWJsZVN0YXRlQ2hhbmdlZCIsCiAgICBTS0lQUEVEOiAic2tpcCIsCiAgICBTVEFSVEVEOiAic3RhcnQiLAogICAgVEhJUkRfUVVBUlRJTEU6ICJ0aGlyZFF1YXJ0aWxlIiwKICAgIFVTRVJfQ0xPU0U6ICJ1c2VyQ2xvc2UiLAogICAgVklERU9fQ0xJQ0tFRDogInZpZGVvQ2xpY2tlZCIsCiAgICBWSURFT19JQ09OX0NMSUNLRUQ6ICJ2aWRlb0ljb25DbGlja2VkIiwKICAgIFZJRVdBQkxFX0lNUFJFU1NJT046ICJ2aWV3YWJsZV9pbXByZXNzaW9uIiwKICAgIFZPTFVNRV9DSEFOR0VEOiAidm9sdW1lQ2hhbmdlIiwKICAgIFZPTFVNRV9NVVRFRDogIm11dGUiLAogIH07CgogIGNsYXNzIEFkRXJyb3JFdmVudCB7CiAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICB0aGlzLnR5cGUgPSAiYWRFcnJvciI7CiAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKICAgIH0KICAgIGdldEVycm9yKCkgewogICAgICByZXR1cm4gdGhpcy5lcnJvcjsKICAgIH0KICAgIGdldFVzZXJSZXF1ZXN0Q29udGV4dCgpIHsKICAgICAgcmV0dXJuIHt9OwogICAgfQogIH0KICBBZEVycm9yRXZlbnQuVHlwZSA9IHsKICAgIEFEX0VSUk9SOiAiYWRFcnJvciIsCiAgfTsKCiAgY29uc3QgbWFuYWdlciA9IG5ldyBBZHNNYW5hZ2VyKCk7CgogIGNsYXNzIEFkc01hbmFnZXJMb2FkZWRFdmVudCB7CiAgICBjb25zdHJ1Y3Rvcih0eXBlKSB7CiAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICB9CiAgICBnZXRBZHNNYW5hZ2VyKCkgewogICAgICByZXR1cm4gbWFuYWdlcjsKICAgIH0KICAgIGdldFVzZXJSZXF1ZXN0Q29udGV4dCgpIHsKICAgICAgcmV0dXJuIHt9OwogICAgfQogIH0KICBBZHNNYW5hZ2VyTG9hZGVkRXZlbnQuVHlwZSA9IHsKICAgIEFEU19NQU5BR0VSX0xPQURFRDogImFkc01hbmFnZXJMb2FkZWQiLAogIH07CgogIGNsYXNzIEN1c3RvbUNvbnRlbnRMb2FkZWRFdmVudCB7fQogIEN1c3RvbUNvbnRlbnRMb2FkZWRFdmVudC5UeXBlID0gewogICAgQ1VTVE9NX0NPTlRFTlRfTE9BREVEOiAiZGVwcmVjYXRlZC1ldmVudCIsCiAgfTsKCiAgY2xhc3MgQ29tcGFuaW9uQWRTZWxlY3Rpb25TZXR0aW5ncyB7fQogIENvbXBhbmlvbkFkU2VsZWN0aW9uU2V0dGluZ3MuQ3JlYXRpdmVUeXBlID0gewogICAgQUxMOiAiQWxsIiwKICAgIEZMQVNIOiAiRmxhc2giLAogICAgSU1BR0U6ICJJbWFnZSIsCiAgfTsKICBDb21wYW5pb25BZFNlbGVjdGlvblNldHRpbmdzLlJlc291cmNlVHlwZSA9IHsKICAgIEFMTDogIkFsbCIsCiAgICBIVE1MOiAiSHRtbCIsCiAgICBJRlJBTUU6ICJJRnJhbWUiLAogICAgU1RBVElDOiAiU3RhdGljIiwKICB9OwogIENvbXBhbmlvbkFkU2VsZWN0aW9uU2V0dGluZ3MuU2l6ZUNyaXRlcmlhID0gewogICAgSUdOT1JFOiAiSWdub3JlU2l6ZSIsCiAgICBTRUxFQ1RfRVhBQ1RfTUFUQ0g6ICJTZWxlY3RFeGFjdE1hdGNoIiwKICAgIFNFTEVDVF9ORUFSX01BVENIOiAiU2VsZWN0TmVhck1hdGNoIiwKICB9OwoKICBjbGFzcyBBZEN1ZVBvaW50cyB7CiAgICBnZXRDdWVQb2ludHMoKSB7CiAgICAgIHJldHVybiBbXTsKICAgIH0KICB9CgogIGNsYXNzIEFkUHJvZ3Jlc3NEYXRhIHt9CgogIGNsYXNzIFVuaXZlcnNhbEFkSWRJbmZvIHsKICAgIGdldEFkSWRSZWdpc3RyeSgpIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogICAgZ2V0QWRJc1ZhbHVlKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgfQoKICBPYmplY3QuYXNzaWduKGltYSwgewogICAgQWRDdWVQb2ludHMsCiAgICBBZERpc3BsYXlDb250YWluZXIsCiAgICBBZEVycm9yLAogICAgQWRFcnJvckV2ZW50LAogICAgQWRFdmVudCwKICAgIEFkUG9kSW5mbywKICAgIEFkUHJvZ3Jlc3NEYXRhLAogICAgQWRzTG9hZGVyLAogICAgQWRzTWFuYWdlcjogbWFuYWdlciwKICAgIEFkc01hbmFnZXJMb2FkZWRFdmVudCwKICAgIEFkc1JlbmRlcmluZ1NldHRpbmdzLAogICAgQWRzUmVxdWVzdCwKICAgIENvbXBhbmlvbkFkLAogICAgQ29tcGFuaW9uQWRTZWxlY3Rpb25TZXR0aW5ncywKICAgIEN1c3RvbUNvbnRlbnRMb2FkZWRFdmVudCwKICAgIGdwdFByb3h5SW5zdGFuY2U6IHt9LAogICAgSW1hU2RrU2V0dGluZ3MsCiAgICBPbWlkQWNjZXNzTW9kZTogewogICAgICBET01BSU46ICJkb21haW4iLAogICAgICBGVUxMOiAiZnVsbCIsCiAgICAgIExJTUlURUQ6ICJsaW1pdGVkIiwKICAgIH0sCiAgICBzZXR0aW5nczogbmV3IEltYVNka1NldHRpbmdzKCksCiAgICBVaUVsZW1lbnRzOiB7CiAgICAgIEFEX0FUVFJJQlVUSU9OOiAiYWRBdHRyaWJ1dGlvbiIsCiAgICAgIENPVU5URE9XTjogImNvdW50ZG93biIsCiAgICB9LAogICAgVW5pdmVyc2FsQWRJZEluZm8sCiAgICBWRVJTSU9OLAogICAgVmlld01vZGU6IHsKICAgICAgRlVMTFNDUkVFTjogImZ1bGxzY3JlZW4iLAogICAgICBOT1JNQUw6ICJub3JtYWwiLAogICAgfSwKICB9KTsKCiAgaWYgKCF3aW5kb3cuZ29vZ2xlKSB7CiAgICB3aW5kb3cuZ29vZ2xlID0ge307CiAgfQoKICB3aW5kb3cuZ29vZ2xlLmltYSA9IGltYTsKfQo="},{"name":"googlesyndication_adsbygoogle.js","aliases":["googlesyndication.com/adsbygoogle.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBpbml0ID0gKCApID0+IHsKICAgICAgICB3aW5kb3cuYWRzYnlnb29nbGUgPSB7CiAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSwKICAgICAgICAgICAgcHVzaDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIGNvbnN0IHBocyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hZHNieWdvb2dsZScpOwogICAgICAgIGNvbnN0IGNzcyA9ICdoZWlnaHQ6MXB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjFweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjFweCFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudDsnOwogICAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IHBocy5sZW5ndGg7IGkrKyApIHsKICAgICAgICAgICAgY29uc3QgaWQgPSBgYXN3aWZ0XyR7aX1gOwogICAgICAgICAgICBpZiAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGlmcmFtZSMke2lkfWApICE9PSBudWxsICkgeyBjb250aW51ZTsgfQogICAgICAgICAgICBjb25zdCBmciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwogICAgICAgICAgICBmci5pZCA9IGlkOwogICAgICAgICAgICBmci5zdHlsZSA9IGNzczsKICAgICAgICAgICAgY29uc3QgY2ZyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICAgIGNmci5pZCA9IGBnb29nbGVfYWRzX2ZyYW1lJHtpfWA7CiAgICAgICAgICAgIGZyLmFwcGVuZENoaWxkKGNmcik7CiAgICAgICAgICAgIHBoc1tpXS5hcHBlbmRDaGlsZChmcik7CiAgICAgICAgfQogICAgfTsKICAgIGlmICgKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWRzYnlnb29nbGUnKS5sZW5ndGggPT09IDAgJiYKICAgICAgICBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycKICAgICkgewogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdCwgeyBvbmNlOiB0cnVlIH0pOwogICAgfSBlbHNlIHsKICAgICAgICBpbml0KCk7CiAgICB9Cn0pKCk7Cg=="},{"name":"googletagservices_gpt.js","aliases":["googletagservices.com/gpt.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kb3VibGVjbGljay1ncHQvcmVmZXJlbmNlCiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH0uYmluZCgpOwogICAgY29uc3Qgbm9vcHRoaXNmbiA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgfTsKICAgIGNvbnN0IG5vb3BudWxsZm4gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH07CiAgICBjb25zdCBub29wYXJyYXlmbiA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBbXTsKICAgIH07CiAgICBjb25zdCBub29wc3RyZm4gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gJyc7CiAgICB9OwogICAgLy8KICAgIGNvbnN0IGNvbXBhbmlvbkFkc1NlcnZpY2UgPSB7CiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcjogbm9vcHRoaXNmbiwKICAgICAgICBlbmFibGVTeW5jTG9hZGluZzogbm9vcGZuLAogICAgICAgIHNldFJlZnJlc2hVbmZpbGxlZFNsb3RzOiBub29wZm4KICAgIH07CiAgICBjb25zdCBjb250ZW50U2VydmljZSA9IHsKICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBub29wdGhpc2ZuLAogICAgICAgIHNldENvbnRlbnQ6IG5vb3BmbgogICAgfTsKICAgIGNvbnN0IFBhc3NiYWNrU2xvdCA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIGxldCBwID0gUGFzc2JhY2tTbG90LnByb3RvdHlwZTsKICAgIHAuZGlzcGxheSA9IG5vb3BmbjsKICAgIHAuZ2V0ID0gbm9vcG51bGxmbjsKICAgIHAuc2V0ID0gbm9vcHRoaXNmbjsKICAgIHAuc2V0Q2xpY2tVcmwgPSBub29wdGhpc2ZuOwogICAgcC5zZXRUYWdGb3JDaGlsZERpcmVjdGVkVHJlYXRtZW50ID0gbm9vcHRoaXNmbjsKICAgIHAuc2V0VGFyZ2V0aW5nID0gbm9vcHRoaXNmbjsKICAgIHAudXBkYXRlVGFyZ2V0aW5nRnJvbU1hcCA9IG5vb3B0aGlzZm47CiAgICBjb25zdCBwdWJBZHNTZXJ2aWNlID0gewogICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IG5vb3B0aGlzZm4sCiAgICAgICAgY2xlYXI6IG5vb3BmbiwKICAgICAgICBjbGVhckNhdGVnb3J5RXhjbHVzaW9uczogbm9vcHRoaXNmbiwKICAgICAgICBjbGVhclRhZ0ZvckNoaWxkRGlyZWN0ZWRUcmVhdG1lbnQ6IG5vb3B0aGlzZm4sCiAgICAgICAgY2xlYXJUYXJnZXRpbmc6IG5vb3B0aGlzZm4sCiAgICAgICAgY29sbGFwc2VFbXB0eURpdnM6IG5vb3BmbiwKICAgICAgICBkZWZpbmVPdXRPZlBhZ2VQYXNzYmFjazogZnVuY3Rpb24oKSB7IHJldHVybiBuZXcgUGFzc2JhY2tTbG90KCk7IH0sCiAgICAgICAgZGVmaW5lUGFzc2JhY2s6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbmV3IFBhc3NiYWNrU2xvdCgpOyB9LAogICAgICAgIGRpc2FibGVJbml0aWFsTG9hZDogbm9vcGZuLAogICAgICAgIGRpc3BsYXk6IG5vb3BmbiwKICAgICAgICBlbmFibGVBc3luY1JlbmRlcmluZzogbm9vcGZuLAogICAgICAgIGVuYWJsZVNpbmdsZVJlcXVlc3Q6IG5vb3BmbiwKICAgICAgICBlbmFibGVTeW5jUmVuZGVyaW5nOiBub29wZm4sCiAgICAgICAgZW5hYmxlVmlkZW9BZHM6IG5vb3BmbiwKICAgICAgICBnZXQ6IG5vb3BudWxsZm4sCiAgICAgICAgZ2V0QXR0cmlidXRlS2V5czogbm9vcGFycmF5Zm4sCiAgICAgICAgZ2V0VGFyZ2V0aW5nOiBub29wZm4sCiAgICAgICAgZ2V0VGFyZ2V0aW5nS2V5czogbm9vcGFycmF5Zm4sCiAgICAgICAgZ2V0U2xvdHM6IG5vb3BhcnJheWZuLAogICAgICAgIHJlZnJlc2g6IG5vb3BmbiwKICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyOiBub29wZm4sCiAgICAgICAgc2V0OiBub29wdGhpc2ZuLAogICAgICAgIHNldENhdGVnb3J5RXhjbHVzaW9uOiBub29wdGhpc2ZuLAogICAgICAgIHNldENlbnRlcmluZzogbm9vcGZuLAogICAgICAgIHNldENvb2tpZU9wdGlvbnM6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0Rm9yY2VTYWZlRnJhbWU6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0TG9jYXRpb246IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0UHVibGlzaGVyUHJvdmlkZWRJZDogbm9vcHRoaXNmbiwKICAgICAgICBzZXRQcml2YWN5U2V0dGluZ3M6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0UmVxdWVzdE5vblBlcnNvbmFsaXplZEFkczogbm9vcHRoaXNmbiwKICAgICAgICBzZXRTYWZlRnJhbWVDb25maWc6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0VGFnRm9yQ2hpbGREaXJlY3RlZFRyZWF0bWVudDogbm9vcHRoaXNmbiwKICAgICAgICBzZXRUYXJnZXRpbmc6IG5vb3B0aGlzZm4sCiAgICAgICAgc2V0VmlkZW9Db250ZW50OiBub29wdGhpc2ZuLAogICAgICAgIHVwZGF0ZUNvcnJlbGF0b3I6IG5vb3BmbgogICAgfTsKICAgIGNvbnN0IFNpemVNYXBwaW5nQnVpbGRlciA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIHAgPSBTaXplTWFwcGluZ0J1aWxkZXIucHJvdG90eXBlOwogICAgcC5hZGRTaXplID0gbm9vcHRoaXNmbjsKICAgIHAuYnVpbGQgPSBub29wbnVsbGZuOwogICAgY29uc3QgU2xvdCA9IGZ1bmN0aW9uKCkgewogICAgfTsKICAgIHAgPSBTbG90LnByb3RvdHlwZTsKICAgIHAuYWRkU2VydmljZSA9IG5vb3B0aGlzZm47CiAgICBwLmNsZWFyQ2F0ZWdvcnlFeGNsdXNpb25zID0gbm9vcHRoaXNmbjsKICAgIHAuY2xlYXJUYXJnZXRpbmcgPSBub29wdGhpc2ZuOwogICAgcC5kZWZpbmVTaXplTWFwcGluZyA9IG5vb3B0aGlzZm47CiAgICBwLmdldCA9IG5vb3BudWxsZm47CiAgICBwLmdldEFkVW5pdFBhdGggPSBub29wYXJyYXlmbjsKICAgIHAuZ2V0QXR0cmlidXRlS2V5cyA9IG5vb3BhcnJheWZuOwogICAgcC5nZXRDYXRlZ29yeUV4Y2x1c2lvbnMgPSBub29wYXJyYXlmbjsKICAgIHAuZ2V0RG9tSWQgPSBub29wc3RyZm47CiAgICBwLmdldFJlc3BvbnNlSW5mb3JtYXRpb24gPSBub29wbnVsbGZuOwogICAgcC5nZXRTbG90RWxlbWVudElkID0gbm9vcHN0cmZuOwogICAgcC5nZXRTbG90SWQgPSBub29wdGhpc2ZuOwogICAgcC5nZXRUYXJnZXRpbmcgPSBub29wYXJyYXlmbjsKICAgIHAuZ2V0VGFyZ2V0aW5nS2V5cyA9IG5vb3BhcnJheWZuOwogICAgcC5zZXQgPSBub29wdGhpc2ZuOwogICAgcC5zZXRDYXRlZ29yeUV4Y2x1c2lvbiA9IG5vb3B0aGlzZm47CiAgICBwLnNldENsaWNrVXJsID0gbm9vcHRoaXNmbjsKICAgIHAuc2V0Q29sbGFwc2VFbXB0eURpdiA9IG5vb3B0aGlzZm47CiAgICBwLnNldFRhcmdldGluZyA9IG5vb3B0aGlzZm47CiAgICBwLnVwZGF0ZVRhcmdldGluZ0Zyb21NYXAgPSBub29wdGhpc2ZuOwogICAgLy8KICAgIGNvbnN0IGdwdCA9IHdpbmRvdy5nb29nbGV0YWcgfHwge307CiAgICBjb25zdCBjbWQgPSBncHQuY21kIHx8IFtdOwogICAgZ3B0LmFwaVJlYWR5ID0gdHJ1ZTsKICAgIGdwdC5jbWQgPSBbXTsKICAgIGdwdC5jbWQucHVzaCA9IGZ1bmN0aW9uKGEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBhKCk7CiAgICAgICAgfSBjYXRjaCAoZXgpIHsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9OwogICAgZ3B0LmNvbXBhbmlvbkFkcyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gY29tcGFuaW9uQWRzU2VydmljZTsgfTsKICAgIGdwdC5jb250ZW50ID0gZnVuY3Rpb24oKSB7IHJldHVybiBjb250ZW50U2VydmljZTsgfTsKICAgIGdwdC5kZWZpbmVPdXRPZlBhZ2VTbG90ID0gZnVuY3Rpb24oKSB7IHJldHVybiBuZXcgU2xvdCgpOyB9OwogICAgZ3B0LmRlZmluZVNsb3QgPSBmdW5jdGlvbigpIHsgcmV0dXJuIG5ldyBTbG90KCk7IH07CiAgICBncHQuZGVzdHJveVNsb3RzID0gbm9vcGZuOwogICAgZ3B0LmRpc2FibGVQdWJsaXNoZXJDb25zb2xlID0gbm9vcGZuOwogICAgZ3B0LmRpc3BsYXkgPSBub29wZm47CiAgICBncHQuZW5hYmxlU2VydmljZXMgPSBub29wZm47CiAgICBncHQuZ2V0VmVyc2lvbiA9IG5vb3BzdHJmbjsKICAgIGdwdC5wdWJhZHMgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHB1YkFkc1NlcnZpY2U7IH07CiAgICBncHQucHViYWRzUmVhZHkgPSB0cnVlOwogICAgZ3B0LnNldEFkSWZyYW1lVGl0bGUgPSBub29wZm47CiAgICBncHQuc2l6ZU1hcHBpbmcgPSBmdW5jdGlvbigpIHsgcmV0dXJuIG5ldyBTaXplTWFwcGluZ0J1aWxkZXIoKTsgfTsKICAgIHdpbmRvdy5nb29nbGV0YWcgPSBncHQ7CiAgICB3aGlsZSAoIGNtZC5sZW5ndGggIT09IDAgKSB7CiAgICAgICAgZ3B0LmNtZC5wdXNoKGNtZC5zaGlmdCgpKTsKICAgIH0KfSkoKTsK"},{"name":"hd-main.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBsID0ge307CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICBjb25zdCBwcm9wcyA9IFsKICAgICAgICAiJGoiLCJBZCIsIkJkIiwiQ2QiLCJEZCIsIkVkIiwiRmQiLCJHZCIsIkhkIiwiSWQiLCJKZCIsIk5qIiwiT2MiLCJQYyIsIlBlIiwKICAgICAgICAiUWMiLCJRZSIsIlJjIiwiUmUiLCJSaSIsIlNjIiwiVGMiLCJVYyIsIlZjIiwiV2MiLCJXZyIsIlhjIiwiWGciLCJZYyIsIllkIiwKICAgICAgICAiYWQiLCJhZSIsImJkIiwiYmYiLCJjZCIsImRkIiwiZWQiLCJlZiIsImVrIiwiZmQiLCJmZyIsImZoIiwiZmsiLCJnZCIsImhkIiwKICAgICAgICAiaWciLCJpaiIsImpkIiwia2QiLCJrZSIsImxkIiwibWQiLCJtaSIsIm5kIiwib2QiLCJvaCIsInBkIiwicGYiLCJxZCIsInJkIiwKICAgICAgICAic2QiLCJ0ZCIsInVkIiwidmQiLCJ3ZCIsIndnIiwieGQiLCJ4aCIsInlkIiwiemQiLAogICAgICAgICIkZCIsIiRlIiwiJGsiLCJBZSIsIkFmIiwiQWoiLCJCZSIsIkNlIiwiRGUiLCJFZSIsIkVrIiwiRW8iLCJFcCIsIkZlIiwiRm8iLAogICAgICAgICJHZSIsIkdoIiwiSGsiLCJJZSIsIklwIiwiSmUiLCJLZSIsIktrIiwiS3EiLCJMZSIsIkxoIiwiTGsiLCJNZSIsIk1tIiwiTmUiLAogICAgICAgICJPZSIsIlBlIiwiUWUiLCJSZSIsIlJwIiwiU2UiLCJUZSIsIlVlIiwiVmUiLCJWcCIsIldlIiwiWGQiLCJYZSIsIllkIiwiWWUiLAogICAgICAgICJaZCIsIlplIiwiWmYiLCJaayIsImFlIiwiYWYiLCJhbCIsImJlIiwiYmYiLCJiZyIsImNlIiwiY3AiLCJkZiIsImRpIiwiZWUiLAogICAgICAgICJlZiIsImZlIiwiZmYiLCJnZiIsImdtIiwiaGUiLCJoZiIsImllIiwiamUiLCJqZiIsImtlIiwia2YiLCJrbCIsImxlIiwibGYiLAogICAgICAgICJsayIsIm1mIiwibWciLCJtbiIsIm5mIiwib2UiLCJvZiIsInBlIiwicGYiLCJwZyIsInFlIiwicWYiLCJyZSIsInJmIiwic2UiLAogICAgICAgICJzZiIsInRlIiwidGYiLCJ0aSIsInVlIiwidWYiLCJ2ZSIsInZmIiwid2UiLCJ3ZiIsIndnIiwid2kiLCJ4ZSIsInllIiwieWYiLAogICAgICAgICJ5ayIsInlsIiwiemUiLCJ6ZiIsInprIgogICAgXTsKICAgIGZvciAoIGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrICkgewogICAgICAgIGxbcHJvcHNbaV1dID0gbm9vcGZuOwogICAgfQogICAgd2luZG93LkwgPSB3aW5kb3cuSiA9IGw7Cn0pKCk7Cg=="},{"name":"ligatus_angular-tag.js","aliases":["ligatus.com/*/angular-tag.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBzZWxmLmFkUHJvdGVjdCA9IHRydWU7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3csIHsKICAgICAgICB1YWJwZGw6IHsgdmFsdWU6IHRydWUgfSwKICAgICAgICB1YWJEZXRlY3Q6IHsgdmFsdWU6IHRydWUgfQogICAgfSk7Cn0pKCk7Cg=="},{"name":"mxpnl_mixpanel.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAyMS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICAvLyBodHRwczovL2RldmVsb3Blci5taXhwYW5lbC5jb20vZG9jcy9qYXZhc2NyaXB0LWZ1bGwtYXBpLXJlZmVyZW5jZQogICAgY29uc3QgbWl4cGFuZWwgPSB7CiAgICAgICAgZ2V0X2Rpc3RpbmN0X2lkKCkgewogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfSwKICAgICAgICBpbml0KHQsIGNmZykgewogICAgICAgICAgICBpZiAoIGNmZyBpbnN0YW5jZW9mIE9iamVjdCA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQogICAgICAgICAgICBpZiAoICdsb2FkZWQnIGluIGNmZyA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQogICAgICAgICAgICBpZiAoIGNmZy5sb2FkZWQgaW5zdGFuY2VvZiBGdW5jdGlvbiA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQogICAgICAgICAgICBjZmcubG9hZGVkKCk7CiAgICAgICAgfSwKICAgICAgICByZWdpc3RlcigpIHsKICAgICAgICB9LAogICAgICAgIHJlZ2lzdGVyX29uY2UoKSB7CiAgICAgICAgfSwKICAgICAgICB0cmFjaygpIHsKICAgICAgICAgICAgY29uc3QgY2IgPSBBcnJheS5mcm9tKGFyZ3VtZW50cykucG9wKCk7CiAgICAgICAgICAgIGlmICggY2IgaW5zdGFuY2VvZiBGdW5jdGlvbiA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQogICAgICAgICAgICBjYigpOwogICAgICAgIH0sCiAgICB9OwogICAgY29uc3QgcSA9IHNlbGYubWl4cGFuZWwgJiYgc2VsZi5taXhwYW5lbC5faSB8fCBbXTsKICAgIHNlbGYubWl4cGFuZWwgPSBtaXhwYW5lbDsKICAgIGZvciAoIGNvbnN0IGkgb2YgcSApIHsKICAgICAgICBpZiAoIEFycmF5LmlzQXJyYXkoaSkgPT09IGZhbHNlICkgeyBjb250aW51ZTsgfQogICAgICAgIG1peHBhbmVsLmluaXQoLi4uaSk7CiAgICB9Cn0pKCk7Cg=="},{"name":"monkeybroker.js","aliases":["d3pkae9owd2lcf.cloudfront.net/mb105.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB3aW5kb3cucGJqcyA9IHsgbGliTG9hZGVkOiB0cnVlIH07CiAgICBjb25zdCBtYiA9IHdpbmRvdy5Nb25rZXlCcm9rZXIgfHwgewogICAgICAgIGFkZEF0dHJpYnV0ZTogbm9vcGZuLAogICAgICAgIGFkZFNsb3Q6IGZ1bmN0aW9uKGEpIHsKICAgICAgICAgICAgdGhpcy5zbG90c1thLnNsb3RdID0ge307CiAgICAgICAgfSwKICAgICAgICBkZWZpbmVTbG90OiBub29wZm4sCiAgICAgICAgZmlsbFNsb3Q6IG5vb3BmbiwKICAgICAgICBnbzogbm9vcGZuLAogICAgICAgIGludmVudG9yeUNvbmRpdGlvbmFsUGxhY2VtZW50OiBub29wZm4sCiAgICAgICAgcmVnaXN0ZXJTaXplQ2FsbGJhY2s6IG5vb3BmbiwKICAgICAgICByZWdpc3RlclNsb3RDYWxsYmFjazogbm9vcGZuLAogICAgICAgIHNsb3RzOiB7fSwKICAgICAgICB2ZXJzaW9uOiAnJwogICAgfTsKICAgIG1iLnJlZ1Nsb3RzTWFwID0gbWIuc2xvdHM7CiAgICB3aW5kb3cuTW9ua2V5QnJva2VyID0gbWI7Cn0pKCk7Cg=="},{"name":"noeval.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBsb2cgPSBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpOwogICAgd2luZG93LmV2YWwgPSBuZXcgUHJveHkod2luZG93LmV2YWwsIHsgICAgICAgICAgLy8ganNoaW50IGlnbm9yZTogbGluZQogICAgICAgIGFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKICAgICAgICAgICAgbG9nKGBEb2N1bWVudCB0cmllZCB0byBldmFsLi4uICR7YXJnc1swXX1cbmApOwogICAgICAgIH0KICAgIH0pOwp9KSgpOwo="},{"name":"noeval-silent.js","aliases":["silent-noeval.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICB3aW5kb3cuZXZhbCA9IG5ldyBQcm94eSh3aW5kb3cuZXZhbCwgeyAgICAgICAgICAvLyBqc2hpbnQgaWdub3JlOiBsaW5lCiAgICAgICAgYXBwbHk6IGZ1bmN0aW9uKCkgewogICAgICAgIH0KICAgIH0pOwp9KSgpOwo="},{"name":"nobab.js","aliases":["bab-defuser.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBzaWduYXR1cmVzID0gWwogICAgICAgIFsgJ2Jsb2NrYWRibG9jaycgXSwKICAgICAgICBbICdiYWJhc2JtJyBdLAogICAgICAgIFsgL2dldEl0ZW1cKCdiYWJuJ1wpLyBdLAogICAgICAgIFsKICAgICAgICAgICAgJ2dldEVsZW1lbnRCeUlkJywKICAgICAgICAgICAgJ1N0cmluZy5mcm9tQ2hhckNvZGUnLAogICAgICAgICAgICAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknLAogICAgICAgICAgICAnY2hhckF0JywKICAgICAgICAgICAgJ0RPTUNvbnRlbnRMb2FkZWQnLAogICAgICAgICAgICAnQWRCbG9jaycsCiAgICAgICAgICAgICdhZGRFdmVudExpc3RlbmVyJywKICAgICAgICAgICAgJ2RvU2Nyb2xsJywKICAgICAgICAgICAgJ2Zyb21DaGFyQ29kZScsCiAgICAgICAgICAgICc8PDJ8cj4+NCcsCiAgICAgICAgICAgICdzZXNzaW9uU3RvcmFnZScsCiAgICAgICAgICAgICdjbGllbnRXaWR0aCcsCiAgICAgICAgICAgICdsb2NhbFN0b3JhZ2UnLAogICAgICAgICAgICAnTWF0aCcsCiAgICAgICAgICAgICdyYW5kb20nCiAgICAgICAgXSwKICAgIF07CiAgICBjb25zdCBjaGVjayA9IGZ1bmN0aW9uKHMpIHsKICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCBzaWduYXR1cmVzLmxlbmd0aDsgaSsrICkgewogICAgICAgICAgICBjb25zdCB0b2tlbnMgPSBzaWduYXR1cmVzW2ldOwogICAgICAgICAgICBsZXQgbWF0Y2ggPSAwOwogICAgICAgICAgICBmb3IgKCBsZXQgaiA9IDA7IGogPCB0b2tlbnMubGVuZ3RoOyBqKysgKSB7CiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tqXTsKICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRva2VuIGluc3RhbmNlb2YgUmVnRXhwCiAgICAgICAgICAgICAgICAgICAgPyBzLnNlYXJjaCh0b2tlbikKICAgICAgICAgICAgICAgICAgICA6IHMuaW5kZXhPZih0b2tlbik7CiAgICAgICAgICAgICAgICBpZiAoIHBvcyAhPT0gLTEgKSB7IG1hdGNoICs9IDE7IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIChtYXRjaCAvIHRva2Vucy5sZW5ndGgpID49IDAuOCApIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfTsKICAgIHdpbmRvdy5ldmFsID0gbmV3IFByb3h5KHdpbmRvdy5ldmFsLCB7ICAgICAgICAgICAgICAvLyBqc2hpbnQgaWdub3JlOiBsaW5lCiAgICAgICAgYXBwbHk6IGZ1bmN0aW9uKHRhcmdldCwgdGhpc0FyZywgYXJncykgewogICAgICAgICAgICBjb25zdCBhID0gYXJnc1swXTsKICAgICAgICAgICAgaWYgKCB0eXBlb2YgYSAhPT0gJ3N0cmluZycgfHwgIWNoZWNrKGEpICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIGRvY3VtZW50LmJvZHkgKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd2aXNpYmlsaXR5Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhYmFzYm1zZ3gnKTsKICAgICAgICAgICAgaWYgKCBlbCApIHsKICAgICAgICAgICAgICAgIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSk7CiAgICB3aW5kb3cuc2V0VGltZW91dCA9IG5ldyBQcm94eSh3aW5kb3cuc2V0VGltZW91dCwgewogICAgICAgIGFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKICAgICAgICAgICAgY29uc3QgYSA9IGFyZ3NbMF07CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIHR5cGVvZiBhICE9PSAnc3RyaW5nJyB8fAogICAgICAgICAgICAgICAgL1wuYmFiX2VsZW1lbnRpZC4kLy50ZXN0KGEpID09PSBmYWxzZQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJncyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKfSkoKTsK"},{"name":"nobab2.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAyMS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0OwogICAgaWYgKCBzY3JpcHQgPT09IG51bGwgKSB7IHJldHVybjsgfQogICAgY29uc3Qgc3JjID0gc2NyaXB0LnNyYzsKICAgIGlmICggdHlwZW9mIHNyYyAhPT0gJ3N0cmluZycgKSB7IHJldHVybjsgfQogICAgLy8gVGhlIHNjcmlwbGV0IGlzIG1lYW50IHRvIGFjdCBPTkxZIHdoZW4gaXQncyBiZWluZyB1c2VkIGFzIGEgcmVkaXJlY3Rpb24KICAgIC8vIGZvciBzcGVjaWZpYyBkb21haW5zLgogICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKAogICAgICAgICdeaHR0cHM/Oi8vW1xcdy1dK1xcLignICsKICAgICAgICBbCiAgICAgICAgICAgICdhZGNsaXh4XFwubmV0JywKICAgICAgICAgICAgJ2FkbmV0YXNpYVxcLmNvbScsCiAgICAgICAgICAgICdhZHRyYWNrZXJzXFwubmV0JywKICAgICAgICAgICAgJ2Jhbm5lcnRyYWNrXFwubmV0JywKICAgICAgICBdLmpvaW4oJ3wnKSArCiAgICAgICAgJykvLicKICAgICk7CiAgICBpZiAoIHJlLnRlc3Qoc3JjKSA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQogICAgd2luZG93Lm5IN2VYek9zRyA9IDg1ODsKfSkoKTsK"},{"name":"nofab.js","aliases":["fuckadblock.js-3.2.0"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICBjb25zdCBGYWIgPSBmdW5jdGlvbigpIHt9OwogICAgRmFiLnByb3RvdHlwZS5jaGVjayA9IG5vb3BmbjsKICAgIEZhYi5wcm90b3R5cGUuY2xlYXJFdmVudCA9IG5vb3BmbjsKICAgIEZhYi5wcm90b3R5cGUuZW1pdEV2ZW50ID0gbm9vcGZuOwogICAgRmFiLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICBpZiAoICFhICkgeyBiKCk7IH0KICAgICAgICByZXR1cm4gdGhpczsKICAgIH07CiAgICBGYWIucHJvdG90eXBlLm9uRGV0ZWN0ZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgIH07CiAgICBGYWIucHJvdG90eXBlLm9uTm90RGV0ZWN0ZWQgPSBmdW5jdGlvbihhKSB7CiAgICAgICAgYSgpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgfTsKICAgIEZhYi5wcm90b3R5cGUuc2V0T3B0aW9uID0gbm9vcGZuOwogICAgY29uc3QgZmFiID0gbmV3IEZhYigpLAogICAgICAgIGdldFNldEZhYiA9IHsKICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZhYjsgfSwKICAgICAgICAgICAgc2V0OiBmdW5jdGlvbigpIHt9CiAgICAgICAgfSwKICAgICAgICBnZXRzZXRmYWIgPSB7CiAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBmYWI7IH0sCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24oKSB7fQogICAgICAgIH07CiAgICBpZiAoIHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnRnVja0FkQmxvY2snKSApIHsgd2luZG93LkZ1Y2tBZEJsb2NrID0gRmFiOyB9CiAgICBlbHNlIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ0Z1Y2tBZEJsb2NrJywgZ2V0U2V0RmFiKTsgfQogICAgaWYgKCB3aW5kb3cuaGFzT3duUHJvcGVydHkoJ0Jsb2NrQWRCbG9jaycpICkgeyB3aW5kb3cuQmxvY2tBZEJsb2NrID0gRmFiOyB9CiAgICBlbHNlIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ0Jsb2NrQWRCbG9jaycsIGdldFNldEZhYik7IH0KICAgIGlmICggd2luZG93Lmhhc093blByb3BlcnR5KCdTbmlmZkFkQmxvY2snKSApIHsgd2luZG93LlNuaWZmQWRCbG9jayA9IEZhYjsgfQogICAgZWxzZSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdTbmlmZkFkQmxvY2snLCBnZXRTZXRGYWIpOyB9CiAgICBpZiAoIHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnZnVja0FkQmxvY2snKSApIHsgd2luZG93LmZ1Y2tBZEJsb2NrID0gZmFiOyB9CiAgICBlbHNlIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2Z1Y2tBZEJsb2NrJywgZ2V0c2V0ZmFiKTsgfQogICAgaWYgKCB3aW5kb3cuaGFzT3duUHJvcGVydHkoJ2Jsb2NrQWRCbG9jaycpICkgeyB3aW5kb3cuYmxvY2tBZEJsb2NrID0gZmFiOyB9CiAgICBlbHNlIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2Jsb2NrQWRCbG9jaycsIGdldHNldGZhYik7IH0KICAgIGlmICggd2luZG93Lmhhc093blByb3BlcnR5KCdzbmlmZkFkQmxvY2snKSApIHsgd2luZG93LnNuaWZmQWRCbG9jayA9IGZhYjsgfQogICAgZWxzZSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdzbmlmZkFkQmxvY2snLCBnZXRzZXRmYWIpOyB9Cn0pKCk7Cg=="},{"name":"noop-0.1s.mp3","aliases":["noopmp3-0.1s","abp-resource:blank-mp3"],"kind":{"mime":"audio/mp3"},"content":"SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU2LjQwLjEwMQAAAAAAAAAAAAAA//tUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAGAAADAABgYGBgYGBgYGBgYGBgYGBggICAgICAgICAgICAgICAgICgoKCgoKCgoKCgoKCgoKCgwMDAwMDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4ODg4ODg4P////////////////////8AAAAATGF2YzU2LjYwAAAAAAAAAAAAAAAAJAAAAAAAAAAAAwDNZKlY//sUZAAP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAETEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZB4P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZDwP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZFoP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZHgP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZJYP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"},{"name":"noop-0.5s.mp3","aliases":[],"kind":{"mime":"audio/mp3"},"content":"SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA//tUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAWAAAJAAAgICAgKioqKio1NTU1QEBAQEBKSkpKVVVVVVVgYGBgampqamp1dXV1gICAgICKioqKlZWVlZWgoKCgoKqqqqq1tbW1tcDAwMDKysrKytXV1dXg4ODg4Orq6ur19fX19f////8AAAAATGF2YzU4LjU0AAAAAAAAAAAAAAAAJAMAAAAAAAAACQDI0dkC//sUZAAP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAETEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZB4P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZDwP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZFoP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZHgP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZJYP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZLQP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZNIP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"},{"name":"noop-1s.mp4","aliases":["noopmp4-1s"],"kind":{"mime":"video/mp4"},"content":"AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"},{"name":"noop.html","aliases":["noopframe"],"kind":{"mime":"text/html"},"content":"PCFET0NUWVBFIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+PHRpdGxlPjwvdGl0bGU+PC9oZWFkPgogICAgPGJvZHk+PC9ib2R5Pgo8L2h0bWw+Cg=="},{"name":"noop.js","aliases":["noopjs","abp-resource:blank-js"],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewogICAgJ3VzZSBzdHJpY3QnOwp9KSgpOwo="},{"name":"noop.txt","aliases":["nooptext"],"kind":{"mime":"text/plain"},"content":"Cg=="},{"name":"noop-vmap1.0.xml","aliases":["noopvmap-1.0"],"kind":{"mime":"text/xml"},"content":"PHZtYXA6Vk1BUCB4bWxuczp2bWFwPSJodHRwOi8vd3d3LmlhYi5uZXQvdmlkZW9zdWl0ZS92bWFwIiB2ZXJzaW9uPSIxLjAiPjwvdm1hcDpWTUFQPgo="},{"name":"outbrain-widget.js","aliases":["widgets.outbrain.com/outbrain.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICBjb25zdCBvYnIgPSB7fTsKICAgIGNvbnN0IG1ldGhvZHMgPSBbCiAgICAgICAgJ2NhbGxDbGljaycsCiAgICAgICAgJ2NhbGxMb2FkTW9yZScsCiAgICAgICAgJ2NhbGxSZWNzJywKICAgICAgICAnY2FsbFVzZXJaYXBwaW5nJywKICAgICAgICAnY2FsbFdoYXRJcycsCiAgICAgICAgJ2NhbmNlbFJlY29tbWVuZGF0aW9uJywKICAgICAgICAnY2FuY2VsUmVjcycsCiAgICAgICAgJ2Nsb3NlQ2FyZCcsCiAgICAgICAgJ2Nsb3NlTW9kYWwnLAogICAgICAgICdjbG9zZVRieCcsCiAgICAgICAgJ2Vycm9ySW5qZWN0aW9uSGFuZGxlcicsCiAgICAgICAgJ2dldENvdW50T2ZSZWNzJywKICAgICAgICAnZ2V0U3RhdCcsCiAgICAgICAgJ2ltYWdlRXJyb3InLAogICAgICAgICdtYW51YWxWaWRlb0NsaWNrZWQnLAogICAgICAgICdvbk9kYlJldHVybicsCiAgICAgICAgJ29uVmlkZW9DbGljaycsCiAgICAgICAgJ3BhZ2VyTG9hZCcsCiAgICAgICAgJ3JlY0NsaWNrZWQnLAogICAgICAgICdyZWZyZXNoU3BlY2lmaWNXaWRnZXQnLAogICAgICAgICdyZW5kZXJTcGFXaWRnZXRzJywKICAgICAgICAncmVmcmVzaFdpZGdldCcsCiAgICAgICAgJ3JlbG9hZFdpZGdldCcsCiAgICAgICAgJ3Jlc2VhcmNoV2lkZ2V0JywKICAgICAgICAncmV0dXJuZWRFcnJvcicsCiAgICAgICAgJ3JldHVybmVkSHRtbERhdGEnLAogICAgICAgICdyZXR1cm5lZElyZERhdGEnLAogICAgICAgICdyZXR1cm5lZEpzb25EYXRhJywKICAgICAgICAnc2Nyb2xsTG9hZCcsCiAgICAgICAgJ3Nob3dEZXNjcmlwdGlvbicsCiAgICAgICAgJ3Nob3dSZWNJbklmcmFtZScsCiAgICAgICAgJ3VzZXJaYXBwaW5nTWVzc2FnZScsCiAgICAgICAgJ3phcHBpbmdGb3JtQWN0aW9uJwogICAgXTsKICAgIG9ici5leHRlcm4gPSB7CiAgICAgICAgdmlkZW86IHsKICAgICAgICAgICAgZ2V0VmlkZW9SZWNzOiBub29wZm4sCiAgICAgICAgICAgIHZpZGVvQ2xpY2tlZDogbm9vcGZuCiAgICAgICAgfQogICAgfTsKICAgIG1ldGhvZHMuZm9yRWFjaChmdW5jdGlvbihhKSB7CiAgICAgICAgb2JyLmV4dGVyblthXSA9IG5vb3BmbjsKICAgIH0pOwogICAgd2luZG93Lk9CUiA9IHdpbmRvdy5PQlIgfHwgb2JyOwp9KSgpOwo="},{"name":"popads.js","aliases":["popads.net.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBjb25zdCBtYWdpYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoRGF0ZS5ub3coKSAlIDI2ICsgOTcpICsKICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTgyNDUxNjUzICsgOTgyNDUxNjUzKS50b1N0cmluZygzNik7CiAgICBjb25zdCBvZSA9IHdpbmRvdy5vbmVycm9yOwogICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHNyYywgbGluZSwgY29sLCBlcnJvcikgewogICAgICAgIGlmICggdHlwZW9mIG1zZyA9PT0gJ3N0cmluZycgJiYgbXNnLmluZGV4T2YobWFnaWMpICE9PSAtMSApIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICBpZiAoIG9lIGluc3RhbmNlb2YgRnVuY3Rpb24gKSB7CiAgICAgICAgICAgIHJldHVybiBvZShtc2csIHNyYywgbGluZSwgY29sLCBlcnJvcik7CiAgICAgICAgfQogICAgfS5iaW5kKCk7CiAgICBjb25zdCB0aHJvd01hZ2ljID0gZnVuY3Rpb24oKSB7IHRocm93IG1hZ2ljOyB9OwogICAgZGVsZXRlIHdpbmRvdy5Qb3BBZHM7CiAgICBkZWxldGUgd2luZG93LnBvcG5zOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMod2luZG93LCB7CiAgICAgICAgUG9wQWRzOiB7IHNldDogdGhyb3dNYWdpYyB9LAogICAgICAgIHBvcG5zOiB7IHNldDogdGhyb3dNYWdpYyB9CiAgICB9KTsKfSkoKTsK"},{"name":"popads-dummy.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBkZWxldGUgd2luZG93LlBvcEFkczsKICAgIGRlbGV0ZSB3aW5kb3cucG9wbnM7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3csIHsKICAgICAgICBQb3BBZHM6IHsgdmFsdWU6IHt9IH0sCiAgICAgICAgcG9wbnM6IHsgdmFsdWU6IHt9IH0KICAgIH0pOwp9KSgpOwo="},{"name":"prebid-ads.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAyMi1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICB3aW5kb3cuY2FuUnVuQWRzID0gdHJ1ZTsKICAgIHdpbmRvdy5pc0FkQmxvY2tBY3RpdmUgPSBmYWxzZTsKfSkoKTsK"},{"name":"scorecardresearch_beacon.js","aliases":["scorecardresearch.com/beacon.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICB3aW5kb3cuQ09NU0NPUkUgPSB7CiAgICAgICAgcHVyZ2U6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB3aW5kb3cuX2NvbXNjb3JlID0gW107CiAgICAgICAgfSwKICAgICAgICBiZWFjb246IGZ1bmN0aW9uKCkgewogICAgICAgIH0KICAgIH07Cn0pKCk7Cg=="},{"name":"window.open-defuser.js","aliases":["nowoif.js"],"kind":{"mime":"application/javascript"},"content":"LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICB1QmxvY2sgT3JpZ2luIC0gYSBicm93c2VyIGV4dGVuc2lvbiB0byBibG9jayByZXF1ZXN0cy4KICAgIENvcHlyaWdodCAoQykgMjAxOS1wcmVzZW50IFJheW1vbmQgSGlsbAoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSB7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL30uCgogICAgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrCiovCgooZnVuY3Rpb24oKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBsZXQgYXJnMSA9ICd7ezF9fSc7CiAgICBpZiAoIGFyZzEgPT09ICd7ezF9fScgKSB7IGFyZzEgPSAnJzsgfQogICAgbGV0IGFyZzIgPSAne3syfX0nOwogICAgaWYgKCBhcmcyID09PSAne3syfX0nICkgeyBhcmcyID0gJyc7IH0KICAgIGxldCBhcmczID0gJ3t7M319JzsKICAgIGlmICggYXJnMyA9PT0gJ3t7M319JyApIHsgYXJnMyA9ICcnOyB9CiAgICBjb25zdCBsb2cgPSAvXGJsb2dcYi8udGVzdChhcmczKQogICAgICAgID8gY29uc29sZS5sb2cuYmluZChjb25zb2xlKQogICAgICAgIDogKCApID0+IHsgfTsKICAgIGNvbnN0IG5ld1N5bnRheCA9IC9eWzAxXT8kLy50ZXN0KGFyZzEpID09PSBmYWxzZTsKICAgIGxldCBwYXR0ZXJuID0gJyc7CiAgICBsZXQgdGFyZ2V0UmVzdWx0ID0gdHJ1ZTsKICAgIGxldCBhdXRvUmVtb3ZlQWZ0ZXIgPSAtMTsKICAgIGlmICggbmV3U3ludGF4ICkgewogICAgICAgIHBhdHRlcm4gPSBhcmcxOwogICAgICAgIGlmICggcGF0dGVybi5zdGFydHNXaXRoKCchJykgKSB7CiAgICAgICAgICAgIHRhcmdldFJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5zbGljZSgxKTsKICAgICAgICB9CiAgICAgICAgYXV0b1JlbW92ZUFmdGVyID0gcGFyc2VJbnQoYXJnMik7CiAgICAgICAgaWYgKCBpc05hTihhdXRvUmVtb3ZlQWZ0ZXIpICkgewogICAgICAgICAgICBhdXRvUmVtb3ZlQWZ0ZXIgPSAtMTsKICAgICAgICB9IAogICAgfSBlbHNlIHsKICAgICAgICBwYXR0ZXJuID0gYXJnMjsKICAgICAgICBpZiAoIGFyZzEgPT09ICcwJyApIHsKICAgICAgICAgICAgdGFyZ2V0UmVzdWx0ID0gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgaWYgKCBwYXR0ZXJuID09PSAnJyApIHsKICAgICAgICBwYXR0ZXJuID0gJy4/JzsKICAgIH0gZWxzZSBpZiAoIC9eXC8uK1wvJC8udGVzdChwYXR0ZXJuKSApIHsKICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5zbGljZSgxLC0xKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csICdcXCQmJyk7CiAgICB9CiAgICBjb25zdCByZVBhdHRlcm4gPSBuZXcgUmVnRXhwKHBhdHRlcm4pOwogICAgY29uc3QgY3JlYXRlRGVjb3kgPSBmdW5jdGlvbih0YWcsIHVybFByb3AsIHVybCkgewogICAgICAgIGNvbnN0IGRlY295ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpOwogICAgICAgIGRlY295W3VybFByb3BdID0gdXJsOwogICAgICAgIGRlY295LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCcxcHgnLCAnaW1wb3J0YW50Jyk7CiAgICAgICAgZGVjb3kuc3R5bGUuc2V0UHJvcGVydHkoJ3Bvc2l0aW9uJywnZml4ZWQnLCAnaW1wb3J0YW50Jyk7CiAgICAgICAgZGVjb3kuc3R5bGUuc2V0UHJvcGVydHkoJ3RvcCcsJy0xcHgnLCAnaW1wb3J0YW50Jyk7CiAgICAgICAgZGVjb3kuc3R5bGUuc2V0UHJvcGVydHkoJ3dpZHRoJywnMXB4JywgJ2ltcG9ydGFudCcpOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGVjb3kpOwogICAgICAgIHNldFRpbWVvdXQoKCApID0+IGRlY295LnJlbW92ZSgpLCBhdXRvUmVtb3ZlQWZ0ZXIgKiAxMDAwKTsKICAgICAgICByZXR1cm4gZGVjb3k7CiAgICB9OwogICAgd2luZG93Lm9wZW4gPSBuZXcgUHJveHkod2luZG93Lm9wZW4sIHsKICAgICAgICBhcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CiAgICAgICAgICAgIGxvZygnd2luZG93Lm9wZW46JywgLi4uYXJncyk7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IGFyZ3NbMF07CiAgICAgICAgICAgIGlmICggcmVQYXR0ZXJuLnRlc3QodXJsKSAhPT0gdGFyZ2V0UmVzdWx0ICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIGF1dG9SZW1vdmVBZnRlciA8IDAgKSB7IHJldHVybiBudWxsOyB9CiAgICAgICAgICAgIGNvbnN0IGRlY295ID0gL1xib2JqXGIvLnRlc3QoYXJnMykKICAgICAgICAgICAgICAgID8gY3JlYXRlRGVjb3koJ29iamVjdCcsICdkYXRhJywgdXJsKQogICAgICAgICAgICAgICAgOiBjcmVhdGVEZWNveSgnaWZyYW1lJywgJ3NyYycsIHVybCk7CiAgICAgICAgICAgIGxldCBwb3B1cCA9IGRlY295LmNvbnRlbnRXaW5kb3c7CiAgICAgICAgICAgIGlmICggdHlwZW9mIHBvcHVwID09PSAnb2JqZWN0JyAmJiBwb3B1cCAhPT0gbnVsbCApIHsKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwb3B1cCwgJ2Nsb3NlZCcsIHsgdmFsdWU6IGZhbHNlIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc3Qgbm9vcEZ1bmMgPSAoZnVuY3Rpb24oKXt9KS5iaW5kKHNlbGYpOwogICAgICAgICAgICAgICAgcG9wdXAgPSBuZXcgUHJveHkoc2VsZiwgewogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24odGFyZ2V0LCBwcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggcHJvcCA9PT0gJ2Nsb3NlZCcgKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0gUmVmbGVjdC5nZXQoLi4uYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgciA9PT0gJ2Z1bmN0aW9uJyApIHsgcmV0dXJuIG5vb3BGdW5jOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRbcHJvcF07CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQoLi4uYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAvXGJsb2dcYi8udGVzdChhcmczKSApIHsKICAgICAgICAgICAgICAgIHBvcHVwID0gbmV3IFByb3h5KHBvcHVwLCB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbih0YXJnZXQsIHByb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCd3aW5kb3cub3BlbiAvIGdldCcsIHByb3AsICc9PT0nLCB0YXJnZXRbcHJvcF0pOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQoLi4uYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24odGFyZ2V0LCBwcm9wLCB2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBsb2coJ3dpbmRvdy5vcGVuIC8gc2V0JywgcHJvcCwgJz0nLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCguLi5hcmd1bWVudHMpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcG9wdXA7CiAgICAgICAgfQogICAgfSk7Cn0pKCk7Cg=="},{"name":"abort-current-script.js","aliases":["acs.js","abort-current-inline-script.js","acis.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCB0YXJnZXQgPSAne3sxfX0nOwppZiAoIHRhcmdldCA9PT0gJycgfHwgdGFyZ2V0ID09PSAne3sxfX0nICkgeyByZXR1cm47IH0KY29uc3QgcmVSZWdleEVzY2FwZSA9IC9bLiorP14ke30oKXxbXF1cXF0vZzsKY29uc3QgbmVlZGxlID0gJ3t7Mn19JzsKY29uc3QgcmVOZWVkbGUgPSAoKCApID0+IHsKaWYgKCBuZWVkbGUgPT09ICcnIHx8IG5lZWRsZSA9PT0gJ3t7Mn19JyApIHsgcmV0dXJuIC9eLzsgfQppZiAoIC9eXC8uK1wvJC8udGVzdChuZWVkbGUpICkgewpyZXR1cm4gbmV3IFJlZ0V4cChuZWVkbGUuc2xpY2UoMSwtMSkpOwp9CnJldHVybiBuZXcgUmVnRXhwKG5lZWRsZS5yZXBsYWNlKHJlUmVnZXhFc2NhcGUsICdcXCQmJykpOwp9KSgpOwpjb25zdCBjb250ZXh0ID0gJ3t7M319JzsKY29uc3QgcmVDb250ZXh0ID0gKCggKSA9PiB7CmlmICggY29udGV4dCA9PT0gJycgfHwgY29udGV4dCA9PT0gJ3t7M319JyApIHsgcmV0dXJuOyB9CmlmICggL15cLy4rXC8kLy50ZXN0KGNvbnRleHQpICkgewpyZXR1cm4gbmV3IFJlZ0V4cChjb250ZXh0LnNsaWNlKDEsLTEpKTsKfQpyZXR1cm4gbmV3IFJlZ0V4cChjb250ZXh0LnJlcGxhY2UocmVSZWdleEVzY2FwZSwgJ1xcJCYnKSk7Cn0pKCk7CmNvbnN0IHRoaXNTY3JpcHQgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0Owpjb25zdCBjaGFpbiA9IHRhcmdldC5zcGxpdCgnLicpOwpsZXQgb3duZXIgPSB3aW5kb3c7CmxldCBwcm9wOwpmb3IgKDs7KSB7CnByb3AgPSBjaGFpbi5zaGlmdCgpOwppZiAoIGNoYWluLmxlbmd0aCA9PT0gMCApIHsgYnJlYWs7IH0Kb3duZXIgPSBvd25lcltwcm9wXTsKaWYgKCBvd25lciBpbnN0YW5jZW9mIE9iamVjdCA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQp9CmxldCB2YWx1ZTsKbGV0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG93bmVyLCBwcm9wKTsKaWYgKApkZXNjIGluc3RhbmNlb2YgT2JqZWN0ID09PSBmYWxzZSB8fApkZXNjLmdldCBpbnN0YW5jZW9mIEZ1bmN0aW9uID09PSBmYWxzZQopIHsKdmFsdWUgPSBvd25lcltwcm9wXTsKZGVzYyA9IHVuZGVmaW5lZDsKfQpjb25zdCBtYWdpYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoRGF0ZS5ub3coKSAlIDI2ICsgOTcpICsKTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTgyNDUxNjUzICsgOTgyNDUxNjUzKS50b1N0cmluZygzNik7CmNvbnN0IHNjcmlwdFRleHRzID0gbmV3IFdlYWtNYXAoKTsKY29uc3QgZ2V0U2NyaXB0VGV4dCA9IGVsZW0gPT4gewpsZXQgdGV4dCA9IGVsZW0udGV4dENvbnRlbnQ7CmlmICggdGV4dC50cmltKCkgIT09ICcnICkgeyByZXR1cm4gdGV4dDsgfQppZiAoIHNjcmlwdFRleHRzLmhhcyhlbGVtKSApIHsgcmV0dXJuIHNjcmlwdFRleHRzLmdldChlbGVtKTsgfQpjb25zdCBbICwgbWltZSwgY29udGVudCBdID0KL15kYXRhOihbXixdKiksKC4rKSQvLmV4ZWMoZWxlbS5zcmMudHJpbSgpKSB8fApbICcnLCAnJywgJycgXTsKdHJ5IHsKc3dpdGNoICggdHJ1ZSApIHsKY2FzZSBtaW1lLmVuZHNXaXRoKCc7YmFzZTY0Jyk6CnRleHQgPSBzZWxmLmF0b2IoY29udGVudCk7CmJyZWFrOwpkZWZhdWx0Ogp0ZXh0ID0gc2VsZi5kZWNvZGVVUklDb21wb25lbnQoY29udGVudCk7CmJyZWFrOwp9Cn0gY2F0Y2goZXgpIHsKfQpzY3JpcHRUZXh0cy5zZXQoZWxlbSwgdGV4dCk7CnJldHVybiB0ZXh0Owp9Owpjb25zdCB2YWxpZGF0ZSA9ICggKSA9PiB7CmNvbnN0IGUgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0OwppZiAoIGUgaW5zdGFuY2VvZiBIVE1MU2NyaXB0RWxlbWVudCA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQppZiAoIGUgPT09IHRoaXNTY3JpcHQgKSB7IHJldHVybjsgfQppZiAoIHJlQ29udGV4dCAhPT0gdW5kZWZpbmVkICYmIHJlQ29udGV4dC50ZXN0KGUuc3JjKSA9PT0gZmFsc2UgKSB7CnJldHVybjsKfQppZiAoIHJlTmVlZGxlLnRlc3QoZ2V0U2NyaXB0VGV4dChlKSkgPT09IGZhbHNlICkgeyByZXR1cm47IH0KdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKG1hZ2ljKTsKfTsKT2JqZWN0LmRlZmluZVByb3BlcnR5KG93bmVyLCBwcm9wLCB7CmdldDogZnVuY3Rpb24oKSB7CnZhbGlkYXRlKCk7CnJldHVybiBkZXNjIGluc3RhbmNlb2YgT2JqZWN0Cj8gZGVzYy5nZXQuY2FsbChvd25lcikKOiB2YWx1ZTsKfSwKc2V0OiBmdW5jdGlvbihhKSB7CnZhbGlkYXRlKCk7CmlmICggZGVzYyBpbnN0YW5jZW9mIE9iamVjdCApIHsKZGVzYy5zZXQuY2FsbChvd25lciwgYSk7Cn0gZWxzZSB7CnZhbHVlID0gYTsKfQp9Cn0pOwpjb25zdCBvZSA9IHdpbmRvdy5vbmVycm9yOwp3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZykgewppZiAoIHR5cGVvZiBtc2cgPT09ICdzdHJpbmcnICYmIG1zZy5pbmNsdWRlcyhtYWdpYykgKSB7CnJldHVybiB0cnVlOwp9CmlmICggb2UgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHsKcmV0dXJuIG9lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cn0KfS5iaW5kKCk7Cn0pKCk7Cg=="},{"name":"abort-on-property-read.js","aliases":["aopr.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCBtYWdpYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoRGF0ZS5ub3coKSAlIDI2ICsgOTcpICsKTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTgyNDUxNjUzICsgOTgyNDUxNjUzKS50b1N0cmluZygzNik7CmNvbnN0IGFib3J0ID0gZnVuY3Rpb24oKSB7CnRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihtYWdpYyk7Cn07CmNvbnN0IG1ha2VQcm94eSA9IGZ1bmN0aW9uKG93bmVyLCBjaGFpbikgewpjb25zdCBwb3MgPSBjaGFpbi5pbmRleE9mKCcuJyk7CmlmICggcG9zID09PSAtMSApIHsKY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob3duZXIsIGNoYWluKTsKaWYgKCAhZGVzYyB8fCBkZXNjLmdldCAhPT0gYWJvcnQgKSB7Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShvd25lciwgY2hhaW4sIHsKZ2V0OiBhYm9ydCwKc2V0OiBmdW5jdGlvbigpe30KfSk7Cn0KcmV0dXJuOwp9CmNvbnN0IHByb3AgPSBjaGFpbi5zbGljZSgwLCBwb3MpOwpsZXQgdiA9IG93bmVyW3Byb3BdOwpjaGFpbiA9IGNoYWluLnNsaWNlKHBvcyArIDEpOwppZiAoIHYgKSB7Cm1ha2VQcm94eSh2LCBjaGFpbik7CnJldHVybjsKfQpjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvd25lciwgcHJvcCk7CmlmICggZGVzYyAmJiBkZXNjLnNldCAhPT0gdW5kZWZpbmVkICkgeyByZXR1cm47IH0KT2JqZWN0LmRlZmluZVByb3BlcnR5KG93bmVyLCBwcm9wLCB7CmdldDogZnVuY3Rpb24oKSB7IHJldHVybiB2OyB9LApzZXQ6IGZ1bmN0aW9uKGEpIHsKdiA9IGE7CmlmICggYSBpbnN0YW5jZW9mIE9iamVjdCApIHsKbWFrZVByb3h5KGEsIGNoYWluKTsKfQp9Cn0pOwp9Owpjb25zdCBvd25lciA9IHdpbmRvdzsKbGV0IGNoYWluID0gJ3t7MX19JzsKbWFrZVByb3h5KG93bmVyLCBjaGFpbik7CmNvbnN0IG9lID0gd2luZG93Lm9uZXJyb3I7CndpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCBzcmMsIGxpbmUsIGNvbCwgZXJyb3IpIHsKaWYgKCB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyAmJiBtc2cuaW5kZXhPZihtYWdpYykgIT09IC0xICkgewpyZXR1cm4gdHJ1ZTsKfQppZiAoIG9lIGluc3RhbmNlb2YgRnVuY3Rpb24gKSB7CnJldHVybiBvZShtc2csIHNyYywgbGluZSwgY29sLCBlcnJvcik7Cn0KfS5iaW5kKCk7Cn0pKCk7Cg=="},{"name":"abort-on-property-write.js","aliases":["aopw.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCBtYWdpYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoRGF0ZS5ub3coKSAlIDI2ICsgOTcpICsKTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTgyNDUxNjUzICsgOTgyNDUxNjUzKS50b1N0cmluZygzNik7CmxldCBwcm9wID0gJ3t7MX19JzsKbGV0IG93bmVyID0gd2luZG93Owpmb3IgKDs7KSB7CmNvbnN0IHBvcyA9IHByb3AuaW5kZXhPZignLicpOwppZiAoIHBvcyA9PT0gLTEgKSB7IGJyZWFrOyB9Cm93bmVyID0gb3duZXJbcHJvcC5zbGljZSgwLCBwb3MpXTsKaWYgKCBvd25lciBpbnN0YW5jZW9mIE9iamVjdCA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQpwcm9wID0gcHJvcC5zbGljZShwb3MgKyAxKTsKfQpkZWxldGUgb3duZXJbcHJvcF07Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShvd25lciwgcHJvcCwgewpzZXQ6IGZ1bmN0aW9uKCkgewp0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IobWFnaWMpOwp9Cn0pOwpjb25zdCBvZSA9IHdpbmRvdy5vbmVycm9yOwp3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgc3JjLCBsaW5lLCBjb2wsIGVycm9yKSB7CmlmICggdHlwZW9mIG1zZyA9PT0gJ3N0cmluZycgJiYgbXNnLmluZGV4T2YobWFnaWMpICE9PSAtMSApIHsKcmV0dXJuIHRydWU7Cn0KaWYgKCBvZSBpbnN0YW5jZW9mIEZ1bmN0aW9uICkgewpyZXR1cm4gb2UobXNnLCBzcmMsIGxpbmUsIGNvbCwgZXJyb3IpOwp9Cn0uYmluZCgpOwp9KSgpOwo="},{"name":"abort-on-stack-trace.js","aliases":["aost.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgY2hhaW4gPSAne3sxfX0nOwpsZXQgbmVlZGxlID0gJ3t7Mn19JzsKbGV0IGxvZ0xldmVsID0gJ3t7M319JzsKY29uc3QgcmVSZWdleEVzY2FwZSA9IC9bLiorP14ke30oKXxbXF1cXF0vZzsKaWYgKCBuZWVkbGUgPT09ICcnIHx8IG5lZWRsZSA9PT0gJ3t7Mn19JyApIHsKbmVlZGxlID0gJ14nOwp9IGVsc2UgaWYgKCAvXlwvLitcLyQvLnRlc3QobmVlZGxlKSApIHsKbmVlZGxlID0gbmVlZGxlLnNsaWNlKDEsLTEpOwp9IGVsc2UgewpuZWVkbGUgPSBuZWVkbGUucmVwbGFjZShyZVJlZ2V4RXNjYXBlLCAnXFwkJicpOwp9CmNvbnN0IHJlTmVlZGxlID0gbmV3IFJlZ0V4cChuZWVkbGUpOwpjb25zdCBtYWdpYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoTWF0aC5yYW5kb20oKSAqIDI2ICsgOTcpICsKTWF0aC5mbG9vcigKKDAuMjUgKyBNYXRoLnJhbmRvbSgpICogMC43NSkgKiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUgopLnRvU3RyaW5nKDM2KS5zbGljZSgtOCk7CmNvbnN0IGxvZyA9IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7CmNvbnN0IEVycm9yQ3RvciA9IHNlbGYuRXJyb3I7CmNvbnN0IG11c3RBYm9ydCA9IGZ1bmN0aW9uKGVycikgewpsZXQgZG9jVVJMID0gc2VsZi5sb2NhdGlvbi5ocmVmOwpjb25zdCBwb3MgPSBkb2NVUkwuaW5kZXhPZignIycpOwppZiAoIHBvcyAhPT0gLTEgKSB7CmRvY1VSTCA9IGRvY1VSTC5zbGljZSgwLCBwb3MpOwp9Ci8vIE5vcm1hbGl6ZSBzdGFjayB0cmFjZQpjb25zdCBsaW5lcyA9IFtdOwpmb3IgKCBsZXQgbGluZSBvZiBlcnIuc3RhY2suc3BsaXQoL1tcblxyXSsvKSApIHsKaWYgKCBsaW5lLmluY2x1ZGVzKG1hZ2ljKSApIHsgY29udGludWU7IH0KbGluZSA9IGxpbmUudHJpbSgpOwpsZXQgbWF0Y2ggPSAvKC4qP0ApPyhcUyspKDpcZCspOlxkK1wpPyQvLmV4ZWMobGluZSk7CmlmICggbWF0Y2ggPT09IG51bGwgKSB7IGNvbnRpbnVlOyB9CmxldCB1cmwgPSBtYXRjaFsyXTsKaWYgKCB1cmwuc3RhcnRzV2l0aCgnKCcpICkgeyB1cmwgPSB1cmwuc2xpY2UoMSk7IH0KaWYgKCB1cmwgPT09IGRvY1VSTCApIHsKdXJsID0gJ2lubGluZVNjcmlwdCc7Cn0gZWxzZSBpZiAoIHVybC5zdGFydHNXaXRoKCc8YW5vbnltb3VzPicpICkgewp1cmwgPSAnaW5qZWN0ZWRTY3JpcHQnOwp9CmxldCBmbiA9IG1hdGNoWzFdICE9PSB1bmRlZmluZWQKPyBtYXRjaFsxXS5zbGljZSgwLCAtMSkKOiBsaW5lLnNsaWNlKDAsIG1hdGNoLmluZGV4KS50cmltKCk7CmlmICggZm4uc3RhcnRzV2l0aCgnYXQnKSApIHsgZm4gPSBmbi5zbGljZSgyKS50cmltKCk7IH0KbGV0IHJvd2NvbCA9IG1hdGNoWzNdOwpsaW5lcy5wdXNoKCcgJyArIGAke2ZufSAke3VybH0ke3Jvd2NvbH06MWAudHJpbSgpKTsKfQpsaW5lc1swXSA9IGBzdGFja0RlcHRoOiR7bGluZXMubGVuZ3RoLTF9YDsKY29uc3Qgc3RhY2sgPSBsaW5lcy5qb2luKCdcdCcpOwpjb25zdCByID0gcmVOZWVkbGUudGVzdChzdGFjayk7CmlmICgKbG9nTGV2ZWwgPT09ICcxJyB8fApsb2dMZXZlbCA9PT0gJzInICYmIHIgfHwKbG9nTGV2ZWwgPT09ICczJyAmJiAhcgopIHsKbG9nKHN0YWNrLnJlcGxhY2UoL1x0L2csICdcbicpKTsKfQpyZXR1cm4gcjsKfTsKY29uc3QgbWFrZVByb3h5ID0gZnVuY3Rpb24ob3duZXIsIGNoYWluKSB7CmNvbnN0IHBvcyA9IGNoYWluLmluZGV4T2YoJy4nKTsKaWYgKCBwb3MgPT09IC0xICkgewpsZXQgdiA9IG93bmVyW2NoYWluXTsKT2JqZWN0LmRlZmluZVByb3BlcnR5KG93bmVyLCBjaGFpbiwgewpnZXQ6IGZ1bmN0aW9uKCkgewppZiAoIG11c3RBYm9ydChuZXcgRXJyb3JDdG9yKG1hZ2ljKSkgKSB7CnRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihtYWdpYyk7Cn0KcmV0dXJuIHY7Cn0sCnNldDogZnVuY3Rpb24oYSkgewppZiAoIG11c3RBYm9ydChuZXcgRXJyb3JDdG9yKG1hZ2ljKSkgKSB7CnRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihtYWdpYyk7Cn0KdiA9IGE7Cn0sCn0pOwpyZXR1cm47Cn0KY29uc3QgcHJvcCA9IGNoYWluLnNsaWNlKDAsIHBvcyk7CmxldCB2ID0gb3duZXJbcHJvcF07CmNoYWluID0gY2hhaW4uc2xpY2UocG9zICsgMSk7CmlmICggdiApIHsKbWFrZVByb3h5KHYsIGNoYWluKTsKcmV0dXJuOwp9CmNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG93bmVyLCBwcm9wKTsKaWYgKCBkZXNjICYmIGRlc2Muc2V0ICE9PSB1bmRlZmluZWQgKSB7IHJldHVybjsgfQpPYmplY3QuZGVmaW5lUHJvcGVydHkob3duZXIsIHByb3AsIHsKZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIHY7IH0sCnNldDogZnVuY3Rpb24oYSkgewp2ID0gYTsKaWYgKCBhIGluc3RhbmNlb2YgT2JqZWN0ICkgewptYWtlUHJveHkoYSwgY2hhaW4pOwp9Cn0KfSk7Cn07CmNvbnN0IG93bmVyID0gd2luZG93OwptYWtlUHJveHkob3duZXIsIGNoYWluKTsKY29uc3Qgb2UgPSB3aW5kb3cub25lcnJvcjsKd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHNyYywgbGluZSwgY29sLCBlcnJvcikgewppZiAoIHR5cGVvZiBtc2cgPT09ICdzdHJpbmcnICYmIG1zZy5pbmRleE9mKG1hZ2ljKSAhPT0gLTEgKSB7CnJldHVybiB0cnVlOwp9CmlmICggb2UgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHsKcmV0dXJuIG9lKG1zZywgc3JjLCBsaW5lLCBjb2wsIGVycm9yKTsKfQp9LmJpbmQoKTsKfSkoKTsK"},{"name":"addEventListener-defuser.js","aliases":["aeld.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlMSA9ICd7ezF9fSc7CmlmICggbmVlZGxlMSA9PT0gJycgfHwgbmVlZGxlMSA9PT0gJ3t7MX19JyApIHsKbmVlZGxlMSA9ICcuPyc7Cn0gZWxzZSBpZiAoIC9eXC8uK1wvJC8udGVzdChuZWVkbGUxKSApIHsKbmVlZGxlMSA9IG5lZWRsZTEuc2xpY2UoMSwtMSk7Cn0gZWxzZSB7Cm5lZWRsZTEgPSBuZWVkbGUxLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwp9Cm5lZWRsZTEgPSBuZXcgUmVnRXhwKG5lZWRsZTEpOwpsZXQgbmVlZGxlMiA9ICd7ezJ9fSc7CmlmICggbmVlZGxlMiA9PT0gJycgfHwgbmVlZGxlMiA9PT0gJ3t7Mn19JyApIHsKbmVlZGxlMiA9ICcuPyc7Cn0gZWxzZSBpZiAoIC9eXC8uK1wvJC8udGVzdChuZWVkbGUyKSApIHsKbmVlZGxlMiA9IG5lZWRsZTIuc2xpY2UoMSwtMSk7Cn0gZWxzZSB7Cm5lZWRsZTIgPSBuZWVkbGUyLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwp9Cm5lZWRsZTIgPSBuZXcgUmVnRXhwKG5lZWRsZTIpOwpzZWxmLkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gbmV3IFByb3h5KApzZWxmLkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyLAp7CmFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKbGV0IHR5cGUsIGhhbmRsZXI7CnRyeSB7CnR5cGUgPSBTdHJpbmcoYXJnc1swXSk7CmhhbmRsZXIgPSBTdHJpbmcoYXJnc1sxXSk7Cn0gY2F0Y2goZXgpIHsKfQppZiAoCm5lZWRsZTEudGVzdCh0eXBlKSA9PT0gZmFsc2UgfHwKbmVlZGxlMi50ZXN0KGhhbmRsZXIpID09PSBmYWxzZQopIHsKcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKfQp9Cn0KKTsKfSkoKTsK"},{"name":"addEventListener-logger.js","aliases":["aell.js"],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewpjb25zdCBsb2cgPSBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpOwpzZWxmLkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gbmV3IFByb3h5KApzZWxmLkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyLAp7CmFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKbGV0IHR5cGUsIGhhbmRsZXI7CnRyeSB7CnR5cGUgPSBTdHJpbmcoYXJnc1swXSk7CmhhbmRsZXIgPSBTdHJpbmcoYXJnc1sxXSk7Cn0gY2F0Y2goZXgpIHsKfQpsb2coJ3VCTzogYWRkRXZlbnRMaXN0ZW5lcigiJXMiLCAlcyknLCB0eXBlLCBoYW5kbGVyKTsKcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKfQp9Cik7Cn0pKCk7Cg=="},{"name":"json-prune.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCByYXdQcnVuZVBhdGhzID0gJ3t7MX19JzsKY29uc3QgcmF3TmVlZGxlUGF0aHMgPSAne3syfX0nOwpjb25zdCBwcnVuZVBhdGhzID0gcmF3UHJ1bmVQYXRocyAhPT0gJ3t7MX19JyAmJiByYXdQcnVuZVBhdGhzICE9PSAnJwo/IHJhd1BydW5lUGF0aHMuc3BsaXQoLyArLykKOiBbXTsKbGV0IG5lZWRsZVBhdGhzOwpsZXQgbG9nLCByZUxvZ05lZWRsZTsKaWYgKCBwcnVuZVBhdGhzLmxlbmd0aCAhPT0gMCApIHsKbmVlZGxlUGF0aHMgPSBwcnVuZVBhdGhzLmxlbmd0aCAhPT0gMCAmJgpyYXdOZWVkbGVQYXRocyAhPT0gJ3t7Mn19JyAmJiByYXdOZWVkbGVQYXRocyAhPT0gJycKPyByYXdOZWVkbGVQYXRocy5zcGxpdCgvICsvKQo6IFtdOwp9IGVsc2Ugewpsb2cgPSBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpOwpsZXQgbmVlZGxlOwppZiAoIHJhd05lZWRsZVBhdGhzID09PSAnJyB8fCByYXdOZWVkbGVQYXRocyA9PT0gJ3t7Mn19JyApIHsKbmVlZGxlID0gJy4/JzsKfSBlbHNlIGlmICggcmF3TmVlZGxlUGF0aHMuY2hhckF0KDApID09PSAnLycgJiYgcmF3TmVlZGxlUGF0aHMuc2xpY2UoLTEpID09PSAnLycgKSB7Cm5lZWRsZSA9IHJhd05lZWRsZVBhdGhzLnNsaWNlKDEsIC0xKTsKfSBlbHNlIHsKbmVlZGxlID0gcmF3TmVlZGxlUGF0aHMucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csICdcXCQmJyk7Cn0KcmVMb2dOZWVkbGUgPSBuZXcgUmVnRXhwKG5lZWRsZSk7Cn0KY29uc3QgZmluZE93bmVyID0gZnVuY3Rpb24ocm9vdCwgcGF0aCwgcHJ1bmUgPSBmYWxzZSkgewpsZXQgb3duZXIgPSByb290OwpsZXQgY2hhaW4gPSBwYXRoOwpmb3IgKDs7KSB7CmlmICggdHlwZW9mIG93bmVyICE9PSAnb2JqZWN0JyB8fCBvd25lciA9PT0gbnVsbCAgKSB7CnJldHVybiBmYWxzZTsKfQpjb25zdCBwb3MgPSBjaGFpbi5pbmRleE9mKCcuJyk7CmlmICggcG9zID09PSAtMSApIHsKaWYgKCBwcnVuZSA9PT0gZmFsc2UgKSB7CnJldHVybiBvd25lci5oYXNPd25Qcm9wZXJ0eShjaGFpbik7Cn0KaWYgKCBjaGFpbiA9PT0gJyonICkgewpmb3IgKCBjb25zdCBrZXkgaW4gb3duZXIgKSB7CmlmICggb3duZXIuaGFzT3duUHJvcGVydHkoa2V5KSA9PT0gZmFsc2UgKSB7IGNvbnRpbnVlOyB9CmRlbGV0ZSBvd25lcltrZXldOwp9Cn0gZWxzZSBpZiAoIG93bmVyLmhhc093blByb3BlcnR5KGNoYWluKSApIHsKZGVsZXRlIG93bmVyW2NoYWluXTsKfQpyZXR1cm4gdHJ1ZTsKfQpjb25zdCBwcm9wID0gY2hhaW4uc2xpY2UoMCwgcG9zKTsKaWYgKApwcm9wID09PSAnW10nICYmIEFycmF5LmlzQXJyYXkob3duZXIpIHx8CnByb3AgPT09ICcqJyAmJiBvd25lciBpbnN0YW5jZW9mIE9iamVjdAopIHsKY29uc3QgbmV4dCA9IGNoYWluLnNsaWNlKHBvcyArIDEpOwpsZXQgZm91bmQgPSBmYWxzZTsKZm9yICggY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG93bmVyKSApIHsKZm91bmQgPSBmaW5kT3duZXIob3duZXJba2V5XSwgbmV4dCwgcHJ1bmUpIHx8IGZvdW5kOwp9CnJldHVybiBmb3VuZDsKfQppZiAoIG93bmVyLmhhc093blByb3BlcnR5KHByb3ApID09PSBmYWxzZSApIHsgcmV0dXJuIGZhbHNlOyB9Cm93bmVyID0gb3duZXJbcHJvcF07CmNoYWluID0gY2hhaW4uc2xpY2UocG9zICsgMSk7Cn0KfTsKY29uc3QgbXVzdFByb2Nlc3MgPSBmdW5jdGlvbihyb290KSB7CmZvciAoIGNvbnN0IG5lZWRsZVBhdGggb2YgbmVlZGxlUGF0aHMgKSB7CmlmICggZmluZE93bmVyKHJvb3QsIG5lZWRsZVBhdGgpID09PSBmYWxzZSApIHsKcmV0dXJuIGZhbHNlOwp9Cn0KcmV0dXJuIHRydWU7Cn07CmNvbnN0IHBydW5lciA9IGZ1bmN0aW9uKG8pIHsKaWYgKCBsb2cgIT09IHVuZGVmaW5lZCApIHsKY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KG8sIG51bGwsIDIpOwppZiAoIHJlTG9nTmVlZGxlLnRlc3QoanNvbikgKSB7CmxvZygndUJPOicsIGxvY2F0aW9uLmhvc3RuYW1lLCBqc29uKTsKfQpyZXR1cm4gbzsKfQppZiAoIG11c3RQcm9jZXNzKG8pID09PSBmYWxzZSApIHsgcmV0dXJuIG87IH0KZm9yICggY29uc3QgcGF0aCBvZiBwcnVuZVBhdGhzICkgewpmaW5kT3duZXIobywgcGF0aCwgdHJ1ZSk7Cn0KcmV0dXJuIG87Cn07CkpTT04ucGFyc2UgPSBuZXcgUHJveHkoSlNPTi5wYXJzZSwgewphcHBseTogZnVuY3Rpb24oKSB7CnJldHVybiBwcnVuZXIoUmVmbGVjdC5hcHBseSguLi5hcmd1bWVudHMpKTsKfSwKfSk7ClJlc3BvbnNlLnByb3RvdHlwZS5qc29uID0gbmV3IFByb3h5KFJlc3BvbnNlLnByb3RvdHlwZS5qc29uLCB7CmFwcGx5OiBmdW5jdGlvbigpIHsKcmV0dXJuIFJlZmxlY3QuYXBwbHkoLi4uYXJndW1lbnRzKS50aGVuKG8gPT4gcHJ1bmVyKG8pKTsKfSwKfSk7Cn0pKCk7Cg=="},{"name":"nano-setInterval-booster.js","aliases":["nano-sib.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlQXJnID0gJ3t7MX19JzsKaWYgKCBuZWVkbGVBcmcgPT09ICd7ezF9fScgKSB7IG5lZWRsZUFyZyA9ICcnOyB9CmxldCBkZWxheUFyZyA9ICd7ezJ9fSc7CmlmICggZGVsYXlBcmcgPT09ICd7ezJ9fScgKSB7IGRlbGF5QXJnID0gJyc7IH0KbGV0IGJvb3N0QXJnID0gJ3t7M319JzsKaWYgKCBib29zdEFyZyA9PT0gJ3t7M319JyApIHsgYm9vc3RBcmcgPSAnJzsgfQppZiAoIG5lZWRsZUFyZyA9PT0gJycgKSB7Cm5lZWRsZUFyZyA9ICcuPyc7Cn0gZWxzZSBpZiAoIG5lZWRsZUFyZy5jaGFyQXQoMCkgPT09ICcvJyAmJiBuZWVkbGVBcmcuc2xpY2UoLTEpID09PSAnLycgKSB7Cm5lZWRsZUFyZyA9IG5lZWRsZUFyZy5zbGljZSgxLCAtMSk7Cn0gZWxzZSB7Cm5lZWRsZUFyZyA9IG5lZWRsZUFyZy5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKTsKfQpjb25zdCByZU5lZWRsZSA9IG5ldyBSZWdFeHAobmVlZGxlQXJnKTsKbGV0IGRlbGF5ID0gZGVsYXlBcmcgIT09ICcqJyA/IHBhcnNlSW50KGRlbGF5QXJnLCAxMCkgOiAtMTsKaWYgKCBpc05hTihkZWxheSkgfHwgaXNGaW5pdGUoZGVsYXkpID09PSBmYWxzZSApIHsgZGVsYXkgPSAxMDAwOyB9CmxldCBib29zdCA9IHBhcnNlRmxvYXQoYm9vc3RBcmcpOwpib29zdCA9IGlzTmFOKGJvb3N0KSA9PT0gZmFsc2UgJiYgaXNGaW5pdGUoYm9vc3QpCj8gTWF0aC5taW4oTWF0aC5tYXgoYm9vc3QsIDAuMDIpLCA1MCkKOiAwLjA1OwpzZWxmLnNldEludGVydmFsID0gbmV3IFByb3h5KHNlbGYuc2V0SW50ZXJ2YWwsIHsKYXBwbHk6IGZ1bmN0aW9uKHRhcmdldCwgdGhpc0FyZywgYXJncykgewpjb25zdCBbIGEsIGIgXSA9IGFyZ3M7CmlmICgKKGRlbGF5ID09PSAtMSB8fCBiID09PSBkZWxheSkgJiYKcmVOZWVkbGUudGVzdChhLnRvU3RyaW5nKCkpCikgewphcmdzWzFdID0gYiAqIGJvb3N0Owp9CnJldHVybiB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJncyk7Cn0KfSk7Cn0pKCk7Cg=="},{"name":"nano-setTimeout-booster.js","aliases":["nano-stb.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlQXJnID0gJ3t7MX19JzsKaWYgKCBuZWVkbGVBcmcgPT09ICd7ezF9fScgKSB7IG5lZWRsZUFyZyA9ICcnOyB9CmxldCBkZWxheUFyZyA9ICd7ezJ9fSc7CmlmICggZGVsYXlBcmcgPT09ICd7ezJ9fScgKSB7IGRlbGF5QXJnID0gJyc7IH0KbGV0IGJvb3N0QXJnID0gJ3t7M319JzsKaWYgKCBib29zdEFyZyA9PT0gJ3t7M319JyApIHsgYm9vc3RBcmcgPSAnJzsgfQppZiAoIG5lZWRsZUFyZyA9PT0gJycgKSB7Cm5lZWRsZUFyZyA9ICcuPyc7Cn0gZWxzZSBpZiAoIG5lZWRsZUFyZy5jaGFyQXQoMCkgPT09ICcvJyAmJiBuZWVkbGVBcmcuc2xpY2UoLTEpID09PSAnLycgKSB7Cm5lZWRsZUFyZyA9IG5lZWRsZUFyZy5zbGljZSgxLCAtMSk7Cn0gZWxzZSB7Cm5lZWRsZUFyZyA9IG5lZWRsZUFyZy5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKTsKfQpjb25zdCByZU5lZWRsZSA9IG5ldyBSZWdFeHAobmVlZGxlQXJnKTsKbGV0IGRlbGF5ID0gZGVsYXlBcmcgIT09ICcqJyA/IHBhcnNlSW50KGRlbGF5QXJnLCAxMCkgOiAtMTsKaWYgKCBpc05hTihkZWxheSkgfHwgaXNGaW5pdGUoZGVsYXkpID09PSBmYWxzZSApIHsgZGVsYXkgPSAxMDAwOyB9CmxldCBib29zdCA9IHBhcnNlRmxvYXQoYm9vc3RBcmcpOwpib29zdCA9IGlzTmFOKGJvb3N0KSA9PT0gZmFsc2UgJiYgaXNGaW5pdGUoYm9vc3QpCj8gTWF0aC5taW4oTWF0aC5tYXgoYm9vc3QsIDAuMDIpLCA1MCkKOiAwLjA1OwpzZWxmLnNldFRpbWVvdXQgPSBuZXcgUHJveHkoc2VsZi5zZXRUaW1lb3V0LCB7CmFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKY29uc3QgWyBhLCBiIF0gPSBhcmdzOwppZiAoCihkZWxheSA9PT0gLTEgfHwgYiA9PT0gZGVsYXkpICYmCnJlTmVlZGxlLnRlc3QoYS50b1N0cmluZygpKQopIHsKYXJnc1sxXSA9IGIgKiBib29zdDsKfQpyZXR1cm4gdGFyZ2V0LmFwcGx5KHRoaXNBcmcsIGFyZ3MpOwp9Cn0pOwp9KSgpOwo="},{"name":"noeval-if.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlID0gJ3t7MX19JzsKaWYgKCBuZWVkbGUgPT09ICcnIHx8IG5lZWRsZSA9PT0gJ3t7MX19JyApIHsKbmVlZGxlID0gJy4/JzsKfSBlbHNlIGlmICggbmVlZGxlLnNsaWNlKDAsMSkgPT09ICcvJyAmJiBuZWVkbGUuc2xpY2UoLTEpID09PSAnLycgKSB7Cm5lZWRsZSA9IG5lZWRsZS5zbGljZSgxLC0xKTsKfSBlbHNlIHsKbmVlZGxlID0gbmVlZGxlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwp9Cm5lZWRsZSA9IG5ldyBSZWdFeHAobmVlZGxlKTsKd2luZG93LmV2YWwgPSBuZXcgUHJveHkod2luZG93LmV2YWwsIHsgICAgICAgICAgLy8ganNoaW50IGlnbm9yZTogbGluZQphcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CmNvbnN0IGEgPSBhcmdzWzBdOwppZiAoIG5lZWRsZS50ZXN0KGEudG9TdHJpbmcoKSkgPT09IGZhbHNlICkgewpyZXR1cm4gdGFyZ2V0LmFwcGx5KHRoaXNBcmcsIGFyZ3MpOwp9Cn0KfSk7Cn0pKCk7Cg=="},{"name":"no-fetch-if.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgYXJnMSA9ICd7ezF9fSc7CmlmICggYXJnMSA9PT0gJ3t7MX19JyApIHsgYXJnMSA9ICcnOyB9CmNvbnN0IG5lZWRsZXMgPSBbXTsKZm9yICggY29uc3QgY29uZGl0aW9uIG9mIGFyZzEuc3BsaXQoL1xzKy8pICkgewppZiAoIGNvbmRpdGlvbiA9PT0gJycgKSB7IGNvbnRpbnVlOyB9CmNvbnN0IHBvcyA9IGNvbmRpdGlvbi5pbmRleE9mKCc6Jyk7CmxldCBrZXksIHZhbHVlOwppZiAoIHBvcyAhPT0gLTEgKSB7CmtleSA9IGNvbmRpdGlvbi5zbGljZSgwLCBwb3MpOwp2YWx1ZSA9IGNvbmRpdGlvbi5zbGljZShwb3MgKyAxKTsKfSBlbHNlIHsKa2V5ID0gJ3VybCc7CnZhbHVlID0gY29uZGl0aW9uOwp9CmlmICggdmFsdWUgPT09ICcnICkgewp2YWx1ZSA9ICdeJzsKfSBlbHNlIGlmICggdmFsdWUuc3RhcnRzV2l0aCgnLycpICYmIHZhbHVlLmVuZHNXaXRoKCcvJykgKSB7CnZhbHVlID0gdmFsdWUuc2xpY2UoMSwgLTEpOwp9IGVsc2Ugewp2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwp9Cm5lZWRsZXMucHVzaCh7IGtleSwgcmU6IG5ldyBSZWdFeHAodmFsdWUpIH0pOwp9CmNvbnN0IGxvZyA9IG5lZWRsZXMubGVuZ3RoID09PSAwID8gY29uc29sZS5sb2cuYmluZChjb25zb2xlKSA6IHVuZGVmaW5lZDsKc2VsZi5mZXRjaCA9IG5ldyBQcm94eShzZWxmLmZldGNoLCB7CmFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKbGV0IHByb2NlZWQgPSB0cnVlOwp0cnkgewpsZXQgZGV0YWlsczsKaWYgKCBhcmdzWzBdIGluc3RhbmNlb2Ygc2VsZi5SZXF1ZXN0ICkgewpkZXRhaWxzID0gYXJnc1swXTsKfSBlbHNlIHsKZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oeyB1cmw6IGFyZ3NbMF0gfSwgYXJnc1sxXSk7Cn0KY29uc3QgcHJvcHMgPSBuZXcgTWFwKCk7CmZvciAoIGNvbnN0IHByb3AgaW4gZGV0YWlscyApIHsKbGV0IHYgPSBkZXRhaWxzW3Byb3BdOwppZiAoIHR5cGVvZiB2ICE9PSAnc3RyaW5nJyApIHsKdHJ5IHsgdiA9IEpTT04uc3RyaW5naWZ5KHYpOyB9CmNhdGNoKGV4KSB7IH0KfQppZiAoIHR5cGVvZiB2ICE9PSAnc3RyaW5nJyApIHsgY29udGludWU7IH0KcHJvcHMuc2V0KHByb3AsIHYpOwp9CmlmICggbG9nICE9PSB1bmRlZmluZWQgKSB7CmNvbnN0IG91dCA9IEFycmF5LmZyb20ocHJvcHMpCi5tYXAoYSA9PiBgJHthWzBdfToke2FbMV19YCkKLmpvaW4oJyAnKTsKbG9nKGB1Qk86IGZldGNoKCR7b3V0fSlgKTsKfQpwcm9jZWVkID0gbmVlZGxlcy5sZW5ndGggPT09IDA7CmZvciAoIGNvbnN0IHsga2V5LCByZSB9IG9mIG5lZWRsZXMgKSB7CmlmICgKcHJvcHMuaGFzKGtleSkgPT09IGZhbHNlIHx8CnJlLnRlc3QocHJvcHMuZ2V0KGtleSkpID09PSBmYWxzZQopIHsKcHJvY2VlZCA9IHRydWU7CmJyZWFrOwp9Cn0KfSBjYXRjaChleCkgewp9CnJldHVybiBwcm9jZWVkCj8gUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpCjogUHJvbWlzZS5yZXNvbHZlKG5ldyBSZXNwb25zZSgpKTsKfQp9KTsKfSkoKTsK"},{"name":"no-floc.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewppZiAoIERvY3VtZW50IGluc3RhbmNlb2YgT2JqZWN0ID09PSBmYWxzZSApIHsgcmV0dXJuOyB9CmlmICggRG9jdW1lbnQucHJvdG90eXBlLmludGVyZXN0Q29ob3J0IGluc3RhbmNlb2YgRnVuY3Rpb24gPT09IGZhbHNlICkgewpyZXR1cm47Cn0KRG9jdW1lbnQucHJvdG90eXBlLmludGVyZXN0Q29ob3J0ID0gbmV3IFByb3h5KApEb2N1bWVudC5wcm90b3R5cGUuaW50ZXJlc3RDb2hvcnQsCnsKYXBwbHk6IGZ1bmN0aW9uKCkgewpyZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKfQp9Cik7Cn0pKCk7Cg=="},{"name":"refresh-defuser.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCBhcmcxID0gJ3t7MX19JzsKY29uc3QgZGVmdXNlID0gKCApID0+IHsKY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbaHR0cC1lcXVpdj0icmVmcmVzaCIgaV1bY29udGVudF0nKTsKaWYgKCBtZXRhID09PSBudWxsICkgeyByZXR1cm47IH0KY29uc3QgcyA9IGFyZzEgPT09ICcnIHx8IGFyZzEgPT09ICd7ezF9fScKPyBtZXRhLmdldEF0dHJpYnV0ZSgnY29udGVudCcpCjogYXJnMTsKY29uc3QgbXMgPSBNYXRoLm1heChwYXJzZUZsb2F0KHMpIHx8IDAsIDApICogMTAwMDsKc2V0VGltZW91dCgoICkgPT4geyB3aW5kb3cuc3RvcCgpOyB9LCBtcyk7Cn07CmlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnICkgewpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZGVmdXNlLCB7IG9uY2U6IHRydWUgfSk7Cn0gZWxzZSB7CmRlZnVzZSgpOwp9Cn0pKCk7Cg=="},{"name":"remove-attr.js","aliases":["ra.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCB0b2tlbiA9ICd7ezF9fSc7CmlmICggdG9rZW4gPT09ICcnIHx8IHRva2VuID09PSAne3sxfX0nICkgeyByZXR1cm47IH0KY29uc3QgdG9rZW5zID0gdG9rZW4uc3BsaXQoL1xzKlx8XHMqLyk7CmxldCBzZWxlY3RvciA9ICd7ezJ9fSc7CmlmICggc2VsZWN0b3IgPT09ICcnIHx8IHNlbGVjdG9yID09PSAne3syfX0nICkgewpzZWxlY3RvciA9IGBbJHt0b2tlbnMuam9pbignXSxbJyl9XWA7Cn0KbGV0IGJlaGF2aW9yID0gJ3t7M319JzsKbGV0IHRpbWVyOwpjb25zdCBybWF0dHIgPSAoICkgPT4gewp0aW1lciA9IHVuZGVmaW5lZDsKdHJ5IHsKY29uc3Qgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTsKZm9yICggY29uc3Qgbm9kZSBvZiBub2RlcyApIHsKZm9yICggY29uc3QgYXR0ciBvZiB0b2tlbnMgKSB7Cm5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHIpOwp9Cn0KfSBjYXRjaChleCkgewp9Cn07CmNvbnN0IG11dGF0aW9uSGFuZGxlciA9IG11dGF0aW9ucyA9PiB7CmlmICggdGltZXIgIT09IHVuZGVmaW5lZCApIHsgcmV0dXJuOyB9CmxldCBza2lwID0gdHJ1ZTsKZm9yICggbGV0IGkgPSAwOyBpIDwgbXV0YXRpb25zLmxlbmd0aCAmJiBza2lwOyBpKysgKSB7CmNvbnN0IHsgdHlwZSwgYWRkZWROb2RlcywgcmVtb3ZlZE5vZGVzIH0gPSBtdXRhdGlvbnNbaV07CmlmICggdHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICkgeyBza2lwID0gZmFsc2U7IH0KZm9yICggbGV0IGogPSAwOyBqIDwgYWRkZWROb2Rlcy5sZW5ndGggJiYgc2tpcDsgaisrICkgewppZiAoIGFkZGVkTm9kZXNbal0ubm9kZVR5cGUgPT09IDEgKSB7IHNraXAgPSBmYWxzZTsgYnJlYWs7IH0KfQpmb3IgKCBsZXQgaiA9IDA7IGogPCByZW1vdmVkTm9kZXMubGVuZ3RoICYmIHNraXA7IGorKyApIHsKaWYgKCByZW1vdmVkTm9kZXNbal0ubm9kZVR5cGUgPT09IDEgKSB7IHNraXAgPSBmYWxzZTsgYnJlYWs7IH0KfQp9CmlmICggc2tpcCApIHsgcmV0dXJuOyB9CnRpbWVyID0gc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrKHJtYXR0ciwgeyB0aW1lb3V0OiAxNyB9KTsKfTsKY29uc3Qgc3RhcnQgPSAoICkgPT4gewpybWF0dHIoKTsKaWYgKCAvXGJzdGF5XGIvLnRlc3QoYmVoYXZpb3IpID09PSBmYWxzZSApIHsgcmV0dXJuOyB9CmNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25IYW5kbGVyKTsKb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwgewphdHRyaWJ1dGVzOiB0cnVlLAphdHRyaWJ1dGVGaWx0ZXI6IHRva2VucywKY2hpbGRMaXN0OiB0cnVlLApzdWJ0cmVlOiB0cnVlLAp9KTsKfTsKaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlICE9PSAnY29tcGxldGUnICYmIC9cYmNvbXBsZXRlXGIvLnRlc3QoYmVoYXZpb3IpICkgewpzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFydCwgeyBvbmNlOiB0cnVlIH0pOwp9IGVsc2UgaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlICE9PSAnbG9hZGluZycgfHwgL1xiYXNhcFxiLy50ZXN0KGJlaGF2aW9yKSApIHsKc3RhcnQoKTsKfSBlbHNlIHsKc2VsZi5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc3RhcnQsIHsgb25jZTogdHJ1ZSB9KTsKfQp9KSgpOwo="},{"name":"remove-class.js","aliases":["rc.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCB0b2tlbiA9ICd7ezF9fSc7CmlmICggdG9rZW4gPT09ICcnIHx8IHRva2VuID09PSAne3sxfX0nICkgeyByZXR1cm47IH0KY29uc3QgdG9rZW5zID0gdG9rZW4uc3BsaXQoL1xzKlx8XHMqLyk7CmxldCBzZWxlY3RvciA9ICd7ezJ9fSc7CmlmICggc2VsZWN0b3IgPT09ICcnIHx8IHNlbGVjdG9yID09PSAne3syfX0nICkgewpzZWxlY3RvciA9ICcuJyArIHRva2Vucy5tYXAoYSA9PiBDU1MuZXNjYXBlKGEpKS5qb2luKCcsLicpOwp9CmxldCBiZWhhdmlvciA9ICd7ezN9fSc7CmxldCB0aW1lcjsKY29uc3Qgcm1jbGFzcyA9IGZ1bmN0aW9uKCkgewp0aW1lciA9IHVuZGVmaW5lZDsKdHJ5IHsKY29uc3Qgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTsKZm9yICggY29uc3Qgbm9kZSBvZiBub2RlcyApIHsKbm9kZS5jbGFzc0xpc3QucmVtb3ZlKC4uLnRva2Vucyk7Cn0KfSBjYXRjaChleCkgewp9Cn07CmNvbnN0IG11dGF0aW9uSGFuZGxlciA9IG11dGF0aW9ucyA9PiB7CmlmICggdGltZXIgIT09IHVuZGVmaW5lZCApIHsgcmV0dXJuOyB9CmxldCBza2lwID0gdHJ1ZTsKZm9yICggbGV0IGkgPSAwOyBpIDwgbXV0YXRpb25zLmxlbmd0aCAmJiBza2lwOyBpKysgKSB7CmNvbnN0IHsgdHlwZSwgYWRkZWROb2RlcywgcmVtb3ZlZE5vZGVzIH0gPSBtdXRhdGlvbnNbaV07CmlmICggdHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICkgeyBza2lwID0gZmFsc2U7IH0KZm9yICggbGV0IGogPSAwOyBqIDwgYWRkZWROb2Rlcy5sZW5ndGggJiYgc2tpcDsgaisrICkgewppZiAoIGFkZGVkTm9kZXNbal0ubm9kZVR5cGUgPT09IDEgKSB7IHNraXAgPSBmYWxzZTsgYnJlYWs7IH0KfQpmb3IgKCBsZXQgaiA9IDA7IGogPCByZW1vdmVkTm9kZXMubGVuZ3RoICYmIHNraXA7IGorKyApIHsKaWYgKCByZW1vdmVkTm9kZXNbal0ubm9kZVR5cGUgPT09IDEgKSB7IHNraXAgPSBmYWxzZTsgYnJlYWs7IH0KfQp9CmlmICggc2tpcCApIHsgcmV0dXJuOyB9CnRpbWVyID0gc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrKHJtY2xhc3MsIHsgdGltZW91dDogNjcgfSk7Cn07CmNvbnN0IHN0YXJ0ID0gKCApID0+IHsKcm1jbGFzcygpOwppZiAoIC9cYnN0YXlcYi8udGVzdChiZWhhdmlvcikgPT09IGZhbHNlICkgeyByZXR1cm47IH0KY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkhhbmRsZXIpOwpvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7CmF0dHJpYnV0ZXM6IHRydWUsCmF0dHJpYnV0ZUZpbHRlcjogWyAnY2xhc3MnIF0sCmNoaWxkTGlzdDogdHJ1ZSwKc3VidHJlZTogdHJ1ZSwKfSk7Cn07CmlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gJ2NvbXBsZXRlJyAmJiAvXGJjb21wbGV0ZVxiLy50ZXN0KGJlaGF2aW9yKSApIHsKc2VsZi5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnQsIHsgb25jZTogdHJ1ZSB9KTsKfSBlbHNlIGlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnICkgewpzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBzdGFydCwgeyBvbmNlOiB0cnVlIH0pOwp9IGVsc2UgewpzdGFydCgpOwp9Cn0pKCk7Cg=="},{"name":"no-requestAnimationFrame-if.js","aliases":["norafif.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlID0gJ3t7MX19JzsKaWYgKCBuZWVkbGUgPT09ICd7ezF9fScgKSB7IG5lZWRsZSA9ICcnOyB9CmNvbnN0IG5lZWRsZU5vdCA9IG5lZWRsZS5jaGFyQXQoMCkgPT09ICchJzsKaWYgKCBuZWVkbGVOb3QgKSB7IG5lZWRsZSA9IG5lZWRsZS5zbGljZSgxKTsgfQppZiAoIG5lZWRsZS5zdGFydHNXaXRoKCcvJykgJiYgbmVlZGxlLmVuZHNXaXRoKCcvJykgKSB7Cm5lZWRsZSA9IG5lZWRsZS5zbGljZSgxLCAtMSk7Cn0gZWxzZSBpZiAoIG5lZWRsZSAhPT0gJycgKSB7Cm5lZWRsZSA9IG5lZWRsZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKTsKfQpjb25zdCBsb2cgPSBuZWVkbGVOb3QgPT09IGZhbHNlICYmIG5lZWRsZSA9PT0gJycgPyBjb25zb2xlLmxvZyA6IHVuZGVmaW5lZDsKY29uc3QgcmVOZWVkbGUgPSBuZXcgUmVnRXhwKG5lZWRsZSk7CndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSBuZXcgUHJveHkod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSwgewphcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CmNvbnN0IGEgPSBTdHJpbmcoYXJnc1swXSk7CmxldCBkZWZ1c2UgPSBmYWxzZTsKaWYgKCBsb2cgIT09IHVuZGVmaW5lZCApIHsKbG9nKCd1Qk86IHJlcXVlc3RBbmltYXRpb25GcmFtZSgiJXMiKScsIGEpOwp9IGVsc2UgewpkZWZ1c2UgPSByZU5lZWRsZS50ZXN0KGEpICE9PSBuZWVkbGVOb3Q7Cn0KaWYgKCBkZWZ1c2UgKSB7CmFyZ3NbMF0gPSBmdW5jdGlvbigpe307Cn0KcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKfQp9KTsKfSkoKTsK"},{"name":"set-constant.js","aliases":["set.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCBjaGFpbiA9ICd7ezF9fSc7CmxldCBjVmFsdWUgPSAne3syfX0nOwpjb25zdCB0aGlzU2NyaXB0ID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdDsKaWYgKCBjVmFsdWUgPT09ICd1bmRlZmluZWQnICkgewpjVmFsdWUgPSB1bmRlZmluZWQ7Cn0gZWxzZSBpZiAoIGNWYWx1ZSA9PT0gJ2ZhbHNlJyApIHsKY1ZhbHVlID0gZmFsc2U7Cn0gZWxzZSBpZiAoIGNWYWx1ZSA9PT0gJ3RydWUnICkgewpjVmFsdWUgPSB0cnVlOwp9IGVsc2UgaWYgKCBjVmFsdWUgPT09ICdudWxsJyApIHsKY1ZhbHVlID0gbnVsbDsKfSBlbHNlIGlmICggY1ZhbHVlID09PSAiJyciICkgewpjVmFsdWUgPSAnJzsKfSBlbHNlIGlmICggY1ZhbHVlID09PSAnW10nICkgewpjVmFsdWUgPSBbXTsKfSBlbHNlIGlmICggY1ZhbHVlID09PSAne30nICkgewpjVmFsdWUgPSB7fTsKfSBlbHNlIGlmICggY1ZhbHVlID09PSAnbm9vcEZ1bmMnICkgewpjVmFsdWUgPSBmdW5jdGlvbigpe307Cn0gZWxzZSBpZiAoIGNWYWx1ZSA9PT0gJ3RydWVGdW5jJyApIHsKY1ZhbHVlID0gZnVuY3Rpb24oKXsgcmV0dXJuIHRydWU7IH07Cn0gZWxzZSBpZiAoIGNWYWx1ZSA9PT0gJ2ZhbHNlRnVuYycgKSB7CmNWYWx1ZSA9IGZ1bmN0aW9uKCl7IHJldHVybiBmYWxzZTsgfTsKfSBlbHNlIGlmICggL15cZCskLy50ZXN0KGNWYWx1ZSkgKSB7CmNWYWx1ZSA9IHBhcnNlRmxvYXQoY1ZhbHVlKTsKaWYgKCBpc05hTihjVmFsdWUpICkgeyByZXR1cm47IH0KaWYgKCBNYXRoLmFicyhjVmFsdWUpID4gMHg3RkZGICkgeyByZXR1cm47IH0KfSBlbHNlIHsKcmV0dXJuOwp9CmxldCBhYm9ydGVkID0gZmFsc2U7CmNvbnN0IG11c3RBYm9ydCA9IGZ1bmN0aW9uKHYpIHsKaWYgKCBhYm9ydGVkICkgeyByZXR1cm4gdHJ1ZTsgfQphYm9ydGVkID0KKHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsKSAmJgooY1ZhbHVlICE9PSB1bmRlZmluZWQgJiYgY1ZhbHVlICE9PSBudWxsKSAmJgoodHlwZW9mIHYgIT09IHR5cGVvZiBjVmFsdWUpOwpyZXR1cm4gYWJvcnRlZDsKfTsKLy8gaHR0cHM6Ly9naXRodWIuY29tL3VCbG9ja09yaWdpbi91QmxvY2staXNzdWVzL2lzc3Vlcy8xNTYKLy8gICBTdXBwb3J0IG11bHRpcGxlIHRyYXBwZXJzIGZvciB0aGUgc2FtZSBwcm9wZXJ0eS4KY29uc3QgdHJhcFByb3AgPSBmdW5jdGlvbihvd25lciwgcHJvcCwgY29uZmlndXJhYmxlLCBoYW5kbGVyKSB7CmlmICggaGFuZGxlci5pbml0KG93bmVyW3Byb3BdKSA9PT0gZmFsc2UgKSB7IHJldHVybjsgfQpjb25zdCBvZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob3duZXIsIHByb3ApOwpsZXQgcHJldkdldHRlciwgcHJldlNldHRlcjsKaWYgKCBvZGVzYyBpbnN0YW5jZW9mIE9iamVjdCApIHsKb3duZXJbcHJvcF0gPSBjVmFsdWU7CmlmICggb2Rlc2MuZ2V0IGluc3RhbmNlb2YgRnVuY3Rpb24gKSB7CnByZXZHZXR0ZXIgPSBvZGVzYy5nZXQ7Cn0KaWYgKCBvZGVzYy5zZXQgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHsKcHJldlNldHRlciA9IG9kZXNjLnNldDsKfQp9CnRyeSB7Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShvd25lciwgcHJvcCwgewpjb25maWd1cmFibGUsCmdldCgpIHsKaWYgKCBwcmV2R2V0dGVyICE9PSB1bmRlZmluZWQgKSB7CnByZXZHZXR0ZXIoKTsKfQpyZXR1cm4gaGFuZGxlci5nZXR0ZXIoKTsgLy8gY1ZhbHVlCn0sCnNldChhKSB7CmlmICggcHJldlNldHRlciAhPT0gdW5kZWZpbmVkICkgewpwcmV2U2V0dGVyKGEpOwp9CmhhbmRsZXIuc2V0dGVyKGEpOwp9Cn0pOwp9IGNhdGNoKGV4KSB7Cn0KfTsKY29uc3QgdHJhcENoYWluID0gZnVuY3Rpb24ob3duZXIsIGNoYWluKSB7CmNvbnN0IHBvcyA9IGNoYWluLmluZGV4T2YoJy4nKTsKaWYgKCBwb3MgPT09IC0xICkgewp0cmFwUHJvcChvd25lciwgY2hhaW4sIGZhbHNlLCB7CnY6IHVuZGVmaW5lZCwKaW5pdDogZnVuY3Rpb24odikgewppZiAoIG11c3RBYm9ydCh2KSApIHsgcmV0dXJuIGZhbHNlOyB9CnRoaXMudiA9IHY7CnJldHVybiB0cnVlOwp9LApnZXR0ZXI6IGZ1bmN0aW9uKCkgewpyZXR1cm4gZG9jdW1lbnQuY3VycmVudFNjcmlwdCA9PT0gdGhpc1NjcmlwdAo/IHRoaXMudgo6IGNWYWx1ZTsKfSwKc2V0dGVyOiBmdW5jdGlvbihhKSB7CmlmICggbXVzdEFib3J0KGEpID09PSBmYWxzZSApIHsgcmV0dXJuOyB9CmNWYWx1ZSA9IGE7Cn0KfSk7CnJldHVybjsKfQpjb25zdCBwcm9wID0gY2hhaW4uc2xpY2UoMCwgcG9zKTsKY29uc3QgdiA9IG93bmVyW3Byb3BdOwpjaGFpbiA9IGNoYWluLnNsaWNlKHBvcyArIDEpOwppZiAoIHYgaW5zdGFuY2VvZiBPYmplY3QgfHwgdHlwZW9mIHYgPT09ICdvYmplY3QnICYmIHYgIT09IG51bGwgKSB7CnRyYXBDaGFpbih2LCBjaGFpbik7CnJldHVybjsKfQp0cmFwUHJvcChvd25lciwgcHJvcCwgdHJ1ZSwgewp2OiB1bmRlZmluZWQsCmluaXQ6IGZ1bmN0aW9uKHYpIHsKdGhpcy52ID0gdjsKcmV0dXJuIHRydWU7Cn0sCmdldHRlcjogZnVuY3Rpb24oKSB7CnJldHVybiB0aGlzLnY7Cn0sCnNldHRlcjogZnVuY3Rpb24oYSkgewp0aGlzLnYgPSBhOwppZiAoIGEgaW5zdGFuY2VvZiBPYmplY3QgKSB7CnRyYXBDaGFpbihhLCBjaGFpbik7Cn0KfQp9KTsKfTsKdHJhcENoYWluKHdpbmRvdywgY2hhaW4pOwp9KSgpOwo="},{"name":"no-setInterval-if.js","aliases":["nosiif.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlID0gJ3t7MX19JzsKY29uc3QgbmVlZGxlTm90ID0gbmVlZGxlLmNoYXJBdCgwKSA9PT0gJyEnOwppZiAoIG5lZWRsZU5vdCApIHsgbmVlZGxlID0gbmVlZGxlLnNsaWNlKDEpOyB9CmxldCBkZWxheSA9ICd7ezJ9fSc7CmlmICggZGVsYXkgPT09ICd7ezJ9fScgKSB7IGRlbGF5ID0gdW5kZWZpbmVkOyB9CmxldCBkZWxheU5vdCA9IGZhbHNlOwppZiAoIGRlbGF5ICE9PSB1bmRlZmluZWQgKSB7CmRlbGF5Tm90ID0gZGVsYXkuY2hhckF0KDApID09PSAnISc7CmlmICggZGVsYXlOb3QgKSB7IGRlbGF5ID0gZGVsYXkuc2xpY2UoMSk7IH0KZGVsYXkgPSBwYXJzZUludChkZWxheSwgMTApOwp9CmlmICggbmVlZGxlID09PSAnJyB8fCBuZWVkbGUgPT09ICd7ezF9fScgKSB7Cm5lZWRsZSA9ICcnOwp9IGVsc2UgaWYgKCBuZWVkbGUuc3RhcnRzV2l0aCgnLycpICYmIG5lZWRsZS5lbmRzV2l0aCgnLycpICkgewpuZWVkbGUgPSBuZWVkbGUuc2xpY2UoMSwtMSk7Cn0gZWxzZSB7Cm5lZWRsZSA9IG5lZWRsZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKTsKfQpjb25zdCBsb2cgPSBuZWVkbGVOb3QgPT09IGZhbHNlICYmIG5lZWRsZSA9PT0gJycgJiYgZGVsYXkgPT09IHVuZGVmaW5lZAo/IGNvbnNvbGUubG9nCjogdW5kZWZpbmVkOwpjb25zdCByZU5lZWRsZSA9IG5ldyBSZWdFeHAobmVlZGxlKTsKd2luZG93LnNldEludGVydmFsID0gbmV3IFByb3h5KHdpbmRvdy5zZXRJbnRlcnZhbCwgewphcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CmNvbnN0IGEgPSBTdHJpbmcoYXJnc1swXSk7CmNvbnN0IGIgPSBhcmdzWzFdOwppZiAoIGxvZyAhPT0gdW5kZWZpbmVkICkgewpsb2coJ3VCTzogc2V0SW50ZXJ2YWwoIiVzIiwgJXMpJywgYSwgYik7Cn0gZWxzZSB7CmxldCBkZWZ1c2U7CmlmICggbmVlZGxlICE9PSAnJyApIHsKZGVmdXNlID0gcmVOZWVkbGUudGVzdChhKSAhPT0gbmVlZGxlTm90Owp9CmlmICggZGVmdXNlICE9PSBmYWxzZSAmJiBkZWxheSAhPT0gdW5kZWZpbmVkICkgewpkZWZ1c2UgPSAoYiA9PT0gZGVsYXkgfHwgaXNOYU4oYikgJiYgaXNOYU4oZGVsYXkpICkgIT09IGRlbGF5Tm90Owp9CmlmICggZGVmdXNlICkgewphcmdzWzBdID0gZnVuY3Rpb24oKXt9Owp9Cn0KcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKfQp9KTsKfSkoKTsK"},{"name":"no-setTimeout-if.js","aliases":["nostif.js","setTimeout-defuser.js"],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbmVlZGxlID0gJ3t7MX19JzsKY29uc3QgbmVlZGxlTm90ID0gbmVlZGxlLmNoYXJBdCgwKSA9PT0gJyEnOwppZiAoIG5lZWRsZU5vdCApIHsgbmVlZGxlID0gbmVlZGxlLnNsaWNlKDEpOyB9CmxldCBkZWxheSA9ICd7ezJ9fSc7CmlmICggZGVsYXkgPT09ICd7ezJ9fScgKSB7IGRlbGF5ID0gdW5kZWZpbmVkOyB9CmxldCBkZWxheU5vdCA9IGZhbHNlOwppZiAoIGRlbGF5ICE9PSB1bmRlZmluZWQgKSB7CmRlbGF5Tm90ID0gZGVsYXkuY2hhckF0KDApID09PSAnISc7CmlmICggZGVsYXlOb3QgKSB7IGRlbGF5ID0gZGVsYXkuc2xpY2UoMSk7IH0KZGVsYXkgPSBwYXJzZUludChkZWxheSwgMTApOwp9CmlmICggbmVlZGxlID09PSAnJyB8fCBuZWVkbGUgPT09ICd7ezF9fScgKSB7Cm5lZWRsZSA9ICcnOwp9IGVsc2UgaWYgKCBuZWVkbGUuc3RhcnRzV2l0aCgnLycpICYmIG5lZWRsZS5lbmRzV2l0aCgnLycpICkgewpuZWVkbGUgPSBuZWVkbGUuc2xpY2UoMSwtMSk7Cn0gZWxzZSB7Cm5lZWRsZSA9IG5lZWRsZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKTsKfQpjb25zdCBsb2cgPSBuZWVkbGVOb3QgPT09IGZhbHNlICYmIG5lZWRsZSA9PT0gJycgJiYgZGVsYXkgPT09IHVuZGVmaW5lZAo/IGNvbnNvbGUubG9nCjogdW5kZWZpbmVkOwpjb25zdCByZU5lZWRsZSA9IG5ldyBSZWdFeHAobmVlZGxlKTsKd2luZG93LnNldFRpbWVvdXQgPSBuZXcgUHJveHkod2luZG93LnNldFRpbWVvdXQsIHsKYXBwbHk6IGZ1bmN0aW9uKHRhcmdldCwgdGhpc0FyZywgYXJncykgewpjb25zdCBhID0gU3RyaW5nKGFyZ3NbMF0pOwpjb25zdCBiID0gYXJnc1sxXTsKaWYgKCBsb2cgIT09IHVuZGVmaW5lZCApIHsKbG9nKCd1Qk86IHNldFRpbWVvdXQoIiVzIiwgJXMpJywgYSwgYik7Cn0gZWxzZSB7CmxldCBkZWZ1c2U7CmlmICggbmVlZGxlICE9PSAnJyApIHsKZGVmdXNlID0gcmVOZWVkbGUudGVzdChhKSAhPT0gbmVlZGxlTm90Owp9CmlmICggZGVmdXNlICE9PSBmYWxzZSAmJiBkZWxheSAhPT0gdW5kZWZpbmVkICkgewpkZWZ1c2UgPSAoYiA9PT0gZGVsYXkgfHwgaXNOYU4oYikgJiYgaXNOYU4oZGVsYXkpICkgIT09IGRlbGF5Tm90Owp9CmlmICggZGVmdXNlICkgewphcmdzWzBdID0gZnVuY3Rpb24oKXt9Owp9Cn0KcmV0dXJuIHRhcmdldC5hcHBseSh0aGlzQXJnLCBhcmdzKTsKfQp9KTsKfSkoKTsK"},{"name":"webrtc-if.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgZ29vZCA9ICd7ezF9fSc7CmlmICggZ29vZC5zdGFydHNXaXRoKCcvJykgJiYgZ29vZC5lbmRzV2l0aCgnLycpICkgewpnb29kID0gZ29vZC5zbGljZSgxLCAtMSk7Cn0gZWxzZSB7Cmdvb2QgPSBnb29kLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwp9CmxldCByZUdvb2Q7CnRyeSB7CnJlR29vZCA9IG5ldyBSZWdFeHAoZ29vZCk7Cn0gY2F0Y2goZXgpIHsKcmV0dXJuOwp9CmNvbnN0IHJ0Y05hbWUgPSB3aW5kb3cuUlRDUGVlckNvbm5lY3Rpb24KPyAnUlRDUGVlckNvbm5lY3Rpb24nCjogKHdpbmRvdy53ZWJraXRSVENQZWVyQ29ubmVjdGlvbiA/ICd3ZWJraXRSVENQZWVyQ29ubmVjdGlvbicgOiAnJyk7CmlmICggcnRjTmFtZSA9PT0gJycgKSB7IHJldHVybjsgfQpjb25zdCBsb2cgPSBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpOwpjb25zdCBuZXV0ZXJlZFBlZXJDb25uZWN0aW9ucyA9IG5ldyBXZWFrU2V0KCk7CmNvbnN0IGlzR29vZENvbmZpZyA9IGZ1bmN0aW9uKGluc3RhbmNlLCBjb25maWcpIHsKaWYgKCBuZXV0ZXJlZFBlZXJDb25uZWN0aW9ucy5oYXMoaW5zdGFuY2UpICkgeyByZXR1cm4gZmFsc2U7IH0KaWYgKCBjb25maWcgaW5zdGFuY2VvZiBPYmplY3QgPT09IGZhbHNlICkgeyByZXR1cm4gdHJ1ZTsgfQppZiAoIEFycmF5LmlzQXJyYXkoY29uZmlnLmljZVNlcnZlcnMpID09PSBmYWxzZSApIHsgcmV0dXJuIHRydWU7IH0KZm9yICggY29uc3Qgc2VydmVyIG9mIGNvbmZpZy5pY2VTZXJ2ZXJzICkgewpjb25zdCB1cmxzID0gdHlwZW9mIHNlcnZlci51cmxzID09PSAnc3RyaW5nJwo/IFsgc2VydmVyLnVybHMgXQo6IHNlcnZlci51cmxzOwppZiAoIEFycmF5LmlzQXJyYXkodXJscykgKSB7CmZvciAoIGNvbnN0IHVybCBvZiB1cmxzICkgewppZiAoIHJlR29vZC50ZXN0KHVybCkgKSB7IHJldHVybiB0cnVlOyB9Cn0KfQppZiAoIHR5cGVvZiBzZXJ2ZXIudXNlcm5hbWUgPT09ICdzdHJpbmcnICkgewppZiAoIHJlR29vZC50ZXN0KHNlcnZlci51c2VybmFtZSkgKSB7IHJldHVybiB0cnVlOyB9Cn0KaWYgKCB0eXBlb2Ygc2VydmVyLmNyZWRlbnRpYWwgPT09ICdzdHJpbmcnICkgewppZiAoIHJlR29vZC50ZXN0KHNlcnZlci5jcmVkZW50aWFsKSApIHsgcmV0dXJuIHRydWU7IH0KfQp9Cm5ldXRlcmVkUGVlckNvbm5lY3Rpb25zLmFkZChpbnN0YW5jZSk7CnJldHVybiBmYWxzZTsKfTsKY29uc3QgcGVlckNvbm5lY3Rpb25DdG9yID0gd2luZG93W3J0Y05hbWVdOwpjb25zdCBwZWVyQ29ubmVjdGlvblByb3RvID0gcGVlckNvbm5lY3Rpb25DdG9yLnByb3RvdHlwZTsKcGVlckNvbm5lY3Rpb25Qcm90by5jcmVhdGVEYXRhQ2hhbm5lbCA9Cm5ldyBQcm94eShwZWVyQ29ubmVjdGlvblByb3RvLmNyZWF0ZURhdGFDaGFubmVsLCB7CmFwcGx5OiBmdW5jdGlvbih0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHsKaWYgKCBpc0dvb2RDb25maWcodGFyZ2V0LCBhcmdzWzFdKSA9PT0gZmFsc2UgKSB7CmxvZygndUJPOicsIGFyZ3NbMV0pOwpyZXR1cm4gUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ3Muc2xpY2UoMCwgMSkpOwp9CnJldHVybiBSZWZsZWN0LmFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJncyk7Cn0sCn0pOwp3aW5kb3dbcnRjTmFtZV0gPQpuZXcgUHJveHkocGVlckNvbm5lY3Rpb25DdG9yLCB7CmNvbnN0cnVjdDogZnVuY3Rpb24odGFyZ2V0LCBhcmdzKSB7CmlmICggaXNHb29kQ29uZmlnKHRhcmdldCwgYXJnc1swXSkgPT09IGZhbHNlICkgewpsb2coJ3VCTzonLCBhcmdzWzBdKTsKcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KHRhcmdldCk7Cn0KcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KHRhcmdldCwgYXJncyk7Cn0KfSk7Cn0pKCk7Cg=="},{"name":"no-xhr-if.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCB4aHJJbnN0YW5jZXMgPSBuZXcgV2Vha01hcCgpOwpsZXQgYXJnMSA9ICd7ezF9fSc7CmlmICggYXJnMSA9PT0gJ3t7MX19JyApIHsgYXJnMSA9ICcnOyB9CmNvbnN0IG5lZWRsZXMgPSBbXTsKZm9yICggY29uc3QgY29uZGl0aW9uIG9mIGFyZzEuc3BsaXQoL1xzKy8pICkgewppZiAoIGNvbmRpdGlvbiA9PT0gJycgKSB7IGNvbnRpbnVlOyB9CmNvbnN0IHBvcyA9IGNvbmRpdGlvbi5pbmRleE9mKCc6Jyk7CmxldCBrZXksIHZhbHVlOwppZiAoIHBvcyAhPT0gLTEgKSB7CmtleSA9IGNvbmRpdGlvbi5zbGljZSgwLCBwb3MpOwp2YWx1ZSA9IGNvbmRpdGlvbi5zbGljZShwb3MgKyAxKTsKfSBlbHNlIHsKa2V5ID0gJ3VybCc7CnZhbHVlID0gY29uZGl0aW9uOwp9CmlmICggdmFsdWUgPT09ICcnICkgewp2YWx1ZSA9ICdeJzsKfSBlbHNlIGlmICggdmFsdWUuc3RhcnRzV2l0aCgnLycpICYmIHZhbHVlLmVuZHNXaXRoKCcvJykgKSB7CnZhbHVlID0gdmFsdWUuc2xpY2UoMSwgLTEpOwp9IGVsc2Ugewp2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwp9Cm5lZWRsZXMucHVzaCh7IGtleSwgcmU6IG5ldyBSZWdFeHAodmFsdWUpIH0pOwp9CmNvbnN0IGxvZyA9IG5lZWRsZXMubGVuZ3RoID09PSAwID8gY29uc29sZS5sb2cuYmluZChjb25zb2xlKSA6IHVuZGVmaW5lZDsKc2VsZi5YTUxIdHRwUmVxdWVzdCA9IGNsYXNzIGV4dGVuZHMgc2VsZi5YTUxIdHRwUmVxdWVzdCB7Cm9wZW4oLi4uYXJncykgewppZiAoIGxvZyAhPT0gdW5kZWZpbmVkICkgewpsb2coYHVCTzogeGhyLm9wZW4oJHthcmdzLmpvaW4oJywgJyl9KWApOwp9IGVsc2Ugewpjb25zdCBhcmdOYW1lcyA9IFsgJ21ldGhvZCcsICd1cmwnIF07CmNvbnN0IGhheXN0YWNrID0gbmV3IE1hcCgpOwpmb3IgKCBsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aCAmJiBpIDwgYXJnTmFtZXMubGVuZ3RoOyBpKysgICkgewpoYXlzdGFjay5zZXQoYXJnTmFtZXNbaV0sIGFyZ3NbaV0pOwp9CmlmICggaGF5c3RhY2suc2l6ZSAhPT0gMCApIHsKbGV0IG1hdGNoZXMgPSB0cnVlOwpmb3IgKCBjb25zdCB7IGtleSwgcmUgfSBvZiBuZWVkbGVzICkgewptYXRjaGVzID0gcmUudGVzdChoYXlzdGFjay5nZXQoa2V5KSB8fCAnJyk7CmlmICggbWF0Y2hlcyA9PT0gZmFsc2UgKSB7IGJyZWFrOyB9Cn0KaWYgKCBtYXRjaGVzICkgewp4aHJJbnN0YW5jZXMuc2V0KHRoaXMsIGhheXN0YWNrKTsKfQp9Cn0KcmV0dXJuIHN1cGVyLm9wZW4oLi4uYXJncyk7Cn0Kc2VuZCguLi5hcmdzKSB7CmNvbnN0IGhheXN0YWNrID0geGhySW5zdGFuY2VzLmdldCh0aGlzKTsKaWYgKCBoYXlzdGFjayA9PT0gdW5kZWZpbmVkICkgewpyZXR1cm4gc3VwZXIuc2VuZCguLi5hcmdzKTsKfQpPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLCB7CnJlYWR5U3RhdGU6IHsgdmFsdWU6IDQsIHdyaXRhYmxlOiBmYWxzZSB9LApyZXNwb25zZTogeyB2YWx1ZTogJycsIHdyaXRhYmxlOiBmYWxzZSB9LApyZXNwb25zZVRleHQ6IHsgdmFsdWU6ICcnLCB3cml0YWJsZTogZmFsc2UgfSwKcmVzcG9uc2VVUkw6IHsgdmFsdWU6IGhheXN0YWNrLmdldCgndXJsJyksIHdyaXRhYmxlOiBmYWxzZSB9LApyZXNwb25zZVhNTDogeyB2YWx1ZTogJycsIHdyaXRhYmxlOiBmYWxzZSB9LApzdGF0dXM6IHsgdmFsdWU6IDIwMCwgd3JpdGFibGU6IGZhbHNlIH0sCnN0YXR1c1RleHQ6IHsgdmFsdWU6ICdPSycsIHdyaXRhYmxlOiBmYWxzZSB9LAp9KTsKdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVhZHlzdGF0ZWNoYW5nZScpKTsKdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnbG9hZCcpKTsKdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnbG9hZGVuZCcpKTsKfQp9Owp9KSgpOwo="},{"name":"window-close-if.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCBhcmcxID0gJ3t7MX19JzsKbGV0IHJlU3RyOwpsZXQgc3ViamVjdCA9ICcnOwppZiAoIGFyZzEgPT09ICd7ezF9fScgfHwgYXJnMSA9PT0gJycgKSB7CnJlU3RyID0gJ14nOwp9IGVsc2UgaWYgKCAvXlwvLipcLyQvLnRlc3QoYXJnMSkgKSB7CnJlU3RyID0gYXJnMS5zbGljZSgxLCAtMSk7CnN1YmplY3QgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKfSBlbHNlIHsKcmVTdHIgPSBhcmcxLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAnXFwkJicpOwpzdWJqZWN0ID0gYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSR7d2luZG93LmxvY2F0aW9uLnNlYXJjaH1gOwp9CnRyeSB7CmNvbnN0IHJlID0gbmV3IFJlZ0V4cChyZVN0cik7CmlmICggcmUudGVzdChzdWJqZWN0KSApIHsKd2luZG93LmNsb3NlKCk7Cn0KfSBjYXRjaChleCkgewpjb25zb2xlLmxvZyhleCk7Cn0KfSkoKTsK"},{"name":"window.name-defuser.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewppZiAoIHdpbmRvdyA9PT0gd2luZG93LnRvcCApIHsKd2luZG93Lm5hbWUgPSAnJzsKfQp9KSgpOwo="},{"name":"overlay-buster.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewppZiAoIHdpbmRvdyAhPT0gd2luZG93LnRvcCApIHsKcmV0dXJuOwp9CnZhciB0c3RhcnQ7CnZhciB0dGwgPSAzMDAwMDsKdmFyIGRlbGF5ID0gMDsKdmFyIGRlbGF5U3RlcCA9IDUwOwp2YXIgYnVzdGVyID0gZnVuY3Rpb24oKSB7CnZhciBkb2NFbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwKYm9keUVsID0gZG9jdW1lbnQuYm9keSwKdncgPSBNYXRoLm1pbihkb2NFbC5jbGllbnRXaWR0aCwgd2luZG93LmlubmVyV2lkdGgpLAp2aCA9IE1hdGgubWluKGRvY0VsLmNsaWVudEhlaWdodCwgd2luZG93LmlubmVySGVpZ2h0KSwKdG9sID0gTWF0aC5taW4odncsIHZoKSAqIDAuMDUsCmVsID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh2dy8yLCB2aC8yKSwKc3R5bGUsIHJlY3Q7CmZvciAoOzspIHsKaWYgKCBlbCA9PT0gbnVsbCB8fCBlbC5wYXJlbnROb2RlID09PSBudWxsIHx8IGVsID09PSBib2R5RWwgKSB7CmJyZWFrOwp9CnN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwppZiAoIHBhcnNlSW50KHN0eWxlLnpJbmRleCwgMTApID49IDEwMDAgfHwgc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcgKSB7CnJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKaWYgKCByZWN0LmxlZnQgPD0gdG9sICYmIHJlY3QudG9wIDw9IHRvbCAmJiAodncgLSByZWN0LnJpZ2h0KSA8PSB0b2wgJiYgKHZoIC0gcmVjdC5ib3R0b20pIDwgdG9sICkgewplbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKdHN0YXJ0ID0gRGF0ZS5ub3coKTsKZWwgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHZ3LzIsIHZoLzIpOwpib2R5RWwuc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93JywgJ2F1dG8nLCAnaW1wb3J0YW50Jyk7CmRvY0VsLnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsICdhdXRvJywgJ2ltcG9ydGFudCcpOwpjb250aW51ZTsKfQp9CmVsID0gZWwucGFyZW50Tm9kZTsKfQppZiAoIChEYXRlLm5vdygpIC0gdHN0YXJ0KSA8IHR0bCApIHsKZGVsYXkgPSBNYXRoLm1pbihkZWxheSArIGRlbGF5U3RlcCwgMTAwMCk7CnNldFRpbWVvdXQoYnVzdGVyLCBkZWxheSk7Cn0KfTsKdmFyIGRvbVJlYWR5ID0gZnVuY3Rpb24oZXYpIHsKaWYgKCBldiApIHsKZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldi50eXBlLCBkb21SZWFkeSk7Cn0KdHN0YXJ0ID0gRGF0ZS5ub3coKTsKc2V0VGltZW91dChidXN0ZXIsIGRlbGF5KTsKfTsKaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycgKSB7CmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBkb21SZWFkeSk7Cn0gZWxzZSB7CmRvbVJlYWR5KCk7Cn0KfSkoKTsK"},{"name":"alert-buster.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewp3aW5kb3cuYWxlcnQgPSBuZXcgUHJveHkod2luZG93LmFsZXJ0LCB7CmFwcGx5OiBmdW5jdGlvbihhKSB7CmNvbnNvbGUuaW5mbyhhKTsKfSwKfSk7Cn0pKCk7Cg=="},{"name":"gpt-defuser.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewpjb25zdCBub29wZm4gPSBmdW5jdGlvbigpIHsKfTsKbGV0IHByb3BzID0gJ19yZXNldEdQVCByZXNldEdQVCByZXNldEFuZExvYWRHUFRSZWNvdmVyeSBfcmVzZXRBbmRMb2FkR1BUUmVjb3Zlcnkgc2V0dXBHUFQgc2V0dXBHUFR1byc7CnByb3BzID0gcHJvcHMuc3BsaXQoL1xzKy8pOwp3aGlsZSAoIHByb3BzLmxlbmd0aCApIHsKdmFyIHByb3AgPSBwcm9wcy5wb3AoKTsKaWYgKCB0eXBlb2Ygd2luZG93W3Byb3BdID09PSAnZnVuY3Rpb24nICkgewp3aW5kb3dbcHJvcF0gPSBub29wZm47Cn0gZWxzZSB7Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIHByb3AsIHsKZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG5vb3BmbjsgfSwKc2V0OiBub29wZm4KfSk7Cn0KfQp9KSgpOwo="},{"name":"nowebrtc.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewp2YXIgcnRjTmFtZSA9IHdpbmRvdy5SVENQZWVyQ29ubmVjdGlvbiA/ICdSVENQZWVyQ29ubmVjdGlvbicgOiAoCndpbmRvdy53ZWJraXRSVENQZWVyQ29ubmVjdGlvbiA/ICd3ZWJraXRSVENQZWVyQ29ubmVjdGlvbicgOiAnJwopOwppZiAoIHJ0Y05hbWUgPT09ICcnICkgeyByZXR1cm47IH0KdmFyIGxvZyA9IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7CnZhciBwYyA9IGZ1bmN0aW9uKGNmZykgewpsb2coJ0RvY3VtZW50IHRyaWVkIHRvIGNyZWF0ZSBhbiBSVENQZWVyQ29ubmVjdGlvbjogJW8nLCBjZmcpOwp9Owpjb25zdCBub29wID0gZnVuY3Rpb24oKSB7Cn07CnBjLnByb3RvdHlwZSA9IHsKY2xvc2U6IG5vb3AsCmNyZWF0ZURhdGFDaGFubmVsOiBub29wLApjcmVhdGVPZmZlcjogbm9vcCwKc2V0UmVtb3RlRGVzY3JpcHRpb246IG5vb3AsCnRvU3RyaW5nOiBmdW5jdGlvbigpIHsKcmV0dXJuICdbb2JqZWN0IFJUQ1BlZXJDb25uZWN0aW9uXSc7Cn0KfTsKdmFyIHogPSB3aW5kb3dbcnRjTmFtZV07CndpbmRvd1tydGNOYW1lXSA9IHBjLmJpbmQod2luZG93KTsKaWYgKCB6LnByb3RvdHlwZSApIHsKei5wcm90b3R5cGUuY3JlYXRlRGF0YUNoYW5uZWwgPSBmdW5jdGlvbigpIHsKcmV0dXJuIHsKY2xvc2U6IGZ1bmN0aW9uKCkge30sCnNlbmQ6IGZ1bmN0aW9uKCkge30KfTsKfS5iaW5kKG51bGwpOwp9Cn0pKCk7Cg=="},{"name":"golem.de.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewpjb25zdCByYWVsID0gd2luZG93LmFkZEV2ZW50TGlzdGVuZXI7CndpbmRvdy5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oYSwgYikgewpyYWVsKC4uLmFyZ3VtZW50cyk7CmxldCBoYXlzdGFjazsKdHJ5IHsKaGF5c3RhY2sgPSBiLnRvU3RyaW5nKCk7Cn0gY2F0Y2goZXgpIHsKfQppZiAoCnR5cGVvZiBoYXlzdGFjayA9PT0gJ3N0cmluZycgJiYKL15ccypmdW5jdGlvblxzKlwoXClccypce1xzKndpbmRvd1wuY2xlYXJUaW1lb3V0XChyXClccypcfVxzKiQvLnRlc3QoaGF5c3RhY2spCikgewpiKCk7Cn0KfS5iaW5kKHdpbmRvdyk7Cn0pKCk7Cg=="},{"name":"upmanager-defuser.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewp2YXIgb25lcnJvciA9IHdpbmRvdy5vbmVycm9yOwp3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgc291cmNlLCBsaW5lbm8sIGNvbG5vLCBlcnJvcikgewppZiAoIHR5cGVvZiBtc2cgPT09ICdzdHJpbmcnICYmIG1zZy5pbmRleE9mKCd1cE1hbmFnZXInKSAhPT0gLTEgKSB7CnJldHVybiB0cnVlOwp9CmlmICggb25lcnJvciBpbnN0YW5jZW9mIEZ1bmN0aW9uICkgewpvbmVycm9yLmNhbGwod2luZG93LCBtc2csIHNvdXJjZSwgbGluZW5vLCBjb2xubywgZXJyb3IpOwp9Cn07Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICd1cE1hbmFnZXInLCB7IHZhbHVlOiBmdW5jdGlvbigpIHt9IH0pOwp9KSgpOwo="},{"name":"smartadserver.com.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewpPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3csIHsKU21hcnRBZE9iamVjdDogeyB2YWx1ZTogZnVuY3Rpb24oKXt9IH0sClNtYXJ0QWRTZXJ2ZXJBamF4OiB7IHZhbHVlOiBmdW5jdGlvbigpe30gfSwKc21hcnRBZDogeyB2YWx1ZTogeyBMb2FkQWRzOiBmdW5jdGlvbigpIHt9LCBSZWdpc3RlcjogZnVuY3Rpb24oKSB7fSB9IH0KfSk7Cn0pKCk7Cg=="},{"name":"adfly-defuser.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewovLyBCYXNlZCBvbiBBZHNCeXBhc3NlcgovLyBMaWNlbnNlOgovLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hZHNieXBhc3Nlci9hZHNieXBhc3Nlci9ibG9iL21hc3Rlci9MSUNFTlNFCnZhciBpc0RpZ2l0ID0gL15cZCQvOwp2YXIgaGFuZGxlciA9IGZ1bmN0aW9uKGVuY29kZWRVUkwpIHsKdmFyIHZhcjEgPSAiIiwgdmFyMiA9ICIiLCBpOwpmb3IgKGkgPSAwOyBpIDwgZW5jb2RlZFVSTC5sZW5ndGg7IGkrKykgewppZiAoaSAlIDIgPT09IDApIHsKdmFyMSA9IHZhcjEgKyBlbmNvZGVkVVJMLmNoYXJBdChpKTsKfSBlbHNlIHsKdmFyMiA9IGVuY29kZWRVUkwuY2hhckF0KGkpICsgdmFyMjsKfQp9CnZhciBkYXRhID0gKHZhcjEgKyB2YXIyKS5zcGxpdCgiIik7CmZvciAoaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CmlmIChpc0RpZ2l0LnRlc3QoZGF0YVtpXSkpIHsKZm9yICh2YXIgaWkgPSBpICsgMTsgaWkgPCBkYXRhLmxlbmd0aDsgaWkrKykgewppZiAoaXNEaWdpdC50ZXN0KGRhdGFbaWldKSkgewp2YXIgdGVtcCA9IHBhcnNlSW50KGRhdGFbaV0sMTApIF4gcGFyc2VJbnQoZGF0YVtpaV0sMTApOwppZiAodGVtcCA8IDEwKSB7CmRhdGFbaV0gPSB0ZW1wLnRvU3RyaW5nKCk7Cn0KaSA9IGlpOwpicmVhazsKfQp9Cn0KfQpkYXRhID0gZGF0YS5qb2luKCIiKTsKdmFyIGRlY29kZWRVUkwgPSB3aW5kb3cuYXRvYihkYXRhKS5zbGljZSgxNiwgLTE2KTsKd2luZG93LnN0b3AoKTsKd2luZG93Lm9uYmVmb3JldW5sb2FkID0gbnVsbDsKd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkZWNvZGVkVVJMOwp9Owp0cnkgewp2YXIgdmFsOwp2YXIgZmxhZyA9IHRydWU7CndpbmRvdy5PYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAieXNtbSIsIHsKY29uZmlndXJhYmxlOiBmYWxzZSwKc2V0OiBmdW5jdGlvbih2YWx1ZSkgewppZiAoZmxhZykgewpmbGFnID0gZmFsc2U7CnRyeSB7CmlmICh0eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciKSB7CmhhbmRsZXIodmFsdWUpOwp9Cn0gY2F0Y2ggKGVycikgeyB9Cn0KdmFsID0gdmFsdWU7Cn0sCmdldDogZnVuY3Rpb24oKSB7CnJldHVybiB2YWw7Cn0KfSk7Cn0gY2F0Y2ggKGVycikgewp3aW5kb3cuY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHNldCB1cCBBZGZseSBieXBhc3NlciEiKTsKfQp9KSgpOwo="},{"name":"disable-newtab-links.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KSB7CnZhciB0YXJnZXQgPSBldi50YXJnZXQ7CndoaWxlICggdGFyZ2V0ICE9PSBudWxsICkgewppZiAoIHRhcmdldC5sb2NhbE5hbWUgPT09ICdhJyAmJiB0YXJnZXQuaGFzQXR0cmlidXRlKCd0YXJnZXQnKSApIHsKZXYuc3RvcFByb3BhZ2F0aW9uKCk7CmV2LnByZXZlbnREZWZhdWx0KCk7CmJyZWFrOwp9CnRhcmdldCA9IHRhcmdldC5wYXJlbnROb2RlOwp9Cn0pOwp9KSgpOwo="},{"name":"damoh-defuser.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewpjb25zdCBoYW5kbGVkID0gbmV3IFdlYWtTZXQoKTsKbGV0IGFzeW5jVGltZXI7CmNvbnN0IGNsZWFuVmlkZW8gPSBmdW5jdGlvbigpIHsKYXN5bmNUaW1lciA9IHVuZGVmaW5lZDsKY29uc3QgdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJyk7CmlmICggdiA9PT0gbnVsbCApIHsgcmV0dXJuOyB9CmlmICggaGFuZGxlZC5oYXModikgKSB7IHJldHVybjsgfQpoYW5kbGVkLmFkZCh2KTsKdi5wYXVzZSgpOwp2LmNvbnRyb2xzID0gdHJ1ZTsKbGV0IGVsID0gdi5xdWVyeVNlbGVjdG9yKCdtZXRhW2l0ZW1wcm9wPSJjb250ZW50VVJMIl1bY29udGVudF0nKTsKaWYgKCBlbCA9PT0gbnVsbCApIHsgcmV0dXJuOyB9CnYuc3JjID0gZWwuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7CmVsID0gdi5xdWVyeVNlbGVjdG9yKCdtZXRhW2l0ZW1wcm9wPSJ0aHVtYm5haWxVcmwiXVtjb250ZW50XScpOwppZiAoIGVsICE9PSBudWxsICkgeyB2LnBvc3RlciA9IGVsLmdldEF0dHJpYnV0ZSgnY29udGVudCcpOyB9Cn07CmNvbnN0IGNsZWFuVmlkZW9Bc3luYyA9IGZ1bmN0aW9uKCkgewppZiAoIGFzeW5jVGltZXIgIT09IHVuZGVmaW5lZCApIHsgcmV0dXJuOyB9CmFzeW5jVGltZXIgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNsZWFuVmlkZW8pOwp9Owpjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNsZWFuVmlkZW9Bc3luYyk7Cm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwp9KSgpOwo="},{"name":"twitch-videoad.js","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uKCkgewppZiAoIC8oXnxcLil0d2l0Y2hcLnR2JC8udGVzdChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IGZhbHNlICkgeyByZXR1cm47IH0Kd2luZG93LmZldGNoID0gbmV3IFByb3h5KHdpbmRvdy5mZXRjaCwgewphcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CmNvbnN0IFsgdXJsLCBpbml0IF0gPSBhcmdzOwppZiAoCnR5cGVvZiB1cmwgPT09ICdzdHJpbmcnICYmCnVybC5pbmNsdWRlcygnZ3FsJykgJiYKaW5pdCBpbnN0YW5jZW9mIE9iamVjdCAmJgppbml0LmhlYWRlcnMgaW5zdGFuY2VvZiBPYmplY3QgJiYKdHlwZW9mIGluaXQuYm9keSA9PT0gJ3N0cmluZycgJiYKaW5pdC5ib2R5LmluY2x1ZGVzKCdQbGF5YmFja0FjY2Vzc1Rva2VuJykgJiYKaW5pdC5ib2R5LmluY2x1ZGVzKCciaXNWb2QiOnRydWUnKSA9PT0gZmFsc2UKKSB7CmNvbnN0IHsgaGVhZGVycyB9ID0gaW5pdDsKaWYgKCB0eXBlb2YgaGVhZGVyc1snWC1EZXZpY2UtSWQnXSA9PT0gJ3N0cmluZycgKSB7CmhlYWRlcnNbJ1gtRGV2aWNlLUlkJ10gPSAndHdpdGNoLXdlYi13YWxsLW1hc29uJzsKfQppZiAoIHR5cGVvZiBoZWFkZXJzWydEZXZpY2UtSUQnXSA9PT0gJ3N0cmluZycgKSB7CmhlYWRlcnNbJ0RldmljZS1JRCddID0gJ3R3aXRjaC13ZWItd2FsbC1tYXNvbic7Cn0KfQpyZXR1cm4gUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpOwp9Cn0pOwp9KSgpOwo="},{"name":"cookie-remover.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpjb25zdCBuZWVkbGUgPSAne3sxfX0nOwpsZXQgcmVOYW1lID0gLy4vOwppZiAoIC9eXC8uK1wvJC8udGVzdChuZWVkbGUpICkgewpyZU5hbWUgPSBuZXcgUmVnRXhwKG5lZWRsZS5zbGljZSgxLC0xKSk7Cn0gZWxzZSBpZiAoIG5lZWRsZSAhPT0gJycgJiYgbmVlZGxlICE9PSAne3sxfX0nICkgewpyZU5hbWUgPSBuZXcgUmVnRXhwKG5lZWRsZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKSk7Cn0KY29uc3QgcmVtb3ZlQ29va2llID0gZnVuY3Rpb24oKSB7CmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmZvckVhY2goY29va2llU3RyID0+IHsKbGV0IHBvcyA9IGNvb2tpZVN0ci5pbmRleE9mKCc9Jyk7CmlmICggcG9zID09PSAtMSApIHsgcmV0dXJuOyB9CmxldCBjb29raWVOYW1lID0gY29va2llU3RyLnNsaWNlKDAsIHBvcykudHJpbSgpOwppZiAoICFyZU5hbWUudGVzdChjb29raWVOYW1lKSApIHsgcmV0dXJuOyB9CmxldCBwYXJ0MSA9IGNvb2tpZU5hbWUgKyAnPSc7CmxldCBwYXJ0MmEgPSAnOyBkb21haW49JyArIGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lOwpsZXQgcGFydDJiID0gJzsgZG9tYWluPS4nICsgZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7CmxldCBwYXJ0MmMsIHBhcnQyZDsKbGV0IGRvbWFpbiA9IGRvY3VtZW50LmRvbWFpbjsKaWYgKCBkb21haW4gKSB7CmlmICggZG9tYWluICE9PSBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSApIHsKcGFydDJjID0gJzsgZG9tYWluPS4nICsgZG9tYWluOwp9CmlmICggZG9tYWluLnN0YXJ0c1dpdGgoJ3d3dy4nKSApIHsKcGFydDJkID0gJzsgZG9tYWluPScgKyBkb21haW4ucmVwbGFjZSgnd3d3JywgJycpOwp9Cn0KbGV0IHBhcnQzID0gJzsgcGF0aD0vJzsKbGV0IHBhcnQ0ID0gJzsgTWF4LUFnZT0tMTAwMDsgZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCc7CmRvY3VtZW50LmNvb2tpZSA9IHBhcnQxICsgcGFydDQ7CmRvY3VtZW50LmNvb2tpZSA9IHBhcnQxICsgcGFydDJhICsgcGFydDQ7CmRvY3VtZW50LmNvb2tpZSA9IHBhcnQxICsgcGFydDJiICsgcGFydDQ7CmRvY3VtZW50LmNvb2tpZSA9IHBhcnQxICsgcGFydDMgKyBwYXJ0NDsKZG9jdW1lbnQuY29va2llID0gcGFydDEgKyBwYXJ0MmEgKyBwYXJ0MyArIHBhcnQ0Owpkb2N1bWVudC5jb29raWUgPSBwYXJ0MSArIHBhcnQyYiArIHBhcnQzICsgcGFydDQ7CmlmICggcGFydDJjICE9PSB1bmRlZmluZWQgKSB7CmRvY3VtZW50LmNvb2tpZSA9IHBhcnQxICsgcGFydDJjICsgcGFydDMgKyBwYXJ0NDsKfQppZiAoIHBhcnQyZCAhPT0gdW5kZWZpbmVkICkgewpkb2N1bWVudC5jb29raWUgPSBwYXJ0MSArIHBhcnQyZCArIHBhcnQzICsgcGFydDQ7Cn0KfSk7Cn07CnJlbW92ZUNvb2tpZSgpOwp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgcmVtb3ZlQ29va2llKTsKfSkoKTsK"},{"name":"xml-prune.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgc2VsZWN0b3IgPSAne3sxfX0nOwppZiAoIHNlbGVjdG9yID09PSAne3sxfX0nICkgewpzZWxlY3RvciA9ICcnOwp9CmlmICggc2VsZWN0b3IgPT09ICcnICkgeyByZXR1cm47IH0KbGV0IHNlbGVjdG9yQ2hlY2sgPSAne3syfX0nOwppZiAoIHNlbGVjdG9yQ2hlY2sgPT09ICd7ezJ9fScgKSB7CnNlbGVjdG9yQ2hlY2sgPSAnJzsKfQpsZXQgdXJsUGF0dGVybiA9ICd7ezN9fSc7CmlmICggdXJsUGF0dGVybiA9PT0gJ3t7M319JyApIHsKdXJsUGF0dGVybiA9ICcnOwp9CmxldCByZVVybDsKaWYgKCB1cmxQYXR0ZXJuID09PSAnJyApIHsKcmVVcmwgPSAvXi87Cn0gZWxzZSBpZiAoIC9eXC8uKlwvJC8udGVzdCh1cmxQYXR0ZXJuKSApIHsKcmVVcmwgPSBuZXcgUmVnRXhwKHVybFBhdHRlcm4uc2xpY2UoMSwgLTEpKTsKfSBlbHNlIHsKcmVVcmwgPSBuZXcgUmVnRXhwKHVybFBhdHRlcm4ucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csICdcXCQmJykpOwp9CmNvbnN0IHBydW5lciA9IHRleHQgPT4gewppZiAoICgvXlxzKjwvLnRlc3QodGV4dCkgJiYgLz5ccyokLy50ZXN0KHRleHQpKSA9PT0gZmFsc2UgKSB7CnJldHVybiB0ZXh0Owp9CnRyeSB7CmNvbnN0IHhtbFBhcnNlciA9IG5ldyBET01QYXJzZXIoKTsKY29uc3QgeG1sRG9jID0geG1sUGFyc2VyLnBhcnNlRnJvbVN0cmluZyh0ZXh0LCAndGV4dC94bWwnKTsKaWYgKCBzZWxlY3RvckNoZWNrICE9PSAnJyAmJiB4bWxEb2MucXVlcnlTZWxlY3RvcihzZWxlY3RvckNoZWNrKSA9PT0gbnVsbCApIHsKcmV0dXJuIHRleHQ7Cn0KY29uc3QgZWxlbXMgPSB4bWxEb2MucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CmlmICggZWxlbXMubGVuZ3RoICE9PSAwICkgewpmb3IgKCBjb25zdCBlbGVtIG9mIGVsZW1zICkgewplbGVtLnJlbW92ZSgpOwp9CmNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgWE1MU2VyaWFsaXplcigpOwp0ZXh0ID0gc2VyaWFsaXplci5zZXJpYWxpemVUb1N0cmluZyh4bWxEb2MpOwp9Cn0gY2F0Y2goZXgpIHsKfQpyZXR1cm4gdGV4dDsKfTsKY29uc3QgdXJsRnJvbUFyZyA9IGFyZyA9PiB7CmlmICggdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgKSB7IHJldHVybiBhcmc7IH0KaWYgKCBhcmcgaW5zdGFuY2VvZiBSZXF1ZXN0ICkgeyByZXR1cm4gYXJnLnVybDsgfQpyZXR1cm4gU3RyaW5nKGFyZyk7Cn07CmNvbnN0IHJlYWxGZXRjaCA9IHNlbGYuZmV0Y2g7CnNlbGYuZmV0Y2ggPSBuZXcgUHJveHkoc2VsZi5mZXRjaCwgewphcHBseTogZnVuY3Rpb24odGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7CmlmICggcmVVcmwudGVzdCh1cmxGcm9tQXJnKGFyZ3NbMF0pKSA9PT0gZmFsc2UgKSB7CnJldHVybiBSZWZsZWN0LmFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJncyk7Cn0KcmV0dXJuIHJlYWxGZXRjaCguLi5hcmdzKS50aGVuKHJlYWxSZXNwb25zZSA9PgpyZWFsUmVzcG9uc2UudGV4dCgpLnRoZW4odGV4dCA9PgpuZXcgUmVzcG9uc2UocHJ1bmVyKHRleHQpLCB7CnN0YXR1czogcmVhbFJlc3BvbnNlLnN0YXR1cywKc3RhdHVzVGV4dDogcmVhbFJlc3BvbnNlLnN0YXR1c1RleHQsCmhlYWRlcnM6IHJlYWxSZXNwb25zZS5oZWFkZXJzLAp9KQopCik7Cn0KfSk7Cn0pKCk7Cg=="},{"name":"m3u-prune.js","aliases":[],"kind":"template","content":"KGZ1bmN0aW9uKCkgewpsZXQgbTN1UGF0dGVybiA9ICd7ezF9fSc7CmlmICggbTN1UGF0dGVybiA9PT0gJ3t7MX19JyApIHsKbTN1UGF0dGVybiA9ICcnOwp9CmxldCB1cmxQYXR0ZXJuID0gJ3t7Mn19JzsKaWYgKCB1cmxQYXR0ZXJuID09PSAne3syfX0nICkgewp1cmxQYXR0ZXJuID0gJyc7Cn0KY29uc3QgcmVnZXhGcm9tQXJnID0gYXJnID0+IHsKaWYgKCBhcmcgPT09ICcnICkgeyByZXR1cm4gL14vOyB9CmlmICggL15cLy4qXC8kLy50ZXN0KGFyZykgKSB7IHJldHVybiBuZXcgUmVnRXhwKGFyZy5zbGljZSgxLCAtMSkpOyB9CnJldHVybiBuZXcgUmVnRXhwKAphcmcucmVwbGFjZSgvWy4rP14ke30oKXxbXF1cXF0vZywgJ1xcJCYnKS5yZXBsYWNlKC9cKisvZywgJy4qPycpCik7Cn07CmNvbnN0IHJlTTN1ID0gcmVnZXhGcm9tQXJnKG0zdVBhdHRlcm4pOwpjb25zdCByZVVybCA9IHJlZ2V4RnJvbUFyZyh1cmxQYXR0ZXJuKTsKY29uc3QgcHJ1bmVTcGxpY2VvdXRCbG9jayA9IChsaW5lcywgaSkgPT4gewppZiAoIGxpbmVzW2ldLnN0YXJ0c1dpdGgoJyNFWFQtWC1DVUU6VFlQRT0iU3BsaWNlT3V0IicpID09PSBmYWxzZSApIHsKcmV0dXJuIGZhbHNlOwp9CmxpbmVzW2ldID0gdW5kZWZpbmVkOyBpICs9IDE7CmlmICggbGluZXNbaV0uc3RhcnRzV2l0aCgnI0VYVC1YLUFTU0VUOkNBSUQnKSApIHsKbGluZXNbaV0gPSB1bmRlZmluZWQ7IGkgKz0gMTsKfQppZiAoIGxpbmVzW2ldLnN0YXJ0c1dpdGgoJyNFWFQtWC1TQ1RFMzU6JykgKSB7CmxpbmVzW2ldID0gdW5kZWZpbmVkOyBpICs9IDE7Cn0KaWYgKCBsaW5lc1tpXS5zdGFydHNXaXRoKCcjRVhULVgtQ1VFLUlOJykgKSB7CmxpbmVzW2ldID0gdW5kZWZpbmVkOyBpICs9IDE7Cn0KaWYgKCBsaW5lc1tpXS5zdGFydHNXaXRoKCcjRVhULVgtU0NURTM1OicpICkgewpsaW5lc1tpXSA9IHVuZGVmaW5lZDsgaSArPSAxOwp9CnJldHVybiB0cnVlOwp9Owpjb25zdCBwcnVuZUluZkJsb2NrID0gKGxpbmVzLCBpKSA9PiB7CmlmICggbGluZXNbaV0uc3RhcnRzV2l0aCgnI0VYVElORicpID09PSBmYWxzZSApIHsgcmV0dXJuIGZhbHNlOyB9CmlmICggcmVNM3UudGVzdChsaW5lc1tpKzFdKSA9PT0gZmFsc2UgKSB7IHJldHVybiBmYWxzZTsgfQpsaW5lc1tpXSA9IGxpbmVzW2krMV0gPSB1bmRlZmluZWQ7IGkgKz0gMjsKaWYgKCBsaW5lc1tpXS5zdGFydHNXaXRoKCcjRVhULVgtRElTQ09OVElOVUlUWScpICkgewpsaW5lc1tpXSA9IHVuZGVmaW5lZDsgaSArPSAxOwp9CnJldHVybiB0cnVlOwp9Owpjb25zdCBwcnVuZXIgPSB0ZXh0ID0+IHsKaWYgKCAoL15ccyojRVhUTTNVLy50ZXN0KHRleHQpKSA9PT0gZmFsc2UgKSB7IHJldHVybiB0ZXh0OyB9CmNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgvXG5ccnxcbnxcci8pOwpmb3IgKCBsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKyApIHsKaWYgKCBsaW5lc1tpXSA9PT0gdW5kZWZpbmVkICkgeyBjb250aW51ZTsgfQppZiAoIHBydW5lU3BsaWNlb3V0QmxvY2sobGluZXMsIGkpICkgeyBjb250aW51ZTsgfQppZiAoIHBydW5lSW5mQmxvY2sobGluZXMsIGkpICkgeyBjb250aW51ZTsgfQp9CnJldHVybiBsaW5lcy5maWx0ZXIobCA9PiBsICE9PSB1bmRlZmluZWQpLmpvaW4oJ1xuJyk7Cn07CmNvbnN0IHVybEZyb21BcmcgPSBhcmcgPT4gewppZiAoIHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnICkgeyByZXR1cm4gYXJnOyB9CmlmICggYXJnIGluc3RhbmNlb2YgUmVxdWVzdCApIHsgcmV0dXJuIGFyZy51cmw7IH0KcmV0dXJuIFN0cmluZyhhcmcpOwp9Owpjb25zdCByZWFsRmV0Y2ggPSBzZWxmLmZldGNoOwpzZWxmLmZldGNoID0gbmV3IFByb3h5KHNlbGYuZmV0Y2gsIHsKYXBwbHk6IGZ1bmN0aW9uKHRhcmdldCwgdGhpc0FyZywgYXJncykgewppZiAoIHJlVXJsLnRlc3QodXJsRnJvbUFyZyhhcmdzWzBdKSkgPT09IGZhbHNlICkgewpyZXR1cm4gUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpOwp9CnJldHVybiByZWFsRmV0Y2goLi4uYXJncykudGhlbihyZWFsUmVzcG9uc2UgPT4KcmVhbFJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4KbmV3IFJlc3BvbnNlKHBydW5lcih0ZXh0KSwgewpzdGF0dXM6IHJlYWxSZXNwb25zZS5zdGF0dXMsCnN0YXR1c1RleHQ6IHJlYWxSZXNwb25zZS5zdGF0dXNUZXh0LApoZWFkZXJzOiByZWFsUmVzcG9uc2UuaGVhZGVycywKfSkKKQopOwp9Cn0pOwpzZWxmLlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5vcGVuID0gbmV3IFByb3h5KHNlbGYuWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW4sIHsKYXBwbHk6IGFzeW5jICh0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpID0+IHsKaWYgKCByZVVybC50ZXN0KHVybEZyb21BcmcoYXJnc1sxXSkpID09PSBmYWxzZSApIHsKcmV0dXJuIFJlZmxlY3QuYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdzKTsKfQp0aGlzQXJnLmFkZEV2ZW50TGlzdGVuZXIoJ3JlYWR5c3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKaWYgKCB0aGlzQXJnLnJlYWR5U3RhdGUgIT09IDQgKSB7IHJldHVybjsgfQpjb25zdCB0eXBlID0gdGhpc0FyZy5yZXNwb25zZVR5cGU7CmlmICggdHlwZSAhPT0gJycgJiYgdHlwZSAhPT0gJ3RleHQnICkgeyByZXR1cm47IH0KY29uc3QgdGV4dGluID0gdGhpc0FyZy5yZXNwb25zZVRleHQ7CmNvbnN0IHRleHRvdXQgPSBwcnVuZXIodGV4dGluKTsKaWYgKCB0ZXh0b3V0ID09PSB0ZXh0aW4gKSB7IHJldHVybjsgfQpPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpc0FyZywgJ3Jlc3BvbnNlJywgeyB2YWx1ZTogdGV4dG91dCB9KTsKT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXNBcmcsICdyZXNwb25zZVRleHQnLCB7IHZhbHVlOiB0ZXh0b3V0IH0pOwp9KTsKcmV0dXJuIFJlZmxlY3QuYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdzKTsKfQp9KTsKfSkoKTsK"},{"name":"async-sugarcoat-04394153a7ce417b88e3fe1790a4e6a269bfebe5","aliases":[],"kind":{"mime":"application/javascript"},"content":"e2NvbnN0IGE9e307KGU9PnsidXNlIHN0cmljdCI7Y29uc3QgdD1TeW1ib2woImRlZmVycmVkSGFuZGxlIiksbj1TeW1ib2woIm9ubG9hZHN0YXJ0IiksaT1TeW1ib2woIm9ucHJvZ3Jlc3MiKSxyPVN5bWJvbCgib25hYm9ydCIpLGE9U3ltYm9sKCJvbmVycm9yIiksbz1TeW1ib2woIm9ubG9hZCIpLHM9U3ltYm9sKCJvbnRpbWVvdXQiKSxnPVN5bWJvbCgib25sb2FkZW5kIiksbD1TeW1ib2woIm9ucmVhZHlzdGF0ZWNoYW5nZSIpLGQ9U3ltYm9sKCJyZWFkeVN0YXRlIiksdT1TeW1ib2woInRpbWVvdXQiKSxjPVN5bWJvbCgid2l0aENyZWRlbnRpYWxzIikscD1TeW1ib2woInVwbG9hZCIpLGg9U3ltYm9sKCJyZXNwb25zZVR5cGUiKSx2PShlLG4pPT57dmFyIHQ9bi5kZXNjcmlwdGlvbi5zdWJzdHJpbmcoMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsdmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLGUuYWRkRXZlbnRMaXN0ZW5lcih0LGZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpc1tuXTt0JiZ0LmNhbGwodGhpcyxlKX0pfSxrPShlLHQpPT57ZVtkXT10LGUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSl9O2xldCBNPSEwO2NsYXNzIG0gZXh0ZW5kcyBFdmVudFRhcmdldHtjb25zdHJ1Y3Rvcigpe2lmKHN1cGVyKCksISh0aGlzIGluc3RhbmNlb2YgZnx8dGhpcyBpbnN0YW5jZW9mIHkpKXRocm93IG5ldyBUeXBlRXJyb3IoIklsbGVnYWwgY29uc3RydWN0b3IiKTt2KHRoaXMsbiksdih0aGlzLGkpLHYodGhpcyxyKSx2KHRoaXMsYSksdih0aGlzLG8pLHYodGhpcyxzKSx2KHRoaXMsZyl9Z2V0IG9ubG9hZHN0YXJ0KCl7cmV0dXJuIHRoaXNbbl19c2V0IG9ubG9hZHN0YXJ0KGUpe3RoaXNbbl09ZX1nZXQgb25wcm9ncmVzcygpe3JldHVybiB0aGlzW2ldfXNldCBvbnByb2dyZXNzKGUpe3RoaXNbaV09ZX1nZXQgb25hYm9ydCgpe3JldHVybiB0aGlzW3JdfXNldCBvbmFib3J0KGUpe3RoaXNbcl09ZX1nZXQgb25lcnJvcigpe3JldHVybiB0aGlzW2FdfXNldCBvbmVycm9yKGUpe3RoaXNbYV09ZX1nZXQgb250aW1lb3V0KCl7cmV0dXJuIHRoaXNbc119c2V0IG9udGltZW91dChlKXt0aGlzW3NdPWV9Z2V0IG9ubG9hZGVuZCgpe3JldHVybiB0aGlzW2ddfXNldCBvbmxvYWRlbmQoZSl7dGhpc1tnXT1lfX1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ9e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm0sd3JpdGFibGU6ITB9O2NsYXNzIHkgZXh0ZW5kcyBte2NvbnN0cnVjdG9yKCl7aWYoTSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbGxlZ2FsIGNvbnN0cnVjdG9yIik7c3VwZXIoKX19ZS5YTUxIdHRwUmVxdWVzdFVwbG9hZD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6eSx3cml0YWJsZTohMH07Y2xhc3MgZiBleHRlbmRzIG17Y29uc3RydWN0b3IoKXtzdXBlcigpLE09ITE7dmFyIGU9bmV3IHk7TT0hMCxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksdih0aGlzLGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGQse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiExLHZhbHVlOjAsd3JpdGFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx1LHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx2YWx1ZTowLHdyaXRhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsYyx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsdmFsdWU6ITEsd3JpdGFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxwLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx2YWx1ZTplLHdyaXRhYmxlOiExfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsaCx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsdmFsdWU6IiIsd3JpdGFibGU6ITB9KX1nZXQgb25yZWFkeXN0YXRlY2hhbmdlKCl7cmV0dXJuIHRoaXNbbF19c2V0IG9ucmVhZHlzdGF0ZWNoYW5nZShlKXt0aGlzW2xdPWV9Z2V0IHJlYWR5U3RhdGUoKXtyZXR1cm4gdGhpc1tkXX1vcGVuKGUsdCl7c3dpdGNoKHRoaXNbZF0pe2Nhc2UgMDpjYXNlIDQ6ayh0aGlzLDEpfX1zZXRSZXF1ZXN0SGVhZGVyKGUsdCl7fXNldFRydXN0VG9rZW4oZSl7fWdldCB0aW1lb3V0KCl7cmV0dXJuIHRoaXNbdV19c2V0IHRpbWVvdXQoZSl7dGhpc1t1XT1lfWdldCB3aXRoQ3JlZGVudGlhbHMoKXtyZXR1cm4gdGhpc1tjXX1zZXQgd2l0aENyZWRlbnRpYWxzKGUpe3N3aXRjaCh0aGlzW2RdKXtjYXNlIDA6Y2FzZSAxOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IERPTUV4Y2VwdGlvbigiRmFpbGVkIHRvIHNldCB0aGUgJ3dpdGhDcmVkZW50aWFscycgcHJvcGVydHkgb24gJ1hNTEh0dHBSZXF1ZXN0JzogVGhlIHZhbHVlIG1heSBvbmx5IGJlIHNldCBpZiB0aGUgb2JqZWN0J3Mgc3RhdGUgaXMgVU5TRU5UIG9yIE9QRU5FRC4iKX10aGlzW2NdPSEhZX1nZXQgdXBsb2FkKCl7cmV0dXJuIHRoaXNbcF19c2VuZCgpe2lmKDEhPT10aGlzW2RdfHxudWxsIT09dGhpc1t0XSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJGYWlsZWQgdG8gZXhlY3V0ZSAnc2VuZCcgb24gJ1hNTEh0dHBSZXF1ZXN0JzogVGhlIG9iamVjdCdzIHN0YXRlIG11c3QgYmUgT1BFTkVELiIpO3RoaXNbdF09c2V0VGltZW91dCgoKT0+e3RoaXNbdF09bnVsbCxrKHRoaXMsNCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBQcm9ncmVzc0V2ZW50KCJlcnJvciIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFByb2dyZXNzRXZlbnQoImxvYWRlbmQiKSl9LDApfWFib3J0KCl7MT09PXRoaXNbZF0mJm51bGwhPT10aGlzW3RdJiYoY2xlYXJUaW1lb3V0KHRoaXNbdF0pLHRoaXNbdF09bnVsbCxrKHRoaXMsMCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBQcm9ncmVzc0V2ZW50KCJhYm9ydCIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFByb2dyZXNzRXZlbnQoImxvYWRlbmQiKSkpfWdldCByZXNwb25zZVVSTCgpe3JldHVybiIifWdldCBzdGF0dXMoKXtyZXR1cm4gMH1nZXQgc3RhdHVzVGV4dCgpe3JldHVybiIifWdldFJlc3BvbnNlSGVhZGVyKGUpe3JldHVybiBudWxsfW92ZXJyaWRlTWltZVR5cGUoZSl7fWdldCByZXNwb25zZVR5cGUoKXtyZXR1cm4gdGhpc1toXX1zZXQgcmVzcG9uc2VUeXBlKGUpe2lmKDQ9PT10aGlzW2RdKXRocm93IG5ldyBET01FeGNlcHRpb24oIkZhaWxlZCB0byBzZXQgdGhlICdyZXNwb25zZVR5cGUnIHByb3BlcnR5IG9uICdYTUxIdHRwUmVxdWVzdCc6IFRoZSByZXNwb25zZSB0eXBlIGNhbm5vdCBiZSBzZXQgaWYgdGhlIG9iamVjdCdzIHN0YXRlIGlzIExPQURJTkcgb3IgRE9ORS4iKTtzd2l0Y2goZSl7Y2FzZSIiOmNhc2UiYXJyYXlidWZmZXIiOmNhc2UiYmxvYiI6Y2FzZSJkb2N1bWVudCI6Y2FzZSJqc29uIjpjYXNlInRleHQiOnRoaXNbaF09ZX19Z2V0IHJlc3BvbnNlKCl7dmFyIGU9dGhpc1toXTtyZXR1cm4iIj09PWV8fCJ0ZXh0Ij09PWU/IiI6bnVsbH1nZXQgcmVzcG9uc2VUZXh0KCl7dmFyIGU9dGhpc1toXTtpZigiIj09PWV8fCJ0ZXh0Ij09PWUpcmV0dXJuIiI7dGhyb3cgbmV3IERPTUV4Y2VwdGlvbigiRmFpbGVkIHRvIHJlYWQgdGhlICdyZXNwb25zZVRleHQnIHByb3BlcnR5IGZyb20gJ1hNTEh0dHBSZXF1ZXN0JzogVGhlIHZhbHVlIGlzIG9ubHkgYWNjZXNzaWJsZSBpZiB0aGUgb2JqZWN0J3MgJ3Jlc3BvbnNlVHlwZScgaXMgJycgb3IgJ3RleHQnICh3YXMgJ2FycmF5YnVmZmVyJykuIil9Z2V0IHJlc3BvbnNlWE1MKCl7cmV0dXJuIG51bGx9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCJVTlNFTlQiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTowfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGYsIk9QRU5FRCIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiSEVBREVSU19SRUNFSVZFRCIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiTE9BRElORyIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjN9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiRE9ORSIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjR9KSxlLlhNTEh0dHBSZXF1ZXN0PXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpmLHdyaXRhYmxlOiEwfX0pKGEpO2NvbnN0IGI9e307KGU9PnsidXNlIHN0cmljdCI7bGV0IHQ9ITE7Y2xhc3Mgbntjb25zdHJ1Y3Rvcigpe2lmKHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiSWxsZWdhbCBjb25zdHJ1Y3RvciIpfWdldCBsZW5ndGgoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcykubGVuZ3RofWtleShlKXt2YXIgdD1PYmplY3Qua2V5cyh0aGlzKTtyZXR1cm4gZTwwfHxlPj10Lmxlbmd0aD9udWxsOnRbZV19Z2V0SXRlbShlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsZSk/dGhpc1tlXTpudWxsfXNldEl0ZW0oZSx0KXt0aGlzW2VdPVN0cmluZyh0KX1yZW1vdmVJdGVtKGUpe2RlbGV0ZSB0aGlzW2VdfWNsZWFyKCl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXModGhpcykpZGVsZXRlIHRoaXNbZV19fWUuU3RvcmFnZT17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bix3cml0YWJsZTohMH07Y29uc3QgaT1uZXcgbjtlLmxvY2FsU3RvcmFnZT17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0KCl7cmV0dXJuIGl9fTtjb25zdCByPW5ldyBuO2Uuc2Vzc2lvblN0b3JhZ2U9e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldCgpe3JldHVybiByfX0sdD0hMH0pKGIpLE1hcmtldGluZy5iaW5kRGVwZW5kZW5jeUltbWVkaWF0ZShmdW5jdGlvbigpe3dpbmRvdy5NYXJrZXRpbmcsTWFya2V0aW5nLmVuc2lnaHRlbk9wdGlvbnM7dHJ5e01hcmtldGluZy5VRE8ucGVyZlRpbWluZ1N0YXJ0KCJydWxlSWQtIit0aGlzLmlkKyItZGVwbG95bWVudElkLSIrdGhpcy5kZXBsb3ltZW50SWQpLCJ0cnVlIj09ZGVsbF9tYXJrZXRpbmdfdXRpbC5nZXRQYXJhbWV0ZXJCeU5hbWUoIm1kZWJ1ZyIsbG9jYXRpb24uc2VhcmNoKSYmKGRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0RHBpZD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfSxNYXJrZXRpbmcuZ0V2ZW50KCJEQy05NjMyNjQ1L3NhbGVzMC9jc2JfdGVzdCt0cmFuc2FjdGlvbnMiLCJwdXJjaGFzZSIpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImlmcmFtZSIpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5zcmMuaW5jbHVkZXMoInR5cGU9c2FsZXMiKSYmZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KE1hcmtldGluZyksIioiKX0pKSxNYXJrZXRpbmcuVURPLnBlcmZUaW1pbmdFbmQoInJ1bGVJZC0iK3RoaXMuaWQrIi1kZXBsb3ltZW50SWQtIit0aGlzLmRlcGxveW1lbnRJZCl9Y2F0Y2goZSl7ZGVsbF9tYXJrZXRpbmdfdXRpbC5kZWJ1ZyhlKX19LDM2MDAzMTEsWzM2MTc2ODJdLDYzNjE0MixbNjE5NDA0XSksTWFya2V0aW5nLmJpbmREZXBlbmRlbmN5RE9NUGFyc2VkKGZ1bmN0aW9uKCl7dmFyIG4sZSxpLHQscjt3aW5kb3cuTWFya2V0aW5nLE1hcmtldGluZy5lbnNpZ2h0ZW5PcHRpb25zO3RyeXtNYXJrZXRpbmcuVURPLnBlcmZUaW1pbmdTdGFydCgicnVsZUlkLSIrdGhpcy5pZCsiLWRlcGxveW1lbnRJZC0iK3RoaXMuZGVwbG95bWVudElkKSxuPXdpbmRvdyxlPWRvY3VtZW50LG5baT0idWV0cSJdPW5baV18fFtdLHQ9ZnVuY3Rpb24oKXt2YXIgZT17fS5jb25zdHJ1Y3Rvci5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCJYTUxIdHRwUmVxdWVzdCIpLHQ9e30uY29uc3RydWN0b3IuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywibG9jYWxTdG9yYWdlIik7dHJ5e3JldHVybiBlJiZ7fS5jb25zdHJ1Y3Rvci5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIlhNTEh0dHBSZXF1ZXN0IixhLlhNTEh0dHBSZXF1ZXN0KSx0JiZ7fS5jb25zdHJ1Y3Rvci5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csImxvY2FsU3RvcmFnZSIsYi5sb2NhbFN0b3JhZ2UpLGZ1bmN0aW9uKCl7dmFyIGU9e3RpOiI1MTAyMjYxIn07ZS5xPW5baV0sbltpXT1uZXcgVUVUKGUpLG5baV0ucHVzaCgicGFnZUxvYWQiKX0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7ZSYme30uY29uc3RydWN0b3IuZGVmaW5lUHJvcGVydHkod2luZG93LCJYTUxIdHRwUmVxdWVzdCIsZSksdCYme30uY29uc3RydWN0b3IuZGVmaW5lUHJvcGVydHkod2luZG93LCJsb2NhbFN0b3JhZ2UiLHQpfX0sKHI9ZS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkuc3JjPSIvL2JhdC5iaW5nLmNvbS9iYXQuanMiLHIuYXN5bmM9MSxyLm9ubG9hZD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZHlTdGF0ZTtlJiYibG9hZGVkIiE9PWUmJiJjb21wbGV0ZSIhPT1lfHwodCgpLHIub25sb2FkPXIub25yZWFkeXN0YXRlY2hhbmdlPW51bGwpfSwoZT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXSkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixlKSxNYXJrZXRpbmcuVURPLnBlcmZUaW1pbmdFbmQoInJ1bGVJZC0iK3RoaXMuaWQrIi1kZXBsb3ltZW50SWQtIit0aGlzLmRlcGxveW1lbnRJZCl9Y2F0Y2goZSl7ZGVsbF9tYXJrZXRpbmdfdXRpbC5kZWJ1ZyhlKX19LDM2MDUyNDIsWzM2MDYzMjldLDY5NTg3NCxbNjEwMzIzXSksTWFya2V0aW5nLmJpbmREZXBlbmRlbmN5RE9NUGFyc2VkKGZ1bmN0aW9uKCl7dmFyIGU7d2luZG93Lk1hcmtldGluZyxNYXJrZXRpbmcuZW5zaWdodGVuT3B0aW9uczt0cnl7TWFya2V0aW5nLlVETy5wZXJmVGltaW5nU3RhcnQoInJ1bGVJZC0iK3RoaXMuaWQrIi1kZXBsb3ltZW50SWQtIit0aGlzLmRlcGxveW1lbnRJZCksTWFya2V0aW5nLlVETy5wcmlvcmNvbnNlbnQmJigidXMiPT09KGU9TWFya2V0aW5nLnNjRGF0YU9iai5jb3VudHJ5KSYmTWFya2V0aW5nLmluc2VydFNjcmlwdCgiLy92dC5teXZpc3VhbGlxLm5ldC8yL1R4VVFOSFNLdkdXSWlNajFPaDN0ZnclM0QlM0QvdnQtMjg4LmpzIiksImNhIj09PWUmJk1hcmtldGluZy5pbnNlcnRTY3JpcHQoIi8vdnQubXl2aXN1YWxpcS5uZXQvMi9UeFVRTkhTS3ZHV0lpTWoxT2gzdGZ3JTNEJTNEL3Z0LTI4OS5qcyIpLCJiciI9PT1lJiZNYXJrZXRpbmcuaW5zZXJ0U2NyaXB0KCIvL3Z0Lm15dmlzdWFsaXEubmV0LzIvd1FRdFRpaXpsNFNpeHJoSVR5VHFiZyUzRCUzRC92dC0yODYuanMiKSwidWsiPT09ZSYmTWFya2V0aW5nLmluc2VydFNjcmlwdCgiLy92dC5teXZpc3VhbGlxLm5ldC8yL2FtaTdlV0Q3TWE5cWt1OUhERzIzMnclM0QlM0QvdnQtMjEzLmpzIiksImpwIj09PWUmJk1hcmtldGluZy5pbnNlcnRTY3JpcHQoIi8vdnQubXl2aXN1YWxpcS5uZXQvMi82JTJCeFQlMkJPM3oxemgxNHl1bEpCRE42ZyUzRCUzRC92dC0yODcuanMiKSwiYXUiPT09ZSYmTWFya2V0aW5nLmluc2VydFNjcmlwdCgiLy92dC5teXZpc3VhbGlxLm5ldC8yL2lwZWV5SGh0NG5wUUVpemlDV2FZenclM0QlM0QvdnQtMjk5LmpzIiksIm56Ij09PWUmJk1hcmtldGluZy5pbnNlcnRTY3JpcHQoIi8vdnQubXl2aXN1YWxpcS5uZXQvMi9pcGVleUhodDRucFFFaXppQ1dhWXp3JTNEJTNEL3Z0LTMwMS5qcyIpLCJpbiI9PT1lJiZNYXJrZXRpbmcuaW5zZXJ0U2NyaXB0KCIvL3Z0Lm15dmlzdWFsaXEubmV0LzIvdUJGJTJCbmRKVDduMHI5V3lzTkkxVnd3JTNEJTNEL3Z0LTI5OC5qcyIpLCJmciI9PT1lJiZNYXJrZXRpbmcuaW5zZXJ0U2NyaXB0KCIvL3Z0Lm15dmlzdWFsaXEubmV0LzIvR1hPZE4lMkJXdWdZM04zbjRhNUxBa05RJTNEJTNEL3Z0LTMwMC5qcyIpLCJkZSI9PT1lJiZNYXJrZXRpbmcuaW5zZXJ0U2NyaXB0KCIvL3Z0Lm15dmlzdWFsaXEubmV0LzIvdjlCSk9HY2dsNHdmam43cFhCaHVuQSUzRCUzRC92dC0zMDIuanMiKSksTWFya2V0aW5nLlVETy5wZXJmVGltaW5nRW5kKCJydWxlSWQtIit0aGlzLmlkKyItZGVwbG95bWVudElkLSIrdGhpcy5kZXBsb3ltZW50SWQpfWNhdGNoKGUpe2RlbGxfbWFya2V0aW5nX3V0aWwuZGVidWcoZSl9fSwzNTkzMzY1LFszNTA2OTI0LDM2MDYzMjldLDYyMTkxOSxbNjEwMzEwLDYxMDMyM10pLE1hcmtldGluZy5iaW5kRE9NUGFyc2VkKGZ1bmN0aW9uKCl7d2luZG93Lk1hcmtldGluZyxNYXJrZXRpbmcuZW5zaWdodGVuT3B0aW9uczt0cnl7TWFya2V0aW5nLlVETy5wZXJmVGltaW5nU3RhcnQoInJ1bGVJZC0iK3RoaXMuaWQrIi1kZXBsb3ltZW50SWQtIit0aGlzLmRlcGxveW1lbnRJZCksTWFya2V0aW5nLlVETy5wcmlvcmNvbnNlbnQmJk1hcmtldGluZy5pbWFnZVJlcXVlc3QoImh0dHBzOi8vcHguYWRzLmxpbmtlZGluLmNvbS9jb2xsZWN0Lz9waWQ9NzUxMyZmbXQ9Z2lmIiksTWFya2V0aW5nLlVETy5wZXJmVGltaW5nRW5kKCJydWxlSWQtIit0aGlzLmlkKyItZGVwbG95bWVudElkLSIrdGhpcy5kZXBsb3ltZW50SWQpfWNhdGNoKGUpe2RlbGxfbWFya2V0aW5nX3V0aWwuZGVidWcoZSl9fSwzNTkzMjg3LDYxOTA4OSksTWFya2V0aW5nLmJpbmREZXBlbmRlbmN5SW1tZWRpYXRlKGZ1bmN0aW9uKCl7dmFyIGkscixlO3dpbmRvdy5NYXJrZXRpbmcsTWFya2V0aW5nLmVuc2lnaHRlbk9wdGlvbnM7TWFya2V0aW5nLlVETy5mbF9sb2FkZWQ9ITEsTWFya2V0aW5nLlVETy5wcmlvcmNvbnNlbnQmJihNYXJrZXRpbmcubG9hZFNjcmlwdENhbGxiYWNrKCJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPURDLTk2MzI2NDUiLGZ1bmN0aW9uKCl7ZGVsbF9tYXJrZXRpbmdfdXRpbC5jdXN0b21fbWFya2V0aW5nX2V2ZW50KCJmbF9sb2FkZWQiKSxNYXJrZXRpbmcuVURPLmZsX2xvYWRlZD0hMH0pLHdpbmRvdy5kYXRhTGF5ZXI9d2luZG93LmRhdGFMYXllcnx8W10sd2luZG93Lmd0YWc9ZnVuY3Rpb24oKXtkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpfSxndGFnKCJqcyIsbmV3IERhdGUpLGd0YWcoImNvbmZpZyIsIkRDLTk2MzI2NDUiKSxndGFnKCJjb25maWciLCJEQy05NjMyOTIxIiksZ3RhZygiY29uZmlnIiwiREMtOTYzMjY0OCIpLGk9ZnVuY3Rpb24oKXtyZXR1cm57YWxsb3dfY3VzdG9tX3NjcmlwdHM6ITAsdTE6TWFya2V0aW5nLlVETy5sYW5ndWFnZSx1MTA6TWFya2V0aW5nLlVETy5jc2VnLHUxMTpNYXJrZXRpbmcuVURPLmRlYWxzLHUxMjpNYXJrZXRpbmcuVURPLmRldmljZSx1MTM6TWFya2V0aW5nLlVETy5kaXNjb3VudCx1MTQ6TWFya2V0aW5nLlVETy5mYW1pbHksdTE1Ok1hcmtldGluZy5VRE8ub2dpZCx1MTY6TWFya2V0aW5nLlVETy5vcmRlcmNvZGUsdTE3Ok1hcmtldGluZy5VRE8ucGxhdGZvcm0sdTE4Ok1hcmtldGluZy5VRE8ucHJvZGNhdCx1MTk6TWFya2V0aW5nLlVETy5wcm9kdWN0LHUyOk1hcmtldGluZy5VRE8uc2VnbWVudCx1MjA6TWFya2V0aW5nLlVETy5wcm9tb2lkLHUyMTpNYXJrZXRpbmcuVURPLnR5cGUsdTIyOmRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0UGFyYW1ldGVyQnlOYW1lKCJkZ2MiLGxvY2F0aW9uLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksdTIzOk1hcmtldGluZy5VRE8uZ2FjZCx1MjQ6ZGVsbF9tYXJrZXRpbmdfdXRpbC5nZXRQYXJhbWV0ZXJCeU5hbWUoImxpZCIsbG9jYXRpb24udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSx1MjU6TWFya2V0aW5nLlVETy52ZW4xLHUyNjpNYXJrZXRpbmcuVURPLnZlbjIsdTI4OmRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0UGFyYW1ldGVyQnlOYW1lKCJ0ZmNpZCIsbG9jYXRpb24udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSx1Mjk6TWFya2V0aW5nLlVETy5yZXZlbnVlLHUzOk1hcmtldGluZy5VRE8uY3VycmVuY3ksdTMwOk1hcmtldGluZy5VRE8udXNkcmV2LHUzNTpNYXJrZXRpbmcuVURPLmRwaWQsdTM2Ok1hcmtldGluZy5VRE8ubGFuZCx1Mzc6TWFya2V0aW5nLlVETy5zZXJpYWxwcm9kbGlzdCx1Mzg6TWFya2V0aW5nLlVETy5jamV2ZW50LHU0Ok1hcmtldGluZy5VRE8uY291bnRyeSx1NTpNYXJrZXRpbmcuVURPLmFjY291bnRpZCx1NjpNYXJrZXRpbmcuVURPLmNhdGVnb3J5LHU3Ok1hcmtldGluZy5VRE8uY2F0ZWdvcnlwYXRoLHU4Ok1hcmtldGluZy5VRE8uY2lkLHU5Ok1hcmtldGluZy5VRE8uY291cG9ufX0sTWFya2V0aW5nLlVETy5yZWFkRGF0YSgpLChyPWkoKSkudTMxPSIiLChlPWRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0Q29va2llKCJBTUNWXzRERDgwODYxNTE1Q0FCOTkwQTQ5MEQ0NSU0MEFkb2JlT3JnIikpJiYoci51MzE9ZS5zcGxpdCgiTUNNSUR8IilbMV0uc3BsaXQoInwiKVswXSksTWFya2V0aW5nLmdFdmVudD1NYXJrZXRpbmcuZ0V2ZW50fHxmdW5jdGlvbih0LG4pe3ZhciBlO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmbF9sb2FkZWQiLGZ1bmN0aW9uKCl7dmFyIGU9cjsicHVyY2hhc2UiPT09biYmKGUudmFsdWU9TWFya2V0aW5nLlVETy51c2RyZXZ8fE1hcmtldGluZy5VRE8ucmV2ZW51ZSxlLnRyYW5zYWN0aW9uX2lkPWRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0RHBpZCgpKSxlLnNlbmRfdG89dCxndGFnKCJldmVudCIsbixlKX0pLE1hcmtldGluZy5VRE8uZmxfbG9hZGVkJiYoZT1yPWkoKSwicHVyY2hhc2UiPT09biYmKGUudmFsdWU9TWFya2V0aW5nLlVETy51c2RyZXZ8fE1hcmtldGluZy5VRE8ucmV2ZW51ZSxlLnRyYW5zYWN0aW9uX2lkPWRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0RHBpZCgpKSxlLnNlbmRfdG89dCxndGFnKCJldmVudCIsbixlKSl9KX0sMzYxNzY4MixbMzYwNjMyOV0sNjE5NDA0LFs2MTAzMjNdKSxNYXJrZXRpbmcuYmluZERlcGVuZGVuY3lJbW1lZGlhdGUoZnVuY3Rpb24oKXt3aW5kb3cuTWFya2V0aW5nLE1hcmtldGluZy5lbnNpZ2h0ZW5PcHRpb25zO01hcmtldGluZy5VRE8uZ19kb3dubG9hZD1mdW5jdGlvbih0LG4pe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uKGUpe01hcmtldGluZy5VRE8uaHZlb3ZlcmxheT0hMSwiZG93bmxvYWQiPT09ZS5kZXRhaWwudHlwZSYmTWFya2V0aW5nLmdFdmVudCh0LG4pfSksTWFya2V0aW5nLlVETy5odmVvdmVybGF5JiZNYXJrZXRpbmcuZ0V2ZW50KHQsbil9LE1hcmtldGluZy5VRE8uZ19zaGFyZT1mdW5jdGlvbih0LG4pe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uKGUpeyJzaGFyZSI9PT1lLmRldGFpbC50eXBlJiZNYXJrZXRpbmcuZ0V2ZW50KHQsbil9KX0sTWFya2V0aW5nLlVETy5nX21wdj1mdW5jdGlvbihlLHQpezM9PXNlc3Npb25TdG9yYWdlLmVuc3BhZ2Vjb3VudEZMVCYmTWFya2V0aW5nLmdFdmVudChlLHQpfSxNYXJrZXRpbmcuVURPLmdfYmNfc3RhcnQ9ZnVuY3Rpb24obixpKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHZpZGVvanMmJnZpZGVvanMucGxheWVycylmb3IodmFyIGUgaW4gdmlkZW9qcy5wbGF5ZXJzKXZpZGVvanMucGxheWVyc1tlXS5yZWFkeShmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5lbF8uaGFzQXR0cmlidXRlKCJtdXRlZCIpfHxlLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtlLnZpZGVvX3N0YXJ0fHwoZS52aWRlb181MF9wZXJjZW50PSExLGUudmlkZW9fODBfcGVyY2VudD0hMSxNYXJrZXRpbmcuZ0V2ZW50KG4saSkpfSl9KTtlbHNlIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uIGUodCl7ImJyaWdodGNvdmUiPT09dC5kZXRhaWwudHlwZSYmKE1hcmtldGluZy5VRE8uZ19iY19zdGFydChuLGkpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJodmUiLGUpKX0pfSxNYXJrZXRpbmcuVURPLmdfYmNfNTA9ZnVuY3Rpb24odCxuKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYnJpZ2h0Y292ZTUwIixmdW5jdGlvbihlKXtNYXJrZXRpbmcuZ0V2ZW50KHQsbil9KX0sTWFya2V0aW5nLlVETy5nX2JjXzgwPWZ1bmN0aW9uKHQsbil7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJyaWdodGNvdmU4MCIsZnVuY3Rpb24oZSl7TWFya2V0aW5nLmdFdmVudCh0LG4pfSl9LE1hcmtldGluZy5VRE8uZ19iY19lbmQ9ZnVuY3Rpb24obixpKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHZpZGVvanMmJnZpZGVvanMucGxheWVycylmb3IodmFyIGUgaW4gdmlkZW9qcy5wbGF5ZXJzKXZpZGVvanMucGxheWVyc1tlXS5yZWFkeShmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5lbF8uaGFzQXR0cmlidXRlKCJtdXRlZCIpfHxlLm9uKCJlbmRlZCIsZnVuY3Rpb24oKXtNYXJrZXRpbmcuZ0V2ZW50KG4saSksZS52aWRlb19zdGFydD0hMX0pfSk7ZWxzZSB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaHZlIixmdW5jdGlvbiBlKHQpeyJicmlnaHRjb3ZlIj09PXQuZGV0YWlsLnR5cGUmJihNYXJrZXRpbmcuVURPLmdfYmNfZW5kKG4saSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImh2ZSIsZSkpfSl9LE1hcmtldGluZy5VRE8uZ19jb250YWN0dXM9ZnVuY3Rpb24odCxuKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaHZlIixmdW5jdGlvbihlKXsiY29udGFjdHVzIj09PWUuZGV0YWlsLnR5cGUmJk1hcmtldGluZy5nRXZlbnQodCxuKX0pfSxNYXJrZXRpbmcuVURPLmdfY2hhdD1mdW5jdGlvbih0LG4pe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uKGUpeyJjaGF0Ij09PWUuZGV0YWlsLnR5cGUmJk1hcmtldGluZy5nRXZlbnQodCxuKX0pfSxNYXJrZXRpbmcuVURPLmdfYWRkdG9jYXJ0PWZ1bmN0aW9uKGUsdCl7ImNvbnRlbnRzIiE9PWRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0c2NNYXAoIndhY29udHJvbGxlciIpJiYiY2FydCIhPT1kZWxsX21hcmtldGluZ191dGlsLmdldHNjTWFwKCJ3b3JrZmxvd3N0ZXAiKXx8TWFya2V0aW5nLmdFdmVudChlLHQpfSxNYXJrZXRpbmcuVURPLmdfY2hlY2tvdXQ9ZnVuY3Rpb24oZSx0KXsiY29uZmlybWF0aW9uIj09PWRlbGxfbWFya2V0aW5nX3V0aWwuZ2V0c2NNYXAoIndhY29udHJvbGxlciIpJiZNYXJrZXRpbmcuZ0V2ZW50KGUsdCl9LE1hcmtldGluZy5VRE8uZ19wb2RjYXN0X2xpc3Rlbj1mdW5jdGlvbih0LG4pe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uKGUpeyJwb2RjYXN0X2xpc3RlbiI9PT1lLmRldGFpbC50eXBlJiZNYXJrZXRpbmcuZ0V2ZW50KHQsbil9KX0sTWFya2V0aW5nLlVETy5nX3BvZGNhc3Rfc3Vic2NyaWJlPWZ1bmN0aW9uKHQsbil7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImh2ZSIsZnVuY3Rpb24oZSl7InBvZGNhc3Rfc3Vic2NyaWJlIj09PWUuZGV0YWlsLnR5cGUmJk1hcmtldGluZy5nRXZlbnQodCxuKX0pfSxNYXJrZXRpbmcuVURPLmdfcmZxX3N1Ym1pdD1mdW5jdGlvbih0LG4pe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uKGUpeyJyZnFfc3VibWl0Ij09PWUuZGV0YWlsLnR5cGUmJk1hcmtldGluZy5nRXZlbnQodCxuKX0pfSxNYXJrZXRpbmcuVURPLmdfaW9uX3N1Ym1pdD1mdW5jdGlvbihlLHQpey9saXZlYmFsbC4qY29tcGxldGVkL2dpLnRlc3QoZGVsbF9tYXJrZXRpbmdfdXRpbC5nZXRzY01hcCgicGFnZW5hbWUiKSkmJk1hcmtldGluZy5nRXZlbnQoZSx0KX0sTWFya2V0aW5nLlVETy5nX2dhdGVkX3N1Ym1pdD1mdW5jdGlvbih0LG4pe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJodmUiLGZ1bmN0aW9uKGUpeyJnYXRlZF9zdWJtaXQiPT09ZS5kZXRhaWwudHlwZSYmTWFya2V0aW5nLmdFdmVudCh0LG4pfSl9fSwzNDc1MTkzLFszNjE3NjgyXSw2MjA4MTgsWzYxOTQwNF0pfQo="},{"name":"async-sugarcoat-8a459c41783885dc83d30f5b7da2359091f4e607","aliases":[],"kind":{"mime":"application/javascript"},"content":"e2NvbnN0IGE9e307KHQ9PnsidXNlIHN0cmljdCI7Y29uc3QgZT1TeW1ib2woImRlZmVycmVkSGFuZGxlIiksbj1TeW1ib2woIm9ubG9hZHN0YXJ0Iikscj1TeW1ib2woIm9ucHJvZ3Jlc3MiKSxhPVN5bWJvbCgib25hYm9ydCIpLG89U3ltYm9sKCJvbmVycm9yIiksaT1TeW1ib2woIm9ubG9hZCIpLHM9U3ltYm9sKCJvbnRpbWVvdXQiKSxjPVN5bWJvbCgib25sb2FkZW5kIiksdT1TeW1ib2woIm9ucmVhZHlzdGF0ZWNoYW5nZSIpLGw9U3ltYm9sKCJyZWFkeVN0YXRlIiksZz1TeW1ib2woInRpbWVvdXQiKSxoPVN5bWJvbCgid2l0aENyZWRlbnRpYWxzIiksZj1TeW1ib2woInVwbG9hZCIpLGQ9U3ltYm9sKCJyZXNwb25zZVR5cGUiKSxwPSh0LG4pPT57dmFyIGU9bi5kZXNjcmlwdGlvbi5zdWJzdHJpbmcoMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbix7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsdmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHQuYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpc1tuXTtlJiZlLmNhbGwodGhpcyx0KX0pfSx2PSh0LGUpPT57dFtsXT1lLHQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSl9O2xldCBtPSEwO2NsYXNzIGIgZXh0ZW5kcyBFdmVudFRhcmdldHtjb25zdHJ1Y3Rvcigpe2lmKHN1cGVyKCksISh0aGlzIGluc3RhbmNlb2YgeXx8dGhpcyBpbnN0YW5jZW9mIHcpKXRocm93IG5ldyBUeXBlRXJyb3IoIklsbGVnYWwgY29uc3RydWN0b3IiKTtwKHRoaXMsbikscCh0aGlzLHIpLHAodGhpcyxhKSxwKHRoaXMsbykscCh0aGlzLGkpLHAodGhpcyxzKSxwKHRoaXMsYyl9Z2V0IG9ubG9hZHN0YXJ0KCl7cmV0dXJuIHRoaXNbbl19c2V0IG9ubG9hZHN0YXJ0KHQpe3RoaXNbbl09dH1nZXQgb25wcm9ncmVzcygpe3JldHVybiB0aGlzW3JdfXNldCBvbnByb2dyZXNzKHQpe3RoaXNbcl09dH1nZXQgb25hYm9ydCgpe3JldHVybiB0aGlzW2FdfXNldCBvbmFib3J0KHQpe3RoaXNbYV09dH1nZXQgb25lcnJvcigpe3JldHVybiB0aGlzW29dfXNldCBvbmVycm9yKHQpe3RoaXNbb109dH1nZXQgb250aW1lb3V0KCl7cmV0dXJuIHRoaXNbc119c2V0IG9udGltZW91dCh0KXt0aGlzW3NdPXR9Z2V0IG9ubG9hZGVuZCgpe3JldHVybiB0aGlzW2NdfXNldCBvbmxvYWRlbmQodCl7dGhpc1tjXT10fX10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ9e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmIsd3JpdGFibGU6ITB9O2NsYXNzIHcgZXh0ZW5kcyBie2NvbnN0cnVjdG9yKCl7aWYobSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbGxlZ2FsIGNvbnN0cnVjdG9yIik7c3VwZXIoKX19dC5YTUxIdHRwUmVxdWVzdFVwbG9hZD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6dyx3cml0YWJsZTohMH07Y2xhc3MgeSBleHRlbmRzIGJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLG09ITE7dmFyIHQ9bmV3IHc7bT0hMCxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxlLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSkscCh0aGlzLHUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGwse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiExLHZhbHVlOjAsd3JpdGFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxnLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx2YWx1ZTowLHdyaXRhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsaCx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsdmFsdWU6ITEsd3JpdGFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxmLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx2YWx1ZTp0LHdyaXRhYmxlOiExfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZCx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsdmFsdWU6IiIsd3JpdGFibGU6ITB9KX1nZXQgb25yZWFkeXN0YXRlY2hhbmdlKCl7cmV0dXJuIHRoaXNbdV19c2V0IG9ucmVhZHlzdGF0ZWNoYW5nZSh0KXt0aGlzW3VdPXR9Z2V0IHJlYWR5U3RhdGUoKXtyZXR1cm4gdGhpc1tsXX1vcGVuKHQsZSl7c3dpdGNoKHRoaXNbbF0pe2Nhc2UgMDpjYXNlIDQ6dih0aGlzLDEpfX1zZXRSZXF1ZXN0SGVhZGVyKHQsZSl7fXNldFRydXN0VG9rZW4odCl7fWdldCB0aW1lb3V0KCl7cmV0dXJuIHRoaXNbZ119c2V0IHRpbWVvdXQodCl7dGhpc1tnXT10fWdldCB3aXRoQ3JlZGVudGlhbHMoKXtyZXR1cm4gdGhpc1toXX1zZXQgd2l0aENyZWRlbnRpYWxzKHQpe3N3aXRjaCh0aGlzW2xdKXtjYXNlIDA6Y2FzZSAxOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IERPTUV4Y2VwdGlvbigiRmFpbGVkIHRvIHNldCB0aGUgJ3dpdGhDcmVkZW50aWFscycgcHJvcGVydHkgb24gJ1hNTEh0dHBSZXF1ZXN0JzogVGhlIHZhbHVlIG1heSBvbmx5IGJlIHNldCBpZiB0aGUgb2JqZWN0J3Mgc3RhdGUgaXMgVU5TRU5UIG9yIE9QRU5FRC4iKX10aGlzW2hdPSEhdH1nZXQgdXBsb2FkKCl7cmV0dXJuIHRoaXNbZl19c2VuZCgpe2lmKDEhPT10aGlzW2xdfHxudWxsIT09dGhpc1tlXSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJGYWlsZWQgdG8gZXhlY3V0ZSAnc2VuZCcgb24gJ1hNTEh0dHBSZXF1ZXN0JzogVGhlIG9iamVjdCdzIHN0YXRlIG11c3QgYmUgT1BFTkVELiIpO3RoaXNbZV09c2V0VGltZW91dCgoKT0+e3RoaXNbZV09bnVsbCx2KHRoaXMsNCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBQcm9ncmVzc0V2ZW50KCJlcnJvciIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFByb2dyZXNzRXZlbnQoImxvYWRlbmQiKSl9LDApfWFib3J0KCl7MT09PXRoaXNbbF0mJm51bGwhPT10aGlzW2VdJiYoY2xlYXJUaW1lb3V0KHRoaXNbZV0pLHRoaXNbZV09bnVsbCx2KHRoaXMsMCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBQcm9ncmVzc0V2ZW50KCJhYm9ydCIpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFByb2dyZXNzRXZlbnQoImxvYWRlbmQiKSkpfWdldCByZXNwb25zZVVSTCgpe3JldHVybiIifWdldCBzdGF0dXMoKXtyZXR1cm4gMH1nZXQgc3RhdHVzVGV4dCgpe3JldHVybiIifWdldFJlc3BvbnNlSGVhZGVyKHQpe3JldHVybiBudWxsfW92ZXJyaWRlTWltZVR5cGUodCl7fWdldCByZXNwb25zZVR5cGUoKXtyZXR1cm4gdGhpc1tkXX1zZXQgcmVzcG9uc2VUeXBlKHQpe2lmKDQ9PT10aGlzW2xdKXRocm93IG5ldyBET01FeGNlcHRpb24oIkZhaWxlZCB0byBzZXQgdGhlICdyZXNwb25zZVR5cGUnIHByb3BlcnR5IG9uICdYTUxIdHRwUmVxdWVzdCc6IFRoZSByZXNwb25zZSB0eXBlIGNhbm5vdCBiZSBzZXQgaWYgdGhlIG9iamVjdCdzIHN0YXRlIGlzIExPQURJTkcgb3IgRE9ORS4iKTtzd2l0Y2godCl7Y2FzZSIiOmNhc2UiYXJyYXlidWZmZXIiOmNhc2UiYmxvYiI6Y2FzZSJkb2N1bWVudCI6Y2FzZSJqc29uIjpjYXNlInRleHQiOnRoaXNbZF09dH19Z2V0IHJlc3BvbnNlKCl7dmFyIHQ9dGhpc1tkXTtyZXR1cm4iIj09PXR8fCJ0ZXh0Ij09PXQ/IiI6bnVsbH1nZXQgcmVzcG9uc2VUZXh0KCl7dmFyIHQ9dGhpc1tkXTtpZigiIj09PXR8fCJ0ZXh0Ij09PXQpcmV0dXJuIiI7dGhyb3cgbmV3IERPTUV4Y2VwdGlvbigiRmFpbGVkIHRvIHJlYWQgdGhlICdyZXNwb25zZVRleHQnIHByb3BlcnR5IGZyb20gJ1hNTEh0dHBSZXF1ZXN0JzogVGhlIHZhbHVlIGlzIG9ubHkgYWNjZXNzaWJsZSBpZiB0aGUgb2JqZWN0J3MgJ3Jlc3BvbnNlVHlwZScgaXMgJycgb3IgJ3RleHQnICh3YXMgJ2FycmF5YnVmZmVyJykuIil9Z2V0IHJlc3BvbnNlWE1MKCl7cmV0dXJuIG51bGx9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJVTlNFTlQiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTowfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHksIk9QRU5FRCIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiSEVBREVSU19SRUNFSVZFRCIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiTE9BRElORyIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjN9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiRE9ORSIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOjR9KSx0LlhNTEh0dHBSZXF1ZXN0PXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp5LHdyaXRhYmxlOiEwfX0pKGEpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3Q9dC5zcGxpdCgiLiIpO3ZhciBuLHI9YTt0WzBdaW4gcnx8dm9pZCAwPT09ci5leGVjU2NyaXB0fHxyLmV4ZWNTY3JpcHQoInZhciAiK3RbMF0pO2Zvcig7dC5sZW5ndGgmJihuPXQuc2hpZnQoKSk7KXQubGVuZ3RofHx2b2lkIDA9PT1lP3I9cltuXSYmcltuXSE9PU9iamVjdC5wcm90b3R5cGVbbl0/cltuXTpyW25dPXt9OnJbbl09ZX1mdW5jdGlvbiBzKHQpe2Zvcih2YXIgZSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIDF9ZnVuY3Rpb24gbyh0LGUpe3AuYWRkRXZlbnRMaXN0ZW5lcj9wLmFkZEV2ZW50TGlzdGVuZXIodCxlLCExKTpwLmF0dGFjaEV2ZW50JiZwLmF0dGFjaEV2ZW50KCJvbiIrdCxlKX1mdW5jdGlvbiBpKHQsZSxuKXt0PXQuc3BsaXQoIiYiKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE9dFtyXS5zcGxpdCgiPSIpO2lmKGRlY29kZVVSSUNvbXBvbmVudChhWzBdKS5yZXBsYWNlKC9cKy9nLCIgIik9PT1lKXJldHVybiBlPWEuc2xpY2UoMSkuam9pbigiPSIpLG4/ZTpkZWNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvXCsvZywiICIpfX12YXIgdSxsLGMsYT10aGlzfHxzZWxmLGc9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0saD0vXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwKTp8W146Lz8jXSooPzpbLz8jXXwkKSkvaSxmPXdpbmRvdyxkPXdpbmRvdy5oaXN0b3J5LHA9ZG9jdW1lbnQsdj1uYXZpZ2F0b3IsZT17fSxtPWZ1bmN0aW9uKCl7ZS5UQUdHSU5HPWUuVEFHR0lOR3x8W10sZS5UQUdHSU5HWzFdPSEwfSxiPS86WzAtOV0rJC8sdz1mdW5jdGlvbih0LGUpe3JldHVybiJwcm90b2NvbCIhPT0oZT1lJiZTdHJpbmcoZSkudG9Mb3dlckNhc2UoKSkmJiJwb3J0IiE9PWV8fCh0LnByb3RvY29sPV8odC5wcm90b2NvbCl8fF8oZi5sb2NhdGlvbi5wcm90b2NvbCkpLCJwb3J0Ij09PWU/dC5wb3J0PVN0cmluZyhOdW1iZXIoKHQuaG9zdG5hbWU/dDpmLmxvY2F0aW9uKS5wb3J0KXx8KCJodHRwIj09dC5wcm90b2NvbD84MDoiaHR0cHMiPT10LnByb3RvY29sPzQ0MzoiIikpOiJob3N0Ij09PWUmJih0Lmhvc3RuYW1lPSh0Lmhvc3RuYW1lfHxmLmxvY2F0aW9uLmhvc3RuYW1lKS5yZXBsYWNlKGIsIiIpLnRvTG93ZXJDYXNlKCkpLHkodCxlLHZvaWQgMCx2b2lkIDAsdm9pZCAwKX0seT1mdW5jdGlvbih0LGUsbixyLGEpe3ZhciBvPV8odC5wcm90b2NvbCk7c3dpdGNoKGU9ZSYmU3RyaW5nKGUpLnRvTG93ZXJDYXNlKCkpe2Nhc2UidXJsX25vX2ZyYWdtZW50IjpyPSIiLHQ9cj10JiZ0LmhyZWY/KHI9dC5ocmVmLmluZGV4T2YoIiMiKSk8MD90LmhyZWY6dC5ocmVmLnN1YnN0cigwLHIpOnI7YnJlYWs7Y2FzZSJwcm90b2NvbCI6dD1vO2JyZWFrO2Nhc2UiaG9zdCI6dD10Lmhvc3RuYW1lLnJlcGxhY2UoYiwiIikudG9Mb3dlckNhc2UoKSxuJiYocj0vXnd3d1xkKlwuLy5leGVjKHQpKSYmclswXSYmKHQ9dC5zdWJzdHIoclswXS5sZW5ndGgpKTticmVhaztjYXNlInBvcnQiOnQ9U3RyaW5nKE51bWJlcih0LnBvcnQpfHwoImh0dHAiPT1vPzgwOiJodHRwcyI9PW8/NDQzOiIiKSk7YnJlYWs7Y2FzZSJwYXRoIjp0LnBhdGhuYW1lfHx0Lmhvc3RuYW1lfHxtKCksdD0odD0iLyI9PXQucGF0aG5hbWUuc3Vic3RyKDAsMSk/dC5wYXRobmFtZToiLyIrdC5wYXRobmFtZSkuc3BsaXQoIi8iKSwwPD0ocnx8W10pLmluZGV4T2YodFt0Lmxlbmd0aC0xXSkmJih0W3QubGVuZ3RoLTFdPSIiKSx0PXQuam9pbigiLyIpO2JyZWFrO2Nhc2UicXVlcnkiOnQ9dC5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGEmJih0PWkodCxhLHZvaWQgMCkpO2JyZWFrO2Nhc2UiZXh0ZW5zaW9uIjp0PSh0PTE8KHQ9dC5wYXRobmFtZS5zcGxpdCgiLiIpKS5sZW5ndGg/dFt0Lmxlbmd0aC0xXToiIikuc3BsaXQoIi8iKVswXTticmVhaztjYXNlImZyYWdtZW50Ijp0PXQuaGFzaC5yZXBsYWNlKCIjIiwiIik7YnJlYWs7ZGVmYXVsdDp0PXQmJnQuaHJlZn1yZXR1cm4gdH0sXz1mdW5jdGlvbih0KXtyZXR1cm4gdD90LnJlcGxhY2UoIjoiLCIiKS50b0xvd2VyQ2FzZSgpOiIifSxPPWZ1bmN0aW9uKHQpe3ZhciBlPXAuY3JlYXRlRWxlbWVudCgiYSIpO3QmJihlLmhyZWY9dCk7dmFyIG49ZS5wYXRobmFtZTtyZXR1cm4iLyIhPT1uWzBdJiYodHx8bSgpLG49Ii8iK24pLHQ9ZS5ob3N0bmFtZS5yZXBsYWNlKGIsIiIpLHtocmVmOmUuaHJlZixwcm90b2NvbDplLnByb3RvY29sLGhvc3Q6ZS5ob3N0LGhvc3RuYW1lOnQscGF0aG5hbWU6bixzZWFyY2g6ZS5zZWFyY2gsaGFzaDplLmhhc2gscG9ydDplLnBvcnR9fTtmdW5jdGlvbiBFKCl7Zm9yKHZhciB0PXUsZT17fSxuPTA7bjx0Lmxlbmd0aDsrK24pZVt0W25dXT1uO3JldHVybiBlfWZ1bmN0aW9uIFQoKXt2YXIgdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO3JldHVybih0Kz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLnRvTG93ZXJDYXNlKCkrIjAxMjM0NTY3ODktXyIpKyIuIn1mdW5jdGlvbiB4KHQpe3U9dXx8VCgpLGw9bHx8RSgpO2Zvcih2YXIgZT1bXSxuPTA7bjx0Lmxlbmd0aDtuKz0zKXt2YXIgcj1uKzE8dC5sZW5ndGgsYT1uKzI8dC5sZW5ndGgsbz10LmNoYXJDb2RlQXQobiksaT1yP3QuY2hhckNvZGVBdChuKzEpOjAscz1hP3QuY2hhckNvZGVBdChuKzIpOjAsYz1vPj4yLG89KDMmbyk8PDR8aT4+NCxpPSgxNSZpKTw8MnxzPj42O3MmPTYzLGF8fChzPTY0LHJ8fChpPTY0KSksZS5wdXNoKHVbY10sdVtvXSx1W2ldLHVbc10pfXJldHVybiBlLmpvaW4oIiIpfWZ1bmN0aW9uIGsoKXtmdW5jdGlvbiB0KHQpe24odC50YXJnZXR8fHQuc3JjRWxlbWVudHx8e30pfXZhciBlLG49RixyPVgsYT1OKCk7YS5pbml0fHwobygibW91c2Vkb3duIix0KSxvKCJrZXl1cCIsdCksbygic3VibWl0IixmdW5jdGlvbih0KXtyKHQudGFyZ2V0fHx0LnNyY0VsZW1lbnR8fHt9KX0pLGU9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQsSFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXtyKHRoaXMpLGUuY2FsbCh0aGlzKX0sYS5pbml0PSEwKX1mdW5jdGlvbiBTKHQsZSxuLHIsYSl7dD17Y2FsbGJhY2s6dCxkb21haW5zOmUsZnJhZ21lbnQ6Mj09PW4scGxhY2VtZW50Om4sZm9ybXM6cixzYW1lSG9zdDphfSxOKCkuZGVjb3JhdG9ycy5wdXNoKHQpfWZ1bmN0aW9uIEModCxlLG4pe2Zvcih2YXIgcj1OKCkuZGVjb3JhdG9ycyxhPXt9LG89MDtvPHIubGVuZ3RoOysrbyl7dmFyIGk9cltvXTtpZihzPSFufHxpLmZvcm1zKXQ6e3ZhciBzPWkuZG9tYWlucyxjPXQsdT0hIWkuc2FtZUhvc3Q7aWYocyYmKHV8fGMhPT1wLmxvY2F0aW9uLmhvc3RuYW1lKSlmb3IodmFyIGw9MDtsPHMubGVuZ3RoO2wrKylpZihzW2xdaW5zdGFuY2VvZiBSZWdFeHApe2lmKHNbbF0udGVzdChjKSl7cz0hMDticmVhayB0fX1lbHNlIGlmKDA8PWMuaW5kZXhPZihzW2xdKXx8dSYmMDw9c1tsXS5pbmRleE9mKGMpKXtzPSEwO2JyZWFrIHR9cz0hMX1zJiYoKHM9bnVsbD09KHM9aS5wbGFjZW1lbnQpP2kuZnJhZ21lbnQ/MjoxOnMpPT09ZSYmZyhhLGkuY2FsbGJhY2soKSkpfXJldHVybiBhfXZhciBqPXZvaWQgMDtmdW5jdGlvbiBOKCl7dmFyIHQ9e30sZT1mLmdvb2dsZV90YWdfZGF0YTtyZXR1cm4gZi5nb29nbGVfdGFnX2RhdGE9dm9pZCAwPT09ZT90OmUsKGU9KHQ9Zi5nb29nbGVfdGFnX2RhdGEpLmdsKSYmZS5kZWNvcmF0b3JzfHwodC5nbD1lPXtkZWNvcmF0b3JzOltdfSksZX12YXIgUj0vKC4qPylcKiguKj8pXCooLiopLyxBPS8oW14/I10rKShcP1teI10qKT8oIy4qKT8vO2Z1bmN0aW9uIEwodCl7cmV0dXJuIG5ldyBSZWdFeHAoIiguKj8pKF58JikiK3QrIj0oW14mXSopJj8oLiopIil9ZnVuY3Rpb24gSSh0LGUpe3ZhciBuLHIsYT1bXTtmb3IobiBpbiB0KSF0Lmhhc093blByb3BlcnR5KG4pfHx2b2lkIDAhPT0ocj10W25dKSYmcj09ciYmbnVsbCE9PXImJiJbb2JqZWN0IE9iamVjdF0iIT09ci50b1N0cmluZygpJiYoYS5wdXNoKG4pLGEucHVzaCh4KFN0cmluZyhyKSkpKTtyZXR1cm4gdD1hLmpvaW4oIioiKSx2b2lkIDAhPT1lJiYoYT0ieHBfIitlLGU9TVtlXSh0KSx0PXQrIioiK1thLHgoU3RyaW5nKGUpKV0uam9pbigiKiIpKSxbIjEiLFAodCksdF0uam9pbigiKiIpfWZ1bmN0aW9uIFAodCxlKXtpZih0PVtmLm5hdmlnYXRvci51c2VyQWdlbnQsKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpLHYudXNlckxhbmd1YWdlfHx2Lmxhbmd1YWdlLE1hdGguZmxvb3IobmV3IERhdGUoRGF0ZS5ub3coKSkuZ2V0VGltZSgpLzYwLzFlMyktKHZvaWQgMD09PWU/MDplKSx0XS5qb2luKCIqIiksIShlPWMpKXtlPUFycmF5KDI1Nik7Zm9yKHZhciBuPTA7bjwyNTY7bisrKXtmb3IodmFyIHI9bixhPTA7YTw4O2ErKylyPTEmcj9yPj4+MV4zOTg4MjkyMzg0OnI+Pj4xO2Vbbl09cn19Zm9yKGM9ZSxlPTQyOTQ5NjcyOTUsbj0wO248dC5sZW5ndGg7bisrKWU9ZT4+PjheY1syNTUmKGVedC5jaGFyQ29kZUF0KG4pKV07cmV0dXJuKCgtMV5lKT4+PjApLnRvU3RyaW5nKDM2KX12YXIgbj17fSxNPShuWzFdPWZ1bmN0aW9uKCl7cmV0dXJuIkNIRUNLU1VNX0VYUF9ESVNBQkxFRCJ9LG5bMl09ZnVuY3Rpb24oKXtyZXR1cm4iQ0hFQ0tTVU1fRVhQX0RJU0FCTEVEIn0sblszXT1mdW5jdGlvbigpe3JldHVybiJDSEVDS1NVTV9FWFBfRElTQUJMRUQifSxuKTtmdW5jdGlvbiByKG8pe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1PKGYubG9jYXRpb24uaHJlZiksbj1lLnNlYXJjaC5yZXBsYWNlKCI/IiwiIikscj1pKG4sIl9nbCIsITApO3QucXVlcnk9cShyfHwiIil8fHt9O3ZhciBhPShyPXcoZSwiZnJhZ21lbnQiKSkubWF0Y2goTCgiX2dsIikpO3QuZnJhZ21lbnQ9cShhJiZhWzNdfHwiIil8fHt9LG8mJmZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSl7cmV0dXJuIHQ9KHQ9RCgiX2dsIix0KSkubGVuZ3RoP2UrdDp0fXt2YXIgYTtkJiZkLnJlcGxhY2VTdGF0ZSYmKCgoYT1MKCJfZ2wiKSkudGVzdChlKXx8YS50ZXN0KG4pKSYmKHQ9dyh0LCJwYXRoIiksZT1yKGUsIj8iKSxuPXIobiwiIyIpLGQucmVwbGFjZVN0YXRlKHt9LHZvaWQgMCwiIit0K2UrbikpKX19KGUsbixyKX19ZnVuY3Rpb24gRCh0LGUpe3ZhciBuLHI7cmV0dXJuKHQ9TCh0KS5leGVjKGUpKSYmKG49dFsyXSxyPXRbNF0sZT10WzFdLHImJihlPWUrbityKSksZX1mdW5jdGlvbiBxKHQpe3ZhciBlPXZvaWQgMD09PWU/MzplO3RyeXtpZih0KXt0Ontmb3IodmFyIG49MDtuPDM7KytuKXt2YXIgcj1SLmV4ZWModCk7aWYocil7dmFyIGE9cjticmVhayB0fXQ9ZGVjb2RlVVJJQ29tcG9uZW50KHQpfWE9dm9pZCAwfWlmKGEmJiIxIj09PWFbMV0pe3ZhciBvPWFbMl0saT1hWzNdO3Q6e2ZvcihhPTA7YTxlOysrYSlpZihvPT09UChpLGEpKXt2YXIgcz0hMDticmVhayB0fXM9ITF9aWYocyl7Zm9yKHZhciBlPXt9LGM9aT9pLnNwbGl0KCIqIik6W10saT0wO2k8Yy5sZW5ndGg7aSs9MillW2NbaV1dPWZ1bmN0aW9uKHIpe2Z1bmN0aW9uIHQodCl7Zm9yKDthPHIubGVuZ3RoOyl7dmFyIGU9ci5jaGFyQXQoYSsrKSxuPWxbZV07aWYobnVsbCE9bilyZXR1cm4gbjtpZighL15bXHNceGEwXSokLy50ZXN0KGUpKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK2UpfXJldHVybiB0fXU9dXx8VCgpLGw9bHx8RSgpO2Zvcih2YXIgZT0iIixhPTA7Oyl7dmFyIG49dCgtMSksbz10KDApLGk9dCg2NCkscz10KDY0KTtpZig2ND09PXMmJi0xPT09bilyZXR1cm4gZTtlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG48PDJ8bz4+NCksNjQhPWkmJihlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG88PDQmMjQwfGk+PjIpLDY0IT1zJiYoZSs9U3RyaW5nLmZyb21DaGFyQ29kZShpPDw2JjE5MnxzKSkpfX0oY1tpKzFdKTtyZXR1cm4gZX19fX1jYXRjaCh0KXt9fWZ1bmN0aW9uIFUobix0LGUscil7ZnVuY3Rpb24gYSh0KXt2YXIgZT0odD1EKG4sdCkpLmNoYXJBdCh0Lmxlbmd0aC0xKTtyZXR1cm4gdCYmIiYiIT09ZSYmKHQrPSImIiksdCtzfWlmKHI9dm9pZCAwIT09ciYmciwhKGk9QS5leGVjKGUpKSlyZXR1cm4iIjtlPWlbMV07dmFyIG89aVsyXXx8IiIsaT1pWzNdfHwiIixzPW4rIj0iK3Q7cmV0dXJuIHI/aT0iIyIrYShpLnN1YnN0cmluZygxKSk6bz0iPyIrYShvLnN1YnN0cmluZygxKSksIiIrZStvK2l9ZnVuY3Rpb24gSCh0LGUpe3ZhciBuPSJGT1JNIj09PSh0LnRhZ05hbWV8fCIiKS50b1VwcGVyQ2FzZSgpLHI9QyhlLDEsbiksYT1DKGUsMixuKTtlPUMoZSwzLG4pO3ZhciBvLGk9ajtmb3IobyBpbiBzKHIpJiYocj1JKHIsaSksbj9WKCJfZ2wiLHIsdCk6RygiX2dsIixyLHQsITEpKSwhbiYmcyhhKSYmRygiX2dsIixuPUkoYSksdCwhMCksZSllLmhhc093blByb3BlcnR5KG8pJiYkKG8sZVtvXSx0KX1mdW5jdGlvbiAkKHQsZSxuLHIpe2lmKG4udGFnTmFtZSl7aWYoImEiPT09bi50YWdOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIEcodCxlLG4scik7aWYoImZvcm0iPT09bi50YWdOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIFYodCxlLG4pfWlmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gVSh0LGUsbixyKX1mdW5jdGlvbiBHKHQsZSxuLHIpe24uaHJlZiYmKHQ9VSh0LGUsbi5ocmVmLHZvaWQgMCE9PXImJnIpLGgudGVzdCh0KSYmKG4uaHJlZj10KSl9ZnVuY3Rpb24gVih0LGUsbil7aWYobiYmbi5hY3Rpb24paWYoImdldCI9PT0ocj0obi5tZXRob2R8fCIiKS50b0xvd2VyQ2FzZSgpKSl7Zm9yKHZhciByPW4uY2hpbGROb2Rlc3x8W10sYT0hMSxvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBpPXJbb107aWYoaS5uYW1lPT09dCl7aS5zZXRBdHRyaWJ1dGUoInZhbHVlIixlKSxhPSEwO2JyZWFrfX1hfHwoKHI9cC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxyLnNldEF0dHJpYnV0ZSgibmFtZSIsdCksci5zZXRBdHRyaWJ1dGUoInZhbHVlIixlKSxuLmFwcGVuZENoaWxkKHIpKX1lbHNlInBvc3QiPT09ciYmKHQ9VSh0LGUsbi5hY3Rpb24pLGgudGVzdCh0KSYmKG4uYWN0aW9uPXQpKX1mdW5jdGlvbiBGKHQpe3RyeXt0Ontmb3IodmFyIGU9MTAwO3QmJjA8ZTspe2lmKHQuaHJlZiYmdC5ub2RlTmFtZS5tYXRjaCgvXmEoPzpyZWEpPyQvaSkpe3ZhciBuPXQ7YnJlYWsgdH10PXQucGFyZW50Tm9kZSxlLS19bj1udWxsfXZhciByO24mJigiaHR0cDoiIT09KHI9bi5wcm90b2NvbCkmJiJodHRwczoiIT09cnx8SChuLG4uaG9zdG5hbWUpKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIFgodCl7dHJ5e3QuYWN0aW9uJiZIKHQsdyhPKHQuYWN0aW9uKSwiaG9zdCIpKX1jYXRjaCh0KXt9fXQoImdvb2dsZV90YWdfZGF0YS5nbEJyaWRnZS5hdXRvIixmdW5jdGlvbih0LGUsbixyLGEpe2soKSx2b2lkIDAhPT1hJiYoaj1hKSwzIT09YXx8di51c2VyQWdlbnREYXRhJiZ2LnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoWyJhcmNoaXRlY3R1cmUiLCJtb2RlbCIsImJpdG5lc3MiLCJwbGF0Zm9ybVZlcnNpb24iLCJ1YUZ1bGxWZXJzaW9uIl0pLnRoZW4oZnVuY3Rpb24oKXt9KSxTKHQsZSwiZnJhZ21lbnQiPT09bj8yOjEsISFyLCExKX0pLHQoImdvb2dsZV90YWdfZGF0YS5nbEJyaWRnZS5wYXNzdGhyb3VnaCIsZnVuY3Rpb24odCxlLG4scil7aygpLHZvaWQgMCE9PXImJihqPXIpLFModCxbeShmLmxvY2F0aW9uLCJob3N0IiwhMCldLGUsISFuLCEwKX0pLHQoImdvb2dsZV90YWdfZGF0YS5nbEJyaWRnZS5kZWNvcmF0ZSIsZnVuY3Rpb24odCxlLG4pe3JldHVybiAkKCJfZ2wiLHQ9SSh0KSxlLCEhbil9KSx0KCJnb29nbGVfdGFnX2RhdGEuZ2xCcmlkZ2UuZ2VuZXJhdGUiLEkpLHQoImdvb2dsZV90YWdfZGF0YS5nbEJyaWRnZS5nZXQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49cighIWUpO3JldHVybihlPU4oKSkuZGF0YXx8KGUuZGF0YT17cXVlcnk6e30sZnJhZ21lbnQ6e319LG4oZS5kYXRhKSksbj17fSwoZT1lLmRhdGEpJiYoZyhuLGUucXVlcnkpLHQmJmcobixlLmZyYWdtZW50KSksbn0pfSh3aW5kb3cpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyh0KXt2YXIgZSxuPTE7aWYodClmb3Iobj0wLGU9dC5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIHI9dC5jaGFyQ29kZUF0KGUpO249MCE9KHI9MjY2MzM4MzA0JihuPShuPDw2JjI2ODQzNTQ1NSkrcisocjw8MTQpKSk/bl5yPj4yMTpufXJldHVybiBufWZ1bmN0aW9uIGkodCl7dGhpcy5DPXR8fFtdfWkucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0aGlzLkNbdF09ITB9LGkucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLkMubGVuZ3RoO2UrKyl0aGlzLkNbZV0mJih0W01hdGguZmxvb3IoZS82KV1ePTE8PGUlNik7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fIi5jaGFyQXQodFtlXXx8MCk7cmV0dXJuIHQuam9pbigiIikrIn4ifTt2YXIgdD13aW5kb3cuR29vZ2xlQW5hbHl0aWNzT2JqZWN0LHM9KEFlPShBZT1OZT0oTmU9bnVsbCE9dCk/LTE8KHQuY29uc3RydWN0b3IrIiIpLmluZGV4T2YoIlN0cmluZyIpOk5lKT8oUmU9d2luZG93Lkdvb2dsZUFuYWx5dGljc09iamVjdCk/UmUucmVwbGFjZSgvXltcc1x4YTBdK3xbXHNceGEwXSskL2csIiIpOiIiOkFlKXx8ImdhIixjPS9eKD86dXRtYVwuKT9cZCtcLlxkKyQvLHU9L15hbXAtW1x3Li1dezIyLDY0fSQvLGw9ITEscj1uZXcgaTtmdW5jdGlvbiBnKHQpe3Iuc2V0KHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ9dC5nZXQoRmUpLHQ9IXkodCk/W106dH1mdW5jdGlvbiBmKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIGQoKXtmb3IodmFyIHQ9SS5uYXZpZ2F0b3IudXNlckFnZW50KyhQLmNvb2tpZXx8IiIpKyhQLnJlZmVycmVyfHwiIiksZT10Lmxlbmd0aCxuPUkuaGlzdG9yeS5sZW5ndGg7MDxuOyl0Kz1uLS1eZSsrO3JldHVybltBdCgpXjIxNDc0ODM2NDcmbyh0KSxNYXRoLnJvdW5kKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMyldLmpvaW4oIi4iKX1mdW5jdGlvbiBwKHQsZSxuLHIpe3RyeXt0LmFkZEV2ZW50TGlzdGVuZXI/dC5hZGRFdmVudExpc3RlbmVyKGUsbiwhIXIpOnQuYXR0YWNoRXZlbnQmJnQuYXR0YWNoRXZlbnQoIm9uIitlLG4pfWNhdGNoKHQpe2coMjcpfX1mdW5jdGlvbiB2KHQsZSl7dmFyIG49dC5pbmRleE9mKGUpO3JldHVybiEoNSE9biYmNiE9bnx8Ii8iIT0odD10LmNoYXJBdChuK2UubGVuZ3RoKSkmJiI/IiE9dCYmIiIhPXQmJiI6IiE9dCl9ZnVuY3Rpb24gbSh0LGUpe2lmKDE9PWUubGVuZ3RoJiZudWxsIT1lWzBdJiYib2JqZWN0Ij09dHlwZW9mIGVbMF0pcmV0dXJuIGVbMF07Zm9yKHZhciBuPXt9LHI9TWF0aC5taW4odC5sZW5ndGgrMSxlLmxlbmd0aCksYT0wO2E8cjthKyspe2lmKCJvYmplY3QiPT10eXBlb2YgZVthXSl7Zm9yKHZhciBvIGluIGVbYV0pZVthXS5oYXNPd25Qcm9wZXJ0eShvKSYmKG5bb109ZVthXVtvXSk7YnJlYWt9YTx0Lmxlbmd0aCYmKG5bdFthXV09ZVthXSl9cmV0dXJuIG59ZnVuY3Rpb24gYigpe3RoaXMub2E9W10sdGhpcy5lYT17fSx0aGlzLm09e319dmFyIHc9ZnVuY3Rpb24odCl7dD1oKHQpLHQ9bmV3IGkodCk7Zm9yKHZhciBlPXIuQy5zbGljZSgpLG49MDtuPHQuQy5sZW5ndGg7bisrKWVbbl09ZVtuXXx8dC5DW25dO3JldHVybiBuZXcgaShlKS5lbmNvZGUoKX0seT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0KHQpKX0sXz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmLTE8KHQuY29uc3RydWN0b3IrIiIpLmluZGV4T2YoIlN0cmluZyIpfSxPPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PXQuaW5kZXhPZihlKX0sRT1mdW5jdGlvbih0KXt2YXIgZT1QLmNyZWF0ZUVsZW1lbnQoImltZyIpO3JldHVybiBlLndpZHRoPTEsZS5oZWlnaHQ9MSxlLnNyYz10LGV9LFQ9ZnVuY3Rpb24oKXt9LHg9ZnVuY3Rpb24odCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCBpbnN0YW5jZW9mIEZ1bmN0aW9uP2VuY29kZVVSSUNvbXBvbmVudCh0KTooZygyOCksdCl9LGs9L15bXHdcLTovLj89JiUhXFtcXV0rJC8sUz0vXltcdysvXy1dK1s9XXswLDJ9JC8sQz1udWxsLGo9ZnVuY3Rpb24odCxlLG4scixhKXtpZighQyl7Qz17Y3JlYXRlU2NyaXB0VVJMOmZ1bmN0aW9uKHQpe3JldHVybiB0fSxjcmVhdGVIVE1MOmZ1bmN0aW9uKHQpe3JldHVybiB0fX07dHJ5e0M9d2luZG93LnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImdvb2dsZS1hbmFseXRpY3MiLEMpfWNhdGNoKHQpe319dmFyIG87dCYmKG89KG89UC5xdWVyeVNlbGVjdG9yJiZQLnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtub25jZV0iKXx8bnVsbCkmJihvLm5vbmNlfHxvLmdldEF0dHJpYnV0ZSYmby5nZXRBdHRyaWJ1dGUoIm5vbmNlIikpfHwiIixuPyhhPXI9IiIsZSYmay50ZXN0KGUpJiYocj0nIGlkPSInK2UrJyInKSxvJiZTLnRlc3QobykmJihhPScgbm9uY2U9IicrbysnIicpLGsudGVzdCh0KSYmUC53cml0ZShDLmNyZWF0ZUhUTUwoIjxzY3JpcHQiK3IrYSsnIHNyYz0iJyt0KyciPjxcL3NjcmlwdD4nKSkpOigobj1QLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLG4uYXN5bmM9ITAsbi5zcmM9Qy5jcmVhdGVTY3JpcHRVUkwodCksciYmKG4ub25sb2FkPXIpLGEmJihuLm9uZXJyb3I9YSksZSYmKG4uaWQ9ZSksbyYmbi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvKSwodD1QLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXSkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobix0KSkpfSxOPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFIoUC5sb2NhdGlvbltlPyJocmVmIjoic2VhcmNoIl0sdCl9LFI9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD10Lm1hdGNoKCIoPzomfCN8XFw/KSIreChlKS5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8XFtcXVwvXFxdKS9nLCJcXCQxIikrIj0oW14mI10qKSIpKSYmMj09dC5sZW5ndGg/dFsxXToiIn0sQT1mdW5jdGlvbigpe3ZhciB0PSIiK1AubG9jYXRpb24uaG9zdG5hbWU7cmV0dXJuIDA9PXQuaW5kZXhPZigid3d3LiIpP3Quc3Vic3RyaW5nKDQpOnR9LEw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZihlPT10W25dKXJldHVybiEwO3JldHVybiExfTtiLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMub2EucHVzaCh0KSxuP3RoaXMubVsiOiIrdF09ZTp0aGlzLmVhWyI6Iit0XT1lfSxiLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuKHRoaXMubS5oYXNPd25Qcm9wZXJ0eSgiOiIrdCk/dGhpcy5tOnRoaXMuZWEpWyI6Iit0XX0sYi5wcm90b3R5cGUubWFwPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dGhpcy5vYS5sZW5ndGg7ZSsrKXt2YXIgbj10aGlzLm9hW2VdLHI9dGhpcy5nZXQobik7ciYmdChuLHIpfX07dmFyIEk9d2luZG93LFA9ZG9jdW1lbnQsbj1kb2N1bWVudC5jdXJyZW50U2NyaXB0P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOiIiLE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSxEPXdpbmRvdyxxPWRvY3VtZW50LFU9ZnVuY3Rpb24odCl7dmFyIGU9RC5fZ2FVc2VyUHJlZnM7aWYoZSYmZS5pb28mJmUuaW9vKCl8fHQmJiEwPT09RFsiZ2EtZGlzYWJsZS0iK3RdKXJldHVybiEwO3RyeXt2YXIgbj1ELmV4dGVybmFsO2lmKG4mJm4uX2dhVXNlclByZWZzJiYib28iPT1uLl9nYVVzZXJQcmVmcylyZXR1cm4hMH1jYXRjaCh0KXt9Zm9yKHQ9W10sZT1TdHJpbmcocS5jb29raWUpLnNwbGl0KCI7Iiksbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dLnNwbGl0KCI9IiksYT1yWzBdLnJlcGxhY2UoL15ccyp8XHMqJC9nLCIiKTthJiYiQU1QX1RPS0VOIj09YSYmKChyPXIuc2xpY2UoMSkuam9pbigiPSIpLnJlcGxhY2UoL15ccyp8XHMqJC9nLCIiKSkmJihyPWRlY29kZVVSSUNvbXBvbmVudChyKSksdC5wdXNoKHIpKX1mb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKCIkT1BUX09VVCI9PXRbZV0pcmV0dXJuITA7cmV0dXJuISFxLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIil9LEg9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1QLmNvb2tpZS5zcGxpdCgiOyIpO3Q9bmV3IFJlZ0V4cCgiXlxccyoiK3QrIj1cXHMqKC4qPylcXHMqJCIpO2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgYT1uW3JdLm1hdGNoKHQpO2EmJmUucHVzaChhWzFdKX1yZXR1cm4gZX0sJD1mdW5jdGlvbih0LGUsbixyLGEsbyxpKXtpZighKGE9IVUoYSkmJiEoRi50ZXN0KFAubG9jYXRpb24uaG9zdG5hbWUpfHwiLyI9PW4mJlYudGVzdChyKSkpKXJldHVybiExO2lmKG49dCsiPSIrKGU9ZSYmMTIwMDxlLmxlbmd0aD9lLnN1YnN0cmluZygwLDEyMDApOmUpKyI7IHBhdGg9IituKyI7ICIsbyYmKG4rPSJleHBpcmVzPSIrbmV3IERhdGUoKG5ldyBEYXRlKS5nZXRUaW1lKCkrbykudG9HTVRTdHJpbmcoKSsiOyAiKSxyJiYibm9uZSIhPT1yJiYobis9ImRvbWFpbj0iK3IrIjsiKSxpJiYobis9aSsiOyIpLHI9UC5jb29raWUsUC5jb29raWU9biwhKHI9ciE9UC5jb29raWUpKXQ6e2Zvcih0PUgodCkscj0wO3I8dC5sZW5ndGg7cisrKWlmKGU9PXRbcl0pe3I9ITA7YnJlYWsgdH1yPSExfXJldHVybiByfSxHPWZ1bmN0aW9uKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQ/ZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoL1woL2csIiUyOCIpLnJlcGxhY2UoL1wpL2csIiUyOSIpOnR9LFY9L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9KT8kLyxGPS8oXnxcLilkb3VibGVjbGlja1wubmV0JC9pLFg9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1QLmNvb2tpZS5zcGxpdCgiOyIpO3Q9bmV3IFJlZ0V4cCgiXlxccyoiKyh0fHwiX2dhYyIpKyJfKFVBLVxcZCstXFxkKyk9XFxzKiguKz8pXFxzKiQiKTtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGE9bltyXS5tYXRjaCh0KTthJiZlLnB1c2goe2phOmFbMV0sdmFsdWU6YVsyXSx0aW1lc3RhbXA6TnVtYmVyKGFbMl0uc3BsaXQoIi4iKVsxXSl8fDB9KX1yZXR1cm4gZS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudGltZXN0YW1wLXQudGltZXN0YW1wfSksZX07ZnVuY3Rpb24gQih0LGUsbil7dmFyIHI9e307aWYoIShlPVgoZSkpfHwhZS5sZW5ndGgpcmV0dXJuIHI7Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBvLGk9ZVthXS52YWx1ZS5zcGxpdCgiLiIpOyIxIiE9PWlbMF18fG4mJmkubGVuZ3RoPDN8fCFuJiYzIT09aS5sZW5ndGg/dCYmKHQubmE9ITApOk51bWJlcihpWzFdKSYmKHJbZVthXS5qYV0/dCYmKHQucGE9ITApOnJbZVthXS5qYV09W10sbz17dmVyc2lvbjppWzBdLHRpbWVzdGFtcDoxZTMqTnVtYmVyKGlbMV0pLHFhOmlbMl19LG4mJjM8aS5sZW5ndGgmJihvLmxhYmVscz1pLnNsaWNlKDMpKSxyW2VbYV0uamFdLnB1c2gobykpfXJldHVybiByfWZ1bmN0aW9uIHooKXt4YS5EKFtUXSl9ZnVuY3Rpb24gSyh0LGUsbil7Zm9yKGV0JiZjbGVhclRpbWVvdXQoZXQpLGUmJmx0KGUsbikscnQ9dCxlPWl0LGl0PVtdLG49MDtuPGUubGVuZ3RoO24rKyllW25dKHQpfWZ1bmN0aW9uIFcodCl7dDp7aWYoYXQudGVzdChQLnJlZmVycmVyKSl7dmFyIGU9UC5sb2NhdGlvbi5ob3N0bmFtZS5yZXBsYWNlKG90LCIiKTtlOnt2YXIgbj1QLnJlZmVycmVyLHI9KG49bi5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSkucmVwbGFjZSgvXlteL10rLywiIikuc3BsaXQoIi8iKSxhPXJbMl07aWYoIShyPShyPSJzIj09YT9yWzNdOmEpP2RlY29kZVVSSUNvbXBvbmVudChyKTpyKSl7aWYoMD09bi5pbmRleE9mKCJ4bi0tIikpe249IiI7YnJlYWsgZX0obj1uLm1hdGNoKC8oLiopXC5jZG5cLmFtcHByb2plY3RcLm9yZ1wvPyQvKSkmJjI9PW4ubGVuZ3RoJiYocj1uWzFdLnJlcGxhY2UoLy0vZywiLiIpLnJlcGxhY2UoL1wuXC4vZywiLSIpKX1uPXI/ci5yZXBsYWNlKG90LCIiKToiIn1pZihyPSEocj1lPT09bik/ZS5zdWJzdHJpbmcoZS5sZW5ndGgtKG49Ii4iK24pLmxlbmd0aCxlLmxlbmd0aCk9PT1uOnIpe2U9ITA7YnJlYWsgdH1nKDc4KX1lPSExfXJldHVybiBlJiYhMSE9PXR9ZnVuY3Rpb24gWih0KXtzd2l0Y2godCl7ZGVmYXVsdDpjYXNlIDE6cmV0dXJuImh0dHBzOi8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2d0bS9qcz9pZD0iO2Nhc2UgMjpyZXR1cm4iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD0ifX1mdW5jdGlvbiBZKHQpe3RoaXMubmFtZT0ibGVuIix0aGlzLm1lc3NhZ2U9dCsiLTgxOTIifWZ1bmN0aW9uIEoodCxlLG4pe2lmKDA9PT1lLmxlbmd0aCluKCk7ZWxzZXt2YXIgcj1lLmNoYXJBdCgwKTtzd2l0Y2gocil7Y2FzZSJkIjpmdCgiaHR0cHM6Ly9zdGF0cy5nLmRvdWJsZWNsaWNrLm5ldC9qL2NvbGxlY3QiLHQuVSx0LG4pO2JyZWFrO2Nhc2UiZyI6ZHQoImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYWRzL2dhLWF1ZGllbmNlcyIsdC5nb29nbGUsbiksKGU9ZS5zdWJzdHJpbmcoMSkpJiYoL15bYS16Ll17MSw2fSQvLnRlc3QoZSk/ZHQoImh0dHBzOi8vd3d3Lmdvb2dsZS4lL2Fkcy9nYS1hdWRpZW5jZXMiLnJlcGxhY2UoIiUiLGUpLHQuZ29vZ2xlLFQpOmJ0KCJ0bGQiLCJiY2MiLGUpKTticmVhaztjYXNlIkciOmlmKHQuVil7dC5WKCJHLSIrZS5zdWJzdHJpbmcoMSkpLG4oKTticmVha31jYXNlIngiOmlmKHQuVil7dC5WKCksbigpO2JyZWFrfWRlZmF1bHQ6YnQoInhociIsImJyYyIsciksbigpfX19ZnVuY3Rpb24gUSgpe3RoaXMuTT1bXX12YXIgdHQsZXQsbnQscnQsYXQ9L15odHRwcz86XC9cL1teL10qY2RuXC5hbXBwcm9qZWN0XC5vcmdcLy8sb3Q9L14oPzp3d3dcLnxtXC58YW1wXC4pKy8saXQ9W10sc3Q9ZnVuY3Rpb24odCxlKXt2YXIgbj1IKCJBTVBfVE9LRU4iKTtyZXR1cm4gMTxuLmxlbmd0aD8oZyg1NSksITEpOiIkT1BUX09VVCI9PShuPWRlY29kZVVSSUNvbXBvbmVudChuWzBdfHwiIikpfHwiJEVSUk9SIj09bnx8VShlKT8oZyg2MiksITEpOmF0LnRlc3QoUC5yZWZlcnJlcil8fCIkTk9UX0ZPVU5EIiE9bj92b2lkIDAhPT1ydD8oZyg1NiksTShmdW5jdGlvbigpe3QocnQpfSwwKSwhMCk6dHQ/KGl0LnB1c2godCksITApOiIkUkVUUklFVklORyI9PW4/KGcoNTcpLE0oZnVuY3Rpb24oKXtzdCh0LGUpfSwxZTQpLCEwKToodHQ9ITAsbiYmIiQiIT1uWzBdfHwobHQoIiRSRVRSSUVWSU5HIiwzZTQpLHNldFRpbWVvdXQodXQsM2U0KSxuPSIiKSwhIWN0KG4sZSkmJihpdC5wdXNoKHQpLCEwKSk6KGcoNjgpLCExKX0sY3Q9ZnVuY3Rpb24oZSxuLHIpe2lmKCF3aW5kb3cuSlNPTilyZXR1cm4gZyg1OCksITE7dmFyIHQ9SS5YTUxIdHRwUmVxdWVzdDtpZighdClyZXR1cm4gZyg1OSksITE7dmFyIGE9bmV3IHQ7cmV0dXJuIndpdGhDcmVkZW50aWFscyJpbiBhPyhhLm9wZW4oIlBPU1QiLChyfHwiaHR0cHM6Ly9hbXBjaWQuZ29vZ2xlLmNvbS92MS9wdWJsaXNoZXI6Z2V0Q2xpZW50SWQiKSsiP2tleT1BSXphU3lBNjVsRUhVRWl6SXNOdGxiTm8tbDJLMThkVDY4MG5zYU0iLCEwKSxhLndpdGhDcmVkZW50aWFscz0hMCxhLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsInRleHQvcGxhaW4iKSxhLm9ubG9hZD1mdW5jdGlvbigpe2lmKHR0PSExLDQ9PWEucmVhZHlTdGF0ZSl7dHJ5ezIwMCE9YS5zdGF0dXMmJihnKDYxKSxLKCIiLCIkRVJST1IiLDNlNCkpO3ZhciB0PUpTT04ucGFyc2UoYS5yZXNwb25zZVRleHQpO3Qub3B0T3V0PyhnKDYzKSxLKCIiLCIkT1BUX09VVCIsMzE1MzZlNikpOnQuY2xpZW50SWQ/Syh0LmNsaWVudElkLHQuc2VjdXJpdHlUb2tlbiwzMTUzNmU2KTohciYmdC5hbHRlcm5hdGVVcmw/KGV0JiZjbGVhclRpbWVvdXQoZXQpLHR0PSEwLGN0KGUsbix0LmFsdGVybmF0ZVVybCkpOihnKDY0KSxLKCIiLCIkTk9UX0ZPVU5EIiwzNmU1KSl9Y2F0Y2godCl7Zyg2NSksSygiIiwiJEVSUk9SIiwzZTQpfWE9bnVsbH19LHQ9e29yaWdpblNjb3BlOiJBTVBfRUNJRF9HT09HTEUifSxlJiYodC5zZWN1cml0eVRva2VuPWUpLGEuc2VuZChKU09OLnN0cmluZ2lmeSh0KSksZXQ9TShmdW5jdGlvbigpe2coNjYpLEsoIiIsIiRFUlJPUiIsM2U0KX0sMWU0KSwhMCk6KGcoNjApLCExKX0sdXQ9ZnVuY3Rpb24oKXt0dD0hMX0sbHQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT1udCl7bnQ9IiI7Zm9yKHZhciBuPXNyKCkscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgYT1uW3JdO2lmKCQoIkFNUF9UT0tFTiIsZW5jb2RlVVJJQ29tcG9uZW50KHQpLCIvIixhLCIiLGUpKXJldHVybiB2b2lkKG50PWEpfX0kKCJBTVBfVE9LRU4iLGVuY29kZVVSSUNvbXBvbmVudCh0KSwiLyIsbnQsIiIsZSl9LGd0PWZ1bmN0aW9uKHQpe3JldHVybih0fHxsfHwiaHR0cHM6Ij09UC5sb2NhdGlvbi5wcm90b2NvbD8iaHR0cHM6IjoiaHR0cDoiKSsiLy93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20ifSxodD1mdW5jdGlvbih0LGUsbil7aWYobj1ufHxULGUubGVuZ3RoPD0yMDM2KWR0KHQsZSxuKTtlbHNle2lmKCEoZS5sZW5ndGg8PTgxOTIpKXRocm93IGJ0KCJsZW4iLGUubGVuZ3RoKSxuZXcgWShlLmxlbmd0aCk7bXQodCxlLG4pfHxwdCh0LGUsbil8fGR0KHQsZSxuKX19LGZ0PWZ1bmN0aW9uKHQsZSxuLHIpe3B0KHQrIj8iK2UsIiIscj1yfHxULG4pfSxkdD1mdW5jdGlvbih0LGUsbil7dmFyIHI9RSh0KyI/IitlKTtyLm9ubG9hZD1yLm9uZXJyb3I9ZnVuY3Rpb24oKXtyLm9ubG9hZD1udWxsLHIub25lcnJvcj1udWxsLG4oKX19LHB0PWZ1bmN0aW9uKG4scixvLGkpe3ZhciB0PXt9LmNvbnN0cnVjdG9yLmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csIlhNTEh0dHBSZXF1ZXN0Iik7dHJ5e3JldHVybiB0JiZ7fS5jb25zdHJ1Y3Rvci5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIlhNTEh0dHBSZXF1ZXN0IixhLlhNTEh0dHBSZXF1ZXN0KSxmdW5jdGlvbigpe3ZhciB0PUkuWE1MSHR0cFJlcXVlc3Q7aWYoIXQpcmV0dXJuITE7dmFyIGU9bmV3IHQ7cmV0dXJuIndpdGhDcmVkZW50aWFscyJpbiBlJiYobj1uLnJlcGxhY2UoL15odHRwOi8sImh0dHBzOiIpLGUub3BlbigiUE9TVCIsbiwhMCksZS53aXRoQ3JlZGVudGlhbHM9ITAsZS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJ0ZXh0L3BsYWluIiksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZig0PT1lLnJlYWR5U3RhdGUpe2lmKGkmJiJ0ZXh0L3BsYWluIj09PWUuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKXRyeXt2dChpLGUucmVzcG9uc2VUZXh0LG8pfWNhdGNoKHQpe2J0KCJ4aHIiLCJyc3AiKSxvKCl9ZWxzZSBvKCk7ZT1udWxsfX0sZS5zZW5kKHIpLCEwKX0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7dCYme30uY29uc3RydWN0b3IuZGVmaW5lUHJvcGVydHkod2luZG93LCJYTUxIdHRwUmVxdWVzdCIsdCl9fSx2dD1mdW5jdGlvbih0LGUsbil7aWYoZS5sZW5ndGg8MSlidCgieGhyIiwidmVyIiwiMCIpLG4oKTtlbHNlIGlmKDM8dC5jb3VudCsrKWJ0KCJ4aHIiLCJ0bXIiLCIiK3QuY291bnQpLG4oKTtlbHNle3ZhciByPWUuY2hhckF0KDApO2lmKCIxIj09PXIpSih0LGUuc3Vic3RyaW5nKDEpLG4pO2Vsc2UgaWYodC5WJiYiMiI9PT1yKXt2YXIgYT1lLnN1YnN0cmluZygxKS5zcGxpdCgiLCIpLG89MDtmb3IoZT1mdW5jdGlvbigpeysrbz09PWEubGVuZ3RoJiZuKCl9LHI9MDtyPGEubGVuZ3RoO3IrKylKKHQsYVtyXSxlKX1lbHNlIGJ0KCJ4aHIiLCJ2ZXIiLFN0cmluZyhlLmxlbmd0aCkpLG4oKX19LG10PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4hIUkubmF2aWdhdG9yLnNlbmRCZWFjb24mJighIUkubmF2aWdhdG9yLnNlbmRCZWFjb24odCxlKSYmKG4oKSwhMCkpfSxidD1mdW5jdGlvbih0LGUsbil7MTw9MTAwKk1hdGgucmFuZG9tKCl8fFUoIj8iKXx8KHQ9WyJ0PWVycm9yIiwiX2U9Iit0LCJfdj1qOTYiLCJzcj0xIl0sZSYmdC5wdXNoKCJfZj0iK2UpLG4mJnQucHVzaCgiX209Iit4KG4uc3Vic3RyaW5nKDAsMTAwKSkpLHQucHVzaCgiYWlwPTEiKSx0LnB1c2goIno9IitBdCgpKSxkdChndCghMCkrIi91L2QiLHQuam9pbigiJiIpLFQpKX0sd3Q9ZnVuY3Rpb24oKXtyZXR1cm4gSS5nYURhdGE9SS5nYURhdGF8fHt9fSx5dD1mdW5jdGlvbih0KXt2YXIgZT13dCgpO3JldHVybiBlW3RdPWVbdF18fHt9fTtmdW5jdGlvbiBfdCh0KXtpZigxMDAhPXQuZ2V0KENuKSYmbyhQdCh0LGhuKSklMWU0Pj0xMDAqTXQodCxDbikpdGhyb3ciYWJvcnQifWZ1bmN0aW9uIE90KHQpe2lmKFUoUHQodCx2bikpKXRocm93ImFib3J0In1mdW5jdGlvbiBFdCgpe3ZhciB0PVAubG9jYXRpb24ucHJvdG9jb2w7aWYoImh0dHA6IiE9dCYmImh0dHBzOiIhPXQpdGhyb3ciYWJvcnQifWZ1bmN0aW9uIFR0KG4pe3RyeXtJLm5hdmlnYXRvci5zZW5kQmVhY29uP2coNDIpOkkuWE1MSHR0cFJlcXVlc3QmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gbmV3IEkuWE1MSHR0cFJlcXVlc3QmJmcoNDApfWNhdGNoKHQpe31uLnNldChWZSx3KG4pLCEwKSxuLnNldCh0ZSxNdChuLHRlKSsxKTt2YXIgcj1bXTtHdC5tYXAoZnVuY3Rpb24odCxlKXtlLkYmJihudWxsIT0odD1uLmdldCh0KSkmJnQhPWUuZGVmYXVsdFZhbHVlJiYoImJvb2xlYW4iPT10eXBlb2YgdCYmKHQqPTEpLHIucHVzaChlLkYrIj0iK3goIiIrdCkpKSl9KSwhMT09PW4uZ2V0KHRyKSYmci5wdXNoKCJucGE9MSIpLHIucHVzaCgiej0iK2UoKSksbi5zZXQoWXQsci5qb2luKCImIiksITApfWZ1bmN0aW9uIHh0KHQpe3ZhciBlPVB0KHQsUXQpOyFlJiZ0LmdldChKdCkmJihlPSJiZWFjb24iKTt2YXIgbj1QdCh0LEtuKSxyPVB0KHQsVW4pLGE9bnx8KHJ8fGd0KCExKSsiIikrIi9jb2xsZWN0IjsiZCI9PT1QdCh0LEpuKT8oYT1ufHwocnx8Z3QoITEpKyIiKSsiL2ovY29sbGVjdCIsZT10LmdldChZbil8fHZvaWQgMCxmdChhLFB0KHQsWXQpLGUsdC5aKFp0KSkpOmU/KG49UHQodCxZdCkscj0ocj10LlooWnQpKXx8VCwiaW1hZ2UiPT1lP2R0KGEsbixyKToieGhyIj09ZSYmcHQoYSxuLHIpfHwiYmVhY29uIj09ZSYmbXQoYSxuLHIpfHxodChhLG4scikpOmh0KGEsUHQodCxZdCksdC5aKFp0KSksYT1QdCh0LHZuKSxlPShhPXl0KGEpKS5oaXRjb3VudCxhLmhpdGNvdW50PWU/ZSsxOjEsYS5maXJzdF9oaXR8fChhLmZpcnN0X2hpdD0obmV3IERhdGUpLmdldFRpbWUoKSksYT1QdCh0LHZuKSxkZWxldGUgeXQoYSkucGVuZGluZ19leHBlcmltZW50cyx0LnNldChadCxULCEwKX1mdW5jdGlvbiBrdCh0KXt3dCgpLmV4cElkJiZ0LnNldChMZSx3dCgpLmV4cElkKSx3dCgpLmV4cFZhciYmdC5zZXQoSWUsd3QoKS5leHBWYXIpO3ZhciBlPVB0KHQsdm4pO2lmKGU9eXQoZSkucGVuZGluZ19leHBlcmltZW50cyl7dmFyIG49W107Zm9yKHIgaW4gZSllLmhhc093blByb3BlcnR5KHIpJiZlW3JdJiZuLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KHIpKyIuIitlbmNvZGVVUklDb21wb25lbnQoZVtyXSkpO3ZhciByPW4uam9pbigiISIpfWVsc2Ugcj12b2lkIDA7ciYmKChlPXQuZ2V0KFBlKSkmJihyPWUrIiEiK3IpLHQuc2V0KFBlLHIsITApKX1mdW5jdGlvbiBTdCgpe2lmKEkubmF2aWdhdG9yJiYicHJldmlldyI9PUkubmF2aWdhdG9yLmxvYWRQdXJwb3NlKXRocm93ImFib3J0In1mdW5jdGlvbiBDdCh0KXt2YXIgZT1JLmdhRGV2SWRzfHxbXTtpZih5KGUpKXt2YXIgbj10LmdldCgiJmRpZCIpO18obikmJjA8bi5sZW5ndGgmJihlPWUuY29uY2F0KG4uc3BsaXQoIiwiKSkpO2Zvcih2YXIgbj1bXSxyPTA7cjxlLmxlbmd0aDtyKyspTChuLGVbcl0pfHxuLnB1c2goZVtyXSk7MCE9bi5sZW5ndGgmJnQuc2V0KCImZGlkIixuLmpvaW4oIiwiKSwhMCl9fWZ1bmN0aW9uIGp0KHQpe2lmKCF0LmdldCh2bikpdGhyb3ciYWJvcnQifWZ1bmN0aW9uIE50KHQpe3RyeXt2YXIgZSxuO3QuZ2V0KEZuKXx8KHQuc2V0KEZuLCEwKSx0LmdldCgiJmd0bSIpKXx8KGU9dm9pZCAwLChlPSEoZT0hKGU9UnQoTigiZ3RtX2RlYnVnIikpPzI6ZSkmJk8oUC5yZWZlcnJlciwiaHR0cHM6Ly90YWdhc3Npc3RhbnQuZ29vZ2xlLmNvbS8iKT8zOmUpJiZMKFAuY29va2llLnNwbGl0KCI7ICIpLCJfX1RBR19BU1NJU1RBTlQ9eCIpPzQ6ZSl8fFJ0KFAuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByZXNlbnQiKSkmJihlPTUpLGUmJihJWyJnb29nbGUudGFnbWFuYWdlci5kZWJ1Z3VpMi5xdWV1ZSJdfHwoSVsiZ29vZ2xlLnRhZ21hbmFnZXIuZGVidWd1aTIucXVldWUiXT1bXSxqKCJodHRwczovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9kZWJ1Zy9ib290c3RyYXA/aWQ9Iit0LmdldCh2bikrIiZzcmM9TEVHQUNZJmNvbmQ9IitlKSksbj1QLmN1cnJlbnRTY3JpcHQsSVsiZ29vZ2xlLnRhZ21hbmFnZXIuZGVidWd1aTIucXVldWUiXS5wdXNoKHttZXNzYWdlVHlwZToiTEVHQUNZX0NPTlRBSU5FUl9TVEFSVElORyIsZGF0YTp7aWQ6dC5nZXQodm4pLHNjcmlwdFNvdXJjZTpuJiZuLnNyY3x8IiJ9fSkpKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIFJ0KHQpe2lmKG51bGwhPXQmJjAhPT10Lmxlbmd0aCl7dD1OdW1iZXIodCk7dmFyIGU9RGF0ZS5ub3coKTtyZXR1cm4gdDxlKzNlNSYmZS05ZTU8dH19US5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3RoaXMuTS5wdXNoKHQpfSxRLnByb3RvdHlwZS5EPWZ1bmN0aW9uKHQpe3RyeXtmb3IodmFyIGU9MDtlPHRoaXMuTS5sZW5ndGg7ZSsrKXt2YXIgbj10LmdldCh0aGlzLk1bZV0pO24mJmYobikmJm4uY2FsbChJLHQpfX1jYXRjaCh0KXt9KGU9dC5nZXQoWnQpKSE9VCYmZihlKSYmKHQuc2V0KFp0LFQsITApLHNldFRpbWVvdXQoZSwxMCkpfTt2YXIgQXQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZCgyMTQ3NDgzNjQ3Kk1hdGgucmFuZG9tKCkpfSxlPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gSS5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHQpLDIxNDc0ODM2NDcmdFswXX1jYXRjaCh0KXtyZXR1cm4gQXQoKX19O2Z1bmN0aW9uIEx0KHQpe3ZhciBlPU10KHQsVWUpO2lmKDUwMDw9ZSYmZygxNSksInRyYW5zYWN0aW9uIiE9KG49UHQodCxXdCkpJiYiaXRlbSIhPW4pe3ZhciBuPU10KHQsJGUpLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCksYT1NdCh0LEhlKTtpZigwPT1hJiZ0LnNldChIZSxyKSwwPChhPU1hdGgucm91bmQoMiooci1hKS8xZTMpKSYmKG49TWF0aC5taW4obithLDIwKSx0LnNldChIZSxyKSksbjw9MCl0aHJvdyJhYm9ydCI7dC5zZXQoJGUsLS1uKX10LnNldChVZSwrK2UpfWZ1bmN0aW9uIEl0KCl7dGhpcy5kYXRhPW5ldyBifUl0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9WHQodCksbj10aGlzLmRhdGEuZ2V0KHQpO3JldHVybiBlJiZudWxsPT1uJiYobj1mKGUuZGVmYXVsdFZhbHVlKT9lLmRlZmF1bHRWYWx1ZSgpOmUuZGVmYXVsdFZhbHVlKSxlJiZlLlo/ZS5aKHRoaXMsdCxuKTpufTt2YXIgUHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09KHQ9dC5nZXQoZSkpPyIiOiIiK3R9LE10PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PSh0PXQuZ2V0KGUpKXx8IiI9PT10PzA6TnVtYmVyKHQpfTtJdC5wcm90b3R5cGUuWj1mdW5jdGlvbih0KXtyZXR1cm4odD10aGlzLmdldCh0KSkmJmYodCk/dDpUfSxJdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxuKXtpZih0KWlmKCJvYmplY3QiPT10eXBlb2YgdClmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYkdCh0aGlzLHIsdFtyXSxuKTtlbHNlICR0KHRoaXMsdCxlLG4pfTtmdW5jdGlvbiBEdCh0LGUsbixyLGEpe3JldHVybiB0PW5ldyBGdCh0LGUsbixyLGEpLEd0LnNldCh0Lm5hbWUsdCksdC5uYW1lfWZ1bmN0aW9uIHF0KHQsZSl7VnQucHVzaChbbmV3IFJlZ0V4cCgiXiIrdCsiJCIpLGVdKX1mdW5jdGlvbiBVdCh0LGUsbil7cmV0dXJuIER0KHQsZSxuLHZvaWQgMCxIdCl9ZnVuY3Rpb24gSHQoKXt9dmFyICR0PWZ1bmN0aW9uKHQsZSxuLHIpe251bGwhPW4mJmU9PT12biYmYWEudGVzdChuKTt2YXIgYT1YdChlKTthJiZhLm8/YS5vKHQsZSxuLHIpOnQuZGF0YS5zZXQoZSxuLHIpfSxHdD1uZXcgYixWdD1bXSxGdD1mdW5jdGlvbih0LGUsbixyLGEpe3RoaXMubmFtZT10LHRoaXMuRj1lLHRoaXMuWj1yLHRoaXMubz1hLHRoaXMuZGVmYXVsdFZhbHVlPW59LFh0PWZ1bmN0aW9uKHQpe3ZhciBlPUd0LmdldCh0KTtpZighZSlmb3IodmFyIG49MDtuPFZ0Lmxlbmd0aDtuKyspe3ZhciByPVZ0W25dLGE9clswXS5leGVjKHQpO2lmKGEpe2U9clsxXShhKSxHdC5zZXQoZS5uYW1lLGUpO2JyZWFrfX1yZXR1cm4gZX0sQnQ9VXQoImFwaVZlcnNpb24iLCJ2IiksenQ9VXQoImNsaWVudFZlcnNpb24iLCJfdiIpO0R0KCJhbm9ueW1pemVJcCIsImFpcCIpO3ZhciBLdD1EdCgiYWRTZW5zZUlkIiwiYSIpLFd0PUR0KCJoaXRUeXBlIiwidCIpLFp0PUR0KCJoaXRDYWxsYmFjayIpLFl0PUR0KCJoaXRQYXlsb2FkIik7RHQoIm5vbkludGVyYWN0aW9uIiwibmkiKSxEdCgiY3VycmVuY3lDb2RlIiwiY3UiKSxEdCgiZGF0YVNvdXJjZSIsImRzIik7dmFyIEp0PUR0KCJ1c2VCZWFjb24iLHZvaWQgMCwhMSksUXQ9RHQoInRyYW5zcG9ydCIpO0R0KCJzZXNzaW9uQ29udHJvbCIsInNjIiwiIiksRHQoInNlc3Npb25Hcm91cCIsInNnIiksRHQoInF1ZXVlVGltZSIsInF0Iik7dmFyIHRlPUR0KCJfcyIsIl9zIik7RHQoInNjcmVlbk5hbWUiLCJjZCIpO3ZhciBlZT1EdCgibG9jYXRpb24iLCJkbCIsIiIpLG5lPUR0KCJyZWZlcnJlciIsImRyIikscmU9RHQoInBhZ2UiLCJkcCIsIiIpO0R0KCJob3N0bmFtZSIsImRoIik7dmFyIGFlPUR0KCJsYW5ndWFnZSIsInVsIiksb2U9RHQoImVuY29kaW5nIiwiZGUiKTtEdCgidGl0bGUiLCJkdCIsZnVuY3Rpb24oKXtyZXR1cm4gUC50aXRsZXx8dm9pZCAwfSkscXQoImNvbnRlbnRHcm91cChbMC05XSspIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZ0KHRbMF0sImNnIit0WzFdKX0pO3ZhciBpZT1EdCgic2NyZWVuQ29sb3JzIiwic2QiKSxzZT1EdCgic2NyZWVuUmVzb2x1dGlvbiIsInNyIiksY2U9RHQoInZpZXdwb3J0U2l6ZSIsInZwIiksdWU9RHQoImphdmFFbmFibGVkIiwiamUiKSxsZT1EdCgiZmxhc2hWZXJzaW9uIiwiZmwiKTtEdCgiY2FtcGFpZ25JZCIsImNpIiksRHQoImNhbXBhaWduTmFtZSIsImNuIiksRHQoImNhbXBhaWduU291cmNlIiwiY3MiKSxEdCgiY2FtcGFpZ25NZWRpdW0iLCJjbSIpLER0KCJjYW1wYWlnbktleXdvcmQiLCJjayIpLER0KCJjYW1wYWlnbkNvbnRlbnQiLCJjYyIpO3ZhciBnZT1EdCgiZXZlbnRDYXRlZ29yeSIsImVjIiksaGU9RHQoImV2ZW50QWN0aW9uIiwiZWEiKSxmZT1EdCgiZXZlbnRMYWJlbCIsImVsIiksZGU9RHQoImV2ZW50VmFsdWUiLCJldiIpLHBlPUR0KCJzb2NpYWxOZXR3b3JrIiwic24iKSx2ZT1EdCgic29jaWFsQWN0aW9uIiwic2EiKSxtZT1EdCgic29jaWFsVGFyZ2V0Iiwic3QiKSxiZT1EdCgibDEiLCJwbHQiKSx3ZT1EdCgibDIiLCJwZHQiKSx5ZT1EdCgibDMiLCJkbnMiKSxfZT1EdCgibDQiLCJycnQiKSxPZT1EdCgibDUiLCJzcnQiKSxFZT1EdCgibDYiLCJ0Y3AiKSxUZT1EdCgibDciLCJkaXQiKSx4ZT1EdCgibDgiLCJjbHQiKSxrZT1EdCgibDkiLCJfZ3N0IiksU2U9RHQoImwxMCIsIl9nYnQiKSxDZT1EdCgibDExIiwiX2NzdCIpLGplPUR0KCJsMTIiLCJfY2J0IiksdD1EdCgidGltaW5nQ2F0ZWdvcnkiLCJ1dGMiKSxOZT1EdCgidGltaW5nVmFyIiwidXR2IiksUmU9RHQoInRpbWluZ0xhYmVsIiwidXRsIiksQWU9RHQoInRpbWluZ1ZhbHVlIiwidXR0Iik7RHQoImFwcE5hbWUiLCJhbiIpLER0KCJhcHBWZXJzaW9uIiwiYXYiLCIiKSxEdCgiYXBwSWQiLCJhaWQiLCIiKSxEdCgiYXBwSW5zdGFsbGVySWQiLCJhaWlkIiwiIiksRHQoImV4RGVzY3JpcHRpb24iLCJleGQiKSxEdCgiZXhGYXRhbCIsImV4ZiIpO3ZhciBMZT1EdCgiZXhwSWQiLCJ4aWQiKSxJZT1EdCgiZXhwVmFyIiwieHZhciIpLFBlPUR0KCJleHAiLCJleHAiKSxNZT1EdCgiX3V0bWEiLCJfdXRtYSIpLERlPUR0KCJfdXRteiIsIl91dG16IikscWU9RHQoIl91dG1odCIsIl91dG1odCIpLFVlPUR0KCJfaGMiLHZvaWQgMCwwKSxIZT1EdCgiX3RpIix2b2lkIDAsMCksJGU9RHQoIl90byIsdm9pZCAwLDIwKTtxdCgiZGltZW5zaW9uKFswLTldKykiLGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRnQodFswXSwiY2QiK3RbMV0pfSkscXQoIm1ldHJpYyhbMC05XSspIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZ0KHRbMF0sImNtIit0WzFdKX0pLER0KCJsaW5rZXJQYXJhbSIsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbih0KXtpZih0LmdldChHZSkpcmV0dXJuIGcoMzUpLGtyLmdlbmVyYXRlKE1yKHQpKTt2YXIgZT1QdCh0LGhuKSxuPVB0KHQsUm4pfHwiIjtyZXR1cm4gZT0iX2dhPTIuIit4KE5yKG4rZSwwKSsiLiIrbisiLSIrZSksdD0odD1Ecih0KSk/KGcoNDQpLCImX2dhYz0xLiIreChbTnIodC5xYSwwKSx0LnRpbWVzdGFtcCx0LnFhXS5qb2luKCIuIikpKToiIixlK3R9LEh0KTt2YXIgR2U9VXQoIl9jZDJsIix2b2lkIDAsITEpLFZlPUR0KCJ1c2FnZSIsIl91IiksRmU9RHQoIl91bSIpO0R0KCJmb3JjZVNTTCIsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBsfSxmdW5jdGlvbih0LGUsbil7ZygzNCksbD0hIW59KTt2YXIgWGU9RHQoIl9qMSIsImppZCIpLEJlPUR0KCJfajIiLCJnamlkIik7cXQoIlxcJiguKikiLGZ1bmN0aW9uKHQpe3ZhciBuLHIsZT1uZXcgRnQodFswXSx0WzFdKSxhPShuPXRbMF0uc3Vic3RyaW5nKDEpLEd0Lm1hcChmdW5jdGlvbih0LGUpe2UuRj09biYmKHI9ZSl9KSxyJiZyLm5hbWUpO3JldHVybiBhJiYoZS5aPWZ1bmN0aW9uKHQpe3JldHVybiB0LmdldChhKX0sZS5vPWZ1bmN0aW9uKHQsZSxuLHIpe3Quc2V0KGEsbixyKX0sZS5GPXZvaWQgMCksZX0pO3ZhciB6ZT1VdCgiX29vdCIpLEtlPUR0KCJwcmV2aWV3VGFzayIpLFdlPUR0KCJjaGVja1Byb3RvY29sVGFzayIpLFplPUR0KCJ2YWxpZGF0aW9uVGFzayIpLFllPUR0KCJjaGVja1N0b3JhZ2VUYXNrIiksSmU9RHQoImhpc3RvcnlJbXBvcnRUYXNrIiksUWU9RHQoInNhbXBsZXJUYXNrIiksdG49RHQoIl9ybHQiKSxlbj1EdCgiYnVpbGRIaXRUYXNrIiksbm49RHQoInNlbmRIaXRUYXNrIikscm49RHQoImNlVGFzayIpLGFuPUR0KCJkZXZJZFRhc2siKSxvbj1EdCgidGltaW5nVGFzayIpLHNuPUR0KCJkaXNwbGF5RmVhdHVyZXNUYXNrIiksY249RHQoImN1c3RvbVRhc2siKSx1bj1EdCgiZnBzQ3Jvc3NEb21haW5UYXNrIiksbG49VXQoIl9jdGEiKSxnbj1VdCgibmFtZSIpLGhuPVV0KCJjbGllbnRJZCIsImNpZCIpLGZuPVV0KCJjbGllbnRJZFRpbWUiKSxkbj1VdCgic3RvcmVkQ2xpZW50SWQiKSxwbj1EdCgidXNlcklkIiwidWlkIiksdm49VXQoInRyYWNraW5nSWQiLCJ0aWQiKSxtbj1VdCgiY29va2llTmFtZSIsdm9pZCAwLCJfZ2EiKSxibj1VdCgiY29va2llRG9tYWluIiksd249VXQoImNvb2tpZVBhdGgiLHZvaWQgMCwiLyIpLHluPVV0KCJjb29raWVFeHBpcmVzIix2b2lkIDAsNjMwNzJlMyksX249VXQoImNvb2tpZVVwZGF0ZSIsdm9pZCAwLCEwKSxPbj1VdCgiY29va2llRmxhZ3MiLHZvaWQgMCwiIiksRW49VXQoImxlZ2FjeUNvb2tpZURvbWFpbiIpLFRuPVV0KCJsZWdhY3lIaXN0b3J5SW1wb3J0Iix2b2lkIDAsITApLHhuPVV0KCJzdG9yYWdlIix2b2lkIDAsImNvb2tpZSIpLGtuPVV0KCJhbGxvd0xpbmtlciIsdm9pZCAwLCExKSxTbj1VdCgiYWxsb3dBbmNob3IiLHZvaWQgMCwhMCksQ249VXQoInNhbXBsZVJhdGUiLCJzZiIsMTAwKSxqbj1VdCgic2l0ZVNwZWVkU2FtcGxlUmF0ZSIsdm9pZCAwLDEpLE5uPVV0KCJhbHdheXNTZW5kUmVmZXJyZXIiLHZvaWQgMCwhMSksUm49VXQoIl9naWQiLCJfZ2lkIiksQW49VXQoIl9nY24iKSxMbj1VdCgidXNlQW1wQ2xpZW50SWQiKSxJbj1VdCgiX2djbGlkIiksUG49VXQoIl9ndCIpLE1uPVV0KCJfZ2UiLHZvaWQgMCw3Nzc2ZTYpLERuPVV0KCJfZ2Nsc3JjIikscW49VXQoInN0b3JlR2FjIix2b2lkIDAsITApLFVuPUR0KCJfeF8xOSIpLEhuPUR0KCJfZnBsYyIsIl9mcGxjIiksJG49VXQoIl9jcyIpLEduPVV0KCJfdXNlVXAiLHZvaWQgMCwhMSksVm49RHQoInVwIiwidXAiKSxGbj1EdCgiX3RhYyIsdm9pZCAwLCExKSxYbj1VdCgiX2dicmFpZCIpLEJuPVV0KCJfZ2J0Iiksem49VXQoIl9nYmUiLHZvaWQgMCw3Nzc2ZTYpLEtuPUR0KCJ0cmFuc3BvcnRVcmwiKSxXbj1EdCgiX3IiLCJfciIpLFpuPUR0KCJfc2xjIiwiX3NsYyIpLFluPUR0KCJfZHAiKSxKbj1EdCgiX2p0Iix2b2lkIDAsIm4iKSxRbj1EdCgiYWxsb3dBZEZlYXR1cmVzIix2b2lkIDAsITApLHRyPUR0KCJhbGxvd0FkUGVyc29uYWxpemF0aW9uU2lnbmFscyIsdm9pZCAwLCEwKTtmdW5jdGlvbiBlcihlLHQsbixyKXt0W2VdPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiByJiZnKHIpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWNhdGNoKHQpe3Rocm93IGJ0KCJleGMiLGUsdCYmdC5uYW1lKSx0fX19ZnVuY3Rpb24gbnIodCl7dmFyIGU7KGU9KGU9UHQodCxVbikmJnQuZ2V0KEdlKSk/ISgoZT1rci5nZXQodC5nZXQoU24pKSkmJmUuX2ZwbGMpOmUpJiYhY3IodCkmJnQuc2V0KEhuLCIwIil9ZnVuY3Rpb24gcnIodCxlKXt2YXIgbj10W2VdOyhpc05hTihuKXx8MS8wPT1ufHxuPDApJiYodFtlXT12b2lkIDApfWZ1bmN0aW9uIGFyKHQpe2lmKCJjb29raWUiPT1QdCh0LHhuKSYmIWdyJiYoaHIodCksIWdyKSl0aHJvdyJhYm9ydCJ9ZnVuY3Rpb24gb3IodCl7dmFyIGUsbixyO3QuZ2V0KFRuKSYmKGU9UHQodCxibiksKHI9RXIoIl9fdXRtYSIsbj1QdCh0LEVuKXx8QSgpLGUpKSYmKGcoMTkpLHQuc2V0KHFlLChuZXcgRGF0ZSkuZ2V0VGltZSgpLCEwKSx0LnNldChNZSxyLlIpLChlPUVyKCJfX3V0bXoiLG4sZSkpJiZyLmhhc2g9PWUuaGFzaCYmdC5zZXQoRGUsZS5SKSkpfWZ1bmN0aW9uIGlyKHQsZSl7ZT1HKFB0KHQsZSkpO3ZhciBuPWJyKFB0KHQsYm4pKS5zcGxpdCgiLiIpLmxlbmd0aDtyZXR1cm4gMTwodD15cihQdCh0LHduKSkpJiYobis9Ii0iK3QpLGU/WyJHQTEiLG4sZV0uam9pbigiLiIpOiIifWZ1bmN0aW9uIHNyKCl7dmFyIHQ9W10sZT1BKCkuc3BsaXQoIi4iKTtpZig0PT1lLmxlbmd0aCl7dmFyIG49ZVtlLmxlbmd0aC0xXTtpZihwYXJzZUludChuLDEwKT09bilyZXR1cm5bIm5vbmUiXX1mb3Iobj1lLmxlbmd0aC0yOzA8PW47bi0tKXQucHVzaChlLnNsaWNlKG4pLmpvaW4oIi4iKSk7cmV0dXJuIGU9UC5sb2NhdGlvbi5ob3N0bmFtZSxGLnRlc3QoZSl8fFYudGVzdChlKXx8dC5wdXNoKCJub25lIiksdH12YXIgY3I9ZnVuY3Rpb24odCl7aWYoImNvb2tpZSI9PXQuZ2V0KHhuKSlyZXR1cm4gMDwodD1IKCJGUExDIikpLmxlbmd0aD90WzBdOnZvaWQgMH0sdXI9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5taW4oTXQodCxqbiksMTAwKTtyZXR1cm4hKG8oUHQodCxobikpJTEwMD49ZSl9LGxyPWZ1bmN0aW9uKHQpe3ZhciBlLG49e307KGZ1bmN0aW9uKHQpe3ZhciBlPUkucGVyZm9ybWFuY2V8fEkud2Via2l0UGVyZm9ybWFuY2UsZTtpZighKGU9ZSYmZS50aW1pbmcpKXJldHVybiExO3ZhciBuPWUubmF2aWdhdGlvblN0YXJ0O3JldHVybiAwPT1uPyExOih0W2JlXT1lLmxvYWRFdmVudFN0YXJ0LW4sdFt5ZV09ZS5kb21haW5Mb29rdXBFbmQtZS5kb21haW5Mb29rdXBTdGFydCx0W0VlXT1lLmNvbm5lY3RFbmQtZS5jb25uZWN0U3RhcnQsdFtPZV09ZS5yZXNwb25zZVN0YXJ0LWUucmVxdWVzdFN0YXJ0LHRbd2VdPWUucmVzcG9uc2VFbmQtZS5yZXNwb25zZVN0YXJ0LHRbX2VdPWUuZmV0Y2hTdGFydC1uLHRbVGVdPWUuZG9tSW50ZXJhY3RpdmUtbix0W3hlXT1lLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0LW4sdFtrZV09a2EuTC1uLHRbU2VdPWthLnlhLW4sSS5nb29nbGVfdGFnX21hbmFnZXImJkkuZ29vZ2xlX3RhZ19tYW5hZ2VyLl9saSYmKGU9SS5nb29nbGVfdGFnX21hbmFnZXIuX2xpLHRbQ2VdPWUuY3N0LHRbamVdPWUuY2J0KSwhMCl9KG4pfHxmdW5jdGlvbih0KXtpZihJLnRvcCE9SSlyZXR1cm4hMTt2YXIgZT1JLmV4dGVybmFsLG49ZSYmZS5vbmxvYWRUO3JldHVybigwPChuPTIxNDc0ODM2NDg8KG49ZSYmIWUuaXNWYWxpZExvYWRUaW1lP3ZvaWQgMDpuKT92b2lkIDA6bikmJmUuc2V0UGFnZVJlYWR5VGltZSgpLG51bGw9PW4pPyExOih0W2JlXT1uLCEwKX0obikpJiYobnVsbD09KGU9bltiZV0pfHwxLzA9PWV8fGlzTmFOKGUpfHwoMDxlPyhycihuLHllKSxycihuLEVlKSxycihuLE9lKSxycihuLHdlKSxycihuLF9lKSxycihuLFRlKSxycihuLHhlKSxycihuLGtlKSxycihuLFNlKSxycihuLENlKSxycihuLGplKSxNKGZ1bmN0aW9uKCl7dChuKX0sMTApKTpwKEksImxvYWQiLGZ1bmN0aW9uKCl7bHIodCl9LCExKSkpfSxncj0hMSxocj1mdW5jdGlvbih0KXt2YXIgZSxuLHIsYSxvLGkscyxjLHU7ImNvb2tpZSI9PVB0KHQseG4pJiYoIXQuZ2V0KF9uKSYmUHQodCxkbik9PVB0KHQsaG4pfHwoZT0xZTMqTXQodCx5biksZnIodCxobixtbixlKSx0LmRhdGEuc2V0KGRuLFB0KHQsaG4pKSksIXQuZ2V0KF9uKSYmZHIodCk9PVB0KHQsUm4pfHxmcih0LFJuLEFuLDg2NGU1KSx0LmdldChxbik/KGU9UHQodCxJbikpJiYobj0wPT09KG49TWF0aC5taW4oTXQodCxNbiksMWUzKk10KHQseW4pKSk/MDpNYXRoLm1pbihuLDFlMypNdCh0LFBuKStuLShuZXcgRGF0ZSkuZ2V0VGltZSgpKSx0LmRhdGEuc2V0KE1uLG4pLHI9e30sYT1QdCh0LFBuKSxvPVB0KHQsRG4pLGk9d3IoUHQodCx3bikpLHM9YnIoUHQodCxibikpLGM9UHQodCx2biksdT1QdCh0LE9uKSxvJiYiYXcuZHMiIT1vP3ImJihyLnVhPSEwKTooZT1bIjEiLGEsRyhlKV0uam9pbigiLiIpLDA8PW4mJihyJiYoci50YT0hMCksJCgiX2dhY18iK0coYyksZSxpLHMsYyxuLHUpKSksX3IocikpOmcoNzUpLHQuZ2V0KHFuKSYmKGU9UHQodCxYbikpJiYobj0wPT09KG49TWF0aC5taW4oTXQodCx6biksMWUzKk10KHQseW4pKSk/MDpNYXRoLm1pbihuLDFlMypNdCh0LEJuKStuLShuZXcgRGF0ZSkuZ2V0VGltZSgpKSx0LmRhdGEuc2V0KHpuLG4pLHI9e30sdT1QdCh0LEJuKSxpPXdyKFB0KHQsd24pKSxzPWJyKFB0KHQsYm4pKSxjPVB0KHQsdm4pLHQ9UHQodCxPbiksZT1bIjEiLHUsRyhlKV0uam9pbigiLiIpLDA8PW4mJihyJiYoci50YT0hMCksJCgiX2dhY19nYl8iK0coYyksZSxpLHMsYyxuLHQpKSxPcihyKSkpfSxmcj1mdW5jdGlvbih0LGUsbixyKXt2YXIgYT1pcih0LGUpO2lmKGEpe249UHQodCxuKTt2YXIgbz13cihQdCh0LHduKSksaT1icihQdCh0LGJuKSkscz1QdCh0LE9uKSxjPVB0KHQsdm4pO2lmKCJhdXRvIiE9aSkkKG4sYSxvLGksYyxyLHMpJiYoZ3I9ITApO2Vsc2V7ZygzMik7Zm9yKHZhciB1PXNyKCksbD0wO2w8dS5sZW5ndGg7bCsrKWlmKGk9dVtsXSx0LmRhdGEuc2V0KGJuLGkpLGE9aXIodCxlKSwkKG4sYSxvLGksYyxyLHMpKXJldHVybiB2b2lkKGdyPSEwKTt0LmRhdGEuc2V0KGJuLCJhdXRvIil9fX0sZHI9ZnVuY3Rpb24odCl7dmFyIGU9SChQdCh0LEFuKSk7cmV0dXJuIHByKHQsZSl9LHByPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZyKGUsUHQodCxibiksUHQodCx3bikpfSx2cj1mdW5jdGlvbih0LGUsbil7aWYodCYmISh0Lmxlbmd0aDwxKSl7Zm9yKHZhciByPVtdLGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG89dFthXSxpPW8uc3BsaXQoIi4iKSxzPWkuc2hpZnQoKTsoaT0oIkdBMSI9PXN8fCIxIj09cykmJjE8aS5sZW5ndGg/KDE9PShvPWkuc2hpZnQoKS5zcGxpdCgiLSIpKS5sZW5ndGgmJihvWzFdPSIxIiksb1swXSo9MSxvWzFdKj0xLHtIOm8sczppLmpvaW4oIi4iKX0pOnUudGVzdChvKT97SDpbMCwwXSxzOm99OnZvaWQgMCkmJnIucHVzaChpKX1yZXR1cm4gMT09ci5sZW5ndGg/KGcoMTMpLHJbMF0ucyk6MCE9ci5sZW5ndGg/KGcoMTQpLDE9PShyPW1yKHIsYnIoZSkuc3BsaXQoIi4iKS5sZW5ndGgsMCkpLmxlbmd0aD9yWzBdLnM6KDE8KHI9bXIocix5cihuKSwxKSkubGVuZ3RoJiZnKDQxKSxyWzBdJiZyWzBdLnMpKTp2b2lkIGcoMTIpfWcoMTIpfSxtcj1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByLGE9W10sbz1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBzPXRbaV07cy5IW25dPT1lP2EucHVzaChzKTpudWxsPT1yfHxzLkhbbl08cj8obz1bc10scj1zLkhbbl0pOnMuSFtuXT09ciYmby5wdXNoKHMpfXJldHVybiAwPGEubGVuZ3RoP2E6b30sYnI9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQuaW5kZXhPZigiLiIpP3Quc3Vic3RyKDEpOnR9LHdyPWZ1bmN0aW9uKHQpe3JldHVybiB0PzAhPSh0PTE8dC5sZW5ndGgmJnQubGFzdEluZGV4T2YoIi8iKT09dC5sZW5ndGgtMT90LnN1YnN0cigwLHQubGVuZ3RoLTEpOnQpLmluZGV4T2YoIi8iKT8iLyIrdDp0OiIvIn0seXI9ZnVuY3Rpb24odCl7cmV0dXJuIi8iPT0odD13cih0KSk/MTp0LnNwbGl0KCIvIikubGVuZ3RofSxfcj1mdW5jdGlvbih0KXt0LnRhJiZnKDc3KSx0Lm5hJiZnKDc0KSx0LnBhJiZnKDczKSx0LnVhJiZnKDY5KX0sT3I9ZnVuY3Rpb24odCl7dC50YSYmZyg4NSksdC5uYSYmZyg4NiksdC5wYSYmZyg4Nyl9O2Z1bmN0aW9uIEVyKHQsZSxuKXsibm9uZSI9PWUmJihlPSIiKTt2YXIgcj1bXSxhPUgodCk7dD0iX191dG1hIj09dD82OjI7Zm9yKHZhciBvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBpPSgiIithW29dKS5zcGxpdCgiLiIpO2kubGVuZ3RoPj10JiZyLnB1c2goe2hhc2g6aVswXSxSOmFbb10sTzppfSl9aWYoMCE9ci5sZW5ndGgpcmV0dXJuIDEhPXIubGVuZ3RoJiYoVHIoZSxyKXx8VHIobixyKXx8VHIobnVsbCxyKSl8fHJbMF19ZnVuY3Rpb24gVHIodCxlKXt2YXIgbjtudWxsPT10P249dD0xOihuPW8odCksdD1vKE8odCwiLiIpP3Quc3Vic3RyaW5nKDEpOiIuIit0KSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXS5oYXNoPT1ufHxlW3JdLmhhc2g9PXQpcmV0dXJuIGVbcl19dmFyIHhyPW5ldyBSZWdFeHAoL15odHRwcz86XC9cLyhbXlwvOl0rKS8pLGtyPUkuZ29vZ2xlX3RhZ19kYXRhLmdsQnJpZGdlLFNyPVJlZ0V4cCgiKC4qKShbPyYjXSkoPzpfZ2E9W14mI10qKSg/OiY/KSguKikiKSxDcj1SZWdFeHAoIiguKikoWz8mI10pKD86X2dhYz1bXiYjXSopKD86Jj8pKC4qKSIpO2Z1bmN0aW9uIGpyKHQsZSl7dmFyIG49bmV3IERhdGUscj1JLm5hdmlnYXRvcixhPXIucGx1Z2luc3x8W107Zm9yKHQ9W3Qsci51c2VyQWdlbnQsbi5nZXRUaW1lem9uZU9mZnNldCgpLG4uZ2V0WWVhcigpLG4uZ2V0RGF0ZSgpLG4uZ2V0SG91cnMoKSxuLmdldE1pbnV0ZXMoKStlXSxlPTA7ZTxhLmxlbmd0aDsrK2UpdC5wdXNoKGFbZV0uZGVzY3JpcHRpb24pO3JldHVybiBvKHQuam9pbigiLiIpKX1mdW5jdGlvbiBOcih0LGUpe3ZhciBuPW5ldyBEYXRlLHI9SS5uYXZpZ2F0b3IsYT1uLmdldEhvdXJzKCkrTWF0aC5mbG9vcigobi5nZXRNaW51dGVzKCkrZSkvNjApO3JldHVybiBvKFt0LHIudXNlckFnZW50LHIubGFuZ3VhZ2V8fCIiLG4uZ2V0VGltZXpvbmVPZmZzZXQoKSxuLmdldFllYXIoKSxuLmdldERhdGUoKStNYXRoLmZsb29yKGEvMjQpLCgyNCthKSUyNCwoNjArbi5nZXRNaW51dGVzKCkrZSklNjBdLmpvaW4oIi4iKSl9ZnVuY3Rpb24gUnIodCl7Zyg0OCksdGhpcy50YXJnZXQ9dCx0aGlzLlQ9ITF9UnIucHJvdG90eXBlLmNhPWZ1bmN0aW9uKHQsZSl7aWYodCl7aWYodGhpcy50YXJnZXQuZ2V0KEdlKSlyZXR1cm4ga3IuZGVjb3JhdGUoTXIodGhpcy50YXJnZXQpLHQsZSk7aWYodC50YWdOYW1lKXtpZigiYSI9PXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiB2b2lkKHQuaHJlZiYmKHQuaHJlZj1Bcih0aGlzLHQuaHJlZixlKSkpO2lmKCJmb3JtIj09dC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIExyKHRoaXMsdCl9cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P0FyKHRoaXMsdCxlKTp2b2lkIDB9fTt2YXIgQXI9ZnVuY3Rpb24odCxlLG4peyhyPVNyLmV4ZWMoZSkpJiYzPD1yLmxlbmd0aCYmKGU9clsxXSsoclszXT9yWzJdK3JbM106IiIpKSwocj1Dci5leGVjKGUpKSYmMzw9ci5sZW5ndGgmJihlPXJbMV0rKHJbM10/clsyXStyWzNdOiIiKSksdD10LnRhcmdldC5nZXQoImxpbmtlclBhcmFtIik7dmFyIHI9ZS5pbmRleE9mKCI/IiksYT1lLmluZGV4T2YoIiMiKTtyZXR1cm4oZT0oZT1uP2UrKC0xPT1hPyIjIjoiJiIpK3Q6LTE9PWE/ZSsoLTE9PT1yPyI/IjoiJiIpK3Q6ZS5zdWJzdHJpbmcoMCxhKSsoLTE9PT1yfHxhPHI/Ij8iOiImIikrdCtlLnN1YnN0cmluZyhhKSkucmVwbGFjZSgvJitfZ2E9LywiJl9nYT0iKSkucmVwbGFjZShSZWdFeHAoIiYrX2dhYz0iKSwiJl9nYWM9Iil9LExyPWZ1bmN0aW9uKHQsZSl7aWYoZSYmZS5hY3Rpb24paWYoImdldCI9PWUubWV0aG9kLnRvTG93ZXJDYXNlKCkpe3Q9dC50YXJnZXQuZ2V0KCJsaW5rZXJQYXJhbSIpLnNwbGl0KCImIik7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe2Zvcih2YXIgcj0oYT10W25dLnNwbGl0KCI9IikpWzFdLGE9YVswXSxvPWUuY2hpbGROb2Rlc3x8W10saT0hMSxzPTA7czxvLmxlbmd0aDtzKyspaWYob1tzXS5uYW1lPT1hKXtvW3NdLnNldEF0dHJpYnV0ZSgidmFsdWUiLHIpLGk9ITA7YnJlYWt9aXx8KChvPVAuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksby5zZXRBdHRyaWJ1dGUoIm5hbWUiLGEpLG8uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsciksZS5hcHBlbmRDaGlsZChvKSl9fWVsc2UicG9zdCI9PWUubWV0aG9kLnRvTG93ZXJDYXNlKCkmJihlLmFjdGlvbj1Bcih0LGUuYWN0aW9uKSl9O2Z1bmN0aW9uIElyKHQsZSl7aWYoZSE9UC5sb2NhdGlvbi5ob3N0bmFtZSlmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25daW5zdGFuY2VvZiBSZWdFeHApe2lmKHRbbl0udGVzdChlKSlyZXR1cm4gMX1lbHNlIGlmKDA8PWUuaW5kZXhPZih0W25dKSlyZXR1cm4gMX1mdW5jdGlvbiBQcih0LGUpe3JldHVybiBlIT1qcih0LDApJiZlIT1qcih0LC0xKSYmZSE9anIodCwtMikmJmUhPU5yKHQsMCkmJmUhPU5yKHQsLTEpJiZlIT1Ocih0LC0yKX1mdW5jdGlvbiBNcih0KXt2YXIgZT1Ecih0KSxuPXt9O3JldHVybiBuLl9nYT10LmdldChobiksbi5fZ2lkPXQuZ2V0KFJuKXx8dm9pZCAwLG4uX2dhYz1lP1tlLnFhLGUudGltZXN0YW1wXS5qb2luKCIuIik6dm9pZCAwLGU9dC5nZXQoSG4pLHQ9Y3IodCksbi5fZnBsYz1lJiYiMCIhPT1lP2U6dCxufWZ1bmN0aW9uIERyKHQpe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG51bGw9PXR8fCIiPT09dD8wOk51bWJlcih0KX12YXIgbj10LmdldChJbik7aWYobiYmdC5nZXQocW4pKXt2YXIgcj1lKHQuZ2V0KFBuKSk7aWYoISgxZTMqcitlKHQuZ2V0KE1uKSk8PShuZXcgRGF0ZSkuZ2V0VGltZSgpKSlyZXR1cm57dGltZXN0YW1wOnIscWE6bn07Zyg3Nil9fVJyLnByb3RvdHlwZS5TPWZ1bmN0aW9uKHIsYSx0KXtmdW5jdGlvbiBlKHQpe3RyeXt0PXR8fEkuZXZlbnQ7dDp7dmFyIGU9dC50YXJnZXR8fHQuc3JjRWxlbWVudDtmb3IodD0xMDA7ZSYmMDx0Oyl7aWYoZS5ocmVmJiZlLm5vZGVOYW1lLm1hdGNoKC9eYSg/OnJlYSk/JC9pKSl7dmFyIG49ZTticmVhayB0fWU9ZS5wYXJlbnROb2RlLHQtLX1uPXt9fSgiaHR0cDoiPT1uLnByb3RvY29sfHwiaHR0cHM6Ij09bi5wcm90b2NvbCkmJklyKHIsbi5ob3N0bmFtZXx8IiIpJiZuLmhyZWYmJihuLmhyZWY9QXIobyxuLmhyZWYsYSkpfWNhdGNoKHQpe2coMjYpfX12YXIgbz10aGlzO3RoaXMudGFyZ2V0LmdldChHZSk/a3IuYXV0byhmdW5jdGlvbigpe3JldHVybiBNcihvLnRhcmdldCl9LHIsYT8iZnJhZ21lbnQiOiIiLHQpOih0aGlzLlR8fCh0aGlzLlQ9ITAscChQLCJtb3VzZWRvd24iLGUsITEpLHAoUCwia2V5dXAiLGUsITEpKSx0JiZwKFAsInN1Ym1pdCIsZnVuY3Rpb24odCl7dmFyIGU7KHQ9KHQ9dHx8SS5ldmVudCkudGFyZ2V0fHx0LnNyY0VsZW1lbnQpJiZ0LmFjdGlvbiYmKChlPXQuYWN0aW9uLm1hdGNoKHhyKSkmJklyKHIsZVsxXSkmJkxyKG8sdCkpfSkpfSxSci5wcm90b3R5cGUuJD1mdW5jdGlvbih0KXt2YXIgZSxuOyF0fHx2b2lkIDAhPT0obj0oZT10aGlzKS50YXJnZXQuZ2V0KCRuKSkmJmtyLnBhc3N0aHJvdWdoKGZ1bmN0aW9uKCl7aWYobigiYW5hbHl0aWNzX3N0b3JhZ2UiKSlyZXR1cm57fTt2YXIgdD17fTtyZXR1cm4gdC5fZ2E9ZS50YXJnZXQuZ2V0KGhuKSx0Ll91cD0iMSIsdH0sMSwhMCl9O2Z1bmN0aW9uIHFyKHQsZSxuLHIpe249bnx8e307dmFyIGE9MSxvPXtpZDplLHR5cGU6YT1Wci50ZXN0KGUpPzI6YSxCOm4uZGF0YUxheWVyfHwiZGF0YUxheWVyIixHOiExfSxpPXZvaWQgMDtyZXR1cm4gdC5nZXQoIiZndG0iKT09ZSYmKG8uRz0hMCksMT09PWE/KG8uaWE9ISF0LmdldCgiYW5vbnltaXplSXAiKSxvLnN5bmM9ciwidDAiIT0oZT1TdHJpbmcodC5nZXQoIm5hbWUiKSkpJiYoby50YXJnZXQ9ZSksVShTdHJpbmcodC5nZXQoInRyYWNraW5nSWQiKSkpfHwoby5jbGllbnRJZD1TdHJpbmcodC5nZXQoaG4pKSxvLmthPU51bWJlcih0LmdldChmbikpLG49bi5wYWxpbmRyb21lP1hyOkZyLG49KG49UC5jb29raWUucmVwbGFjZSgvXnwoOyArKS9nLCI7IikubWF0Y2gobikpP24uc29ydCgpLmpvaW4oIiIpLnN1YnN0cmluZygxKTp2b2lkIDAsby5sYT1uLG8ucWE9UihQdCh0LGVlKSwiZ2NsaWQiKSkpOjI9PT1hJiYoby5jb250ZXh0PSJjIixpPXthbGxvd19nb29nbGVfc2lnbmFsczp0LmdldChRbiksYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHM6dC5nZXQodHIpfSksS3IobyxpKSx6cihvKX1mdW5jdGlvbiBVcih0LGUpe3ZhciBuLHI7KHQ9dC5tb2RlbCkuZ2V0KCJkY0xvYWRlZCIpfHwoKG49bmV3IGkoaCh0KSkpLnNldCgyOSksdC5zZXQoRmUsbi5DKSwoZT1lfHx7fSlbbW5dJiYocj1HKGVbbW5dKSksZnVuY3Rpb24obix0KXt2YXIgcj10LmdldChlbik7dC5zZXQoZW4sZnVuY3Rpb24odCl7WXIobix0LFhlKSxZcihuLHQsQmUpO3ZhciBlPXIodCk7cmV0dXJuIEpyKG4sdCksZX0pO3ZhciBhPXQuZ2V0KG5uKTt0LnNldChubixmdW5jdGlvbih0KXt2YXIgZSxuPWEodCk7cmV0dXJuIFFyKHQpJiYoZyg4MCksZT17VTplYSh0LDEpLGdvb2dsZTplYSh0LDIpLGNvdW50OjB9LGZ0KCJodHRwczovL3N0YXRzLmcuZG91YmxlY2xpY2submV0L2ovY29sbGVjdCIsZS5VLGUpLHQuc2V0KFhlLCIiLCEwKSksbn0pfShlPW5ldyBacih0LHIpLHQpLHQuc2V0KCJkY0xvYWRlZCIsITApKX1mdW5jdGlvbiBIcih0KXt2YXIgZSxuO3QuZ2V0KCJkY0xvYWRlZCIpfHwiY29va2llIiE9dC5nZXQoeG4pfHwoZT1uZXcgWnIodCksWXIoZSx0LFhlKSxZcihlLHQsQmUpLEpyKGUsdCksZT1Rcih0KSxuPXRhKHQpLGUmJnQuc2V0KFduLDEsITApLG4mJnQuc2V0KFpuLDEsITApLChlfHxuKSYmKHQuc2V0KEpuLCJkIiwhMCksZyg3OSksdC5zZXQoWW4se1U6ZWEodCwxKSxnb29nbGU6ZWEodCwyKSxWOm5hKHQpLGNvdW50OjB9LCEwKSkpfWZ1bmN0aW9uICRyKHQpe2Z1bmN0aW9uIG4odCxlKXtvLm1vZGVsLmRhdGEuc2V0KHQsZSl9ZnVuY3Rpb24gZSh0LGUpe24odCxlKSxvLmZpbHRlcnMuYWRkKHQpfXZhciByLGEsbz10aGlzO3RoaXMubW9kZWw9bmV3IEl0LHRoaXMuZmlsdGVycz1uZXcgUSxuKGduLHRbZ25dKSxuKHZuLChyPXRbdm5dKT9yLnJlcGxhY2UoL15bXHNceGEwXSt8W1xzXHhhMF0rJC9nLCIiKToiIiksbihtbix0W21uXSksbihibix0W2JuXXx8QSgpKSxuKHduLHRbd25dKSxuKHluLHRbeW5dKSxuKF9uLHRbX25dKSxuKE9uLHRbT25dKSxuKEVuLHRbRW5dKSxuKFRuLHRbVG5dKSxuKGtuLHRba25dKSxuKFNuLHRbU25dKSxuKENuLHRbQ25dKSxuKGpuLHRbam5dKSxuKE5uLHRbTm5dKSxuKHhuLHRbeG5dKSxuKHBuLHRbcG5dKSxuKGZuLHRbZm5dKSxuKExuLHRbTG5dKSxuKHFuLHRbcW5dKSxuKEdlLHRbR2VdKSxuKFVuLHRbVW5dKSxuKEduLHRbR25dKSxuKCRuLHRbJG5dKSxuKEJ0LDEpLG4oenQsImo5NiIpLGUobG4sTnQpLGUoemUsT3QpLGUoY24sVCksZShLZSxTdCksZShXZSxFdCksZShaZSxqdCksZShZZSxhciksZShKZSxvciksZShRZSxfdCksZSh0bixMdCksZShybixrdCksZShhbixDdCksZShzbixIciksZSh1bixuciksZShlbixUdCksZShubix4dCksZShvbiwoYT10aGlzLGZ1bmN0aW9uKHQpe3ZhciBlLG4scjsicGFnZXZpZXciIT10LmdldChXdCl8fGEuSXx8KGEuST0hMCxlPXVyKHQpLG49MDxSKFB0KHQsZWUpLCJnY2xpZCIpLmxlbmd0aCxyPTA8UihQdCh0LGVlKSwid2JyYWlkIikubGVuZ3RoLChlfHxufHxyKSYmbHIoZnVuY3Rpb24odCl7ZSYmYS5zZW5kKCJ0aW1pbmciLHQpLChufHxyKSYmYS5zZW5kKCJhZHRpbWluZyIsdCl9KSl9KSksY2EodGhpcy5tb2RlbCksc2EodGhpcy5tb2RlbCx0W2huXSksdGhpcy5tb2RlbC5zZXQoS3QsKHQ9SS5nYUdsb2JhbD1JLmdhR2xvYmFsfHx7fSkuaGlkPXQuaGlkfHxBdCgpKX12YXIgR3I9L14oR1RNfE9QVCktW0EtWjAtOV0rJC8sVnI9L15HLVtBLVowLTldKyQvLEZyPS87X2dhZXhwPVteO10qL2csWHI9LzsoKF9fdXRtYT0pfChbXjs9XSs9R0FYP1xkK1wuKSlbXjtdKi9nLEJyPS9eaHR0cHM/OlwvXC9bXHdcLS5dK1wuZ29vZ2xlLmNvbSg6XGQrKT9cL29wdGltaXplXC9vcHQtbGF1bmNoXC5odG1sXD8uKiQvLHpyPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtlJiYobis9IiYiK3QrIj0iK3goZSkpfXZhciBuPVoodC50eXBlKSt4KHQuaWQpO3JldHVybiJkYXRhTGF5ZXIiIT10LkImJmUoImwiLHQuQiksZSgiY3giLHQuY29udGV4dCksZSgidCIsdC50YXJnZXQpLGUoImNpZCIsdC5jbGllbnRJZCksZSgiY2lkdCIsdC5rYSksZSgiZ2FjIix0LmxhKSxlKCJhaXAiLHQuaWEpLHQuc3luYyYmZSgibSIsInN5bmMiKSxlKCJjeWNsZSIsdC5HKSx0LnFhJiZlKCJnY2xpZCIsdC5xYSksQnIudGVzdChQLnJlZmVycmVyKSYmZSgiY2IiLFN0cmluZyhBdCgpKSksbn0sS3I9ZnVuY3Rpb24ocix0KXt2YXIgZT0obmV3IERhdGUpLmdldFRpbWUoKTtJW3IuQl09SVtyLkJdfHxbXSxlPXsiZ3RtLnN0YXJ0IjplfSxyLnN5bmN8fChlLmV2ZW50PSJndG0uanMiKSxJW3IuQl0ucHVzaChlKSwyPT09ci50eXBlJiZmdW5jdGlvbih0LGUsbil7SVtyLkJdLnB1c2goYXJndW1lbnRzKX0oImNvbmZpZyIsci5pZCx0KX0sV3I9e30sWnI9ZnVuY3Rpb24odCxlKXtlPWV8fCgoZT1QdCh0LGduKSkmJiJ0MCIhPWU/cmEudGVzdChlKT8iX2dhdF8iK0coUHQodCx2bikpOiJfZ2F0XyIrRyhlKToiX2dhdCIpLHRoaXMuWT1lfSxZcj1mdW5jdGlvbih0LGUsbil7ITE9PT1lLmdldChRbil8fGUuZ2V0KG4pfHwoIjEiPT1IKHQuWSlbMF0/ZS5zZXQobiwiIiwhMCk6ZS5zZXQobiwiIitBdCgpLCEwKSl9LEpyPWZ1bmN0aW9uKHQsZSl7UXIoZSkmJiQodC5ZLCIxIixQdChlLHduKSxQdChlLGJuKSxQdChlLHZuKSw2ZTQsUHQoZSxPbikpfSxRcj1mdW5jdGlvbih0KXtyZXR1cm4hIXQuZ2V0KFhlKSYmITEhPT10LmdldChRbil9LHRhPWZ1bmN0aW9uKHQpe3JldHVybiFXcltQdCh0LHZuKV0mJnZvaWQgMD09PXQuZ2V0KCImZ3RtIikmJnZvaWQgMD09PXQuZ2V0KFF0KSYmdm9pZCAwPT09dC5nZXQoS24pJiZ2b2lkIDA9PT10LmdldChVbil9LGVhPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbih0KXtYdCh0KS5GJiZyLnNldChYdCh0KS5GLGUuZ2V0KHQpKX12YXIgcj1uZXcgYjtuKEJ0KSxuKHp0KSxuKHZuKSxuKGhuKSxuKFhlKSwxPT10JiYobihwbiksbihCZSksbihSbikpLCExPT09ZS5nZXQodHIpJiZyLnNldCgibnBhIiwiMSIpLHIuc2V0KFh0KFZlKS5GLHcoZSkpO3ZhciBhPSIiO3JldHVybiByLm1hcChmdW5jdGlvbih0LGUpe2ErPXgodCkrIj0iLGErPXgoIiIrZSkrIiYifSksYSs9Ino9IitBdCgpLDE9PXQ/YT0idD1kYyZhaXA9MSZfcj0zJiIrYToyPT10JiYoYT0idD1zciZhaXA9MSZfcj00JnNsZl9yZD0xJiIrYSksYX0sbmE9ZnVuY3Rpb24obil7aWYodGEobikpcmV0dXJuIFdyW1B0KG4sdm4pXT0hMCxmdW5jdGlvbih0KXt2YXIgZTt0JiYhV3JbdF0mJihlPXFyKG4sdCksaihlKSxXclt0XT0hMCl9fSxyYT0vXmd0bVxkKyQvLGFhPS9eKFVBfFlUfE1PfEdQKS0oXGQrKS0oXGQrKSQvOyRyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0KHQpfSwkci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbC5zZXQodCxlKX0sJHIucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odCl7dmFyIGUsbjthcmd1bWVudHMubGVuZ3RoPDF8fChuPSJzdHJpbmciPT10eXBlb2YgdD8oZT10LFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTooZT10JiZ0W1d0XSxhcmd1bWVudHMpLGUmJigobj1tKHVhW2VdfHxbXSxuKSlbV3RdPWUsdGhpcy5tb2RlbC5zZXQobix2b2lkIDAsITApLHRoaXMuZmlsdGVycy5EKHRoaXMubW9kZWwpLHRoaXMubW9kZWwuZGF0YS5tPXt9KSl9LCRyLnByb3RvdHlwZS5tYT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7bWEodCxuLGUpfHwod2EodCxmdW5jdGlvbigpe21hKHQsbixlKX0pLGJhKFN0cmluZyhuLmdldChnbikpLHQsdm9pZCAwLGUsITApKX07ZnVuY3Rpb24gb2EodCl7cmV0dXJuInByZXJlbmRlciIhPVAudmlzaWJpbGl0eVN0YXRlJiYodCgpLCEwKX1mdW5jdGlvbiBpYSh0KXtpZihmKHRbMF0pKXRoaXMudT10WzBdO2Vsc2V7dmFyIGU9bGEuZXhlYyh0WzBdKTtpZihudWxsIT1lJiY0PT1lLmxlbmd0aCYmKHRoaXMuZGE9ZVsxXXx8InQwIix0aGlzLks9ZVsyXXx8IiIsdGhpcy5tZXRob2ROYW1lPWVbM10sdGhpcy5hYT1bXS5zbGljZS5jYWxsKHQsMSksdGhpcy5LfHwodGhpcy5BPSJjcmVhdGUiPT10aGlzLm1ldGhvZE5hbWUsdGhpcy5pPSJyZXF1aXJlIj09dGhpcy5tZXRob2ROYW1lLHRoaXMuZz0icHJvdmlkZSI9PXRoaXMubWV0aG9kTmFtZSx0aGlzLmJhPSJyZW1vdmUiPT10aGlzLm1ldGhvZE5hbWUpLHRoaXMuaSYmKDM8PXRoaXMuYWEubGVuZ3RoPyh0aGlzLlg9dGhpcy5hYVsxXSx0aGlzLlc9dGhpcy5hYVsyXSk6dGhpcy5hYVsxXSYmKF8odGhpcy5hYVsxXSk/dGhpcy5YPXRoaXMuYWFbMV06dGhpcy5XPXRoaXMuYWFbMV0pKSksZT10WzFdLHQ9dFsyXSwhdGhpcy5tZXRob2ROYW1lKXRocm93ImFib3J0IjtpZih0aGlzLmkmJighXyhlKXx8IiI9PWUpKXRocm93ImFib3J0IjtpZih0aGlzLmcmJighXyhlKXx8IiI9PWV8fCFmKHQpKSl0aHJvdyJhYm9ydCI7aWYoZ2EodGhpcy5kYSl8fGdhKHRoaXMuSykpdGhyb3ciYWJvcnQiO2lmKHRoaXMuZyYmInQwIiE9dGhpcy5kYSl0aHJvdyJhYm9ydCJ9fXZhciBzYT1mdW5jdGlvbih0LGUpe3ZhciBuLHI9UHQodCxtbik7aWYodC5kYXRhLnNldChBbiwiX2dhIj09cj8iX2dpZCI6cisiX2dpZCIpLCJjb29raWUiPT1QdCh0LHhuKSYmKGdyPSExLHI9SChQdCh0LG1uKSksKHI9cHIodCxyKSl8fChyPVB0KHQsYm4pLHI9bnVsbCE9KHI9RXIoIl9fdXRtYSIsbj1QdCh0LEVuKXx8QSgpLHIpKT8oZygxMCksci5PWzFdKyIuIityLk9bMl0pOnZvaWQgMCksciYmKGdyPSEwKSwocj0obj0obj1yJiYhdC5nZXQoX24pKT8yPT0obj1yLnNwbGl0KCIuIikpLmxlbmd0aCYmKCEhKG49TnVtYmVyKG5bMV0pKSYmbisobz1NdCh0LHluKSk8KG5ldyBEYXRlKS5nZXRUaW1lKCkvMWUzKTpuKT92b2lkIDA6cikmJih0LmRhdGEuc2V0KGRuLHIpLHQuZGF0YS5zZXQoaG4sciksKHI9ZHIodCkpJiZ0LmRhdGEuc2V0KFJuLHIpKSx0LmdldChxbikmJihyPXQuZ2V0KEluKSxuPXQuZ2V0KERuKSwhcnx8biYmImF3LmRzIiE9bikmJihyPXt9LG49KFA/QihyKTp7fSlbUHQodCx2bildLF9yKHIpLG4mJjAhPW4ubGVuZ3RoJiYocj1uWzBdLHQuZGF0YS5zZXQoUG4sci50aW1lc3RhbXAvMWUzKSx0LmRhdGEuc2V0KEluLHIucWEpKSksdC5nZXQocW4pJiYocj10LmdldChYbiksbj17fSxvPShQP0IobiwiX2dhY19nYiIsITApOnt9KVtQdCh0LHZuKV0sT3IobiksbyYmMCE9by5sZW5ndGgmJihvPShuPW9bMF0pLnFhLHImJnIhPT1vfHwobi5sYWJlbHMmJm4ubGFiZWxzLmxlbmd0aCYmKG8rPSIuIituLmxhYmVscy5qb2luKCIuIikpLHQuZGF0YS5zZXQoQm4sbi50aW1lc3RhbXAvMWUzKSx0LmRhdGEuc2V0KFhuLG8pKSkpKSx0LmdldChfbikpe3I9TigiX2dhIiwhIXQuZ2V0KFNuKSk7dmFyIGE9TigiX2dsIiwhIXQuZ2V0KFNuKSksbz0obj1rci5nZXQodC5nZXQoU24pKSkuX2dhO2EmJjA8YS5pbmRleE9mKCJfZ2EqIikmJiFvJiZnKDMwKSxhPSEoZXx8IXQuZ2V0KEduKSkmJih2b2lkIDAhPT0oYT10LmdldCgkbikpJiYhYSgiYW5hbHl0aWNzX3N0b3JhZ2UiKSYmKGcoODQpLHQuZGF0YS5zZXQoVm4sMSksISEoYT0oYT1uLl91cCk/ISEoYT14ci5leGVjKFAucmVmZXJyZXIpKSYmKGE9YVsxXSwoaT1QLmxvY2F0aW9uLmhvc3RuYW1lKT09PWF8fDA8PWkuaW5kZXhPZigiLiIrYSl8fDA8PWEuaW5kZXhPZigiLiIraSkpOmEpKSk7dmFyIGk9bi5nY2xpZCxzPW4uX2dhYztpZihyfHxvfHxpfHxzKWlmKHImJm8mJmcoMzYpLHQuZ2V0KGtuKXx8Vyh0LmdldChMbikpfHxhKXtpZihvJiYoZygzOCksdC5kYXRhLnNldChobixvKSxuLl9naWQmJihnKDUxKSx0LmRhdGEuc2V0KFJuLG4uX2dpZCkpKSxpPyhnKDgyKSx0LmRhdGEuc2V0KEluLGkpLG4uZ2Nsc3JjJiZ0LmRhdGEuc2V0KERuLG4uZ2Nsc3JjKSk6cyYmKG89cy5zcGxpdCgiLiIpKSYmMj09PW8ubGVuZ3RoJiYoZygzNyksdC5kYXRhLnNldChJbixvWzBdKSx0LmRhdGEuc2V0KFBuLG9bMV0pKSwobj1uLl9mcGxjKSYmUHQodCxVbikmJihnKDgzKSx0LmRhdGEuc2V0KEhuLG4pKSxyKXQ6aWYobj1yLmluZGV4T2YoIi4iKSwtMT09bilnKDIyKTtlbHNle2lmKG89ci5zdWJzdHJpbmcoMCxuKSxuPShhPXIuc3Vic3RyaW5nKG4rMSkpLmluZGV4T2YoIi4iKSxyPWEuc3Vic3RyaW5nKDAsbiksYT1hLnN1YnN0cmluZyhuKzEpLCIxIj09byl7aWYoUHIobj1hLHIpKXtnKDIzKTticmVhayB0fX1lbHNle2lmKCIyIiE9byl7ZygyMik7YnJlYWsgdH1pZihvPSIiLG49MDwobj1hLmluZGV4T2YoIi0iKSk/KG89YS5zdWJzdHJpbmcoMCxuKSxhLnN1YnN0cmluZyhuKzEpKTphLnN1YnN0cmluZygxKSxQcihvK24scikpe2coNTMpO2JyZWFrIHR9byYmKGcoMiksdC5kYXRhLnNldChSbixvKSl9ZygxMSksdC5kYXRhLnNldChobixuKSwocj1OKCJfZ2FjIiwhIXQuZ2V0KFNuKSkpJiYoIjEiIT0ocj1yLnNwbGl0KCIuIikpWzBdfHw0IT1yLmxlbmd0aD9nKDcyKTpQcihyWzNdLHJbMV0pP2coNzEpOih0LmRhdGEuc2V0KEluLHJbM10pLHQuZGF0YS5zZXQoUG4sclsyXSksZyg3MCkpKX19ZWxzZSBnKDIxKX1lJiYoZyg5KSx0LmRhdGEuc2V0KGhuLHgoZSkpKSx0LmdldChobil8fCgoZT0oIShlPUkuZ2FHbG9iYWwpfHwhZS5mcm9tX2Nvb2tpZXx8ImNvb2tpZSI9PT1QdCh0LHhuKSkmJihlPWUmJmUudmlkKSYmLTEhPT1lLnNlYXJjaChjKT9lOnZvaWQgMCk/KGcoMTcpLHQuZGF0YS5zZXQoaG4sZSkpOihnKDgpLHQuZGF0YS5zZXQoaG4sZCgpKSkpLHQuZ2V0KFJuKXx8KGcoMyksdC5kYXRhLnNldChSbixkKCkpKSxocih0KSxlPUkuZ2FHbG9iYWw9SS5nYUdsb2JhbHx8e30sdD0ocj1QdCh0LGhuKSk9PT1QdCh0LGRuKSwobnVsbD09ZS52aWR8fHQmJiFlLmZyb21fY29va2llKSYmKGUudmlkPXIsZS5mcm9tX2Nvb2tpZT10KX0sY2E9ZnVuY3Rpb24odCl7dmFyIGU9SS5uYXZpZ2F0b3Isbj1JLnNjcmVlbixyPVAubG9jYXRpb24sYT10LnNldDt0Ont2YXIgbz0hIXQuZ2V0KE5uKSxpPSEhdC5nZXQoTG4pLHM9UC5yZWZlcnJlcjtpZigvXihodHRwcz98YW5kcm9pZC1hcHApOlwvXC8vaS50ZXN0KHMpKXtpZihvKWJyZWFrIHQ7aWYobz0iLy8iK1AubG9jYXRpb24uaG9zdG5hbWUsIXYocyxvKSl7aWYoaSYmKGk9by5yZXBsYWNlKC9cLi9nLCItIikrIi5jZG4uYW1wcHJvamVjdC5vcmciLHYocyxpKSkpe3M9dm9pZCAwO2JyZWFrIHR9YnJlYWsgdH19cz12b2lkIDB9aWYoYS5jYWxsKHQsbmUscyksciYmKCIvIiE9KGE9ci5wYXRobmFtZXx8IiIpLmNoYXJBdCgwKSYmKGcoMzEpLGE9Ii8iK2EpLHQuc2V0KGVlLHIucHJvdG9jb2wrIi8vIityLmhvc3RuYW1lK2Erci5zZWFyY2gpKSxuJiZ0LnNldChzZSxuLndpZHRoKyJ4IituLmhlaWdodCksbiYmdC5zZXQoaWUsbi5jb2xvckRlcHRoKyItYml0Iiksbj1QLmRvY3VtZW50RWxlbWVudCxzPShhPVAuYm9keSkmJmEuY2xpZW50V2lkdGgmJmEuY2xpZW50SGVpZ2h0LGk9W10sbiYmbi5jbGllbnRXaWR0aCYmbi5jbGllbnRIZWlnaHQmJigiQ1NTMUNvbXBhdCI9PT1QLmNvbXBhdE1vZGV8fCFzKT9pPVtuLmNsaWVudFdpZHRoLG4uY2xpZW50SGVpZ2h0XTpzJiYoaT1bYS5jbGllbnRXaWR0aCxhLmNsaWVudEhlaWdodF0pLG49aVswXTw9MHx8aVsxXTw9MD8iIjppLmpvaW4oIngiKSx0LnNldChjZSxuKSxuPXQuc2V0LChhPShhPUkubmF2aWdhdG9yKT9hLnBsdWdpbnM6bnVsbCkmJmEubGVuZ3RoKWZvcihzPTA7czxhLmxlbmd0aCYmIXU7cysrKS0xPChpPWFbc10pLm5hbWUuaW5kZXhPZigiU2hvY2t3YXZlIEZsYXNoIikmJih1PWkuZGVzY3JpcHRpb24pO2lmKCF1KXRyeXt2YXIgYz1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guNyIpLHU9Yy5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKX1jYXRjaCh0KXt9aWYoIXUpdHJ5e2M9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLjYiKSx1PSJXSU4gNiwwLDIxLDAiLGMuQWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyIsdT1jLkdldFZhcmlhYmxlKCIkdmVyc2lvbiIpfWNhdGNoKHQpe31pZighdSl0cnl7dT0oYz1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSkuR2V0VmFyaWFibGUoIiR2ZXJzaW9uIil9Y2F0Y2godCl7fWlmKHUmJihjPXUubWF0Y2goL1tcZF0rL2cpKSYmMzw9Yy5sZW5ndGgmJih1PWNbMF0rIi4iK2NbMV0rIiByIitjWzJdKSxuLmNhbGwodCxsZSx1fHx2b2lkIDApLHQuc2V0KG9lLFAuY2hhcmFjdGVyU2V0fHxQLmNoYXJzZXQpLHQuc2V0KHVlLGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmphdmFFbmFibGVkJiZlLmphdmFFbmFibGVkKCl8fCExKSx0LnNldChhZSwoZSYmKGUubGFuZ3VhZ2V8fGUuYnJvd3Nlckxhbmd1YWdlKXx8IiIpLnRvTG93ZXJDYXNlKCkpLHQuZGF0YS5zZXQoSW4sTigiZ2NsaWQiLCEwKSksdC5kYXRhLnNldChEbixOKCJnY2xzcmMiLCEwKSksdC5kYXRhLnNldChQbixNYXRoLnJvdW5kKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMykpLHQuZ2V0KEluKXx8KHQuZGF0YS5zZXQoWG4sTigid2JyYWlkIiwhMCkpLHQuZGF0YS5zZXQoQm4sTWF0aC5yb3VuZCgobmV3IERhdGUpLmdldFRpbWUoKS8xZTMpKSksciYmdC5nZXQoU24pJiYoZT1QLmxvY2F0aW9uLmhhc2gpKXtmb3IoZT1lLnNwbGl0KC9bPyYjXSsvKSxyPVtdLHU9MDt1PGUubGVuZ3RoOysrdSkoTyhlW3VdLCJ1dG1faWQiKXx8TyhlW3VdLCJ1dG1fY2FtcGFpZ24iKXx8TyhlW3VdLCJ1dG1fc291cmNlIil8fE8oZVt1XSwidXRtX21lZGl1bSIpfHxPKGVbdV0sInV0bV90ZXJtIil8fE8oZVt1XSwidXRtX2NvbnRlbnQiKXx8TyhlW3VdLCJnY2xpZCIpfHxPKGVbdV0sImRjbGlkIil8fE8oZVt1XSwiZ2Nsc3JjIil8fE8oZVt1XSwid2JyYWlkIikpJiZyLnB1c2goZVt1XSk7MDxyLmxlbmd0aCYmKGU9IiMiK3Iuam9pbigiJiIpLHQuc2V0KGVlLHQuZ2V0KGVlKStlKSl9fSx1YT17cGFnZXZpZXc6W3JlXSxldmVudDpbZ2UsaGUsZmUsZGVdLHNvY2lhbDpbcGUsdmUsbWVdLHRpbWluZzpbdCxOZSxBZSxSZV19LE5lPWZ1bmN0aW9uKG4pe3ZhciByLGE7b2Eobil8fChnKDE2KSxyPSExLHAoUCwidmlzaWJpbGl0eWNoYW5nZSIsYT1mdW5jdGlvbigpe3ZhciB0LGU7IXImJm9hKG4pJiYocj0hMCx0PWEsKGU9UCkucmVtb3ZlRXZlbnRMaXN0ZW5lcj9lLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQsITEpOmUuZGV0YWNoRXZlbnQmJmUuZGV0YWNoRXZlbnQoIm9udmlzaWJpbGl0eWNoYW5nZSIsdCkpfSkpfSxsYT0vXig/OihcdyspXC4pPyg/OihcdyspOik/KFx3KykkLztmdW5jdGlvbiBnYSh0KXtyZXR1cm4gMDw9dC5pbmRleE9mKCIuIil8fDA8PXQuaW5kZXhPZigiOiIpfWZ1bmN0aW9uIGhhKHQsZSl7ZmEuc2V0KHQsZSksZT1wYS5nZXQodCl8fFtdO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWVbbl0oKTtwYS5zZXQodCxbXSl9dmFyIGZhPW5ldyBiLGRhPW5ldyBiLHBhPW5ldyBiLHZhPXtlYzo0NSxlY29tbWVyY2U6NDYsbGlua2lkOjQ3fSxtYT1mdW5jdGlvbih0LGUsbil7ZT09a2F8fGUuZ2V0KGduKTt2YXIgcj1mYS5nZXQodCk7cmV0dXJuISFmKHIpJiYoZS5wbHVnaW5zXz1lLnBsdWdpbnNffHxuZXcgYixlLnBsdWdpbnNfLmdldCh0KXx8ZS5wbHVnaW5zXy5zZXQodCxuZXcgcihlLG58fHt9KSksITApfSxiYT1mdW5jdGlvbih0LGUsbixyLGEpe2lmKCFmKGZhLmdldChlKSkmJiFkYS5nZXQoZSkpe3ZhLmhhc093blByb3BlcnR5KGUpJiZnKHZhW2VdKTt2YXIgbyxpPXZvaWQgMDtpZihHci50ZXN0KGUpKXtpZihnKDUyKSwhKHQ9a2Euaih0KSkpcmV0dXJuITA7bj1xcih0Lm1vZGVsLGUscixhKSxpPWZ1bmN0aW9uKCl7eGEuRChbInByb3ZpZGUiLGUsZnVuY3Rpb24oKXt9XSk7dmFyIHQ9SVtyJiZyLmRhdGFMYXllcnx8ImRhdGFMYXllciJdO3QmJnQuaGlkZSYmZih0LmhpZGUuZW5kKSYmdC5oaWRlW2VdJiYodC5oaWRlLmVuZCgpLHQuaGlkZS5lbmQ9dm9pZCAwKX19IW4mJnZhLmhhc093blByb3BlcnR5KGUpPyhnKDM5KSxuPWUrIi5qcyIpOmcoNDMpLG4mJihyJiYobz1yW1VuXSksXyhvKXx8KG89dm9pZCAwKSx0PUVhKFRhKG4sbykpLCFvfHxfYSh0LnByb3RvY29sKSYmeWEodCl8fCh0PUVhKFRhKG4pKSksX2EodC5wcm90b2NvbCkmJnlhKHQpJiYoaih0LnVybCx2b2lkIDAsYSx2b2lkIDAsaSksZGEuc2V0KGUsITApKSl9fSx3YT1mdW5jdGlvbih0LGUpe3ZhciBuPXBhLmdldCh0KXx8W107bi5wdXNoKGUpLHBhLnNldCh0LG4pfSx5YT1mdW5jdGlvbih0KXt2YXIgZT1FYShQLmxvY2F0aW9uLmhyZWYpO3JldHVybiEoIU8odC51cmwsWigxKSkmJiFPKHQudXJsLFooMikpKXx8ISh0LnF1ZXJ5fHwwPD10LnVybC5pbmRleE9mKCI/Iil8fDA8PXQucGF0aC5pbmRleE9mKCI6Ly8iKSkmJighISh0Lmhvc3Q9PWUuaG9zdCYmdC5wb3J0PT1lLnBvcnR8fG4mJigoZT1QLmNyZWF0ZUVsZW1lbnQoImEiKSkuaHJlZj1uLGU9T2EoZSksdC5ob3N0PT09ZVswXSYmdC5wb3J0PT09ZVsxXSkpfHwoZT0iaHR0cDoiPT10LnByb3RvY29sPzgwOjQ0MywhKCJ3d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20iIT10Lmhvc3R8fCh0LnBvcnR8fGUpIT1lfHwhTyh0LnBhdGgsIi9wbHVnaW5zLyIpKSkpfSxfYT1mdW5jdGlvbih0KXt2YXIgZT1QLmxvY2F0aW9uLnByb3RvY29sO3JldHVybiJodHRwczoiPT10fHx0PT1lfHwiaHR0cDoiPT10JiYiaHR0cDoiPT1lfSxPYT1mdW5jdGlvbih0KXt2YXIgZT0wPD0obj10Lmhvc3RuYW1lfHwiIikuaW5kZXhPZigiXSIpLG49bi5zcGxpdChlPyJdIjoiOiIpWzBdLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUmJihuKz0iXSIpLGU9KHQucHJvdG9jb2x8fCIiKS50b0xvd2VyQ2FzZSgpLGU9K3QucG9ydHx8KCJodHRwOiI9PWU/ODA6Imh0dHBzOiI9PWU/NDQzOiIiKSx0PXQucGF0aG5hbWV8fCIiLFtuLCIiK2UsdD0hTyh0LCIvIik/Ii8iK3Q6dF19LEVhPWZ1bmN0aW9uKHQpe3ZhciBlPVAuY3JlYXRlRWxlbWVudCgiYSIpO2UuaHJlZj1QLmxvY2F0aW9uLmhyZWY7dmFyIG49KGUucHJvdG9jb2x8fCIiKS50b0xvd2VyQ2FzZSgpLHI9T2EoZSksYT1lLnNlYXJjaHx8IiIsbz1uKyIvLyIrclswXSsoclsxXT8iOiIrclsxXToiIik7cmV0dXJuIE8odCwiLy8iKT90PW4rdDpPKHQsIi8iKT90PW8rdDohdHx8Tyh0LCI/Iik/dD1vK3JbMl0rKHR8fGEpOnQuc3BsaXQoIi8iKVswXS5pbmRleE9mKCI6Iik8MCYmKHQ9bytyWzJdLnN1YnN0cmluZygwLHJbMl0ubGFzdEluZGV4T2YoIi8iKSkrIi8iK3QpLGUuaHJlZj10LG49T2EoZSkse3Byb3RvY29sOihlLnByb3RvY29sfHwiIikudG9Mb3dlckNhc2UoKSxob3N0Om5bMF0scG9ydDpuWzFdLHBhdGg6blsyXSxxdWVyeTplLnNlYXJjaHx8IiIsdXJsOnR8fCIifX0sVGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmMDw9dC5pbmRleE9mKCIvIik/dDooZXx8Z3QoITEpKSsiL3BsdWdpbnMvdWEvIit0fSx4YT17Z2E6ZnVuY3Rpb24oKXt4YS5mYT1bXX19O3hhLmdhKCkseGEuRD1mdW5jdGlvbih0KXt2YXIgZT14YS5KLmFwcGx5KHhhLGFyZ3VtZW50cyksZT14YS5mYS5jb25jYXQoZSk7Zm9yKHhhLmZhPVtdOzA8ZS5sZW5ndGgmJiF4YS52KGVbMF0pJiYoZS5zaGlmdCgpLCEoMDx4YS5mYS5sZW5ndGgpKTspO3hhLmZhPXhhLmZhLmNvbmNhdChlKX0seGEucmE9ZnVuY3Rpb24odCl7a2EucSYmKDMwMD09PWthLnEubGVuZ3RoJiYoa2EucS5zaGlmdCgpLGthLnFkKyspLGthLnEucHVzaCh0KSl9LHhhLko9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRyeXt2YXIgcj1uZXcgaWEoYXJndW1lbnRzW25dKTtyLmc/aGEoci5hYVswXSxyLmFhWzFdKTooci5pJiYoci5oYT1iYShyLmRhLHIuYWFbMF0sci5YLHIuVykpLGUucHVzaChyKSkseGEucmEoYXJndW1lbnRzW25dKX1jYXRjaCh0KXt9cmV0dXJuIGV9LHhhLnY9ZnVuY3Rpb24odCl7dHJ5e2lmKHQudSl0LnUuY2FsbChJLGthLmooInQwIikpO2Vsc2V7dmFyIGUsbixyLGE9dC5kYT09cz9rYTprYS5qKHQuZGEpO2lmKHQuQSl7aWYoInQwIj09dC5kYSYmbnVsbD09PShhPWthLmNyZWF0ZS5hcHBseShrYSx0LmFhKSkpcmV0dXJuITB9ZWxzZSBpZih0LmJhKWthLnJlbW92ZSh0LmRhKTtlbHNlIGlmKGEpaWYodC5pKXtpZih0LmhhJiYodC5oYT1iYSh0LmRhLHQuYWFbMF0sdC5YLHQuVykpLCFtYSh0LmFhWzBdLGEsdC5XKSlyZXR1cm4hMH1lbHNlIHQuSz8oZT10Lm1ldGhvZE5hbWUsbj10LmFhLChyPWEucGx1Z2luc18uZ2V0KHQuSykpW2VdLmFwcGx5KHIsbikpOmFbdC5tZXRob2ROYW1lXS5hcHBseShhLHQuYWEpfX1jYXRjaCh0KXt9fTt2YXIga2E9ZnVuY3Rpb24odCl7ZygxKSx4YS5ELmFwcGx5KHhhLFthcmd1bWVudHNdKX07a2EuaD17fSxrYS5QPVtdLGthLkw9MCxrYS55YT0wLGthLmFuc3dlcj00Mjt2YXIgU2E9W3ZuLGJuLGduXTtrYS5jcmVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9bShTYSxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO2VbZ25dfHwoZVtnbl09InQwIik7dmFyIG49IiIrZVtnbl07aWYoa2EuaFtuXSlyZXR1cm4ga2EuaFtuXTtpZihmdW5jdGlvbih0KXtpZihXKHRbTG5dKSYmKHZvaWQgMD09PXJ0JiYoZT0oZT1rci5nZXQoKSkmJmUuX2dhfHx2b2lkIDApJiYocnQ9ZSxnKDgxKSksdm9pZCAwIT09cnQpKXJldHVybiB0W2huXXx8KHRbaG5dPXJ0KSwhMTtpZih0W0xuXSl7aWYoZyg2NyksdFt4bl0mJiJjb29raWUiIT10W3huXSlyZXR1cm4hMTtpZih2b2lkIDAhPT1ydCl0W2huXXx8KHRbaG5dPXJ0KTtlbHNle3ZhciBlPVN0cmluZyh0W2JuXXx8QSgpKSxuPVN0cmluZyh0W3duXXx8Ii8iKSxyPUgoU3RyaW5nKHRbbW5dfHwiX2dhIikpO2lmKChlPSEoKGU9dnIocixlLG4pKSYmIWMudGVzdChlKSl8fCgwPT0oZT1IKCJBTVBfVE9LRU4iKSkubGVuZ3RofHwxPT1lLmxlbmd0aCYmKCIkUkVUUklFVklORyI9PShlPWRlY29kZVVSSUNvbXBvbmVudChlWzBdKSl8fCIkT1BUX09VVCI9PWV8fCIkRVJST1IiPT1lfHwiJE5PVF9GT1VORCI9PWUpKSkmJnN0KHosU3RyaW5nKHRbdm5dKSkpcmV0dXJuITB9fXJldHVybiExfShlKSlyZXR1cm4gbnVsbDtpZihlPW5ldyAkcihlKSxrYS5oW25dPWUsa2EuUC5wdXNoKGUpLG49d3QoKS50cmFja2VyX2NyZWF0ZWQsZihuKSl0cnl7bihlKX1jYXRjaCh0KXt9cmV0dXJuIGV9LGthLnJlbW92ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPGthLlAubGVuZ3RoO2UrKylpZihrYS5QW2VdLmdldChnbik9PXQpe2thLlAuc3BsaWNlKGUsMSksa2EuaFt0XT1udWxsO2JyZWFrfX0sa2Euaj1mdW5jdGlvbih0KXtyZXR1cm4ga2EuaFt0XX0sa2EuZ2V0QWxsPWZ1bmN0aW9uKCl7cmV0dXJuIGthLlAuc2xpY2UoMCl9LGthLk49ZnVuY3Rpb24oKXtpZigiZ2EiIT1zJiZnKDQ5KSwhKG49SVtzXSl8fDQyIT1uLmFuc3dlcil7a2EuTD1uJiZuLmwsa2EueWE9K25ldyBEYXRlLGthLmxvYWRlZD0hMDt2YXIgdD1uJiZuLnEsZT15KHQpLG49W107aWYoZT9uPXQuc2xpY2UoMCk6Zyg1MCksa2EucT1lP3Q6W10sa2EucS5zcGxpY2UoMCksa2EucWQ9MCxlcigiY3JlYXRlIix0PUlbc109a2EsdC5jcmVhdGUpLGVyKCJyZW1vdmUiLHQsdC5yZW1vdmUpLGVyKCJnZXRCeU5hbWUiLHQsdC5qLDUpLGVyKCJnZXRBbGwiLHQsdC5nZXRBbGwsNiksZXIoImdldCIsdD0kci5wcm90b3R5cGUsdC5nZXQsNyksZXIoInNldCIsdCx0LnNldCw0KSxlcigic2VuZCIsdCx0LnNlbmQpLGVyKCJyZXF1aXJlU3luYyIsdCx0Lm1hKSxlcigiZ2V0Iix0PUl0LnByb3RvdHlwZSx0LmdldCksZXIoInNldCIsdCx0LnNldCksImh0dHBzOiIhPVAubG9jYXRpb24ucHJvdG9jb2wmJiFsKXt0Ontmb3IodD1QLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxlPTA7ZTx0Lmxlbmd0aCYmZTwxMDA7ZSsrKXt2YXIgcj10W2VdLnNyYztpZihyJiYwPT1yLmluZGV4T2YoZ3QoITApKyIvYW5hbHl0aWNzIikpe3Q9ITA7YnJlYWsgdH19dD0hMX10JiYobD0hMCl9dD0oKEkuZ2FwbHVnaW5zPUkuZ2FwbHVnaW5zfHx7fSkuTGlua2VyPVJyKS5wcm90b3R5cGUsaGEoImxpbmtlciIsUnIpLGVyKCJkZWNvcmF0ZSIsdCx0LmNhLDIwKSxlcigiYXV0b0xpbmsiLHQsdC5TLDI1KSxlcigicGFzc3Rocm91Z2giLHQsdC4kLDI1KSxoYSgiZGlzcGxheWZlYXR1cmVzIixVciksaGEoImFkZmVhdHVyZXMiLFVyKSx4YS5ELmFwcGx5KGthLG4pfX07QWU9a2EuTixSZT1JW3NdO1JlJiZSZS5yP0FlKCk6TmUoQWUpLE5lKGZ1bmN0aW9uKCl7eGEuRChbInByb3ZpZGUiLCJyZW5kZXIiLFRdKX0pfSh3aW5kb3cpfQo="},{"name":"brave-fix","aliases":[],"kind":{"mime":"application/javascript"},"content":"Ly8vIGJyYXZlLWZpeC5qcwovLy8gYWxpYXMgYmYuanMKZGVsZXRlIE5hdmlnYXRvci5wcm90b3R5cGUuYnJhdmUKZGVsZXRlIHdpbmRvdy5uYXZpZ2F0b3IuYnJhdmUK"},{"name":"de-amp","aliases":[],"kind":{"mime":"application/javascript"},"content":"KGZ1bmN0aW9uICgpIHsKICBpZiAodHlwZW9mIGRlQW1wRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgZGVBbXBFbmFibGVkKSB7CiAgICBjb25zdCBhdHRyID0gJ2pzYWN0aW9uJwogICAgY29uc3Qgc2VsZWN0b3IgPSBgYVtkYXRhLWFtcC10aXRsZV1bJHthdHRyfV1gCiAgICBsZXQgdGltZXIKICAgIGNvbnN0IHJtYXR0ciA9ICgpID0+IHsKICAgICAgdGltZXIgPSB1bmRlZmluZWQKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpCiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7CiAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyKQogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXgpIHsgfQogICAgfQogICAgY29uc3QgbXV0YXRpb25IYW5kbGVyID0gKG11dGF0aW9ucykgPT4gewogICAgICBpZiAodGltZXIgIT09IHVuZGVmaW5lZCkgewogICAgICAgIHJldHVybgogICAgICB9CiAgICAgIGxldCBza2lwID0gdHJ1ZQogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG11dGF0aW9ucy5sZW5ndGggJiYgc2tpcDsgaSsrKSB7CiAgICAgICAgY29uc3QgeyB0eXBlLCBhZGRlZE5vZGVzLCByZW1vdmVkTm9kZXMgfSA9IG11dGF0aW9uc1tpXQogICAgICAgIGlmICh0eXBlID09PSAnYXR0cmlidXRlcycpIHsKICAgICAgICAgIHNraXAgPSBmYWxzZQogICAgICAgIH0KICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGFkZGVkTm9kZXMubGVuZ3RoICYmIHNraXA7IGorKykgewogICAgICAgICAgaWYgKGFkZGVkTm9kZXNbal0ubm9kZVR5cGUgPT09IDEpIHsKICAgICAgICAgICAgc2tpcCA9IGZhbHNlCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVtb3ZlZE5vZGVzLmxlbmd0aCAmJiBza2lwOyBqKyspIHsKICAgICAgICAgIGlmIChyZW1vdmVkTm9kZXNbal0ubm9kZVR5cGUgPT09IDEpIHsKICAgICAgICAgICAgc2tpcCA9IGZhbHNlCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChza2lwKSB7CiAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgICAgdGltZXIgPSBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2socm1hdHRyLCB7IHRpbWVvdXQ6IDE3IH0pCiAgICB9CgogICAgY29uc3Qgc3RhcnQgPSAoKSA9PiB7CiAgICAgIHJtYXR0cigpCiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25IYW5kbGVyKQogICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7CiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSwKICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFthdHRyXSwKICAgICAgICBjaGlsZExpc3Q6IHRydWUsCiAgICAgICAgc3VidHJlZTogdHJ1ZQogICAgICB9KQogICAgfQoKICAgIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHN0YXJ0LCB7IG9uY2U6IHRydWUgfSkKICB9Cn0pKCk7Cg=="},{"name":"touch-fix","aliases":[],"kind":{"mime":"application/javascript"},"content":"Ly8gUmVtb3ZlIHRvdWNoIGNoZWNrcyBvbiBzZWxlY3RlZCBtb2JpbGUgc2l0ZXMKZGVsZXRlIERvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVUb3VjaApkZWxldGUgRG9jdW1lbnQucHJvdG90eXBlLm9udG91Y2hzdGFydApkZWxldGUgRG9jdW1lbnQucHJvdG90eXBlLm9udG91Y2hlbmQKZGVsZXRlIERvY3VtZW50LnByb3RvdHlwZS5vbnRvdWNoY2FuY2VsCmRlbGV0ZSBEb2N1bWVudC5wcm90b3R5cGUuVG91Y2hFdmVudAo="}]