{"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:DQovKiBlc2xpbnQtZGlzYWJsZSBuby1hbGVydCwgbm8tY29uc29sZSAqLw0KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOw0KaW1wb3J0IFRvb2x0aXAgZnJvbSAiLi9Ub29sdGlwIjsNCmltcG9ydCBTZWxlY3Rpb25zR3JvdXAgZnJvbSAiLi9TZWxlY3Rpb25zR3JvdXAiOw0KaW1wb3J0IFRyZWVDb250cm9scyBmcm9tICIuL1RyZWVDb250cm9scyI7DQppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7DQppbXBvcnQgU3ZnTGVnZW5kcyBmcm9tICIuL2xlZ2VuZHMvU3ZnTGVnZW5kcyI7DQppbXBvcnQgew0KICBCdXR0b24sDQogIENvbCwNCiAgTG9hZGluZywNCiAgUmFkaW8sDQogIFJhZGlvR3JvdXAsDQogIFJvdw0KfSBmcm9tICJlbGVtZW50LXVpIjsNCmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsNCmltcG9ydCBsb2NhbGUgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlIjsNCmltcG9ydCBmbGF0bWFwTWFya2VyIGZyb20gIi4uL2ljb25zL2ZsYXRtYXAtbWFya2VyIjsNCmltcG9ydCB7RmxhdG1hcFF1ZXJpZXMsIGZpbmRUYXhvbm9teUxhYmVsfSBmcm9tICIuLi9zZXJ2aWNlcy9mbGF0bWFwUXVlcmllcy5qcyI7DQppbXBvcnQgeWVsbG93c3RhciBmcm9tICIuLi9pY29ucy95ZWxsb3dzdGFyIjsNCg0KbG9jYWxlLnVzZShsYW5nKTsNClZ1ZS51c2UoQnV0dG9uKTsNClZ1ZS51c2UoQ29sKTsNClZ1ZS51c2UoTG9hZGluZy5kaXJlY3RpdmUpOw0KVnVlLnVzZShSYWRpbyk7DQpWdWUudXNlKFJhZGlvR3JvdXApOw0KVnVlLnVzZShSb3cpOw0KY29uc3QgUmVzaXplU2Vuc29yID0gcmVxdWlyZSgiY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yIik7DQoNCmNvbnN0IHByb2Nlc3NUYXhvbiA9IChmbGF0bWFwQVBJLCB0YXhvbklkZW50aWZpZXJzKSA9PiB7DQogIGxldCBwcm9jZXNzZWQgPSBbXTsNCiAgdGF4b25JZGVudGlmaWVycy5mb3JFYWNoKHRheG9uID0+IHsNCiAgICBmaW5kVGF4b25vbXlMYWJlbChmbGF0bWFwQVBJLCB0YXhvbikudGhlbih2YWx1ZSA9PiB7DQogICAgICBjb25zdCBpdGVtID0geyB0YXhvbiwgbGFiZWw6IHZhbHVlfTsNCiAgICAgIHByb2Nlc3NlZC5wdXNoKGl0ZW0pOw0KICAgIH0pOw0KICB9KTsNCg0KICByZXR1cm4gcHJvY2Vzc2VkOw0KfQ0KDQpjb25zdCBwcm9jZXNzRlRVcyA9IChwYXJlbnQsIGtleSkgPT4gew0KICBjb25zdCBmdHVzID0gW107DQogIGxldCBpdGVtcyA9IHBhcmVudC5vcmdhbnMgPyBwYXJlbnQub3JnYW5zIDogcGFyZW50LmZ0dXM7DQogIGNvbnN0IGNoaWxkcmVuID0gaXRlbXMgPyBpdGVtcy5maWx0ZXIoDQogICAgKG9iaiwgaW5kZXgpID0+DQogICAgICBpdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0ubGFiZWwgPT09IG9iai5sYWJlbCkgPT09IGluZGV4DQogICAgKSA6IHVuZGVmaW5lZA0KICBpZiAoY2hpbGRyZW4pIHsNCiAgICBjaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHsNCiAgICAgIGNvbnN0IGRhdGEgPSB7DQogICAgICAgIGxhYmVsOiBjaGlsZC5sYWJlbCwNCiAgICAgICAgbW9kZWxzOiBjaGlsZC5tb2RlbHMsDQogICAgICAgIGtleTogYCR7a2V5fS4ke2NoaWxkLmxhYmVsfWAsDQogICAgICB9Ow0KICAgICAgY29uc3QgZ3JhbmRDaGlsZHJlbiA9IHByb2Nlc3NGVFVzKGNoaWxkLCBkYXRhLmtleSk7DQogICAgICBpZiAoZ3JhbmRDaGlsZHJlbi5sZW5ndGggPiAwKSB7DQogICAgICAgIGRhdGEuY2hpbGRyZW4gPSBncmFuZENoaWxkcmVuOw0KICAgICAgfQ0KICAgICAgZnR1cy5wdXNoKGRhdGEpOw0KICAgIH0pDQogIH0NCiAgcmV0dXJuIGZ0dXM7DQp9DQoNCmNvbnN0IHByb2Nlc3NTeXN0ZW1zID0gc3lzdGVtcyA9PiB7DQogIGNvbnN0IGFsbFN5c3RlbXMgPSBbXTsNCiAgaWYgKHN5c3RlbXMgJiYgc3lzdGVtcy5sZW5ndGggPiAwKSB7DQogICAgY29uc3QgZGF0YSA9IHsgbGFiZWw6ICJBbGwiLCBrZXk6ICJBbGwiLCBjaGlsZHJlbjogW10gfTsNCiAgICBzeXN0ZW1zLmZvckVhY2goc3lzdGVtID0+IHsNCiAgICAgIGNvbnN0IGNoaWxkID0gew0KICAgICAgICBjb2xvdXI6IHN5c3RlbS5jb2xvdXIsDQogICAgICAgIGVuYWJsZWQ6IHN5c3RlbS5lbmFibGVkLA0KICAgICAgICBsYWJlbDogc3lzdGVtLmlkLA0KICAgICAgICBrZXk6IHN5c3RlbS5pZCwNCiAgICAgIH07DQogICAgICBjb25zdCBjaGlsZHJlbiA9IHByb2Nlc3NGVFVzKHN5c3RlbSwgY2hpbGQua2V5KTsNCiAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKQ0KICAgICAgICBjaGlsZC5jaGlsZHJlbiA9IGNoaWxkcmVuOw0KICAgICAgZGF0YS5jaGlsZHJlbi5wdXNoKGNoaWxkKTsNCiAgICB9KTsNCg0KICAgIGFsbFN5c3RlbXMucHVzaChkYXRhKTsNCiAgfQ0KICANCiAgcmV0dXJuIGFsbFN5c3RlbXM7DQp9DQoNCmNvbnN0IGNyZWF0ZVVuZmlsbGVkVG9vbHRpcERhdGEgPSBmdW5jdGlvbiAoKXsNCiAgcmV0dXJuIHsNCiAgICBkZXN0aW5hdGlvbnM6IFtdLA0KICAgIG9yaWdpbnM6IFtdLA0KICAgIGNvbXBvbmVudHM6IFtdLA0KICAgIGRlc3RpbmF0aW9uc1dpdGhEYXRhc2V0czogW10sDQogICAgb3JpZ2luc1dpdGhEYXRhc2V0czogW10sDQogICAgY29tcG9uZW50c1dpdGhEYXRhc2V0czogW10sDQogICAgcmVzb3VyY2U6IHVuZGVmaW5lZA0KICB9DQp9DQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogIkZsYXRtYXBWdWVyIiwNCiAgY29tcG9uZW50czogew0KICAgIE1hcFN2Z0ljb24sDQogICAgTWFwU3ZnU3ByaXRlQ29sb3IsDQogICAgVG9vbHRpcCwNCiAgICBUcmVlQ29udHJvbHMsDQogICAgU2VsZWN0aW9uc0dyb3VwLA0KICAgIFN2Z0xlZ2VuZHMNCiAgfSwNCiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbigpIHsNCiAgICB0aGlzLm1hcE1hbmFnZXIgPSB1bmRlZmluZWQ7DQogICAgdGhpcy5tYXBJbXAgPSB1bmRlZmluZWQ7DQogICAgLy9UaGUgc3RhdGUgd2F0Y2hlciBtYXkgdHJpZ2dlcmVkIGJlZm9yZQ0KICAgIC8vY3JlYXRlZCBjYXVzaW5nIGlzc3VlLCBUaGlzIGZsYWcgd2lsbA0KICAgIC8vcmVzb2x2ZSB0aGlzIGlzc3VlLg0KICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IGZhbHNlOw0KICB9LA0KICBtZXRob2RzOiB7DQogICAgdmlld0xhdGVzdE1hcDogZnVuY3Rpb24oKSB7DQogICAgICBsZXQgYmlvbG9naWNhbFNleCA9IHRoaXMuYmlvbG9naWNhbFNleCA/IHRoaXMuYmlvbG9naWNhbFNleCA6IHVuZGVmaW5lZDsNCiAgICAgIC8vSHVtYW4gcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZw0KICAgICAgaWYgKHRoaXMuZW50cnkgPT09ICJOQ0JJVGF4b246OTYwNiIpIHsNCiAgICAgICAgYmlvbG9naWNhbFNleCA9ICJQQVRPOjAwMDAzODQiOw0KICAgICAgfQ0KICAgICAgY29uc3Qgc3RhdGUgPSB7DQogICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LA0KICAgICAgICBiaW9sb2dpY2FsU2V4LA0KICAgICAgICB2aWV3cG9ydDogdGhpcy5tYXBJbXAuZ2V0U3RhdGUoKQ0KICAgICAgfTsNCiAgICAgIHRoaXMuJGVtaXQoInZpZXctbGF0ZXN0LW1hcCIsIHN0YXRlKTsNCiAgICB9LA0KICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24oY29sb3VyKSB7DQogICAgICB0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kID0gY29sb3VyOw0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRDb2xvdXIodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7DQogICAgICB9DQogICAgfSwNCiAgICB0b2dnbGVEcmF3ZXI6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gIXRoaXMuZHJhd2VyT3BlbjsNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBjb2xvdXIvZ3JleXNjYWxlIG9mIG9yZ2Fucy4NCiAgICAgKi8NCiAgICBzZXRDb2xvdXI6IGZ1bmN0aW9uKGZsYWcpIHsNCiAgICAgIHRoaXMuY29sb3VyUmFkaW8gPSBmbGFnOw0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7IGNvbG91cjogZmxhZywgb3V0bGluZTogdGhpcy5vdXRsaW5lc1JhZGlvIH0pOw0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIG91dGxpbmVzIGYgb3JnYW5zLg0KICAgICAqLw0KICAgIHNldE91dGxpbmVzOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICB0aGlzLm91dGxpbmVSYWRpbyA9IGZsYWc7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuc2V0Q29sb3VyKHsgY29sb3VyOiB0aGlzLmNvbG91clJhZGlvLCBvdXRsaW5lOiBmbGFnIH0pOw0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIHBhdGhzIHRvIGRlZmF1bHQuDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKi8NCiAgICByZXNldFZpZXc6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnJlc2V0TWFwKCk7DQogICAgICAgIGlmICh0aGlzLiRyZWZzLmNlbnRyZWxpbmVzU2VsZWN0aW9uKSB7DQogICAgICAgICAgdGhpcy4kcmVmcy5jZW50cmVsaW5lc1NlbGVjdGlvbi5yZXNldCgpOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLiRyZWZzLnNrY2FuU2VsZWN0aW9uKSB7DQogICAgICAgICAgdGhpcy4kcmVmcy5za2NhblNlbGVjdGlvbi5yZXNldCgpOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMubGF5ZXJzU2VsZWN0aW9uLnJlc2V0KCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMuJHJlZnMuc3lzdGVtc1NlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24ucmVzZXQoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy4kcmVmcy5wYXRod2F5c1NlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24ucmVzZXQoKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gem9vbSBpbi4NCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLg0KICAgICAqLw0KICAgIHpvb21JbjogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuem9vbUluKCk7DQogICAgICB9DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIG91dC4NCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLg0KICAgICAqLw0KICAgIHpvb21PdXQ6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnpvb21PdXQoKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNlbnRyZUxpbmVzU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVDZW50cmVsaW5lcyhwYXlsb2FkLnZhbHVlKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHNja2FuU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2hlY2tBbGxTQ0tBTjogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgoa2V5LCBwYXlsb2FkLnZhbHVlKSk7DQogICAgICB9DQogICAgfSwNCiAgICBzeXN0ZW1TZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVN5c3RlbShwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjaGVja0FsbFN5c3RlbXM6IGZ1bmN0aW9uKGZsYWcpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLnN5c3RlbXNbMF0uY2hpbGRyZW4uZm9yRWFjaChrZXkgPT4gdGhpcy5tYXBJbXAuZW5hYmxlU3lzdGVtKGtleS5sYWJlbCwgZmxhZykpOw0KICAgICAgfQ0KICAgIH0sDQogICAgZnR1U2VsZWN0ZWQ6IGZ1bmN0aW9uKG1vZGVscykgew0KICAgICAgdGhpcy5zZWFyY2hBbmRTaG93UmVzdWx0KG1vZGVscywgdHJ1ZSk7DQogICAgfSwNCiAgICBsYXllcnNTZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUxheWVyKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNoZWNrQWxsTGF5ZXJzOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZUxheWVyKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgdGF4b25zU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVDb25uZWN0aXZpdHlCeVRheG9uSWRzKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNoZWNrQWxsVGF4b25zOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMoa2V5LCBwYXlsb2FkLnZhbHVlKSk7DQogICAgICB9DQogICAgfSwNCiAgICBwYXRod2F5c1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGF0aChwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjaGVja0FsbFBhdGh3YXlzOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZVBhdGgoa2V5LCBwYXlsb2FkLnZhbHVlKSk7DQogICAgICB9DQogICAgfSwNCiAgICBlbmFibGVQYW5ab29tRXZlbnRzOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICB0aGlzLm1hcEltcC5lbmFibGVQYW5ab29tRXZlbnRzKGZsYWcpOw0KICAgIH0sDQogICAgZXZlbnRDYWxsYmFjazogZnVuY3Rpb24oKSB7DQogICAgICByZXR1cm4gKGV2ZW50VHlwZSwgZGF0YSwgLi4uYXJncykgPT4gew0KICAgICAgICBpZiAoZXZlbnRUeXBlICE9PSAicGFuLXpvb20iKSB7DQogICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhLmxhYmVsOw0KICAgICAgICAgIGNvbnN0IHJlc291cmNlID0gW2RhdGEubW9kZWxzXTsNCiAgICAgICAgICBjb25zdCB0YXhvbm9teSA9IHRoaXMuZW50cnk7DQogICAgICAgICAgY29uc3QgYmlvbG9naWNhbFNleCA9IHRoaXMuYmlvbG9naWNhbFNleDsNCiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gew0KICAgICAgICAgICAgZGF0YXNldDogZGF0YS5kYXRhc2V0LA0KICAgICAgICAgICAgYmlvbG9naWNhbFNleDogYmlvbG9naWNhbFNleCwNCiAgICAgICAgICAgIHRheG9ub215OiB0YXhvbm9teSwNCiAgICAgICAgICAgIHJlc291cmNlOiByZXNvdXJjZSwNCiAgICAgICAgICAgIGxhYmVsOiBsYWJlbCwNCiAgICAgICAgICAgIGZlYXR1cmU6IGRhdGEsDQogICAgICAgICAgICB1c2VyRGF0YTogYXJncywNCiAgICAgICAgICAgIGV2ZW50VHlwZTogZXZlbnRUeXBlLA0KICAgICAgICAgICAgcHJvdmVuYW5jZVRheG9ub215OiBkYXRhLnRheG9ucyA/IEpTT04ucGFyc2UoZGF0YS50YXhvbnMpIDogdW5kZWZpbmVkDQogICAgICAgICAgfTsNCiAgICAgICAgICBpZiAoZXZlbnRUeXBlID09PSAiY2xpY2siKSB7DQogICAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmUgPSBkYXRhLm1vZGVscyA/IGRhdGEubW9kZWxzIDogIiI7DQogICAgICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICJtb3VzZWVudGVyIikgew0KICAgICAgICAgICAgdGhpcy5jdXJyZW50SG92ZXIgPSBkYXRhLm1vZGVscyA/IGRhdGEubW9kZWxzIDogIiI7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEudHlwZSAhPT0gIm1hcmtlciIgJiYgZXZlbnRUeXBlID09PSAiY2xpY2siKXsNCiAgICAgICAgICAgIHRoaXMuY2hlY2tBbmRDcmVhdGVQb3B1cHMocGF5bG9hZCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHRoaXMuJGVtaXQoInJlc291cmNlLXNlbGVjdGVkIiwgcGF5bG9hZCk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy4kZW1pdCgicGFuLXpvb20tY2FsbGJhY2siLCBkYXRhKTsNCiAgICAgICAgfQ0KICAgICAgfTsNCiAgICB9LA0KICAgIC8vIGNoZWNrTmV1cm9uQ2xpY2tlZCBzaG93cyBhIG5ldXJvbiBwYXRoIHBvcCB1cCBpZiBhIHBhdGggd2FzIHJlY2VudGx5IGNsaWNrZWQNCiAgICBjaGVja0FuZENyZWF0ZVBvcHVwczogIGFzeW5jIGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgIC8vIENhbGwgZmxhdG1hcCBkYXRhYmFzZSB0byBnZXQgdGhlIGNvbm5lY3Rpb24gZGF0YQ0KICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmZsYXRtYXBRdWVyaWVzLnJldHJpZXZlRmxhdG1hcEtub3dsZWRnZUZvckV2ZW50KGRhdGEpDQogICAgICAvLyBUaGUgbGluZSBiZWxvdyBvbmx5IGNyZWF0ZXMgdGhlIHRvb2x0aXAgaWYgc29tZSBkYXRhIHdhcyBmb3VuZCBvbiB0aGUgcGF0aCANCiAgICAgIC8vIHJlc3VsdCAwIGlzIHRoZSBjb25uZWN0aW9uLCByZXN1bHQgMSBpcyB0aGUgcHVibWVkIHJlc3VsdHMgZnJvbSBmbGF0bWFwDQogICAgICBpZihyZXN1bHRzWzBdIHx8IHJlc3VsdHNbMV0gfHwoIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzICYmIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzLmxlbmd0aCA+IDApKXsNCiAgICAgICAgdGhpcy5yZXNvdXJjZUZvclRvb2x0aXAgPSAgZGF0YS5yZXNvdXJjZVswXTsNCiAgICAgICAgdGhpcy5jcmVhdGVUb29sdGlwRnJvbU5ldXJvbkN1cmF0aW9uKGRhdGEpOw0KICAgICAgfSANCiAgICB9LA0KICAgIHBvcFVwQ3NzSGFja3M6IGZ1bmN0aW9uKCkgew0KICAgICAgLy8gQmVsb3cgaXMgYSBoYWNrIHRvIHJlbW92ZSBmbGF0bWFwIHRvb2x0aXBzIHdoaWxlIHBvcHVwIGlzIG9wZW4NCiAgICAgIGxldCBmdG9vbHRpcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mbGF0bWFwLXRvb2x0aXAtcG9wdXAiKTsNCiAgICAgIGlmIChmdG9vbHRpcCkgZnRvb2x0aXAuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpLnN0eWxlLmRpc3BsYXkgPQ0KICAgICAgICAiYmxvY2siOw0KICAgICAgdGhpcy4kcmVmcy50b29sdGlwLiRlbC5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOw0KICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikub25jbGljayA9ICgpID0+IHsNCiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZsYXRtYXAtdG9vbHRpcC1wb3B1cCIpLnN0eWxlLmRpc3BsYXkgPQ0KICAgICAgICAgICJibG9jayI7DQogICAgICB9Ow0KICAgIH0sDQogICAgY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbjogYXN5bmMgZnVuY3Rpb24oZGF0YSkgew0KICAgICAgdGhpcy50b29sdGlwRW50cnkgPSBhd2FpdCB0aGlzLmZsYXRtYXBRdWVyaWVzLmNyZWF0ZVRvb2x0aXBEYXRhKGRhdGEpOw0KICAgICAgdGhpcy5kaXNwbGF5VG9vbHRpcCgpOw0KICAgIH0sDQogICAgLy8gS2VlcGluZyB0aGlzIGFzIGFuIEFQSQ0KICAgIHNob3dQb3B1cDogZnVuY3Rpb24oZmVhdHVyZUlkLCBub2RlLCBvcHRpb25zKSB7DQogICAgICBsZXQgbXlPcHRpb25zID0gb3B0aW9uczsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBpZiAobXlPcHRpb25zKSB7DQogICAgICAgICAgaWYgKCFteU9wdGlvbnMuY2xhc3NOYW1lKSBteU9wdGlvbnMuY2xhc3NOYW1lID0gImN1c3RvbS1wb3B1cCI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgbXlPcHRpb25zID0geyBjbGFzc05hbWU6ICJjdXN0b20tcG9wdXAiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiB0cnVlIH07DQogICAgICAgIH0NCiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGZlYXR1cmVJZCwgbm9kZSwgbXlPcHRpb25zKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHNob3dNYXJrZXJQb3B1cDogZnVuY3Rpb24oZmVhdHVyZUlkLCBub2RlLCBvcHRpb25zKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd01hcmtlclBvcHVwKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucyk7DQogICAgICB9DQogICAgfSwNCiAgICBjbG9zZU1pbmltYXA6IGZ1bmN0aW9uKCl7DQogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOyAvLyBmaW5kIG1pbmltYXANCiAgICAgIGlmICh0aGlzLm1pbmltYXBTbWFsbCkgeyAvL3N3aXRjaCB0aGUgY2xhc3NlcyBvbiB0aGUgbWluaW1hcA0KICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LmFkZCgnZW5sYXJnZScpOw0KICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LnJlbW92ZSgnc2hyaW5rJyk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LmFkZCgnc2hyaW5rJyk7DQogICAgICAgIG1pbmltYXBFbC5jbGFzc0xpc3QucmVtb3ZlKCdlbmxhcmdlJyk7DQogICAgICB9DQogICAgICB0aGlzLm1pbmltYXBTbWFsbCA9ICF0aGlzLm1pbmltYXBTbWFsbDsNCiAgICB9LA0KICAgIGFkZFJlc2l6ZUJ1dHRvblRvTWluaW1hcDogZnVuY3Rpb24oKXsNCiAgICAgIGxldCBtaW5pbWFwRWwgPSB0aGlzLiRyZWZzLmZsYXRtYXBDb250YWluZXIucXVlcnlTZWxlY3RvcignLm1hcGxpYnJlZ2wtY3RybC1taW5pbWFwJyk7DQogICAgICBpZiAobWluaW1hcEVsKXsNCiAgICAgICAgdGhpcy4kcmVmcy5taW5pbWFwUmVzaXplLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy4kcmVmcy5taW5pbWFwUmVzaXplKTsNCiAgICAgICAgbWluaW1hcEVsLmFwcGVuZENoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7DQogICAgICAgIHRoaXMubWluaW1hcFJlc2l6ZVNob3cgPSB0cnVlOw0KICAgICAgfQ0KICAgIH0sDQogICAgc2V0SGVscE1vZGU6IGZ1bmN0aW9uKGhlbHBNb2RlKSB7DQogICAgICBpZiAoaGVscE1vZGUpIHsNCiAgICAgICAgdGhpcy5pbkhlbHAgPSB0cnVlOw0KICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goaXRlbSA9PiB7DQogICAgICAgICAgaXRlbS52YWx1ZSA9IHRydWU7DQogICAgICAgIH0pOw0KICAgICAgICB0aGlzLm9wZW5GbGF0bWFwSGVscFBvcHVwKCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOw0KICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goaXRlbSA9PiB7DQogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOw0KICAgICAgICB9KTsNCiAgICAgICAgdGhpcy5jbG9zZUZsYXRtYXBIZWxwUG9wdXAoKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHNob3dUb29saXRpcDogZnVuY3Rpb24odG9vbHRpcE51bWJlcikgew0KICAgICAgaWYgKCF0aGlzLmluSGVscCkgew0KICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSk7DQogICAgICAgIHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0gPSBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW3Rvb2x0aXBOdW1iZXJdLnZhbHVlID0gdHJ1ZTsNCiAgICAgICAgfSwgNTAwKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGhpZGVUb29saXRpcDogZnVuY3Rpb24odG9vbHRpcE51bWJlcikgew0KICAgICAgaWYgKCF0aGlzLmluSGVscCkgew0KICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSk7DQogICAgICAgIHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0gPSBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW3Rvb2x0aXBOdW1iZXJdLnZhbHVlID0gZmFsc2U7DQogICAgICAgIH0sIDUwMCk7DQogICAgICB9DQogICAgfSwNCiAgICBkaXNwbGF5VG9vbHRpcDogZnVuY3Rpb24oKSB7DQogICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoDQogICAgICAgIHRoaXMubWFwSW1wLm1vZGVsRmVhdHVyZUlkcyh0aGlzLnJlc291cmNlRm9yVG9vbHRpcClbMF0sDQogICAgICAgIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwsDQogICAgICAgIHsgY2xhc3NOYW1lOiAiZmxhdG1hcHZ1ZXItcG9wb3ZlciIsIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IHRydWUgfQ0KICAgICAgKTsNCiAgICAgIHRoaXMucG9wVXBDc3NIYWNrcygpOw0KICAgIH0sDQogICAgb3BlbkZsYXRtYXBIZWxwUG9wdXA6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIGxldCBoZWFydElkID0gdGhpcy5tYXBJbXAuZmVhdHVyZUlkc0Zvck1vZGVsKCJVQkVST046MDAwMDk0OCIpWzBdOw0KICAgICAgICBjb25zdCBlbG0gPSAiQ2xpY2sgZm9yIG1vcmUgaW5mb3JtYXRpb24iOw0KICAgICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoaGVhcnRJZCwgZWxtLCB7DQogICAgICAgICAgYW5jaG9yOiAidG9wIiwNCiAgICAgICAgICBjbGFzc05hbWU6ICJmbGF0bWFwLXBvcHVwLXBvcHBlciINCiAgICAgICAgfSk7DQogICAgICB9DQogICAgfSwNCiAgICBjbG9zZUZsYXRtYXBIZWxwUG9wdXA6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy4kZWwNCiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpDQogICAgICAgIC5mb3JFYWNoKGl0ZW0gPT4gew0KICAgICAgICAgIGl0ZW0uY2xpY2soKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBnZXRMYWJlbHM6IGZ1bmN0aW9uKCkgew0KICAgICAgbGV0IGxhYmVscyA9IFtdOw0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIGxldCBhbm5vdGF0aW9ucyA9IHRoaXMubWFwSW1wLmFubm90YXRpb25zOw0KICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiBhbm5vdGF0aW9ucy52YWx1ZXMoKSkgew0KICAgICAgICAgIGlmICh2YWx1ZS5sYWJlbCkgbGFiZWxzLnB1c2godmFsdWUubGFiZWwpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQobGFiZWxzKSk7DQogICAgICB9DQogICAgfSwNCiAgICBnZXRTdGF0ZTogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgbGV0IHN0YXRlID0gew0KICAgICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LA0KICAgICAgICAgIHZpZXdwb3J0OiB0aGlzLm1hcEltcC5nZXRTdGF0ZSgpDQogICAgICAgIH07DQogICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLm1hcEltcC5nZXRJZGVudGlmaWVyKCk7DQogICAgICAgIGlmICh0aGlzLmJpb2xvZ2ljYWxTZXgpDQogICAgICAgICAgc3RhdGVbJ2Jpb2xvZ2ljYWxTZXgnXSA9IHRoaXMuYmlvbG9naWNhbFNleDsNCiAgICAgICAgZWxzZSBpZiAoaWRlbnRpZmllciAmJiBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXgpDQogICAgICAgICAgc3RhdGVbJ2Jpb2xvZ2ljYWxTZXgnXSA9IGlkZW50aWZpZXIuYmlvbG9naWNhbFNleDsNCiAgICAgICAgaWYgKGlkZW50aWZpZXIgJiYgaWRlbnRpZmllci51dWlkKQ0KICAgICAgICAgIHN0YXRlWyd1dWlkJ10gPSBpZGVudGlmaWVyLnV1aWQ7DQogICAgICAgIHJldHVybiBzdGF0ZTsNCiAgICAgIH0NCiAgICAgIHJldHVybiB1bmRlZmluZWQ7DQogICAgfSwNCiAgICBzZXRTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsNCiAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICBpZiAodGhpcy5tYXBJbXAgJiYgDQogICAgICAgICAgKHN0YXRlLmVudHJ5ICYmICh0aGlzLmVudHJ5ID09IHN0YXRlLmVudHJ5KSkgJiYNCiAgICAgICAgICAoIXN0YXRlLmJpb2xvZ2ljYWxTZXggfHwgKHN0YXRlLmJpb2xvZ2ljYWxTZXggPT09IHRoaXMuYmlvbG9naWNhbFNleCkpKSANCiAgICAgICAgew0KICAgICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkgew0KICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoc3RhdGUpOw0KICAgICAgICB9DQogICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IGZhbHNlOw0KICAgICAgfQ0KICAgIH0sDQogICAgcmVzdG9yZU1hcFN0YXRlOiBmdW5jdGlvbihzdGF0ZSkgew0KICAgICAgaWYgKHN0YXRlKSB7DQogICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkNCiAgICAgICAgICB0aGlzLm1hcEltcC5zZXRTdGF0ZShzdGF0ZS52aWV3cG9ydCk7DQogICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXJtKQ0KICAgICAgICAgIHRoaXMuc2VhcmNoQW5kU2hvd1Jlc3VsdChzdGF0ZS5zZWFyY2hUZXJtLCB0cnVlKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNyZWF0ZUZsYXRtYXA6IGZ1bmN0aW9uKHN0YXRlKSB7DQogICAgICBpZiAoIXRoaXMubWFwSW1wICYmICF0aGlzLmxvYWRpbmcpIHsNCiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsNCiAgICAgICAgbGV0IG1pbmltYXAgPSBmYWxzZTsNCiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1pbmltYXApIHsNCiAgICAgICAgICBtaW5pbWFwID0geyBwb3NpdGlvbjogInRvcC1yaWdodCIgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vQXMgZm9yIGZsYXRtYXAtdmlld2VyQDIuMi43LCBzZWUgYmVsb3cgZm9yIHRoZSBkb2N1bWVudGF0aW9uIA0KICAgICAgICAvL2ZvciB0aGUgaWRlbnRpZmllcjoNCg0KICAgICAgICAvL0BhcmcgaWRlbnRpZmllciB7c3RyaW5nfE9iamVjdH0NCiAgICAgICAgLy8gQSBzdHJpbmcgb3Igb2JqZWN0IGlkZW50aWZ5aW5nIHRoZSBtYXAgdG8gbG9hZC4gSWYgYSBzdHJpbmcgaXRzDQogICAgICAgIC8vIHZhbHVlIGNhbiBiZSBlaXRoZXIgdGhlIG1hcCdzIGBgdXVpZGBgLCBhc3NpZ25lZCBhdCBnZW5lcmF0aW9uIHRpbWUsDQogICAgICAgIC8vIG9yIHRheG9uIGFuZCBiaW9sb2dpY2FsIHNleCBpZGVudGlmaWVycyBvZiB0aGUgc3BlY2llcyB0aGF0IHRoZSBtYXANCiAgICAgICAgLy8gcmVwcmVzZW50cy4gVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGEgbWFwIGlzIGxvYWRlZCB1bmxlc3MgaXQgaGFzIGJlZW4NCiAgICAgICAgLy8gaWRlbnRpZmllZCB1c2luZyBhIGBgdXVpZGBgIChzZWUgYmVsb3cpLg0KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudGF4b24ge3N0cmluZ30gVGhlIHRheG9uIGlkZW50aWZpZXIgb2YgdGhlIHNwZWNpZXMgDQogICAgICAgIC8vICByZXByZXNlbnRlZCBieSB0aGUgbWFwLiBUaGlzIGlzIHNwZWNpZmllZCBhcyBtZXRhZGF0YSBpbiB0aGUgbWFwJ3Mgc291cmNlIGZpbGUuDQogICAgICAgIC8vIEBhcmcgaWRlbnRpZmllci5iaW9sb2dpY2FsU2V4IHtzdHJpbmd9IFRoZSBiaW9sb2dpY2FsIHNleCBvZiB0aGUgc3BlY2llcw0KICAgICAgICAvLyByZXByZXNlbnRlZCBieSB0aGUgbWFwLiBUaGlzIGlzIHNwZWNpZmllZCBhcyBtZXRhZGF0YWluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4NCiAgICAgICAgLy8gQGFyZyBpZGVudGlmaWVyLnV1aWQge3N0cmluZ30gVGhlIHVuaXF1ZSB1dWlkIHRoZSBmbGF0bWFwLiBJZiBnaXZlbiB0aGVuIHRoaXMgZXhhY3QgbWFwIHdpbGwNCiAgICAgICAgLy8gIGJlIGxvYWRlZCwgb3ZlcnJpZGluZyBgYHRheG9uYGAgYW5kIGBgYmlvbG9naWNhbFNleGBgLg0KDQogICAgICAgIGxldCBpZGVudGlmaWVyID0geyB0YXhvbjogdGhpcy5lbnRyeSB9Ow0KICAgICAgICBpZiAodGhpcy51dWlkKSB7DQogICAgICAgICAgaWRlbnRpZmllci51dWlkID0gdGhpcy51dWlkOw0KICAgICAgICB9DQogICAgICAgIC8vVGhpcyBub3cgaGFuZGxlIHRoZSB1c2VzIG9mIHV1aWQgd2hlbiByZXN1bWluZyBzdGF0ZXMNCiAgICAgICAgaWYgKHN0YXRlKSB7DQogICAgICAgICAgaWYgKHN0YXRlLnV1aWQpIHsNCiAgICAgICAgICAgIGlkZW50aWZpZXIgPSB7IHV1aWQ6IHN0YXRlLnV1aWQgfTsNCiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmVudHJ5KSB7DQogICAgICAgICAgICBpZGVudGlmaWVyLnRheG9uID0gc3RhdGUuZW50cnk7DQogICAgICAgICAgICBpZiAoc3RhdGUuYmlvbG9naWNhbFNleCkgew0KICAgICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSBzdGF0ZS5iaW9sb2dpY2FsU2V4Ow0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZGVudGlmaWVyLnRheG9uID09PSAiTkNCSVRheG9uOjk2MDYiKSB7DQogICAgICAgICAgICAgIC8vRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0iUEFUTzowMDAwMzg0IjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy8gU2V0IHRoZSBiaW9sb2ljYWxTZXggbm93IGlmIG1hcCBpcyBub3QgcmVzdW1lZCBmcm9tDQogICAgICAgICAgLy8gYSBzYXZlZCBzdGF0ZQ0KICAgICAgICAgIGlmICh0aGlzLmJpb2xvZ2ljYWxTZXgpIHsNCiAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9IHRoaXMuYmlvbG9naWNhbFNleDsNCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBsZXQgcHJvbWlzZTEgPSB0aGlzLm1hcE1hbmFnZXIubG9hZE1hcCgNCiAgICAgICAgICBpZGVudGlmaWVyLA0KICAgICAgICAgIHRoaXMuJHJlZnMuZGlzcGxheSwNCiAgICAgICAgICB0aGlzLmV2ZW50Q2FsbGJhY2soKSwNCiAgICAgICAgICB7DQogICAgICAgICAgICAvL2Z1bGxzY3JlZW5Db250cm9sOiBmYWxzZSwNCiAgICAgICAgICAgIC8vYW5ub3RhdGFibGU6IGZhbHNlLA0KICAgICAgICAgICAgLy9kZWJ1ZzogdHJ1ZSwNCiAgICAgICAgICAgIGZlYXR1cmVJbmZvOiB0aGlzLmZlYXR1cmVJbmZvLA0KICAgICAgICAgICAgIm1pbi16b29tIjogdGhpcy5taW5ab29tLA0KICAgICAgICAgICAgbGF5ZXJDb250cm9sOiB0cnVlLA0KICAgICAgICAgICAgcGF0aENvbnRyb2xzOiB0cnVlLA0KICAgICAgICAgICAgc2VhcmNoYWJsZTogdGhpcy5zZWFyY2hhYmxlLA0KICAgICAgICAgICAgdG9vbHRpcHM6IHRoaXMudG9vbHRpcHMsDQogICAgICAgICAgICBtaW5pbWFwOiBtaW5pbWFwDQogICAgICAgICAgfQ0KICAgICAgICApOw0KICAgICAgICBwcm9taXNlMS50aGVuKHJldHVybmVkT2JqZWN0ID0+IHsNCiAgICAgICAgICB0aGlzLm1hcEltcCA9IHJldHVybmVkT2JqZWN0Ow0KICAgICAgICAgIHRoaXMub25GbGF0bWFwUmVhZHkoKTsNCiAgICAgICAgICBpZiAodGhpcy5fc3RhdGVUb0JlU2V0KQ0KICAgICAgICAgICAgdGhpcy5yZXN0b3JlTWFwU3RhdGUodGhpcy5fc3RhdGVUb0JlU2V0KTsNCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHN0YXRlKTsNCiAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgfSBlbHNlIGlmIChzdGF0ZSkgew0KICAgICAgICB0aGlzLl9zdGF0ZVRvQmVTZXQgPSB7IHZpZXdwb3J0OiBzdGF0ZS52aWV3cG9ydCwgc2VhcmNoVGVybTogc3RhdGUuc2VhcmNoVGVybSB9Ow0KICAgICAgICBpZiAodGhpcy5tYXBJbXAgJiYgIXRoaXMubG9hZGluZykNCiAgICAgICAgICB0aGlzLnJlc3RvcmVNYXBTdGF0ZSh0aGlzLl9zdGF0ZVRvQmVTZXQpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKSB7DQogICAgICBjb25zdCBlbGVtID0gdGhpcy4kcmVmcy5kaXNwbGF5Ow0KICAgICAgaWYgKGVsZW0pIHsNCiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW0pOw0KICAgICAgICBjb25zdCBwYWRkaW5nID0gcGFyc2VJbnQoY29tcHV0ZWQucGFkZGluZ1RvcCkgKyBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nQm90dG9tKTsNCiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbS5jbGllbnRIZWlnaHQgLSBwYWRkaW5nOw0KICAgICAgICB0aGlzLnBhdGh3YXlzTWF4SGVpZ2h0ID0gaGVpZ2h0IC0gMTcwOw0KICAgICAgfQ0KICAgIH0sDQogICAgbWFwUmVzaXplOiBmdW5jdGlvbigpIHsNCiAgICAgIHRyeSB7DQogICAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsNCiAgICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgICAgdGhpcy5tYXBJbXAucmVzaXplKCk7DQogICAgICAgICAgdGhpcy5zaG93TWluaW1hcCh0aGlzLmRpc3BsYXlNaW5pbWFwKTsNCiAgICAgICAgICBpZiAodGhpcy5tYXBJbXAuX21pbmltYXApIHsNCiAgICAgICAgICAgICAgdGhpcy5tYXBJbXAuX21pbmltYXAucmVzaXplKCk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9IGNhdGNoIHsNCiAgICAgICAgY29uc29sZS5lcnJvcigiTWFwIHJlc2l6ZSBlcnJvciIpOw0KICAgICAgfQ0KICAgIH0sDQogICAgb25GbGF0bWFwUmVhZHk6IGZ1bmN0aW9uKCl7DQogICAgICAvLyBvbkZsYXRtYXBSZWFkeSBpcyB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIHJ1biBpbW1lZGlhdGVseSBhZnRlciB0aGUgZmxhdG1hcCBpcyBsb2FkZWQNCiAgICAgIHRoaXMuc2Vuc29yID0gbmV3IFJlc2l6ZVNlbnNvcigNCiAgICAgICAgdGhpcy4kcmVmcy5kaXNwbGF5LA0KICAgICAgICB0aGlzLm1hcFJlc2l6ZQ0KICAgICAgKTsNCiAgICAgIGlmICh0aGlzLm1hcEltcC5vcHRpb25zICYmIHRoaXMubWFwSW1wLm9wdGlvbnMuc3R5bGUgPT09ICJmdW5jdGlvbmFsIikgew0KICAgICAgICB0aGlzLmlzRkMgPSB0cnVlOw0KICAgICAgfQ0KICAgICAgdGhpcy5tYXBJbXAuc2V0QmFja2dyb3VuZE9wYWNpdHkoMSk7DQogICAgICB0aGlzLmJhY2tncm91bmRDaGFuZ2VDYWxsYmFjayh0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kKTsNCiAgICAgIHRoaXMucGF0aHdheXMgPSB0aGlzLm1hcEltcC5wYXRoVHlwZXMoKTsNCiAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNlbnRyZWxpbmVzKGZhbHNlKTsNCiAgICAgIC8vRGlzYWJsZSBsYXllcnMgZm9yIG5vdw0KICAgICAgLy90aGlzLmxheWVycyA9IHRoaXMubWFwSW1wLmdldExheWVycygpOw0KICAgICAgdGhpcy5zeXN0ZW1zID0gcHJvY2Vzc1N5c3RlbXModGhpcy5tYXBJbXAuZ2V0U3lzdGVtcygpKTsNCiAgICAgIHRoaXMudGF4b25Db25uZWN0aXZpdHkgPSBwcm9jZXNzVGF4b24odGhpcy5mbGF0bWFwQVBJLCB0aGlzLm1hcEltcC50YXhvbklkZW50aWZpZXJzKTsNCiAgICAgIHRoaXMuYWRkUmVzaXplQnV0dG9uVG9NaW5pbWFwKCk7DQogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsNCiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9IHRydWU7DQogICAgICB0aGlzLm1hcFJlc2l6ZSgpOw0KICAgICAgdGhpcy4kZW1pdCgicmVhZHkiLCB0aGlzKTsNCiAgICB9LA0KICAgIHNob3dNaW5pbWFwOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApDQogICAgICAgIHRoaXMubWFwSW1wLnNob3dNaW5pbWFwKGZsYWcpOw0KICAgIH0sDQogICAgc2hvd1BhdGh3YXlzRHJhd2VyOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICB0aGlzLmRyYXdlck9wZW4gPSBmbGFnOw0KICAgIH0sDQogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gZGlzcGxheSBmZWF0dXJlcyB3aXRoIGFubm90YXRpb24gbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIHRlcm0sDQogICAgICogd2l0aCB0aGUgb3B0aW9uIHRvIGRpc3BsYXkgdGhlIGxhYmVsIHVzaW5nIGRpc3BsYXlMYWJlbCBmbGFnLiANCiAgICAgKi8NCiAgICBzZWFyY2hBbmRTaG93UmVzdWx0OiBmdW5jdGlvbih0ZXJtLCBkaXNwbGF5TGFiZWwpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBpZiAodGVybSA9PT0gdW5kZWZpbmVkIHx8IHRlcm0gPT09ICIiKSB7DQogICAgICAgICAgdGhpcy5tYXBJbXAuY2xlYXJTZWFyY2hSZXN1bHRzKCk7DQogICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IHRoaXMubWFwSW1wLnNlYXJjaCh0ZXJtKTsNCiAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHMgJiYNCiAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0cy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB0aGlzLm1hcEltcC5zaG93U2VhcmNoUmVzdWx0cyhzZWFyY2hSZXN1bHRzKTsNCiAgICAgICAgICAgIGlmIChkaXNwbGF5TGFiZWwgJiYgDQogICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQgJiYgDQogICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS50ZXh0KSB7DQogICAgICAgICAgICAgIGNvbnN0IGFubm90YXRpb24gPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uKHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQpOw0KICAgICAgICAgICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoDQogICAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCwNCiAgICAgICAgICAgICAgICBhbm5vdGF0aW9uLmxhYmVsLA0KICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwgcG9zaXRpb25BdExhc3RDbGljazogZmFsc2UsIHByZXNlcnZlU2VsZWN0aW9uOiB0cnVlIH0NCiAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHRoaXMubWFwSW1wLmNsZWFyU2VhcmNoUmVzdWx0cygpOw0KICAgICAgICB9DQogICAgICB9DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBHZXQgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGVkIHRlcm1zDQogICAgICovDQogICAgc2VhcmNoU3VnZ2VzdGlvbnM6IGZ1bmN0aW9uKHRlcm0pIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkNCiAgICAgICAgcmV0dXJuIHRoaXMubWFwSW1wLnNlYXJjaCh0ZXJtKTsNCiAgICAgIHJldHVybiBbXTsNCiAgICB9LA0KICB9LA0KICBwcm9wczogew0KICAgIGVudHJ5OiBTdHJpbmcsDQogICAgdXVpZDogU3RyaW5nLA0KICAgIGJpb2xvZ2ljYWxTZXg6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICAgIGRlZmF1bHQ6ICIiDQogICAgfSwNCiAgICBmZWF0dXJlSW5mbzogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgfSwNCiAgICBtaW5ab29tOiB7DQogICAgICB0eXBlOiBOdW1iZXIsDQogICAgICBkZWZhdWx0OiA0DQogICAgfSwNCiAgICBwYXRoQ29udHJvbHM6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgc2VhcmNoYWJsZTogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgfSwNCiAgICBsYXllckNvbnRyb2w6IHsNCiAgICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIHRvb2x0aXBzOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogdHJ1ZQ0KICAgIH0sDQogICAgaGVscE1vZGU6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgcmVuZGVyQXRNb3VudGVkOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogdHJ1ZQ0KICAgIH0sDQogICAgZGlzcGxheU1pbmltYXA6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgZGlzcGxheVdhcm5pbmc6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgLyoqDQogICAgICogRmxhZyB0byBkZXRlcm1pbmUgcmF0aGVyIG9wZW4gbWFwIFVJIHNob3VsZCBiZQ0KICAgICAqIHByZXNlbnRlZCBvciBub3QuDQogICAgICovDQogICAgZW5hYmxlT3Blbk1hcFVJOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UsDQogICAgfSwNCiAgICBvcGVuTWFwT3B0aW9uczogew0KICAgICAgdHlwZTogQXJyYXksDQogICAgICBkZWZhdWx0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgIHJldHVybiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gQUMgTWFwIiwNCiAgICAgICAgICAgIGtleTogIkFDIg0KICAgICAgICAgIH0sDQogICAgICAgICAgew0KICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gRkMgTWFwIiwNCiAgICAgICAgICAgIGtleTogIkZDIg0KICAgICAgICAgIH0sDQogICAgICAgICAgew0KICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gM0QgSHVtYW4gTWFwIiwNCiAgICAgICAgICAgIGtleTogIjNEIg0KICAgICAgICAgIH0sDQogICAgICAgIF0NCiAgICAgIH0sDQogICAgfSwNCiAgICBzaG93U3RhckluTGVnZW5kOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIGlzTGVnYWN5OiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIGRpc3BsYXlMYXRlc3RDaGFuZ2VzOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UsDQogICAgfSwNCiAgICBsYXRlc3RDaGFuZ2VzTWVzc2FnZTogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogIidPYnNlcnZlZCBJbicgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIGFyZSBub3cgaW5jbHVkZWQgaW4gQUMgbWFwcy4gU3lzdGVtIGNvbnRyb2wgd2l0aCBGVFUgaW5mb3JtYXRpb24gaGFzIGJlZW4gYWRkZWQgdG8gdGhlIEZDIG1hcC4iLA0KICAgIH0sDQogICAgLyoqDQogICAgICogU3RhdGUgY29udGFpbmluZyBzdGF0ZSBvZiB0aGUgZmxhdG1hcC4NCiAgICAgKi8NCiAgICBzdGF0ZTogew0KICAgICAgdHlwZTogT2JqZWN0LA0KICAgICAgZGVmYXVsdDogdW5kZWZpbmVkDQogICAgfSwNCiAgICAvKioNCiAgICAgKiBTcGVjaWZ5IHRoZSBlbmRwb2ludCBvZiB0aGUgZmxhdG1hcCBzZXJ2ZXIuDQogICAgICovDQogICAgZmxhdG1hcEFQSTogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogImh0dHBzOi8vbWFwY29yZS1kZW1vLm9yZy9jdXJyZW50L2ZsYXRtYXAvdjMvIg0KICAgIH0sDQogICAgc3BhcmNBUEk6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICAgIGRlZmF1bHQ6ICJodHRwczovL2FwaS5zcGFyYy5zY2llbmNlLyINCiAgICB9LA0KICB9LA0KICBwcm92aWRlKCkgew0KICAgIHJldHVybiB7DQogICAgICBzcGFyY0FQSTogdGhpcy5zcGFyY0FQSSwNCiAgICAgIGZsYXRtYXBBUEk6IHRoaXMuZmxhdG1hcEFQSQ0KICAgIH0NCiAgfSwNCiAgZGF0YTogZnVuY3Rpb24oKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGxheWVyczogW10sDQogICAgICBwYXRod2F5czogW10sDQogICAgICBzY2thbkRpc3BsYXk6IFsNCiAgICAgICAgew0KICAgICAgICAgIGxhYmVsOiAiRGlzcGxheSBQYXRoIHdpdGggU0NLQU4iLA0KICAgICAgICAgIGtleTogIlZBTElEIiwNCiAgICAgICAgfSwNCiAgICAgIF0sDQogICAgICBjZW50cmVMaW5lczogWw0KICAgICAgICB7DQogICAgICAgICAgbGFiZWw6ICJEaXNwbGF5IE5lcnZlcyIsDQogICAgICAgICAga2V5OiAiY2VudHJlbGluZXMiLA0KICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlDQogICAgICAgIH0NCiAgICAgIF0sDQogICAgICBzeXN0ZW1zOiBbXSwNCiAgICAgIHRheG9uQ29ubmVjdGl2aXR5OiBbXSwNCiAgICAgIHBhdGh3YXlzTWF4SGVpZ2h0OiAxMDAwLA0KICAgICAgaG92ZXJWaXNpYmlsaXRpZXM6IFsNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwNCiAgICAgIF0sDQogICAgICB5ZWxsb3dzdGFyOiB5ZWxsb3dzdGFyLA0KICAgICAgaXNGQzogZmFsc2UsDQogICAgICBpbkhlbHA6IGZhbHNlLA0KICAgICAgY3VycmVudEJhY2tncm91bmQ6ICJ3aGl0ZSIsDQogICAgICBhdmFpbGFibGVCYWNrZ3JvdW5kOiBbIndoaXRlIiwgImxpZ2h0c2t5Ymx1ZSIsICJibGFjayJdLA0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICBmbGF0bWFwTWFya2VyOiBmbGF0bWFwTWFya2VyLA0KICAgICAgdG9vbHRpcEVudHJ5OiBjcmVhdGVVbmZpbGxlZFRvb2x0aXBEYXRhKCksDQogICAgICBjb25uZWN0aXZpdHlUb29sdGlwVmlzaWJsZTogZmFsc2UsDQogICAgICByZXNvdXJjZUZvclRvb2x0aXA6IHVuZGVmaW5lZCwNCiAgICAgIGRyYXdlck9wZW46IGZhbHNlLA0KICAgICAgY29sb3VyUmFkaW86IHRydWUsDQogICAgICBvdXRsaW5lc1JhZGlvOiB0cnVlLA0KICAgICAgbWluaW1hcFJlc2l6ZVNob3c6IGZhbHNlLA0KICAgICAgbWluaW1hcFNtYWxsOiBmYWxzZSwNCiAgICAgIGN1cnJlbnRBY3RpdmU6ICIiLA0KICAgICAgY3VycmVudEhvdmVyOiAiIiwNCiAgICB9Ow0KICB9LA0KICB3YXRjaDogew0KICAgIGVudHJ5OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICghdGhpcy5zdGF0ZSkgdGhpcy5jcmVhdGVGbGF0bWFwKCk7DQogICAgfSwNCiAgICBoZWxwTW9kZTogZnVuY3Rpb24odmFsKSB7DQogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7DQogICAgfSwNCiAgICBzdGF0ZTogew0KICAgICAgaGFuZGxlcjogZnVuY3Rpb24oc3RhdGUpIHsNCiAgICAgICAgaWYgKHRoaXMubWFwTWFuYWdlcikgew0KICAgICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIC8vdGhpcyBjb21wb25lbnQgaGFzIG5vdCBiZWVuIG1vdW50ZWQgeWV0DQogICAgICAgICAgdGhpcy5zZXRTdGF0ZVJlcXVpcmVkID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgfSwNCiAgICAgIGltbWVkaWF0ZTogdHJ1ZSwNCiAgICAgIGRlZXA6IHRydWUNCiAgICB9DQogIH0sDQogIG1vdW50ZWQ6IGZ1bmN0aW9uKCkgew0KICAgIGNvbnN0IGZsYXRtYXAgPSByZXF1aXJlKCJAYWJpLXNvZnR3YXJlL2ZsYXRtYXAtdmlld2VyIik7DQogICAgdGhpcy50b29sdGlwV2FpdCA9IFtdOw0KICAgIHRoaXMudG9vbHRpcFdhaXQubGVuZ3RoID0gdGhpcy5ob3ZlclZpc2liaWxpdGllcy5sZW5ndGg7DQogICAgdGhpcy5tYXBNYW5hZ2VyID0gbmV3IGZsYXRtYXAuTWFwTWFuYWdlcih0aGlzLmZsYXRtYXBBUEkpOw0KICAgIHRoaXMuZmxhdG1hcFF1ZXJpZXMgPSBuZXcgRmxhdG1hcFF1ZXJpZXMoKTsNCiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzLmluaXRpYWxpc2UodGhpcy5mbGF0bWFwQVBJKTsNCiAgICBpZiAodGhpcy5zdGF0ZSkgew0KICAgICAgLy9TdGF0ZSBpcyBzZXQgYW5kIHJlcXVpcmUgdG8gc2V0IHRoZSBzdGF0ZQ0KICAgICAgaWYgKHRoaXMuc2V0U3RhdGVSZXF1aXJlZCkgew0KICAgICAgICB0aGlzLnNldFN0YXRlKHRoaXMuc3RhdGUpOw0KICAgICAgfQ0KICAgIH0gZWxzZSBpZih0aGlzLnJlbmRlckF0TW91bnRlZCkgew0KICAgICAgdGhpcy5jcmVhdGVGbGF0bWFwKCk7DQogICAgfQ0KICB9DQp9Ow0K"},{"version":3,"sources":["FlatmapVuer.vue"],"names":[],"mappings":";AAwXA;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;;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;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","file":"FlatmapVuer.vue","sourceRoot":"node_modules/@abi-software/flatmapvuer/src/components","sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n\r\n"]}]}