{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataShare\\shareDataCatalog\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataShare\\shareDataCatalog\\index.vue","mtime":1749236141335},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgdGFibGVNaXhpbiBmcm9tICdAL21peGlucy90YWJsZS5qcyc7CmltcG9ydCBBZGRFZGl0RGlhbG9nIGZyb20gJy4vQWRkRWRpdERpYWxvZy52dWUnOwppbXBvcnQgZmllbGRzTWFuYWdlIGZyb20gJy4vZmllbGRzTWFuYWdlLnZ1ZSc7CmltcG9ydCBBUEkgZnJvbSAnQC9hcGkvYnVzaW5lc3Mvc2hhcmVEYXRhQ2F0YWxvZyc7CmltcG9ydCBQdXRPdXREaWFsb2cgZnJvbSAnLi9QdXRPdXREaWFsb2cudnVlJzsKaW1wb3J0IFJlc291cmNlQXV0aG9yaXplIGZyb20gJy4vUmVzb3VyY2VBdXRob3JpemUudnVlJzsKaW1wb3J0IE1vdmVEaWFsb2cgZnJvbSAnLi9Nb3ZlRGlhbG9nLnZ1ZSc7CmV4cG9ydCBkZWZhdWx0IHsKICBjb21wb25lbnRzOiB7CiAgICBNb3ZlRGlhbG9nOiBNb3ZlRGlhbG9nLAogICAgUmVzb3VyY2VBdXRob3JpemU6IFJlc291cmNlQXV0aG9yaXplLAogICAgUHV0T3V0RGlhbG9nOiBQdXRPdXREaWFsb2csCiAgICBmaWVsZHNNYW5hZ2U6IGZpZWxkc01hbmFnZSwKICAgIEFkZEVkaXREaWFsb2c6IEFkZEVkaXREaWFsb2cKICB9LAogIG1peGluczogW3RhYmxlTWl4aW5dLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgdmFyIFRSRUVfQ09ORklHID0gewogICAgICB0cmVlUHJvcHM6IHsKICAgICAgICB2YWx1ZTogJ2lkJywKICAgICAgICBsYWJlbDogJ25hbWUnCiAgICAgIH0sCiAgICAgIGRlZmF1bHRFeHBhbmRlZEtleXM6IFsnMCddLAogICAgICB0cmVlRmllbGRzOiBbewogICAgICAgIGxhYmVsOiAn6LWE5rqQ55uu5b2V5ZCN56ewJywKICAgICAgICBwcm9wOiAnbmFtZScsCiAgICAgICAgbGFiZWxXaWR0aDogJzEyMCcsCiAgICAgICAgcnVsZXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfotYTmupDnm67lvZXlkI3np7DkuI3og73kuLrnqbonCiAgICAgICAgfV0KICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn6LWE5rqQ55uu5b2V57yW56CBJywKICAgICAgICBwcm9wOiAnY29kZScsCiAgICAgICAgbGFiZWxXaWR0aDogJzEyMCcsCiAgICAgICAgcnVsZXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfotYTmupDnm67lvZXnvJbnoIHkuI3og73kuLrnqbonCiAgICAgICAgfV0KICAgICAgfV0sCiAgICAgIGN1ck5vZGU6IHt9IC8vIOW9k+WJjemAieaLqeiKgueCuQogICAgfTsKICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIFRSRUVfQ09ORklHKSwge30sIHsKICAgICAgY3JlYXRlZExpc3Q6IFt7CiAgICAgICAgbGFiZWw6ICflj5HluIMnLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+acquWPkeW4gycsCiAgICAgICAgdmFsdWU6IDAKICAgICAgfV0sCiAgICAgIGNvbHVtbnM6IFt7CiAgICAgICAgbGFiZWw6ICfotYTmupDlkI3np7AnLAogICAgICAgIHByb3A6ICduYW1lJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfmlbDmja7lupPooajlkI0nLAogICAgICAgIHByb3A6ICd0YWJsZUNvZGUnLAogICAgICAgIHdpZHRoOiAnMTUwcHgnCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+i1hOa6kOabtOaWsOWRqOacnycsCiAgICAgICAgcHJvcDogJ3VwZGF0ZVJhdGUnLAogICAgICAgIHdpZHRoOiAnMTEwcHgnCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+i1hOa6kOe6p+WIqycsCiAgICAgICAgcHJvcDogJ2xldmVsJywKICAgICAgICB3aWR0aDogJzgwcHgnLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfmmK/lkKblvIDlkK/lupPooajlhbHkuqsnLAogICAgICAgIHByb3A6ICdpc0RhdGFiYXNlJywKICAgICAgICBkYXRhVHlwZTogJ3Nsb3QnLAogICAgICAgIHNsb3Q6ICdpc0RhdGFiYXNlJywKICAgICAgICB3aWR0aDogJzEwMHB4JywKICAgICAgICBhbGlnbjogJ2NlbnRlcicKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5piv5ZCm5byA5ZCv5o6l5Y+j5YWx5LqrJywKICAgICAgICBwcm9wOiAnaXNBcGknLAogICAgICAgIGRhdGFUeXBlOiAnc2xvdCcsCiAgICAgICAgc2xvdDogJ2lzQXBpJywKICAgICAgICB3aWR0aDogJzEwMHB4JywKICAgICAgICBhbGlnbjogJ2NlbnRlcicKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5piv5ZCm5byA5ZCv5paH5Lu25YWx5LqrJywKICAgICAgICBwcm9wOiAnaXNGaWxlJywKICAgICAgICBkYXRhVHlwZTogJ3Nsb3QnLAogICAgICAgIHNsb3Q6ICdpc0ZpbGUnLAogICAgICAgIHdpZHRoOiAnMTAwcHgnLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICflj5HluIPnirbmgIEnLAogICAgICAgIHByb3A6ICdkZXBsb3llZCcsCiAgICAgICAgZGF0YVR5cGU6ICdzbG90JywKICAgICAgICBzbG90OiAnZGVwbG95ZWQnLAogICAgICAgIHdpZHRoOiAnMTAwcHgnLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgZGF0YVR5cGU6ICdvcHRpb24nLAogICAgICAgIGxhYmVsOiAn5pON5L2cJywKICAgICAgICB3aWR0aDogJzI1MHB4JywKICAgICAgICBmaXhlZDogJ3JpZ2h0JywKICAgICAgICBvcGVyYXRpb246IFt7CiAgICAgICAgICBuYW1lOiAn5a2X5q61566h55CGJywKICAgICAgICAgIHR5cGU6ICd0ZXh0JywKICAgICAgICAgIHNpemU6ICdtaW5pJywKICAgICAgICAgIGNvbG9yOiAnIzQwOWVmZicsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi1zLW9yZGVyJywKICAgICAgICAgIHBsYWluOiB0cnVlLAogICAgICAgICAgY2xpY2tGdW46IGZ1bmN0aW9uIGNsaWNrRnVuKHJvdykgewogICAgICAgICAgICBfdGhpcy5jdXJyZW50Um93ID0gcm93OwogICAgICAgICAgICBfdGhpcy5maWVsZERpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIG5hbWU6ICflj5HluIPlu7rooagnLAogICAgICAgICAgdHlwZTogJ3RleHQnLAogICAgICAgICAgc2l6ZTogJ21pbmknLAogICAgICAgICAgaWNvbjogJ2VsLWljb24tcy1wcm9tb3Rpb24nLAogICAgICAgICAgY29sb3I6ICcjZmE5MTJhJywKICAgICAgICAgIHBsYWluOiB0cnVlLAogICAgICAgICAgc2hvd0hpZGU6IGZ1bmN0aW9uIHNob3dIaWRlKHJvdykgewogICAgICAgICAgICByZXR1cm4gcm93LmRlcGxveWVkU3RhdHVzICE9PSAnMSc7CiAgICAgICAgICB9LAogICAgICAgICAgY2xpY2tGdW46IGZ1bmN0aW9uIGNsaWNrRnVuKHJvdykgewogICAgICAgICAgICBfdGhpcy5wdXRPdXRDaGFuZ2Uocm93KTsKICAgICAgICAgIH0KICAgICAgICB9LCB7CiAgICAgICAgICBuYW1lOiAn6LWE5rqQ5o6I5p2DJywKICAgICAgICAgIHR5cGU6ICd0ZXh0JywKICAgICAgICAgIHNpemU6ICdtaW5pJywKICAgICAgICAgIGljb246ICdlbC1pY29uLXNldHRpbmcnLAogICAgICAgICAgcGxhaW46IHRydWUsCiAgICAgICAgICBzaG93SGlkZTogZnVuY3Rpb24gc2hvd0hpZGUocm93KSB7CiAgICAgICAgICAgIHJldHVybiByb3cuaXNEYXRhYmFzZSA9PT0gJzEnOwogICAgICAgICAgfSwKICAgICAgICAgIGNsaWNrRnVuOiBmdW5jdGlvbiBjbGlja0Z1bihyb3cpIHsKICAgICAgICAgICAgX3RoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgICAgICAgICAgX3RoaXMucmVzb3VyY2VEaWFsb2cgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIG5hbWU6ICfmjqXlj6PlhbHkuqsnLAogICAgICAgICAgdHlwZTogJ3RleHQnLAogICAgICAgICAgc2l6ZTogJ21pbmknLAogICAgICAgICAgaWNvbjogJ2VsLWljb24tc2V0dGluZycsCiAgICAgICAgICBwbGFpbjogdHJ1ZSwKICAgICAgICAgIHNob3dIaWRlOiBmdW5jdGlvbiBzaG93SGlkZShyb3cpIHsKICAgICAgICAgICAgcmV0dXJuIHJvdy5pc0FwaSA9PT0gJzEnOwogICAgICAgICAgfSwKICAgICAgICAgIGNsaWNrRnVuOiBmdW5jdGlvbiBjbGlja0Z1bihyb3cpIHsKICAgICAgICAgICAgX3RoaXMuZ29Ub2RhdGFTZXJ2aWNlKHJvdyk7CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+aWh+S7tuWFseS6qycsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi10aWNrZXRzJywKICAgICAgICAgIHR5cGU6ICd0ZXh0JywKICAgICAgICAgIHNpemU6ICdtaW5pJywKICAgICAgICAgIHBsYWluOiB0cnVlLAogICAgICAgICAgc2hvd0hpZGU6IGZ1bmN0aW9uIHNob3dIaWRlKHJvdykgewogICAgICAgICAgICByZXR1cm4gcm93LmlzRmlsZSA9PT0gJzEnOwogICAgICAgICAgfSwKICAgICAgICAgIGNsaWNrRnVuOiBmdW5jdGlvbiBjbGlja0Z1bihyb3cpIHsKICAgICAgICAgICAgX3RoaXMuZ290b0ZpbGUocm93KTsKICAgICAgICAgIH0KICAgICAgICB9LCB7CiAgICAgICAgICBuYW1lOiAn5Yig6ZmkJywKICAgICAgICAgIGljb246ICdlbC1pY29uLWRlbGV0ZScsCiAgICAgICAgICBjb2xvcjogJ3JlZCcsCiAgICAgICAgICBjbGlja0Z1bjogZnVuY3Rpb24gY2xpY2tGdW4ocm93KSB7CiAgICAgICAgICAgIF90aGlzLmRlbFRhYmxlKHJvdyk7CiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfV0sCiAgICAgIGRlZmF1bHRGaWx0ZXI6IFt7CiAgICAgICAgb3BlcmF0aW9uOiAnRVFVQUwnLAogICAgICAgIHByb3BlcnR5OiAnY2F0YWxvZ0lkJywKICAgICAgICByZWxhdGlvbjogJ0FORCcsCiAgICAgICAgdmFsdWU6ICcnCiAgICAgIH1dLAogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgZmllbGREaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgcHV0T3V0VmlzaWJsZTogZmFsc2UsCiAgICAgIHJlc291cmNlRGlhbG9nOiBmYWxzZSwKICAgICAgZGlhbG9nVGl0bGU6ICfmlrDlop4nLAogICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sCiAgICAgIGRpYWxvZ01vdmU6IGZhbHNlLAogICAgICBNb3ZlVGl0bGU6ICfnp7vliqgnCiAgICB9KTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICBkYXRhTWV0aG9kOiBmdW5jdGlvbiBkYXRhTWV0aG9kKCkgewogICAgICByZXR1cm4gQVBJLnNoYXJlQ2F0YWxvZ3NUYWJsZTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIC8vIOW3pui+ueagkQogICAgb25CZWZvcmVHZXREYXRhOiBmdW5jdGlvbiBvbkJlZm9yZUdldERhdGEocXVlcnlQYXJhbXMsIGZvcm1EYXRhKSB7CiAgICAgIHRoaXMuc2V0RmlsdGVyVmFsdWUodGhpcy5xdWVyeVBhcmFtcywgdGhpcy5kZWZhdWx0RmlsdGVyLCAnY2F0YWxvZ0lkJywgdGhpcy5jdXJOb2RlLmlkKTsKICAgIH0sCiAgICBnZXRUcmVlTm9kZXM6IGZ1bmN0aW9uIGdldFRyZWVOb2RlcygpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgX3lpZWxkJEFQSSRnZXRTaGFyZVRyLCBfeWllbGQkQVBJJGdldFNoYXJlVHIyLCB2YWx1ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gQVBJLmdldFNoYXJlVHJlZSgpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJEFQSSRnZXRTaGFyZVRyID0gX2NvbnRleHQuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkQVBJJGdldFNoYXJlVHIyID0gX3lpZWxkJEFQSSRnZXRTaGFyZVRyLnZhbHVlOwogICAgICAgICAgICAgIHZhbHVlID0gX3lpZWxkJEFQSSRnZXRTaGFyZVRyMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkQVBJJGdldFNoYXJlVHIyOwogICAgICAgICAgICAgIF90aGlzMi5kZWZhdWx0RXhwYW5kZWRLZXlzID0gWyh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsdWVbMF0uaWQpIHx8ICcnXTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KCJyZXR1cm4iLCB7CiAgICAgICAgICAgICAgICBkYXRhOiB2YWx1ZSB8fCBbXQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgcmVsb2FkVHJlZTogZnVuY3Rpb24gcmVsb2FkVHJlZSgpIHsKICAgICAgdGhpcy4kcmVmcy5hcHBBc3luY1RyZWUuZ2V0VHJlZURhdGEoKTsKICAgIH0sCiAgICB0cmVlQWN0aW9uczogZnVuY3Rpb24gdHJlZUFjdGlvbnMoZGF0YSkgewogICAgICByZXR1cm4gW3sKICAgICAgICBsYWJlbDogJ+a3u+WKoCcsCiAgICAgICAgdHlwZTogJ2FkZCcsCiAgICAgICAgbWV0aG9kOiB0aGlzLmFkZE5vZGUKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn57yW6L6RJywKICAgICAgICB0eXBlOiAnZWRpdCcsCiAgICAgICAgbWV0aG9kOiB0aGlzLmVkaXROb2RlCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+WIoOmZpCcsCiAgICAgICAgdHlwZTogJ2RlbGV0ZScsCiAgICAgICAgbWV0aG9kOiB0aGlzLmRlbE5vZGUKICAgICAgfV07CiAgICB9LAogICAgb25UcmVlTm9kZUNsaWNrOiBmdW5jdGlvbiBvblRyZWVOb2RlQ2xpY2sobm9kZSkgewogICAgICB2YXIgX3RoaXMkY3VyTm9kZTsKICAgICAgaWYgKG5vZGUuaWQgPT09ICgoX3RoaXMkY3VyTm9kZSA9IHRoaXMuY3VyTm9kZSkgPT09IG51bGwgfHwgX3RoaXMkY3VyTm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkY3VyTm9kZS5pZCkpIHJldHVybjsKICAgICAgdGhpcy5jdXJOb2RlID0gX29iamVjdFNwcmVhZCh7fSwgbm9kZSk7CiAgICAgIHRoaXMuZ2V0RGF0YSgpOwogICAgfSwKICAgIGFkZE5vZGU6IGZ1bmN0aW9uIGFkZE5vZGUocGFyYW1zLCBub2RlKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBjb2RlLCBuYW1lLCBpZCwgbmV3Tm9kZSwgX3lpZWxkJEFQSSRhZGRTaGFyZVRyLCBzdGF0ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgY29kZSA9IHBhcmFtcy5jb2RlLCBuYW1lID0gcGFyYW1zLm5hbWU7CiAgICAgICAgICAgICAgaWQgPSBub2RlLmlkOwogICAgICAgICAgICAgIG5ld05vZGUgPSB7CiAgICAgICAgICAgICAgICBjb2RlOiBjb2RlLAogICAgICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgICAgIHBhcmVudElkOiBpZAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAzOwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gNjsKICAgICAgICAgICAgICByZXR1cm4gQVBJLmFkZFNoYXJlVHJlZShuZXdOb2RlKTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIF95aWVsZCRBUEkkYWRkU2hhcmVUciA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRhZGRTaGFyZVRyLnN0YXRlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXMzLnJlbG9hZFRyZWUoKTsKICAgICAgICAgICAgICAgIF90aGlzMy4kbWVzc2FnZS5zdWNjZXNzKCfmt7vliqDotYTmupDnm67lvZXmiJDlip/vvIEnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxNDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDExOwogICAgICAgICAgICAgIF9jb250ZXh0Mi50MCA9IF9jb250ZXh0MlsiY2F0Y2giXSgzKTsKICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uud2FybmluZyhfY29udGV4dDIudDAgfHwgJ+a3u+WKoOi1hOa6kOebruW9leWksei0pe+8gScpOwogICAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzMsIDExXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBlZGl0Tm9kZTogZnVuY3Rpb24gZWRpdE5vZGUocGFyYW1zKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciBjb2RlLCBuYW1lLCBwYXJlbnRJZCwgaWQsIG5ld05vZGUsIF95aWVsZCRBUEkkZWRpdFNoYXJlVCwgc3RhdGU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGNvZGUgPSBwYXJhbXMuY29kZSwgbmFtZSA9IHBhcmFtcy5uYW1lLCBwYXJlbnRJZCA9IHBhcmFtcy5wYXJlbnRJZCwgaWQgPSBwYXJhbXMuaWQ7CiAgICAgICAgICAgICAgbmV3Tm9kZSA9IHsKICAgICAgICAgICAgICAgIGNvZGU6IGNvZGUsCiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDI7CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSA1OwogICAgICAgICAgICAgIHJldHVybiBBUEkuZWRpdFNoYXJlVHJlZShuZXdOb2RlKTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF95aWVsZCRBUEkkZWRpdFNoYXJlVCA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRlZGl0U2hhcmVULnN0YXRlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXM0LnJlbG9hZFRyZWUoKTsKICAgICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS5zdWNjZXNzKCfnvJbovpHotYTmupDnm67lvZXmiJDlip/vvIEnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAxMzsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDEwOwogICAgICAgICAgICAgIF9jb250ZXh0My50MCA9IF9jb250ZXh0M1siY2F0Y2giXSgyKTsKICAgICAgICAgICAgICBfdGhpczQuJG1lc3NhZ2Uud2FybmluZyhfY29udGV4dDMudDAgfHwgJ+e8lui+kei1hOa6kOebruW9leWksei0pe+8gScpOwogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzLCBudWxsLCBbWzIsIDEwXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBkZWxOb2RlOiBmdW5jdGlvbiBkZWxOb2RlKHBhcmFtcywgbm9kZSkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICB2YXIgX3lpZWxkJEFQSSRyZW1vdmVTaGFyLCBzdGF0ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSAwOwogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gQVBJLnJlbW92ZVNoYXJlVHJlZShub2RlLmlkKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCRBUEkkcmVtb3ZlU2hhciA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRyZW1vdmVTaGFyLnN0YXRlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXM1LnJlbG9hZFRyZWUoKTsKICAgICAgICAgICAgICAgIF90aGlzNS4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTotYTmupDnm67lvZXmiJDlip/vvIEnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAxMTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gODsKICAgICAgICAgICAgICBfY29udGV4dDQudDAgPSBfY29udGV4dDRbImNhdGNoIl0oMCk7CiAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLndhcm5pbmcoX2NvbnRleHQ0LnQwIHx8ICfliKDpmaTotYTmupDnm67lvZXlpLHotKXvvIEnKTsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNCwgbnVsbCwgW1swLCA4XV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmlrDlop7vvJrlpITnkIbooajmoLzpgInmi6nlj5jljJYKICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHNlbGVjdGlvbjsKICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFJvd3MsICfli77pgInnmoTmlbDmja4nKTsKICAgIH0sCiAgICBkYXRhTW92ZTogZnVuY3Rpb24gZGF0YU1vdmUoKSB7CiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+iHs+WwkemAieaLqeS4gOadoeimgeenu+WKqOeahOaVsOaNricpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmRpYWxvZ01vdmUgPSB0cnVlOwogICAgICB0aGlzLk1vdmVUaXRsZSA9ICfnp7vliqjooagt6K+36YCJ5oup56e75Yqo55qE55uu5qCH55uu5b2VJzsKICAgIH0sCiAgICAvLyDmlrDlop7vvJrnp7vliqjnoa7orqTlkI7nmoTlpITnkIYKICAgIGhhbmRsZU1vdmVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVNb3ZlU3VjY2VzcygpIHsKICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBbXTsgLy8g5riF56m66YCJ5oupCiAgICAgIHRoaXMucmVmcmVzaCgpOyAvLyDliLfmlrDmlbDmja4KICAgIH0sCiAgICAvLyDliJfooagKICAgIGFkZERhdGE6IGZ1bmN0aW9uIGFkZERhdGEoKSB7CiAgICAgIHZhciBfdGhpcyRjdXJOb2RlMjsKICAgICAgaWYgKCEoKF90aGlzJGN1ck5vZGUyID0gdGhpcy5jdXJOb2RlKSAhPT0gbnVsbCAmJiBfdGhpcyRjdXJOb2RlMiAhPT0gdm9pZCAwICYmIF90aGlzJGN1ck5vZGUyLmlkKSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6LWE5rqQ6aG55omA5bGe55uu5b2VJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuZGlhbG9nVGl0bGUgPSAn5paw5aKe5YWx5Lqr6LWE5rqQJzsKICAgICAgdGhpcy5jdXJyZW50Um93ID0gewogICAgICAgIGNhdGFsb2dJZDogdGhpcy5jdXJOb2RlLmlkCiAgICAgIH07CiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB9LAogICAgZWRpdERhdGE6IGZ1bmN0aW9uIGVkaXREYXRhKHJvdykgewogICAgICB0aGlzLmRpYWxvZ1RpdGxlID0gIlx1N0YxNlx1OEY5MSAtICIuY29uY2F0KHJvdy5uYW1lKTsKICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93OwogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgfSwKICAgIC8vIOW8ueWxguWbnuiwgwogICAgb25Db21wYW55Q29uZmlybTogZnVuY3Rpb24gb25Db21wYW55Q29uZmlybShkYXRhKSB7CiAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgfSwKICAgIC8vIOWIl+ihqOaMiemSruS6i+S7tgogICAgcHV0T3V0Q2hhbmdlOiBmdW5jdGlvbiBwdXRPdXRDaGFuZ2Uocm93KSB7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgICAgdGhpcy5wdXRPdXRWaXNpYmxlID0gdHJ1ZTsKICAgIH0sCiAgICBnb1RvZGF0YVNlcnZpY2U6IGZ1bmN0aW9uIGdvVG9kYXRhU2VydmljZShyb3cpIHsKICAgICAgLy8gdGhpcy4kcm91dGVyLnB1c2goJy9iaXpQbGF0L2FwaUludGVyZmFjZScpOwogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgbmFtZTogJ3NoYXJlRGF0YUNhdGFsb2dBcGlJbnRlcmZhY2UnLAogICAgICAgIHF1ZXJ5OiB7CiAgICAgICAgICBpZDogcm93LmlkCiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBnb3RvRmlsZTogZnVuY3Rpb24gZ290b0ZpbGUocm93KSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBuYW1lOiAnb2ZmbGluZUZpbGUnLAogICAgICAgIHF1ZXJ5OiB7CiAgICAgICAgICBpZDogcm93LmlkCiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBnb3RvTGlicmFyeVRhYmxlOiBmdW5jdGlvbiBnb3RvTGlicmFyeVRhYmxlKCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCgnL2JpelBsYXQvZGF0YVJlc291cmNlL2RhdGFTaGFyZS9zaGFyZVRhYmxlJyk7CiAgICB9LAogICAgc2VsZWN0Q2hhbmdlOiBmdW5jdGlvbiBzZWxlY3RDaGFuZ2UoZGF0YSkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBkYXRhOwogICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gW107CiAgICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIF90aGlzNi5tdWx0aXBsZVNlbGVjdGlvbi5wdXNoKGl0ZW0uaWQpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDliKDpmaTkuovku7YKICAgIGRlbGV0ZVJvd0NoYW5nZTogZnVuY3Rpb24gZGVsZXRlUm93Q2hhbmdlKCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNigpIHsKICAgICAgICB2YXIgZGVsSWQ7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2JChfY29udGV4dDYpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGRlbElkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfdGhpczcubXVsdGlwbGVTZWxlY3Rpb24pKS5qb2luKCcsJyk7CiAgICAgICAgICAgICAgX3RoaXM3LiRjb25maXJtKCfmmK/lkKbliKDpmaTpgInkuK3mlbDmja4/JywgJ+aPkOekuicsIHsKICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgICAgICAgICAgdmFyIF95aWVsZCRBUEkkZGVsZXRlVGFibCwgc3RhdGU7CiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUucHJldiA9IF9jb250ZXh0NS5uZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ1LnByZXYgPSAwOwogICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAzOwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFQSS5kZWxldGVUYWJsZURhdGEoZGVsSWQpOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgIF95aWVsZCRBUEkkZGVsZXRlVGFibCA9IF9jb250ZXh0NS5zZW50OwogICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkQVBJJGRlbGV0ZVRhYmwuc3RhdGU7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YXRlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gOTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDg7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM3LmdldERhdGEoKTsKICAgICAgICAgICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgICAgICAgICBfdGhpczcuJG1lc3NhZ2Uuc3VjY2Vzcygn5Yig6Zmk5oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAxNDsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDUucHJldiA9IDExOwogICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ1LnQwID0gX2NvbnRleHQ1WyJjYXRjaCJdKDApOwogICAgICAgICAgICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLndhcm5pbmcoX2NvbnRleHQ1LnQwIHx8ICfliKDpmaTlpLHotKXvvIEnKTsKICAgICAgICAgICAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgX2NhbGxlZTUsIG51bGwsIFtbMCwgMTFdXSk7CiAgICAgICAgICAgICAgfSkpKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU2KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5Liq5Yir5Yig6ZmkCiAgICBkZWxUYWJsZTogZnVuY3Rpb24gZGVsVGFibGUocm93KSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCJcdTZCNjRcdTY0Q0RcdTRGNUNcdTVDMDZcdTUyMjBcdTk2NjRcdUZGMDgiLmNvbmNhdChyb3cubmFtZSwgIlx1RkYwOSwgXHU2NjJGXHU1NDI2XHU3RUU3XHU3RUVEPyIpLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU3KCkgewogICAgICAgIHZhciBfeWllbGQkQVBJJHJlbW92ZVNoYXIyLCBzdGF0ZSwgbWVzc2FnZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTckKF9jb250ZXh0NykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ3LnByZXYgPSBfY29udGV4dDcubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ3LnByZXYgPSAwOwogICAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gQVBJLnJlbW92ZVNoYXJlKHJvdy5pZCk7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBfeWllbGQkQVBJJHJlbW92ZVNoYXIyID0gX2NvbnRleHQ3LnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkQVBJJHJlbW92ZVNoYXIyLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkQVBJJHJlbW92ZVNoYXIyLm1lc3NhZ2U7CiAgICAgICAgICAgICAgaWYgKCFzdGF0ZSkgewogICAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDk7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzOC5nZXREYXRhKCk7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uuc3VjY2Vzcygn5Yig6Zmk5oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxMzsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uud2FybmluZyhtZXNzYWdlIHx8ICfliKDpmaTlpLHotKXvvIEnKTsKICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDE4OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIF9jb250ZXh0Ny5wcmV2ID0gMTU7CiAgICAgICAgICAgICAgX2NvbnRleHQ3LnQwID0gX2NvbnRleHQ3WyJjYXRjaCJdKDApOwogICAgICAgICAgICAgIF90aGlzOC4kbWVzc2FnZS53YXJuaW5nKF9jb250ZXh0Ny50MCB8fCAn5Yig6Zmk5aSx6LSl77yBJyk7CiAgICAgICAgICAgIGNhc2UgMTg6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ny5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTcsIG51bGwsIFtbMCwgMTVdXSk7CiAgICAgIH0pKSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfQogIH0KfTs="},null]}