{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/thread-loader/dist/cjs.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js??ref--1-0!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/babel.config.js","mtime":1684261475125},{"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:aW1wb3J0IF9UYWJzMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay90YWJzLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1RhYnMgZnJvbSAiZWxlbWVudC11aS9saWIvdGFicyI7CmltcG9ydCBfVGFiUGFuZTIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvdGFiLXBhbmUuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfVGFiUGFuZSBmcm9tICJlbGVtZW50LXVpL2xpYi90YWItcGFuZSI7CmltcG9ydCBfU2xpZGVyMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zbGlkZXIuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2xpZGVyIGZyb20gImVsZW1lbnQtdWkvbGliL3NsaWRlciI7CmltcG9ydCBfU2VsZWN0MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zZWxlY3QuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2VsZWN0IGZyb20gImVsZW1lbnQtdWkvbGliL3NlbGVjdCI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUG9wb3ZlcjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcG9wb3Zlci5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Qb3BvdmVyIGZyb20gImVsZW1lbnQtdWkvbGliL3BvcG92ZXIiOwppbXBvcnQgX09wdGlvbjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvb3B0aW9uLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX09wdGlvbiBmcm9tICJlbGVtZW50LXVpL2xpYi9vcHRpb24iOwppbXBvcnQgX0xvYWRpbmcyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2xvYWRpbmcuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfTG9hZGluZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2FkaW5nIjsKaW1wb3J0IF9Db2wyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2NvbC5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Db2wgZnJvbSAiZWxlbWVudC11aS9saWIvY29sIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLnRvLWZpeGVkLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKLyogZXNsaW50LWRpc2FibGUgbm8tYWxlcnQsIG5vLWNvbnNvbGUgKi8KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOwppbXBvcnQgT3BhY2l0eUNvbnRyb2xzIGZyb20gIi4vT3BhY2l0eUNvbnRyb2xzIjsKaW1wb3J0IFNjYWZmb2xkVG9vbHRpcCBmcm9tICIuL1NjYWZmb2xkVG9vbHRpcCI7CmltcG9ydCBUcmVlQ29udHJvbHMgZnJvbSAiLi9UcmVlQ29udHJvbHMiOwppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7CmltcG9ydCB7IGZpbmRPYmplY3RzV2l0aE5hbWVzIH0gZnJvbSAiLi4vc2NyaXB0cy91dGlsaXRpZXMuanMiOwppbXBvcnQgbGFuZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUvbGFuZy9lbiI7CmltcG9ydCBsb2NhbGUgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlIjsKbG9jYWxlLnVzZShsYW5nKTsKVnVlLnVzZShfQ29sKTsKVnVlLnVzZShfTG9hZGluZy5kaXJlY3RpdmUpOwpWdWUudXNlKF9PcHRpb24pOwpWdWUudXNlKF9Qb3BvdmVyKTsKVnVlLnVzZShfUm93KTsKVnVlLnVzZShfU2VsZWN0KTsKVnVlLnVzZShfU2xpZGVyKTsKVnVlLnVzZShfVGFiUGFuZSk7ClZ1ZS51c2UoX1RhYnMpOwp2YXIgT3JnYW5zVmlld2VyID0gcmVxdWlyZSgiLi4vc2NyaXB0cy9vcmdhbnNSZW5kZXJlciIpLk9yZ2Fuc1ZpZXdlcjsKdmFyIEV2ZW50Tm90aWZpZXIgPSByZXF1aXJlKCIuLi9zY3JpcHRzL2V2ZW50Tm90aWZpZXIiKS5FdmVudE5vdGlmaWVyOwoKLyoqCiAqIEEgdnVlIGNvbXBvbmVudCBvZiB0aGUgc2NhZmZvbGQgdmlld2VyLgogKgogKiBAcmVxdWlyZXMgLi9PcGFjaXR5Q29udHJvbHMudnVlCiAqIEByZXF1aXJlcyAuL1RyZWVDb250cm9scy52dWUKICovCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiU2NhZmZvbGRWdWVyIiwKICBjb21wb25lbnRzOiB7CiAgICBNYXBTdmdJY29uOiBNYXBTdmdJY29uLAogICAgTWFwU3ZnU3ByaXRlQ29sb3I6IE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgT3BhY2l0eUNvbnRyb2xzOiBPcGFjaXR5Q29udHJvbHMsCiAgICBTY2FmZm9sZFRvb2x0aXA6IFNjYWZmb2xkVG9vbHRpcCwKICAgIFRyZWVDb250cm9sczogVHJlZUNvbnRyb2xzCiAgfSwKICBwcm9wczogewogICAgLyoqCiAgICAgKiBVUkwgb2YgdGhlIHppbmNqcyBtZXRhZGF0YS4gVGhpcyB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQgaWYgYSB2YWxpZAogICAgICogc3RhdGUgcHJvcCBpcyBhbHNvIHByb3ZpZGVkLgogICAgICogSWYgdGhlIHVybCBuZWVkcyB0byBiZSB1cGRhdGVkIHdpdGggc3RhdGUgcHJlc2VudCwgcGxlYXNlIHVzZQogICAgICogdGhlIHNldFVSTCBtZXRob2QuCiAgICAgKi8KICAgIHVybDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9LAogICAgLyoqCiAgICAgKiBTaG93IHRoZSBjb2xvdXIgY29udHJvbCBvZiBzZXQgdG8gdHJ1ZS4KICAgICAqLwogICAgc2hvd0NvbG91clBpY2tlcjogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIC8qKgogICAgICogRmxhZyB0byBzaG93L2hpZGUgdGhlIFVJLgogICAgICovCiAgICBkaXNwbGF5VUk6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSBhbGwgZ3JhcGhpY3MgYXQgc3RhcnQuCiAgICAgKgogICAgICogVGhpcyBzZXR0aW5nIG9ubHkgd29ya3Mgd2hlbiB0cmFkaXRpb25hbCBpcyBzZXQgdG8gZmFsc2UuCiAgICAgKi8KICAgIGRpc3BsYXlBdFN0YXJ0VXA6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIC8qKgogICAgICogVXNlIGZvciB0b2dnbGluZyB0aGUgaGVscCB0b29sdGlwcy4KICAgICAqLwogICAgaGVscE1vZGU6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvKioKICAgICAqIFVzZSBmb3Igc2hvdy9kaXNwbGF5IGJldGEgd2FybmluZyBpY29uLgogICAgICovCiAgICBkaXNwbGF5V2FybmluZzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLyoqCiAgICAgKiBXYXJuaW5nIG1lc3NhZ2UgZm9yIHRoZSBob3ZlcmVkIG92ZXIgdGV4dAogICAgICogb24gdGhlIHdhcm5pbmcgaWNvbi4KICAgICAqLwogICAgd2FybmluZ01lc3NhZ2U6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiQmV0YSBmZWF0dXJlIC0gdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50IgogICAgfSwKICAgIC8qKgogICAgICogU2hvdy9oaWRlIHBpY2thYmxlIG1hcmtlcnMgZm9yIHJlZ2lvbnMuCiAgICAgKi8KICAgIGRpc3BsYXlNYXJrZXJzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqCiAgICAgKiBTaG93L2hpZGUgbWluaW1hcC4KICAgICAqLwogICAgZGlzcGxheU1pbmltYXA6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvKioKICAgICAqIEZvcm1hdCBvZiB0aGUgaW5wdXQgVVJMCiAgICAgKi8KICAgIGZvcm1hdDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJtZXRhZGF0YSIKICAgIH0sCiAgICAvKioKICAgICAqIFNldHRpbmdzIGZvciBtaW5pbWFwIHBvc2l0aW9uLCBzaXplIGFuZCBhbGlnbm1lbnQuCiAgICAgKi8KICAgIG1pbmltYXBTZXR0aW5nczogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICB4X29mZnNldDogMTYsCiAgICAgICAgICB5X29mZnNldDogMTYsCiAgICAgICAgICB3aWR0aDogMTI4LAogICAgICAgICAgaGVpZ2h0OiAxMjgsCiAgICAgICAgICBhbGlnbjogInRvcC1yaWdodCIKICAgICAgICB9OwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBzY2FmZm9sZC4KICAgICAqLwogICAgc3RhdGU6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiB1bmRlZmluZWQKICAgIH0sCiAgICAvKioKICAgICAqIE9wdGlvbmFsIHByb3AgZm9yIHRoZSBuYW1lIG9mIHRoZSByZWdpb24gdG8gZm9jdXMgb24sCiAgICAgKiB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIHN0YXRlIG9yIHZpZXdVUkwgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqLwogICAgcmVnaW9uOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICAvKioKICAgICAqIE9wdGlvbmFsIHByb3AgZm9yIGFuIFVSTCBvZiBjb250YWluaW5nIGluZm9ybWF0aW9uIG9mIGEgdmlld3BvcnQuCiAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIHN0YXRlIGlzIGFsc28gcHJvdmlkZWQuCiAgICAgKiBJdCB3aWxsIHVzZSB0aGUgcHJvdmlkZWQgVVJMIGFzIGJhc2UgaWYgYSByZWxhdGl2ZSBwYXJ0aCBpcyBwcm92aWRlZC4KICAgICAqLwogICAgdmlld1VSTDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9LAogICAgLyoqCiAgICAgKiBTZXR0aW5ncyBmb3IgdHVybmluZyBvbi9vZmYgcmVuZGVyaW5nCiAgICAgKi8KICAgIHJlbmRlcjogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc2NlbmVEYXRhOiB0aGlzLiRtb2R1bGUuc2NlbmVEYXRhLAogICAgICBpc1BsYXlpbmc6IGZhbHNlLAogICAgICAvKioKICAgICAgICogVGhpcyBpcyBzZXQgd2hlbiBzY2VuZSBpcyB0cmFuc2l0aW9uaW5nLgogICAgICAgKi8KICAgICAgaXNUcmFuc2l0aW9uaW5nOiBmYWxzZSwKICAgICAgdG9vbHRpcEFwcGVuZFRvQm9keTogZmFsc2UsCiAgICAgIGhvdmVyVmlzYWJpbGl0aWVzOiBbewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9XSwKICAgICAgaW5IZWxwOiBmYWxzZSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIGR1cmF0aW9uOiAzMDAwLAogICAgICBkcmF3ZXJPcGVuOiB0cnVlLAogICAgICBjdXJyZW50QmFja2dyb3VuZDogIndoaXRlIiwKICAgICAgYXZhaWxhYmxlQmFja2dyb3VuZDogWyJ3aGl0ZSIsICJsaWdodHNreWJsdWUiLCAiYmxhY2siXSwKICAgICAgbWluaW1pc2VkU2xpZGVyOiBmYWxzZSwKICAgICAgc2xpZGVyUG9zaXRpb246ICIiLAogICAgICB0aW1lTWF4OiAxMDAsCiAgICAgIG9yZ2luYWxEdXJhdGlvbjogIiIsCiAgICAgIGFuaW1hdGVEdXJhdGlvbjogIjZzZWNzIiwKICAgICAgcGxheVNwZWVkOiBbewogICAgICAgIHZhbHVlOiAwLjEsCiAgICAgICAgbGFiZWw6ICIwLjF4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDAuNSwKICAgICAgICBsYWJlbDogIjAuNXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMSwKICAgICAgICBsYWJlbDogIjF4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDIsCiAgICAgICAgbGFiZWw6ICIyeCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiA1LAogICAgICAgIGxhYmVsOiAiNXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMTAsCiAgICAgICAgbGFiZWw6ICIxMHgiCiAgICAgIH1dLAogICAgICBjdXJyZW50U3BlZWQ6IDEsCiAgICAgIHRpbWVTdGFtcHM6IHt9LAogICAgICBkZWZhdWx0Q2hlY2tlZEtleXM6IFtdLAogICAgICB0RGF0YTogewogICAgICAgIGxhYmVsOiAiIiwKICAgICAgICByZWdpb246ICIiLAogICAgICAgIHZpc2libGU6IGZhbHNlLAogICAgICAgIHg6IDIwMCwKICAgICAgICB5OiAyMDAsCiAgICAgICAgZXh0ZXJuYWw6IGZhbHNlCiAgICAgIH0sCiAgICAgIGZpbGVGb3JtYXQ6ICJtZXRhZGF0YSIKICAgIH07CiAgfSwKICB3YXRjaDogewogICAgZm9ybWF0OiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmFsdWUpIHsKICAgICAgICB0aGlzLmZpbGVGb3JtYXQgPSB2YWx1ZTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgdXJsOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsdWUpIHsKICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc3RhdGUudXJsID09PSB1bmRlZmluZWQpIHRoaXMuc2V0VVJMKG5ld1ZhbHVlKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgcmVnaW9uOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIocmVnaW9uKSB7CiAgICAgICAgaWYgKCEodGhpcy5zdGF0ZSB8fCB0aGlzLnZpZXdVUkwpKSB0aGlzLnNldEZvY3VzZWRSZWdpb24ocmVnaW9uKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgc3RhdGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihzdGF0ZSkgewogICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUKICAgIH0sCiAgICB2aWV3VVJMOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmlld1VSTCkgewogICAgICAgIHRoaXMudXBkYXRlVmlld1VSTCh2aWV3VVJMKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgaGVscE1vZGU6IGZ1bmN0aW9uIGhlbHBNb2RlKHZhbCkgewogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7CiAgICB9LAogICAgZGlzcGxheU1hcmtlcnM6IGZ1bmN0aW9uIGRpc3BsYXlNYXJrZXJzKHZhbCkgewogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1hcmtlcnMgPSB2YWw7CiAgICAgIC8vVXBkYXRlIHBpY2thYmxlIG9iamVjdHMKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgIH0sCiAgICBkaXNwbGF5TWluaW1hcDogZnVuY3Rpb24gZGlzcGxheU1pbmltYXAodmFsKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWluaW1hcCA9IHZhbDsKICAgIH0sCiAgICAic2NlbmVEYXRhLmN1cnJlbnRUaW1lIjogZnVuY3Rpb24gc2NlbmVEYXRhQ3VycmVudFRpbWUoKSB7CiAgICAgIC8qKgogICAgICAgKiBUcmlnZ2VycyB3aGVuIHNjZW5lIHRpbWUgY2hhbmdlcy4KICAgICAgICoKICAgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWUgQ3VycmVudCBidWlsZC1pbiB0aW1lIG9mIHNjZW5lLgogICAgICAgKiBvZiBzZWxlY3RlZCBvYmplY3QuCiAgICAgICAqLwogICAgICB0aGlzLiRlbWl0KCJ0aW1lQ2hhbmdlZCIsIHRoaXMuc2NlbmVEYXRhLmN1cnJlbnRUaW1lKTsKICAgIH0sCiAgICBkdXJhdGlvbjogZnVuY3Rpb24gZHVyYXRpb24oKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5zZXREdXJhdGlvbih0aGlzLmR1cmF0aW9uKTsKICAgIH0sCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaGFuZGxlcjogInVwZGF0ZU1pbmltYXBTY2lzc29yIgogICAgfSwKICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKHZhbCkgewogICAgICB0aGlzLnRvZ2dsZVJlbmRlcmluZyh2YWwpOwogICAgfQogIH0sCiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbiBiZWZvcmVDcmVhdGUoKSB7CiAgICB0aGlzLiRtb2R1bGUgPSBuZXcgT3JnYW5zVmlld2VyKCk7CiAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTsKICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RzID0gW107CiAgICB0aGlzLmhvdmVyZWRPYmplY3RzID0gW107CiAgICB0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kID0gIndoaXRlIjsKICAgIHRoaXMuX2N1cnJlbnRVUkwgPSB1bmRlZmluZWQ7CiAgICB0aGlzLmF2YWlsYWJsZUJhY2tncm91bmQgPSBbIndoaXRlIiwgImJsYWNrIiwgImxpZ2h0c2t5Ymx1ZSJdOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnNldE1vZHVsZSh0aGlzLiRtb2R1bGUpOwogICAgdmFyIGV2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpOwogICAgZXZlbnROb3RpZmllci5zdWJzY3JpYmUodGhpcywgdGhpcy5ldmVudE5vdGlmaWVyQ2FsbGJhY2spOwogICAgdGhpcy4kbW9kdWxlLmFkZE5vdGlmaWVyKGV2ZW50Tm90aWZpZXIpOwogICAgdGhpcy4kbW9kdWxlLmFkZE9yZ2FuUGFydEFkZGVkQ2FsbGJhY2sodGhpcy56aW5jT2JqZWN0QWRkZWQpOwogICAgdGhpcy4kbW9kdWxlLmluaXRpYWxpc2VSZW5kZXJlcih0aGlzLiRyZWZzLmRpc3BsYXkpOwogICAgdGhpcy50b2dnbGVSZW5kZXJpbmcodGhpcy5yZW5kZXIpOwogICAgdGhpcy5ybyA9IG5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmFkanVzdExheW91dCkub2JzZXJ2ZSh0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyKTsKICAgIHRoaXMuZGVmYXVsdFJhdGUgPSB0aGlzLiRtb2R1bGUuZ2V0UGxheVJhdGUoKTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICBpZiAodGhpcy5ybykgdGhpcy5yby5kaXNjb25uZWN0KCk7CiAgICB0aGlzLiRtb2R1bGUuZGVzdHJveSgpOwogICAgdGhpcy4kbW9kdWxlID0gdW5kZWZpbmVkOwogIH0sCiAgbWV0aG9kczogewogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIGEgbmV3IHppbmMgb2JqZWN0IGlzIHJlYWQgaW50byB0aGUgc2NlbmUuCiAgICAgKi8KICAgIHppbmNPYmplY3RBZGRlZDogZnVuY3Rpb24gemluY09iamVjdEFkZGVkKHppbmNPYmplY3QpIHsKICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuJGVtaXQoInppbmMtb2JqZWN0LWFkZGVkIiwgemluY09iamVjdCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIENoYW5nZSBiYWNrZ3NwZWVkcm91bmQgY29sb3VyIGJ1dHRvbgogICAgICogaXMgcHJlc3NlZCBhbiBjYXVzZXMgdGhlIGJhY2tncm91Q29sb3JuZCBjb2xvdXIgdG8gYmUgY2hhbmdlZAogICAgICogdG8gb25lIG9mIHRoZSB0aHJlZSBwcmVzZXQgY29sb3VyOiB3aGl0ZSwgYmxhY2sgYW5kCiAgICAgKiBsaWdodHNreWJsdWUuCiAgICAgKi8KICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24gYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKGNvbG91cikgewogICAgICB0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kID0gY29sb3VyOwogICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLnNldENsZWFyQ29sb3IodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCBieSBjYXB0dWVlU2NyZWVuc2hvdCBhbmQgYWZ0ZXIgdGhlIGxhc3QgcmVuZGVyCiAgICAgKiBsb29wLCBpdCBkb3dubG9hZCBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgc2NlbmUgd2l0aCBubyBVSS4KICAgICAqLwogICAgY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjazogZnVuY3Rpb24gY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjaygpIHsKICAgICAgLy9SZW1vdmUgdGhlIGNhbGxiYWNrLCBvbmx5IG5lZWRzIHRvIGhhcHBlbiBvbmNlCiAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5jYXB0dXJlSUQpOwogICAgICB2YXIgc2NyZWVuc2hvdCA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuZ2V0VGhyZWVKU1JlbmRlcmVyKCkuZG9tRWxlbWVudC50b0RhdGFVUkwoImltYWdlL3BuZyIpOwogICAgICB2YXIgaHJlZkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGhyZWZFbGVtZW50KTsKICAgICAgaWYgKCF0aGlzLmNhcHR1cmVGaWxlbmFtZSkgaHJlZkVsZW1lbnQuZG93bmxvYWQgPSAic2NyZWVuc2hvdC5wbmciO2Vsc2UgaHJlZkVsZW1lbnQuZG93bmxvYWQgPSB0aGlzLmNhcHR1cmVGaWxlbmFtZTsKICAgICAgaHJlZkVsZW1lbnQuaHJlZiA9IHNjcmVlbnNob3Q7CiAgICAgIGhyZWZFbGVtZW50LmNsaWNrKCk7CiAgICAgIGhyZWZFbGVtZW50LnJlbW92ZSgpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gZm9yIGNhcHR1cmluZyBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcmVuZGVyaW5nLgogICAgICoKICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZSBmaWxlbmFtZSBnaXZlbiB0byB0aGUgc2NyZWVuc2hvdC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGNhcHR1cmVTY3JlZW5zaG90OiBmdW5jdGlvbiBjYXB0dXJlU2NyZWVuc2hvdChmaWxlbmFtZSkgewogICAgICB0aGlzLmNhcHR1cmVGaWxlbmFtZSA9IGZpbGVuYW1lOwogICAgICB0aGlzLmNhcHR1cmVJRCA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYWRkUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5jYXB0dXJlU2NyZWVuc2hvdENhbGxiYWNrKTsKICAgIH0sCiAgICBmb3JtYXRUb29sdGlwOiBmdW5jdGlvbiBmb3JtYXRUb29sdGlwKHZhbCkgewogICAgICBpZiAodGhpcy50aW1lTWF4ID49IDEwMDApIHsKICAgICAgICBpZiAodmFsKSB7CiAgICAgICAgICB2YXIgc2VjID0gKHZhbCAlIDYwMDAwIC8gMTAwMCkudG9GaXhlZCgyKSArICJzIjsKICAgICAgICAgIHZhciBtaW4gPSB2YWwgPiA2MDAwMCA/ICh2YWwgLyA2MDAwMCkudG9GaXhlZCgwKSArICJtICIgOiAiIjsKICAgICAgICAgIHJldHVybiBtaW4gKyBzZWM7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YWwgPyB2YWwudG9GaXhlZCgyKSArICIgbXMiIDogIjAgbXMiOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gcmVzZXQgdGhlIHZpZXcgdG8gZGVmYXVsdC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmaXRXaW5kb3c6IGZ1bmN0aW9uIGZpdFdpbmRvdygpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gaW4uCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbiB6b29tSW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2hhbmdlWm9vbUJ5U2Nyb2xsUmF0ZVVuaXQoLTEpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIG91dC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICB6b29tT3V0OiBmdW5jdGlvbiB6b29tT3V0KCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmNoYW5nZVpvb21CeVNjcm9sbFJhdGVVbml0KDEpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgcGxheSBzcGVlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNwZWVkQ2hhbmdlZDogZnVuY3Rpb24gc3BlZWRDaGFuZ2VkKHNwZWVkKSB7CiAgICAgIHRoaXMuY3VycmVudFNwZWVkID0gc3BlZWQ7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRQbGF5UmF0ZSh0aGlzLmRlZmF1bHRSYXRlICogdGhpcy5jdXJyZW50U3BlZWQpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCB0byBzdG9wIHRoZSBmcmVlIHNwaW4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHN0b3BGcmVlU3BpbjogZnVuY3Rpb24gc3RvcEZyZWVTcGluKCkgewogICAgICB2YXIgY2FtZXJhY29udHJvbCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgY2FtZXJhY29udHJvbC5zdG9wQXV0b1R1bWJsZSgpOwogICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IGZhbHNlOwogICAgfSwKICAgIGZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZTogZnVuY3Rpb24gZmluZE9iamVjdHNXaXRoR3JvdXBOYW1lKG5hbWUpIHsKICAgICAgdmFyIG9iamVjdHMgPSBbXTsKICAgICAgaWYgKG5hbWUgJiYgbmFtZSAhPSAiIiAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICBvYmplY3RzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZShuYW1lKTsKICAgICAgfQogICAgICByZXR1cm4gb2JqZWN0czsKICAgIH0sCiAgICAvKioKICAgICAqIEZvY3VzIG9uIG5hbWVkIHJlZ2lvbgogICAgICovCiAgICB2aWV3UmVnaW9uOiBmdW5jdGlvbiB2aWV3UmVnaW9uKG5hbWVzKSB7CiAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgdmFyIGdyb3VwcyA9IEFycmF5LmlzQXJyYXkobmFtZXMpID8gbmFtZXMgOiBbbmFtZXNdOwogICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICB2YXIgYm94ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldEJvdW5kaW5nQm94T2ZaaW5jT2JqZWN0cyhvYmplY3RzKTsKICAgICAgaWYgKGJveCkgewogICAgICAgIGlmICh0aGlzLiRtb2R1bGUuaXNTeW5jQ29udHJvbCgpKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xab29tVG9Cb3goYm94KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGRpc3QgPSB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciAtIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhcjsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsV2l0aEJvdW5kaW5nQm94KGJveCk7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciA9IHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhciArIGRpc3Q7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIHNldEZvY3VzZWRSZWdpb246IGZ1bmN0aW9uIHNldEZvY3VzZWRSZWdpb24obmFtZSkgewogICAgICBpZiAobmFtZSkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHRoaXMudmlld1JlZ2lvbihuYW1lKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2sodGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICAgIHJlZ2lvbjogbmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHVwZGF0ZVZpZXdVUkw6IGZ1bmN0aW9uIHVwZGF0ZVZpZXdVUkwodmlld1VSTCkgewogICAgICBpZiAodmlld1VSTCkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKHZpZXdVUkwsIHRoaXMudXJsKTsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgdmlld1VSTDogdmlld1VSTAogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGdldFJlbmRlcmVySW5mbzogZnVuY3Rpb24gZ2V0UmVuZGVyZXJJbmZvKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmluZm87CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gcm90YXRlIHRoZSBzY2VuZS4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmcmVlU3BpbjogZnVuY3Rpb24gZnJlZVNwaW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgY2FtZXJhY29udHJvbCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IHRydWU7CiAgICAgICAgY2FtZXJhY29udHJvbC5lbmFibGVBdXRvVHVtYmxlKCk7CiAgICAgICAgY2FtZXJhY29udHJvbC5hdXRvVHVtYmxlKFsxLjAsIDAuMF0sIE1hdGguUEksIHRydWUpOwogICAgICAgIHNldFRpbWVvdXQodGhpcy5zdG9wRnJlZVNwaW4sIDQwMDApOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB3aGVuIGEgcmVnaW9uIGlzIHNlbGVjdGVkL2hpZ2hsaWdodGVkLgogICAgICogSXQgd2lsbCBhbHNvIHVwZGF0ZSBvdGhlciBjb250cm9scy4KICAgICAqIAogICAgICovCiAgICBldmVudE5vdGlmaWVyQ2FsbGJhY2s6IGZ1bmN0aW9uIGV2ZW50Tm90aWZpZXJDYWxsYmFjayhldmVudCkgewogICAgICB2YXIgbmFtZXMgPSBbXTsKICAgICAgdmFyIHppbmNPYmplY3RzID0gW107CiAgICAgIHZhciByZWdpb24gPSB1bmRlZmluZWQ7CiAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0gMSB8fCBldmVudC5ldmVudFR5cGUgPT0gMikgewogICAgICAgIGV2ZW50LmlkZW50aWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKGlkZW50aWZpZXIpIHsKICAgICAgICAgIGlmIChpZGVudGlmaWVyKSB7CiAgICAgICAgICAgIHZhciBpZCA9IGlkZW50aWZpZXIuZGF0YS5pZCA/IGlkZW50aWZpZXIuZGF0YS5pZCA6IGlkZW50aWZpZXIuZGF0YS5ncm91cDsKICAgICAgICAgICAgbmFtZXMucHVzaChpZCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgemluY09iamVjdHMgPSBldmVudC56aW5jT2JqZWN0czsKICAgICAgfQogICAgICAvKgogICAgICAgKiBFdmVudCBUeXBlIDE6IFNlbGVjdGVkCiAgICAgICAqIEV2ZW50IFR5cGUgMjogSGlnaGxpZ2h0ZWQKICAgICAgICogRXZlbnQgVHlwZSAxOiBNb3ZlCiAgICAgICAqLwogICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDEpIHsKICAgICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHsKICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIC8vdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlQWN0aXZlQnlOYW1lcyhuYW1lcywgcmVnaW9uLCBmYWxzZSk7CiAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnVwZGF0ZUFjdGl2ZVVJKHppbmNPYmplY3RzKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUFjdGl2ZSh0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhbiBvYmplY3QgaGFzIGJlZW4gc2VsZWN0ZWQKICAgICAgICB0aGlzLiRlbWl0KCJzY2FmZm9sZC1zZWxlY3RlZCIsIGV2ZW50LmlkZW50aWZpZXJzKTsKICAgICAgfSBlbHNlIGlmIChldmVudC5ldmVudFR5cGUgPT0gMikgewogICAgICAgIHRoaXMudERhdGEudmlzaWJsZSA9IGZhbHNlOwogICAgICAgIC8vIGNvbnN0IG9mZnNldHMgPSB0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgLy90aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VIb3ZlckJ5TmFtZXMobmFtZXMsIHJlZ2lvbiwgZmFsc2UpOwogICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy51cGRhdGVIb3ZlclVJKHppbmNPYmplY3RzKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUhvdmVyKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnMubGVuZ3RoID4gMCAmJiBldmVudC5pZGVudGlmaWVyc1swXSkgewogICAgICAgICAgdmFyIGlkID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5pZCA/IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEuaWQgOiBldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLmdyb3VwOwogICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3JkcykgewogICAgICAgICAgICB0aGlzLnREYXRhLmV4dGVybmFsID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMudERhdGEudmlzaWJsZSA9IHRydWU7CiAgICAgICAgICAgIHRoaXMudERhdGEubGFiZWwgPSBpZDsKICAgICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEucmVnaW9uKSB0aGlzLnREYXRhLnJlZ2lvbiA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEucmVnaW9uO2Vsc2UgdGhpcy50RGF0YS5yZWdpb24gPSAiUm9vdCI7CiAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy54OwogICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhbiBvYmplY3QgaGFzIGJlZW4gaGlnaGxpZ2h0ZWQKICAgICAgICB0aGlzLiRlbWl0KCJzY2FmZm9sZC1oaWdobGlnaHRlZCIsIGV2ZW50LmlkZW50aWZpZXJzKTsKICAgICAgfSBlbHNlIGlmIChldmVudC5ldmVudFR5cGUgPT0gMykgewogICAgICAgIC8vTU9WRQogICAgICAgIGlmIChldmVudC5pZGVudGlmaWVycy5sZW5ndGggPiAwICYmIGV2ZW50LmlkZW50aWZpZXJzWzBdKSB7CiAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzKSB7CiAgICAgICAgICAgIHZhciBvZmZzZXRzID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzLnggLSBvZmZzZXRzLmxlZnQ7CiAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy55IC0gb2Zmc2V0cy50b3A7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBHZXQgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIHJlZ2lvbi4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldENvb3JkaW5hdGVzT2ZTZWxlY3RlZDogZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXNPZlNlbGVjdGVkKCkgewogICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMgJiYgdGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0T2JqZWN0c1NjcmVlblhZKFt0aGlzLnNlbGVjdGVkT2JqZWN0c10pOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICB9LAogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHdpbmRvdyBjb29yZGluYXRlcyBvZiB0aGUKICAgICAqIGN1cnJlbnQgc2VsZWN0ZWQgcmVnaW9uIHdoaWNoIHdpbGwgYmUgdXBkYXRlZCBhZnRlciBlYWNoIHJlbmRlcgogICAgICogbG9vcC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldER5bmFtaWNTZWxlY3RlZENvb3JkaW5hdGVzOiBmdW5jdGlvbiBnZXREeW5hbWljU2VsZWN0ZWRDb29yZGluYXRlcygpIHsKICAgICAgcmV0dXJuIHRoaXMuJG1vZHVsZS5zZWxlY3RlZFNjcmVlbkNvb3JkaW5hdGVzOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGJhY2sgd2hlbiB0aW1lIGlzIGNoYW5nZWQgdGhyb3VnaCB0aGUgVUkuCiAgICAgKi8KICAgIHRpbWVDaGFuZ2U6IGZ1bmN0aW9uIHRpbWVDaGFuZ2UoZXZlbnQpIHsKICAgICAgdmFyIG5vcm1hbGl6ZWRUaW1lID0gZXZlbnQgLyB0aGlzLnRpbWVNYXggKiAxMDA7CiAgICAgIGlmIChub3JtYWxpemVkVGltZSAhPSB0aGlzLnNjZW5lRGF0YS5jdXJyZW50VGltZSkgdGhpcy4kbW9kdWxlLnVwZGF0ZVRpbWUobm9ybWFsaXplZFRpbWUpOwogICAgfSwKICAgIC8qKgogICAgICogQSBjYWxsYmFjayB1c2VkIGJ5IGNoaWxkcmVuIGNvbXBvbmVudHMuIFNldCB0aGUgc2VsZWN0ZWQgemluYyBvYmplY3QKICAgICAqCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0CiAgICAgKi8KICAgIG9iamVjdFNlbGVjdGVkOiBmdW5jdGlvbiBvYmplY3RTZWxlY3RlZChvYmplY3RzLCBwcm9wYWdhdGUpIHsKICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdHMgPSBvYmplY3RzOwogICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMpIHRoaXMuJHJlZnMub3BhY2l0eUNvbnRyb2wuc2V0T2JqZWN0KHRoaXMuc2VsZWN0ZWRPYmplY3RzWzBdKTsKICAgICAgaWYgKG9iamVjdHMpIHRoaXMuJG1vZHVsZS5zZXRTZWxlY3RlZEJ5WmluY09iamVjdHMob2JqZWN0cywgdW5kZWZpbmVkLCBwcm9wYWdhdGUpO2Vsc2UgdGhpcy4kbW9kdWxlLnNldFNlbGVjdGVkQnlPYmplY3RzKFtdLCB1bmRlZmluZWQsIHByb3BhZ2F0ZSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBBIGNhbGxiYWNrIHVzZWQgYnkgY2hpbGRyZW4gY29tcG9uZW50cy4gU2V0IHRoZSBoaWdobGlnaHRlZCB6aW5jIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgWmluYyBvYmplY3QKICAgICAqLwogICAgb2JqZWN0SG92ZXJlZDogZnVuY3Rpb24gb2JqZWN0SG92ZXJlZChvYmplY3RzLCBwcm9wYWdhdGUpIHsKICAgICAgdGhpcy5ob3ZlcmVkT2JqZWN0cyA9IG9iamVjdHM7CiAgICAgIGlmIChvYmplY3RzKSB0aGlzLiRtb2R1bGUuc2V0SGlnaGxpZ2h0ZWRCeVppbmNPYmplY3RzKG9iamVjdHMsIHVuZGVmaW5lZCwgcHJvcGFnYXRlKTtlbHNlIHRoaXMuJG1vZHVsZS5zZXRIaWdobGlnaHRlZEJ5T2JqZWN0cyhbXSwgdW5kZWZpbmVkLCBwcm9wYWdhdGUpOwogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBzZWxlY3RlZCBieSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSB7fSBuYW1lIE5hbWUgb2YgdGhlIGdyb3VwCiAgICAgKi8KICAgIGNoYW5nZUFjdGl2ZUJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlQWN0aXZlQnlOYW1lKG5hbWVzLCByZWdpb24sIHByb3BhZ2F0ZSkgewogICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobmFtZXMpOwogICAgICBpZiAobmFtZXMgPT09IHVuZGVmaW5lZCB8fCBpc0FycmF5ICYmIG5hbWVzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUFjdGl2ZShwcm9wYWdhdGUpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBhcnJheSA9IG5hbWVzOwogICAgICAgIGlmICghaXNBcnJheSkgYXJyYXkgPSBbYXJyYXldOwogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmNoYW5nZUFjdGl2ZUJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBoaWdobGlnaHRlZCBieSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSB7bmFtZX0gbmFtZSBOYW1lIG9mIHRoZSBncm91cAogICAgICovCiAgICBjaGFuZ2VIaWdobGlnaHRlZEJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlSGlnaGxpZ2h0ZWRCeU5hbWUobmFtZXMsIHJlZ2lvbiwgcHJvcGFnYXRlKSB7CiAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShuYW1lcyk7CiAgICAgIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGlzQXJyYXkgJiYgbmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlSG92ZXIocHJvcGFnYXRlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgYXJyYXkgPSBuYW1lczsKICAgICAgICBpZiAoIWlzQXJyYXkpIGFycmF5ID0gW2FycmF5XTsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VIb3ZlckJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU3RhcnQgdGhlIGFuaW1hdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0CiAgICAgKi8KICAgIHBsYXk6IGZ1bmN0aW9uIHBsYXkoZmxhZykgewogICAgICB0aGlzLiRtb2R1bGUucGxheUFuaW1hdGlvbihmbGFnKTsKICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmbGFnOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIG9uL29mZiBvdmVybGF5IGhlbHAuCiAgICAgKi8KICAgIHNldEhlbHBNb2RlOiBmdW5jdGlvbiBzZXRIZWxwTW9kZShoZWxwTW9kZSkgewogICAgICBpZiAoaGVscE1vZGUpIHsKICAgICAgICB0aGlzLmluSGVscCA9IHRydWU7CiAgICAgICAgdGhpcy5ob3ZlclZpc2FiaWxpdGllcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNhYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGJ5IHNob3dSZWdpb25Ub29sdGlwIGluIHRoZSBjYXNlIHdoZW4gdGhlIHRvb2x0aXAKICAgICAqIGlzIG91dCBvZiB2aWV3LgogICAgICovCiAgICBzaG93UmVnaW9uVG9vbHRpcENhbGxiYWNrOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcENhbGxiYWNrKG5hbWUpIHsKICAgICAgdmFyIGluc3RhbmNlID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICBpbnN0YW5jZS4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbihpbnN0YW5jZS4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjayk7CiAgICAgICAgaW5zdGFuY2UuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sgPSB1bmRlZmluZWQ7CiAgICAgICAgaW5zdGFuY2Uuc2hvd1JlZ2lvblRvb2x0aXAobmFtZSwgZmFsc2UpOwogICAgICB9OwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcC4gUmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QKICAgICAqIGluIHZpZXcuCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcChuYW1lLCByZXNldFZpZXcpIHsKICAgICAgaWYgKG5hbWUgJiYgdGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICAgIHZhciBncm91cHMgPSBbbmFtZV07CiAgICAgICAgdmFyIG9iamVjdHMgPSBmaW5kT2JqZWN0c1dpdGhOYW1lcyhyb290UmVnaW9uLCBncm91cHMsICIiLCB0cnVlKTsKICAgICAgICBpZiAob2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICB2YXIgY29vcmRzID0gb2JqZWN0c1swXS5nZXRDbG9zZXN0VmVydGV4RE9NRWxlbWVudENvb3Jkcyh0aGlzLiRtb2R1bGUuc2NlbmUpOwogICAgICAgICAgaWYgKGNvb3JkcykgewogICAgICAgICAgICAvL1RoZSBjb29yZHMgaXMgbm90IGluIHZpZXcsIHZpZXcgYWxsIGlmIHJlc2V0VmlldyBmbGFnIGlzIHRydWUKICAgICAgICAgICAgaWYgKCFjb29yZHMuaW5WaWV3KSB7CiAgICAgICAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgICAgICAgIGlmIChyZXNldFZpZXcpIHsKICAgICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgICAgICAgICAgICAvL1VzZSB0aGUgcG9zdCByZW5kZXIgY2FsbGJhY2sgdG8gbWFrZSBzdXJlIHRoZSBzY2VuZSBoYXMgYmVlbiB1cGRhdGVkCiAgICAgICAgICAgICAgICAvL2JlZm9yZSBnZXR0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcC4KICAgICAgICAgICAgICAgIGlmICh0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjayk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hZGRQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLnNob3dSZWdpb25Ub29sdGlwQ2FsbGJhY2sobmFtZSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLnREYXRhLmV4dGVybmFsID0gdHJ1ZTsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICAgIHRoaXMudERhdGEubGFiZWwgPSBuYW1lOwogICAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGNvb3Jkcy5wb3NpdGlvbi54OwogICAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGNvb3Jkcy5wb3NpdGlvbi55OwogICAgICAgICAgICAgIHZhciByZWdpb25QYXRoID0gb2JqZWN0c1swXS5nZXRSZWdpb24oKS5nZXRGdWxsUGF0aCgpOwogICAgICAgICAgICAgIGlmIChyZWdpb25QYXRoKSB0aGlzLnREYXRhLnJlZ2lvbiA9IHJlZ2lvblBhdGg7ZWxzZSB0aGlzLnREYXRhLnJlZ2lvbiA9ICJSb290IjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgaGlkZVJlZ2lvblRvb2x0aXA6IGZ1bmN0aW9uIGhpZGVSZWdpb25Ub29sdGlwKCkgewogICAgICB0aGlzLnREYXRhLnZpc2libGUgPSBmYWxzZTsKICAgICAgdGhpcy50RGF0YS5yZWdpb24gPSAiUm9vdCI7CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIG1vdXNlIGN1cnNvciBlbnRlcnMgc3VwcG9ydGVkIGVsZW1lbnRzCiAgICAgKiB3aXRoIGhlbHAgdG9vdGx0aXBzLgogICAgICovCiAgICBzaG93SGVscFRleHQ6IGZ1bmN0aW9uIHNob3dIZWxwVGV4dChoZWxwVGV4dE51bWJlcikgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgdGhpcy5oZWxwVGV4dFdhaXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzLmhvdmVyVmlzYWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZXhpdHMgc3VwcG9ydGVkIGVsZW1lbnQuLgogICAgICovCiAgICBoaWRlSGVscFRleHQ6IGZ1bmN0aW9uIGhpZGVIZWxwVGV4dChoZWxwVGV4dE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgdGhpcy5ob3ZlclZpc2FiaWxpdGllc1toZWxwVGV4dE51bWJlcl0udmFsdWUgPSBmYWxzZTsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oZWxwVGV4dFdhaXQpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsZWQgd2hlbiBtaW5pbWFwIHNldHRpbmdzIGhhcyBjaGFuZ2VkLiBQYXNzIHRoZQogICAgICogcGFyYW1ldGVycyB0byBaaW5jSlMgYW5kIG1hcmtlZCBpdCBmb3IgdXBkYXRlLgogICAgICovCiAgICB1cGRhdGVNaW5pbWFwU2Npc3NvcjogZnVuY3Rpb24gdXBkYXRlTWluaW1hcFNjaXNzb3IoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICBPYmplY3Qua2V5cyh0aGlzLm1pbmltYXBTZXR0aW5ncykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgX3RoaXMyLiRtb2R1bGUuc2NlbmUubWluaW1hcFNjaXNzb3Jba2V5XSA9IF90aGlzMi5taW5pbWFwU2V0dGluZ3Nba2V5XTsKICAgICAgfSk7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5taW5pbWFwU2Npc3Nvci51cGRhdGVSZXF1aXJlZCA9IHRydWU7CiAgICB9LAogICAgdXBkYXRlU2V0dGluZ3Nmcm9tU2NlbmU6IGZ1bmN0aW9uIHVwZGF0ZVNldHRpbmdzZnJvbVNjZW5lKCkgewogICAgICB0aGlzLmN1cnJlbnRTcGVlZCA9IDE7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRQbGF5UmF0ZSh0aGlzLmRlZmF1bHRSYXRlKTsKICAgICAgdGhpcy5vcmdpbmFsRHVyYXRpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIk9yaWdpbmFsRHVyYXRpb24iKTsKICAgICAgdGhpcy5hbmltYXRlRHVyYXRpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIkR1cmF0aW9uIik7CiAgICAgIHZhciB0aW1lU3RhbXBzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJUaW1lU3RhbXBzIik7CiAgICAgIHRoaXMudGltZVN0YW1wcyA9IHt9OwogICAgICBmb3IgKHZhciBrZXkgaW4gdGltZVN0YW1wcykgewogICAgICAgIHRoaXMudGltZVN0YW1wc1t0aW1lU3RhbXBzW2tleV1dID0ga2V5OwogICAgICB9CiAgICAgIHRoaXMudGltZU1heCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXREdXJhdGlvbigpOwogICAgfSwKICAgIHNldFVSTEZpbmlzaENhbGxiYWNrOiBmdW5jdGlvbiBzZXRVUkxGaW5pc2hDYWxsYmFjayhvcHRpb25zKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChvcHRpb25zKSB7CiAgICAgICAgICBpZiAob3B0aW9ucy52aWV3cG9ydCkgewogICAgICAgICAgICBfdGhpczMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKS5zZXRDdXJyZW50Q2FtZXJhU2V0dGluZ3Mob3B0aW9ucy52aWV3cG9ydCk7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudmlld1VSTCAmJiBvcHRpb25zLnZpZXdVUkwgIT09ICIiKSB7CiAgICAgICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKG9wdGlvbnMudmlld1VSTCwgX3RoaXMzLnVybCk7CiAgICAgICAgICAgIF90aGlzMy4kbW9kdWxlLnNjZW5lLmxvYWRWaWV3VVJMKHVybCk7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMucmVnaW9uICYmIG9wdGlvbnMucmVnaW9uICE9PSAiIikgewogICAgICAgICAgICBfdGhpczMudmlld1JlZ2lvbihvcHRpb25zLnJlZ2lvbik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0aW9ucy52aXNpYmlsaXR5KSB7CiAgICAgICAgICAgIC8vIFNvbWUgVUlzIG1heSBub3QgYmUgcmVhZHkgYXQgdGhpcyB0aW1lLgogICAgICAgICAgICBfdGhpczMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBfdGhpczMuJHJlZnMudHJlZUNvbnRyb2xzLnNldFN0YXRlKG9wdGlvbnMudmlzaWJpbGl0eSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBfdGhpczMudXBkYXRlU2V0dGluZ3Nmcm9tU2NlbmUoKTsKICAgICAgICBfdGhpczMuJG1vZHVsZS51cGRhdGVUaW1lKDAuMDEpOwogICAgICAgIF90aGlzMy4kbW9kdWxlLnVwZGF0ZVRpbWUoMCk7CiAgICAgICAgX3RoaXMzLiRtb2R1bGUudW5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKCk7CiAgICAgICAgX3RoaXMzLiRlbWl0KCJvbi1yZWFkeSIpOwogICAgICAgIF90aGlzMy5pc1JlYWR5ID0gdHJ1ZTsKICAgICAgfTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIGdldHRpbmcgdGhlIGN1cnJlbnQgc3RhdGVzIG9mIHRoZSBzY2VuZS4gVGhpcyBleHBvcnRlZCBzdGF0ZXMKICAgICAqIGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgaW1wb3J0U3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldFN0YXRlOiBmdW5jdGlvbiBnZXRTdGF0ZSgpIHsKICAgICAgdmFyIHN0YXRlID0gewogICAgICAgIGZvcm1hdDogdGhpcy5maWxlRm9ybWF0LAogICAgICAgIHVybDogdGhpcy5fY3VycmVudFVSTCwKICAgICAgICB2aWV3cG9ydDogdW5kZWZpbmVkLAogICAgICAgIHZpc2liaWxpdHk6IHVuZGVmaW5lZAogICAgICB9OwogICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHN0YXRlLnZpc2liaWxpdHkgPSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5nZXRTdGF0ZSgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHppbmNDYW1lcmFDb250cm9scyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICBzdGF0ZS52aWV3cG9ydCA9IHppbmNDYW1lcmFDb250cm9scy5nZXRDdXJyZW50Vmlld3BvcnQoKTsKICAgICAgfQogICAgICByZXR1cm4gc3RhdGU7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB1c2VkIGZvciBpbXBvcnRpbmcgdGhlIHN0YXRlcyBvZiB0aGUgc2NlbmUuIFRoaXMgZXhwb3J0ZWQgc3RhdGVzCiAgICAgKiBjYW4gYmUgaW1wb3J0ZWQgdXNpbmcgdGhlIHJlYWQgc3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNldFN0YXRlOiBmdW5jdGlvbiBzZXRTdGF0ZShzdGF0ZSkgewogICAgICBpZiAoc3RhdGUpIHsKICAgICAgICBpZiAoc3RhdGUudXJsICYmIHN0YXRlLnVybCAhPT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgICAgdGhpcy5zZXRVUkxBbmRTdGF0ZShzdGF0ZS51cmwsIHsKICAgICAgICAgICAgZmlsZUZvcm1hdDogc3RhdGUuZmlsZUZvcm1hdCwKICAgICAgICAgICAgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LAogICAgICAgICAgICB2aXNpYmlsaXR5OiBzdGF0ZS52aXNpYmlsaXR5CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHN0YXRlLnZpZXdwb3J0IHx8IHN0YXRlLnZpc2liaWxpdHkpIHsKICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKS5zZXRDdXJyZW50Q2FtZXJhU2V0dGluZ3Moc3RhdGUudmlld3BvcnQpOwogICAgICAgICAgICAgIGlmIChzdGF0ZS52aXNpYmlsaXR5KSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShzdGF0ZS52aXNpYmlsaXR5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgICAgIHZpZXdwb3J0OiBzdGF0ZS52aWV3cG9ydCwKICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHN0YXRlLnZpc2liaWxpdHkKICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBleHBvcnRHTFRGOiBmdW5jdGlvbiBleHBvcnRHTFRGKGJpbmFyeSkgewogICAgICByZXR1cm4gdGhpcy4kbW9kdWxlLnNjZW5lLmV4cG9ydEdMVEYoYmluYXJ5KTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhIGFuZCBhIGN1c3RvbQogICAgICogdmlld3BvcnQuIFRoaXMgZnVuY3Rpb24gd2lsbCBpZ25vcmUgdGhlIHN0YXRlIHByb3AgYW5kCiAgICAgKiByZWFkIGluIHRoZSBuZXcgdXJsLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc2V0VVJMQW5kU3RhdGU6IGZ1bmN0aW9uIHNldFVSTEFuZFN0YXRlKG5ld1ZhbHVlLCBzdGF0ZSkgewogICAgICBpZiAobmV3VmFsdWUgIT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5mb3JtYXQpIHRoaXMuZmlsZUZvcm1hdCA9IHN0YXRlLmZvcm1hdDsKICAgICAgICB2YXIgdmlld3BvcnQgPSBzdGF0ZSAmJiBzdGF0ZS52aWV3cG9ydCA/IHN0YXRlLnZpZXdwb3J0IDogdW5kZWZpbmVkOwogICAgICAgIHZhciB2aXNpYmlsaXR5ID0gc3RhdGUgJiYgc3RhdGUudmlzaWJpbGl0eSA/IHN0YXRlLnZpc2liaWxpdHkgOiB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5fY3VycmVudFVSTCA9IG5ld1ZhbHVlOwogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2xlYXIoKTsKICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlOwogICAgICAgIHRoaXMuJG1vZHVsZS5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKHRoaXMuc2V0VVJMRmluaXNoQ2FsbGJhY2soewogICAgICAgICAgdmlld3BvcnQ6IHZpZXdwb3J0LAogICAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbiwKICAgICAgICAgIHZpZXdVUkw6IHRoaXMudmlld1VSTCwKICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2liaWxpdHkKICAgICAgICB9KSk7CiAgICAgICAgaWYgKHRoaXMuZmlsZUZvcm1hdCA9PT0gImdsdGYiKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUubG9hZEdMVEZGcm9tVVJMKG5ld1ZhbHVlLCAic2NlbmUiLCB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLmxvYWRPcmdhbnNGcm9tVVJMKG5ld1ZhbHVlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgInNjZW5lIiwgdW5kZWZpbmVkLCB0cnVlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmRpc3BsYXlNYXJrZXJzID0gdGhpcy5kaXNwbGF5TWFya2VyczsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZm9yY2VQaWNrYWJsZU9iamVjdHNVcGRhdGUgPSB0cnVlOwogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWluaW1hcCA9IHRoaXMuZGlzcGxheU1pbmltYXA7CiAgICAgICAgdGhpcy51cGRhdGVNaW5pbWFwU2Npc3NvcigpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB1c2VkIGZvciByZWFkaW5nIGluIG5ldyBzY2FmZm9sZCBtZXRhZGF0YS4gVGhpcyBmdW5jdGlvbiB3aWxsIGlnbm9yZQogICAgICogdGhlIHN0YXRlIHByb3AgYW5kIHJlYWQgaW4gdGhlIG5ldyB1cmwuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBzZXRVUkw6IGZ1bmN0aW9uIHNldFVSTChuZXdWYWx1ZSkgewogICAgICB0aGlzLnNldFVSTEFuZFN0YXRlKG5ld1ZhbHVlLCB1bmRlZmluZWQpOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGJhY2sgd2hlbiBkcmF3ZXIgaXMgdG9nZ2xlZC4KICAgICAqLwogICAgZHJhd2VyVG9nZ2xlZDogZnVuY3Rpb24gZHJhd2VyVG9nZ2xlZChmbGFnKSB7CiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZsYWc7CiAgICAgIHRoaXMuYWRqdXN0TGF5b3V0KCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB1c2luZyBSZXNpemVPYnNlcnZlci4KICAgICAqLwogICAgYWRqdXN0TGF5b3V0OiBmdW5jdGlvbiBhZGp1c3RMYXlvdXQoKSB7CiAgICAgIHZhciB3aWR0aCA9IHRoaXMuJHJlZnMuc2NhZmZvbGRDb250YWluZXIuY2xpZW50V2lkdGg7CiAgICAgIHRoaXMubWluaW1pc2VkU2xpZGVyID0gd2lkdGggPCA4MTI7CiAgICAgIGlmICh0aGlzLm1pbmltaXNlZFNsaWRlcikgewogICAgICAgIHRoaXMuc2xpZGVyUG9zaXRpb24gPSB0aGlzLmRyYXdlck9wZW4gPyAicmlnaHQiIDogImxlZnQiOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuc2xpZGVyUG9zaXRpb24gPSAiIjsKICAgICAgfQogICAgfSwKICAgIHRvZ2dsZVJlbmRlcmluZzogZnVuY3Rpb24gdG9nZ2xlUmVuZGVyaW5nKGZsYWcpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIpIHsKICAgICAgICBpZiAoZmxhZykgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hbmltYXRlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuc3RvcEFuaW1hdGUoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBmb3JjZVJlc2l6ZTogZnVuY3Rpb24gZm9yY2VSZXNpemUoKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5vbldpbmRvd1Jlc2l6ZSgpOwogICAgICB9CiAgICB9LAogICAgc3luY0NvbnRyb2xDYWxsYmFjazogZnVuY3Rpb24gc3luY0NvbnRyb2xDYWxsYmFjaygpIHsKICAgICAgdmFyIHBheWxvYWQgPSB0aGlzLiRtb2R1bGUuTkRDQ2FtZXJhQ29udHJvbC5nZXRQYW5ab29tKCk7CiAgICAgIGlmICh0aGlzLnREYXRhLnZpc2libGUpIHsKICAgICAgICB0aGlzLnNob3dSZWdpb25Ub29sdGlwKHRoaXMudERhdGEubGFiZWwpOwogICAgICB9CiAgICAgIHRoaXMuJGVtaXQoInNjYWZmb2xkLW5hdmlnYXRlZCIsIHBheWxvYWQpOwogICAgfSwKICAgIC8qKiAKICAgICAqIFJvdGF0ZSBtb2RlIC0gIm5vbmUiLCAiaG9yaXpvbnRhbCIsICJ2ZXJ0aWNhbCIsICJmcmVlIiBidXQKICAgICAqIGl0IHdpbGwgYmUgaWdub3JlZCBpZiBmbGFnIGlzIHNldCB0byBmYWxzZS4KICAgICAqLwogICAgdG9nZ2xlU3luY0NvbnRyb2w6IGZ1bmN0aW9uIHRvZ2dsZVN5bmNDb250cm9sKGZsYWcsIHJvdGF0ZU1vZGUpIHsKICAgICAgdGhpcy4kbW9kdWxlLnRvZ2dsZVN5bmNDb250cm9sKGZsYWcsIHJvdGF0ZU1vZGUpOwogICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xDYWxsYmFjayh0aGlzLnN5bmNDb250cm9sQ2FsbGJhY2spOwogICAgfQogIH0KfTs="},{"version":3,"names":["Vue","OpacityControls","ScaffoldTooltip","TreeControls","MapSvgIcon","MapSvgSpriteColor","findObjectsWithNames","lang","locale","use","_Col","_Loading","directive","_Option","_Popover","_Row","_Select","_Slider","_TabPane","_Tabs","OrgansViewer","require","EventNotifier","name","components","props","url","type","String","default","showColourPicker","Boolean","displayUI","displayAtStartUp","helpMode","displayWarning","warningMessage","displayMarkers","displayMinimap","format","minimapSettings","Object","_default","x_offset","y_offset","width","height","align","state","undefined","region","viewURL","render","data","sceneData","$module","isPlaying","isTransitioning","tooltipAppendToBody","hoverVisabilities","value","inHelp","loading","duration","drawerOpen","currentBackground","availableBackground","minimisedSlider","sliderPosition","timeMax","orginalDuration","animateDuration","playSpeed","label","currentSpeed","timeStamps","defaultCheckedKeys","tData","visible","x","y","external","fileFormat","watch","handler","immediate","newValue","setURL","setFocusedRegion","setState","deep","updateViewURL","val","setHelpMode","scene","forcePickableObjectsUpdate","sceneDataCurrentTime","$emit","currentTime","setDuration","toggleRendering","beforeCreate","isReady","selectedObjects","hoveredObjects","_currentURL","mounted","$refs","treeControls","setModule","eventNotifier","subscribe","eventNotifierCallback","addNotifier","addOrganPartAddedCallback","zincObjectAdded","initialiseRenderer","display","ro","ResizeObserver","adjustLayout","observe","scaffoldContainer","defaultRate","getPlayRate","beforeDestroy","disconnect","destroy","methods","zincObject","backgroundChangeCallback","colour","zincRenderer","getThreeJSRenderer","setClearColor","captureScreenshotCallback","removePostRenderCallbackFunction","captureID","screenshot","domElement","toDataURL","hrefElement","document","createElement","body","append","captureFilename","download","href","click","remove","captureScreenshot","filename","addPostRenderCallbackFunction","formatTooltip","sec","toFixed","min","fitWindow","viewAll","zoomIn","changeZoomByScrollRateUnit","zoomOut","speedChanged","speed","setPlayRate","stopFreeSpin","cameracontrol","getZincCameraControls","stopAutoTumble","findObjectsWithGroupName","objects","viewRegion","names","rootRegion","getRootRegion","groups","Array","isArray","box","getBoundingBoxOfZincObjects","isSyncControl","setSyncControlZoomToBox","dist","camera","far","near","viewAllWithBoundingBox","updateProjectionMatrix","setFinishDownloadCallback","setURLFinishCallback","URL","loadViewURL","getRendererInfo","info","freeSpin","enableAutoTumble","autoTumble","Math","PI","setTimeout","event","zincObjects","eventType","identifiers","forEach","identifier","id","group","push","length","updateActiveUI","removeActive","updateHoverUI","removeHover","coords","offsets","getBoundingClientRect","left","top","getCoordinatesOfSelected","getObjectsScreenXY","getDynamicSelectedCoordinates","selectedScreenCoordinates","timeChange","normalizedTime","updateTime","objectSelected","propagate","opacityControl","setObject","setSelectedByZincObjects","setSelectedByObjects","objectHovered","setHighlightedByZincObjects","setHighlightedByObjects","changeActiveByName","array","changeActiveByNames","changeHighlightedByName","changeHoverByNames","play","flag","playAnimation","item","showRegionTooltipCallback","instance","$_regionTooltipCallback","showRegionTooltip","resetView","getClosestVertexDOMElementCoords","inView","hideRegionTooltip","position","regionPath","getRegion","getFullPath","showHelpText","helpTextNumber","_this","helpTextWait","hideHelpText","clearTimeout","updateMinimapScissor","_this2","keys","key","minimapScissor","updateRequired","updateSettingsfromScene","getMetadataTag","getDuration","options","_this3","viewport","setCurrentCameraSettings","visibility","$nextTick","unsetFinishDownloadCallback","getState","zincCameraControls","getCurrentViewport","setURLAndState","exportGLTF","binary","clear","loadGLTFFromURL","loadOrgansFromURL","drawerToggled","clientWidth","animate","stopAnimate","forceResize","onWindowResize","syncControlCallback","payload","NDCCameraControl","getPanZoom","toggleSyncControl","rotateMode","setSyncControlCallback"],"sources":["node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue"],"sourcesContent":["\n\n\n\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqPA;AACA,OAAAA,GAAA;AACA,OAAAC,eAAA;AACA,OAAAC,eAAA;AACA,OAAAC,YAAA;AACA,SAAAC,UAAA,EAAAC,iBAAA;AACA,SAAAC,oBAAA;AAYA,OAAAC,IAAA;AACA,OAAAC,MAAA;AAEAA,MAAA,CAAAC,GAAA,CAAAF,IAAA;AACAP,GAAA,CAAAS,GAAA,CAAAC,IAAA;AACAV,GAAA,CAAAS,GAAA,CAAAE,QAAA,CAAAC,SAAA;AACAZ,GAAA,CAAAS,GAAA,CAAAI,OAAA;AACAb,GAAA,CAAAS,GAAA,CAAAK,QAAA;AACAd,GAAA,CAAAS,GAAA,CAAAM,IAAA;AACAf,GAAA,CAAAS,GAAA,CAAAO,OAAA;AACAhB,GAAA,CAAAS,GAAA,CAAAQ,OAAA;AACAjB,GAAA,CAAAS,GAAA,CAAAS,QAAA;AACAlB,GAAA,CAAAS,GAAA,CAAAU,KAAA;AAEA,IAAAC,YAAA,GAAAC,OAAA,8BAAAD,YAAA;AACA,IAAAE,aAAA,GAAAD,OAAA,6BAAAC,aAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACAC,IAAA;EACAC,UAAA;IACApB,UAAA,EAAAA,UAAA;IACAC,iBAAA,EAAAA,iBAAA;IACAJ,eAAA,EAAAA,eAAA;IACAC,eAAA,EAAAA,eAAA;IACAC,YAAA,EAAAA;EACA;EACAsB,KAAA;IACA;AACA;AACA;AACA;AACA;AACA;IACAC,GAAA;MACAC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAC,gBAAA;MACAH,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAG,SAAA;MACAL,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACAI,gBAAA;MACAN,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAK,QAAA;MACAP,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAM,cAAA;MACAR,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;IACAO,cAAA;MACAT,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAQ,cAAA;MACAV,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAS,cAAA;MACAX,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAU,MAAA;MACAZ,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAW,eAAA;MACAb,IAAA,EAAAc,MAAA;MACAZ,OAAA,WAAAa,SAAA;QACA;UACAC,QAAA;UACAC,QAAA;UACAC,KAAA;UACAC,MAAA;UACAC,KAAA;QACA;MACA;IACA;IACA;AACA;AACA;IACAC,KAAA;MACArB,IAAA,EAAAc,MAAA;MACAZ,OAAA,EAAAoB;IACA;IACA;AACA;AACA;AACA;IACAC,MAAA;MACAvB,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACAsB,OAAA;MACAxB,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAuB,MAAA;MACAzB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;EACA;EACAwB,IAAA,WAAAA,KAAA;IACA;MACAC,SAAA,OAAAC,OAAA,CAAAD,SAAA;MACAE,SAAA;MACA;AACA;AACA;MACAC,eAAA;MACAC,mBAAA;MACAC,iBAAA,GACA;QAAAC,KAAA;MAAA,GACA;QAAAA,KAAA;MAAA,GACA;QAAAA,KAAA;MAAA,GACA;QAAAA,KAAA;MAAA,GACA;QAAAA,KAAA;MAAA,GACA;QAAAA,KAAA;MAAA,GACA;QAAAA,KAAA;MAAA,EACA;MACAC,MAAA;MACAC,OAAA;MACAC,QAAA;MACAC,UAAA;MACAC,iBAAA;MACAC,mBAAA;MACAC,eAAA;MACAC,cAAA;MACAC,OAAA;MACAC,eAAA;MACAC,eAAA;MACAC,SAAA,GACA;QACAZ,KAAA;QACAa,KAAA;MACA,GACA;QACAb,KAAA;QACAa,KAAA;MACA,GACA;QACAb,KAAA;QACAa,KAAA;MACA,G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"}]}