{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\informatiOnForAttention\\components\\TablePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\informatiOnForAttention\\components\\TablePage\\index.vue","mtime":1750852290714},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudGVzdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IHsgcmVmaW5lUmVxdWVzdEJvZHksIHNldFF1ZXJ5VmFsdWUgfSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycyc7CmltcG9ydCBwYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlclBhZ2luYXRpb24vaW5kZXgudnVlJzsKaW1wb3J0IHsgVGFibGVNaXhpbiB9IGZyb20gJ0AvbWl4aW5zL3RhYmxlTWl4aW4nOwppbXBvcnQgdHJlZVNpZGUgZnJvbSAnQC9jb21wb25lbnRzL3RyZWVTaWRlL2luZGV4LnZ1ZSc7CmltcG9ydCBTZWFyY2hDb21tb24gZnJvbSAnQC9jb21wb25lbnRzL1NlYXJjaENvbW1vbi9pbmRleC52dWUnOwppbXBvcnQgeyBnZXRUcmVlIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVmVoaWNsZU1nbXQnOwppbXBvcnQgeyBkb3dubG9hZE1vZGVsLCBleHBvcnRGaWxlLCB0YWJsZURhdGEsIHRhYmxlRGVsZXRlIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL29wZXJhdGlvbmFsTW9uaXRvcmluZy9pbmZvcm1hdGlPbkZvckF0dGVudGlvbic7CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKaW1wb3J0IHsgZGljdGlvbmFyeUVzY2FwZSwgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7CmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSAndnVleCc7CmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JzsKaW1wb3J0IGJhdGNoRGlhbG9nIGZyb20gJy4uL2JhdGNoRGlhbG9nLnZ1ZSc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnVGFibGVQYWdlJywKICBjb21wb25lbnRzOiB7CiAgICBiYXRjaERpYWxvZzogYmF0Y2hEaWFsb2csCiAgICBwYWdpbmF0aW9uOiBwYWdpbmF0aW9uLAogICAgdHJlZVNpZGU6IHRyZWVTaWRlLAogICAgU2VhcmNoQ29tbW9uOiBTZWFyY2hDb21tb24KICB9LAogIG1peGluczogW1RhYmxlTWl4aW5dLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBiYXRjaERpYWxvZzogZmFsc2UsCiAgICAgIHN0YXR1c0xpc3Q6IFt7CiAgICAgICAgbmFtZTogJ+WFqOmDqCcsCiAgICAgICAgdmFsdWU6ICcnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5bey56Gu6K6kJywKICAgICAgICB2YWx1ZTogMQogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+acquehruiupCcsCiAgICAgICAgdmFsdWU6IDAKICAgICAgfV0sCiAgICAgIGlzQWRkU2hvdzogZmFsc2UsCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgdGFibGVNYXhIZWlnaHQ6ICc2MDBweCcsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0cmVlTG9hZGluZzogdHJ1ZSwKICAgICAgdGFibGVMb2FkaW5nOiBmYWxzZSwKICAgICAgdHJlZURhdGE6IFtdLAogICAgICAvL+W3pui+ueagkQogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogJ2NoaWxkcmVuJywKICAgICAgICBsYWJlbDogJ25hbWUnCiAgICAgIH0sCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIGN1cnJlbnREYXRhRGVsOiBbXSwKICAgICAgb3B0aW9uTGlzdDogW3sKICAgICAgICB0aXRsZTogJ+aJgOWxnui3r+autScsCiAgICAgICAgcHJvcDogJ3JvYWROYW1lJywKICAgICAgICB0eXBlOiAnaW5wdXQnLAogICAgICAgIGRlZmF1bHQ6IHRydWUKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5pa55ZCRJywKICAgICAgICBwcm9wOiAnZGlyZWN0aW9uJywKICAgICAgICB0eXBlOiAnc2VsZWN0JywKICAgICAgICBvcHRpb246IGdldERpY3Rpb25hcnlCeUNvZGUoJ3l4amMtZngnKSwKICAgICAgICBtdWx0aXBsZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn6aKE6K2m562J57qnJywKICAgICAgICBwcm9wOiAnd2FybmluZ0xldmVsJywKICAgICAgICB0eXBlOiAnc2VsZWN0JywKICAgICAgICBvcHRpb246IGdldERpY3Rpb25hcnlCeUNvZGUoJ3l4amMteWpkaicpLAogICAgICAgIG11bHRpcGxlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfpooTorabnsbvlnosnLAogICAgICAgIHByb3A6ICd3YXJuaW5nVHlwZScsCiAgICAgICAgdHlwZTogJ3NlbGVjdCcsCiAgICAgICAgb3B0aW9uOiBnZXREaWN0aW9uYXJ5QnlDb2RlKCd5eGpjLXlqbHgnKSwKICAgICAgICBtdWx0aXBsZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5Y+R5biD6K6+5aSH57G75Z6LJywKICAgICAgICBwcm9wOiAncHVibGlzaERldmljZVR5cGUnLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogZ2V0RGljdGlvbmFyeUJ5Q29kZSgneXhqYy1mYnNibHgnKSwKICAgICAgICBtdWx0aXBsZTogZmFsc2UKICAgICAgfV0sCiAgICAgIHBhcmFtczogewogICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICBwYWdlU2l6ZTogMjAsCiAgICAgICAgICBwYWdlOiAxLAogICAgICAgICAgdG90YWw6IDAKICAgICAgICB9LAogICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgIHByb3BlcnR5OiAncm9hZElkJwogICAgICAgIH0sIHsKICAgICAgICAgIGdyb3VwOiAncXVpY2snLAogICAgICAgICAgb3BlcmF0aW9uOiAnTElLRScsCiAgICAgICAgICByZWxhdGlvbjogJ09SJywKICAgICAgICAgIHByb3BlcnR5OiAncm9hZE5hbWUnCiAgICAgICAgfSwgewogICAgICAgICAgZ3JvdXA6ICdxdWljaycsCiAgICAgICAgICBvcGVyYXRpb246ICdMSUtFJywKICAgICAgICAgIHJlbGF0aW9uOiAnT1InLAogICAgICAgICAgcHJvcGVydHk6ICd3YXJuaW5nTGV2ZWwnCiAgICAgICAgfSwgewogICAgICAgICAgZ3JvdXA6ICdxdWljaycsCiAgICAgICAgICBvcGVyYXRpb246ICdMSUtFJywKICAgICAgICAgIHJlbGF0aW9uOiAnT1InLAogICAgICAgICAgcHJvcGVydHk6ICd3YXJuaW5nVHlwZScKICAgICAgICB9LCB7CiAgICAgICAgICBncm91cDogJ3F1aWNrJywKICAgICAgICAgIG9wZXJhdGlvbjogJ0xJS0UnLAogICAgICAgICAgcmVsYXRpb246ICdPUicsCiAgICAgICAgICBwcm9wZXJ0eTogJ3B1Ymxpc2hEZXZpY2VUeXBlJwogICAgICAgIH0sIHsKICAgICAgICAgIG9wZXJhdGlvbjogJ0JFVFdFRU4nLAogICAgICAgICAgcHJvcGVydHk6ICd3YXJuaW5nX3RpbWVfJywKICAgICAgICAgIHZhbHVlOiBbbW9tZW50KCkuc3RhcnRPZignbW9udGgnKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSwgbW9tZW50KCkuZW5kT2YoJ21vbnRoJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyldCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcmVsYXRpb246ICdBTkQnLAogICAgICAgICAgcHJvcGVydHk6ICdQVUJfU1RBVFVTXycsCiAgICAgICAgICB2YWx1ZTogJycKICAgICAgICB9XSwKICAgICAgICBzb3J0ZXI6IFt7CiAgICAgICAgICBwcm9wZXJ0eTogJ2NyZWF0ZVRpbWUnLAogICAgICAgICAgZGlyZWN0aW9uOiAnREVTQycKICAgICAgICB9XQogICAgICB9LAogICAgICB0cmVlRGlhbG9nOiBmYWxzZSwKICAgICAgLy8g56eR55uu5L+h5oGv5by55bGCCiAgICAgIHRyZWVJdGVtSWQ6ICcnLAogICAgICAvLyDmoJHlvaLnm67lvZVpZAogICAgICB0cmVlSXRlbToge30sCiAgICAgIC8vIOagkeW9ouiKgueCuemAieS4reWvueixoQogICAgICBpc1Nob3dQb3BvdmVyOiBmYWxzZSwKICAgICAgZG93bmxvYWRMb2FkaW5nOiBmYWxzZSwKICAgICAgdXBsb2FkTG9hZGluZzogZmFsc2UsCiAgICAgIHN0YXR1c1Nob3c6IDIKICAgIH07CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7CiAgICBhY3Rpb25Vcmw6IGZ1bmN0aW9uIGFjdGlvblVybChfKSB7CiAgICAgIHJldHVybiB3aW5kb3cuY29udGV4dC5wb3J0YWw7CiAgICB9LAogICAgdXBsb2FkRGF0YTogZnVuY3Rpb24gdXBsb2FkRGF0YSgpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBiZWxvbmdBcmVhSWQ6IHRoaXMudHJlZUl0ZW0ub3JnSWQsCiAgICAgICAgcm9hZElkOiB0aGlzLnRyZWVJdGVtLmlkCiAgICAgIH07CiAgICB9LAogICAgYWN0aW9uOiBmdW5jdGlvbiBhY3Rpb24oKSB7CiAgICAgIHJldHVybiAiIi5jb25jYXQodGhpcy5hY3Rpb25VcmwsICIvbW9uaXRvci9iaXpFYXJseVdhcm5pbmdNYW5hZ2VtZW50L3YxL2ltcG9ydEV4Y2VsIik7CiAgICB9CiAgfSwgbWFwU3RhdGUoewogICAgaGVhZGVyczogZnVuY3Rpb24gaGVhZGVycyhzdGF0ZSkgewogICAgICByZXR1cm4gewogICAgICAgIEF1dGhvcml6YXRpb246ICJCZWFyZXIgIi5jb25jYXQoc3RhdGUubG9naW4uY3VycmVudFVzZXIudG9rZW4pCiAgICAgIH07CiAgICB9CiAgfSkpLAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgLy8g6I635Y+W5qCR5b2i55uu5b2VLQogICAgdGhpcy5nZXRPcmdUcmVlRGF0YShmdW5jdGlvbiAodHJlZURhdGEpIHsKICAgICAgLy8g5Zue6LCD5Lit6buY6K6k6YCJ5Lit56ys5LiA6aG55bm25bCG5YW2aWTkvZzkuLrlj4LmlbDor7fmsYLooajmoLwKICAgICAgX3RoaXMudHJlZUl0ZW0gPSB0cmVlRGF0YVswXSB8fCB7fTsKICAgICAgdmFyIGFycmF5ID0gW107CiAgICAgIGlmIChfdGhpcy50cmVlSXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgICAgYXJyYXkgPSBfdGhpcy50cmVlSXRlbS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIF90aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoXykgewogICAgICAgIHZhciBfdGhpcyQkcmVmcyR0cmVlU2lkZSwgX3RyZWVEYXRhJCwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyOwogICAgICAgIChfdGhpcyQkcmVmcyR0cmVlU2lkZSA9IF90aGlzLiRyZWZzLnRyZWVTaWRlKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyR0cmVlU2lkZSA9PT0gdm9pZCAwIHx8IF90aGlzJCRyZWZzJHRyZWVTaWRlLnNldEN1cnJlbnRLZXkoKF90cmVlRGF0YSQgPSB0cmVlRGF0YVswXSkgPT09IG51bGwgfHwgX3RyZWVEYXRhJCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RyZWVEYXRhJC5pZCk7IC8v6YCa6L+HICRyZWZzIOiOt+WPlnRyZWVTaWRl57uE5Lu25byV55So77yM5bm26LCD55SoIHNldEN1cnJlbnRLZXnmlrnms5Xorr7nva7lvZPliY3pgInkuK3nmoTmoJHoioLngrnjgIIKICAgICAgICAoX3RoaXMkJHJlZnMkdHJlZVNpZGUyID0gX3RoaXMuJHJlZnMudHJlZVNpZGUpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRyZWVTaWRlMiA9PT0gdm9pZCAwIHx8IF90aGlzJCRyZWZzJHRyZWVTaWRlMi5leHBhbmRIYW5kbGUodHJ1ZSwgMik7CiAgICAgIH0pOwogICAgICBzZXRRdWVyeVZhbHVlKF90aGlzLnBhcmFtcywgJ3JvYWRJZCcsIGFycmF5KTsKICAgICAgX3RoaXMubG9hZERhdGEoKTsgLy/liqDovb3ooajmoLzmlbDmja4KICAgIH0pOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdUYWJsZVBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICBzd2l0Y2ggKGRhdGEudHlwZSkgewogICAgICAgIGNhc2UgJ2FkZCc6CiAgICAgICAgICBfdGhpczIucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICAgICAgX3RoaXMyLmxvYWREYXRhKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdlZGl0JzoKICAgICAgICAgIF90aGlzMi5sb2FkRGF0YSgpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgZGljdGlvbmFyeUVzY2FwZTogZGljdGlvbmFyeUVzY2FwZSwKICAgIGNoZWNrYm94SW5pdDogZnVuY3Rpb24gY2hlY2tib3hJbml0KHJvdywgaW5kZXgpIHsKICAgICAgaWYgKHJvdy5wdWJTdGF0dXMpIHsKICAgICAgICByZXR1cm4gMDsgLy/kuI3lj6/li77pgIkKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgfSwKICAgIGJhdGNoQ2hhbmdlOiBmdW5jdGlvbiBiYXRjaENoYW5nZSgpIHsKICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IDE7CiAgICAgIHRoaXMubG9hZERhdGEoKTsKICAgIH0sCiAgICBiYXRjaENvbmZpcm1hdGlvbjogZnVuY3Rpb24gYmF0Y2hDb25maXJtYXRpb24oKSB7CiAgICAgIHRoaXMuYmF0Y2hEaWFsb2cgPSB0cnVlOwogICAgfSwKICAgIC8vIOeKtuaAgeWIh+aNogogICAgc3RhdHVzUGlja2VyQ2hhbmdlOiBmdW5jdGlvbiBzdGF0dXNQaWNrZXJDaGFuZ2UodmFsKSB7CiAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdQVUJfU1RBVFVTXycsIHZhbCk7CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgLy8g5pe26Ze06IyD5Zu05YiH5o2iCiAgICBkYXRlUGlja2VyQ2hhbmdlOiBmdW5jdGlvbiBkYXRlUGlja2VyQ2hhbmdlKHZhbCkgewogICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAnd2FybmluZ190aW1lXycsIHZhbCk7CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgLy8g6I635Y+W5YWs5Y+45qCRLeW8guatpeaWueazle+8jOeUqOS6juS7juWQjuerr+iOt+WPluagkeW9ouaVsOaNrgogICAgZ2V0T3JnVHJlZURhdGE6IGZ1bmN0aW9uIGdldE9yZ1RyZWVEYXRhKGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRnZXRUcmVlLCB2YWx1ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMDsKICAgICAgICAgICAgICBfdGhpczMudHJlZUxvYWRpbmcgPSB0cnVlOyAvL+W8gOWni+WKoOi9veaXtuaYvuekuuWKoOi9veeKtuaAgQogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiBnZXRUcmVlKCk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfeWllbGQkZ2V0VHJlZSA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkZ2V0VHJlZS52YWx1ZTsKICAgICAgICAgICAgICAvLyDosIPnlKggQVBJIOiOt+WPluagkeW9ouaVsOaNrgogICAgICAgICAgICAgIF90aGlzMy50cmVlRGF0YSA9IF90aGlzMy50cmFuc2Zvcm1UcmVlRGF0YSh2YWx1ZSk7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gNzsKICAgICAgICAgICAgICBfdGhpczMudHJlZUxvYWRpbmcgPSBmYWxzZTsgLy8g5peg6K665oiQ5Yqf5oiW5aSx6LSl77yM6YO95YWz6Zet5Yqg6L2954q25oCBCiAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soX3RoaXMzLnRyZWVEYXRhKTsgLy8g5aaC5p6c5o+Q5L6b5LqG5Zue6LCD5Ye95pWw77yM5YiZ6LCD55So5a6D5bm25Lyg5YWl5qCR5b2i5pWw5o2uCiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmZpbmlzaCg3KTsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUsIG51bGwsIFtbMCwsIDcsIDExXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICB0cmFuc2Zvcm1UcmVlRGF0YTogZnVuY3Rpb24gdHJhbnNmb3JtVHJlZURhdGEoZGF0YSkgewogICAgICByZXR1cm4gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaWQ6IGl0ZW0uaWQsCiAgICAgICAgICBvcmdJZDogaXRlbS5vcmdJZCwKICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSwKICAgICAgICAgIC8vIOS4gOe6p+ebruW9leeahCBsYWJlbAogICAgICAgICAgY2hpbGRyZW46IGl0ZW0ucm9hZExpc3QubWFwKGZ1bmN0aW9uIChncmlkKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgaWQ6IGdyaWQuaWQsCiAgICAgICAgICAgICAgbmFtZTogZ3JpZC5uYW1lLAogICAgICAgICAgICAgIC8vIOS6jOe6p+ebruW9leeahCBsYWJlbAogICAgICAgICAgICAgIHBhdGg6IGdyaWQucGF0aCwKICAgICAgICAgICAgICBvcmdJZDogZ3JpZC5vcmdJZAogICAgICAgICAgICB9OwogICAgICAgICAgfSkKICAgICAgICB9OwogICAgICB9KTsKICAgIH0sCiAgICAvL+W3pui+ueagkeiKgueCuQogICAgY3VycmVudENoYW5nZTogZnVuY3Rpb24gY3VycmVudENoYW5nZShub2RlSXRlbSkgewogICAgICAvLyDliKTmlq3mmK/lkKbmmK/kuIDnuqfnm67lvZXvvIjmnIkgY2hpbGRyZW4g5bGe5oCn77yJCiAgICAgIGlmIChub2RlSXRlbS5jaGlsZHJlbiAmJiBub2RlSXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgICAgdGhpcy5pc0FkZFNob3cgPSBmYWxzZTsKICAgICAgICB2YXIgYXJyYXkgPSBub2RlSXRlbS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgIH0pOwogICAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQgJywgYXJyYXkpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaXNBZGRTaG93ID0gdHJ1ZTsKICAgICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncm9hZElkICcsIFtub2RlSXRlbSA9PT0gbnVsbCB8fCBub2RlSXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZUl0ZW0uaWRdIHx8IFtdKTsKICAgICAgfQogICAgICB0aGlzLnRyZWVJdGVtID0gbm9kZUl0ZW0gfHwge307CiAgICAgIHRoaXMuY2FsY1RhYmxlSGVpZ2h0KDUwMCk7CiAgICAgIFB1YlN1Yi5wdWJsaXNoKCdUcmVlSXRlbVNlbGVjdGVkJywgewogICAgICAgIGlkOiAobm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLmlkKSB8fCAnJywKICAgICAgICBuYW1lOiAobm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLm5hbWUpIHx8ICcnLAogICAgICAgIHBhdGg6IChub2RlSXRlbSA9PT0gbnVsbCB8fCBub2RlSXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZUl0ZW0ucGF0aCkgfHwgJycKICAgICAgfSk7CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgLy/ojrflj5bmlbDmja4KICAgIGxvYWREYXRhOiBmdW5jdGlvbiBsb2FkRGF0YSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0YWJsZURhdGEsIF95aWVsZCR0YWJsZURhdGEkdG90YSwgdG90YWwsIF95aWVsZCR0YWJsZURhdGEkcm93cywgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXM0LnRhYmxlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURhdGEocmVmaW5lUmVxdWVzdEJvZHkoX3RoaXM0LnBhcmFtcykpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkdG90YSA9IF95aWVsZCR0YWJsZURhdGEudG90YWw7CiAgICAgICAgICAgICAgdG90YWwgPSBfeWllbGQkdGFibGVEYXRhJHRvdGEgPT09IHZvaWQgMCA/IDAgOiBfeWllbGQkdGFibGVEYXRhJHRvdGE7CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSRyb3dzID0gX3lpZWxkJHRhYmxlRGF0YS5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkdGFibGVEYXRhJHJvd3MgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHRhYmxlRGF0YSRyb3dzOwogICAgICAgICAgICAgIF90aGlzNC5wYXJhbXMucGFnZUJlYW4udG90YWwgPSB0b3RhbDsKICAgICAgICAgICAgICBfdGhpczQudGFibGVEYXRhID0gcm93cy5tYXAoZnVuY3Rpb24gKHJvdykgewogICAgICAgICAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcm93KSwge30sIHsKICAgICAgICAgICAgICAgICAgcm9hZE5hbWU6IHJvdy5yb2FkTmFtZSB8fCBfdGhpczQudHJlZUl0ZW0ubmFtZQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgX3RoaXM0LnRhYmxlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5LiL6L295a+85YWl5qih54mICiAgICBkb3dubG9hZFRlbXBsYXRlOiBmdW5jdGlvbiBkb3dubG9hZFRlbXBsYXRlKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdGhpcy5kb3dubG9hZExvYWRpbmcgPSB0cnVlOwogICAgICBkb3dubG9hZE1vZGVsKCkudGhlbihmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfdGhpczUuJG1lc3NhZ2Uuc3VjY2Vzcygn6aKE6K2m5L+h5oGv5qih5p2/5oiQ5YqfJyk7CiAgICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKF8pIHsKICAgICAgICBfdGhpczUuZG93bmxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgX3RoaXM1LmlzU2hvd1BvcG92ZXIgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgZXhwb3J0RGF0YTogZnVuY3Rpb24gZXhwb3J0RGF0YSgpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzNi5kb3dubG9hZExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIGV4cG9ydEZpbGUocmVmaW5lUmVxdWVzdEJvZHkoX3RoaXM2LnBhcmFtcykpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NjU3MFx1NjM2RVx1NUJGQ1x1NTFGQVx1NjIxMFx1NTI5RiIpOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgX2NvbnRleHQzLnByZXYgPSA1OwogICAgICAgICAgICAgIF90aGlzNi5kb3dubG9hZExvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmZpbmlzaCg1KTsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzLCBudWxsLCBbWzEsLCA1LCA4XV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmlofku7bkuIrkvKDliY0KICAgIGJlZm9yZVVwbG9hZDogZnVuY3Rpb24gYmVmb3JlVXBsb2FkKGZpbGUpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgX3RoaXM3LnVwbG9hZExvYWRpbmcgPSB0cnVlOwogICAgICAgIHZhciBzaXplID0gZmlsZS5zaXplLAogICAgICAgICAgbmFtZSA9IGZpbGUubmFtZTsKICAgICAgICBfdGhpczcuJGNvbmZpcm0oIlx1OEJGN1x1Nzg2RVx1OEJBNFx1NjYyRlx1NTQyNlx1NUJGQ1x1NTE2NSBcdTIwMUMiLmNvbmNhdChuYW1lLCAiXHUyMDFEIFx1RkYxRiIpLCAn5o+Q56S6JywgewogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICB2YXIgcGFzc2VkT3JOb3QgPSB0cnVlOyAvLyDmmK/lkKbpgJrov4fpqozor4EKICAgICAgICAgIHZhciBtYXhTaXplID0gNTAwICogMTAyNCAqIDEwMjQ7IC8vIDIwTUIKICAgICAgICAgIHZhciB0eXBlUmVndWxhciA9IC9cLih4bHN8eGxzeCkkL2k7CiAgICAgICAgICB2YXIgdmVyaWZpY2F0aW9uID0gW3sKICAgICAgICAgICAgY29uZGl0aW9uOiAhdHlwZVJlZ3VsYXIudGVzdChuYW1lKSwKICAgICAgICAgICAgcmVzdWx0OiBmdW5jdGlvbiByZXN1bHQoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzNy4kbWVzc2FnZS5lcnJvcign5Y+q6IO95LiK5LygeGxz5oiWeGxzeOaWh+S7tuexu+WeiycpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICAvLyB7CiAgICAgICAgICAvLyAgIGNvbmRpdGlvbjogc2l6ZSA+IG1heFNpemUsCiAgICAgICAgICAvLyAgIHJlc3VsdDogKCkgPT4gdGhpcy4kbWVzc2FnZS5lcnJvcign6ZmE5Lu25aSn5bCP5LiN6IO96LaF6L+HNTAwTUInKQogICAgICAgICAgLy8gfQogICAgICAgICAgXTsKICAgICAgICAgIHZlcmlmaWNhdGlvbi5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGlmIChpdGVtLmNvbmRpdGlvbikgewogICAgICAgICAgICAgIGl0ZW0ucmVzdWx0KCk7CiAgICAgICAgICAgICAgcGFzc2VkT3JOb3QgPSBmYWxzZTsKICAgICAgICAgICAgICBfdGhpczcudXBsb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIHBhc3NlZE9yTm90ID8gcmVzb2x2ZSgpIDogcmVqZWN0KCk7CiAgICAgICAgICBfdGhpczcuaXNTaG93UG9wb3ZlciA9IHBhc3NlZE9yTm90OwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICByZWplY3QoKTsKICAgICAgICAgIF90aGlzNy5pc1Nob3dQb3BvdmVyID0gdHJ1ZTsKICAgICAgICAgIF90aGlzNy51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICBfdGhpczcuJG1lc3NhZ2Uud2FybmluZygn5bey5Y+W5raI5o6S54+t5LiK5LygJyk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOaWh+WMluS4iuS8oOaIkOWKnwogICAgaGFuZGxlU3VjY2VzczogZnVuY3Rpb24gaGFuZGxlU3VjY2VzcygpIHsKICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCfpooTorablr7zlhaXmiJDlip8nKTsKICAgICAgdGhpcy51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuaXNTaG93UG9wb3ZlciA9IGZhbHNlOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5aSx6LSlCiAgICBoYW5kbGVFcnJvcjogZnVuY3Rpb24gaGFuZGxlRXJyb3IoZXJyKSB7CiAgICAgIHZhciBlcnJNZXNzYWdlID0gJyc7CiAgICAgIGlmIChlcnIgJiYgZXJyLm1lc3NhZ2UpIHsKICAgICAgICB2YXIgX0pTT04kcGFyc2UgPSBKU09OLnBhcnNlKGVyci5tZXNzYWdlKSwKICAgICAgICAgIG1lc3NhZ2UgPSBfSlNPTiRwYXJzZS5tZXNzYWdlOwogICAgICAgIGVyck1lc3NhZ2UgPSBtZXNzYWdlOwogICAgICB9CiAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZXJyTWVzc2FnZSB8fCAn6aKE6K2m5a+85YWl5aSx6LSl77yM6K+36YeN6K+VJyk7CiAgICAgIHRoaXMudXBsb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLmlzU2hvd1BvcG92ZXIgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDliKDpmaQKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKHJvdykgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgdGhpcy5jbGlja1RpbWVyID0gdHJ1ZTsKICAgICAgdGhpcy4kY29uZmlybSgn56Gu5a6a5Yig6Zmk6YCJ5Lit6LWE5paZ5ZCX77yfJywgJ+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruiupCcsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oLyojX19QVVJFX18qL19hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICB2YXIgaWRzLCBfeWllbGQkdGFibGVEZWxldGUsIHN0YXRlLCBtZXNzYWdlLCBfdGhpczgkcGFyYW1zJHBhZ2VCZWEsIHBhZ2UsIHBhZ2VTaXplLCB0b3RhbCwgdG90YWxQYWdlczsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgaWRzID0gcm93ID8gcm93LmlkIDogX3RoaXM4LmN1cnJlbnREYXRhRGVsLmpvaW4oKTsKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGVsZXRlKGlkcyk7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEZWxldGUgPSBfY29udGV4dDQuc2VudDsKICAgICAgICAgICAgICBzdGF0ZSA9IF95aWVsZCR0YWJsZURlbGV0ZS5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJHRhYmxlRGVsZXRlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgaWYgKCFzdGF0ZSkgewogICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAxNTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uuc3VjY2VzcygiXHU4RDQ0XHU2NTk5XHU1MjIwXHU5NjY0XHU2MjEwXHU1MjlGIik7CiAgICAgICAgICAgICAgX3RoaXM4JHBhcmFtcyRwYWdlQmVhID0gX3RoaXM4LnBhcmFtcy5wYWdlQmVhbiwgcGFnZSA9IF90aGlzOCRwYXJhbXMkcGFnZUJlYS5wYWdlLCBwYWdlU2l6ZSA9IF90aGlzOCRwYXJhbXMkcGFnZUJlYS5wYWdlU2l6ZSwgdG90YWwgPSBfdGhpczgkcGFyYW1zJHBhZ2VCZWEudG90YWw7CiAgICAgICAgICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbCAvIHBhZ2VTaXplKTsgLy8g6K6h566X5oC76aG15pWwCiAgICAgICAgICAgICAgaWYgKHRvdGFsUGFnZXMgPiAxICYmIHBhZ2UgPT09IHRvdGFsUGFnZXMpIHsKICAgICAgICAgICAgICAgIGlmIChfdGhpczgudGFibGVEYXRhLmxlbmd0aCA9PT0gMSkgewogICAgICAgICAgICAgICAgICAvLyDlvZPliY3pobXlj6rmnInkuIDmnaHmlbDmja4KICAgICAgICAgICAgICAgICAgX3RoaXM4LnBhcmFtcy5wYWdlQmVhbi5wYWdlIC09IDE7IC8vIOi/lOWbnuWJjeS4gOmhtQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDEzOwogICAgICAgICAgICAgIHJldHVybiBfdGhpczgubG9hZERhdGEoKTsKICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDE2OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIF90aGlzOC4kbWVzc2FnZS5lcnJvcihtZXNzYWdlKTsKICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgIH0pKSkuY2F0Y2goZnVuY3Rpb24gKF8pIHsKICAgICAgICByZXR1cm4gXzsKICAgICAgfSk7CiAgICB9LAogICAgLy/kv67mlLkKICAgIGhhbmRsZURiQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZURiQ2xpY2socm93KSB7CiAgICAgIGlmICh0aGlzLmNsaWNrVGltZXIpIHJldHVybiB0aGlzLmNsaWNrVGltZXIgPSBmYWxzZTsKICAgICAgdmFyIHBheWxvYWQgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJvdyksIHt9LCB7CiAgICAgICAgcm9hZE5hbWU6IHJvdy5yb2FkTmFtZSB8fCB0aGlzLnRyZWVJdGVtLm5hbWUKICAgICAgfSk7CiAgICAgIHRoaXMuY2hhbmdlUGFnZSgnRWRpdEFkZFBhZ2UnLCBwYXlsb2FkKTsKICAgIH0sCiAgICAvLyDmlLnlj5jpobXpnaIKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHZhciBwYWdlTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7CiAgICAgIHZhciByb3cgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9OwogICAgICBpZiAoIXBhZ2VOYW1lKSByZXR1cm47CiAgICAgIHZhciBwYXlsb2FkID0gcm93LmlkID8gcm93IDogewogICAgICAgIHJvYWRJZDogdGhpcy50cmVlSXRlbS5pZCwKICAgICAgICByb2FkTmFtZTogdGhpcy50cmVlSXRlbS5uYW1lLAogICAgICAgIHBhdGg6IHRoaXMudHJlZUl0ZW0ucGF0aAogICAgICB9OwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHBheWxvYWQpOwogICAgICB9LCByb3cuaWQgPyAn57yW6L6RJyA6ICfmt7vliqAnKTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDlnKjnu4Tku7bplIDmr4HkuYvliY0g5riF6Zmk6K6i6ZiF5raI5oGvCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpOwogIH0KfTs="},null]}