{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ci8qIGVzbGludC1kaXNhYmxlIG5vLWFsZXJ0LCBuby1jb25zb2xlICovCmltcG9ydCBWdWUgZnJvbSAidnVlIjsKaW1wb3J0IFRvb2x0aXAgZnJvbSAiLi9Ub29sdGlwIjsKaW1wb3J0IFNlbGVjdGlvbnNHcm91cCBmcm9tICIuL1NlbGVjdGlvbnNHcm91cCI7CmltcG9ydCBUcmVlQ29udHJvbHMgZnJvbSAiLi9UcmVlQ29udHJvbHMiOwppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7CmltcG9ydCBTdmdMZWdlbmRzIGZyb20gIi4vbGVnZW5kcy9TdmdMZWdlbmRzIjsKaW1wb3J0IHsKICBCdXR0b24sCiAgQ29sLAogIExvYWRpbmcsCiAgUmFkaW8sCiAgUmFkaW9Hcm91cCwKICBSb3cKfSBmcm9tICJlbGVtZW50LXVpIjsKaW1wb3J0IGxhbmcgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlL2xhbmcvZW4iOwppbXBvcnQgbG9jYWxlIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZSI7CmltcG9ydCBmbGF0bWFwTWFya2VyIGZyb20gIi4uL2ljb25zL2ZsYXRtYXAtbWFya2VyIjsKaW1wb3J0IHtGbGF0bWFwUXVlcmllcywgZmluZFRheG9ub215TGFiZWx9IGZyb20gIi4uL3NlcnZpY2VzL2ZsYXRtYXBRdWVyaWVzLmpzIjsKCmxvY2FsZS51c2UobGFuZyk7ClZ1ZS51c2UoQnV0dG9uKTsKVnVlLnVzZShDb2wpOwpWdWUudXNlKExvYWRpbmcuZGlyZWN0aXZlKTsKVnVlLnVzZShSYWRpbyk7ClZ1ZS51c2UoUmFkaW9Hcm91cCk7ClZ1ZS51c2UoUm93KTsKY29uc3QgUmVzaXplU2Vuc29yID0gcmVxdWlyZSgiY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yIik7Cgpjb25zdCBwcm9jZXNzVGF4b24gPSAoZmxhdG1hcEFQSSwgdGF4b25JZGVudGlmaWVycykgPT4gewogIGxldCBwcm9jZXNzZWQgPSBbXTsKICB0YXhvbklkZW50aWZpZXJzLmZvckVhY2godGF4b24gPT4gewogICAgZmluZFRheG9ub215TGFiZWwoZmxhdG1hcEFQSSwgdGF4b24pLnRoZW4odmFsdWUgPT4gewogICAgICBjb25zdCBpdGVtID0geyB0YXhvbiwgbGFiZWw6IHZhbHVlfTsKICAgICAgcHJvY2Vzc2VkLnB1c2goaXRlbSk7CiAgICB9KTsKICB9KTsKCiAgcmV0dXJuIHByb2Nlc3NlZDsKfQoKY29uc3QgcHJvY2Vzc0ZUVXMgPSAocGFyZW50LCBrZXkpID0+IHsKICBjb25zdCBmdHVzID0gW107CiAgbGV0IGl0ZW1zID0gcGFyZW50Lm9yZ2FucyA/IHBhcmVudC5vcmdhbnMgOiBwYXJlbnQuZnR1czsKICBjb25zdCBjaGlsZHJlbiA9IGl0ZW1zID8gaXRlbXMuZmlsdGVyKAogICAgKG9iaiwgaW5kZXgpID0+CiAgICAgIGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5sYWJlbCA9PT0gb2JqLmxhYmVsKSA9PT0gaW5kZXgKICAgICkgOiB1bmRlZmluZWQKICBpZiAoY2hpbGRyZW4pIHsKICAgIGNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gewogICAgICBjb25zdCBkYXRhID0gewogICAgICAgIGxhYmVsOiBjaGlsZC5sYWJlbCwKICAgICAgICBtb2RlbHM6IGNoaWxkLm1vZGVscywKICAgICAgICBrZXk6IGAke2tleX0uJHtjaGlsZC5sYWJlbH1gLAogICAgICB9OwogICAgICBjb25zdCBncmFuZENoaWxkcmVuID0gcHJvY2Vzc0ZUVXMoY2hpbGQsIGRhdGEua2V5KTsKICAgICAgaWYgKGdyYW5kQ2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIGRhdGEuY2hpbGRyZW4gPSBncmFuZENoaWxkcmVuOwogICAgICB9CiAgICAgIGZ0dXMucHVzaChkYXRhKTsKICAgIH0pCiAgfQogIHJldHVybiBmdHVzOwp9Cgpjb25zdCBwcm9jZXNzU3lzdGVtcyA9IHN5c3RlbXMgPT4gewogIGNvbnN0IGFsbFN5c3RlbXMgPSBbXTsKICBpZiAoc3lzdGVtcyAmJiBzeXN0ZW1zLmxlbmd0aCA+IDApIHsKICAgIGNvbnN0IGRhdGEgPSB7IGxhYmVsOiAiQWxsIiwga2V5OiAiQWxsIiwgY2hpbGRyZW46IFtdIH07CiAgICBzeXN0ZW1zLmZvckVhY2goc3lzdGVtID0+IHsKICAgICAgY29uc3QgY2hpbGQgPSB7CiAgICAgICAgY29sb3VyOiBzeXN0ZW0uY29sb3VyLAogICAgICAgIGVuYWJsZWQ6IHN5c3RlbS5lbmFibGVkLAogICAgICAgIGxhYmVsOiBzeXN0ZW0uaWQsCiAgICAgICAga2V5OiBzeXN0ZW0uaWQsCiAgICAgIH07CiAgICAgIGNvbnN0IGNoaWxkcmVuID0gcHJvY2Vzc0ZUVXMoc3lzdGVtLCBjaGlsZC5rZXkpOwogICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkKICAgICAgICBjaGlsZC5jaGlsZHJlbiA9IGNoaWxkcmVuOwogICAgICBkYXRhLmNoaWxkcmVuLnB1c2goY2hpbGQpOwogICAgfSk7CgogICAgYWxsU3lzdGVtcy5wdXNoKGRhdGEpOwogIH0KICAKICByZXR1cm4gYWxsU3lzdGVtczsKfQoKY29uc3QgY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSA9IGZ1bmN0aW9uICgpewogIHJldHVybiB7CiAgICBkZXN0aW5hdGlvbnM6IFtdLAogICAgb3JpZ2luczogW10sCiAgICBjb21wb25lbnRzOiBbXSwKICAgIGRlc3RpbmF0aW9uc1dpdGhEYXRhc2V0czogW10sCiAgICBvcmlnaW5zV2l0aERhdGFzZXRzOiBbXSwKICAgIGNvbXBvbmVudHNXaXRoRGF0YXNldHM6IFtdLAogICAgcmVzb3VyY2U6IHVuZGVmaW5lZAogIH0KfQoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJGbGF0bWFwVnVlciIsCiAgY29tcG9uZW50czogewogICAgTWFwU3ZnSWNvbiwKICAgIE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgVG9vbHRpcCwKICAgIFRyZWVDb250cm9scywKICAgIFNlbGVjdGlvbnNHcm91cCwKICAgIFN2Z0xlZ2VuZHMKICB9LAogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSB1bmRlZmluZWQ7CiAgICB0aGlzLm1hcEltcCA9IHVuZGVmaW5lZDsKICAgIC8vVGhlIHN0YXRlIHdhdGNoZXIgbWF5IHRyaWdnZXJlZCBiZWZvcmUKICAgIC8vY3JlYXRlZCBjYXVzaW5nIGlzc3VlLCBUaGlzIGZsYWcgd2lsbAogICAgLy9yZXNvbHZlIHRoaXMgaXNzdWUuCiAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHZpZXdMYXRlc3RNYXA6IGZ1bmN0aW9uKCkgewogICAgICBsZXQgYmlvbG9naWNhbFNleCA9IHRoaXMuYmlvbG9naWNhbFNleCA/IHRoaXMuYmlvbG9naWNhbFNleCA6IHVuZGVmaW5lZDsKICAgICAgLy9IdW1hbiByZXF1aXJlcyBzcGVjaWFsIGhhbmRsaW5nCiAgICAgIGlmICh0aGlzLmVudHJ5ID09PSAiTkNCSVRheG9uOjk2MDYiKSB7CiAgICAgICAgYmlvbG9naWNhbFNleCA9ICJQQVRPOjAwMDAzODQiOwogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgIGJpb2xvZ2ljYWxTZXgsCiAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgfTsKICAgICAgdGhpcy4kZW1pdCgidmlldy1sYXRlc3QtbWFwIiwgc3RhdGUpOwogICAgfSwKICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24oY29sb3VyKSB7CiAgICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSBjb2xvdXI7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRDb2xvdXIodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7CiAgICAgIH0KICAgIH0sCiAgICB0b2dnbGVEcmF3ZXI6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLmRyYXdlck9wZW4gPSAhdGhpcy5kcmF3ZXJPcGVuOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIGNvbG91ci9ncmV5c2NhbGUgb2Ygb3JnYW5zLgogICAgICovCiAgICBzZXRDb2xvdXI6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5jb2xvdXJSYWRpbyA9IGZsYWc7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7IGNvbG91cjogZmxhZywgb3V0bGluZTogdGhpcy5vdXRsaW5lc1JhZGlvIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgb3V0bGluZXMgZiBvcmdhbnMuCiAgICAgKi8KICAgIHNldE91dGxpbmVzOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIHRoaXMub3V0bGluZVJhZGlvID0gZmxhZzsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2V0Q29sb3VyKHsgY29sb3VyOiB0aGlzLmNvbG91clJhZGlvLCBvdXRsaW5lOiBmbGFnIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgcGF0aHMgdG8gZGVmYXVsdC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKi8KICAgIHJlc2V0VmlldzogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnJlc2V0TWFwKCk7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMubGF5ZXJzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbi5yZXNldCgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy4kcmVmcy5zeXN0ZW1zU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIGluLgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbigpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuem9vbUluKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gb3V0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbU91dDogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnpvb21PdXQoKTsKICAgICAgfQogICAgfSwKICAgIGNlbnRyZUxpbmVzU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ2VudHJlbGluZXMocGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBzY2thblNlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVNja2FuUGF0aChwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjaGVja0FsbFNDS0FOOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgoa2V5LCBwYXlsb2FkLnZhbHVlKSk7CiAgICAgIH0KICAgIH0sCiAgICBzeXN0ZW1TZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0ocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxTeXN0ZW1zOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMuc3lzdGVtc1swXS5jaGlsZHJlbi5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0oa2V5LmxhYmVsLCBmbGFnKSk7CiAgICAgIH0KICAgIH0sCiAgICBmdHVTZWxlY3RlZDogZnVuY3Rpb24obW9kZWxzKSB7CiAgICAgIHRoaXMuc2VhcmNoQW5kU2hvd1Jlc3VsdChtb2RlbHMsIHRydWUpOwogICAgfSwKICAgIGxheWVyc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUxheWVyKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgfQogICAgfSwKICAgIGNoZWNrQWxsTGF5ZXJzOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVMYXllcihrZXksIHBheWxvYWQudmFsdWUpKTsKICAgICAgfQogICAgfSwKICAgIHRheG9uc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxUYXhvbnM6IGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMoa2V5LCBwYXlsb2FkLnZhbHVlKSk7CiAgICAgIH0KICAgIH0sCiAgICBwYXRod2F5c1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxQYXRod2F5czogZnVuY3Rpb24ocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChrZXkgPT4gdGhpcy5tYXBJbXAuZW5hYmxlUGF0aChrZXksIHBheWxvYWQudmFsdWUpKTsKICAgICAgfQogICAgfSwKICAgIGVuYWJsZVBhblpvb21FdmVudHM6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKTsKICAgIH0sCiAgICBldmVudENhbGxiYWNrOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIChldmVudFR5cGUsIGRhdGEsIC4uLmFyZ3MpID0+IHsKICAgICAgICBpZiAoZXZlbnRUeXBlICE9PSAicGFuLXpvb20iKSB7CiAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGEubGFiZWw7CiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IFtkYXRhLm1vZGVsc107CiAgICAgICAgICBjb25zdCB0YXhvbm9teSA9IHRoaXMuZW50cnk7CiAgICAgICAgICBjb25zdCBiaW9sb2dpY2FsU2V4ID0gdGhpcy5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHsKICAgICAgICAgICAgZGF0YXNldDogZGF0YS5kYXRhc2V0LAogICAgICAgICAgICBiaW9sb2dpY2FsU2V4OiBiaW9sb2dpY2FsU2V4LAogICAgICAgICAgICB0YXhvbm9teTogdGF4b25vbXksCiAgICAgICAgICAgIHJlc291cmNlOiByZXNvdXJjZSwKICAgICAgICAgICAgbGFiZWw6IGxhYmVsLAogICAgICAgICAgICBmZWF0dXJlOiBkYXRhLAogICAgICAgICAgICB1c2VyRGF0YTogYXJncywKICAgICAgICAgICAgZXZlbnRUeXBlOiBldmVudFR5cGUsCiAgICAgICAgICAgIHByb3ZlbmFuY2VUYXhvbm9teTogZGF0YS50YXhvbnMgPyBKU09OLnBhcnNlKGRhdGEudGF4b25zKSA6IHVuZGVmaW5lZAogICAgICAgICAgfTsKICAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICJjbGljayIpIHsKICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOwogICAgICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICJtb3VzZWVudGVyIikgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRIb3ZlciA9IGRhdGEubW9kZWxzID8gZGF0YS5tb2RlbHMgOiAiIjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEudHlwZSAhPT0gIm1hcmtlciIgJiYgZXZlbnRUeXBlID09PSAiY2xpY2siKXsKICAgICAgICAgICAgdGhpcy5jaGVja0FuZENyZWF0ZVBvcHVwcyhwYXlsb2FkKTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuJGVtaXQoInJlc291cmNlLXNlbGVjdGVkIiwgcGF5bG9hZCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJGVtaXQoInBhbi16b29tLWNhbGxiYWNrIiwgZGF0YSk7CiAgICAgICAgfQogICAgICB9OwogICAgfSwKICAgIC8vIGNoZWNrTmV1cm9uQ2xpY2tlZCBzaG93cyBhIG5ldXJvbiBwYXRoIHBvcCB1cCBpZiBhIHBhdGggd2FzIHJlY2VudGx5IGNsaWNrZWQKICAgIGNoZWNrQW5kQ3JlYXRlUG9wdXBzOiAgYXN5bmMgZnVuY3Rpb24oZGF0YSkgewogICAgICAvLyBDYWxsIGZsYXRtYXAgZGF0YWJhc2UgdG8gZ2V0IHRoZSBjb25uZWN0aW9uIGRhdGEKICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmZsYXRtYXBRdWVyaWVzLnJldHJpZXZlRmxhdG1hcEtub3dsZWRnZUZvckV2ZW50KGRhdGEpCiAgICAgIC8vIFRoZSBsaW5lIGJlbG93IG9ubHkgY3JlYXRlcyB0aGUgdG9vbHRpcCBpZiBzb21lIGRhdGEgd2FzIGZvdW5kIG9uIHRoZSBwYXRoIAogICAgICAvLyByZXN1bHQgMCBpcyB0aGUgY29ubmVjdGlvbiwgcmVzdWx0IDEgaXMgdGhlIHB1Ym1lZCByZXN1bHRzIGZyb20gZmxhdG1hcAogICAgICBpZihyZXN1bHRzWzBdIHx8IHJlc3VsdHNbMV0gfHwoIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzICYmIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzLmxlbmd0aCA+IDApKXsKICAgICAgICB0aGlzLnJlc291cmNlRm9yVG9vbHRpcCA9ICBkYXRhLnJlc291cmNlWzBdOwogICAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbihkYXRhKTsKICAgICAgfSAKICAgIH0sCiAgICBwb3BVcENzc0hhY2tzOiBmdW5jdGlvbigpIHsKICAgICAgLy8gQmVsb3cgaXMgYSBoYWNrIHRvIHJlbW92ZSBmbGF0bWFwIHRvb2x0aXBzIHdoaWxlIHBvcHVwIGlzIG9wZW4KICAgICAgbGV0IGZ0b29sdGlwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZsYXRtYXAtdG9vbHRpcC1wb3B1cCIpOwogICAgICBpZiAoZnRvb2x0aXApIGZ0b29sdGlwLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpLnN0eWxlLmRpc3BsYXkgPQogICAgICAgICJibG9jayI7CiAgICAgIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikub25jbGljayA9ICgpID0+IHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIikuc3R5bGUuZGlzcGxheSA9CiAgICAgICAgICAiYmxvY2siOwogICAgICB9OwogICAgfSwKICAgIGNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb246IGFzeW5jIGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgdGhpcy50b29sdGlwRW50cnkgPSBhd2FpdCB0aGlzLmZsYXRtYXBRdWVyaWVzLmNyZWF0ZVRvb2x0aXBEYXRhKGRhdGEpOwogICAgICB0aGlzLmRpc3BsYXlUb29sdGlwKCk7CiAgICB9LAogICAgLy8gS2VlcGluZyB0aGlzIGFzIGFuIEFQSQogICAgc2hvd1BvcHVwOiBmdW5jdGlvbihmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpIHsKICAgICAgbGV0IG15T3B0aW9ucyA9IG9wdGlvbnM7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGlmIChteU9wdGlvbnMpIHsKICAgICAgICAgIGlmICghbXlPcHRpb25zLmNsYXNzTmFtZSkgbXlPcHRpb25zLmNsYXNzTmFtZSA9ICJjdXN0b20tcG9wdXAiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBteU9wdGlvbnMgPSB7IGNsYXNzTmFtZTogImN1c3RvbS1wb3B1cCIsIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IHRydWUgfTsKICAgICAgICB9CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGZlYXR1cmVJZCwgbm9kZSwgbXlPcHRpb25zKTsKICAgICAgfQogICAgfSwKICAgIHNob3dNYXJrZXJQb3B1cDogZnVuY3Rpb24oZmVhdHVyZUlkLCBub2RlLCBvcHRpb25zKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNob3dNYXJrZXJQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpOwogICAgICB9CiAgICB9LAogICAgY2xvc2VNaW5pbWFwOiBmdW5jdGlvbigpewogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOyAvLyBmaW5kIG1pbmltYXAKICAgICAgaWYgKHRoaXMubWluaW1hcFNtYWxsKSB7IC8vc3dpdGNoIHRoZSBjbGFzc2VzIG9uIHRoZSBtaW5pbWFwCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ2VubGFyZ2UnKTsKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LnJlbW92ZSgnc2hyaW5rJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ3NocmluaycpOwogICAgICAgIG1pbmltYXBFbC5jbGFzc0xpc3QucmVtb3ZlKCdlbmxhcmdlJyk7CiAgICAgIH0KICAgICAgdGhpcy5taW5pbWFwU21hbGwgPSAhdGhpcy5taW5pbWFwU21hbGw7CiAgICB9LAogICAgYWRkUmVzaXplQnV0dG9uVG9NaW5pbWFwOiBmdW5jdGlvbigpewogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOwogICAgICBpZiAobWluaW1hcEVsKXsKICAgICAgICB0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOwogICAgICAgIG1pbmltYXBFbC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOwogICAgICAgIHRoaXMubWluaW1hcFJlc2l6ZVNob3cgPSB0cnVlOwogICAgICB9CiAgICB9LAogICAgc2V0SGVscE1vZGU6IGZ1bmN0aW9uKGhlbHBNb2RlKSB7CiAgICAgIGlmIChoZWxwTW9kZSkgewogICAgICAgIHRoaXMuaW5IZWxwID0gdHJ1ZTsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLm9wZW5GbGF0bWFwSGVscFBvcHVwKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pbkhlbHAgPSBmYWxzZTsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5jbG9zZUZsYXRtYXBIZWxwUG9wdXAoKTsKICAgICAgfQogICAgfSwKICAgIHNob3dUb29saXRpcDogZnVuY3Rpb24odG9vbHRpcE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOwogICAgICAgIHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0gPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXNbdG9vbHRpcE51bWJlcl0udmFsdWUgPSB0cnVlOwogICAgICAgIH0sIDUwMCk7CiAgICAgIH0KICAgIH0sCiAgICBoaWRlVG9vbGl0aXA6IGZ1bmN0aW9uKHRvb2x0aXBOdW1iZXIpIHsKICAgICAgaWYgKCF0aGlzLmluSGVscCkgewogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdKTsKICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW3Rvb2x0aXBOdW1iZXJdLnZhbHVlID0gZmFsc2U7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIGRpc3BsYXlUb29sdGlwOiBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKAogICAgICAgIHRoaXMubWFwSW1wLm1vZGVsRmVhdHVyZUlkcyh0aGlzLnJlc291cmNlRm9yVG9vbHRpcClbMF0sCiAgICAgICAgdGhpcy4kcmVmcy50b29sdGlwLiRlbCwKICAgICAgICB7IGNsYXNzTmFtZTogImZsYXRtYXB2dWVyLXBvcG92ZXIiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiB0cnVlIH0KICAgICAgKTsKICAgICAgdGhpcy5wb3BVcENzc0hhY2tzKCk7CiAgICB9LAogICAgb3BlbkZsYXRtYXBIZWxwUG9wdXA6IGZ1bmN0aW9uKCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBsZXQgaGVhcnRJZCA9IHRoaXMubWFwSW1wLmZlYXR1cmVJZHNGb3JNb2RlbCgiVUJFUk9OOjAwMDA5NDgiKVswXTsKICAgICAgICBjb25zdCBlbG0gPSAiQ2xpY2sgZm9yIG1vcmUgaW5mb3JtYXRpb24iOwogICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChoZWFydElkLCBlbG0sIHsKICAgICAgICAgIGFuY2hvcjogInRvcCIsCiAgICAgICAgICBjbGFzc05hbWU6ICJmbGF0bWFwLXBvcHVwLXBvcHBlciIKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGNsb3NlRmxhdG1hcEhlbHBQb3B1cDogZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuJGVsCiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpCiAgICAgICAgLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBpdGVtLmNsaWNrKCk7CiAgICAgICAgfSk7CiAgICB9LAogICAgZ2V0TGFiZWxzOiBmdW5jdGlvbigpIHsKICAgICAgbGV0IGxhYmVscyA9IFtdOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBsZXQgYW5ub3RhdGlvbnMgPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uczsKICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiBhbm5vdGF0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICAgaWYgKHZhbHVlLmxhYmVsKSBsYWJlbHMucHVzaCh2YWx1ZS5sYWJlbCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQobGFiZWxzKSk7CiAgICAgIH0KICAgIH0sCiAgICBnZXRTdGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGxldCBzdGF0ZSA9IHsKICAgICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgICB9OwogICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLm1hcEltcC5nZXRJZGVudGlmaWVyKCk7CiAgICAgICAgaWYgKHRoaXMuYmlvbG9naWNhbFNleCkKICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7CiAgICAgICAgZWxzZSBpZiAoaWRlbnRpZmllciAmJiBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXgpCiAgICAgICAgICBzdGF0ZVsnYmlvbG9naWNhbFNleCddID0gaWRlbnRpZmllci5iaW9sb2dpY2FsU2V4OwogICAgICAgIGlmIChpZGVudGlmaWVyICYmIGlkZW50aWZpZXIudXVpZCkKICAgICAgICAgIHN0YXRlWyd1dWlkJ10gPSBpZGVudGlmaWVyLnV1aWQ7CiAgICAgICAgcmV0dXJuIHN0YXRlOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICB9LAogICAgc2V0U3RhdGU6IGZ1bmN0aW9uKHN0YXRlKSB7CiAgICAgIGlmIChzdGF0ZSkgewogICAgICAgIGlmICh0aGlzLm1hcEltcCAmJiAKICAgICAgICAgIChzdGF0ZS5lbnRyeSAmJiAodGhpcy5lbnRyeSA9PSBzdGF0ZS5lbnRyeSkpICYmCiAgICAgICAgICAoIXN0YXRlLmJpb2xvZ2ljYWxTZXggfHwgKHN0YXRlLmJpb2xvZ2ljYWxTZXggPT09IHRoaXMuYmlvbG9naWNhbFNleCkpKSAKICAgICAgICB7CiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoc3RhdGUpOwogICAgICAgIH0KICAgICAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICAgICAgfQogICAgfSwKICAgIHJlc3RvcmVNYXBTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgaWYgKHN0YXRlLnZpZXdwb3J0KQogICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOwogICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXJtKQogICAgICAgICAgdGhpcy5zZWFyY2hBbmRTaG93UmVzdWx0KHN0YXRlLnNlYXJjaFRlcm0sIHRydWUpOwogICAgICB9CiAgICB9LAogICAgY3JlYXRlRmxhdG1hcDogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgaWYgKCF0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKSB7CiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICBsZXQgbWluaW1hcCA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLmRpc3BsYXlNaW5pbWFwKSB7CiAgICAgICAgICBtaW5pbWFwID0geyBwb3NpdGlvbjogInRvcC1yaWdodCIgfTsKICAgICAgICB9CgogICAgICAgIC8vQXMgZm9yIGZsYXRtYXAtdmlld2VyQDIuMi43LCBzZWUgYmVsb3cgZm9yIHRoZSBkb2N1bWVudGF0aW9uIAogICAgICAgIC8vZm9yIHRoZSBpZGVudGlmaWVyOgoKICAgICAgICAvL0BhcmcgaWRlbnRpZmllciB7c3RyaW5nfE9iamVjdH0KICAgICAgICAvLyBBIHN0cmluZyBvciBvYmplY3QgaWRlbnRpZnlpbmcgdGhlIG1hcCB0byBsb2FkLiBJZiBhIHN0cmluZyBpdHMKICAgICAgICAvLyB2YWx1ZSBjYW4gYmUgZWl0aGVyIHRoZSBtYXAncyBgYHV1aWRgYCwgYXNzaWduZWQgYXQgZ2VuZXJhdGlvbiB0aW1lLAogICAgICAgIC8vIG9yIHRheG9uIGFuZCBiaW9sb2dpY2FsIHNleCBpZGVudGlmaWVycyBvZiB0aGUgc3BlY2llcyB0aGF0IHRoZSBtYXAKICAgICAgICAvLyByZXByZXNlbnRzLiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgYSBtYXAgaXMgbG9hZGVkIHVubGVzcyBpdCBoYXMgYmVlbgogICAgICAgIC8vIGlkZW50aWZpZWQgdXNpbmcgYSBgYHV1aWRgYCAoc2VlIGJlbG93KS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudGF4b24ge3N0cmluZ30gVGhlIHRheG9uIGlkZW50aWZpZXIgb2YgdGhlIHNwZWNpZXMgCiAgICAgICAgLy8gIHJlcHJlc2VudGVkIGJ5IHRoZSBtYXAuIFRoaXMgaXMgc3BlY2lmaWVkIGFzIG1ldGFkYXRhIGluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCB7c3RyaW5nfSBUaGUgYmlvbG9naWNhbCBzZXggb2YgdGhlIHNwZWNpZXMKICAgICAgICAvLyByZXByZXNlbnRlZCBieSB0aGUgbWFwLiBUaGlzIGlzIHNwZWNpZmllZCBhcyBtZXRhZGF0YWluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudXVpZCB7c3RyaW5nfSBUaGUgdW5pcXVlIHV1aWQgdGhlIGZsYXRtYXAuIElmIGdpdmVuIHRoZW4gdGhpcyBleGFjdCBtYXAgd2lsbAogICAgICAgIC8vICBiZSBsb2FkZWQsIG92ZXJyaWRpbmcgYGB0YXhvbmBgIGFuZCBgYGJpb2xvZ2ljYWxTZXhgYC4KCiAgICAgICAgbGV0IGlkZW50aWZpZXIgPSB7IHRheG9uOiB0aGlzLmVudHJ5IH07CiAgICAgICAgLy9UaGlzIG5vdyBoYW5kbGUgdGhlIHVzZXMgb2YgdXVpZCB3aGVuIHJlc3VtaW5nIHN0YXRlcwogICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgaWYgKHN0YXRlLnV1aWQpIHsKICAgICAgICAgICAgaWRlbnRpZmllciA9IHsgdXVpZDogc3RhdGUudXVpZCB9OwogICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5lbnRyeSkgewogICAgICAgICAgICBpZGVudGlmaWVyLnRheG9uID0gc3RhdGUuZW50cnk7CiAgICAgICAgICAgIGlmIChzdGF0ZS5iaW9sb2dpY2FsU2V4KSB7CiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gc3RhdGUuYmlvbG9naWNhbFNleDsKICAgICAgICAgICAgfSBlbHNlIGlmIChpZGVudGlmaWVyLnRheG9uID09PSAiTkNCSVRheG9uOjk2MDYiKSB7CiAgICAgICAgICAgICAgLy9Gb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9IlBBVE86MDAwMDM4NCI7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy8gU2V0IHRoZSBiaW9sb2ljYWxTZXggbm93IGlmIG1hcCBpcyBub3QgcmVzdW1lZCBmcm9tCiAgICAgICAgICAvLyBhIHNhdmVkIHN0YXRlCiAgICAgICAgICBpZiAodGhpcy5iaW9sb2dpY2FsU2V4KSB7CiAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9IHRoaXMuYmlvbG9naWNhbFNleDsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBwcm9taXNlMSA9IHRoaXMubWFwTWFuYWdlci5sb2FkTWFwKAogICAgICAgICAgaWRlbnRpZmllciwKICAgICAgICAgIHRoaXMuJHJlZnMuZGlzcGxheSwKICAgICAgICAgIHRoaXMuZXZlbnRDYWxsYmFjaygpLAogICAgICAgICAgewogICAgICAgICAgICAvL2Z1bGxzY3JlZW5Db250cm9sOiBmYWxzZSwKICAgICAgICAgICAgLy9hbm5vdGF0YWJsZTogZmFsc2UsCiAgICAgICAgICAgIC8vZGVidWc6IHRydWUsCiAgICAgICAgICAgIGZlYXR1cmVJbmZvOiB0aGlzLmZlYXR1cmVJbmZvLAogICAgICAgICAgICAibWluLXpvb20iOiB0aGlzLm1pblpvb20sCiAgICAgICAgICAgIGxheWVyQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgcGF0aENvbnRyb2xzOiB0cnVlLAogICAgICAgICAgICBzZWFyY2hhYmxlOiB0aGlzLnNlYXJjaGFibGUsCiAgICAgICAgICAgIHRvb2x0aXBzOiB0aGlzLnRvb2x0aXBzLAogICAgICAgICAgICBtaW5pbWFwOiBtaW5pbWFwCiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBwcm9taXNlMS50aGVuKHJldHVybmVkT2JqZWN0ID0+IHsKICAgICAgICAgIHRoaXMubWFwSW1wID0gcmV0dXJuZWRPYmplY3Q7CiAgICAgICAgICB0aGlzLm9uRmxhdG1hcFJlYWR5KCk7CiAgICAgICAgICBpZiAodGhpcy5fc3RhdGVUb0JlU2V0KQogICAgICAgICAgICB0aGlzLnJlc3RvcmVNYXBTdGF0ZSh0aGlzLl9zdGF0ZVRvQmVTZXQpOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHN0YXRlKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmIChzdGF0ZSkgewogICAgICAgIHRoaXMuX3N0YXRlVG9CZVNldCA9IHsgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LCBzZWFyY2hUZXJtOiBzdGF0ZS5zZWFyY2hUZXJtIH07CiAgICAgICAgaWYgKHRoaXMubWFwSW1wICYmICF0aGlzLmxvYWRpbmcpCiAgICAgICAgICB0aGlzLnJlc3RvcmVNYXBTdGF0ZSh0aGlzLl9zdGF0ZVRvQmVTZXQpOwogICAgICB9CiAgICB9LAogICAgY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKSB7CiAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLiRyZWZzLmRpc3BsYXk7CiAgICAgIGlmIChlbGVtKSB7CiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW0pOwogICAgICAgIGNvbnN0IHBhZGRpbmcgPSBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nVG9wKSArIHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdCb3R0b20pOwogICAgICAgIGNvbnN0IGhlaWdodCA9IGVsZW0uY2xpZW50SGVpZ2h0IC0gcGFkZGluZzsKICAgICAgICB0aGlzLnBhdGh3YXlzTWF4SGVpZ2h0ID0gaGVpZ2h0IC0gMTcwOwogICAgICB9CiAgICB9LAogICAgbWFwUmVzaXplOiBmdW5jdGlvbigpIHsKICAgICAgdHJ5IHsKICAgICAgICB0aGlzLmNvbXB1dGVQYXRoQ29udHJvbHNNYXhpbXVtSGVpZ2h0KCk7CiAgICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgICB0aGlzLm1hcEltcC5yZXNpemUoKTsKICAgICAgICAgIHRoaXMuc2hvd01pbmltYXAodGhpcy5kaXNwbGF5TWluaW1hcCk7CiAgICAgICAgICBpZiAodGhpcy5tYXBJbXAuX21pbmltYXApIHsKICAgICAgICAgICAgICB0aGlzLm1hcEltcC5fbWluaW1hcC5yZXNpemUoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggewogICAgICAgIGNvbnNvbGUuZXJyb3IoIk1hcCByZXNpemUgZXJyb3IiKTsKICAgICAgfQogICAgfSwKICAgIG9uRmxhdG1hcFJlYWR5OiBmdW5jdGlvbigpewogICAgICAvLyBvbkZsYXRtYXBSZWFkeSBpcyB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIHJ1biBpbW1lZGlhdGVseSBhZnRlciB0aGUgZmxhdG1hcCBpcyBsb2FkZWQKICAgICAgdGhpcy5zZW5zb3IgPSBuZXcgUmVzaXplU2Vuc29yKAogICAgICAgIHRoaXMuJHJlZnMuZGlzcGxheSwKICAgICAgICB0aGlzLm1hcFJlc2l6ZQogICAgICApOwogICAgICBpZiAodGhpcy5tYXBJbXAub3B0aW9ucyAmJiB0aGlzLm1hcEltcC5vcHRpb25zLnN0eWxlID09PSAiZnVuY3Rpb25hbCIpIHsKICAgICAgICB0aGlzLmlzRkMgPSB0cnVlOwogICAgICB9CiAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRPcGFjaXR5KDEpOwogICAgICB0aGlzLmJhY2tncm91bmRDaGFuZ2VDYWxsYmFjayh0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kKTsKICAgICAgdGhpcy5wYXRod2F5cyA9IHRoaXMubWFwSW1wLnBhdGhUeXBlcygpOwogICAgICB0aGlzLm1hcEltcC5lbmFibGVDZW50cmVsaW5lcyhmYWxzZSk7CiAgICAgIC8vRGlzYWJsZSBsYXllcnMgZm9yIG5vdwogICAgICAvL3RoaXMubGF5ZXJzID0gdGhpcy5tYXBJbXAuZ2V0TGF5ZXJzKCk7CiAgICAgIHRoaXMuc3lzdGVtcyA9IHByb2Nlc3NTeXN0ZW1zKHRoaXMubWFwSW1wLmdldFN5c3RlbXMoKSk7CiAgICAgIHRoaXMudGF4b25Db25uZWN0aXZpdHkgPSBwcm9jZXNzVGF4b24odGhpcy5mbGF0bWFwQVBJLCB0aGlzLm1hcEltcC50YXhvbklkZW50aWZpZXJzKTsKICAgICAgdGhpcy5hZGRSZXNpemVCdXR0b25Ub01pbmltYXAoKTsKICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gdHJ1ZTsKICAgICAgdGhpcy5tYXBSZXNpemUoKTsKICAgICAgdGhpcy4kZW1pdCgicmVhZHkiLCB0aGlzKTsKICAgIH0sCiAgICBzaG93TWluaW1hcDogZnVuY3Rpb24oZmxhZykgewogICAgICBpZiAodGhpcy5tYXBJbXApCiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd01pbmltYXAoZmxhZyk7CiAgICB9LAogICAgc2hvd1BhdGh3YXlzRHJhd2VyOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZsYWc7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBkaXNwbGF5IGZlYXR1cmVzIHdpdGggYW5ub3RhdGlvbiBtYXRjaGluZyB0aGUgcHJvdmlkZWQgdGVybSwKICAgICAqIHdpdGggdGhlIG9wdGlvbiB0byBkaXNwbGF5IHRoZSBsYWJlbCB1c2luZyBkaXNwbGF5TGFiZWwgZmxhZy4gCiAgICAgKi8KICAgIHNlYXJjaEFuZFNob3dSZXN1bHQ6IGZ1bmN0aW9uKHRlcm0sIGRpc3BsYXlMYWJlbCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBpZiAodGVybSA9PT0gdW5kZWZpbmVkIHx8IHRlcm0gPT09ICIiKSB7CiAgICAgICAgICB0aGlzLm1hcEltcC5jbGVhclNlYXJjaFJlc3VsdHMoKTsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gdGhpcy5tYXBJbXAuc2VhcmNoKHRlcm0pOwogICAgICAgICAgaWYgKHNlYXJjaFJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5yZXN1bHRzICYmCiAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHRoaXMubWFwSW1wLnNob3dTZWFyY2hSZXN1bHRzKHNlYXJjaFJlc3VsdHMpOwogICAgICAgICAgICBpZiAoZGlzcGxheUxhYmVsICYmIAogICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQgJiYgCiAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLnRleHQpIHsKICAgICAgICAgICAgICBjb25zdCBhbm5vdGF0aW9uID0gdGhpcy5tYXBJbXAuYW5ub3RhdGlvbihzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkKTsKICAgICAgICAgICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoCiAgICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkLAogICAgICAgICAgICAgICAgYW5ub3RhdGlvbi5sYWJlbCwKICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwgcG9zaXRpb25BdExhc3RDbGljazogZmFsc2UsIHByZXNlcnZlU2VsZWN0aW9uOiB0cnVlIH0KICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRoaXMubWFwSW1wLmNsZWFyU2VhcmNoUmVzdWx0cygpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqCiAgICAgKiBHZXQgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGVkIHRlcm1zCiAgICAgKi8KICAgIHNlYXJjaFN1Z2dlc3Rpb25zOiBmdW5jdGlvbih0ZXJtKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkKICAgICAgICByZXR1cm4gdGhpcy5tYXBJbXAuc2VhcmNoKHRlcm0pOwogICAgICByZXR1cm4gW107CiAgICB9LAogIH0sCiAgcHJvcHM6IHsKICAgIGVudHJ5OiBTdHJpbmcsCiAgICBiaW9sb2dpY2FsU2V4OiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICBmZWF0dXJlSW5mbzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIG1pblpvb206IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiA0CiAgICB9LAogICAgcGF0aENvbnRyb2xzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgc2VhcmNoYWJsZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIGxheWVyQ29udHJvbDogewogICAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICB0b29sdGlwczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgaGVscE1vZGU6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICByZW5kZXJBdE1vdW50ZWQ6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIGRpc3BsYXlNaW5pbWFwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgZGlzcGxheVdhcm5pbmc6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvKioKICAgICAqIEZsYWcgdG8gZGV0ZXJtaW5lIHJhdGhlciBvcGVuIG1hcCBVSSBzaG91bGQgYmUKICAgICAqIHByZXNlbnRlZCBvciBub3QuCiAgICAgKi8KICAgIGVuYWJsZU9wZW5NYXBVSTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgIH0sCiAgICBvcGVuTWFwT3B0aW9uczogewogICAgICB0eXBlOiBBcnJheSwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICB7CiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEFDIE1hcCIsCiAgICAgICAgICAgIGtleTogIkFDIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gRkMgTWFwIiwKICAgICAgICAgICAga2V5OiAiRkMiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBkaXNwbGF5OiAiT3BlbiAzRCBIdW1hbiBNYXAiLAogICAgICAgICAgICBrZXk6ICIzRCIKICAgICAgICAgIH0sCiAgICAgICAgXQogICAgICB9LAogICAgfSwKICAgIGlzTGVnYWN5OiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgZGlzcGxheUxhdGVzdENoYW5nZXM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UsCiAgICB9LAogICAgbGF0ZXN0Q2hhbmdlc01lc3NhZ2U6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiJ09ic2VydmVkIEluJyBjb250cm9scyBhbmQgaW5mb3JtYXRpb24gYXJlIG5vdyBpbmNsdWRlZCBpbiBBQyBtYXBzLiBTeXN0ZW0gY29udHJvbCB3aXRoIEZUVSBpbmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRkMgbWFwLiIsCiAgICB9LAogICAgLyoqCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBmbGF0bWFwLgogICAgICovCiAgICBzdGF0ZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZAogICAgfSwKICAgIC8qKgogICAgICogU3BlY2lmeSB0aGUgZW5kcG9pbnQgb2YgdGhlIGZsYXRtYXAgc2VydmVyLgogICAgICovCiAgICBmbGF0bWFwQVBJOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogImh0dHBzOi8vbWFwY29yZS1kZW1vLm9yZy9jdXJyZW50L2ZsYXRtYXAvdjMvIgogICAgfSwKICAgIHNwYXJjQVBJOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogImh0dHBzOi8vYXBpLnNwYXJjLnNjaWVuY2UvIgogICAgfSwKICB9LAogIHByb3ZpZGUoKSB7CiAgICByZXR1cm4gewogICAgICBzcGFyY0FQSTogdGhpcy5zcGFyY0FQSSwKICAgICAgZmxhdG1hcEFQSTogdGhpcy5mbGF0bWFwQVBJCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB7CiAgICAgIGxheWVyczogW10sCiAgICAgIHBhdGh3YXlzOiBbXSwKICAgICAgc2NrYW5EaXNwbGF5OiBbCiAgICAgICAgewogICAgICAgICAgbGFiZWw6ICJEaXNwbGF5IFBhdGggd2l0aCBTQ0tBTiIsCiAgICAgICAgICBrZXk6ICJWQUxJRCIsCiAgICAgICAgfSwKICAgICAgXSwKICAgICAgY2VudHJlTGluZXM6IFsKICAgICAgICB7CiAgICAgICAgICBsYWJlbDogIkRpc3BsYXkgTmVydmVzIiwKICAgICAgICAgIGtleTogImNlbnRyZWxpbmVzIiwKICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlCiAgICAgICAgfQogICAgICBdLAogICAgICBzeXN0ZW1zOiBbXSwKICAgICAgdGF4b25Db25uZWN0aXZpdHk6IFtdLAogICAgICBwYXRod2F5c01heEhlaWdodDogMTAwMCwKICAgICAgaG92ZXJWaXNpYmlsaXRpZXM6IFsKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgXSwKICAgICAgaXNGQzogZmFsc2UsCiAgICAgIGluSGVscDogZmFsc2UsCiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kOiAid2hpdGUiLAogICAgICBhdmFpbGFibGVCYWNrZ3JvdW5kOiBbIndoaXRlIiwgImxpZ2h0c2t5Ymx1ZSIsICJibGFjayJdLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZmxhdG1hcE1hcmtlcjogZmxhdG1hcE1hcmtlciwKICAgICAgdG9vbHRpcEVudHJ5OiBjcmVhdGVVbmZpbGxlZFRvb2x0aXBEYXRhKCksCiAgICAgIGNvbm5lY3Rpdml0eVRvb2x0aXBWaXNpYmxlOiBmYWxzZSwKICAgICAgcmVzb3VyY2VGb3JUb29sdGlwOiB1bmRlZmluZWQsCiAgICAgIGRyYXdlck9wZW46IGZhbHNlLAogICAgICBjb2xvdXJSYWRpbzogdHJ1ZSwKICAgICAgb3V0bGluZXNSYWRpbzogdHJ1ZSwKICAgICAgbWluaW1hcFJlc2l6ZVNob3c6IGZhbHNlLAogICAgICBtaW5pbWFwU21hbGw6IGZhbHNlLAogICAgICBjdXJyZW50QWN0aXZlOiAiIiwKICAgICAgY3VycmVudEhvdmVyOiAiIiwKICAgIH07CiAgfSwKICB3YXRjaDogewogICAgZW50cnk6IGZ1bmN0aW9uKCkgewogICAgICBpZiAoIXRoaXMuc3RhdGUpIHRoaXMuY3JlYXRlRmxhdG1hcCgpOwogICAgfSwKICAgIGhlbHBNb2RlOiBmdW5jdGlvbih2YWwpIHsKICAgICAgdGhpcy5zZXRIZWxwTW9kZSh2YWwpOwogICAgfSwKICAgIHN0YXRlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKHN0YXRlKSB7CiAgICAgICAgaWYgKHRoaXMubWFwTWFuYWdlcikgewogICAgICAgICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vdGhpcyBjb21wb25lbnQgaGFzIG5vdCBiZWVuIG1vdW50ZWQgeWV0CiAgICAgICAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlLAogICAgICBkZWVwOiB0cnVlCiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbigpIHsKICAgIGNvbnN0IGZsYXRtYXAgPSByZXF1aXJlKCJAYWJpLXNvZnR3YXJlL2ZsYXRtYXAtdmlld2VyIik7CiAgICB0aGlzLnRvb2x0aXBXYWl0ID0gW107CiAgICB0aGlzLnRvb2x0aXBXYWl0Lmxlbmd0aCA9IHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMubGVuZ3RoOwogICAgdGhpcy5tYXBNYW5hZ2VyID0gbmV3IGZsYXRtYXAuTWFwTWFuYWdlcih0aGlzLmZsYXRtYXBBUEkpOwogICAgdGhpcy5mbGF0bWFwUXVlcmllcyA9IG5ldyBGbGF0bWFwUXVlcmllcygpOwogICAgdGhpcy5mbGF0bWFwUXVlcmllcy5pbml0aWFsaXNlKHRoaXMuZmxhdG1hcEFQSSk7CiAgICBpZiAodGhpcy5zdGF0ZSkgewogICAgICAvL1N0YXRlIGlzIHNldCBhbmQgcmVxdWlyZSB0byBzZXQgdGhlIHN0YXRlCiAgICAgIGlmICh0aGlzLnNldFN0YXRlUmVxdWlyZWQpIHsKICAgICAgICB0aGlzLnNldFN0YXRlKHRoaXMuc3RhdGUpOwogICAgICB9CiAgICB9IGVsc2UgaWYodGhpcy5yZW5kZXJBdE1vdW50ZWQpIHsKICAgICAgdGhpcy5jcmVhdGVGbGF0bWFwKCk7CiAgICB9CiAgfQp9Owo="},{"version":3,"sources":["FlatmapVuer.vue"],"names":[],"mappings":";AA0WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"FlatmapVuer.vue","sourceRoot":"node_modules/@abi-software/flatmapvuer/src/components","sourcesContent":["\n\n\n\n\n\n\n"]}]}