diff --git a/photon.json b/photon.json index 65c027b..bc99e73 100644 --- a/photon.json +++ b/photon.json @@ -1,7 +1,7 @@ { "_id": "_design/photon", "name": "Photon 1.20 \n(c) 2022 ermouth \n\nRun attachment `index.html` to start Photon. \n\nSee https://github.com/ermouth/couch-photon \nrepo for more details.", - "version": "1.20.5", + "version": "1.20.7", "rewrites": [ { "from": "/", @@ -37,13 +37,13 @@ "shows": { "home": "function (doc,req) {\n \n // Processes _rewrite request to domain root,\n // used if Photon runs through vhost.\n // If json requested imitates CouchDB root,\n // otherwise redirects to Photon.\n \n\t\tvar info = req.info,\n\t\t\t\tuuid = req.uuid,\n\t\t\t\trejson = /(application|text)\\/json/;\n\n\t\t// We have request to DB root, fake CouchDB root response\n\t\tif (!req.headers.Accept || rejson.test(req.headers.Accept+'')) return {json:{\n\t\t\tcouchdb: \t\t'Welcome',\n\t\t\tuuid: \t\t\tuuid,\n\t\t\tversion: \t\t'1.6.1',\n\t\t\tvendor: {\n\t\t\t\tname: \t\t'The Apache Software Foundation',\n\t\t\t\tversion: \t'1.6.1'\n\t\t\t}\n\t\t}};\n\n\t\t// Page requested, redirecting to Photon\n\t\treturn {\n\t\t\tcode:\t\t\t302,\n\t\t\theaders:\t{Location:'/_photon/'},\n\t\t\tbody:\t\t\t''\n\t\t}\n\t}" }, - "stamp": 1650063095526, + "stamp": 1650233275301, "validate_doc_update": "function (newDoc,oldDoc,userCtx,secObj) {\n\n\tvar members = (secObj||{}).members || {names:[], roles:[]};\n \n // Pass through if bucket is already protected by Couch\n if (members.names.length || members.roles.length) {\n return;\n }\n\t\n // For public bucket only allow admins to write\n\tif (!_admin()) throw({forbidden: 'Insufficient privileges'});\n \n return;\n \n // - - - - - - - - - - - -\n \n function _admin() {\n\t\t// see if the user is a server admin\n\t\tif(userCtx.roles.indexOf('_admin') !== -1) {\n\t\t\treturn true; // a server admin\n\t\t}\n\n\t\t// see if the user a database admin specified by name\n\t\tif(secObj && secObj.admins && secObj.admins.names) {\n\t\t\tif(secObj.admins.names.indexOf(userCtx.name) !== -1) {\n\t\t\t\treturn true; // database admin\n\t\t\t}\n\t\t}\n\n\t\t// see if the user a database admin specified by role\n\t\tif(secObj && secObj.admins && secObj.admins.roles) {\n\t\t\tvar db_roles = secObj.admins.roles;\n\t\t\tfor(var idx = 0; idx < userCtx.roles.length; idx++) {\n\t\t\t\tvar user_role = userCtx.roles[idx];\n\t\t\t\tif(db_roles.indexOf(user_role) !== -1) {\n\t\t\t\t\treturn true; // role matches!\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false; // default to no admin\n\t}\n\n}", - "versions": "## 1.20.5\n\nNo more browser tab stalls in Chrome when undumping zips\ncontaining tens of thousands small docs.\n\n## 1.20.3\n\nA lot of minor dark theme related UI tweaks here and there.\n\n## 1.20.2\n\nNew feature: dark theme, controlled in Photon config.\n\n## 1.19.10\n\nMango validator now catches invalid/misspelled $ operators.\n\n## 1.19.9\n\nAdded response size/duration indicator at the bottom of \nview results. Some refactoring, moving from ES5 to ES6.\n\n## 1.19.8\n\nFixed doc clone dlg, copying a design doc is now ok.\n\nPhoton default repo URL was changed, updates are now delivered \nstrictly over https.\n\n## 1.19.7\n\nImproved DB list group segmentation.\n\n## 1.19.6\n\nFixed DB info rolldown z-index issues.\n\n## 1.19.5\n\nAdded horizontal rulers to DB groups, for better group demarcation. \nSwitching to grid view now tries to guess most relevant columns.\nMinor Linux FF-related fixes.\n\n## 1.19.2\n\nNew feature: expandable DB auto-groups. Grouping makes Photon\ncomfortable for nodes with thousands DBs. Grouping mode and limits \nare tunable in Photon settings.\n\nDoc list for `_users` doesn’t read security descriptors for all\nDBs any more, only first 100 of not present are read.\n\n## 1.18.7\n\nMinor tweaks and fixes.\n\n## 1.18.3\n\nFixed corrupted long DB names display in old Safari. Fixed \nintermittent X axis scroll appeared here and there in Win/Ubuntu\nFF with native scroll on.\n\n## 1.18.2\n\nDB list render performance improved. Starred DBs read bucket info \nand security status regardless of Photon settings. DB info block\nnow shows security settings.\n\n## 1.17\n\nAdded Mango syntax validator into query editor. Added\nPing session config option. \n\nCouchDB 3.2 related: incompatible CSP config handling.\n\nAdded Ctrl-S and Ctrl-Z (Cmd-S and Cmd-Z for Mac) global keyboard \nshortcuts for config, doc and attachment editors.\n\nCompatibility with old IEs is no more maintained.\n\n## 1.16\n\nAdded Undo history panel into doc and config editors. The panel \nis a list of all json changes, and in most cases allows to \nundo json tree changes out of order.\n\n## 1.15\n\nAdded left panel / top bar switch to match wide monitors better. \nVertical panel only available for 1420px+ wide screens.\n\nMax 15 tabs message removed, older tabs are auto-closed if needed.\n\nBucket stats numbers in DB list are clickable and show DB info.\n\nAdded typecast ` /cast` modifiers for selectors in grid view.\n\nAdded [Clone...] button in doc editor; basically `Save as...`.\n\nAdded [../] button in views, which opens bucket root doc list.\n\n## 1.14\n\nAdded grid (table) representation mode for docs lists, view and \nMango queries. Tables are copy/pastable to Excel. \n\nAdded Include docs option for `/_all_docs` view, it is turned on \nautomatically for grid view mode.\n\nViews now memoize their particular source code editor state, as \nwell as reduce level and grid settings.\n\n## 1.12\n\nAdded ZIP dump/restore. A [Delete DB] dlg now offers to re-create \nDB(s) after deletion. Several JSON editor fixes and improvements. \nTask list grouping improved. \n\nTT Mono font excluded from the Photon package. \n\n## 1.11\n\nAdded `/_changes` feed view, added compound index stats for \nddocs view.\n\n## 1.10\n\nAdded index stats for each ddoc in ddocs view; also a lot of \nslight UI improvements.\n\n## 1.9\n\nAdded: group DB sync; Couch perf test; CouchDB v3 support. \n\n## 1.8\n\nImproved JSON editor, added `/_stats` graphs.\n\n## 1.7\n\nAdded structured diff for doc revisions.\n\n## 1.6\n\nNew features: editor for text-based attachments and doc purge. \nDB view received `db/_design_docs` and `db/_local_docs` modes.\n\n## 1.4\n\nAdded access restrictions, Photon no more starts without \nauthorization.\n\n## 1.2\n\nAdded in-place editors for Erlang, JS and Mango view syntax.\n\n## 0.9.99\n\nMore or less usable version with all basic features. March, 2018.", + "versions": "## 1.20.7\n\nFixed invalid tabstrip colors for inherited light theme. \nSeveral small dark theme tweaks. Slightly improved JSON \ncoloring.\n\n## 1.20.5\n\nNo more browser tab stalls in Chrome when undumping zips\ncontaining tens of thousands small docs.\n\n## 1.20.3\n\nA lot of minor dark theme related UI tweaks here and there.\n\n## 1.20.2\n\nNew feature: dark theme, controlled in Photon config.\n\n## 1.19.10\n\nMango validator now catches invalid/misspelled $ operators.\n\n## 1.19.9\n\nAdded response size/duration indicator at the bottom of \nview results. Some refactoring, moving from ES5 to ES6.\n\n## 1.19.8\n\nFixed doc clone dlg, copying a design doc is now ok.\n\nPhoton default repo URL was changed, updates are now delivered \nstrictly over https.\n\n## 1.19.7\n\nImproved DB list group segmentation.\n\n## 1.19.6\n\nFixed DB info rolldown z-index issues.\n\n## 1.19.5\n\nAdded horizontal rulers to DB groups, for better group demarcation. \nSwitching to grid view now tries to guess most relevant columns.\nMinor Linux FF-related fixes.\n\n## 1.19.2\n\nNew feature: expandable DB auto-groups. Grouping makes Photon\ncomfortable for nodes with thousands DBs. Grouping mode and limits \nare tunable in Photon settings.\n\nDoc list for `_users` doesn’t read security descriptors for all\nDBs any more, only first 100 of not present are read.\n\n## 1.18.7\n\nMinor tweaks and fixes.\n\n## 1.18.3\n\nFixed corrupted long DB names display in old Safari. Fixed \nintermittent X axis scroll appeared here and there in Win/Ubuntu\nFF with native scroll on.\n\n## 1.18.2\n\nDB list render performance improved. Starred DBs read bucket info \nand security status regardless of Photon settings. DB info block\nnow shows security settings.\n\n## 1.17\n\nAdded Mango syntax validator into query editor. Added\nPing session config option. \n\nCouchDB 3.2 related: incompatible CSP config handling.\n\nAdded Ctrl-S and Ctrl-Z (Cmd-S and Cmd-Z for Mac) global keyboard \nshortcuts for config, doc and attachment editors.\n\nCompatibility with old IEs is no more maintained.\n\n## 1.16\n\nAdded Undo history panel into doc and config editors. The panel \nis a list of all json changes, and in most cases allows to \nundo json tree changes out of order.\n\n## 1.15\n\nAdded left panel / top bar switch to match wide monitors better. \nVertical panel only available for 1420px+ wide screens.\n\nMax 15 tabs message removed, older tabs are auto-closed if needed.\n\nBucket stats numbers in DB list are clickable and show DB info.\n\nAdded typecast ` /cast` modifiers for selectors in grid view.\n\nAdded [Clone...] button in doc editor; basically `Save as...`.\n\nAdded [../] button in views, which opens bucket root doc list.\n\n## 1.14\n\nAdded grid (table) representation mode for docs lists, view and \nMango queries. Tables are copy/pastable to Excel. \n\nAdded Include docs option for `/_all_docs` view, it is turned on \nautomatically for grid view mode.\n\nViews now memoize their particular source code editor state, as \nwell as reduce level and grid settings.\n\n## 1.12\n\nAdded ZIP dump/restore. A [Delete DB] dlg now offers to re-create \nDB(s) after deletion. Several JSON editor fixes and improvements. \nTask list grouping improved. \n\nTT Mono font excluded from the Photon package. \n\n## 1.11\n\nAdded `/_changes` feed view, added compound index stats for \nddocs view.\n\n## 1.10\n\nAdded index stats for each ddoc in ddocs view; also a lot of \nslight UI improvements.\n\n## 1.9\n\nAdded: group DB sync; Couch perf test; CouchDB v3 support. \n\n## 1.8\n\nImproved JSON editor, added `/_stats` graphs.\n\n## 1.7\n\nAdded structured diff for doc revisions.\n\n## 1.6\n\nNew features: editor for text-based attachments and doc purge. \nDB view received `db/_design_docs` and `db/_local_docs` modes.\n\n## 1.4\n\nAdded access restrictions, Photon no more starts without \nauthorization.\n\n## 1.2\n\nAdded in-place editors for Erlang, JS and Mango view syntax.\n\n## 0.9.99\n\nMore or less usable version with all basic features. March, 2018.", "_attachments": { "css/photon.css": { "content_type": "text/css", - "data": "LyogUGhvdG9uIDEuMjAgQ1NTICovCkBjaGFyc2V0ICJVVEYtOCI7Cip7Ym94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KaHRtbHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59CmJvZHl7cGFkZGluZzowOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lO2ZvbnQ6MTlweCAnLWFwcGxlLXN5c3RlbScsICdCbGlua01hY1N5c3RlbUZvbnQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnU2Vnb2UgVUknLCBVYnVudHUsIFJvYm90bywgSGVsdmV0aWNhLCBUYWhvbWEsIEFyaWFsLCBWZXJkYW5hLCBTYW5zLXNlcmlmO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4zZW07YmFja2dyb3VuZDojZmZmO2hlaWdodDoxMDAlfQpzZWN0aW9uLCBkaXYsIHNwYW57cG9zaXRpb246cmVsYXRpdmV9CmgxLCBoMiwgaDMsIGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW46MC40ZW0gMCAwLjNlbSAwO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4xZW19Cmgxe2ZvbnQtc2l6ZToyLjVlbX0KaDJ7Zm9udC1zaXplOjJlbX0KaDN7Zm9udC1zaXplOjEuNGVtfQpoNHtmb250LXNpemU6MS4xZW19CmRpdiA+IGgxOm50aC1vZi10eXBlKDEpIHttYXJnaW4tdG9wOjAuMWVtfQpkaXYgPiBoMjpudGgtb2YtdHlwZSgxKSB7bWFyZ2luLXRvcDowLjFlbX0KZGl2ID4gaDM6bnRoLW9mLXR5cGUoMSkge21hcmdpbi10b3A6MC4xZW19CnB7Zm9udDoxZW0gO2xpbmUtaGVpZ2h0OjEuNGVtO21hcmdpbjowLjJlbSAwIDAuNWVtIDB9Cmxpe21hcmdpbi1sZWZ0OjFlbX0Kc21hbGx7Zm9udC1zaXplOjkwJX0KdGFibGV7Ym9yZGVyOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2JvcmRlci1zcGFjaW5nOjB9CnRke3ZlcnRpY2FsLWFsaWduOnRvcDtsaW5lLWhlaWdodDoxLjJlbX0KdGh7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMmVtfQouaW52aXN7dmlzaWJpbGl0eTpoaWRkZW59Ci5oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Ci5jcHtjdXJzb3I6cG9pbnRlcn0KLmNte2N1cnNvcjptb3ZlfQouY3p7Y3Vyc29yOnpvb20taW59Ci5jeHtjdXJzb3I6Y29sLXJlc2l6ZX0KLndoaXRle2NvbG9yOndoaXRlIWltcG9ydGFudH0KLmJnLXdoaXRle2JhY2tncm91bmQtY29sb3I6d2hpdGUhaW1wb3J0YW50fQouZ3JheS0ye2NvbG9yOiMxYzIwMjYhaW1wb3J0YW50fQouYmctZ3JheS0ye2JhY2tncm91bmQtY29sb3I6IzFjMjAyNiFpbXBvcnRhbnR9Ci5ncmF5LTF7Y29sb3I6IzM4NDE0YyFpbXBvcnRhbnR9Ci5iZy1ncmF5LTF7YmFja2dyb3VuZC1jb2xvcjojMzg0MTRjIWltcG9ydGFudH0KLmdyYXkwe2NvbG9yOiM0ZDVhNmEhaW1wb3J0YW50fQouYmctZ3JheTB7YmFja2dyb3VuZC1jb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmdyYXkxe2NvbG9yOiM4ODkyOWYhaW1wb3J0YW50fQouYmctZ3JheTF7YmFja2dyb3VuZC1jb2xvcjojODg5MjlmIWltcG9ydGFudH0KLmdyYXkye2NvbG9yOiNiOWMwY2IhaW1wb3J0YW50fQouYmctZ3JheTJ7YmFja2dyb3VuZC1jb2xvcjojYjljMGNiIWltcG9ydGFudH0KLmdyYXkze2NvbG9yOiNkMGQ2ZGQhaW1wb3J0YW50fQouYmctZ3JheTN7YmFja2dyb3VuZC1jb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXk0e2NvbG9yOiNlM2U4ZWIhaW1wb3J0YW50fQouYmctZ3JheTR7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmdyYXk1e2NvbG9yOnJnYmEoMTM2LCAxNDYsIDE1OSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEzNiwgMTQ2LCAxNTksIDAuMzUpIWltcG9ydGFudH0KLmdyYXk2e2NvbG9yOnJnYmEoMTg1LCAxOTIsIDIwMywgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpIWltcG9ydGFudH0KLmdyYXk3e2NvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJsdWUtMntjb2xvcjojMTYzMjVhIWltcG9ydGFudH0KLmJnLWJsdWUtMntiYWNrZ3JvdW5kLWNvbG9yOiMxNjMyNWEhaW1wb3J0YW50fQouYmx1ZS0xe2NvbG9yOiMyMzRmOGYhaW1wb3J0YW50fQouYmctYmx1ZS0xe2JhY2tncm91bmQtY29sb3I6IzIzNGY4ZiFpbXBvcnRhbnR9Ci5ibHVlMHtjb2xvcjojMmQ2NmI4IWltcG9ydGFudH0KLmJnLWJsdWUwe2JhY2tncm91bmQtY29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5ibHVlMXtjb2xvcjojNmI5ZmRiIWltcG9ydGFudH0KLmJnLWJsdWUxe2JhY2tncm91bmQtY29sb3I6IzZiOWZkYiFpbXBvcnRhbnR9Ci5ibHVlMntjb2xvcjojOWVjZGY4IWltcG9ydGFudH0KLmJnLWJsdWUye2JhY2tncm91bmQtY29sb3I6IzllY2RmOCFpbXBvcnRhbnR9Ci5ibHVlM3tjb2xvcjojYjdkYmZiIWltcG9ydGFudH0KLmJnLWJsdWUze2JhY2tncm91bmQtY29sb3I6I2I3ZGJmYiFpbXBvcnRhbnR9Ci5ibHVlNHtjb2xvcjojY2JlN2ZlIWltcG9ydGFudH0KLmJnLWJsdWU0e2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5ibHVlNXtjb2xvcjpyZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlNntjb2xvcjpyZ2JhKDE1OCwgMjA1LCAyNDgsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU2e2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlN3tjb2xvcjpyZ2JhKDIwMywgMjMxLCAyNTQsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KSFpbXBvcnRhbnR9Ci5jeWFuLTJ7Y29sb3I6IzA5NTQ3MCFpbXBvcnRhbnR9Ci5iZy1jeWFuLTJ7YmFja2dyb3VuZC1jb2xvcjojMDk1NDcwIWltcG9ydGFudH0KLmN5YW4tMXtjb2xvcjojMGU4MmFkIWltcG9ydGFudH0KLmJnLWN5YW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwZTgyYWQhaW1wb3J0YW50fQouY3lhbjB7Y29sb3I6IzEyYTVkYyFpbXBvcnRhbnR9Ci5iZy1jeWFuMHtiYWNrZ3JvdW5kLWNvbG9yOiMxMmE1ZGMhaW1wb3J0YW50fQouY3lhbjF7Y29sb3I6IzVkYzVlOCFpbXBvcnRhbnR9Ci5iZy1jeWFuMXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZGM1ZTghaW1wb3J0YW50fQouY3lhbjJ7Y29sb3I6IzlhZTBmMSFpbXBvcnRhbnR9Ci5iZy1jeWFuMntiYWNrZ3JvdW5kLWNvbG9yOiM5YWUwZjEhaW1wb3J0YW50fQouY3lhbjN7Y29sb3I6I2IyZTlmNiFpbXBvcnRhbnR9Ci5iZy1jeWFuM3tiYWNrZ3JvdW5kLWNvbG9yOiNiMmU5ZjYhaW1wb3J0YW50fQouY3lhbjR7Y29sb3I6I2M2ZjBmYSFpbXBvcnRhbnR9Ci5iZy1jeWFuNHtiYWNrZ3JvdW5kLWNvbG9yOiNjNmYwZmEhaW1wb3J0YW50fQouY3lhbjV7Y29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmJnLWN5YW41e2JhY2tncm91bmQtY29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmN5YW42e2NvbG9yOnJnYmEoMTU0LCAyMjQsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMjI0LCAyNDEsIDAuMzUpIWltcG9ydGFudH0KLmN5YW43e2NvbG9yOnJnYmEoMTk4LCAyNDAsIDI1MCwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE5OCwgMjQwLCAyNTAsIDAuMzUpIWltcG9ydGFudH0KLnRlYWwtMntjb2xvcjojMGM1NDQ4IWltcG9ydGFudH0KLmJnLXRlYWwtMntiYWNrZ3JvdW5kLWNvbG9yOiMwYzU0NDghaW1wb3J0YW50fQoudGVhbC0xe2NvbG9yOiMxNThlN2EhaW1wb3J0YW50fQouYmctdGVhbC0xe2JhY2tncm91bmQtY29sb3I6IzE1OGU3YSFpbXBvcnRhbnR9Ci50ZWFsMHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmJnLXRlYWwwe2JhY2tncm91bmQtY29sb3I6IzFiYmJhMCFpbXBvcnRhbnR9Ci50ZWFsMXtjb2xvcjojNjJkMmMwIWltcG9ydGFudH0KLmJnLXRlYWwxe2JhY2tncm91bmQtY29sb3I6IzYyZDJjMCFpbXBvcnRhbnR9Ci50ZWFsMntjb2xvcjojOWNlNWRhIWltcG9ydGFudH0KLmJnLXRlYWwye2JhY2tncm91bmQtY29sb3I6IzljZTVkYSFpbXBvcnRhbnR9Ci50ZWFsM3tjb2xvcjojYjdlY2UxIWltcG9ydGFudH0KLmJnLXRlYWwze2JhY2tncm91bmQtY29sb3I6I2I3ZWNlMSFpbXBvcnRhbnR9Ci50ZWFsNHtjb2xvcjojY2RmMmU2IWltcG9ydGFudH0KLmJnLXRlYWw0e2JhY2tncm91bmQtY29sb3I6I2NkZjJlNiFpbXBvcnRhbnR9Ci50ZWFsNXtjb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQouYmctdGVhbDV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDZ7Y29sb3I6cmdiYSgxNTYsIDIyOSwgMjE4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsNntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU2LCAyMjksIDIxOCwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDd7Y29sb3I6cmdiYSgyMDUsIDI0MiwgMjMwLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LCAyNDIsIDIzMCwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW4tMntjb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmJnLWdyZWVuLTJ7YmFja2dyb3VuZC1jb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmdyZWVuLTF7Y29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5iZy1ncmVlbi0xe2JhY2tncm91bmQtY29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5ncmVlbjB7Y29sb3I6IzY1OWMxMyFpbXBvcnRhbnR9Ci5iZy1ncmVlbjB7YmFja2dyb3VuZC1jb2xvcjojNjU5YzEzIWltcG9ydGFudH0KLmdyZWVuMXtjb2xvcjojOWFjNTVjIWltcG9ydGFudH0KLmJnLWdyZWVuMXtiYWNrZ3JvdW5kLWNvbG9yOiM5YWM1NWMhaW1wb3J0YW50fQouZ3JlZW4ye2NvbG9yOiNjNmU2OTchaW1wb3J0YW50fQouYmctZ3JlZW4ye2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5ncmVlbjN7Y29sb3I6I2Q0ZWViMSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjN7YmFja2dyb3VuZC1jb2xvcjojZDRlZWIxIWltcG9ydGFudH0KLmdyZWVuNHtjb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVuNHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzYhaW1wb3J0YW50fQouZ3JlZW41e2NvbG9yOnJnYmEoMTU0LCAxOTcsIDkyLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMTk3LCA5MiwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW42e2NvbG9yOnJnYmEoMTk4LCAyMzAsIDE1MSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JlZW42e2JhY2tncm91bmQtY29sb3I6cmdiYSgxOTgsIDIzMCwgMTUxLCAwLjM1KSFpbXBvcnRhbnR9Ci5ncmVlbjd7Y29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNCwgMjQ1LCAxOTgsIDAuMzUpIWltcG9ydGFudH0KLnllbGxvdy0ye2NvbG9yOiM4ZDVkMDkhaW1wb3J0YW50fQouYmcteWVsbG93LTJ7YmFja2dyb3VuZC1jb2xvcjojOGQ1ZDA5IWltcG9ydGFudH0KLnllbGxvdy0xe2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQouYmcteWVsbG93LTF7YmFja2dyb3VuZC1jb2xvcjojY2M4NjBkIWltcG9ydGFudH0KLnllbGxvdzB7Y29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cwe2JhY2tncm91bmQtY29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci55ZWxsb3cxe2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQouYmcteWVsbG93MXtiYWNrZ3JvdW5kLWNvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoueWVsbG93Mntjb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLXllbGxvdzJ7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLnllbGxvdzN7Y29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cze2JhY2tncm91bmQtY29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci55ZWxsb3c0e2NvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQouYmcteWVsbG93NHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQoueWVsbG93NXtjb2xvcjpyZ2JhKDI0OCwgMjAxLCA4MiwgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ4LCAyMDEsIDgyLCAwLjM1KSFpbXBvcnRhbnR9Ci55ZWxsb3c2e2NvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQoueWVsbG93N3tjb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLmJnLXllbGxvdzd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZS0ye2NvbG9yOiNhMTQwMDUhaW1wb3J0YW50fQouYmctb3JhbmdlLTJ7YmFja2dyb3VuZC1jb2xvcjojYTE0MDA1IWltcG9ydGFudH0KLm9yYW5nZS0xe2NvbG9yOiNlMTVhMDchaW1wb3J0YW50fQouYmctb3JhbmdlLTF7YmFja2dyb3VuZC1jb2xvcjojZTE1YTA3IWltcG9ydGFudH0KLm9yYW5nZTB7Y29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uwe2JhY2tncm91bmQtY29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5vcmFuZ2Uxe2NvbG9yOiNmYjlmNjchaW1wb3J0YW50fQouYmctb3JhbmdlMXtiYWNrZ3JvdW5kLWNvbG9yOiNmYjlmNjchaW1wb3J0YW50fQoub3JhbmdlMntjb2xvcjojZmVjMjllIWltcG9ydGFudH0KLmJnLW9yYW5nZTJ7YmFja2dyb3VuZC1jb2xvcjojZmVjMjllIWltcG9ydGFudH0KLm9yYW5nZTN7Y29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uze2JhY2tncm91bmQtY29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5vcmFuZ2U0e2NvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQouYmctb3JhbmdlNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQoub3JhbmdlNXtjb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLmJnLW9yYW5nZTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZTZ7Y29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2U2e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5vcmFuZ2U3e2NvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQouYmctb3JhbmdlN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQoucmVkLTJ7Y29sb3I6Izc2MTcyNyFpbXBvcnRhbnR9Ci5iZy1yZWQtMntiYWNrZ3JvdW5kLWNvbG9yOiM3NjE3MjchaW1wb3J0YW50fQoucmVkLTF7Y29sb3I6I2FkMjIzOSFpbXBvcnRhbnR9Ci5iZy1yZWQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNhZDIyMzkhaW1wb3J0YW50fQoucmVkMHtjb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLmJnLXJlZDB7YmFja2dyb3VuZC1jb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLnJlZDF7Y29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5iZy1yZWQxe2JhY2tncm91bmQtY29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5yZWQye2NvbG9yOiNmYWFiYjghaW1wb3J0YW50fQouYmctcmVkMntiYWNrZ3JvdW5kLWNvbG9yOiNmYWFiYjghaW1wb3J0YW50fQoucmVkM3tjb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLmJnLXJlZDN7YmFja2dyb3VuZC1jb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLnJlZDR7Y29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5iZy1yZWQ0e2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5yZWQ1e2NvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQouYmctcmVkNXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQoucmVkNntjb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLmJnLXJlZDZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLnJlZDd7Y29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1yZWQ3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQtMntjb2xvcjojNGMyMzYzIWltcG9ydGFudH0KLmJnLXZpb2xldC0ye2JhY2tncm91bmQtY29sb3I6IzRjMjM2MyFpbXBvcnRhbnR9Ci52aW9sZXQtMXtjb2xvcjojNzIzNTk0IWltcG9ydGFudH0KLmJnLXZpb2xldC0xe2JhY2tncm91bmQtY29sb3I6IzcyMzU5NCFpbXBvcnRhbnR9Ci52aW9sZXQwe2NvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQouYmctdmlvbGV0MHtiYWNrZ3JvdW5kLWNvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQoudmlvbGV0MXtjb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLmJnLXZpb2xldDF7YmFja2dyb3VuZC1jb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLnZpb2xldDJ7Y29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQye2JhY2tncm91bmQtY29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci52aW9sZXQze2NvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQouYmctdmlvbGV0M3tiYWNrZ3JvdW5kLWNvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQoudmlvbGV0NHtjb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLmJnLXZpb2xldDR7YmFja2dyb3VuZC1jb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLnZpb2xldDV7Y29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQ1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQ2e2NvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctdmlvbGV0NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQoudmlvbGV0N3tjb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLmJnLXZpb2xldDd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLm8we29wYWNpdHk6MC4wMSFpbXBvcnRhbnR9Ci5vMTB7b3BhY2l0eTowLjEhaW1wb3J0YW50fQoubzIwe29wYWNpdHk6MC4yIWltcG9ydGFudH0KLm8zMHtvcGFjaXR5OjAuMyFpbXBvcnRhbnR9Ci5vNDB7b3BhY2l0eTowLjQhaW1wb3J0YW50fQoubzUwe29wYWNpdHk6MC41IWltcG9ydGFudH0KLm82MHtvcGFjaXR5OjAuNiFpbXBvcnRhbnR9Ci5vNzB7b3BhY2l0eTowLjchaW1wb3J0YW50fQoubzgwe29wYWNpdHk6MC44IWltcG9ydGFudH0KLm85MHtvcGFjaXR5OjAuOSFpbXBvcnRhbnR9Ci5vMTAwe29wYWNpdHk6MSFpbXBvcnRhbnR9Ci5sZ3JheXtjb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXl7Y29sb3I6Izg4OTI5ZiFpbXBvcnRhbnR9Ci54Z3JheXtjb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmJsdWV7Y29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5za3libHVle2NvbG9yOiM0M2E0ZWYhaW1wb3J0YW50fQouc2t5e2NvbG9yOiM3NmM2ZjMhaW1wb3J0YW50fQoudGVhbHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmxncmVlbntjb2xvcjojYzZlNjk3IWltcG9ydGFudH0KLmdyZWVue2NvbG9yOiM2NTljMTMhaW1wb3J0YW50fQoueWVsbG93e2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoub3Jhbmdle2NvbG9yOiNmODc0MjMhaW1wb3J0YW50fQoucGlua3tjb2xvcjojZmFhYmI4IWltcG9ydGFudH0KLnNhbG1vbntjb2xvcjojZmRhMDk2IWltcG9ydGFudH0KLmJyb3due2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQoucmVke2NvbG9yOiNkNjJjNDkhaW1wb3J0YW50fQouYmctbGdyYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJnLWdyYXl7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmJnLWxibHVle2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5iZy1sZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVue2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3d7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZWMyOWUhaW1wb3J0YW50fQouYmctY2hhbGt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjMzLCAxMjcsIDAuMzUpIWltcG9ydGFudH0KLmJnLWxzYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjExKSFpbXBvcnRhbnR9Ci5iZy1zYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjUpIWltcG9ydGFudH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1yYW5nZV0sIHRleHRhcmVhey13ZWJraXQtYXBwZWFyYW5jZTpub25lO3RyYW5zaXRpb246Y29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4yc30KaW5wdXQsIHNlbGVjdCwgb3B0aW9uLCBidXR0b257Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fQppbnB1dFt0eXBlPXJhZGlvXSwgaW5wdXRbdHlwZT1jaGVja2JveF0ge2FjY2VudC1jb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgaW5wdXRbdHlwZT1udW1iZXJdLCBpbnB1dFt0eXBlPWVtYWlsXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPWRhdGVdLCBpbnB1dFt0eXBlPXRpbWVdIHtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlci1jb2xvcjojZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7cG9zaXRpb246cmVsYXRpdmV9CmlucHV0W3R5cGU9bnVtYmVyXSB7cGFkZGluZzowLjM1ZW0gMC4yZW0gMC4zNWVtIDAuNGVtfQppbnB1dDpkaXNhYmxlZCwgc2VsZWN0OmRpc2FibGVkLCBvcHRpb246ZGlzYWJsZWQsIHRleHRhcmVhOmRpc2FibGVkLCBidXR0b246ZGlzYWJsZWR7Y29sb3I6Izg4OTI5Zjtib3JkZXItY29sb3I6I2I5YzBjYiFpbXBvcnRhbnQ7b3BhY2l0eTowLjc1fQppbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9YnV0dG9uXSk6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojOWVjZGY4fQo6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNiOWMwY2J9CjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KdGV4dGFyZWF7Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtwYWRkaW5nOjAuMzVlbSAwLjRlbSAwLjM1ZW0gMC40ZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7d2lkdGg6OTAlO21pbi1oZWlnaHQ6NjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0KdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzllY2RmOH0Kc2VsZWN0e21hcmdpbjo0cHggMCA0cHggMH0Kc2VsZWN0IG9wdGlvbntwYWRkaW5nOjJweCAzcHggM3B4IDNweH0Kc2VsZWN0W211bHRpcGxlXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO21hcmdpbjo0cHggMCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0KbGFiZWwsIC5sYWJlbHtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOiM4ODkyOWY7bWFyZ2luOjNweCAwIDRweCAwfQppbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWx7ZGlzcGxheTppbmxpbmV9CmlucHV0W3R5cGU9J3JhZGlvJ10gKyBsYWJlbHtkaXNwbGF5OmlubGluZX0KZmllbGRzZXR7Ym9yZGVyLXJhZGl1czoycHg7bWFyZ2luOjBweCAwIDIwcHggMDtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzoxMHB4fQpsZWdlbmR7cGFkZGluZzowIDJweCAwIDJweH0KaW5wdXRbdHlwZT1idXR0b25dOmZvY3VzLCBidXR0b246Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNGQ1YTZhO2JvcmRlci1jb2xvcjojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MC4zZW0gMC43ZW0gMC40ZW0gMC43ZW07bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViO3RyYW5zaXRpb246Ym9yZGVyIDAuM3MsIGNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcywgYmFja2dyb3VuZC1jb2xvciAwLjNzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZX0KaW5wdXRbdHlwZT0nYnV0dG9uJ106aG92ZXIsIC5idXR0b246aG92ZXIsIGJ1dHRvbjpob3Zlcntib3JkZXItY29sb3I6IzZiOWZkYjtjb2xvcjojMmQ2NmI4O2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7b3BhY2l0eToxfQppbnB1dFt0eXBlPSdidXR0b24nXTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0nYnV0dG9uJ106ZGlzYWJsZWQ6aG92ZXIsIGJ1dHRvbjpkaXNhYmxlZCwgYnV0dG9uOmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVye2JvcmRlci1jb2xvcjojZTNlOGViIWltcG9ydGFudDtjb2xvcjojODg5MjlmIWltcG9ydGFudDtvcGFjaXR5OjAuNjUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2UzZThlYiFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fQpidXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7cmlnaHQ6M3B4O3dpZHRoOjRweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O3otaW5kZXg6Mn0KaW5wdXRbdHlwZT1idXR0b25dLmJsdWU6aG92ZXIsIC5idXR0b24uYmx1ZTpob3ZlciwgYnV0dG9uLmJsdWU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2YjlmZGJ9CmlucHV0W3R5cGU9YnV0dG9uXS5ibHVlLCAuYnV0dG9uLmJsdWUsIGJ1dHRvbi5ibHVle2JvcmRlci1jb2xvcjojY2JlN2ZlO2JhY2tncm91bmQtY29sb3I6I2NiZTdmZTtjb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPWJ1dHRvbl0udGVhbDpob3ZlciwgLmJ1dHRvbi50ZWFsOmhvdmVyLCBidXR0b24udGVhbDpob3Zlcntib3JkZXItY29sb3I6IzFiYmJhMH0KaW5wdXRbdHlwZT1idXR0b25dLnRlYWwsIC5idXR0b24udGVhbCwgYnV0dG9uLnRlYWx7Ym9yZGVyLWNvbG9yOiNjZGYyZTY7YmFja2dyb3VuZC1jb2xvcjojY2RmMmU2fQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW46aG92ZXIsIC5idXR0b24uZ3JlZW46aG92ZXIsIGJ1dHRvbi5ncmVlbjpob3Zlcntib3JkZXItY29sb3I6IzlhYzU1Yztjb2xvcjojNjU5YzEzfQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW4sIC5idXR0b24uZ3JlZW4sIGJ1dHRvbi5ncmVlbntib3JkZXItY29sb3I6I2UwZjVjNjtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzZ9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2U6aG92ZXIsIC5idXR0b24ub3JhbmdlOmhvdmVyLCBidXR0b24ub3JhbmdlOmhvdmVye2JvcmRlci1jb2xvcjojZmVjMjllO2NvbG9yOiNmODc0MjN9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2UsIC5idXR0b24ub3JhbmdlLCBidXR0b24ub3Jhbmdle2JvcmRlci1jb2xvcjojZmZkYWFhO2JhY2tncm91bmQtY29sb3I6I2ZmZGFhYTtjb2xvcjojZjg3NDIzfQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkOmhvdmVyLCAuYnV0dG9uLnJlZDpob3ZlciwgYnV0dG9uLnJlZDpob3Zlcntib3JkZXItY29sb3I6I2ZhYWJiODtjb2xvcjojZDYyYzQ5fQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkLCAuYnV0dG9uLnJlZCwgYnV0dG9uLnJlZHtib3JkZXItY29sb3I6I2ZlZDNkMztiYWNrZ3JvdW5kLWNvbG9yOiNmZWQzZDM7Y29sb3I6I2Q2MmM0OX0KYTphY3RpdmUsIGE6Zm9jdXN7b3V0bGluZTpub25lfQphLCAucHNldWRvbGlua3tjb2xvcjojMmQ2NmI4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgMC4zczstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW9wZXJhLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1zLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOmNvbG9yIDAuM3MsIGJvcmRlciAwLjNzfQoucHNldWRvbGlua3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2NvbG9yOiMyZDY2Yjh9CmE6aG92ZXIsIC5wc2V1ZG9saW5rOmhvdmVyLCAucHNldWRvYnV0dG9uOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5ob3ZlcmxpbmsgLnBzZXVkb2xpbmt7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApfQouaG92ZXJsaW5rOmhvdmVyIC5wc2V1ZG9saW5re3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMyZDY2Yjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzllY2RmOH0KLmhvdmVybGluazpob3ZlciAucHNldWRvbGluazpob3Zlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWFlMGYxO2NvbG9yOiMxMmE1ZGN9CmEgaW1ne2JvcmRlcjpub25lIWltcG9ydGFudH0KLncxe3dpZHRoOjFweCFpbXBvcnRhbnR9Ci53Mnt3aWR0aDoycHghaW1wb3J0YW50fQoudzN7d2lkdGg6M3B4IWltcG9ydGFudH0KLnc0e3dpZHRoOjRweCFpbXBvcnRhbnR9Ci53NXt3aWR0aDo1cHghaW1wb3J0YW50fQoudzZ7d2lkdGg6NnB4IWltcG9ydGFudH0KLnc3e3dpZHRoOjdweCFpbXBvcnRhbnR9Ci53OHt3aWR0aDo4cHghaW1wb3J0YW50fQoudzl7d2lkdGg6OXB4IWltcG9ydGFudH0KLncxMHt3aWR0aDoxMHB4IWltcG9ydGFudH0KLncxMXt3aWR0aDoxMXB4IWltcG9ydGFudH0KLncxMnt3aWR0aDoxMnB4IWltcG9ydGFudH0KLncxM3t3aWR0aDoxM3B4IWltcG9ydGFudH0KLncxNHt3aWR0aDoxNHB4IWltcG9ydGFudH0KLncxNXt3aWR0aDoxNXB4IWltcG9ydGFudH0KLncxNnt3aWR0aDoxNnB4IWltcG9ydGFudH0KLncxN3t3aWR0aDoxN3B4IWltcG9ydGFudH0KLncxOHt3aWR0aDoxOHB4IWltcG9ydGFudH0KLncxOXt3aWR0aDoxOXB4IWltcG9ydGFudH0KLncyMHt3aWR0aDoyMHB4IWltcG9ydGFudH0KLncyMXt3aWR0aDoyMXB4IWltcG9ydGFudH0KLncyMnt3aWR0aDoyMnB4IWltcG9ydGFudH0KLncyM3t3aWR0aDoyM3B4IWltcG9ydGFudH0KLncyNHt3aWR0aDoyNHB4IWltcG9ydGFudH0KLncyNXt3aWR0aDoyNXB4IWltcG9ydGFudH0KLnczMHt3aWR0aDozMHB4IWltcG9ydGFudH0KLnczMnt3aWR0aDozMnB4IWltcG9ydGFudH0KLnczNXt3aWR0aDozNXB4IWltcG9ydGFudH0KLnc0MHt3aWR0aDo0MHB4IWltcG9ydGFudH0KLnc0NXt3aWR0aDo0NXB4IWltcG9ydGFudH0KLnc0OHt3aWR0aDo0OHB4IWltcG9ydGFudH0KLnc1MHt3aWR0aDo1MHB4IWltcG9ydGFudH0KLnc1NXt3aWR0aDo1NXB4IWltcG9ydGFudH0KLnc2MHt3aWR0aDo2MHB4IWltcG9ydGFudH0KLnc2NHt3aWR0aDo2NHB4IWltcG9ydGFudH0KLnc2NXt3aWR0aDo2NXB4IWltcG9ydGFudH0KLnc3MHt3aWR0aDo3MHB4IWltcG9ydGFudH0KLnc3NXt3aWR0aDo3NXB4IWltcG9ydGFudH0KLnc4MHt3aWR0aDo4MHB4IWltcG9ydGFudH0KLnc4NXt3aWR0aDo4NXB4IWltcG9ydGFudH0KLnc5MHt3aWR0aDo5MHB4IWltcG9ydGFudH0KLnc5NXt3aWR0aDo5NXB4IWltcG9ydGFudH0KLnc5Nnt3aWR0aDo5NnB4IWltcG9ydGFudH0KLncxMDB7d2lkdGg6MTAwcHghaW1wb3J0YW50fQoudzEwNXt3aWR0aDoxMDVweCFpbXBvcnRhbnR9Ci53MTEwe3dpZHRoOjExMHB4IWltcG9ydGFudH0KLncxMTV7d2lkdGg6MTE1cHghaW1wb3J0YW50fQoudzEyMHt3aWR0aDoxMjBweCFpbXBvcnRhbnR9Ci53MTI1e3dpZHRoOjEyNXB4IWltcG9ydGFudH0KLncxMzB7d2lkdGg6MTMwcHghaW1wb3J0YW50fQoudzEzNXt3aWR0aDoxMzVweCFpbXBvcnRhbnR9Ci53MTQwe3dpZHRoOjE0MHB4IWltcG9ydGFudH0KLncxNDV7d2lkdGg6MTQ1cHghaW1wb3J0YW50fQoudzE1MHt3aWR0aDoxNTBweCFpbXBvcnRhbnR9Ci53MTU1e3dpZHRoOjE1NXB4IWltcG9ydGFudH0KLncxNjB7d2lkdGg6MTYwcHghaW1wb3J0YW50fQoudzE2NXt3aWR0aDoxNjVweCFpbXBvcnRhbnR9Ci53MTcwe3dpZHRoOjE3MHB4IWltcG9ydGFudH0KLncxNzV7d2lkdGg6MTc1cHghaW1wb3J0YW50fQoudzE4MHt3aWR0aDoxODBweCFpbXBvcnRhbnR9Ci53MTg1e3dpZHRoOjE4NXB4IWltcG9ydGFudH0KLncxOTB7d2lkdGg6MTkwcHghaW1wb3J0YW50fQoudzE5NXt3aWR0aDoxOTVweCFpbXBvcnRhbnR9Ci53MjAwe3dpZHRoOjIwMHB4IWltcG9ydGFudH0KLncyMTB7d2lkdGg6MjEwcHghaW1wb3J0YW50fQoudzIyMHt3aWR0aDoyMjBweCFpbXBvcnRhbnR9Ci53MjMwe3dpZHRoOjIzMHB4IWltcG9ydGFudH0KLncyNDB7d2lkdGg6MjQwcHghaW1wb3J0YW50fQoudzI1MHt3aWR0aDoyNTBweCFpbXBvcnRhbnR9Ci53MjYwe3dpZHRoOjI2MHB4IWltcG9ydGFudH0KLncyNzB7d2lkdGg6MjcwcHghaW1wb3J0YW50fQoudzI4MHt3aWR0aDoyODBweCFpbXBvcnRhbnR9Ci53Mjkwe3dpZHRoOjI5MHB4IWltcG9ydGFudH0KLnczMDB7d2lkdGg6MzAwcHghaW1wb3J0YW50fQoudzMxMHt3aWR0aDozMTBweCFpbXBvcnRhbnR9Ci53MzIwe3dpZHRoOjMyMHB4IWltcG9ydGFudH0KLnczMzB7d2lkdGg6MzMwcHghaW1wb3J0YW50fQoudzM0MHt3aWR0aDozNDBweCFpbXBvcnRhbnR9Ci53MzUwe3dpZHRoOjM1MHB4IWltcG9ydGFudH0KLnczNjB7d2lkdGg6MzYwcHghaW1wb3J0YW50fQoudzM3MHt3aWR0aDozNzBweCFpbXBvcnRhbnR9Ci53Mzgwe3dpZHRoOjM4MHB4IWltcG9ydGFudH0KLnczOTB7d2lkdGg6MzkwcHghaW1wb3J0YW50fQoudzQwMHt3aWR0aDo0MDBweCFpbXBvcnRhbnR9Ci53NDIwe3dpZHRoOjQyMHB4IWltcG9ydGFudH0KLnc0NTB7d2lkdGg6NDUwcHghaW1wb3J0YW50fQoudzUwMHt3aWR0aDo1MDBweCFpbXBvcnRhbnR9Ci53NTIwe3dpZHRoOjUyMHB4IWltcG9ydGFudH0KLnc1NTB7d2lkdGg6NTUwcHghaW1wb3J0YW50fQoudzYwMHt3aWR0aDo2MDBweCFpbXBvcnRhbnR9Ci53NjIwe3dpZHRoOjYyMHB4IWltcG9ydGFudH0KLnc2NTB7d2lkdGg6NjUwcHghaW1wb3J0YW50fQoudzcwMHt3aWR0aDo3MDBweCFpbXBvcnRhbnR9Ci53NzIwe3dpZHRoOjcyMHB4IWltcG9ydGFudH0KLnc3NTB7d2lkdGg6NzUwcHghaW1wb3J0YW50fQoudzgwMHt3aWR0aDo4MDBweCFpbXBvcnRhbnR9Ci53ODIwe3dpZHRoOjgyMHB4IWltcG9ydGFudH0KLnc4NTB7d2lkdGg6ODUwcHghaW1wb3J0YW50fQoudzkwMHt3aWR0aDo5MDBweCFpbXBvcnRhbnR9Ci53OTIwe3dpZHRoOjkyMHB4IWltcG9ydGFudH0KLnc5NTB7d2lkdGg6OTUwcHghaW1wb3J0YW50fQoudzEwMDB7d2lkdGg6MTAwMHB4IWltcG9ydGFudH0KLncxMDUwe3dpZHRoOjEwNTBweCFpbXBvcnRhbnR9Ci53MTEwMHt3aWR0aDoxMTAwcHghaW1wb3J0YW50fQoudzExNTB7d2lkdGg6MTE1MHB4IWltcG9ydGFudH0KLncxMTYwe3dpZHRoOjExNjBweCFpbXBvcnRhbnR9Ci53MTIwMHt3aWR0aDoxMjAwcHghaW1wb3J0YW50fQoudzEyNTB7d2lkdGg6MTI1MHB4IWltcG9ydGFudH0KLncxMzAwe3dpZHRoOjEzMDBweCFpbXBvcnRhbnR9Ci53MTM1MHt3aWR0aDoxMzUwcHghaW1wb3J0YW50fQoudzE0MDB7d2lkdGg6MTQwMHB4IWltcG9ydGFudH0KLncxNDUwe3dpZHRoOjE0NTBweCFpbXBvcnRhbnR9Ci53MTUwMHt3aWR0aDoxNTAwcHghaW1wb3J0YW50fQoudzVwe3dpZHRoOjUlIWltcG9ydGFudH0KLncxMHB7d2lkdGg6MTAlIWltcG9ydGFudH0KLncxNXB7d2lkdGg6MTUlIWltcG9ydGFudH0KLncyMHB7d2lkdGg6MjAlIWltcG9ydGFudH0KLncyNXB7d2lkdGg6MjUlIWltcG9ydGFudH0KLnczMHB7d2lkdGg6MzAlIWltcG9ydGFudH0KLnczNXB7d2lkdGg6MzUlIWltcG9ydGFudH0KLnc0MHB7d2lkdGg6NDAlIWltcG9ydGFudH0KLnc0NXB7d2lkdGg6NDUlIWltcG9ydGFudH0KLnc1MHB7d2lkdGg6NTAlIWltcG9ydGFudH0KLnc1NXB7d2lkdGg6NTUlIWltcG9ydGFudH0KLnc2MHB7d2lkdGg6NjAlIWltcG9ydGFudH0KLnc2NXB7d2lkdGg6NjUlIWltcG9ydGFudH0KLnc3MHB7d2lkdGg6NzAlIWltcG9ydGFudH0KLnc3NXB7d2lkdGg6NzUlIWltcG9ydGFudH0KLnc4MHB7d2lkdGg6ODAlIWltcG9ydGFudH0KLnc4NXB7d2lkdGg6ODUlIWltcG9ydGFudH0KLnc5MHB7d2lkdGg6OTAlIWltcG9ydGFudH0KLnc5NXB7d2lkdGg6OTUlIWltcG9ydGFudH0KLncxMDBwe3dpZHRoOjEwMCUhaW1wb3J0YW50fQouaDB7aGVpZ2h0OjBweCFpbXBvcnRhbnR9Ci5oMXtoZWlnaHQ6MXB4IWltcG9ydGFudH0KLmgye2hlaWdodDoycHghaW1wb3J0YW50fQouaDN7aGVpZ2h0OjNweCFpbXBvcnRhbnR9Ci5oNHtoZWlnaHQ6NHB4IWltcG9ydGFudH0KLmg1e2hlaWdodDo1cHghaW1wb3J0YW50fQouaDEwe2hlaWdodDoxMHB4IWltcG9ydGFudH0KLmgxNXtoZWlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5oMTZ7aGVpZ2h0OjE2cHghaW1wb3J0YW50fQouaDIwe2hlaWdodDoyMHB4IWltcG9ydGFudH0KLmgyNHtoZWlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5oMjV7aGVpZ2h0OjI1cHghaW1wb3J0YW50fQouaDMwe2hlaWdodDozMHB4IWltcG9ydGFudH0KLmgzMntoZWlnaHQ6MzJweCFpbXBvcnRhbnR9Ci5oMzV7aGVpZ2h0OjM1cHghaW1wb3J0YW50fQouaDQwe2hlaWdodDo0MHB4IWltcG9ydGFudH0KLmg0NXtoZWlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5oNDh7aGVpZ2h0OjQ4cHghaW1wb3J0YW50fQouaDUwe2hlaWdodDo1MHB4IWltcG9ydGFudH0KLmg1NXtoZWlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5oNjB7aGVpZ2h0OjYwcHghaW1wb3J0YW50fQouaDY0e2hlaWdodDo2NHB4IWltcG9ydGFudH0KLmg2NXtoZWlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5oNzB7aGVpZ2h0OjcwcHghaW1wb3J0YW50fQouaDc1e2hlaWdodDo3NXB4IWltcG9ydGFudH0KLmg4MHtoZWlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5oODV7aGVpZ2h0Ojg1cHghaW1wb3J0YW50fQouaDkwe2hlaWdodDo5MHB4IWltcG9ydGFudH0KLmg5NXtoZWlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5oOTZ7aGVpZ2h0Ojk2cHghaW1wb3J0YW50fQouaDEwMHtoZWlnaHQ6MTAwcHghaW1wb3J0YW50fQouaDExMHtoZWlnaHQ6MTEwcHghaW1wb3J0YW50fQouaDEyMHtoZWlnaHQ6MTIwcHghaW1wb3J0YW50fQouaDEzMHtoZWlnaHQ6MTMwcHghaW1wb3J0YW50fQouaDE0MHtoZWlnaHQ6MTQwcHghaW1wb3J0YW50fQouaDE1MHtoZWlnaHQ6MTUwcHghaW1wb3J0YW50fQouaDE2MHtoZWlnaHQ6MTYwcHghaW1wb3J0YW50fQouaDE3MHtoZWlnaHQ6MTcwcHghaW1wb3J0YW50fQouaDE4MHtoZWlnaHQ6MTgwcHghaW1wb3J0YW50fQouaDE5MHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50fQouaDIwMHtoZWlnaHQ6MjAwcHghaW1wb3J0YW50fQouaDI1MHtoZWlnaHQ6MjUwcHghaW1wb3J0YW50fQouaDMwMHtoZWlnaHQ6MzAwcHghaW1wb3J0YW50fQouaDM1MHtoZWlnaHQ6MzUwcHghaW1wb3J0YW50fQouaDQwMHtoZWlnaHQ6NDAwcHghaW1wb3J0YW50fQouaDQ1MHtoZWlnaHQ6NDUwcHghaW1wb3J0YW50fQouaDUwMHtoZWlnaHQ6NTAwcHghaW1wb3J0YW50fQouaDU1MHtoZWlnaHQ6NTUwcHghaW1wb3J0YW50fQouaDYwMHtoZWlnaHQ6NjAwcHghaW1wb3J0YW50fQouaDY1MHtoZWlnaHQ6NjUwcHghaW1wb3J0YW50fQouaDcwMHtoZWlnaHQ6NzAwcHghaW1wb3J0YW50fQouaDc1MHtoZWlnaHQ6NzUwcHghaW1wb3J0YW50fQouaDgwMHtoZWlnaHQ6ODAwcHghaW1wb3J0YW50fQouaDg1MHtoZWlnaHQ6ODUwcHghaW1wb3J0YW50fQouaDkwMHtoZWlnaHQ6OTAwcHghaW1wb3J0YW50fQouaDk1MHtoZWlnaHQ6OTUwcHghaW1wb3J0YW50fQouaDEwMDB7aGVpZ2h0OjEwMDBweCFpbXBvcnRhbnR9Ci5oYXtoZWlnaHQ6YXV0byFpbXBvcnRhbnR9Ci5kaXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9Ci5kaWJ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fQouZGJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Ci5kaS5oaWRlLCAuZGIuaGlkZSwgLmRpYi5oaWRlLCAuZGkuZmlsdGVyLW5vbWF0Y2gsIC5kYi5maWx0ZXItbm9tYXRjaCwgLmRpYi5maWx0ZXItbm9tYXRjaHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQoub2h7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0KLm92e292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fQouZmx7ZmxvYXQ6bGVmdH0KLmZye2Zsb2F0OnJpZ2h0fQouY2J7Y2xlYXI6Ym90aH0KLmNye2NsZWFyOnJpZ2h0fQouY2x7Y2xlYXI6bGVmdH0KLnAwe3BhZGRpbmc6MHB4IWltcG9ydGFudH0KLnAxe3BhZGRpbmc6MXB4IWltcG9ydGFudH0KLnAye3BhZGRpbmc6MnB4IWltcG9ydGFudH0KLnAze3BhZGRpbmc6M3B4IWltcG9ydGFudH0KLnA0e3BhZGRpbmc6NHB4IWltcG9ydGFudH0KLnA1e3BhZGRpbmc6NXB4IWltcG9ydGFudH0KLnA2e3BhZGRpbmc6NnB4IWltcG9ydGFudH0KLnA3e3BhZGRpbmc6N3B4IWltcG9ydGFudH0KLnA4e3BhZGRpbmc6OHB4IWltcG9ydGFudH0KLnA5e3BhZGRpbmc6OXB4IWltcG9ydGFudH0KLnAxMHtwYWRkaW5nOjEwcHghaW1wb3J0YW50fQoucDE1e3BhZGRpbmc6MTVweCFpbXBvcnRhbnR9Ci5wMjB7cGFkZGluZzoyMHB4IWltcG9ydGFudH0KLnAyNXtwYWRkaW5nOjI1cHghaW1wb3J0YW50fQoucDMwe3BhZGRpbmc6MzBweCFpbXBvcnRhbnR9Ci5wMzV7cGFkZGluZzozNXB4IWltcG9ydGFudH0KLnA0MHtwYWRkaW5nOjQwcHghaW1wb3J0YW50fQoucDQ1e3BhZGRpbmc6NDVweCFpbXBvcnRhbnR9Ci5wNTB7cGFkZGluZzo1MHB4IWltcG9ydGFudH0KLnA1NXtwYWRkaW5nOjU1cHghaW1wb3J0YW50fQoucDYwe3BhZGRpbmc6NjBweCFpbXBvcnRhbnR9Ci5wNjV7cGFkZGluZzo2NXB4IWltcG9ydGFudH0KLnA3MHtwYWRkaW5nOjcwcHghaW1wb3J0YW50fQoucDc1e3BhZGRpbmc6NzVweCFpbXBvcnRhbnR9Ci5wODB7cGFkZGluZzo4MHB4IWltcG9ydGFudH0KLnA4NXtwYWRkaW5nOjg1cHghaW1wb3J0YW50fQoucDkwe3BhZGRpbmc6OTBweCFpbXBvcnRhbnR9Ci5wOTV7cGFkZGluZzo5NXB4IWltcG9ydGFudH0KLnAxMDB7cGFkZGluZzoxMDBweCFpbXBvcnRhbnR9Ci5wMTEwe3BhZGRpbmc6MTEwcHghaW1wb3J0YW50fQoucDEyMHtwYWRkaW5nOjEyMHB4IWltcG9ydGFudH0KLnAxMzB7cGFkZGluZzoxMzBweCFpbXBvcnRhbnR9Ci5wMTQwe3BhZGRpbmc6MTQwcHghaW1wb3J0YW50fQoucDE1MHtwYWRkaW5nOjE1MHB4IWltcG9ydGFudH0KLnAxNjB7cGFkZGluZzoxNjBweCFpbXBvcnRhbnR9Ci5wMTcwe3BhZGRpbmc6MTcwcHghaW1wb3J0YW50fQoucDE4MHtwYWRkaW5nOjE4MHB4IWltcG9ydGFudH0KLnAxOTB7cGFkZGluZzoxOTBweCFpbXBvcnRhbnR9Ci5wMjAwe3BhZGRpbmc6MjAwcHghaW1wb3J0YW50fQoucDI1MHtwYWRkaW5nOjI1MHB4IWltcG9ydGFudH0KLnAzMDB7cGFkZGluZzozMDBweCFpbXBvcnRhbnR9Ci5wMzUwe3BhZGRpbmc6MzUwcHghaW1wb3J0YW50fQoucDQwMHtwYWRkaW5nOjQwMHB4IWltcG9ydGFudH0KLnA0NTB7cGFkZGluZzo0NTBweCFpbXBvcnRhbnR9Ci5wNTAwe3BhZGRpbmc6NTAwcHghaW1wb3J0YW50fQoucGwwe3BhZGRpbmctbGVmdDowcHghaW1wb3J0YW50fQoucGwxe3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50fQoucGwye3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50fQoucGwze3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50fQoucGw0e3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50fQoucGw1e3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50fQoucGw2e3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50fQoucGw3e3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50fQoucGw4e3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50fQoucGw5e3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50fQoucGwxMHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnR9Ci5wbDExe3BhZGRpbmctbGVmdDoxMXB4IWltcG9ydGFudH0KLnBsMTJ7cGFkZGluZy1sZWZ0OjEycHghaW1wb3J0YW50fQoucGwxM3twYWRkaW5nLWxlZnQ6MTNweCFpbXBvcnRhbnR9Ci5wbDE0e3BhZGRpbmctbGVmdDoxNHB4IWltcG9ydGFudH0KLnBsMTV7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50fQoucGwxNntwYWRkaW5nLWxlZnQ6MTZweCFpbXBvcnRhbnR9Ci5wbDE3e3BhZGRpbmctbGVmdDoxN3B4IWltcG9ydGFudH0KLnBsMTh7cGFkZGluZy1sZWZ0OjE4cHghaW1wb3J0YW50fQoucGwxOXtwYWRkaW5nLWxlZnQ6MTlweCFpbXBvcnRhbnR9Ci5wbDIwe3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudH0KLnBsMjF7cGFkZGluZy1sZWZ0OjIxcHghaW1wb3J0YW50fQoucGwyMntwYWRkaW5nLWxlZnQ6MjJweCFpbXBvcnRhbnR9Ci5wbDIze3BhZGRpbmctbGVmdDoyM3B4IWltcG9ydGFudH0KLnBsMjR7cGFkZGluZy1sZWZ0OjI0cHghaW1wb3J0YW50fQoucGwyNXtwYWRkaW5nLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5wbDI2e3BhZGRpbmctbGVmdDoyNnB4IWltcG9ydGFudH0KLnBsMjd7cGFkZGluZy1sZWZ0OjI3cHghaW1wb3J0YW50fQoucGwyOHtwYWRkaW5nLWxlZnQ6MjhweCFpbXBvcnRhbnR9Ci5wbDI5e3BhZGRpbmctbGVmdDoyOXB4IWltcG9ydGFudH0KLnBsMzB7cGFkZGluZy1sZWZ0OjMwcHghaW1wb3J0YW50fQoucGwzNXtwYWRkaW5nLWxlZnQ6MzVweCFpbXBvcnRhbnR9Ci5wbDQwe3BhZGRpbmctbGVmdDo0MHB4IWltcG9ydGFudH0KLnBsNDV7cGFkZGluZy1sZWZ0OjQ1cHghaW1wb3J0YW50fQoucGw1MHtwYWRkaW5nLWxlZnQ6NTBweCFpbXBvcnRhbnR9Ci5wbDU1e3BhZGRpbmctbGVmdDo1NXB4IWltcG9ydGFudH0KLnBsNjB7cGFkZGluZy1sZWZ0OjYwcHghaW1wb3J0YW50fQoucGw2NXtwYWRkaW5nLWxlZnQ6NjVweCFpbXBvcnRhbnR9Ci5wbDcwe3BhZGRpbmctbGVmdDo3MHB4IWltcG9ydGFudH0KLnBsNzV7cGFkZGluZy1sZWZ0Ojc1cHghaW1wb3J0YW50fQoucGw4MHtwYWRkaW5nLWxlZnQ6ODBweCFpbXBvcnRhbnR9Ci5wbDg1e3BhZGRpbmctbGVmdDo4NXB4IWltcG9ydGFudH0KLnBsOTB7cGFkZGluZy1sZWZ0OjkwcHghaW1wb3J0YW50fQoucGw5NXtwYWRkaW5nLWxlZnQ6OTVweCFpbXBvcnRhbnR9Ci5wbDEwMHtwYWRkaW5nLWxlZnQ6MTAwcHghaW1wb3J0YW50fQoucGwxMTB7cGFkZGluZy1sZWZ0OjExMHB4IWltcG9ydGFudH0KLnBsMTIwe3BhZGRpbmctbGVmdDoxMjBweCFpbXBvcnRhbnR9Ci5wbDEzMHtwYWRkaW5nLWxlZnQ6MTMwcHghaW1wb3J0YW50fQoucGwxNDB7cGFkZGluZy1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLnBsMTUwe3BhZGRpbmctbGVmdDoxNTBweCFpbXBvcnRhbnR9Ci5wbDE2MHtwYWRkaW5nLWxlZnQ6MTYwcHghaW1wb3J0YW50fQoucGwxNzB7cGFkZGluZy1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLnBsMTgwe3BhZGRpbmctbGVmdDoxODBweCFpbXBvcnRhbnR9Ci5wbDE5MHtwYWRkaW5nLWxlZnQ6MTkwcHghaW1wb3J0YW50fQoucGwyMDB7cGFkZGluZy1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLnByMHtwYWRkaW5nLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5wcjF7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50fQoucHIye3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudH0KLnByM3twYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5wcjR7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50fQoucHI1e3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudH0KLnByNntwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5wcjd7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50fQoucHI4e3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudH0KLnByOXtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5wcjEwe3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnR9Ci5wcjExe3BhZGRpbmctcmlnaHQ6MTFweCFpbXBvcnRhbnR9Ci5wcjEye3BhZGRpbmctcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5wcjEze3BhZGRpbmctcmlnaHQ6MTNweCFpbXBvcnRhbnR9Ci5wcjE0e3BhZGRpbmctcmlnaHQ6MTRweCFpbXBvcnRhbnR9Ci5wcjE1e3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5wcjE2e3BhZGRpbmctcmlnaHQ6MTZweCFpbXBvcnRhbnR9Ci5wcjE3e3BhZGRpbmctcmlnaHQ6MTdweCFpbXBvcnRhbnR9Ci5wcjE4e3BhZGRpbmctcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5wcjE5e3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnR9Ci5wcjIwe3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnR9Ci5wcjIxe3BhZGRpbmctcmlnaHQ6MjFweCFpbXBvcnRhbnR9Ci5wcjIye3BhZGRpbmctcmlnaHQ6MjJweCFpbXBvcnRhbnR9Ci5wcjIze3BhZGRpbmctcmlnaHQ6MjNweCFpbXBvcnRhbnR9Ci5wcjI0e3BhZGRpbmctcmlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5wcjI1e3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5wcjI2e3BhZGRpbmctcmlnaHQ6MjZweCFpbXBvcnRhbnR9Ci5wcjI3e3BhZGRpbmctcmlnaHQ6MjdweCFpbXBvcnRhbnR9Ci5wcjI4e3BhZGRpbmctcmlnaHQ6MjhweCFpbXBvcnRhbnR9Ci5wcjI5e3BhZGRpbmctcmlnaHQ6MjlweCFpbXBvcnRhbnR9Ci5wcjMwe3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnR9Ci5wcjM1e3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnR9Ci5wcjQwe3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5wcjQ1e3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5wcjUwe3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnR9Ci5wcjU1e3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5wcjYwe3BhZGRpbmctcmlnaHQ6NjBweCFpbXBvcnRhbnR9Ci5wcjY1e3BhZGRpbmctcmlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5wcjcwe3BhZGRpbmctcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5wcjc1e3BhZGRpbmctcmlnaHQ6NzVweCFpbXBvcnRhbnR9Ci5wcjgwe3BhZGRpbmctcmlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5wcjg1e3BhZGRpbmctcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5wcjkwe3BhZGRpbmctcmlnaHQ6OTBweCFpbXBvcnRhbnR9Ci5wcjk1e3BhZGRpbmctcmlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5wcjEwMHtwYWRkaW5nLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLnByMTEwe3BhZGRpbmctcmlnaHQ6MTEwcHghaW1wb3J0YW50fQoucHIxMjB7cGFkZGluZy1yaWdodDoxMjBweCFpbXBvcnRhbnR9Ci5wcjEzMHtwYWRkaW5nLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLnByMTQwe3BhZGRpbmctcmlnaHQ6MTQwcHghaW1wb3J0YW50fQoucHIxNTB7cGFkZGluZy1yaWdodDoxNTBweCFpbXBvcnRhbnR9Ci5wcjE2MHtwYWRkaW5nLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLnByMTcwe3BhZGRpbmctcmlnaHQ6MTcwcHghaW1wb3J0YW50fQoucHIxODB7cGFkZGluZy1yaWdodDoxODBweCFpbXBvcnRhbnR9Ci5wcjE5MHtwYWRkaW5nLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLnByMjAwe3BhZGRpbmctcmlnaHQ6MjAwcHghaW1wb3J0YW50fQoucHQwe3BhZGRpbmctdG9wOjBweCFpbXBvcnRhbnR9Ci5wdDF7cGFkZGluZy10b3A6MXB4IWltcG9ydGFudH0KLnB0MntwYWRkaW5nLXRvcDoycHghaW1wb3J0YW50fQoucHQze3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnR9Ci5wdDR7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudH0KLnB0NXtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50fQoucHQ2e3BhZGRpbmctdG9wOjZweCFpbXBvcnRhbnR9Ci5wdDd7cGFkZGluZy10b3A6N3B4IWltcG9ydGFudH0KLnB0OHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50fQoucHQ5e3BhZGRpbmctdG9wOjlweCFpbXBvcnRhbnR9Ci5wdDEwe3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50fQoucHQxMXtwYWRkaW5nLXRvcDoxMXB4IWltcG9ydGFudH0KLnB0MTJ7cGFkZGluZy10b3A6MTJweCFpbXBvcnRhbnR9Ci5wdDEze3BhZGRpbmctdG9wOjEzcHghaW1wb3J0YW50fQoucHQxNHtwYWRkaW5nLXRvcDoxNHB4IWltcG9ydGFudH0KLnB0MTV7cGFkZGluZy10b3A6MTVweCFpbXBvcnRhbnR9Ci5wdDE2e3BhZGRpbmctdG9wOjE2cHghaW1wb3J0YW50fQoucHQxN3twYWRkaW5nLXRvcDoxN3B4IWltcG9ydGFudH0KLnB0MTh7cGFkZGluZy10b3A6MThweCFpbXBvcnRhbnR9Ci5wdDE5e3BhZGRpbmctdG9wOjE5cHghaW1wb3J0YW50fQoucHQyMHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudH0KLnB0MjF7cGFkZGluZy10b3A6MjFweCFpbXBvcnRhbnR9Ci5wdDIye3BhZGRpbmctdG9wOjIycHghaW1wb3J0YW50fQoucHQyM3twYWRkaW5nLXRvcDoyM3B4IWltcG9ydGFudH0KLnB0MjR7cGFkZGluZy10b3A6MjRweCFpbXBvcnRhbnR9Ci5wdDI1e3BhZGRpbmctdG9wOjI1cHghaW1wb3J0YW50fQoucHQyNntwYWRkaW5nLXRvcDoyNnB4IWltcG9ydGFudH0KLnB0Mjd7cGFkZGluZy10b3A6MjdweCFpbXBvcnRhbnR9Ci5wdDI4e3BhZGRpbmctdG9wOjI4cHghaW1wb3J0YW50fQoucHQyOXtwYWRkaW5nLXRvcDoyOXB4IWltcG9ydGFudH0KLnB0MzB7cGFkZGluZy10b3A6MzBweCFpbXBvcnRhbnR9Ci5wdDM1e3BhZGRpbmctdG9wOjM1cHghaW1wb3J0YW50fQoucHQ0MHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudH0KLnB0NDV7cGFkZGluZy10b3A6NDVweCFpbXBvcnRhbnR9Ci5wdDUwe3BhZGRpbmctdG9wOjUwcHghaW1wb3J0YW50fQoucHQ1NXtwYWRkaW5nLXRvcDo1NXB4IWltcG9ydGFudH0KLnB0NjB7cGFkZGluZy10b3A6NjBweCFpbXBvcnRhbnR9Ci5wdDY1e3BhZGRpbmctdG9wOjY1cHghaW1wb3J0YW50fQoucHQ3MHtwYWRkaW5nLXRvcDo3MHB4IWltcG9ydGFudH0KLnB0NzV7cGFkZGluZy10b3A6NzVweCFpbXBvcnRhbnR9Ci5wdDgwe3BhZGRpbmctdG9wOjgwcHghaW1wb3J0YW50fQoucHQ4NXtwYWRkaW5nLXRvcDo4NXB4IWltcG9ydGFudH0KLnB0OTB7cGFkZGluZy10b3A6OTBweCFpbXBvcnRhbnR9Ci5wdDk1e3BhZGRpbmctdG9wOjk1cHghaW1wb3J0YW50fQoucHQxMDB7cGFkZGluZy10b3A6MTAwcHghaW1wb3J0YW50fQoucHQxMTB7cGFkZGluZy10b3A6MTEwcHghaW1wb3J0YW50fQoucHQxMjB7cGFkZGluZy10b3A6MTIwcHghaW1wb3J0YW50fQoucHQxMzB7cGFkZGluZy10b3A6MTMwcHghaW1wb3J0YW50fQoucHQxNDB7cGFkZGluZy10b3A6MTQwcHghaW1wb3J0YW50fQoucHQxNTB7cGFkZGluZy10b3A6MTUwcHghaW1wb3J0YW50fQoucHQxNjB7cGFkZGluZy10b3A6MTYwcHghaW1wb3J0YW50fQoucHQxNzB7cGFkZGluZy10b3A6MTcwcHghaW1wb3J0YW50fQoucHQxODB7cGFkZGluZy10b3A6MTgwcHghaW1wb3J0YW50fQoucHQxOTB7cGFkZGluZy10b3A6MTkwcHghaW1wb3J0YW50fQoucHQyMDB7cGFkZGluZy10b3A6MjAwcHghaW1wb3J0YW50fQoucGIwe3BhZGRpbmctYm90dG9tOjBweCFpbXBvcnRhbnR9Ci5wYjF7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudH0KLnBiMntwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50fQoucGIze3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnR9Ci5wYjR7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudH0KLnBiNXtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50fQoucGI2e3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnR9Ci5wYjd7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudH0KLnBiOHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50fQoucGI5e3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnR9Ci5wYjEwe3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50fQoucGIxMXtwYWRkaW5nLWJvdHRvbToxMXB4IWltcG9ydGFudH0KLnBiMTJ7cGFkZGluZy1ib3R0b206MTJweCFpbXBvcnRhbnR9Ci5wYjEze3BhZGRpbmctYm90dG9tOjEzcHghaW1wb3J0YW50fQoucGIxNHtwYWRkaW5nLWJvdHRvbToxNHB4IWltcG9ydGFudH0KLnBiMTV7cGFkZGluZy1ib3R0b206MTVweCFpbXBvcnRhbnR9Ci5wYjE2e3BhZGRpbmctYm90dG9tOjE2cHghaW1wb3J0YW50fQoucGIxN3twYWRkaW5nLWJvdHRvbToxN3B4IWltcG9ydGFudH0KLnBiMTh7cGFkZGluZy1ib3R0b206MThweCFpbXBvcnRhbnR9Ci5wYjE5e3BhZGRpbmctYm90dG9tOjE5cHghaW1wb3J0YW50fQoucGIyMHtwYWRkaW5nLWJvdHRvbToyMHB4IWltcG9ydGFudH0KLnBiMjF7cGFkZGluZy1ib3R0b206MjFweCFpbXBvcnRhbnR9Ci5wYjIye3BhZGRpbmctYm90dG9tOjIycHghaW1wb3J0YW50fQoucGIyM3twYWRkaW5nLWJvdHRvbToyM3B4IWltcG9ydGFudH0KLnBiMjR7cGFkZGluZy1ib3R0b206MjRweCFpbXBvcnRhbnR9Ci5wYjI1e3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50fQoucGIyNntwYWRkaW5nLWJvdHRvbToyNnB4IWltcG9ydGFudH0KLnBiMjd7cGFkZGluZy1ib3R0b206MjdweCFpbXBvcnRhbnR9Ci5wYjI4e3BhZGRpbmctYm90dG9tOjI4cHghaW1wb3J0YW50fQoucGIyOXtwYWRkaW5nLWJvdHRvbToyOXB4IWltcG9ydGFudH0KLnBiMzB7cGFkZGluZy1ib3R0b206MzBweCFpbXBvcnRhbnR9Ci5wYjM1e3BhZGRpbmctYm90dG9tOjM1cHghaW1wb3J0YW50fQoucGI0MHtwYWRkaW5nLWJvdHRvbTo0MHB4IWltcG9ydGFudH0KLnBiNDV7cGFkZGluZy1ib3R0b206NDVweCFpbXBvcnRhbnR9Ci5wYjUwe3BhZGRpbmctYm90dG9tOjUwcHghaW1wb3J0YW50fQoucGI1NXtwYWRkaW5nLWJvdHRvbTo1NXB4IWltcG9ydGFudH0KLnBiNjB7cGFkZGluZy1ib3R0b206NjBweCFpbXBvcnRhbnR9Ci5wYjY1e3BhZGRpbmctYm90dG9tOjY1cHghaW1wb3J0YW50fQoucGI3MHtwYWRkaW5nLWJvdHRvbTo3MHB4IWltcG9ydGFudH0KLnBiNzV7cGFkZGluZy1ib3R0b206NzVweCFpbXBvcnRhbnR9Ci5wYjgwe3BhZGRpbmctYm90dG9tOjgwcHghaW1wb3J0YW50fQoucGI4NXtwYWRkaW5nLWJvdHRvbTo4NXB4IWltcG9ydGFudH0KLnBiOTB7cGFkZGluZy1ib3R0b206OTBweCFpbXBvcnRhbnR9Ci5wYjk1e3BhZGRpbmctYm90dG9tOjk1cHghaW1wb3J0YW50fQoucGIxMDB7cGFkZGluZy1ib3R0b206MTAwcHghaW1wb3J0YW50fQoucGIxMTB7cGFkZGluZy1ib3R0b206MTEwcHghaW1wb3J0YW50fQoucGIxMjB7cGFkZGluZy1ib3R0b206MTIwcHghaW1wb3J0YW50fQoucGIxMzB7cGFkZGluZy1ib3R0b206MTMwcHghaW1wb3J0YW50fQoucGIxNDB7cGFkZGluZy1ib3R0b206MTQwcHghaW1wb3J0YW50fQoucGIxNTB7cGFkZGluZy1ib3R0b206MTUwcHghaW1wb3J0YW50fQoucGIxNjB7cGFkZGluZy1ib3R0b206MTYwcHghaW1wb3J0YW50fQoucGIxNzB7cGFkZGluZy1ib3R0b206MTcwcHghaW1wb3J0YW50fQoucGIxODB7cGFkZGluZy1ib3R0b206MTgwcHghaW1wb3J0YW50fQoucGIxOTB7cGFkZGluZy1ib3R0b206MTkwcHghaW1wb3J0YW50fQoucGIyMDB7cGFkZGluZy1ib3R0b206MjAwcHghaW1wb3J0YW50fQoubWwtNTB7bWFyZ2luLWxlZnQ6LTUwcHghaW1wb3J0YW50fQoubWwtNDB7bWFyZ2luLWxlZnQ6LTQwcHghaW1wb3J0YW50fQoubWwtMzB7bWFyZ2luLWxlZnQ6LTMwcHghaW1wb3J0YW50fQoubWwtMjV7bWFyZ2luLWxlZnQ6LTI1cHghaW1wb3J0YW50fQoubWwtMjB7bWFyZ2luLWxlZnQ6LTIwcHghaW1wb3J0YW50fQoubWwtMTV7bWFyZ2luLWxlZnQ6LTE1cHghaW1wb3J0YW50fQoubWwtMTB7bWFyZ2luLWxlZnQ6LTEwcHghaW1wb3J0YW50fQoubWwtOXttYXJnaW4tbGVmdDotOXB4IWltcG9ydGFudH0KLm1sLTh7bWFyZ2luLWxlZnQ6LThweCFpbXBvcnRhbnR9Ci5tbC03e21hcmdpbi1sZWZ0Oi03cHghaW1wb3J0YW50fQoubWwtNnttYXJnaW4tbGVmdDotNnB4IWltcG9ydGFudH0KLm1sLTV7bWFyZ2luLWxlZnQ6LTVweCFpbXBvcnRhbnR9Ci5tbC00e21hcmdpbi1sZWZ0Oi00cHghaW1wb3J0YW50fQoubWwtM3ttYXJnaW4tbGVmdDotM3B4IWltcG9ydGFudH0KLm1sLTJ7bWFyZ2luLWxlZnQ6LTJweCFpbXBvcnRhbnR9Ci5tbC0xe21hcmdpbi1sZWZ0Oi0xcHghaW1wb3J0YW50fQoubWwwe21hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnR9Ci5tbDF7bWFyZ2luLWxlZnQ6MXB4IWltcG9ydGFudH0KLm1sMnttYXJnaW4tbGVmdDoycHghaW1wb3J0YW50fQoubWwze21hcmdpbi1sZWZ0OjNweCFpbXBvcnRhbnR9Ci5tbDR7bWFyZ2luLWxlZnQ6NHB4IWltcG9ydGFudH0KLm1sNXttYXJnaW4tbGVmdDo1cHghaW1wb3J0YW50fQoubWw2e21hcmdpbi1sZWZ0OjZweCFpbXBvcnRhbnR9Ci5tbDd7bWFyZ2luLWxlZnQ6N3B4IWltcG9ydGFudH0KLm1sOHttYXJnaW4tbGVmdDo4cHghaW1wb3J0YW50fQoubWw5e21hcmdpbi1sZWZ0OjlweCFpbXBvcnRhbnR9Ci5tbDEwe21hcmdpbi1sZWZ0OjEwcHghaW1wb3J0YW50fQoubWwxMXttYXJnaW4tbGVmdDoxMXB4IWltcG9ydGFudH0KLm1sMTJ7bWFyZ2luLWxlZnQ6MTJweCFpbXBvcnRhbnR9Ci5tbDEze21hcmdpbi1sZWZ0OjEzcHghaW1wb3J0YW50fQoubWwxNHttYXJnaW4tbGVmdDoxNHB4IWltcG9ydGFudH0KLm1sMTV7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnR9Ci5tbDE2e21hcmdpbi1sZWZ0OjE2cHghaW1wb3J0YW50fQoubWwxN3ttYXJnaW4tbGVmdDoxN3B4IWltcG9ydGFudH0KLm1sMTh7bWFyZ2luLWxlZnQ6MThweCFpbXBvcnRhbnR9Ci5tbDE5e21hcmdpbi1sZWZ0OjE5cHghaW1wb3J0YW50fQoubWwyMHttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudH0KLm1sMjV7bWFyZ2luLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5tbDMwe21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50fQoubWwzNXttYXJnaW4tbGVmdDozNXB4IWltcG9ydGFudH0KLm1sNDB7bWFyZ2luLWxlZnQ6NDBweCFpbXBvcnRhbnR9Ci5tbDQ1e21hcmdpbi1sZWZ0OjQ1cHghaW1wb3J0YW50fQoubWw1MHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudH0KLm1sNTV7bWFyZ2luLWxlZnQ6NTVweCFpbXBvcnRhbnR9Ci5tbDYwe21hcmdpbi1sZWZ0OjYwcHghaW1wb3J0YW50fQoubWw2NXttYXJnaW4tbGVmdDo2NXB4IWltcG9ydGFudH0KLm1sNzB7bWFyZ2luLWxlZnQ6NzBweCFpbXBvcnRhbnR9Ci5tbDc1e21hcmdpbi1sZWZ0Ojc1cHghaW1wb3J0YW50fQoubWw4MHttYXJnaW4tbGVmdDo4MHB4IWltcG9ydGFudH0KLm1sODV7bWFyZ2luLWxlZnQ6ODVweCFpbXBvcnRhbnR9Ci5tbDkwe21hcmdpbi1sZWZ0OjkwcHghaW1wb3J0YW50fQoubWw5NXttYXJnaW4tbGVmdDo5NXB4IWltcG9ydGFudH0KLm1sMTAwe21hcmdpbi1sZWZ0OjEwMHB4IWltcG9ydGFudH0KLm1sMTEwe21hcmdpbi1sZWZ0OjExMHB4IWltcG9ydGFudH0KLm1sMTIwe21hcmdpbi1sZWZ0OjEyMHB4IWltcG9ydGFudH0KLm1sMTMwe21hcmdpbi1sZWZ0OjEzMHB4IWltcG9ydGFudH0KLm1sMTQwe21hcmdpbi1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLm1sMTUwe21hcmdpbi1sZWZ0OjE1MHB4IWltcG9ydGFudH0KLm1sMTYwe21hcmdpbi1sZWZ0OjE2MHB4IWltcG9ydGFudH0KLm1sMTcwe21hcmdpbi1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLm1sMTgwe21hcmdpbi1sZWZ0OjE4MHB4IWltcG9ydGFudH0KLm1sMTkwe21hcmdpbi1sZWZ0OjE5MHB4IWltcG9ydGFudH0KLm1sMjAwe21hcmdpbi1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLm1yLTUwe21hcmdpbi1yaWdodDotNTBweCFpbXBvcnRhbnR9Ci5tci00MHttYXJnaW4tcmlnaHQ6LTQwcHghaW1wb3J0YW50fQoubXItMzB7bWFyZ2luLXJpZ2h0Oi0zMHB4IWltcG9ydGFudH0KLm1yLTI1e21hcmdpbi1yaWdodDotMjVweCFpbXBvcnRhbnR9Ci5tci0yMHttYXJnaW4tcmlnaHQ6LTIwcHghaW1wb3J0YW50fQoubXItMTV7bWFyZ2luLXJpZ2h0Oi0xNXB4IWltcG9ydGFudH0KLm1yLTEwe21hcmdpbi1yaWdodDotMTBweCFpbXBvcnRhbnR9Ci5tci05e21hcmdpbi1yaWdodDotOXB4IWltcG9ydGFudH0KLm1yLTh7bWFyZ2luLXJpZ2h0Oi04cHghaW1wb3J0YW50fQoubXItN3ttYXJnaW4tcmlnaHQ6LTdweCFpbXBvcnRhbnR9Ci5tci02e21hcmdpbi1yaWdodDotNnB4IWltcG9ydGFudH0KLm1yLTV7bWFyZ2luLXJpZ2h0Oi01cHghaW1wb3J0YW50fQoubXItNHttYXJnaW4tcmlnaHQ6LTRweCFpbXBvcnRhbnR9Ci5tci0ze21hcmdpbi1yaWdodDotM3B4IWltcG9ydGFudH0KLm1yLTJ7bWFyZ2luLXJpZ2h0Oi0ycHghaW1wb3J0YW50fQoubXItMXttYXJnaW4tcmlnaHQ6LTFweCFpbXBvcnRhbnR9Ci5tcjB7bWFyZ2luLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5tcjF7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnR9Ci5tcjJ7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnR9Ci5tcjN7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5tcjR7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnR9Ci5tcjV7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnR9Ci5tcjZ7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5tcjd7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnR9Ci5tcjh7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnR9Ci5tcjl7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5tcjEwe21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudH0KLm1yMTF7bWFyZ2luLXJpZ2h0OjExcHghaW1wb3J0YW50fQoubXIxMnttYXJnaW4tcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5tcjEze21hcmdpbi1yaWdodDoxM3B4IWltcG9ydGFudH0KLm1yMTR7bWFyZ2luLXJpZ2h0OjE0cHghaW1wb3J0YW50fQoubXIxNXttYXJnaW4tcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5tcjE2e21hcmdpbi1yaWdodDoxNnB4IWltcG9ydGFudH0KLm1yMTd7bWFyZ2luLXJpZ2h0OjE3cHghaW1wb3J0YW50fQoubXIxOHttYXJnaW4tcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5tcjE5e21hcmdpbi1yaWdodDoxOXB4IWltcG9ydGFudH0KLm1yMjB7bWFyZ2luLXJpZ2h0OjIwcHghaW1wb3J0YW50fQoubXIyNXttYXJnaW4tcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5tcjMwe21hcmdpbi1yaWdodDozMHB4IWltcG9ydGFudH0KLm1yMzV7bWFyZ2luLXJpZ2h0OjM1cHghaW1wb3J0YW50fQoubXI0MHttYXJnaW4tcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5tcjQ1e21hcmdpbi1yaWdodDo0NXB4IWltcG9ydGFudH0KLm1yNTB7bWFyZ2luLXJpZ2h0OjUwcHghaW1wb3J0YW50fQoubXI1NXttYXJnaW4tcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5tcjYwe21hcmdpbi1yaWdodDo2MHB4IWltcG9ydGFudH0KLm1yNjV7bWFyZ2luLXJpZ2h0OjY1cHghaW1wb3J0YW50fQoubXI3MHttYXJnaW4tcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5tcjc1e21hcmdpbi1yaWdodDo3NXB4IWltcG9ydGFudH0KLm1yODB7bWFyZ2luLXJpZ2h0OjgwcHghaW1wb3J0YW50fQoubXI4NXttYXJnaW4tcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5tcjkwe21hcmdpbi1yaWdodDo5MHB4IWltcG9ydGFudH0KLm1yOTV7bWFyZ2luLXJpZ2h0Ojk1cHghaW1wb3J0YW50fQoubXIxMDB7bWFyZ2luLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLm1yMTEwe21hcmdpbi1yaWdodDoxMTBweCFpbXBvcnRhbnR9Ci5tcjEyMHttYXJnaW4tcmlnaHQ6MTIwcHghaW1wb3J0YW50fQoubXIxMzB7bWFyZ2luLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLm1yMTQwe21hcmdpbi1yaWdodDoxNDBweCFpbXBvcnRhbnR9Ci5tcjE1MHttYXJnaW4tcmlnaHQ6MTUwcHghaW1wb3J0YW50fQoubXIxNjB7bWFyZ2luLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLm1yMTcwe21hcmdpbi1yaWdodDoxNzBweCFpbXBvcnRhbnR9Ci5tcjE4MHttYXJnaW4tcmlnaHQ6MTgwcHghaW1wb3J0YW50fQoubXIxOTB7bWFyZ2luLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLm1yMjAwe21hcmdpbi1yaWdodDoyMDBweCFpbXBvcnRhbnR9Ci5tdC01MHttYXJnaW4tdG9wOi01MHB4IWltcG9ydGFudH0KLm10LTQwe21hcmdpbi10b3A6LTQwcHghaW1wb3J0YW50fQoubXQtMzB7bWFyZ2luLXRvcDotMzBweCFpbXBvcnRhbnR9Ci5tdC0yNXttYXJnaW4tdG9wOi0yNXB4IWltcG9ydGFudH0KLm10LTIwe21hcmdpbi10b3A6LTIwcHghaW1wb3J0YW50fQoubXQtMTV7bWFyZ2luLXRvcDotMTVweCFpbXBvcnRhbnR9Ci5tdC0xMHttYXJnaW4tdG9wOi0xMHB4IWltcG9ydGFudH0KLm10LTl7bWFyZ2luLXRvcDotOXB4IWltcG9ydGFudH0KLm10LTh7bWFyZ2luLXRvcDotOHB4IWltcG9ydGFudH0KLm10LTd7bWFyZ2luLXRvcDotN3B4IWltcG9ydGFudH0KLm10LTZ7bWFyZ2luLXRvcDotNnB4IWltcG9ydGFudH0KLm10LTV7bWFyZ2luLXRvcDotNXB4IWltcG9ydGFudH0KLm10LTR7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudH0KLm10LTN7bWFyZ2luLXRvcDotM3B4IWltcG9ydGFudH0KLm10LTJ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudH0KLm10LTF7bWFyZ2luLXRvcDotMXB4IWltcG9ydGFudH0KLm10MHttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnR9Ci5tdDF7bWFyZ2luLXRvcDoxcHghaW1wb3J0YW50fQoubXQye21hcmdpbi10b3A6MnB4IWltcG9ydGFudH0KLm10M3ttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnR9Ci5tdDR7bWFyZ2luLXRvcDo0cHghaW1wb3J0YW50fQoubXQ1e21hcmdpbi10b3A6NXB4IWltcG9ydGFudH0KLm10NnttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnR9Ci5tdDd7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50fQoubXQ4e21hcmdpbi10b3A6OHB4IWltcG9ydGFudH0KLm10OXttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnR9Ci5tdDEwe21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnR9Ci5tdDExe21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnR9Ci5tdDEye21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnR9Ci5tdDEze21hcmdpbi10b3A6MTNweCFpbXBvcnRhbnR9Ci5tdDE0e21hcmdpbi10b3A6MTRweCFpbXBvcnRhbnR9Ci5tdDE1e21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnR9Ci5tdDE2e21hcmdpbi10b3A6MTZweCFpbXBvcnRhbnR9Ci5tdDE3e21hcmdpbi10b3A6MTdweCFpbXBvcnRhbnR9Ci5tdDE4e21hcmdpbi10b3A6MThweCFpbXBvcnRhbnR9Ci5tdDE5e21hcmdpbi10b3A6MTlweCFpbXBvcnRhbnR9Ci5tdDIwe21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnR9Ci5tdDI1e21hcmdpbi10b3A6MjVweCFpbXBvcnRhbnR9Ci5tdDMwe21hcmdpbi10b3A6MzBweCFpbXBvcnRhbnR9Ci5tdDM1e21hcmdpbi10b3A6MzVweCFpbXBvcnRhbnR9Ci5tdDQwe21hcmdpbi10b3A6NDBweCFpbXBvcnRhbnR9Ci5tdDQ1e21hcmdpbi10b3A6NDVweCFpbXBvcnRhbnR9Ci5tdDUwe21hcmdpbi10b3A6NTBweCFpbXBvcnRhbnR9Ci5tdDU1e21hcmdpbi10b3A6NTVweCFpbXBvcnRhbnR9Ci5tdDYwe21hcmdpbi10b3A6NjBweCFpbXBvcnRhbnR9Ci5tdDY1e21hcmdpbi10b3A6NjVweCFpbXBvcnRhbnR9Ci5tdDcwe21hcmdpbi10b3A6NzBweCFpbXBvcnRhbnR9Ci5tdDc1e21hcmdpbi10b3A6NzVweCFpbXBvcnRhbnR9Ci5tdDgwe21hcmdpbi10b3A6ODBweCFpbXBvcnRhbnR9Ci5tdDg1e21hcmdpbi10b3A6ODVweCFpbXBvcnRhbnR9Ci5tdDkwe21hcmdpbi10b3A6OTBweCFpbXBvcnRhbnR9Ci5tdDk1e21hcmdpbi10b3A6OTVweCFpbXBvcnRhbnR9Ci5tdDEwMHttYXJnaW4tdG9wOjEwMHB4IWltcG9ydGFudH0KLm10MTEwe21hcmdpbi10b3A6MTEwcHghaW1wb3J0YW50fQoubXQxMjB7bWFyZ2luLXRvcDoxMjBweCFpbXBvcnRhbnR9Ci5tdDEzMHttYXJnaW4tdG9wOjEzMHB4IWltcG9ydGFudH0KLm10MTQwe21hcmdpbi10b3A6MTQwcHghaW1wb3J0YW50fQoubXQxNTB7bWFyZ2luLXRvcDoxNTBweCFpbXBvcnRhbnR9Ci5tdDE2MHttYXJnaW4tdG9wOjE2MHB4IWltcG9ydGFudH0KLm10MTcwe21hcmdpbi10b3A6MTcwcHghaW1wb3J0YW50fQoubXQxODB7bWFyZ2luLXRvcDoxODBweCFpbXBvcnRhbnR9Ci5tdDE5MHttYXJnaW4tdG9wOjE5MHB4IWltcG9ydGFudH0KLm10MjAwe21hcmdpbi10b3A6MjAwcHghaW1wb3J0YW50fQoubWItNTB7bWFyZ2luLWJvdHRvbTotNTBweCFpbXBvcnRhbnR9Ci5tYi00MHttYXJnaW4tYm90dG9tOi00MHB4IWltcG9ydGFudH0KLm1iLTMwe21hcmdpbi1ib3R0b206LTMwcHghaW1wb3J0YW50fQoubWItMjV7bWFyZ2luLWJvdHRvbTotMjVweCFpbXBvcnRhbnR9Ci5tYi0yMHttYXJnaW4tYm90dG9tOi0yMHB4IWltcG9ydGFudH0KLm1iLTE1e21hcmdpbi1ib3R0b206LTE1cHghaW1wb3J0YW50fQoubWItMTB7bWFyZ2luLWJvdHRvbTotMTBweCFpbXBvcnRhbnR9Ci5tYi05e21hcmdpbi1ib3R0b206LTlweCFpbXBvcnRhbnR9Ci5tYi04e21hcmdpbi1ib3R0b206LThweCFpbXBvcnRhbnR9Ci5tYi03e21hcmdpbi1ib3R0b206LTdweCFpbXBvcnRhbnR9Ci5tYi02e21hcmdpbi1ib3R0b206LTZweCFpbXBvcnRhbnR9Ci5tYi01e21hcmdpbi1ib3R0b206LTVweCFpbXBvcnRhbnR9Ci5tYi00e21hcmdpbi1ib3R0b206LTRweCFpbXBvcnRhbnR9Ci5tYi0ze21hcmdpbi1ib3R0b206LTNweCFpbXBvcnRhbnR9Ci5tYi0ye21hcmdpbi1ib3R0b206LTJweCFpbXBvcnRhbnR9Ci5tYi0xe21hcmdpbi1ib3R0b206LTFweCFpbXBvcnRhbnR9Ci5tYjB7bWFyZ2luLWJvdHRvbTowcHghaW1wb3J0YW50fQoubWIxe21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudH0KLm1iMnttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnR9Ci5tYjN7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50fQoubWI0e21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudH0KLm1iNXttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnR9Ci5tYjZ7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50fQoubWI3e21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudH0KLm1iOHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnR9Ci5tYjl7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50fQoubWIxMHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50fQoubWIxMXttYXJnaW4tYm90dG9tOjExcHghaW1wb3J0YW50fQoubWIxMnttYXJnaW4tYm90dG9tOjEycHghaW1wb3J0YW50fQoubWIxM3ttYXJnaW4tYm90dG9tOjEzcHghaW1wb3J0YW50fQoubWIxNHttYXJnaW4tYm90dG9tOjE0cHghaW1wb3J0YW50fQoubWIxNXttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50fQoubWIxNnttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50fQoubWIxN3ttYXJnaW4tYm90dG9tOjE3cHghaW1wb3J0YW50fQoubWIxOHttYXJnaW4tYm90dG9tOjE4cHghaW1wb3J0YW50fQoubWIxOXttYXJnaW4tYm90dG9tOjE5cHghaW1wb3J0YW50fQoubWIyMHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50fQoubWIyNXttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50fQoubWIzMHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50fQoubWIzNXttYXJnaW4tYm90dG9tOjM1cHghaW1wb3J0YW50fQoubWI0MHttYXJnaW4tYm90dG9tOjQwcHghaW1wb3J0YW50fQoubWI0NXttYXJnaW4tYm90dG9tOjQ1cHghaW1wb3J0YW50fQoubWI1MHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50fQoubWI1NXttYXJnaW4tYm90dG9tOjU1cHghaW1wb3J0YW50fQoubWI2MHttYXJnaW4tYm90dG9tOjYwcHghaW1wb3J0YW50fQoubWI2NXttYXJnaW4tYm90dG9tOjY1cHghaW1wb3J0YW50fQoubWI3MHttYXJnaW4tYm90dG9tOjcwcHghaW1wb3J0YW50fQoubWI3NXttYXJnaW4tYm90dG9tOjc1cHghaW1wb3J0YW50fQoubWI4MHttYXJnaW4tYm90dG9tOjgwcHghaW1wb3J0YW50fQoubWI4NXttYXJnaW4tYm90dG9tOjg1cHghaW1wb3J0YW50fQoubWI5MHttYXJnaW4tYm90dG9tOjkwcHghaW1wb3J0YW50fQoubWI5NXttYXJnaW4tYm90dG9tOjk1cHghaW1wb3J0YW50fQoubWIxMDB7bWFyZ2luLWJvdHRvbToxMDBweCFpbXBvcnRhbnR9Ci5tYjExMHttYXJnaW4tYm90dG9tOjExMHB4IWltcG9ydGFudH0KLm1iMTIwe21hcmdpbi1ib3R0b206MTIwcHghaW1wb3J0YW50fQoubWIxMzB7bWFyZ2luLWJvdHRvbToxMzBweCFpbXBvcnRhbnR9Ci5tYjE0MHttYXJnaW4tYm90dG9tOjE0MHB4IWltcG9ydGFudH0KLm1iMTUwe21hcmdpbi1ib3R0b206MTUwcHghaW1wb3J0YW50fQoubWIxNjB7bWFyZ2luLWJvdHRvbToxNjBweCFpbXBvcnRhbnR9Ci5tYjE3MHttYXJnaW4tYm90dG9tOjE3MHB4IWltcG9ydGFudH0KLm1iMTgwe21hcmdpbi1ib3R0b206MTgwcHghaW1wb3J0YW50fQoubWIxOTB7bWFyZ2luLWJvdHRvbToxOTBweCFpbXBvcnRhbnR9Ci5tYjIwMHttYXJnaW4tYm90dG9tOjIwMHB4IWltcG9ydGFudH0KLnppMXt6LWluZGV4OjF9Ci56aTJ7ei1pbmRleDoyfQouemkze3otaW5kZXg6M30KLnppNHt6LWluZGV4OjR9Ci56aTV7ei1pbmRleDo1fQouemk2e3otaW5kZXg6Nn0KLnppN3t6LWluZGV4Ojd9Ci56aTh7ei1pbmRleDo4fQouemk5e3otaW5kZXg6OX0KLnppMTB7ei1pbmRleDoxMH0KLnppMTF7ei1pbmRleDoxMX0KLnppMTJ7ei1pbmRleDoxMn0KLnppMTN7ei1pbmRleDoxM30KLnppMTR7ei1pbmRleDoxNH0KLnppMTV7ei1pbmRleDoxNX0KLnppMTZ7ei1pbmRleDoxNn0KLnppMTd7ei1pbmRleDoxN30KLnppMTh7ei1pbmRleDoxOH0KLnppMTl7ei1pbmRleDoxOX0KLnppMjB7ei1pbmRleDoyMH0KLmZzNDB7Zm9udC1zaXplOjQwJSFpbXBvcnRhbnR9Ci5mczQ1e2ZvbnQtc2l6ZTo0NSUhaW1wb3J0YW50fQouZnM1MHtmb250LXNpemU6NTAlIWltcG9ydGFudH0KLmZzNTV7Zm9udC1zaXplOjU1JSFpbXBvcnRhbnR9Ci5mczYwe2ZvbnQtc2l6ZTo2MCUhaW1wb3J0YW50fQouZnM2NXtmb250LXNpemU6NjUlIWltcG9ydGFudH0KLmZzNzB7Zm9udC1zaXplOjcwJSFpbXBvcnRhbnR9Ci5mczc1e2ZvbnQtc2l6ZTo3NSUhaW1wb3J0YW50fQouZnM4MHtmb250LXNpemU6ODAlIWltcG9ydGFudH0KLmZzODV7Zm9udC1zaXplOjg1JSFpbXBvcnRhbnR9Ci5mczkwe2ZvbnQtc2l6ZTo5MCUhaW1wb3J0YW50fQouZnM5NXtmb250LXNpemU6OTUlIWltcG9ydGFudH0KLmZzMTAwe2ZvbnQtc2l6ZToxMDAlIWltcG9ydGFudH0KLmZzMTA1e2ZvbnQtc2l6ZToxMDUlIWltcG9ydGFudH0KLmZzMTEwe2ZvbnQtc2l6ZToxMTAlIWltcG9ydGFudH0KLmZzMTE1e2ZvbnQtc2l6ZToxMTUlIWltcG9ydGFudH0KLmZzMTIwe2ZvbnQtc2l6ZToxMjAlIWltcG9ydGFudH0KLmZzMTI1e2ZvbnQtc2l6ZToxMjUlIWltcG9ydGFudH0KLmZzMTMwe2ZvbnQtc2l6ZToxMzAlIWltcG9ydGFudH0KLmZzMTQwe2ZvbnQtc2l6ZToxNDAlIWltcG9ydGFudH0KLmZzMTUwe2ZvbnQtc2l6ZToxNTAlIWltcG9ydGFudH0KLmZzMTYwe2ZvbnQtc2l6ZToxNjAlIWltcG9ydGFudH0KLmZzMTcwe2ZvbnQtc2l6ZToxNzAlIWltcG9ydGFudH0KLmZzMTgwe2ZvbnQtc2l6ZToxODAlIWltcG9ydGFudH0KLmZzMTkwe2ZvbnQtc2l6ZToxOTAlIWltcG9ydGFudH0KLmZzMjAwe2ZvbnQtc2l6ZToyMDAlIWltcG9ydGFudH0KLmZzMjEwe2ZvbnQtc2l6ZToyMTAlIWltcG9ydGFudH0KLmZzMjIwe2ZvbnQtc2l6ZToyMjAlIWltcG9ydGFudH0KLmZzMjMwe2ZvbnQtc2l6ZToyMzAlIWltcG9ydGFudH0KLmZzMjQwe2ZvbnQtc2l6ZToyNDAlIWltcG9ydGFudH0KLmZzMjUwe2ZvbnQtc2l6ZToyNTAlIWltcG9ydGFudH0KLmZzMjYwe2ZvbnQtc2l6ZToyNjAlIWltcG9ydGFudH0KLmZzMjgwe2ZvbnQtc2l6ZToyODAlIWltcG9ydGFudH0KLmZzMzAwe2ZvbnQtc2l6ZTozMDAlIWltcG9ydGFudH0KLmZzMzIwe2ZvbnQtc2l6ZTozMjAlIWltcG9ydGFudH0KLmZzMzQwe2ZvbnQtc2l6ZTozNDAlIWltcG9ydGFudH0KLmZzMzYwe2ZvbnQtc2l6ZTozNjAlIWltcG9ydGFudH0KLmZzMzgwe2ZvbnQtc2l6ZTozODAlIWltcG9ydGFudH0KLmZzNDAwe2ZvbnQtc2l6ZTo0MDAlIWltcG9ydGFudH0KLmxoNzB7bGluZS1oZWlnaHQ6MC43ZW19Ci5saDc1e2xpbmUtaGVpZ2h0OjAuNzVlbX0KLmxoODB7bGluZS1oZWlnaHQ6MC44ZW19Ci5saDg1e2xpbmUtaGVpZ2h0OjAuODVlbX0KLmxoOTB7bGluZS1oZWlnaHQ6MC45ZW19Ci5saDk1e2xpbmUtaGVpZ2h0OjAuOTVlbX0KLmxoMTAwe2xpbmUtaGVpZ2h0OjFlbX0KLmxoMTA1e2xpbmUtaGVpZ2h0OjEuMDVlbX0KLmxoMTEwe2xpbmUtaGVpZ2h0OjEuMWVtfQoubGgxMTV7bGluZS1oZWlnaHQ6MS4xNWVtfQoubGgxMjB7bGluZS1oZWlnaHQ6MS4yZW19Ci5saDEyNXtsaW5lLWhlaWdodDoxLjI1ZW19Ci5saDEzMHtsaW5lLWhlaWdodDoxLjNlbX0KLmxoMTQwe2xpbmUtaGVpZ2h0OjEuNGVtfQoubGgxNTB7bGluZS1oZWlnaHQ6MS41ZW19Ci5saDE2MHtsaW5lLWhlaWdodDoxLjZlbX0KLmxoMTcwe2xpbmUtaGVpZ2h0OjEuN2VtfQoubGgxODB7bGluZS1oZWlnaHQ6MS44ZW19Ci5saDE5MHtsaW5lLWhlaWdodDoxLjllbX0KLmxoMjAwe2xpbmUtaGVpZ2h0OjJlbX0KLmxoMjIwe2xpbmUtaGVpZ2h0OjIuMmVtfQoubGgyNDB7bGluZS1oZWlnaHQ6Mi40ZW19Ci5saDI1MHtsaW5lLWhlaWdodDoyLjVlbX0KLmxoMjYwe2xpbmUtaGVpZ2h0OjIuNmVtfQoubGgyODB7bGluZS1oZWlnaHQ6Mi44ZW19Ci5saDMwMHtsaW5lLWhlaWdodDozZW19Ci5zbWFsbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMzdlbX0KLmJvbGR7Zm9udC13ZWlnaHQ6Ym9sZH0KLmJvbGRlcntmb250LXdlaWdodDpib2xkZXJ9Ci5mdzIwMHtmb250LXdlaWdodDoyMDB9Ci5mdzMwMHtmb250LXdlaWdodDozMDB9Ci5mdzQwMHtmb250LXdlaWdodDo0MDB9Ci5mdzUwMHtmb250LXdlaWdodDo1MDB9Ci5mdzYwMHtmb250LXdlaWdodDo2MDB9Ci50ZG57dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fQoudGRse3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fQouZmlsdGVyLW5vbWF0Y2h7ZGlzcGxheTpub25lIWltcG9ydGFudH0KLm53e3doaXRlLXNwYWNlOm5vd3JhcH0KLmVsbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30KLndiYXt3b3JkLWJyZWFrOmJyZWFrLWFsbH0KLnZhdHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fQoudmFie3ZlcnRpY2FsLWFsaWduOmJvdHRvbSFpbXBvcnRhbnR9Ci52YWx7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fQoudmFte3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9Ci50YWN7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fQoudGFye3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fQoudGFse3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9Ci5iYnN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJ0c3tib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmJke2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnRke2JvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmFze2JvcmRlcjoxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJhZHtib3JkZXI6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnIye2JvcmRlci1yYWRpdXM6MnB4IWltcG9ydGFudH0KLmJyNHtib3JkZXItcmFkaXVzOjRweCFpbXBvcnRhbnR9Ci5icjZ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50fQouYnI4e2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudH0KLmJyMTB7Ym9yZGVyLXJhZGl1czoxMHB4IWltcG9ydGFudH0KLmJyMTAwe2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50fQouYjF7Ym9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnR9Ci5iMntib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudH0KLmIze2JvcmRlci13aWR0aDozcHghaW1wb3J0YW50fQouYjR7Ym9yZGVyLXdpZHRoOjRweCFpbXBvcnRhbnR9Ci5iNXtib3JkZXItd2lkdGg6NXB4IWltcG9ydGFudH0KQGtleWZyYW1lcyByb3RhdGUzNjB7ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDBkZWcpfQp0b3t0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDM2MGRlZyl9fQouYXJvdDA1c3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjAuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0KLmFyb3Qxc3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9Ci5hcm90MnN7YW5pbWF0aW9uLW5hbWU6cm90YXRlMzYwO2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyfQpkaXYubXktbW9kYWwtc2NyZWVue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMiwgNTAsIDkwLCAwLjg4KTtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjE5OTc7dG9wOjA7bGVmdDowfQpkaXYubXktbW9kYWx7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxOTk4O2JveC1zaGFkb3c6MCAwIDY5cHggMTBweCByZ2JhKDI4LCAzMiwgMzgsIDAuNSk7cGFkZGluZzozMHB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHh9CmRpdi5teS1tb2RhbC5teS1tb2RhbC1sb2FkaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pL2xvYWRlci1iYXIyLmdpZicpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3B9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZXtmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLCAiU2Vnb2UgVUkiLCBBcmlhbCwgc2Fucztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTlwdDtyaWdodDotOHB0O2ZvbnQtc2l6ZToyMHB0O2xpbmUtaGVpZ2h0OjEzcHQ7bWFyZ2luOjA7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHQgNnB0IDhwdCA2cHQ7Y29sb3I6IzJkNjZiODtib3JkZXItcmFkaXVzOjIwcHQ7YmFja2dyb3VuZDojZTVmM2ZmO3RyYW5zaXRpb246Y29sb3IgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjE5OTl9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZTpob3Zlcntjb2xvcjojMTJhNWRjfQpkaXYubXktbW9kYWwubXktbW9kYWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE5OTg7Ym94LXNoYWRvdzowIDAgMTFweCA2cHggcmdiYSgyOCwgMzIsIDM4LCAwLjA4KSwgMCAwIDZweCByZ2JhKDI4LCAzMiwgMzgsIDAuMTUpO3BhZGRpbmc6MTBweCAxNXB4IDEzcHggMTVweDtib3JkZXItcmFkaXVzOjNweH0KZGl2Lm15LW1vZGFsLm15LW1vZGFsLW92ZXJsYXkgPiAubXktbW9kYWwtY2xvc2V7dG9wOi0wLjJwdDtyaWdodDotMC4ycHQ7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MnB0IDNwdCAzcHQgM3B0fQpkaXYubXktbW9kYWwgPiAubXktbW9kYWwtbm9zZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyOCwgMzIsIDM4LCAwLjE1KTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTt0b3A6MDtsZWZ0OjB9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnQ6YmVmb3JlLCBkaXYubXktbW9kYWwubm9zZS1yaWdodDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLXRvcDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjgsIDMyLCAzOCwgMC4xNSk7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnR7bWFyZ2luLWxlZnQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS1yaWdodHttYXJnaW4tcmlnaHQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS10b3B7bWFyZ2luLXRvcDo3cHh9CmRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbXttYXJnaW4tYm90dG9tOjdweH0KZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmV7bGVmdDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9CmRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZXtyaWdodDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS10b3A6YmVmb3Jle2xlZnQ6NTAlO3RvcDotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS1ib3R0b206YmVmb3Jle2xlZnQ6NTAlO2JvdHRvbTotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfQoubXktdGFnc3twb3NpdGlvbjpyZWxhdGl2ZX0KLm15LXRhZ3MgLnRhZ3twYWRkaW5nOjAuMTVlbSAwLjM1ZW0gMC4yMmVtIDAuMzVlbTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Ci5teS10YWdzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojMjM0ZjhmO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzNCwgMTE0LCAxMzQsIDAuMzUpO2NvbG9yOiNkNjJjNDl9Ci5teS10YWdzIC50YWcuYWN0aXZlOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5zZWxlY3QyLWNvbnRhaW5lcnttYXJnaW46MDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Ci5zZWxlY3QyLWNvbnRhaW5lciwgLnNlbGVjdDItZHJvcCwgLnNlbGVjdDItc2VhcmNoLCAuc2VsZWN0Mi1zZWFyY2ggaW5wdXR7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDAgMCAwLjRlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoyZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZXtib3JkZXItYm90dG9tLWNvbG9yOiNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItYWxsb3djbGVhciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDo0MnB4fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlID4gLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Zsb2F0Om5vbmU7d2lkdGg6YXV0bztsaW5lLWhlaWdodDoxLjllbTtjb2xvcjojNGQ1YTZhfQpodG1sW2Rpcj0icnRsIl0gLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSA+IC5zZWxlY3QyLWNob3NlbnttYXJnaW4tbGVmdDoyNnB4O21hcmdpbi1yaWdodDowfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnJ7ZGlzcGxheTpub25lO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjRweDt0b3A6OHB4O2ZvbnQtc2l6ZToxcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCB0b3A7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1hbGxvd2NsZWFyIC5zZWxlY3QyLWNob2ljZSBhYmJye2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnI6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtMTFweDtjdXJzb3I6cG9pbnRlcn0KLnNlbGVjdDItZHJvcC1tYXNre2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7bWluLWhlaWdodDoxMDAlO21pbi13aWR0aDoxMDAlO2hlaWdodDphdXRvO3dpZHRoOmF1dG87b3BhY2l0eTowO3otaW5kZXg6Mjk5NztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCl9Ci5zZWxlY3QyLWRyb3B7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi0xcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyOTk4O3RvcDoxMDAlO2ZvbnQtc2l6ZTowLjhlbTtsaW5lLWhlaWdodDoxLjM1ZW07YmFja2dyb3VuZDojZmZmO2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci10b3A6MDtjb2xvcjojNGQ1YTZhO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9Ci5zZWxlY3QyLWRyb3AgbGl7bWFyZ2luLWxlZnQ6MH0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmV7bWFyZ2luLXRvcDoxcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMH0KLnNlbGVjdDItZHJvcC1hY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O2JvcmRlci10b3A6bm9uZX0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmUuc2VsZWN0Mi1kcm9wLWFjdGl2ZXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWVjZGY4fQouc2VsZWN0Mi1kcm9wLWF1dG8td2lkdGh7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDt3aWR0aDphdXRvfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3JkZXItbGVmdDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjAgMnB4IDJweCAwO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kOiNlM2U4ZWJ9Ci5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjowIDFweH0KLnNlbGVjdDItc2VhcmNoe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWluLWhlaWdodDoyNnB4O21hcmdpbjowO3BhZGRpbmc6NHB4IDRweCAwIDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI5OTk7d2hpdGUtc3BhY2U6bm93cmFwfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXR7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6NHB4IDIwcHggNHB4IDVweDttYXJnaW46MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIycHh9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dC5zZWxlY3QyLWFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmYgdXJsKCcuLi9pL3NwaW5uZXIuZ2lmJykgbm8tcmVwZWF0IDEwMCV9Ci5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlLCAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O291dGxpbmU6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLWRyb3Bkb3duLW9wZW4uc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZSwgLnNlbGVjdDItZHJvcGRvd24tb3Blbi5zZWxlY3QyLWRyb3AtYWJvdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudH0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnQ7ZmlsdGVyOm5vbmV9Ci5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXItbGVmdDpub25lIWltcG9ydGFudDtmaWx0ZXI6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOHB4IDFweH0KLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGV7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9Ci5zZWxlY3QyLXJlc3VsdHN7bWF4LWhlaWdodDoyNTBweDtwYWRkaW5nOjAgMCAwIDRweDttYXJnaW46NHB4IDRweCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Cmh0bWxbZGlyPSJydGwiXSAuc2VsZWN0Mi1yZXN1bHRze3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjo0cHggMCA0cHggNHB4fQouc2VsZWN0Mi1yZXN1bHRzIHVsLnNlbGVjdDItcmVzdWx0LXN1YnttYXJnaW46MDtwYWRkaW5nLWxlZnQ6MH0KLnNlbGVjdDItcmVzdWx0cyBsaXtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpsaXN0LWl0ZW07YmFja2dyb3VuZC1pbWFnZTpub25lfQouc2VsZWN0Mi1yZXN1bHRzIGxpLnNlbGVjdDItcmVzdWx0LXdpdGgtY2hpbGRyZW4gPiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZzoxcHggMHB4IDJweDttYXJnaW46MDtjdXJzb3I6cG9pbnRlcjttaW4taGVpZ2h0OjFlbTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0xIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MHB4fQouc2VsZWN0Mi1yZXN1bHRzLWRlcHQtMiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZy1sZWZ0OjEwcHh9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0zIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MjBweH0KLnNlbGVjdDItcmVzdWx0cy1kZXB0LTQgLnNlbGVjdDItcmVzdWx0LWxhYmVse3BhZGRpbmctbGVmdDozMHB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIGxpIGVte2JhY2tncm91bmQ6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KTtmb250LXN0eWxlOm5vcm1hbH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1oaWdobGlnaHRlZCBlbXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVkIHVse2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLW5vLXJlc3VsdHMsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VhcmNoaW5nLCAuc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWFqYXgtZXJyb3IsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VsZWN0aW9uLWxpbWl0e2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbTtwYWRkaW5nLWxlZnQ6NXB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWRpc2FibGVkLnNlbGVjdDItaGlnaGxpZ2h0ZWR7Y29sb3I6IzRkNWE2YTtiYWNrZ3JvdW5kOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7ZGlzcGxheTpsaXN0LWl0ZW07Y3Vyc29yOmRlZmF1bHR9Ci5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItZGlzYWJsZWR7YmFja2dyb3VuZDpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpO2Rpc3BsYXk6bGlzdC1pdGVtO2N1cnNvcjpkZWZhdWx0fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLXNlbGVjdGVke2Rpc3BsYXk6bm9uZX0KLnNlbGVjdDItbW9yZS1yZXN1bHRzLnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KSB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJX0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1hamF4LWVycm9ye2JhY2tncm91bmQ6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KX0KLnNlbGVjdDItbW9yZS1yZXN1bHRze2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbX0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1sZWZ0OjB9Ci5zZWxlY3QyLWNvbnRhaW5lci5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2UgYWJicntkaXNwbGF5Om5vbmV9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2Vze21pbi1oZWlnaHQ6MjZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjowO3BhZGRpbmc6MCAwIDJweCAwO2N1cnNvcjp0ZXh0O292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Ci5zZWxlY3QyLWxvY2tlZHtwYWRkaW5nOjNweCA1cHggM3B4IDVweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7b3V0bGluZTpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyBsaXtmbG9hdDpsZWZ0O2xpc3Qtc3R5bGU6bm9uZX0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxke21hcmdpbjowO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3dyYXB9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1maWVsZCBpbnB1dHtwYWRkaW5nOjNweCA2cHg7bWFyZ2luOjNweCAwO2ZvbnQtc2l6ZTowLjllbTtsaW5lLWhlaWdodDoxLjFlbTtvdXRsaW5lOm5vbmU7Ym9yZGVyOjAhaW1wb3J0YW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQhaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LCAubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0OmZvY3Vze2JvcmRlcjowIWltcG9ydGFudH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZiB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJSFpbXBvcnRhbnR9Ci5zZWxlY3QyLWRlZmF1bHR7Y29sb3I6I2I5YzBjYiFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpO2ZpbHRlcjpub25lO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtjb2xvcjojNGQ1YTZhO2JvcmRlcjpub25lO2xpbmUtaGVpZ2h0OjEuMWVtO2ZvbnQtc2l6ZTowLjllbTtwYWRkaW5nOjNweCA4cHggNHB4IDE2cHg7bWFyZ2luOjNweCAwIDBweCAzcHg7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOmRlZmF1bHQ7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlIC5zZWxlY3QyLWNob3NlbntjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1mb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxM3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt0b3A6NHB4O2ZvbnQtc2l6ZToxcHg7b3V0bGluZTpub25lO2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtsZWZ0OjNweH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZSAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTExcHh9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtZm9jdXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0xMXB4fQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkuc2VsZWN0Mi1jb250YWluZXItZGlzYWJsZWQgLnNlbGVjdDItY2hvaWNlc3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZXtwYWRkaW5nLWxlZnQ6NXB4O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSl9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpub25lfQouc2VsZWN0Mi1yZXN1bHQtc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaCwgLnNlbGVjdDItcmVzdWx0LXVuc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQouc2VsZWN0Mi1vZmZzY3JlZW4sIC5zZWxlY3QyLW9mZnNjcmVlbjpmb2N1c3tjbGlwOnJlY3QoMCAwIDAgMCkhaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O291dGxpbmU6MCFpbXBvcnRhbnQ7bGVmdDowcHghaW1wb3J0YW50O3RvcDowcHghaW1wb3J0YW50fQouc2VsZWN0Mi1kaXNwbGF5LW5vbmV7ZGlzcGxheTpub25lfQouc2VsZWN0Mi1tZWFzdXJlLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwMDAwcHg7bGVmdDotMTAwMDBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7b3ZlcmZsb3c6c2Nyb2xsfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXQsIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2UsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgYWJiciwgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvdyBie2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFBb0NBWUFBQUNpdTVuL0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBcDlKUkVGVWVOcnNtZHRMRzFFUXhqZWFwRjZLWXJXQ1Y3eTBVR3NGcVJTdkQwWGY5S0VQL1RNRjhRK1FncWlsU0d0b29RVXIzckRpTFdnYmE3eWdpZC9ndC9WNFdKbzFOZGFkT1BBankxbGR6cmN6NTV5WjJWQTZuWGJ5eVFxY1BMTzhFeHoyR2d5RlFvR1l2THNjT2Q4dXNBbldlYnNhMUlOWTJsaTNZU1dPYTZLNFNwQUFaNkFEUE9UOU9XMkNkOEZ2Q3V3WDU0TWlqcTFyWE1QaTFTbXdEeDVRYkJLOEIxdGFONjJvcFVldUkxcDM2VWRnQUpReWpCUDBjaDlvK0IrQ293eTFYRmtabjMvRU1KNmhjQm1yeW5nc3dacmRuZDhZS3dScjRDU0xDYjBDeFdBaVI0SlhPTmVmNEpCakh5aDIxWS9nQ3RCdWpmMnkvL2thNGRiQzZ4cXdrYVB6Mko3YkFmRzFodWVzQjZUQU5Eak4wcnZtOVkwdEkwazQvT0IzRGNkNGdJdk44Nnk3cnJVejQzR3RITHk4YzZrbGJaOUNuNEl2Ly9EOEJUc0MrYUpUTjZoRGpwOUI3akhmT05aS3BveDFuVEhUK3NwTTVTVExpWHkrSmNkMWdoZU1xQ1RuTzhJWElkblgySjlsNEZVUEI2VjRNRXhFRGZQTVBXTVVoZW54ZDlBWTE1WjR5Sms3eW1xcGtHSjM2ZG00MXRTeTNxaU94RXJzTEV1VDRDZmdMUVZMR0M4enRYd0RlalFLTG1Bb2I0Tng4c01JNzZ0WmlrMUFyZEVLNldLT1hkR21aWmYyMVFyU3RtbjVqdjE3d2ZlQ0ZWbFF1NVlSNTdKZmRXZzFLdFFKbG41em0zUFpNdHBqa2JLbU1hUjdXUm1kc2treHorN01hK2VpR2EvS3czVk1JYVZBbURSSzFpVXdCTHA1NzBpTGh4djVPMnZWNTNIVzdkSVpyZFFVMGhGMlNSSWU5L2I4NmdtUzRBUE90ODdqbnJ0K2p6VUpYdVN2ZkUyb05id3VyWjBXdnBEdFRBOEpXdkhRU3NFT1F6dkt1dGMxYWVCOStsdnhFTFJ6ZUpGQ24vRTRraDM1TzNVOEorS3RqNW9TangxaVc0cmgzVWJSTWNmanc0R21YRHJHakN2RkNIaWNEOFdEZkRCd1A0QW52ZjdnWElBQkFGdXF0WS9jUUs4aEFBQUFBRWxGVGtTdVFtQ0MpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9CkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjJkcHB4KSB7LnNlbGVjdDItc2VhcmNoIGlucHV0LCAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlLCAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnIsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQlFDQVlBQUFEU203R0pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQkRaSlJFRlVlTnJzbk05UEUwRVV4NmVDWWlEQmt6OFNERDlpd2dGamhFUTRlT3FkZjlSL2dJdnh3QmxpaWpFYVUxUzBFVUxrMUNaRlRXM3FHenBMbnN1ODdRN2IyYzRzMzIveTBxWHp1aVQ5N0p2OXZ0bnUxZ2FEZ1lLcXExdjRDZ0FZQW1Bb1ZFM2pLd2hMdFZvdDJkd3dyNDJNOUlzYzhsRU5BSTVMR3R3aSs3dVJsYU1QQ2dreXB1anc0UzZ5YWhaekNQSUdBTWNyRGprTk4zdktSeDhjNURsWWd0aWxtTE84MzVLbWFBQU8yMlRscWRSV2xzbkNGQjJ1TkxSV0ViZ0FIQWZrcmpEV0hkRkNBWEFram5wT0dKdXp1R3NBanJoZHNycHJxVDBDNERqaGRsMGhBM0E4Y0xYaGVpTVlMeXgwUks0V00xUjUzUFdsb2w2TFpqMGoxMVB6K2lFOUVFblBuNEJjdE1BVmM2UjJxV29YRzdTelhEUGIzekphakZnZ3E0eFdxTUVPWExGZGNsckpvb3JacHBmWm5Pbm50Tytka2l1NFRuSGZiSjlSN0VaWXdXT1Y2emw0MzFQdU9MVEE0Q3F6dlhEVFQ5NnVnSDlTbk9USU96RzVaZWsyeGJybC9YVXpCc0FPT3FEb1pZejNURTZaV2hWT0hiTm1ESUFkcEkzTFljYjRZY25taGhzcm05YVV2TndId0lKMEMzSnVNMWEyOXNTek5zZVVBOEE1VE5Ta2paV2tHMnU0aWdCT0c2NnlqWlVTak5VNGNpY20zZnFacUp0UUdYR1JrN1cvb2dzZEI2eUN5alpXeW5lZlBVSFZVK1p3Tnl2SC9LcHkxd2RnYnJpNkN2SUJkOVVDK1VxT0JIbmFzV0lrd3dYNWJ3TVR5SFdYMWc4L3VndndISndCc1VNeGIzbS9LVTNSQUJ3bVlPVlFxU0xjb2k0YThpc05yVmtFTGdESEFia2pqSFVFZHczQWtUbnFlV0ZzM293RGNFWGFKYXU3SHJYUUFjQnh3ZTI0UWdiZ2VPQnF3L1ZLTUY0aVpBQ09RMDFtcVBLNGF3Q09xRDFxV3R6eWxSeGZhOUdRUDhpMmJXdE9WaStNbGF5S0MxTTBBRU1BREFFd0JNQVFBRU1BREFFd0FFTUFEQUV3Qk1DUWIrRnFraWRaSGkraGIwUmZvVmltdUpjYWE2dmhNMFdPVk9yZTY2SVhnM0ExcVJ6QStzN0dUVFg2YVFNYXJyNUQ4eGlBNHdHOHJPejNKeWRmdk8xWlVQdW1vZ3NEeGhUdFZ3c3B1SnFXdmtuK0U4VXBPd0IwekRMWW02YWFqd3NmYUtoZ2J4V3NwK050TmkzM0tiNVN2RGZiWERNVXo5VHd3V1pUYkxyZUlUNDl1T2d3dGNMZzZpcjZvb2IzVVBjdHVYOG8zcHBwZVpBeVpXaVRBdFV5Mjg3ejdCSU45aDNGYjJFZkFCeVllQ3YwbWVKdmpzLzBFM05sMlFjQUJ5d1hzM1RHcG1rRndIRm9hbEwvR0lETDBTT0gzSWRDYnd6QWdhbk50cC9rWEhPWVVmOC83YjBOd09HS215WDlLTVhuSTc3dktaTnpWOWdIQUFjbWZ1RkFUN2xMRkM5TWxhWjFoMktMNGpHYm5yWFJPdUlQUHJ1T3NKTGxTUWFJWHFwOG1lcDFmMUg4VU1PbFNsMWdEOHkwUEdNNTkzNm4yTHY4OERWWUFiQmZ3TWxpaGV2RkJpdGtBQTRUY0ZMSmVTNFhEZ1RnRjVBQk9GekFTdVcvNEw5aHp0ZFhJQk9yUFFDdXhrR3hOUzdJY05GaGFzOU15Mmt0MFVHd2hRcXV6clF1VlhLYnVMMUdCVmUza25OZlpRTGdlQ0VEY01VZzgzWHBqemdIUTZqZ202Qi9BZ3dBU2Y5SmRHbEcwODBBQUFBQVNVVk9SSzVDWUlJPSkhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjYwcHggNDBweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIxcHghaW1wb3J0YW50fX0KLnVpLXNsaWRlcntib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50O2JhY2tncm91bmQ6d2hpdGU7Zm9udC1zaXplOjkwJTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnR9Ci51aS1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6MC40ZW19Ci51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtiYWNrZ3JvdW5kOiNlM2U4ZWI7Ym9yZGVyLXJhZGl1czozcHg7aGVpZ2h0OjEuMWVtO3dpZHRoOjEuMWVtO291dGxpbmU6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2N1cnNvcjpkZWZhdWx0fQoudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlcntiYWNrZ3JvdW5kOiNjYmU3ZmU7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4fQoudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouN2VtO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZXt0b3A6LTAuNGVtO21hcmdpbi1sZWZ0Oi0wLjU1ZW19Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdle3RvcDowO2hlaWdodDoxMDAlfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7cmlnaHQ6MH0KLnVpLXNsaWRlci12ZXJ0aWNhbHt3aWR0aDouNGVtO2hlaWdodDoxMDBweH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0wLjRlbTttYXJnaW4tbGVmdDowO21hcmdpbi1ib3R0b206LTAuNTVlbX0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdle2xlZnQ6MDt3aWR0aDoxMDAlfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWlue2JvdHRvbTowfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfQppbnB1dFt0eXBlPSJyYW5nZSJdIHtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czoxMDBweDtiYWNrZ3JvdW5kOndoaXRlO2ZvbnQtc2l6ZTo5MCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjAuNGVtfQppbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MDttYXJnaW4tbGVmdDowO3otaW5kZXg6MTtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7YmFja2dyb3VuZDojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDoxLjFlbTt3aWR0aDoxLjFlbX0KaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojYjdkYmZiO2JvcmRlcjoxcHggc29saWQgI2I3ZGJmYn0KLnVpLXdpZGdldHtmb250LXNpemU6OTAlfQpib2R5ID4gLnVpLWF1dG9jb21wbGV0ZXtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjNlbX0KLnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOndoaXRlO2NvbG9yOiM0ZDVhNmF9Ci51aS1zdGF0ZS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2JlN2ZlfQoudWktc3RhdGUtaGlnaGxpZ2h0e2JveC1zaGFkb3c6MCAwIDAgMXB4ICNkMGQ2ZGQgaW5zZXR9Ci51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApfQoudWktd2lkZ2V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Ci51aS1zdGF0ZS1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNjYmU3ZmV9Ci51aS1hdXRvY29tcGxldGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2N1cnNvcjpkZWZhdWx0O2JvcmRlci1jb2xvcjojOWVjZGY4O2JvcmRlci10b3A6bm9uZTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7ei1pbmRleDo5OTk5fQoudWktbWVudXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2Rpc3BsYXk6YmxvY2s7b3V0bGluZTpub25lfQoudWktbWVudSAudWktbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDtwYWRkaW5nOjNweCAxZW0gM3B4IC40ZW07Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDowO2xpc3Qtc3R5bGUtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTciKX0KLnVpLXRvb2x0aXB7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk5O21heC13aWR0aDozMDBweDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDVweCAjYWFhO2JveC1zaGFkb3c6MCAwIDVweCAjYWFhfQoudWktdG9vbHRpcHtwYWRkaW5nOjhweCAxMnB4IDlweCAxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTk5OTk7bWF4LXdpZHRoOjI1MHB4O21pbi13aWR0aDoyMDBweDtib3gtc2hhZG93OjJweCAycHggMHB4IHJnYmEoMjgsIDMyLCAzOCwgMC4wOCk7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Zm9udC1zaXplOjkwJTtsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNmI5ZmRiO2hlaWdodDphdXRvfQoudWktdG9vbHRpcDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi03cHg7dG9wOjEwcHg7d2lkdGg6MTFweDtoZWlnaHQ6MTFweDtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt6LWluZGV4OjU5OTk4fQouQ29kZU1pcnJvcntmb250OjEzcHggQ291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7aGVpZ2h0OmF1dG99Ci5Db2RlTWlycm9yLXNjcm9sbHtvdmVyZmxvdzphdXRvfQouQ29kZU1pcnJvci1saW5lc3twYWRkaW5nOjRweCAwfQouQ29kZU1pcnJvciBwcmV7cGFkZGluZzowIDRweH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlciwgLkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlcntiYWNrZ3JvdW5kLWNvbG9yOndoaXRlfQouQ29kZU1pcnJvci1ndXR0ZXJze2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7d2hpdGUtc3BhY2U6bm93cmFwfQouQ29kZU1pcnJvci1saW5lbnVtYmVye3BhZGRpbmc6MCAzcHggMCA1cHg7bWluLXdpZHRoOjIwcHg7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjojOTk5O3doaXRlLXNwYWNlOm5vd3JhcH0KLkNvZGVNaXJyb3IgZGl2LkNvZGVNaXJyb3ItY3Vyc29ye2JvcmRlci1sZWZ0OjFweCBzb2xpZCBibGFjazt6LWluZGV4OjN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLXNlY29uZGFyeWN1cnNvcntib3JkZXItbGVmdDoxcHggc29saWQgc2lsdmVyfQouQ29kZU1pcnJvci5jbS1rZXltYXAtZmF0LWN1cnNvciBkaXYuQ29kZU1pcnJvci1jdXJzb3J7d2lkdGg6YXV0bztib3JkZXI6MDtiYWNrZ3JvdW5kOiM3ZTc7ei1pbmRleDoxfQouY20tdGFie2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouY20tcy1kZWZhdWx0IC5jbS1rZXl3b3Jke2NvbG9yOiM3MjM1OTR9Ci5jbS1zLWRlZmF1bHQgLmNtLWF0b217Y29sb3I6I2ZmNGQwMX0KLmNtLXMtZGVmYXVsdCAuY20tbnVtYmVye2NvbG9yOiM2NTljMTN9Ci5jbS1zLWRlZmF1bHQgLmNtLWRlZntjb2xvcjojYzMwYzNifQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZXtjb2xvcjojMzNiZmFkfQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZS0ye2NvbG9yOiMwMDU1YWF9Ci5jbS1zLWRlZmF1bHQgLmNtLXZhcmlhYmxlLTN7Y29sb3I6IzAwODg1NX0KLmNtLXMtZGVmYXVsdCAuY20tcHJvcGVydHl7Y29sb3I6IzQzNGU1ZH0KLmNtLXMtZGVmYXVsdCAuY20tb3BlcmF0b3J7Y29sb3I6IzM2MzYzNn0KLmNtLXMtZGVmYXVsdCAuY20tY29tbWVudHtjb2xvcjojNGFhYTAwfQouY20tcy1kZWZhdWx0IC5jbS1zdHJpbmd7Y29sb3I6IzQ4NWU3N30KLmNtLXMtZGVmYXVsdCAuY20tc3RyaW5nLTJ7Y29sb3I6I2ZmNTUwMH0KLmNtLXMtZGVmYXVsdCAuY20tbWV0YXtjb2xvcjojNTU1NTU1fQouY20tcy1kZWZhdWx0IC5jbS1xdWFsaWZpZXJ7Y29sb3I6IzU1NTU1NX0KLmNtLXMtZGVmYXVsdCAuY20tYnVpbHRpbntjb2xvcjojMzMwMGFhfQouY20tcy1kZWZhdWx0IC5jbS1icmFja2V0e2NvbG9yOiM5OTk5Nzd9Ci5jbS1zLWRlZmF1bHQgLmNtLXRhZ3tjb2xvcjojNzNhYzE5fQouY20tcy1kZWZhdWx0IC5jbS1hdHRyaWJ1dGV7Y29sb3I6IzAwNDdjY30KLmNtLXMtZGVmYXVsdCAuY20taGVhZGVye2NvbG9yOiNiNjAwMDB9Ci5jbS1zLWRlZmF1bHQgLmNtLXF1b3Rle2NvbG9yOiNmODM0Yzh9Ci5jbS1zLWRlZmF1bHQgLmNtLWhye2NvbG9yOiM5OTk5OTl9Ci5jbS1zLWRlZmF1bHQgLmNtLWxpbmt7Y29sb3I6IzU0ODFhMH0KLmNtLW5lZ2F0aXZle2NvbG9yOiNkZDQ0NDR9Ci5jbS1wb3NpdGl2ZXtjb2xvcjojMjI5OTIyfQouY20taGVhZGVyLCAuY20tc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGR9Ci5jbS1lbXtmb250LXN0eWxlOml0YWxpY30KLmNtLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0KLmNtLXN0cmlrZXRocm91Z2h7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmNtLXMtZGVmYXVsdCAuY20tZXJyb3J7Y29sb3I6I2Q2MmM0OX0KLmNtLWludmFsaWRjaGFye2NvbG9yOiNmZjAwMDB9CmRpdi5Db2RlTWlycm9yIHNwYW4uQ29kZU1pcnJvci1tYXRjaGluZ2JyYWNrZXR7Y29sb3I6IzAwZmYwMH0KZGl2LkNvZGVNaXJyb3Igc3Bhbi5Db2RlTWlycm9yLW5vbm1hdGNoaW5nYnJhY2tldHtjb2xvcjojZmYyMjIyfQouQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmR7YmFja2dyb3VuZDojZThmMmZmfQouQ29kZU1pcnJvcntsaW5lLWhlaWdodDoxLjMyZW07cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6d2hpdGU7Y29sb3I6IzMzM30KLkNvZGVNaXJyb3Itc2Nyb2xse21hcmdpbi1ib3R0b206LTMwcHg7bWFyZ2luLXJpZ2h0Oi0zMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7cGFkZGluZy1yaWdodDozMHB4O2hlaWdodDoxMDAlO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0KLkNvZGVNaXJyb3Itc2l6ZXJ7cG9zaXRpb246cmVsYXRpdmV9Ci5Db2RlTWlycm9yLXZzY3JvbGxiYXIsIC5Db2RlTWlycm9yLWhzY3JvbGxiYXIsIC5Db2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXIsIC5Db2RlTWlycm9yLWd1dHRlci1maWxsZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2O2Rpc3BsYXk6bm9uZX0KLkNvZGVNaXJyb3ItdnNjcm9sbGJhcntyaWdodDowO3RvcDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6c2Nyb2xsfQouQ29kZU1pcnJvci1oc2Nyb2xsYmFye2JvdHRvbTowO2xlZnQ6MDtvdmVyZmxvdy15OmhpZGRlbjtvdmVyZmxvdy14OnNjcm9sbH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlcntyaWdodDowO2JvdHRvbTowfQouQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVye2xlZnQ6MDtib3R0b206MH0KLkNvZGVNaXJyb3ItZ3V0dGVyc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cGFkZGluZy1ib3R0b206MzBweDt6LWluZGV4OjN9Ci5Db2RlTWlycm9yLWd1dHRlcnt3aGl0ZS1zcGFjZTpub3JtYWw7aGVpZ2h0OjEwMCU7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7cGFkZGluZy1ib3R0b206MzBweDttYXJnaW4tYm90dG9tOi0zMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyp6b29tOjE7KmRpc3BsYXk6aW5saW5lfQouQ29kZU1pcnJvci1ndXR0ZXItZWx0e3Bvc2l0aW9uOmFic29sdXRlO2N1cnNvcjpkZWZhdWx0O3otaW5kZXg6NH0KLkNvZGVNaXJyb3ItbGluZXN7Y3Vyc29yOnRleHQ7bGluZS1oZWlnaHQ6MS4zZW19Ci5Db2RlTWlycm9yIHByZXstbW96LWJvcmRlci1yYWRpdXM6MDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXdpZHRoOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O21hcmdpbjowO3doaXRlLXNwYWNlOnByZTt3b3JkLXdyYXA6bm9ybWFsO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt6LWluZGV4OjI7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6dmlzaWJsZX0KLkNvZGVNaXJyb3Itd3JhcCBwcmV7d29yZC13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpub3JtYWx9Ci5Db2RlTWlycm9yLWNvZGUgcHJle2JvcmRlci1yaWdodDozMHB4IHNvbGlkIHRyYW5zcGFyZW50O3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0KLkNvZGVNaXJyb3Itd3JhcCAuQ29kZU1pcnJvci1jb2RlIHByZXtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDphdXRvfQouQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDt6LWluZGV4OjB9Ci5Db2RlTWlycm9yLWxpbmV3aWRnZXR7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO292ZXJmbG93OmF1dG99Ci5Db2RlTWlycm9yLXdyYXAgLkNvZGVNaXJyb3Itc2Nyb2xse292ZXJmbG93LXg6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3Zpc2liaWxpdHk6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJlIHByZXtwb3NpdGlvbjpzdGF0aWN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDowfQouQ29kZU1pcnJvci1mb2N1c2VkIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OnZpc2libGV9Ci5Db2RlTWlycm9yLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q5ZDlkOX0KLkNvZGVNaXJyb3ItZm9jdXNlZCAuQ29kZU1pcnJvci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNkN2Q0ZjB9Ci5jbS1zZWFyY2hpbmd7YmFja2dyb3VuZDojZmZhO2JhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMCwgMC40KX0KQG1lZGlhIHByaW50ey5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OmhpZGRlbn19Ci5qY3JvcC1ob2xkZXJ7ZGlyZWN0aW9uOmx0cjt0ZXh0LWFsaWduOmxlZnR9Ci5qY3JvcC12bGluZSwgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I2ZmZmZmZjtmb250LXNpemU6MDtwb3NpdGlvbjphYnNvbHV0ZX0KLmpjcm9wLXZsaW5le2hlaWdodDoxMDAlO3dpZHRoOjFweCFpbXBvcnRhbnR9Ci5qY3JvcC12bGluZS5yaWdodHtyaWdodDowfQouamNyb3AtaGxpbmV7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MTAwJX0KLmpjcm9wLWhsaW5lLmJvdHRvbXtib3R0b206MH0KLmpjcm9wLXRyYWNrZXJ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfQouamNyb3AtaGFuZGxle2JhY2tncm91bmQtY29sb3I6IzM4NDE0Yztib3JkZXI6MXB4ICNlM2U4ZWIgc29saWQ7Zm9udC1zaXplOjFweDtoZWlnaHQ6N3B4O3dpZHRoOjdweH0KLmpjcm9wLWhhbmRsZS5vcmQtbntsZWZ0OjUwJTttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3tib3R0b206MDtsZWZ0OjUwJTttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWhhbmRsZS5vcmQtZXttYXJnaW4tcmlnaHQ6LTRweDttYXJnaW4tdG9wOi00cHg7cmlnaHQ6MDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC13e2xlZnQ6MDttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC1ud3tsZWZ0OjA7bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tdG9wOi00cHg7dG9wOjB9Ci5qY3JvcC1oYW5kbGUub3JkLW5le21hcmdpbi1yaWdodDotNHB4O21hcmdpbi10b3A6LTRweDtyaWdodDowO3RvcDowfQouamNyb3AtaGFuZGxlLm9yZC1zZXtib3R0b206MDttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3d7Ym90dG9tOjA7bGVmdDowO21hcmdpbi1ib3R0b206LTRweDttYXJnaW4tbGVmdDotNHB4fQouamNyb3AtZHJhZ2Jhci5vcmQtbiwgLmpjcm9wLWRyYWdiYXIub3JkLXN7aGVpZ2h0OjdweDt3aWR0aDoxMDAlfQouamNyb3AtZHJhZ2Jhci5vcmQtZSwgLmpjcm9wLWRyYWdiYXIub3JkLXd7aGVpZ2h0OjEwMCU7d2lkdGg6N3B4fQouamNyb3AtZHJhZ2Jhci5vcmQtbnttYXJnaW4tdG9wOi00cHh9Ci5qY3JvcC1kcmFnYmFyLm9yZC1ze2JvdHRvbTowO21hcmdpbi1ib3R0b206LTRweH0KLmpjcm9wLWRyYWdiYXIub3JkLWV7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWRyYWdiYXIub3JkLXd7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWxpZ2h0IC5qY3JvcC12bGluZSwgLmpjcm9wLWxpZ2h0IC5qY3JvcC1obGluZXtiYWNrZ3JvdW5kOiNmZmZmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApIWltcG9ydGFudDtvcGFjaXR5Oi43MCFpbXBvcnRhbnR9Ci5qY3JvcC1saWdodCAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLWNvbG9yOiNGRkY7Ym9yZGVyLXJhZGl1czozcHh9Ci5qY3JvcC1kYXJrIC5qY3JvcC12bGluZSwgLmpjcm9wLWRhcmsgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6IzAwMDtmaWx0ZXI6YWxwaGEob3BhY2l0eT03MCkhaW1wb3J0YW50O29wYWNpdHk6LjchaW1wb3J0YW50fQouamNyb3AtZGFyayAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czozcHh9Ci5zb2xpZC1saW5lIC5qY3JvcC12bGluZSwgLnNvbGlkLWxpbmUgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I0ZGRn0KLmpjcm9wLWhvbGRlciBpbWcsIGltZy5qY3JvcC1wcmV2aWV3e21heC13aWR0aDpub25lfQouamNyb3AtaG9sZGVyIGRpdntwb3NpdGlvbjpzdGF0aWN9Ci5qc29uZGlmZnBhdGNoLWRlbHRhe2ZvbnQtZmFtaWx5OkNvdXNpbmUsIHVpLW1vbm9zcGFjZSwgTW9uYWNvLCBNZXJsbywgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW07bWFyZ2luOjA7cGFkZGluZzowIDAgMCAxMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1kZWx0YSBwcmV7Zm9udC1mYW1pbHk6Q291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7Zm9udC1zaXplOjEycHg7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrfQp1bC5qc29uZGlmZnBhdGNoLWRlbHRhe2xpc3Qtc3R5bGUtdHlwZTpub25lO3BhZGRpbmc6MCAwIDAgMjBweDttYXJnaW46MH0KLmpzb25kaWZmcGF0Y2gtZGVsdGEgdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowIDAgMCAyMHB4O21hcmdpbjowfQouanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lLCAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC12YWx1ZSBwcmUsIC5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXJpZ2h0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtYWRkZWR7YmFja2dyb3VuZDojZTBmNWM2fQouanNvbmRpZmZwYXRjaC1kZWxldGVkIC5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWUsIC5qc29uZGlmZnBhdGNoLWRlbGV0ZWQgcHJlLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1sZWZ0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtZGVsZXRlZHtiYWNrZ3JvdW5kOiNmZWQzZDM7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb257Y29sb3I6IzZiNzY4NX0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXt0cmFuc2l0aW9uOmFsbCAwLjNzOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcztvdmVyZmxvdy15OmhpZGRlbn0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXNob3dpbmcgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtc2hvd2luZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkZGVuIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGRlbiAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRpbmcgLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUsIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRkZW4gLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTpibG9ja30KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXZpc2libGUgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtdmlzaWJsZSAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGluZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1zaG93aW5nIC5qc29uZGlmZnBhdGNoLWFycm93LCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLWFycm93e2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7dmVydGljYWwtYWxpZ246dG9wfQouanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzonfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtYXJyYXkgPiAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzpbJ30KLmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10sJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmJlZm9yZXtjb250ZW50OidbJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10nfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0ID4gLmpzb25kaWZmcGF0Y2gtcHJvcGVydHktbmFtZTphZnRlcntjb250ZW50Oic6eyd9Ci5qc29uZGlmZnBhdGNoLWNoaWxkLW5vZGUtdHlwZS1vYmplY3Q6YWZ0ZXJ7Y29udGVudDonfSwnfQpkaXYuanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0OmJlZm9yZXtjb250ZW50Oid7J30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLW9iamVjdDphZnRlcntjb250ZW50Oid9J30KLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6JywnfQpsaTpsYXN0LWNoaWxkID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVyLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCA+IC5qc29uZGlmZnBhdGNoLWxlZnQtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6Jyd9Ci5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1yaWdodC12YWx1ZXttYXJnaW4tbGVmdDo1cHh9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtbW92ZWQgLmpzb25kaWZmcGF0Y2gtbW92ZWQtZGVzdGluYXRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojZmZlZjkxO2NvbG9yOiM0ZDVhNmF9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLW1vdmVkLWRlc3RpbmF0aW9uOmJlZm9yZXtjb250ZW50OicgPT4gJ30KdWwuanNvbmRpZmZwYXRjaC10ZXh0ZGlmZntwYWRkaW5nOjB9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxvY2F0aW9ue2NvbG9yOiM4ODkyOWY7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjYwcHh9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmUtbnVtYmVyOmFmdGVye2NvbnRlbnQ6JywnfQouanNvbmRpZmZwYXRjaC1lcnJvcntiYWNrZ3JvdW5kOiNkNjJjNDk7Y29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6Ym9sZH0KQGZvbnQtZmFjZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7c3JjOnVybCgiZm91bmRhdGlvbi1pY29ucy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiZm91bmRhdGlvbi1pY29ucy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQouZmktYWRkcmVzcy1ib29rOmJlZm9yZSwgLmZpLWFsZXJ0OmJlZm9yZSwgLmZpLWFsaWduLWNlbnRlcjpiZWZvcmUsIC5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSwgLmZpLWFsaWduLWxlZnQ6YmVmb3JlLCAuZmktYWxpZ24tcmlnaHQ6YmVmb3JlLCAuZmktYW5jaG9yOmJlZm9yZSwgLmZpLWFubm90YXRlOmJlZm9yZSwgLmZpLWFyY2hpdmU6YmVmb3JlLCAuZmktYXJyb3ctZG93bjpiZWZvcmUsIC5maS1hcnJvdy1sZWZ0OmJlZm9yZSwgLmZpLWFycm93LXJpZ2h0OmJlZm9yZSwgLmZpLWFycm93LXVwOmJlZm9yZSwgLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUsIC5maS1hcnJvd3MtZXhwYW5kOmJlZm9yZSwgLmZpLWFycm93cy1pbjpiZWZvcmUsIC5maS1hcnJvd3Mtb3V0OmJlZm9yZSwgLmZpLWFzbDpiZWZvcmUsIC5maS1hc3RlcmlzazpiZWZvcmUsIC5maS1hdC1zaWduOmJlZm9yZSwgLmZpLWJhY2tncm91bmQtY29sb3I6YmVmb3JlLCAuZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsIC5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlLCAuZmktYmF0dGVyeS1oYWxmOmJlZm9yZSwgLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSwgLmZpLWJpdGNvaW46YmVmb3JlLCAuZmktYmxpbmQ6YmVmb3JlLCAuZmktYmx1ZXRvb3RoOmJlZm9yZSwgLmZpLWJvbGQ6YmVmb3JlLCAuZmktYm9vay1ib29rbWFyazpiZWZvcmUsIC5maS1ib29rOmJlZm9yZSwgLmZpLWJvb2ttYXJrOmJlZm9yZSwgLmZpLWJyYWlsbGU6YmVmb3JlLCAuZmktYnVyc3QtbmV3OmJlZm9yZSwgLmZpLWJ1cnN0LXNhbGU6YmVmb3JlLCAuZmktYnVyc3Q6YmVmb3JlLCAuZmktY2FsZW5kYXI6YmVmb3JlLCAuZmktY2FtZXJhOmJlZm9yZSwgLmZpLWNoZWNrOmJlZm9yZSwgLmZpLWNoZWNrYm94OmJlZm9yZSwgLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUsIC5maS1jbGlwYm9hcmQtcGVuY2lsOmJlZm9yZSwgLmZpLWNsaXBib2FyZDpiZWZvcmUsIC5maS1jbG9jazpiZWZvcmUsIC5maS1jbG9zZWQtY2FwdGlvbjpiZWZvcmUsIC5maS1jbG91ZDpiZWZvcmUsIC5maS1jb21tZW50LW1pbnVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtcXVvdGVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLCAuZmktY29tbWVudDpiZWZvcmUsIC5maS1jb21tZW50czpiZWZvcmUsIC5maS1jb21wYXNzOmJlZm9yZSwgLmZpLWNvbnRyYXN0OmJlZm9yZSwgLmZpLWNyZWRpdC1jYXJkOmJlZm9yZSwgLmZpLWNyb3A6YmVmb3JlLCAuZmktY3Jvd246YmVmb3JlLCAuZmktY3NzMzpiZWZvcmUsIC5maS1kYXRhYmFzZTpiZWZvcmUsIC5maS1kaWUtZml2ZTpiZWZvcmUsIC5maS1kaWUtZm91cjpiZWZvcmUsIC5maS1kaWUtb25lOmJlZm9yZSwgLmZpLWRpZS1zaXg6YmVmb3JlLCAuZmktZGllLXRocmVlOmJlZm9yZSwgLmZpLWRpZS10d286YmVmb3JlLCAuZmktZGlzbGlrZTpiZWZvcmUsIC5maS1kb2xsYXItYmlsbDpiZWZvcmUsIC5maS1kb2xsYXI6YmVmb3JlLCAuZmktZG93bmxvYWQ6YmVmb3JlLCAuZmktZWplY3Q6YmVmb3JlLCAuZmktZWxldmF0b3I6YmVmb3JlLCAuZmktZXVybzpiZWZvcmUsIC5maS1leWU6YmVmb3JlLCAuZmktZmFzdC1mb3J3YXJkOmJlZm9yZSwgLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlLCAuZmktZmVtYWxlOmJlZm9yZSwgLmZpLWZpbHRlcjpiZWZvcmUsIC5maS1maXJzdC1haWQ6YmVmb3JlLCAuZmktZmxhZzpiZWZvcmUsIC5maS1mb2xkZXItYWRkOmJlZm9yZSwgLmZpLWZvbGRlci1sb2NrOmJlZm9yZSwgLmZpLWZvbGRlcjpiZWZvcmUsIC5maS1mb290OmJlZm9yZSwgLmZpLWZvdW5kYXRpb246YmVmb3JlLCAuZmktZ3JhcGgtYmFyOmJlZm9yZSwgLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLCAuZmktZ3JhcGgtcGllOmJlZm9yZSwgLmZpLWdyYXBoLXRyZW5kOmJlZm9yZSwgLmZpLWd1aWRlLWRvZzpiZWZvcmUsIC5maS1oZWFyaW5nLWFpZDpiZWZvcmUsIC5maS1oZWFydDpiZWZvcmUsIC5maS1ob21lOmJlZm9yZSwgLmZpLWh0bWw1OmJlZm9yZSwgLmZpLWluZGVudC1sZXNzOmJlZm9yZSwgLmZpLWluZGVudC1tb3JlOmJlZm9yZSwgLmZpLWluZm86YmVmb3JlLCAuZmktaXRhbGljOmJlZm9yZSwgLmZpLWtleTpiZWZvcmUsIC5maS1sYXB0b3A6YmVmb3JlLCAuZmktbGF5b3V0OmJlZm9yZSwgLmZpLWxpZ2h0YnVsYjpiZWZvcmUsIC5maS1saWtlOmJlZm9yZSwgLmZpLWxpbms6YmVmb3JlLCAuZmktbGlzdC1idWxsZXQ6YmVmb3JlLCAuZmktbGlzdC1udW1iZXI6YmVmb3JlLCAuZmktbGlzdC10aHVtYm5haWxzOmJlZm9yZSwgLmZpLWxpc3Q6YmVmb3JlLCAuZmktbG9jazpiZWZvcmUsIC5maS1sb29wOmJlZm9yZSwgLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLCAuZmktbWFpbDpiZWZvcmUsIC5maS1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS1tYWxlLXN5bWJvbDpiZWZvcmUsIC5maS1tYWxlOmJlZm9yZSwgLmZpLW1hcDpiZWZvcmUsIC5maS1tYXJrZXI6YmVmb3JlLCAuZmktbWVnYXBob25lOmJlZm9yZSwgLmZpLW1pY3JvcGhvbmU6YmVmb3JlLCAuZmktbWludXMtY2lyY2xlOmJlZm9yZSwgLmZpLW1pbnVzOmJlZm9yZSwgLmZpLW1vYmlsZS1zaWduYWw6YmVmb3JlLCAuZmktbW9iaWxlOmJlZm9yZSwgLmZpLW1vbml0b3I6YmVmb3JlLCAuZmktbW91bnRhaW5zOmJlZm9yZSwgLmZpLW11c2ljOmJlZm9yZSwgLmZpLW5leHQ6YmVmb3JlLCAuZmktbm8tZG9nczpiZWZvcmUsIC5maS1uby1zbW9raW5nOmJlZm9yZSwgLmZpLXBhZ2UtYWRkOmJlZm9yZSwgLmZpLXBhZ2UtY29weTpiZWZvcmUsIC5maS1wYWdlLWNzdjpiZWZvcmUsIC5maS1wYWdlLWRlbGV0ZTpiZWZvcmUsIC5maS1wYWdlLWRvYzpiZWZvcmUsIC5maS1wYWdlLWVkaXQ6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSwgLmZpLXBhZ2UtZXhwb3J0LWRvYzpiZWZvcmUsIC5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQ6YmVmb3JlLCAuZmktcGFnZS1maWxsZWQ6YmVmb3JlLCAuZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsIC5maS1wYWdlLXBkZjpiZWZvcmUsIC5maS1wYWdlLXJlbW92ZTpiZWZvcmUsIC5maS1wYWdlLXNlYXJjaDpiZWZvcmUsIC5maS1wYWdlOmJlZm9yZSwgLmZpLXBhaW50LWJ1Y2tldDpiZWZvcmUsIC5maS1wYXBlcmNsaXA6YmVmb3JlLCAuZmktcGF1c2U6YmVmb3JlLCAuZmktcGF3OmJlZm9yZSwgLmZpLXBheXBhbDpiZWZvcmUsIC5maS1wZW5jaWw6YmVmb3JlLCAuZmktcGhvdG86YmVmb3JlLCAuZmktcGxheS1jaXJjbGU6YmVmb3JlLCAuZmktcGxheS12aWRlbzpiZWZvcmUsIC5maS1wbGF5OmJlZm9yZSwgLmZpLXBsdXM6YmVmb3JlLCAuZmktcG91bmQ6YmVmb3JlLCAuZmktcG93ZXI6YmVmb3JlLCAuZmktcHJldmlvdXM6YmVmb3JlLCAuZmktcHJpY2UtdGFnOmJlZm9yZSwgLmZpLXByaWNldGFnLW11bHRpcGxlOmJlZm9yZSwgLmZpLXByaW50OmJlZm9yZSwgLmZpLXByb2hpYml0ZWQ6YmVmb3JlLCAuZmktcHJvamVjdGlvbi1zY3JlZW46YmVmb3JlLCAuZmktcHV6emxlOmJlZm9yZSwgLmZpLXF1b3RlOmJlZm9yZSwgLmZpLXJlY29yZDpiZWZvcmUsIC5maS1yZWZyZXNoOmJlZm9yZSwgLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSwgLmZpLXJlc3VsdHM6YmVmb3JlLCAuZmktcmV3aW5kLXRlbjpiZWZvcmUsIC5maS1yZXdpbmQ6YmVmb3JlLCAuZmktcnNzOmJlZm9yZSwgLmZpLXNhZmV0eS1jb25lOmJlZm9yZSwgLmZpLXNhdmU6YmVmb3JlLCAuZmktc2hhcmU6YmVmb3JlLCAuZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsIC5maS1zaGllbGQ6YmVmb3JlLCAuZmktc2hvcHBpbmctYmFnOmJlZm9yZSwgLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLCAuZmktc2h1ZmZsZTpiZWZvcmUsIC5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUsIC5maS1zb2NpYWwtYXBwbGU6YmVmb3JlLCAuZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZSwgLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLCAuZmktc29jaWFsLXNreXBlOmJlZm9yZSwgLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsIC5maS1zb2NpYWwtdHdpdHRlcjpiZWZvcmUsIC5maS1zb2NpYWwtd2luZG93czpiZWZvcmUsIC5maS1zb2NpYWwteW91dHViZTpiZWZvcmUsIC5maS1zb3VuZDpiZWZvcmUsIC5maS1zdGFyOmJlZm9yZSwgLmZpLXN0b3A6YmVmb3JlLCAuZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsIC5maS1zdWJzY3JpcHQ6YmVmb3JlLCAuZmktc3VwZXJzY3JpcHQ6YmVmb3JlLCAuZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsIC5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlLCAuZmktdGFyZ2V0LXR3bzpiZWZvcmUsIC5maS10YXJnZXQ6YmVmb3JlLCAuZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlLCAuZmktdGVsZXBob25lOmJlZm9yZSwgLmZpLXRleHQtY29sb3I6YmVmb3JlLCAuZmktdGh1bWJuYWlsczpiZWZvcmUsIC5maS10aWNrZXQ6YmVmb3JlLCAuZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLCAuZmktdG9yc28tZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGw6YmVmb3JlLCAuZmktdG9yc29zLWZlbWFsZS1tYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS10b3Jzb3M6YmVmb3JlLCAuZmktdHJhc2g6YmVmb3JlLCAuZmktdHJlZXM6YmVmb3JlLCAuZmktdHJvcGh5OmJlZm9yZSwgLmZpLXVuZGVybGluZTpiZWZvcmUsIC5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSwgLmZpLXVubGluazpiZWZvcmUsIC5maS11bmxvY2s6YmVmb3JlLCAuZmktdXBsb2FkLWNsb3VkOmJlZm9yZSwgLmZpLXVwbG9hZDpiZWZvcmUsIC5maS11c2I6YmVmb3JlLCAuZmktdmlkZW86YmVmb3JlLCAuZmktdm9sdW1lLW5vbmU6YmVmb3JlLCAuZmktdm9sdW1lLXN0cmlrZTpiZWZvcmUsIC5maS12b2x1bWU6YmVmb3JlLCAuZmktd2ViOmJlZm9yZSwgLmZpLXdoZWVsY2hhaXI6YmVmb3JlLCAuZmktd2lkZ2V0OmJlZm9yZSwgLmZpLXdyZW5jaDpiZWZvcmUsIC5maS14LWNpcmNsZTpiZWZvcmUsIC5maS14OmJlZm9yZSwgLmZpLXllbjpiZWZvcmUsIC5maS16b29tLWluOmJlZm9yZSwgLmZpLXpvb20tb3V0OmJlZm9yZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9Ci5maS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0KLmZpLWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9Ci5maS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0KLmZpLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0KLmZpLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0KLmZpLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9Ci5maS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0KLmZpLWFubm90YXRlOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9Ci5maS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9Ci5maS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9Ci5maS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9Ci5maS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGIifQouZmktYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTBjIn0KLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYxMGQifQouZmktYXJyb3dzLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYxMGUifQouZmktYXJyb3dzLWluOmJlZm9yZXtjb250ZW50OiJcZjEwZiJ9Ci5maS1hcnJvd3Mtb3V0OmJlZm9yZXtjb250ZW50OiJcZjExMCJ9Ci5maS1hc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0KLmZpLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjExMiJ9Ci5maS1hdC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjExMyJ9Ci5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZXtjb250ZW50OiJcZjExNCJ9Ci5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjExNSJ9Ci5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTE2In0KLmZpLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYxMTcifQouZmktYml0Y29pbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0KLmZpLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0KLmZpLWJsaW5kOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9Ci5maS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0KLmZpLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0KLmZpLWJvb2stYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMTFkIn0KLmZpLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0KLmZpLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjExZiJ9Ci5maS1icmFpbGxlOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9Ci5maS1idXJzdC1uZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0KLmZpLWJ1cnN0LXNhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0KLmZpLWJ1cnN0OmJlZm9yZXtjb250ZW50OiJcZjEyMyJ9Ci5maS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMjQifQouZmktY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9Ci5maS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYxMjYifQouZmktY2hlY2tib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0KLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmV7Y29udGVudDoiXGYxMjgifQouZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYxMjkifQouZmktY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9Ci5maS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYxMmIifQouZmktY2xvc2VkLWNhcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0KLmZpLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9Ci5maS1jb21tZW50LW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9Ci5maS1jb21tZW50LXF1b3RlczpiZWZvcmV7Y29udGVudDoiXGYxMmYifQouZmktY29tbWVudC12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxMzAifQouZmktY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYxMzEifQouZmktY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0KLmZpLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0KLmZpLWNvbnRyYXN0OmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9Ci5maS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMzUifQouZmktY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMzYifQouZmktY3Jvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0KLmZpLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0KLmZpLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9Ci5maS1kaWUtZml2ZTpiZWZvcmV7Y29udGVudDoiXGYxM2EifQouZmktZGllLWZvdXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0KLmZpLWRpZS1vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0KLmZpLWRpZS1zaXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTNkIn0KLmZpLWRpZS10aHJlZTpiZWZvcmV7Y29udGVudDoiXGYxM2UifQouZmktZGllLXR3bzpiZWZvcmV7Y29udGVudDoiXGYxM2YifQouZmktZGlzbGlrZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifQouZmktZG9sbGFyLWJpbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0KLmZpLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGYxNDIifQouZmktZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0KLmZpLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9Ci5maS1lbGV2YXRvcjpiZWZvcmV7Y29udGVudDoiXGYxNDUifQouZmktZXVybzpiZWZvcmV7Y29udGVudDoiXGYxNDYifQouZmktZXllOmJlZm9yZXtjb250ZW50OiJcZjE0NyJ9Ci5maS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0KLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0KLmZpLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifQouZmktZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9Ci5maS1maXJzdC1haWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0KLmZpLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0KLmZpLWZvbGRlci1hZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0KLmZpLWZvbGRlci1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjE0ZiJ9Ci5maS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0KLmZpLWZvb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0KLmZpLWZvdW5kYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0KLmZpLWdyYXBoLWJhcjpiZWZvcmV7Y29udGVudDoiXGYxNTMifQouZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGYxNTQifQouZmktZ3JhcGgtcGllOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9Ci5maS1ncmFwaC10cmVuZDpiZWZvcmV7Y29udGVudDoiXGYxNTYifQouZmktZ3VpZGUtZG9nOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9Ci5maS1oZWFyaW5nLWFpZDpiZWZvcmV7Y29udGVudDoiXGYxNTgifQouZmktaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0KLmZpLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0KLmZpLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9Ci5maS1pbmRlbnQtbGVzczpiZWZvcmV7Y29udGVudDoiXGYxNWMifQouZmktaW5kZW50LW1vcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0KLmZpLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0KLmZpLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYxNWYifQouZmkta2V5OmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9Ci5maS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0KLmZpLWxheW91dDpiZWZvcmV7Y29udGVudDoiXGYxNjIifQouZmktbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9Ci5maS1saWtlOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9Ci5maS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9Ci5maS1saXN0LWJ1bGxldDpiZWZvcmV7Y29udGVudDoiXGYxNjYifQouZmktbGlzdC1udW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0KLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxNjgifQouZmktbGlzdDpiZWZvcmV7Y29udGVudDoiXGYxNjkifQouZmktbG9jazpiZWZvcmV7Y29udGVudDoiXGYxNmEifQouZmktbG9vcDpiZWZvcmV7Y29udGVudDoiXGYxNmIifQouZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmV7Y29udGVudDoiXGYxNmMifQouZmktbWFpbDpiZWZvcmV7Y29udGVudDoiXGYxNmQifQouZmktbWFsZS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0KLmZpLW1hbGUtc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjE2ZiJ9Ci5maS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9Ci5maS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0KLmZpLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYxNzIifQouZmktbWVnYXBob25lOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9Ci5maS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjE3NCJ9Ci5maS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0KLmZpLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9Ci5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9Ci5maS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0KLmZpLW1vbml0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0KLmZpLW1vdW50YWluczpiZWZvcmV7Y29udGVudDoiXGYxN2EifQouZmktbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0KLmZpLW5leHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0KLmZpLW5vLWRvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0KLmZpLW5vLXNtb2tpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0KLmZpLXBhZ2UtYWRkOmJlZm9yZXtjb250ZW50OiJcZjE3ZiJ9Ci5maS1wYWdlLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0KLmZpLXBhZ2UtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9Ci5maS1wYWdlLWRlbGV0ZTpiZWZvcmV7Y29udGVudDoiXGYxODIifQouZmktcGFnZS1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTgzIn0KLmZpLXBhZ2UtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYxODQifQouZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9Ci5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0KLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmV7Y29udGVudDoiXGYxODcifQouZmktcGFnZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0KLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9Ci5maS1wYWdlLW11bHRpcGxlOmJlZm9yZXtjb250ZW50OiJcZjE4YSJ9Ci5maS1wYWdlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxOGIifQouZmktcGFnZS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0KLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9Ci5maS1wYWdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZSJ9Ci5maS1wYWludC1idWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMThmIn0KLmZpLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGYxOTAifQouZmktcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0KLmZpLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxOTIifQouZmktcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9Ci5maS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0KLmZpLXBob3RvOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9Ci5maS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTYifQouZmktcGxheS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxOTcifQouZmktcGxheTpiZWZvcmV7Y29udGVudDoiXGYxOTgifQouZmktcGx1czpiZWZvcmV7Y29udGVudDoiXGYxOTkifQouZmktcG91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0KLmZpLXBvd2VyOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9Ci5maS1wcmV2aW91czpiZWZvcmV7Y29udGVudDoiXGYxOWMifQouZmktcHJpY2UtdGFnOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9Ci5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmV7Y29udGVudDoiXGYxOWUifQouZmktcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlmIn0KLmZpLXByb2hpYml0ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0KLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9Ci5maS1wdXp6bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0KLmZpLXF1b3RlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9Ci5maS1yZWNvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0KLmZpLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0KLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZXtjb250ZW50OiJcZjFhNiJ9Ci5maS1yZXN1bHRzOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9Ci5maS1yZXdpbmQtdGVuOmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9Ci5maS1yZXdpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0KLmZpLXJzczpiZWZvcmV7Y29udGVudDoiXGYxYWEifQouZmktc2FmZXR5LWNvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0KLmZpLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0KLmZpLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9Ci5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9Ci5maS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFmIn0KLmZpLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYxYjAifQouZmktc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYxYjEifQouZmktc2h1ZmZsZTpiZWZvcmV7Y29udGVudDoiXGYxYjIifQouZmktc29jaWFsLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0KLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifQouZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9Ci5maS1zb2NpYWwtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9Ci5maS1zb2NpYWwtcmRpbzpiZWZvcmV7Y29udGVudDoiXGYxZDcifQouZmktc29jaWFsLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxZDgifQouZmktc29jaWFsLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9Ci5maS1zb2NpYWwtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMWRmIn0KLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9Ci5maS1zb2NpYWwtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxZTYifQouZmktc29jaWFsLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0KLmZpLXNvdW5kOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9Ci5maS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9Ci5maS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjFlZiJ9Ci5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9Ci5maS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0KLmZpLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9Ci5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9Ci5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0KLmZpLXRhcmdldC10d286YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0KLmZpLXRhcmdldDpiZWZvcmV7Y29udGVudDoiXGYxZjYifQouZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY3In0KLmZpLXRlbGVwaG9uZTpiZWZvcmV7Y29udGVudDoiXGYxZjgifQouZmktdGV4dC1jb2xvcjpiZWZvcmV7Y29udGVudDoiXGYxZjkifQouZmktdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxZmEifQouZmktdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9Ci5maS10b3Jzby1idXNpbmVzczpiZWZvcmV7Y29udGVudDoiXGYxZmMifQouZmktdG9yc28tZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9Ci5maS10b3JzbzpiZWZvcmV7Y29udGVudDoiXGYxZmUifQouZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWZmIn0KLmZpLXRvcnNvcy1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0KLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifQouZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9Ci5maS10b3Jzb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0KLmZpLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9Ci5maS10cmVlczpiZWZvcmV7Y29udGVudDoiXGYyMDUifQouZmktdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9Ci5maS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0KLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0KLmZpLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYyMDkifQouZmktdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9Ci5maS11cGxvYWQtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0KLmZpLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYyMGMifQouZmktdXNiOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9Ci5maS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYyMGUifQouZmktdm9sdW1lLW5vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjBmIn0KLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0KLmZpLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifQouZmktd2ViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9Ci5maS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9Ci5maS13aWRnZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0KLmZpLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYyMTUifQouZmkteC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0KLmZpLXg6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0KLmZpLXllbjpiZWZvcmV7Y29udGVudDoiXGYyMTgifQouZmktem9vbS1pbjpiZWZvcmV7Y29udGVudDoiXGYyMTkifQouZmktem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0KI2N3LW5vdGVze3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MjBweDt0b3A6MjBweDt3aWR0aDoyOTBweDtwYWRkaW5nOjBweDt6LWluZGV4OjMwMDJ9CiNjdy1ub3RlcyA+IGRpdnttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjkwcHg7cGFkZGluZzoxNXB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwgNzksIDE0MywgMC45KTtib3gtc2hhZG93OjAgMCAwIDFweCB3aGl0ZTtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTJwdDtsaW5lLWhlaWdodDoxNXB0O3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93OmhpZGRlbn0KI2N3LW5vdGVzID4gZGl2LmVycm9ye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzQsIDExNCwgMTM0LCAwLjkpfQojY3ctbm90ZXMgPiBkaXYud2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC45KTtjb2xvcjpyZ2JhKDIwNCwgMTM0LCAxMywgMC45KX0KI2N3LW5vdGVzID4gZGl2Lm9re2JhY2tncm91bmQtY29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjkpO2NvbG9yOiM2NTljMTN9Ci5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgLm15LWVycm9yIHRleHRhcmVhLCAubXktZXJyb3IgYnV0dG9ue2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6Zm9jdXMsIC5teS1lcnJvciB0ZXh0YXJlYTpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9Ci5teS1lcnJvciAubGFiZWwsIC5teS1lcnJvciBsYWJlbCwgLm15LWVycm9ye2NvbG9yOiNlYTcyODYhaW1wb3J0YW50fQoubXktZXJyb3IgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3O2JhY2tncm91bmQtY29sb3I6I2ZlZDNkM30KLm15LWVycm9yIGlucHV0W3R5cGU9InJhbmdlIl06Zm9jdXMgOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6MXB4IHNvbGlkICNlYTcyODY7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyOjFweCBzb2xpZCAjZWE3Mjg2IWltcG9ydGFudH0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgPiAuc2VsZWN0Mi1jaG9zZW57Y29sb3I6I2Q2MmM0OX0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2Uuc2VsZWN0Mi1kZWZhdWx0ID4gLnNlbGVjdDItY2hvc2Vue2NvbG9yOiNiOWMwY2J9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudDtiYWNrZ3JvdW5kOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSl9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tib3JkZXItbGVmdDoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnQ7YmFja2dyb3VuZDojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3csIC5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2Vze2JvcmRlcjoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNle2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpfQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZ3tjb2xvcjojZWE3Mjg2fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzO2NvbG9yOiNkNjJjNDl9Ci5teS1lcnJvciA+IGRpdi5teS1tb2RhbHtib3JkZXItY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KTtib3gtc2hhZG93OjAgMCAxMXB4IDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjkyKSwgMCAwIDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjg1KX0KLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmUsIC5teS1lcnJvciA+IGRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtdG9wOmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtYm90dG9tOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSk7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KX0KLm15LWVycm9yIC51aS1zbGlkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudH0KLm15LWVycm9yIC51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztiYWNrZ3JvdW5kOiNmZWQzZDN9Ci5teS1lcnJvciAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9CkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0NvdXNpbmUnO3NyYzp1cmwoJ2NvdXNpbmUtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQojY3ctYm9keXttYXJnaW46MCBhdXRvIDAgYXV0bztmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjRlbTt0ZXh0LXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247Zm9udC13ZWlnaHQ6MzAwO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CiNjdy1ib2R5IC5jdy1idXN5e2hlaWdodDo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjMwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pL2xvYWRlci1iYXIyLmdpZik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9CiNjdy1ib2R5IGlucHV0LCAjY3ctYm9keSBidXR0b24sICNjdy1ib2R5IHRleHRhcmVhe2ZvbnQtd2VpZ2h0OmluaGVyaXR9CiNjdy1ib2R5IC5teS1lcnJvci10aXB7Zm9udC1zaXplOjg1JTtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyk7cGFkZGluZzowcHggMCA2cHggMHB4O2xpbmUtaGVpZ2h0OjEuMmVtfQojY3ctYm9keSAubXktZXJyb3IgLnZhcmlhbnRzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZkZDtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyl9CiNjdy1ib2R5IC5teS1yb3cgaW5wdXQsIC5teS1yb3cgdGV4dGFyZWEsIC5teS1yb3cgc2VsZWN0LCAubXktcm93IC5idXR0b257bWFyZ2luOjB9CiNjdy1ib2R5IC5teS1yb3cgdGV4dGFyZWF7dmVydGljYWwtYWxpZ246dG9wfQojY3ctYm9keSAubXktcm93IC5teS1sYWJlbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMWVtfQojY3ctYm9keSAubXktcm93IC5teS1zaG9ydGN1dHttYXJnaW46MCAwIDAgMC4yNWVtO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzU0ODFhMDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjAuNzt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zczstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzLCBib3JkZXIgMC4zczstb3BlcmEtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MsIGJvcmRlciAwLjNzOy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3N9CiNjdy1ib2R5IC5teS1yb3cgLm15LXNob3J0Y3V0OmhvdmVye29wYWNpdHk6MX0KI2N3LWJvZHkgLm15LXJvdyBkaXYubXktZXJyb3ItdGlwe3BhZGRpbmc6MC4zZW0gMCAwIDB9CiNjdy1ib2R5IC5teS1yb3cgc3Bhbi5teS1lcnJvci10aXB7cGFkZGluZzowfQojY3ctYm9keSAudWktc2VhcmNoe2JvcmRlci1yYWRpdXM6NTBweCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjIycHg7cGFkZGluZy1yaWdodDoyMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfQojY3ctYm9keSAudWktc2VhcmNoLWNsZWFye21hcmdpbjoxcHggMCAtMXB4IC0yMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjV9CiNjdy1ib2R5IC51aS1zZWFyY2guc21hbGwgKyAudWktc2VhcmNoLWNsZWFyICB7bWFyZ2luLWJvdHRvbTotMnB4fQojY3ctYm9keSAudWktc2VhcmNoLmJnLXllbGxvdyArIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjU7ZGlzcGxheTppbmxpbmUtYmxvY2t9CiNjdy1ib2R5IC51aS1zZWFyY2guYmcteWVsbG93ICsgLnVpLXNlYXJjaC1jbGVhcjpob3ZlcntvcGFjaXR5OjF9CiNjdy1ib2R5IC5teS1zZWFyY2ggaW5wdXQudWktc2VhcmNoe2JhY2tncm91bmQtY29sb3I6I0ZGRjA4OCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmNmNjMhaW1wb3J0YW50fQojY3ctYm9keSAubXktc2VhcmNoIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0KI2N3LWJvZHkgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuN2VtfQojY3ctbm90ZXN7dG9wOjUwcHh9CmJvZHk+c3Bhbi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0KYnV0dG9uLm1hcmtmb2N1cywgIC5idXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVyLCAuYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O3JpZ2h0OjNweDt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjNweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDt6LWluZGV4OisyfQpib2R5LnRoZW1lLWRhcmt7ZmlsdGVyOmJyaWdodG5lc3MoMC45NikgaW52ZXJ0KCkgY29udHJhc3QoMC45KSBicmlnaHRuZXNzKDEuMjUpIGh1ZS1yb3RhdGUoMTgyZGVnKSBicmlnaHRuZXNzKDAuOSkgc2F0dXJhdGUoMS4yKX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5e2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYn0KYm9keS50aGVtZS1kYXJrIGE6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLnBzZXVkb2xpbms6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLnBzZXVkb2J1dHRvbjpob3Zlcntjb2xvcjojMmU3ZGZmfQpib2R5LnRoZW1lLWRhcmsgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDc2LDEwNCwxMjksMC4zNSl9CmJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRleHRdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9bnVtYmVyXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPWVtYWlsXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRlbF0sICBib2R5LnRoZW1lLWRhcmsgaW5wdXRbdHlwZT1kYXRlXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRpbWVdLCBib2R5LnRoZW1lLWRhcmsgdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayB0ZXh0YXJlYTpmb2N1c3tib3JkZXItY29sb3I6IzllY2RmOH0KYm9keS50aGVtZS1kYXJrIC5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgIGJvZHkudGhlbWUtZGFyayAubXktZXJyb3IgdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNmY2MxYzd9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcywgYm9keS50aGVtZS1kYXJrIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0LWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSwgIGJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyLWNvbG9yOiM5ZWNkZjh9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjNmNWY4IWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAubC10YWIgYXtjb2xvcjojNGM1ZDZlIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAubC10YWIgYS5zeXN0ZW17Y29sb3I6IzQwNzMwMCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgLmwtdGFiLmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZDhkZmU4IWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAjbC1hcHB0YWJzLCBib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVyICNsLWFzaWRle2JvcmRlci10b3AtY29sb3I6I2NkZDVlMX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5ICNsLWhlYWRlciAjbC1hc2lkZSAuYXNpZGUtYnRue2JvcmRlci1sZWZ0LWNvbG9yOiNjZGQ1ZTE7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAjbC1oZWFkZXIgI2wtYXNpZGUgI2J0bi1jbG9zZS1hbGwtdGFic3tjb2xvcjojNTI1NzViIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5ICNsLWhlYWRlciAjbC1hc2lkZSAuYXNpZGUtYnRuIGF7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgI3N2Zy11bmF1dGh7c3Ryb2tlOiNmZjU0MDAhaW1wb3J0YW50fQojbC1oZWFkZXIgI3N2Zy11bmF1dGh7c3Ryb2tlOiNmZjY0NzJ9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgI3N2Zy1hdXRoe3N0cm9rZTojMzA3NzAwIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5IC52aWV3LXJvd3tiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmJ9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAudmlldy1yb3c6bnRoLWNoaWxkKDJuKzApIHtiYWNrZ3JvdW5kLWNvbG9yOiNlZmYxZjR9CmJvZHkudGhlbWUtZGFyayBkaXYubXktbW9kYWx7Ym94LXNoYWRvdzowcHggMHB4IDBweCAycHggcmdiYSgwLDI5LDc5LDAuNikhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZjZmNmY30KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5PmRpdi5teS1tb2RhbC1zY3JlZW57YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwyNDksMjU1LDAuOSkhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlciwgIGJvZHkudGhlbWUtZGFyayAuYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM2ZDZkNmQhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmUsICBib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtcmlnaHQ6YmVmb3JlLCAgYm9keS50aGVtZS1kYXJrIGRpdi5teS1tb2RhbC5ub3NlLXRvcDpiZWZvcmUsICBib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtYm90dG9tOmJlZm9yZXt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwyOSw3OSwwLjYpO2JvcmRlci10b3A6bm9uZTtib3JkZXItcmlnaHQ6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmY2ZjZmN9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSA+IGRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZXtiYWNrZ3JvdW5kLWNvbG9yOiM5YmIxYzZ9CmJvZHkudGhlbWUtZGFyayAjbC1hcHBzIC5sLWFwcCAuZmVhdGhlcjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjQ3LDI0OCwyNTAsMSksIHJnYmEoMjQ3LDI0OCwyNTAsMCkpfQpib2R5LnRoZW1lLWRhcmsgI2wtYXBwcyAubC1hcHAgLmZlYXRoZXI6YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNDcsMjQ4LDI1MCwxKSwgcmdiYSgyNDcsMjQ4LDI1MCwwKSl9CmJvZHkudGhlbWUtZGFyayAubXktbWFuaWZlc3QtMWFvYzF4ZmwgI2RvYzpob3ZlcntiYWNrZ3JvdW5kOiNmOGY5ZmJ9CmJvZHkudGhlbWUtZGFyayBpbWcjc2ljb257ZmlsdGVyOnNhdHVyYXRlKDEuMykgYnJpZ2h0bmVzcygwLjYpIGludmVydCgpIGh1ZS1yb3RhdGUoMTgxZGVnKSBjb250cmFzdCgxLjIpfQpib2R5LnRoZW1lLWRhcmsgLml2YWx1ZSBhLmJhc2U2NGltYWdlIGltZ3tmaWx0ZXI6c2F0dXJhdGUoMS4zKSBicmlnaHRuZXNzKDAuNikgaW52ZXJ0KCkgaHVlLXJvdGF0ZSgxODFkZWcpIGNvbnRyYXN0KDEuMil9CmJvZHkudGhlbWUtZGFyayAuQ29kZU1pcnJvciAuY20tZGVme2NvbG9yOiNmZjc4OWJ9CmJvZHkudGhlbWUtZGFyayAuQ29kZU1pcnJvciAuY20ta2V5d29yZHtjb2xvcjojOTY0OWZmfQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLXZhcmlhYmxlLTJ7Y29sb3I6IzUyOGNjNn0KYm9keS50aGVtZS1kYXJrIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZXtjb2xvcjojMDA4YzY0fQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLXN0cmluZ3tjb2xvcjojNWU2YmFkfQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLXByb3BlcnR5e2NvbG9yOiM0MzRlNWR9CmJvZHkudGhlbWUtZGFyayAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lLCAgYm9keS50aGVtZS1kYXJrIC5qc29uZGlmZnBhdGNoLWFkZGVkIC5qc29uZGlmZnBhdGNoLXZhbHVlIHByZSwgIGJvZHkudGhlbWUtZGFyayAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1yaWdodC12YWx1ZSBwcmUsICBib2R5LnRoZW1lLWRhcmsgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtYWRkZWR7YmFja2dyb3VuZDojYWRjYjg3fQ==" + "data": "LyogUGhvdG9uIDEuMjAgQ1NTICovCkBjaGFyc2V0ICJVVEYtOCI7Cip7Ym94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KaHRtbHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59CmJvZHl7cGFkZGluZzowOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lO2ZvbnQ6MTlweCAnLWFwcGxlLXN5c3RlbScsICdCbGlua01hY1N5c3RlbUZvbnQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnU2Vnb2UgVUknLCBVYnVudHUsIFJvYm90bywgSGVsdmV0aWNhLCBUYWhvbWEsIEFyaWFsLCBWZXJkYW5hLCBTYW5zLXNlcmlmO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4zZW07YmFja2dyb3VuZDojZmZmO2hlaWdodDoxMDAlfQpzZWN0aW9uLCBkaXYsIHNwYW57cG9zaXRpb246cmVsYXRpdmV9CmgxLCBoMiwgaDMsIGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW46MC40ZW0gMCAwLjNlbSAwO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4xZW19Cmgxe2ZvbnQtc2l6ZToyLjVlbX0KaDJ7Zm9udC1zaXplOjJlbX0KaDN7Zm9udC1zaXplOjEuNGVtfQpoNHtmb250LXNpemU6MS4xZW19CmRpdiA+IGgxOm50aC1vZi10eXBlKDEpIHttYXJnaW4tdG9wOjAuMWVtfQpkaXYgPiBoMjpudGgtb2YtdHlwZSgxKSB7bWFyZ2luLXRvcDowLjFlbX0KZGl2ID4gaDM6bnRoLW9mLXR5cGUoMSkge21hcmdpbi10b3A6MC4xZW19CnB7Zm9udDoxZW0gO2xpbmUtaGVpZ2h0OjEuNGVtO21hcmdpbjowLjJlbSAwIDAuNWVtIDB9Cmxpe21hcmdpbi1sZWZ0OjFlbX0Kc21hbGx7Zm9udC1zaXplOjkwJX0KdGFibGV7Ym9yZGVyOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2JvcmRlci1zcGFjaW5nOjB9CnRke3ZlcnRpY2FsLWFsaWduOnRvcDtsaW5lLWhlaWdodDoxLjJlbX0KdGh7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMmVtfQouaW52aXN7dmlzaWJpbGl0eTpoaWRkZW59Ci5oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Ci5jcHtjdXJzb3I6cG9pbnRlcn0KLmNte2N1cnNvcjptb3ZlfQouY3p7Y3Vyc29yOnpvb20taW59Ci5jeHtjdXJzb3I6Y29sLXJlc2l6ZX0KLndoaXRle2NvbG9yOndoaXRlIWltcG9ydGFudH0KLmJnLXdoaXRle2JhY2tncm91bmQtY29sb3I6d2hpdGUhaW1wb3J0YW50fQouZ3JheS0ye2NvbG9yOiMxYzIwMjYhaW1wb3J0YW50fQouYmctZ3JheS0ye2JhY2tncm91bmQtY29sb3I6IzFjMjAyNiFpbXBvcnRhbnR9Ci5ncmF5LTF7Y29sb3I6IzM4NDE0YyFpbXBvcnRhbnR9Ci5iZy1ncmF5LTF7YmFja2dyb3VuZC1jb2xvcjojMzg0MTRjIWltcG9ydGFudH0KLmdyYXkwe2NvbG9yOiM0ZDVhNmEhaW1wb3J0YW50fQouYmctZ3JheTB7YmFja2dyb3VuZC1jb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmdyYXkxe2NvbG9yOiM4ODkyOWYhaW1wb3J0YW50fQouYmctZ3JheTF7YmFja2dyb3VuZC1jb2xvcjojODg5MjlmIWltcG9ydGFudH0KLmdyYXkye2NvbG9yOiNiOWMwY2IhaW1wb3J0YW50fQouYmctZ3JheTJ7YmFja2dyb3VuZC1jb2xvcjojYjljMGNiIWltcG9ydGFudH0KLmdyYXkze2NvbG9yOiNkMGQ2ZGQhaW1wb3J0YW50fQouYmctZ3JheTN7YmFja2dyb3VuZC1jb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXk0e2NvbG9yOiNlM2U4ZWIhaW1wb3J0YW50fQouYmctZ3JheTR7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmdyYXk1e2NvbG9yOnJnYmEoMTM2LCAxNDYsIDE1OSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEzNiwgMTQ2LCAxNTksIDAuMzUpIWltcG9ydGFudH0KLmdyYXk2e2NvbG9yOnJnYmEoMTg1LCAxOTIsIDIwMywgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpIWltcG9ydGFudH0KLmdyYXk3e2NvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJsdWUtMntjb2xvcjojMTYzMjVhIWltcG9ydGFudH0KLmJnLWJsdWUtMntiYWNrZ3JvdW5kLWNvbG9yOiMxNjMyNWEhaW1wb3J0YW50fQouYmx1ZS0xe2NvbG9yOiMyMzRmOGYhaW1wb3J0YW50fQouYmctYmx1ZS0xe2JhY2tncm91bmQtY29sb3I6IzIzNGY4ZiFpbXBvcnRhbnR9Ci5ibHVlMHtjb2xvcjojMmQ2NmI4IWltcG9ydGFudH0KLmJnLWJsdWUwe2JhY2tncm91bmQtY29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5ibHVlMXtjb2xvcjojNmI5ZmRiIWltcG9ydGFudH0KLmJnLWJsdWUxe2JhY2tncm91bmQtY29sb3I6IzZiOWZkYiFpbXBvcnRhbnR9Ci5ibHVlMntjb2xvcjojOWVjZGY4IWltcG9ydGFudH0KLmJnLWJsdWUye2JhY2tncm91bmQtY29sb3I6IzllY2RmOCFpbXBvcnRhbnR9Ci5ibHVlM3tjb2xvcjojYjdkYmZiIWltcG9ydGFudH0KLmJnLWJsdWUze2JhY2tncm91bmQtY29sb3I6I2I3ZGJmYiFpbXBvcnRhbnR9Ci5ibHVlNHtjb2xvcjojY2JlN2ZlIWltcG9ydGFudH0KLmJnLWJsdWU0e2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5ibHVlNXtjb2xvcjpyZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlNntjb2xvcjpyZ2JhKDE1OCwgMjA1LCAyNDgsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU2e2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlN3tjb2xvcjpyZ2JhKDIwMywgMjMxLCAyNTQsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KSFpbXBvcnRhbnR9Ci5jeWFuLTJ7Y29sb3I6IzA5NTQ3MCFpbXBvcnRhbnR9Ci5iZy1jeWFuLTJ7YmFja2dyb3VuZC1jb2xvcjojMDk1NDcwIWltcG9ydGFudH0KLmN5YW4tMXtjb2xvcjojMGU4MmFkIWltcG9ydGFudH0KLmJnLWN5YW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwZTgyYWQhaW1wb3J0YW50fQouY3lhbjB7Y29sb3I6IzEyYTVkYyFpbXBvcnRhbnR9Ci5iZy1jeWFuMHtiYWNrZ3JvdW5kLWNvbG9yOiMxMmE1ZGMhaW1wb3J0YW50fQouY3lhbjF7Y29sb3I6IzVkYzVlOCFpbXBvcnRhbnR9Ci5iZy1jeWFuMXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZGM1ZTghaW1wb3J0YW50fQouY3lhbjJ7Y29sb3I6IzlhZTBmMSFpbXBvcnRhbnR9Ci5iZy1jeWFuMntiYWNrZ3JvdW5kLWNvbG9yOiM5YWUwZjEhaW1wb3J0YW50fQouY3lhbjN7Y29sb3I6I2IyZTlmNiFpbXBvcnRhbnR9Ci5iZy1jeWFuM3tiYWNrZ3JvdW5kLWNvbG9yOiNiMmU5ZjYhaW1wb3J0YW50fQouY3lhbjR7Y29sb3I6I2M2ZjBmYSFpbXBvcnRhbnR9Ci5iZy1jeWFuNHtiYWNrZ3JvdW5kLWNvbG9yOiNjNmYwZmEhaW1wb3J0YW50fQouY3lhbjV7Y29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmJnLWN5YW41e2JhY2tncm91bmQtY29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmN5YW42e2NvbG9yOnJnYmEoMTU0LCAyMjQsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMjI0LCAyNDEsIDAuMzUpIWltcG9ydGFudH0KLmN5YW43e2NvbG9yOnJnYmEoMTk4LCAyNDAsIDI1MCwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE5OCwgMjQwLCAyNTAsIDAuMzUpIWltcG9ydGFudH0KLnRlYWwtMntjb2xvcjojMGM1NDQ4IWltcG9ydGFudH0KLmJnLXRlYWwtMntiYWNrZ3JvdW5kLWNvbG9yOiMwYzU0NDghaW1wb3J0YW50fQoudGVhbC0xe2NvbG9yOiMxNThlN2EhaW1wb3J0YW50fQouYmctdGVhbC0xe2JhY2tncm91bmQtY29sb3I6IzE1OGU3YSFpbXBvcnRhbnR9Ci50ZWFsMHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmJnLXRlYWwwe2JhY2tncm91bmQtY29sb3I6IzFiYmJhMCFpbXBvcnRhbnR9Ci50ZWFsMXtjb2xvcjojNjJkMmMwIWltcG9ydGFudH0KLmJnLXRlYWwxe2JhY2tncm91bmQtY29sb3I6IzYyZDJjMCFpbXBvcnRhbnR9Ci50ZWFsMntjb2xvcjojOWNlNWRhIWltcG9ydGFudH0KLmJnLXRlYWwye2JhY2tncm91bmQtY29sb3I6IzljZTVkYSFpbXBvcnRhbnR9Ci50ZWFsM3tjb2xvcjojYjdlY2UxIWltcG9ydGFudH0KLmJnLXRlYWwze2JhY2tncm91bmQtY29sb3I6I2I3ZWNlMSFpbXBvcnRhbnR9Ci50ZWFsNHtjb2xvcjojY2RmMmU2IWltcG9ydGFudH0KLmJnLXRlYWw0e2JhY2tncm91bmQtY29sb3I6I2NkZjJlNiFpbXBvcnRhbnR9Ci50ZWFsNXtjb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQouYmctdGVhbDV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDZ7Y29sb3I6cmdiYSgxNTYsIDIyOSwgMjE4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsNntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU2LCAyMjksIDIxOCwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDd7Y29sb3I6cmdiYSgyMDUsIDI0MiwgMjMwLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LCAyNDIsIDIzMCwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW4tMntjb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmJnLWdyZWVuLTJ7YmFja2dyb3VuZC1jb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmdyZWVuLTF7Y29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5iZy1ncmVlbi0xe2JhY2tncm91bmQtY29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5ncmVlbjB7Y29sb3I6IzY1OWMxMyFpbXBvcnRhbnR9Ci5iZy1ncmVlbjB7YmFja2dyb3VuZC1jb2xvcjojNjU5YzEzIWltcG9ydGFudH0KLmdyZWVuMXtjb2xvcjojOWFjNTVjIWltcG9ydGFudH0KLmJnLWdyZWVuMXtiYWNrZ3JvdW5kLWNvbG9yOiM5YWM1NWMhaW1wb3J0YW50fQouZ3JlZW4ye2NvbG9yOiNjNmU2OTchaW1wb3J0YW50fQouYmctZ3JlZW4ye2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5ncmVlbjN7Y29sb3I6I2Q0ZWViMSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjN7YmFja2dyb3VuZC1jb2xvcjojZDRlZWIxIWltcG9ydGFudH0KLmdyZWVuNHtjb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVuNHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzYhaW1wb3J0YW50fQouZ3JlZW41e2NvbG9yOnJnYmEoMTU0LCAxOTcsIDkyLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMTk3LCA5MiwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW42e2NvbG9yOnJnYmEoMTk4LCAyMzAsIDE1MSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JlZW42e2JhY2tncm91bmQtY29sb3I6cmdiYSgxOTgsIDIzMCwgMTUxLCAwLjM1KSFpbXBvcnRhbnR9Ci5ncmVlbjd7Y29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNCwgMjQ1LCAxOTgsIDAuMzUpIWltcG9ydGFudH0KLnllbGxvdy0ye2NvbG9yOiM4ZDVkMDkhaW1wb3J0YW50fQouYmcteWVsbG93LTJ7YmFja2dyb3VuZC1jb2xvcjojOGQ1ZDA5IWltcG9ydGFudH0KLnllbGxvdy0xe2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQouYmcteWVsbG93LTF7YmFja2dyb3VuZC1jb2xvcjojY2M4NjBkIWltcG9ydGFudH0KLnllbGxvdzB7Y29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cwe2JhY2tncm91bmQtY29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci55ZWxsb3cxe2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQouYmcteWVsbG93MXtiYWNrZ3JvdW5kLWNvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoueWVsbG93Mntjb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLXllbGxvdzJ7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLnllbGxvdzN7Y29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cze2JhY2tncm91bmQtY29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci55ZWxsb3c0e2NvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQouYmcteWVsbG93NHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQoueWVsbG93NXtjb2xvcjpyZ2JhKDI0OCwgMjAxLCA4MiwgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ4LCAyMDEsIDgyLCAwLjM1KSFpbXBvcnRhbnR9Ci55ZWxsb3c2e2NvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQoueWVsbG93N3tjb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLmJnLXllbGxvdzd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZS0ye2NvbG9yOiNhMTQwMDUhaW1wb3J0YW50fQouYmctb3JhbmdlLTJ7YmFja2dyb3VuZC1jb2xvcjojYTE0MDA1IWltcG9ydGFudH0KLm9yYW5nZS0xe2NvbG9yOiNlMTVhMDchaW1wb3J0YW50fQouYmctb3JhbmdlLTF7YmFja2dyb3VuZC1jb2xvcjojZTE1YTA3IWltcG9ydGFudH0KLm9yYW5nZTB7Y29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uwe2JhY2tncm91bmQtY29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5vcmFuZ2Uxe2NvbG9yOiNmYjlmNjchaW1wb3J0YW50fQouYmctb3JhbmdlMXtiYWNrZ3JvdW5kLWNvbG9yOiNmYjlmNjchaW1wb3J0YW50fQoub3JhbmdlMntjb2xvcjojZmVjMjllIWltcG9ydGFudH0KLmJnLW9yYW5nZTJ7YmFja2dyb3VuZC1jb2xvcjojZmVjMjllIWltcG9ydGFudH0KLm9yYW5nZTN7Y29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uze2JhY2tncm91bmQtY29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5vcmFuZ2U0e2NvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQouYmctb3JhbmdlNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQoub3JhbmdlNXtjb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLmJnLW9yYW5nZTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZTZ7Y29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2U2e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5vcmFuZ2U3e2NvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQouYmctb3JhbmdlN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQoucmVkLTJ7Y29sb3I6Izc2MTcyNyFpbXBvcnRhbnR9Ci5iZy1yZWQtMntiYWNrZ3JvdW5kLWNvbG9yOiM3NjE3MjchaW1wb3J0YW50fQoucmVkLTF7Y29sb3I6I2FkMjIzOSFpbXBvcnRhbnR9Ci5iZy1yZWQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNhZDIyMzkhaW1wb3J0YW50fQoucmVkMHtjb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLmJnLXJlZDB7YmFja2dyb3VuZC1jb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLnJlZDF7Y29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5iZy1yZWQxe2JhY2tncm91bmQtY29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5yZWQye2NvbG9yOiNmYWFiYjghaW1wb3J0YW50fQouYmctcmVkMntiYWNrZ3JvdW5kLWNvbG9yOiNmYWFiYjghaW1wb3J0YW50fQoucmVkM3tjb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLmJnLXJlZDN7YmFja2dyb3VuZC1jb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLnJlZDR7Y29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5iZy1yZWQ0e2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5yZWQ1e2NvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQouYmctcmVkNXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQoucmVkNntjb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLmJnLXJlZDZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLnJlZDd7Y29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1yZWQ3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQtMntjb2xvcjojNGMyMzYzIWltcG9ydGFudH0KLmJnLXZpb2xldC0ye2JhY2tncm91bmQtY29sb3I6IzRjMjM2MyFpbXBvcnRhbnR9Ci52aW9sZXQtMXtjb2xvcjojNzIzNTk0IWltcG9ydGFudH0KLmJnLXZpb2xldC0xe2JhY2tncm91bmQtY29sb3I6IzcyMzU5NCFpbXBvcnRhbnR9Ci52aW9sZXQwe2NvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQouYmctdmlvbGV0MHtiYWNrZ3JvdW5kLWNvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQoudmlvbGV0MXtjb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLmJnLXZpb2xldDF7YmFja2dyb3VuZC1jb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLnZpb2xldDJ7Y29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQye2JhY2tncm91bmQtY29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci52aW9sZXQze2NvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQouYmctdmlvbGV0M3tiYWNrZ3JvdW5kLWNvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQoudmlvbGV0NHtjb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLmJnLXZpb2xldDR7YmFja2dyb3VuZC1jb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLnZpb2xldDV7Y29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQ1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQ2e2NvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctdmlvbGV0NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQoudmlvbGV0N3tjb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLmJnLXZpb2xldDd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLm8we29wYWNpdHk6MC4wMSFpbXBvcnRhbnR9Ci5vMTB7b3BhY2l0eTowLjEhaW1wb3J0YW50fQoubzIwe29wYWNpdHk6MC4yIWltcG9ydGFudH0KLm8zMHtvcGFjaXR5OjAuMyFpbXBvcnRhbnR9Ci5vNDB7b3BhY2l0eTowLjQhaW1wb3J0YW50fQoubzUwe29wYWNpdHk6MC41IWltcG9ydGFudH0KLm82MHtvcGFjaXR5OjAuNiFpbXBvcnRhbnR9Ci5vNzB7b3BhY2l0eTowLjchaW1wb3J0YW50fQoubzgwe29wYWNpdHk6MC44IWltcG9ydGFudH0KLm85MHtvcGFjaXR5OjAuOSFpbXBvcnRhbnR9Ci5vMTAwe29wYWNpdHk6MSFpbXBvcnRhbnR9Ci5sZ3JheXtjb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXl7Y29sb3I6Izg4OTI5ZiFpbXBvcnRhbnR9Ci54Z3JheXtjb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmJsdWV7Y29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5za3libHVle2NvbG9yOiM0M2E0ZWYhaW1wb3J0YW50fQouc2t5e2NvbG9yOiM3NmM2ZjMhaW1wb3J0YW50fQoudGVhbHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmxncmVlbntjb2xvcjojYzZlNjk3IWltcG9ydGFudH0KLmdyZWVue2NvbG9yOiM2NTljMTMhaW1wb3J0YW50fQoueWVsbG93e2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoub3Jhbmdle2NvbG9yOiNmODc0MjMhaW1wb3J0YW50fQoucGlua3tjb2xvcjojZmFhYmI4IWltcG9ydGFudH0KLnNhbG1vbntjb2xvcjojZmRhMDk2IWltcG9ydGFudH0KLmJyb3due2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQoucmVke2NvbG9yOiNkNjJjNDkhaW1wb3J0YW50fQouYmctbGdyYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJnLWdyYXl7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmJnLWxibHVle2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5iZy1sZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVue2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3d7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZWMyOWUhaW1wb3J0YW50fQouYmctY2hhbGt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjMzLCAxMjcsIDAuMzUpIWltcG9ydGFudH0KLmJnLWxzYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjExKSFpbXBvcnRhbnR9Ci5iZy1zYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjUpIWltcG9ydGFudH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1yYW5nZV0sIHRleHRhcmVhey13ZWJraXQtYXBwZWFyYW5jZTpub25lO3RyYW5zaXRpb246Y29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4yc30KaW5wdXQsIHNlbGVjdCwgb3B0aW9uLCBidXR0b257Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fQppbnB1dFt0eXBlPXJhZGlvXSwgaW5wdXRbdHlwZT1jaGVja2JveF0ge2FjY2VudC1jb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgaW5wdXRbdHlwZT1udW1iZXJdLCBpbnB1dFt0eXBlPWVtYWlsXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPWRhdGVdLCBpbnB1dFt0eXBlPXRpbWVdIHtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlci1jb2xvcjojZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7cG9zaXRpb246cmVsYXRpdmV9CmlucHV0W3R5cGU9bnVtYmVyXSB7cGFkZGluZzowLjM1ZW0gMC4yZW0gMC4zNWVtIDAuNGVtfQppbnB1dDpkaXNhYmxlZCwgc2VsZWN0OmRpc2FibGVkLCBvcHRpb246ZGlzYWJsZWQsIHRleHRhcmVhOmRpc2FibGVkLCBidXR0b246ZGlzYWJsZWR7Y29sb3I6Izg4OTI5Zjtib3JkZXItY29sb3I6I2I5YzBjYiFpbXBvcnRhbnQ7b3BhY2l0eTowLjc1fQppbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9YnV0dG9uXSk6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojOWVjZGY4fQo6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNiOWMwY2J9CjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KdGV4dGFyZWF7Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtwYWRkaW5nOjAuMzVlbSAwLjRlbSAwLjM1ZW0gMC40ZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7d2lkdGg6OTAlO21pbi1oZWlnaHQ6NjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0KdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzllY2RmOH0Kc2VsZWN0e21hcmdpbjo0cHggMCA0cHggMH0Kc2VsZWN0IG9wdGlvbntwYWRkaW5nOjJweCAzcHggM3B4IDNweH0Kc2VsZWN0W211bHRpcGxlXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO21hcmdpbjo0cHggMCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0KbGFiZWwsIC5sYWJlbHtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOiM4ODkyOWY7bWFyZ2luOjNweCAwIDRweCAwfQppbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWx7ZGlzcGxheTppbmxpbmV9CmlucHV0W3R5cGU9J3JhZGlvJ10gKyBsYWJlbHtkaXNwbGF5OmlubGluZX0KZmllbGRzZXR7Ym9yZGVyLXJhZGl1czoycHg7bWFyZ2luOjBweCAwIDIwcHggMDtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzoxMHB4fQpsZWdlbmR7cGFkZGluZzowIDJweCAwIDJweH0KaW5wdXRbdHlwZT1idXR0b25dOmZvY3VzLCBidXR0b246Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNGQ1YTZhO2JvcmRlci1jb2xvcjojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MC4zZW0gMC43ZW0gMC40ZW0gMC43ZW07bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViO3RyYW5zaXRpb246Ym9yZGVyIDAuM3MsIGNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcywgYmFja2dyb3VuZC1jb2xvciAwLjNzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZX0KaW5wdXRbdHlwZT0nYnV0dG9uJ106aG92ZXIsIC5idXR0b246aG92ZXIsIGJ1dHRvbjpob3Zlcntib3JkZXItY29sb3I6IzZiOWZkYjtjb2xvcjojMmQ2NmI4O2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7b3BhY2l0eToxfQppbnB1dFt0eXBlPSdidXR0b24nXTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0nYnV0dG9uJ106ZGlzYWJsZWQ6aG92ZXIsIGJ1dHRvbjpkaXNhYmxlZCwgYnV0dG9uOmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVye2JvcmRlci1jb2xvcjojZTNlOGViIWltcG9ydGFudDtjb2xvcjojODg5MjlmIWltcG9ydGFudDtvcGFjaXR5OjAuNjUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2UzZThlYiFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fQpidXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7cmlnaHQ6M3B4O3dpZHRoOjRweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O3otaW5kZXg6Mn0KaW5wdXRbdHlwZT1idXR0b25dLmJsdWU6aG92ZXIsIC5idXR0b24uYmx1ZTpob3ZlciwgYnV0dG9uLmJsdWU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2YjlmZGJ9CmlucHV0W3R5cGU9YnV0dG9uXS5ibHVlLCAuYnV0dG9uLmJsdWUsIGJ1dHRvbi5ibHVle2JvcmRlci1jb2xvcjojY2JlN2ZlO2JhY2tncm91bmQtY29sb3I6I2NiZTdmZTtjb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPWJ1dHRvbl0udGVhbDpob3ZlciwgLmJ1dHRvbi50ZWFsOmhvdmVyLCBidXR0b24udGVhbDpob3Zlcntib3JkZXItY29sb3I6IzFiYmJhMH0KaW5wdXRbdHlwZT1idXR0b25dLnRlYWwsIC5idXR0b24udGVhbCwgYnV0dG9uLnRlYWx7Ym9yZGVyLWNvbG9yOiNjZGYyZTY7YmFja2dyb3VuZC1jb2xvcjojY2RmMmU2fQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW46aG92ZXIsIC5idXR0b24uZ3JlZW46aG92ZXIsIGJ1dHRvbi5ncmVlbjpob3Zlcntib3JkZXItY29sb3I6IzlhYzU1Yztjb2xvcjojNjU5YzEzfQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW4sIC5idXR0b24uZ3JlZW4sIGJ1dHRvbi5ncmVlbntib3JkZXItY29sb3I6I2UwZjVjNjtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzZ9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2U6aG92ZXIsIC5idXR0b24ub3JhbmdlOmhvdmVyLCBidXR0b24ub3JhbmdlOmhvdmVye2JvcmRlci1jb2xvcjojZmVjMjllO2NvbG9yOiNmODc0MjN9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2UsIC5idXR0b24ub3JhbmdlLCBidXR0b24ub3Jhbmdle2JvcmRlci1jb2xvcjojZmZkYWFhO2JhY2tncm91bmQtY29sb3I6I2ZmZGFhYTtjb2xvcjojZjg3NDIzfQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkOmhvdmVyLCAuYnV0dG9uLnJlZDpob3ZlciwgYnV0dG9uLnJlZDpob3Zlcntib3JkZXItY29sb3I6I2ZhYWJiODtjb2xvcjojZDYyYzQ5fQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkLCAuYnV0dG9uLnJlZCwgYnV0dG9uLnJlZHtib3JkZXItY29sb3I6I2ZlZDNkMztiYWNrZ3JvdW5kLWNvbG9yOiNmZWQzZDM7Y29sb3I6I2Q2MmM0OX0KYTphY3RpdmUsIGE6Zm9jdXN7b3V0bGluZTpub25lfQphLCAucHNldWRvbGlua3tjb2xvcjojMmQ2NmI4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgMC4zczstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW9wZXJhLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1zLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOmNvbG9yIDAuM3MsIGJvcmRlciAwLjNzfQoucHNldWRvbGlua3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2NvbG9yOiMyZDY2Yjh9CmE6aG92ZXIsIC5wc2V1ZG9saW5rOmhvdmVyLCAucHNldWRvYnV0dG9uOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5ob3ZlcmxpbmsgLnBzZXVkb2xpbmt7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApfQouaG92ZXJsaW5rOmhvdmVyIC5wc2V1ZG9saW5re3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMyZDY2Yjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzllY2RmOH0KLmhvdmVybGluazpob3ZlciAucHNldWRvbGluazpob3Zlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWFlMGYxO2NvbG9yOiMxMmE1ZGN9CmEgaW1ne2JvcmRlcjpub25lIWltcG9ydGFudH0KLncxe3dpZHRoOjFweCFpbXBvcnRhbnR9Ci53Mnt3aWR0aDoycHghaW1wb3J0YW50fQoudzN7d2lkdGg6M3B4IWltcG9ydGFudH0KLnc0e3dpZHRoOjRweCFpbXBvcnRhbnR9Ci53NXt3aWR0aDo1cHghaW1wb3J0YW50fQoudzZ7d2lkdGg6NnB4IWltcG9ydGFudH0KLnc3e3dpZHRoOjdweCFpbXBvcnRhbnR9Ci53OHt3aWR0aDo4cHghaW1wb3J0YW50fQoudzl7d2lkdGg6OXB4IWltcG9ydGFudH0KLncxMHt3aWR0aDoxMHB4IWltcG9ydGFudH0KLncxMXt3aWR0aDoxMXB4IWltcG9ydGFudH0KLncxMnt3aWR0aDoxMnB4IWltcG9ydGFudH0KLncxM3t3aWR0aDoxM3B4IWltcG9ydGFudH0KLncxNHt3aWR0aDoxNHB4IWltcG9ydGFudH0KLncxNXt3aWR0aDoxNXB4IWltcG9ydGFudH0KLncxNnt3aWR0aDoxNnB4IWltcG9ydGFudH0KLncxN3t3aWR0aDoxN3B4IWltcG9ydGFudH0KLncxOHt3aWR0aDoxOHB4IWltcG9ydGFudH0KLncxOXt3aWR0aDoxOXB4IWltcG9ydGFudH0KLncyMHt3aWR0aDoyMHB4IWltcG9ydGFudH0KLncyMXt3aWR0aDoyMXB4IWltcG9ydGFudH0KLncyMnt3aWR0aDoyMnB4IWltcG9ydGFudH0KLncyM3t3aWR0aDoyM3B4IWltcG9ydGFudH0KLncyNHt3aWR0aDoyNHB4IWltcG9ydGFudH0KLncyNXt3aWR0aDoyNXB4IWltcG9ydGFudH0KLnczMHt3aWR0aDozMHB4IWltcG9ydGFudH0KLnczMnt3aWR0aDozMnB4IWltcG9ydGFudH0KLnczNXt3aWR0aDozNXB4IWltcG9ydGFudH0KLnc0MHt3aWR0aDo0MHB4IWltcG9ydGFudH0KLnc0NXt3aWR0aDo0NXB4IWltcG9ydGFudH0KLnc0OHt3aWR0aDo0OHB4IWltcG9ydGFudH0KLnc1MHt3aWR0aDo1MHB4IWltcG9ydGFudH0KLnc1NXt3aWR0aDo1NXB4IWltcG9ydGFudH0KLnc2MHt3aWR0aDo2MHB4IWltcG9ydGFudH0KLnc2NHt3aWR0aDo2NHB4IWltcG9ydGFudH0KLnc2NXt3aWR0aDo2NXB4IWltcG9ydGFudH0KLnc3MHt3aWR0aDo3MHB4IWltcG9ydGFudH0KLnc3NXt3aWR0aDo3NXB4IWltcG9ydGFudH0KLnc4MHt3aWR0aDo4MHB4IWltcG9ydGFudH0KLnc4NXt3aWR0aDo4NXB4IWltcG9ydGFudH0KLnc5MHt3aWR0aDo5MHB4IWltcG9ydGFudH0KLnc5NXt3aWR0aDo5NXB4IWltcG9ydGFudH0KLnc5Nnt3aWR0aDo5NnB4IWltcG9ydGFudH0KLncxMDB7d2lkdGg6MTAwcHghaW1wb3J0YW50fQoudzEwNXt3aWR0aDoxMDVweCFpbXBvcnRhbnR9Ci53MTEwe3dpZHRoOjExMHB4IWltcG9ydGFudH0KLncxMTV7d2lkdGg6MTE1cHghaW1wb3J0YW50fQoudzEyMHt3aWR0aDoxMjBweCFpbXBvcnRhbnR9Ci53MTI1e3dpZHRoOjEyNXB4IWltcG9ydGFudH0KLncxMzB7d2lkdGg6MTMwcHghaW1wb3J0YW50fQoudzEzNXt3aWR0aDoxMzVweCFpbXBvcnRhbnR9Ci53MTQwe3dpZHRoOjE0MHB4IWltcG9ydGFudH0KLncxNDV7d2lkdGg6MTQ1cHghaW1wb3J0YW50fQoudzE1MHt3aWR0aDoxNTBweCFpbXBvcnRhbnR9Ci53MTU1e3dpZHRoOjE1NXB4IWltcG9ydGFudH0KLncxNjB7d2lkdGg6MTYwcHghaW1wb3J0YW50fQoudzE2NXt3aWR0aDoxNjVweCFpbXBvcnRhbnR9Ci53MTcwe3dpZHRoOjE3MHB4IWltcG9ydGFudH0KLncxNzV7d2lkdGg6MTc1cHghaW1wb3J0YW50fQoudzE4MHt3aWR0aDoxODBweCFpbXBvcnRhbnR9Ci53MTg1e3dpZHRoOjE4NXB4IWltcG9ydGFudH0KLncxOTB7d2lkdGg6MTkwcHghaW1wb3J0YW50fQoudzE5NXt3aWR0aDoxOTVweCFpbXBvcnRhbnR9Ci53MjAwe3dpZHRoOjIwMHB4IWltcG9ydGFudH0KLncyMTB7d2lkdGg6MjEwcHghaW1wb3J0YW50fQoudzIyMHt3aWR0aDoyMjBweCFpbXBvcnRhbnR9Ci53MjMwe3dpZHRoOjIzMHB4IWltcG9ydGFudH0KLncyNDB7d2lkdGg6MjQwcHghaW1wb3J0YW50fQoudzI1MHt3aWR0aDoyNTBweCFpbXBvcnRhbnR9Ci53MjYwe3dpZHRoOjI2MHB4IWltcG9ydGFudH0KLncyNzB7d2lkdGg6MjcwcHghaW1wb3J0YW50fQoudzI4MHt3aWR0aDoyODBweCFpbXBvcnRhbnR9Ci53Mjkwe3dpZHRoOjI5MHB4IWltcG9ydGFudH0KLnczMDB7d2lkdGg6MzAwcHghaW1wb3J0YW50fQoudzMxMHt3aWR0aDozMTBweCFpbXBvcnRhbnR9Ci53MzIwe3dpZHRoOjMyMHB4IWltcG9ydGFudH0KLnczMzB7d2lkdGg6MzMwcHghaW1wb3J0YW50fQoudzM0MHt3aWR0aDozNDBweCFpbXBvcnRhbnR9Ci53MzUwe3dpZHRoOjM1MHB4IWltcG9ydGFudH0KLnczNjB7d2lkdGg6MzYwcHghaW1wb3J0YW50fQoudzM3MHt3aWR0aDozNzBweCFpbXBvcnRhbnR9Ci53Mzgwe3dpZHRoOjM4MHB4IWltcG9ydGFudH0KLnczOTB7d2lkdGg6MzkwcHghaW1wb3J0YW50fQoudzQwMHt3aWR0aDo0MDBweCFpbXBvcnRhbnR9Ci53NDIwe3dpZHRoOjQyMHB4IWltcG9ydGFudH0KLnc0NTB7d2lkdGg6NDUwcHghaW1wb3J0YW50fQoudzUwMHt3aWR0aDo1MDBweCFpbXBvcnRhbnR9Ci53NTIwe3dpZHRoOjUyMHB4IWltcG9ydGFudH0KLnc1NTB7d2lkdGg6NTUwcHghaW1wb3J0YW50fQoudzYwMHt3aWR0aDo2MDBweCFpbXBvcnRhbnR9Ci53NjIwe3dpZHRoOjYyMHB4IWltcG9ydGFudH0KLnc2NTB7d2lkdGg6NjUwcHghaW1wb3J0YW50fQoudzcwMHt3aWR0aDo3MDBweCFpbXBvcnRhbnR9Ci53NzIwe3dpZHRoOjcyMHB4IWltcG9ydGFudH0KLnc3NTB7d2lkdGg6NzUwcHghaW1wb3J0YW50fQoudzgwMHt3aWR0aDo4MDBweCFpbXBvcnRhbnR9Ci53ODIwe3dpZHRoOjgyMHB4IWltcG9ydGFudH0KLnc4NTB7d2lkdGg6ODUwcHghaW1wb3J0YW50fQoudzkwMHt3aWR0aDo5MDBweCFpbXBvcnRhbnR9Ci53OTIwe3dpZHRoOjkyMHB4IWltcG9ydGFudH0KLnc5NTB7d2lkdGg6OTUwcHghaW1wb3J0YW50fQoudzEwMDB7d2lkdGg6MTAwMHB4IWltcG9ydGFudH0KLncxMDUwe3dpZHRoOjEwNTBweCFpbXBvcnRhbnR9Ci53MTEwMHt3aWR0aDoxMTAwcHghaW1wb3J0YW50fQoudzExNTB7d2lkdGg6MTE1MHB4IWltcG9ydGFudH0KLncxMTYwe3dpZHRoOjExNjBweCFpbXBvcnRhbnR9Ci53MTIwMHt3aWR0aDoxMjAwcHghaW1wb3J0YW50fQoudzEyNTB7d2lkdGg6MTI1MHB4IWltcG9ydGFudH0KLncxMzAwe3dpZHRoOjEzMDBweCFpbXBvcnRhbnR9Ci53MTM1MHt3aWR0aDoxMzUwcHghaW1wb3J0YW50fQoudzE0MDB7d2lkdGg6MTQwMHB4IWltcG9ydGFudH0KLncxNDUwe3dpZHRoOjE0NTBweCFpbXBvcnRhbnR9Ci53MTUwMHt3aWR0aDoxNTAwcHghaW1wb3J0YW50fQoudzVwe3dpZHRoOjUlIWltcG9ydGFudH0KLncxMHB7d2lkdGg6MTAlIWltcG9ydGFudH0KLncxNXB7d2lkdGg6MTUlIWltcG9ydGFudH0KLncyMHB7d2lkdGg6MjAlIWltcG9ydGFudH0KLncyNXB7d2lkdGg6MjUlIWltcG9ydGFudH0KLnczMHB7d2lkdGg6MzAlIWltcG9ydGFudH0KLnczNXB7d2lkdGg6MzUlIWltcG9ydGFudH0KLnc0MHB7d2lkdGg6NDAlIWltcG9ydGFudH0KLnc0NXB7d2lkdGg6NDUlIWltcG9ydGFudH0KLnc1MHB7d2lkdGg6NTAlIWltcG9ydGFudH0KLnc1NXB7d2lkdGg6NTUlIWltcG9ydGFudH0KLnc2MHB7d2lkdGg6NjAlIWltcG9ydGFudH0KLnc2NXB7d2lkdGg6NjUlIWltcG9ydGFudH0KLnc3MHB7d2lkdGg6NzAlIWltcG9ydGFudH0KLnc3NXB7d2lkdGg6NzUlIWltcG9ydGFudH0KLnc4MHB7d2lkdGg6ODAlIWltcG9ydGFudH0KLnc4NXB7d2lkdGg6ODUlIWltcG9ydGFudH0KLnc5MHB7d2lkdGg6OTAlIWltcG9ydGFudH0KLnc5NXB7d2lkdGg6OTUlIWltcG9ydGFudH0KLncxMDBwe3dpZHRoOjEwMCUhaW1wb3J0YW50fQouaDB7aGVpZ2h0OjBweCFpbXBvcnRhbnR9Ci5oMXtoZWlnaHQ6MXB4IWltcG9ydGFudH0KLmgye2hlaWdodDoycHghaW1wb3J0YW50fQouaDN7aGVpZ2h0OjNweCFpbXBvcnRhbnR9Ci5oNHtoZWlnaHQ6NHB4IWltcG9ydGFudH0KLmg1e2hlaWdodDo1cHghaW1wb3J0YW50fQouaDEwe2hlaWdodDoxMHB4IWltcG9ydGFudH0KLmgxNXtoZWlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5oMTZ7aGVpZ2h0OjE2cHghaW1wb3J0YW50fQouaDIwe2hlaWdodDoyMHB4IWltcG9ydGFudH0KLmgyNHtoZWlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5oMjV7aGVpZ2h0OjI1cHghaW1wb3J0YW50fQouaDMwe2hlaWdodDozMHB4IWltcG9ydGFudH0KLmgzMntoZWlnaHQ6MzJweCFpbXBvcnRhbnR9Ci5oMzV7aGVpZ2h0OjM1cHghaW1wb3J0YW50fQouaDQwe2hlaWdodDo0MHB4IWltcG9ydGFudH0KLmg0NXtoZWlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5oNDh7aGVpZ2h0OjQ4cHghaW1wb3J0YW50fQouaDUwe2hlaWdodDo1MHB4IWltcG9ydGFudH0KLmg1NXtoZWlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5oNjB7aGVpZ2h0OjYwcHghaW1wb3J0YW50fQouaDY0e2hlaWdodDo2NHB4IWltcG9ydGFudH0KLmg2NXtoZWlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5oNzB7aGVpZ2h0OjcwcHghaW1wb3J0YW50fQouaDc1e2hlaWdodDo3NXB4IWltcG9ydGFudH0KLmg4MHtoZWlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5oODV7aGVpZ2h0Ojg1cHghaW1wb3J0YW50fQouaDkwe2hlaWdodDo5MHB4IWltcG9ydGFudH0KLmg5NXtoZWlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5oOTZ7aGVpZ2h0Ojk2cHghaW1wb3J0YW50fQouaDEwMHtoZWlnaHQ6MTAwcHghaW1wb3J0YW50fQouaDExMHtoZWlnaHQ6MTEwcHghaW1wb3J0YW50fQouaDEyMHtoZWlnaHQ6MTIwcHghaW1wb3J0YW50fQouaDEzMHtoZWlnaHQ6MTMwcHghaW1wb3J0YW50fQouaDE0MHtoZWlnaHQ6MTQwcHghaW1wb3J0YW50fQouaDE1MHtoZWlnaHQ6MTUwcHghaW1wb3J0YW50fQouaDE2MHtoZWlnaHQ6MTYwcHghaW1wb3J0YW50fQouaDE3MHtoZWlnaHQ6MTcwcHghaW1wb3J0YW50fQouaDE4MHtoZWlnaHQ6MTgwcHghaW1wb3J0YW50fQouaDE5MHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50fQouaDIwMHtoZWlnaHQ6MjAwcHghaW1wb3J0YW50fQouaDI1MHtoZWlnaHQ6MjUwcHghaW1wb3J0YW50fQouaDMwMHtoZWlnaHQ6MzAwcHghaW1wb3J0YW50fQouaDM1MHtoZWlnaHQ6MzUwcHghaW1wb3J0YW50fQouaDQwMHtoZWlnaHQ6NDAwcHghaW1wb3J0YW50fQouaDQ1MHtoZWlnaHQ6NDUwcHghaW1wb3J0YW50fQouaDUwMHtoZWlnaHQ6NTAwcHghaW1wb3J0YW50fQouaDU1MHtoZWlnaHQ6NTUwcHghaW1wb3J0YW50fQouaDYwMHtoZWlnaHQ6NjAwcHghaW1wb3J0YW50fQouaDY1MHtoZWlnaHQ6NjUwcHghaW1wb3J0YW50fQouaDcwMHtoZWlnaHQ6NzAwcHghaW1wb3J0YW50fQouaDc1MHtoZWlnaHQ6NzUwcHghaW1wb3J0YW50fQouaDgwMHtoZWlnaHQ6ODAwcHghaW1wb3J0YW50fQouaDg1MHtoZWlnaHQ6ODUwcHghaW1wb3J0YW50fQouaDkwMHtoZWlnaHQ6OTAwcHghaW1wb3J0YW50fQouaDk1MHtoZWlnaHQ6OTUwcHghaW1wb3J0YW50fQouaDEwMDB7aGVpZ2h0OjEwMDBweCFpbXBvcnRhbnR9Ci5oYXtoZWlnaHQ6YXV0byFpbXBvcnRhbnR9Ci5kaXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9Ci5kaWJ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fQouZGJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Ci5kaS5oaWRlLCAuZGIuaGlkZSwgLmRpYi5oaWRlLCAuZGkuZmlsdGVyLW5vbWF0Y2gsIC5kYi5maWx0ZXItbm9tYXRjaCwgLmRpYi5maWx0ZXItbm9tYXRjaHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQoub2h7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0KLm92e292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fQouZmx7ZmxvYXQ6bGVmdH0KLmZye2Zsb2F0OnJpZ2h0fQouY2J7Y2xlYXI6Ym90aH0KLmNye2NsZWFyOnJpZ2h0fQouY2x7Y2xlYXI6bGVmdH0KLnAwe3BhZGRpbmc6MHB4IWltcG9ydGFudH0KLnAxe3BhZGRpbmc6MXB4IWltcG9ydGFudH0KLnAye3BhZGRpbmc6MnB4IWltcG9ydGFudH0KLnAze3BhZGRpbmc6M3B4IWltcG9ydGFudH0KLnA0e3BhZGRpbmc6NHB4IWltcG9ydGFudH0KLnA1e3BhZGRpbmc6NXB4IWltcG9ydGFudH0KLnA2e3BhZGRpbmc6NnB4IWltcG9ydGFudH0KLnA3e3BhZGRpbmc6N3B4IWltcG9ydGFudH0KLnA4e3BhZGRpbmc6OHB4IWltcG9ydGFudH0KLnA5e3BhZGRpbmc6OXB4IWltcG9ydGFudH0KLnAxMHtwYWRkaW5nOjEwcHghaW1wb3J0YW50fQoucDE1e3BhZGRpbmc6MTVweCFpbXBvcnRhbnR9Ci5wMjB7cGFkZGluZzoyMHB4IWltcG9ydGFudH0KLnAyNXtwYWRkaW5nOjI1cHghaW1wb3J0YW50fQoucDMwe3BhZGRpbmc6MzBweCFpbXBvcnRhbnR9Ci5wMzV7cGFkZGluZzozNXB4IWltcG9ydGFudH0KLnA0MHtwYWRkaW5nOjQwcHghaW1wb3J0YW50fQoucDQ1e3BhZGRpbmc6NDVweCFpbXBvcnRhbnR9Ci5wNTB7cGFkZGluZzo1MHB4IWltcG9ydGFudH0KLnA1NXtwYWRkaW5nOjU1cHghaW1wb3J0YW50fQoucDYwe3BhZGRpbmc6NjBweCFpbXBvcnRhbnR9Ci5wNjV7cGFkZGluZzo2NXB4IWltcG9ydGFudH0KLnA3MHtwYWRkaW5nOjcwcHghaW1wb3J0YW50fQoucDc1e3BhZGRpbmc6NzVweCFpbXBvcnRhbnR9Ci5wODB7cGFkZGluZzo4MHB4IWltcG9ydGFudH0KLnA4NXtwYWRkaW5nOjg1cHghaW1wb3J0YW50fQoucDkwe3BhZGRpbmc6OTBweCFpbXBvcnRhbnR9Ci5wOTV7cGFkZGluZzo5NXB4IWltcG9ydGFudH0KLnAxMDB7cGFkZGluZzoxMDBweCFpbXBvcnRhbnR9Ci5wMTEwe3BhZGRpbmc6MTEwcHghaW1wb3J0YW50fQoucDEyMHtwYWRkaW5nOjEyMHB4IWltcG9ydGFudH0KLnAxMzB7cGFkZGluZzoxMzBweCFpbXBvcnRhbnR9Ci5wMTQwe3BhZGRpbmc6MTQwcHghaW1wb3J0YW50fQoucDE1MHtwYWRkaW5nOjE1MHB4IWltcG9ydGFudH0KLnAxNjB7cGFkZGluZzoxNjBweCFpbXBvcnRhbnR9Ci5wMTcwe3BhZGRpbmc6MTcwcHghaW1wb3J0YW50fQoucDE4MHtwYWRkaW5nOjE4MHB4IWltcG9ydGFudH0KLnAxOTB7cGFkZGluZzoxOTBweCFpbXBvcnRhbnR9Ci5wMjAwe3BhZGRpbmc6MjAwcHghaW1wb3J0YW50fQoucDI1MHtwYWRkaW5nOjI1MHB4IWltcG9ydGFudH0KLnAzMDB7cGFkZGluZzozMDBweCFpbXBvcnRhbnR9Ci5wMzUwe3BhZGRpbmc6MzUwcHghaW1wb3J0YW50fQoucDQwMHtwYWRkaW5nOjQwMHB4IWltcG9ydGFudH0KLnA0NTB7cGFkZGluZzo0NTBweCFpbXBvcnRhbnR9Ci5wNTAwe3BhZGRpbmc6NTAwcHghaW1wb3J0YW50fQoucGwwe3BhZGRpbmctbGVmdDowcHghaW1wb3J0YW50fQoucGwxe3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50fQoucGwye3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50fQoucGwze3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50fQoucGw0e3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50fQoucGw1e3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50fQoucGw2e3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50fQoucGw3e3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50fQoucGw4e3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50fQoucGw5e3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50fQoucGwxMHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnR9Ci5wbDExe3BhZGRpbmctbGVmdDoxMXB4IWltcG9ydGFudH0KLnBsMTJ7cGFkZGluZy1sZWZ0OjEycHghaW1wb3J0YW50fQoucGwxM3twYWRkaW5nLWxlZnQ6MTNweCFpbXBvcnRhbnR9Ci5wbDE0e3BhZGRpbmctbGVmdDoxNHB4IWltcG9ydGFudH0KLnBsMTV7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50fQoucGwxNntwYWRkaW5nLWxlZnQ6MTZweCFpbXBvcnRhbnR9Ci5wbDE3e3BhZGRpbmctbGVmdDoxN3B4IWltcG9ydGFudH0KLnBsMTh7cGFkZGluZy1sZWZ0OjE4cHghaW1wb3J0YW50fQoucGwxOXtwYWRkaW5nLWxlZnQ6MTlweCFpbXBvcnRhbnR9Ci5wbDIwe3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudH0KLnBsMjF7cGFkZGluZy1sZWZ0OjIxcHghaW1wb3J0YW50fQoucGwyMntwYWRkaW5nLWxlZnQ6MjJweCFpbXBvcnRhbnR9Ci5wbDIze3BhZGRpbmctbGVmdDoyM3B4IWltcG9ydGFudH0KLnBsMjR7cGFkZGluZy1sZWZ0OjI0cHghaW1wb3J0YW50fQoucGwyNXtwYWRkaW5nLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5wbDI2e3BhZGRpbmctbGVmdDoyNnB4IWltcG9ydGFudH0KLnBsMjd7cGFkZGluZy1sZWZ0OjI3cHghaW1wb3J0YW50fQoucGwyOHtwYWRkaW5nLWxlZnQ6MjhweCFpbXBvcnRhbnR9Ci5wbDI5e3BhZGRpbmctbGVmdDoyOXB4IWltcG9ydGFudH0KLnBsMzB7cGFkZGluZy1sZWZ0OjMwcHghaW1wb3J0YW50fQoucGwzNXtwYWRkaW5nLWxlZnQ6MzVweCFpbXBvcnRhbnR9Ci5wbDQwe3BhZGRpbmctbGVmdDo0MHB4IWltcG9ydGFudH0KLnBsNDV7cGFkZGluZy1sZWZ0OjQ1cHghaW1wb3J0YW50fQoucGw1MHtwYWRkaW5nLWxlZnQ6NTBweCFpbXBvcnRhbnR9Ci5wbDU1e3BhZGRpbmctbGVmdDo1NXB4IWltcG9ydGFudH0KLnBsNjB7cGFkZGluZy1sZWZ0OjYwcHghaW1wb3J0YW50fQoucGw2NXtwYWRkaW5nLWxlZnQ6NjVweCFpbXBvcnRhbnR9Ci5wbDcwe3BhZGRpbmctbGVmdDo3MHB4IWltcG9ydGFudH0KLnBsNzV7cGFkZGluZy1sZWZ0Ojc1cHghaW1wb3J0YW50fQoucGw4MHtwYWRkaW5nLWxlZnQ6ODBweCFpbXBvcnRhbnR9Ci5wbDg1e3BhZGRpbmctbGVmdDo4NXB4IWltcG9ydGFudH0KLnBsOTB7cGFkZGluZy1sZWZ0OjkwcHghaW1wb3J0YW50fQoucGw5NXtwYWRkaW5nLWxlZnQ6OTVweCFpbXBvcnRhbnR9Ci5wbDEwMHtwYWRkaW5nLWxlZnQ6MTAwcHghaW1wb3J0YW50fQoucGwxMTB7cGFkZGluZy1sZWZ0OjExMHB4IWltcG9ydGFudH0KLnBsMTIwe3BhZGRpbmctbGVmdDoxMjBweCFpbXBvcnRhbnR9Ci5wbDEzMHtwYWRkaW5nLWxlZnQ6MTMwcHghaW1wb3J0YW50fQoucGwxNDB7cGFkZGluZy1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLnBsMTUwe3BhZGRpbmctbGVmdDoxNTBweCFpbXBvcnRhbnR9Ci5wbDE2MHtwYWRkaW5nLWxlZnQ6MTYwcHghaW1wb3J0YW50fQoucGwxNzB7cGFkZGluZy1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLnBsMTgwe3BhZGRpbmctbGVmdDoxODBweCFpbXBvcnRhbnR9Ci5wbDE5MHtwYWRkaW5nLWxlZnQ6MTkwcHghaW1wb3J0YW50fQoucGwyMDB7cGFkZGluZy1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLnByMHtwYWRkaW5nLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5wcjF7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50fQoucHIye3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudH0KLnByM3twYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5wcjR7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50fQoucHI1e3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudH0KLnByNntwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5wcjd7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50fQoucHI4e3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudH0KLnByOXtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5wcjEwe3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnR9Ci5wcjExe3BhZGRpbmctcmlnaHQ6MTFweCFpbXBvcnRhbnR9Ci5wcjEye3BhZGRpbmctcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5wcjEze3BhZGRpbmctcmlnaHQ6MTNweCFpbXBvcnRhbnR9Ci5wcjE0e3BhZGRpbmctcmlnaHQ6MTRweCFpbXBvcnRhbnR9Ci5wcjE1e3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5wcjE2e3BhZGRpbmctcmlnaHQ6MTZweCFpbXBvcnRhbnR9Ci5wcjE3e3BhZGRpbmctcmlnaHQ6MTdweCFpbXBvcnRhbnR9Ci5wcjE4e3BhZGRpbmctcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5wcjE5e3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnR9Ci5wcjIwe3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnR9Ci5wcjIxe3BhZGRpbmctcmlnaHQ6MjFweCFpbXBvcnRhbnR9Ci5wcjIye3BhZGRpbmctcmlnaHQ6MjJweCFpbXBvcnRhbnR9Ci5wcjIze3BhZGRpbmctcmlnaHQ6MjNweCFpbXBvcnRhbnR9Ci5wcjI0e3BhZGRpbmctcmlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5wcjI1e3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5wcjI2e3BhZGRpbmctcmlnaHQ6MjZweCFpbXBvcnRhbnR9Ci5wcjI3e3BhZGRpbmctcmlnaHQ6MjdweCFpbXBvcnRhbnR9Ci5wcjI4e3BhZGRpbmctcmlnaHQ6MjhweCFpbXBvcnRhbnR9Ci5wcjI5e3BhZGRpbmctcmlnaHQ6MjlweCFpbXBvcnRhbnR9Ci5wcjMwe3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnR9Ci5wcjM1e3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnR9Ci5wcjQwe3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5wcjQ1e3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5wcjUwe3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnR9Ci5wcjU1e3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5wcjYwe3BhZGRpbmctcmlnaHQ6NjBweCFpbXBvcnRhbnR9Ci5wcjY1e3BhZGRpbmctcmlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5wcjcwe3BhZGRpbmctcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5wcjc1e3BhZGRpbmctcmlnaHQ6NzVweCFpbXBvcnRhbnR9Ci5wcjgwe3BhZGRpbmctcmlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5wcjg1e3BhZGRpbmctcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5wcjkwe3BhZGRpbmctcmlnaHQ6OTBweCFpbXBvcnRhbnR9Ci5wcjk1e3BhZGRpbmctcmlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5wcjEwMHtwYWRkaW5nLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLnByMTEwe3BhZGRpbmctcmlnaHQ6MTEwcHghaW1wb3J0YW50fQoucHIxMjB7cGFkZGluZy1yaWdodDoxMjBweCFpbXBvcnRhbnR9Ci5wcjEzMHtwYWRkaW5nLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLnByMTQwe3BhZGRpbmctcmlnaHQ6MTQwcHghaW1wb3J0YW50fQoucHIxNTB7cGFkZGluZy1yaWdodDoxNTBweCFpbXBvcnRhbnR9Ci5wcjE2MHtwYWRkaW5nLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLnByMTcwe3BhZGRpbmctcmlnaHQ6MTcwcHghaW1wb3J0YW50fQoucHIxODB7cGFkZGluZy1yaWdodDoxODBweCFpbXBvcnRhbnR9Ci5wcjE5MHtwYWRkaW5nLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLnByMjAwe3BhZGRpbmctcmlnaHQ6MjAwcHghaW1wb3J0YW50fQoucHQwe3BhZGRpbmctdG9wOjBweCFpbXBvcnRhbnR9Ci5wdDF7cGFkZGluZy10b3A6MXB4IWltcG9ydGFudH0KLnB0MntwYWRkaW5nLXRvcDoycHghaW1wb3J0YW50fQoucHQze3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnR9Ci5wdDR7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudH0KLnB0NXtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50fQoucHQ2e3BhZGRpbmctdG9wOjZweCFpbXBvcnRhbnR9Ci5wdDd7cGFkZGluZy10b3A6N3B4IWltcG9ydGFudH0KLnB0OHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50fQoucHQ5e3BhZGRpbmctdG9wOjlweCFpbXBvcnRhbnR9Ci5wdDEwe3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50fQoucHQxMXtwYWRkaW5nLXRvcDoxMXB4IWltcG9ydGFudH0KLnB0MTJ7cGFkZGluZy10b3A6MTJweCFpbXBvcnRhbnR9Ci5wdDEze3BhZGRpbmctdG9wOjEzcHghaW1wb3J0YW50fQoucHQxNHtwYWRkaW5nLXRvcDoxNHB4IWltcG9ydGFudH0KLnB0MTV7cGFkZGluZy10b3A6MTVweCFpbXBvcnRhbnR9Ci5wdDE2e3BhZGRpbmctdG9wOjE2cHghaW1wb3J0YW50fQoucHQxN3twYWRkaW5nLXRvcDoxN3B4IWltcG9ydGFudH0KLnB0MTh7cGFkZGluZy10b3A6MThweCFpbXBvcnRhbnR9Ci5wdDE5e3BhZGRpbmctdG9wOjE5cHghaW1wb3J0YW50fQoucHQyMHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudH0KLnB0MjF7cGFkZGluZy10b3A6MjFweCFpbXBvcnRhbnR9Ci5wdDIye3BhZGRpbmctdG9wOjIycHghaW1wb3J0YW50fQoucHQyM3twYWRkaW5nLXRvcDoyM3B4IWltcG9ydGFudH0KLnB0MjR7cGFkZGluZy10b3A6MjRweCFpbXBvcnRhbnR9Ci5wdDI1e3BhZGRpbmctdG9wOjI1cHghaW1wb3J0YW50fQoucHQyNntwYWRkaW5nLXRvcDoyNnB4IWltcG9ydGFudH0KLnB0Mjd7cGFkZGluZy10b3A6MjdweCFpbXBvcnRhbnR9Ci5wdDI4e3BhZGRpbmctdG9wOjI4cHghaW1wb3J0YW50fQoucHQyOXtwYWRkaW5nLXRvcDoyOXB4IWltcG9ydGFudH0KLnB0MzB7cGFkZGluZy10b3A6MzBweCFpbXBvcnRhbnR9Ci5wdDM1e3BhZGRpbmctdG9wOjM1cHghaW1wb3J0YW50fQoucHQ0MHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudH0KLnB0NDV7cGFkZGluZy10b3A6NDVweCFpbXBvcnRhbnR9Ci5wdDUwe3BhZGRpbmctdG9wOjUwcHghaW1wb3J0YW50fQoucHQ1NXtwYWRkaW5nLXRvcDo1NXB4IWltcG9ydGFudH0KLnB0NjB7cGFkZGluZy10b3A6NjBweCFpbXBvcnRhbnR9Ci5wdDY1e3BhZGRpbmctdG9wOjY1cHghaW1wb3J0YW50fQoucHQ3MHtwYWRkaW5nLXRvcDo3MHB4IWltcG9ydGFudH0KLnB0NzV7cGFkZGluZy10b3A6NzVweCFpbXBvcnRhbnR9Ci5wdDgwe3BhZGRpbmctdG9wOjgwcHghaW1wb3J0YW50fQoucHQ4NXtwYWRkaW5nLXRvcDo4NXB4IWltcG9ydGFudH0KLnB0OTB7cGFkZGluZy10b3A6OTBweCFpbXBvcnRhbnR9Ci5wdDk1e3BhZGRpbmctdG9wOjk1cHghaW1wb3J0YW50fQoucHQxMDB7cGFkZGluZy10b3A6MTAwcHghaW1wb3J0YW50fQoucHQxMTB7cGFkZGluZy10b3A6MTEwcHghaW1wb3J0YW50fQoucHQxMjB7cGFkZGluZy10b3A6MTIwcHghaW1wb3J0YW50fQoucHQxMzB7cGFkZGluZy10b3A6MTMwcHghaW1wb3J0YW50fQoucHQxNDB7cGFkZGluZy10b3A6MTQwcHghaW1wb3J0YW50fQoucHQxNTB7cGFkZGluZy10b3A6MTUwcHghaW1wb3J0YW50fQoucHQxNjB7cGFkZGluZy10b3A6MTYwcHghaW1wb3J0YW50fQoucHQxNzB7cGFkZGluZy10b3A6MTcwcHghaW1wb3J0YW50fQoucHQxODB7cGFkZGluZy10b3A6MTgwcHghaW1wb3J0YW50fQoucHQxOTB7cGFkZGluZy10b3A6MTkwcHghaW1wb3J0YW50fQoucHQyMDB7cGFkZGluZy10b3A6MjAwcHghaW1wb3J0YW50fQoucGIwe3BhZGRpbmctYm90dG9tOjBweCFpbXBvcnRhbnR9Ci5wYjF7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudH0KLnBiMntwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50fQoucGIze3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnR9Ci5wYjR7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudH0KLnBiNXtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50fQoucGI2e3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnR9Ci5wYjd7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudH0KLnBiOHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50fQoucGI5e3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnR9Ci5wYjEwe3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50fQoucGIxMXtwYWRkaW5nLWJvdHRvbToxMXB4IWltcG9ydGFudH0KLnBiMTJ7cGFkZGluZy1ib3R0b206MTJweCFpbXBvcnRhbnR9Ci5wYjEze3BhZGRpbmctYm90dG9tOjEzcHghaW1wb3J0YW50fQoucGIxNHtwYWRkaW5nLWJvdHRvbToxNHB4IWltcG9ydGFudH0KLnBiMTV7cGFkZGluZy1ib3R0b206MTVweCFpbXBvcnRhbnR9Ci5wYjE2e3BhZGRpbmctYm90dG9tOjE2cHghaW1wb3J0YW50fQoucGIxN3twYWRkaW5nLWJvdHRvbToxN3B4IWltcG9ydGFudH0KLnBiMTh7cGFkZGluZy1ib3R0b206MThweCFpbXBvcnRhbnR9Ci5wYjE5e3BhZGRpbmctYm90dG9tOjE5cHghaW1wb3J0YW50fQoucGIyMHtwYWRkaW5nLWJvdHRvbToyMHB4IWltcG9ydGFudH0KLnBiMjF7cGFkZGluZy1ib3R0b206MjFweCFpbXBvcnRhbnR9Ci5wYjIye3BhZGRpbmctYm90dG9tOjIycHghaW1wb3J0YW50fQoucGIyM3twYWRkaW5nLWJvdHRvbToyM3B4IWltcG9ydGFudH0KLnBiMjR7cGFkZGluZy1ib3R0b206MjRweCFpbXBvcnRhbnR9Ci5wYjI1e3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50fQoucGIyNntwYWRkaW5nLWJvdHRvbToyNnB4IWltcG9ydGFudH0KLnBiMjd7cGFkZGluZy1ib3R0b206MjdweCFpbXBvcnRhbnR9Ci5wYjI4e3BhZGRpbmctYm90dG9tOjI4cHghaW1wb3J0YW50fQoucGIyOXtwYWRkaW5nLWJvdHRvbToyOXB4IWltcG9ydGFudH0KLnBiMzB7cGFkZGluZy1ib3R0b206MzBweCFpbXBvcnRhbnR9Ci5wYjM1e3BhZGRpbmctYm90dG9tOjM1cHghaW1wb3J0YW50fQoucGI0MHtwYWRkaW5nLWJvdHRvbTo0MHB4IWltcG9ydGFudH0KLnBiNDV7cGFkZGluZy1ib3R0b206NDVweCFpbXBvcnRhbnR9Ci5wYjUwe3BhZGRpbmctYm90dG9tOjUwcHghaW1wb3J0YW50fQoucGI1NXtwYWRkaW5nLWJvdHRvbTo1NXB4IWltcG9ydGFudH0KLnBiNjB7cGFkZGluZy1ib3R0b206NjBweCFpbXBvcnRhbnR9Ci5wYjY1e3BhZGRpbmctYm90dG9tOjY1cHghaW1wb3J0YW50fQoucGI3MHtwYWRkaW5nLWJvdHRvbTo3MHB4IWltcG9ydGFudH0KLnBiNzV7cGFkZGluZy1ib3R0b206NzVweCFpbXBvcnRhbnR9Ci5wYjgwe3BhZGRpbmctYm90dG9tOjgwcHghaW1wb3J0YW50fQoucGI4NXtwYWRkaW5nLWJvdHRvbTo4NXB4IWltcG9ydGFudH0KLnBiOTB7cGFkZGluZy1ib3R0b206OTBweCFpbXBvcnRhbnR9Ci5wYjk1e3BhZGRpbmctYm90dG9tOjk1cHghaW1wb3J0YW50fQoucGIxMDB7cGFkZGluZy1ib3R0b206MTAwcHghaW1wb3J0YW50fQoucGIxMTB7cGFkZGluZy1ib3R0b206MTEwcHghaW1wb3J0YW50fQoucGIxMjB7cGFkZGluZy1ib3R0b206MTIwcHghaW1wb3J0YW50fQoucGIxMzB7cGFkZGluZy1ib3R0b206MTMwcHghaW1wb3J0YW50fQoucGIxNDB7cGFkZGluZy1ib3R0b206MTQwcHghaW1wb3J0YW50fQoucGIxNTB7cGFkZGluZy1ib3R0b206MTUwcHghaW1wb3J0YW50fQoucGIxNjB7cGFkZGluZy1ib3R0b206MTYwcHghaW1wb3J0YW50fQoucGIxNzB7cGFkZGluZy1ib3R0b206MTcwcHghaW1wb3J0YW50fQoucGIxODB7cGFkZGluZy1ib3R0b206MTgwcHghaW1wb3J0YW50fQoucGIxOTB7cGFkZGluZy1ib3R0b206MTkwcHghaW1wb3J0YW50fQoucGIyMDB7cGFkZGluZy1ib3R0b206MjAwcHghaW1wb3J0YW50fQoubWwtNTB7bWFyZ2luLWxlZnQ6LTUwcHghaW1wb3J0YW50fQoubWwtNDB7bWFyZ2luLWxlZnQ6LTQwcHghaW1wb3J0YW50fQoubWwtMzB7bWFyZ2luLWxlZnQ6LTMwcHghaW1wb3J0YW50fQoubWwtMjV7bWFyZ2luLWxlZnQ6LTI1cHghaW1wb3J0YW50fQoubWwtMjB7bWFyZ2luLWxlZnQ6LTIwcHghaW1wb3J0YW50fQoubWwtMTV7bWFyZ2luLWxlZnQ6LTE1cHghaW1wb3J0YW50fQoubWwtMTB7bWFyZ2luLWxlZnQ6LTEwcHghaW1wb3J0YW50fQoubWwtOXttYXJnaW4tbGVmdDotOXB4IWltcG9ydGFudH0KLm1sLTh7bWFyZ2luLWxlZnQ6LThweCFpbXBvcnRhbnR9Ci5tbC03e21hcmdpbi1sZWZ0Oi03cHghaW1wb3J0YW50fQoubWwtNnttYXJnaW4tbGVmdDotNnB4IWltcG9ydGFudH0KLm1sLTV7bWFyZ2luLWxlZnQ6LTVweCFpbXBvcnRhbnR9Ci5tbC00e21hcmdpbi1sZWZ0Oi00cHghaW1wb3J0YW50fQoubWwtM3ttYXJnaW4tbGVmdDotM3B4IWltcG9ydGFudH0KLm1sLTJ7bWFyZ2luLWxlZnQ6LTJweCFpbXBvcnRhbnR9Ci5tbC0xe21hcmdpbi1sZWZ0Oi0xcHghaW1wb3J0YW50fQoubWwwe21hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnR9Ci5tbDF7bWFyZ2luLWxlZnQ6MXB4IWltcG9ydGFudH0KLm1sMnttYXJnaW4tbGVmdDoycHghaW1wb3J0YW50fQoubWwze21hcmdpbi1sZWZ0OjNweCFpbXBvcnRhbnR9Ci5tbDR7bWFyZ2luLWxlZnQ6NHB4IWltcG9ydGFudH0KLm1sNXttYXJnaW4tbGVmdDo1cHghaW1wb3J0YW50fQoubWw2e21hcmdpbi1sZWZ0OjZweCFpbXBvcnRhbnR9Ci5tbDd7bWFyZ2luLWxlZnQ6N3B4IWltcG9ydGFudH0KLm1sOHttYXJnaW4tbGVmdDo4cHghaW1wb3J0YW50fQoubWw5e21hcmdpbi1sZWZ0OjlweCFpbXBvcnRhbnR9Ci5tbDEwe21hcmdpbi1sZWZ0OjEwcHghaW1wb3J0YW50fQoubWwxMXttYXJnaW4tbGVmdDoxMXB4IWltcG9ydGFudH0KLm1sMTJ7bWFyZ2luLWxlZnQ6MTJweCFpbXBvcnRhbnR9Ci5tbDEze21hcmdpbi1sZWZ0OjEzcHghaW1wb3J0YW50fQoubWwxNHttYXJnaW4tbGVmdDoxNHB4IWltcG9ydGFudH0KLm1sMTV7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnR9Ci5tbDE2e21hcmdpbi1sZWZ0OjE2cHghaW1wb3J0YW50fQoubWwxN3ttYXJnaW4tbGVmdDoxN3B4IWltcG9ydGFudH0KLm1sMTh7bWFyZ2luLWxlZnQ6MThweCFpbXBvcnRhbnR9Ci5tbDE5e21hcmdpbi1sZWZ0OjE5cHghaW1wb3J0YW50fQoubWwyMHttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudH0KLm1sMjV7bWFyZ2luLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5tbDMwe21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50fQoubWwzNXttYXJnaW4tbGVmdDozNXB4IWltcG9ydGFudH0KLm1sNDB7bWFyZ2luLWxlZnQ6NDBweCFpbXBvcnRhbnR9Ci5tbDQ1e21hcmdpbi1sZWZ0OjQ1cHghaW1wb3J0YW50fQoubWw1MHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudH0KLm1sNTV7bWFyZ2luLWxlZnQ6NTVweCFpbXBvcnRhbnR9Ci5tbDYwe21hcmdpbi1sZWZ0OjYwcHghaW1wb3J0YW50fQoubWw2NXttYXJnaW4tbGVmdDo2NXB4IWltcG9ydGFudH0KLm1sNzB7bWFyZ2luLWxlZnQ6NzBweCFpbXBvcnRhbnR9Ci5tbDc1e21hcmdpbi1sZWZ0Ojc1cHghaW1wb3J0YW50fQoubWw4MHttYXJnaW4tbGVmdDo4MHB4IWltcG9ydGFudH0KLm1sODV7bWFyZ2luLWxlZnQ6ODVweCFpbXBvcnRhbnR9Ci5tbDkwe21hcmdpbi1sZWZ0OjkwcHghaW1wb3J0YW50fQoubWw5NXttYXJnaW4tbGVmdDo5NXB4IWltcG9ydGFudH0KLm1sMTAwe21hcmdpbi1sZWZ0OjEwMHB4IWltcG9ydGFudH0KLm1sMTEwe21hcmdpbi1sZWZ0OjExMHB4IWltcG9ydGFudH0KLm1sMTIwe21hcmdpbi1sZWZ0OjEyMHB4IWltcG9ydGFudH0KLm1sMTMwe21hcmdpbi1sZWZ0OjEzMHB4IWltcG9ydGFudH0KLm1sMTQwe21hcmdpbi1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLm1sMTUwe21hcmdpbi1sZWZ0OjE1MHB4IWltcG9ydGFudH0KLm1sMTYwe21hcmdpbi1sZWZ0OjE2MHB4IWltcG9ydGFudH0KLm1sMTcwe21hcmdpbi1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLm1sMTgwe21hcmdpbi1sZWZ0OjE4MHB4IWltcG9ydGFudH0KLm1sMTkwe21hcmdpbi1sZWZ0OjE5MHB4IWltcG9ydGFudH0KLm1sMjAwe21hcmdpbi1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLm1yLTUwe21hcmdpbi1yaWdodDotNTBweCFpbXBvcnRhbnR9Ci5tci00MHttYXJnaW4tcmlnaHQ6LTQwcHghaW1wb3J0YW50fQoubXItMzB7bWFyZ2luLXJpZ2h0Oi0zMHB4IWltcG9ydGFudH0KLm1yLTI1e21hcmdpbi1yaWdodDotMjVweCFpbXBvcnRhbnR9Ci5tci0yMHttYXJnaW4tcmlnaHQ6LTIwcHghaW1wb3J0YW50fQoubXItMTV7bWFyZ2luLXJpZ2h0Oi0xNXB4IWltcG9ydGFudH0KLm1yLTEwe21hcmdpbi1yaWdodDotMTBweCFpbXBvcnRhbnR9Ci5tci05e21hcmdpbi1yaWdodDotOXB4IWltcG9ydGFudH0KLm1yLTh7bWFyZ2luLXJpZ2h0Oi04cHghaW1wb3J0YW50fQoubXItN3ttYXJnaW4tcmlnaHQ6LTdweCFpbXBvcnRhbnR9Ci5tci02e21hcmdpbi1yaWdodDotNnB4IWltcG9ydGFudH0KLm1yLTV7bWFyZ2luLXJpZ2h0Oi01cHghaW1wb3J0YW50fQoubXItNHttYXJnaW4tcmlnaHQ6LTRweCFpbXBvcnRhbnR9Ci5tci0ze21hcmdpbi1yaWdodDotM3B4IWltcG9ydGFudH0KLm1yLTJ7bWFyZ2luLXJpZ2h0Oi0ycHghaW1wb3J0YW50fQoubXItMXttYXJnaW4tcmlnaHQ6LTFweCFpbXBvcnRhbnR9Ci5tcjB7bWFyZ2luLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5tcjF7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnR9Ci5tcjJ7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnR9Ci5tcjN7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5tcjR7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnR9Ci5tcjV7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnR9Ci5tcjZ7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5tcjd7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnR9Ci5tcjh7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnR9Ci5tcjl7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5tcjEwe21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudH0KLm1yMTF7bWFyZ2luLXJpZ2h0OjExcHghaW1wb3J0YW50fQoubXIxMnttYXJnaW4tcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5tcjEze21hcmdpbi1yaWdodDoxM3B4IWltcG9ydGFudH0KLm1yMTR7bWFyZ2luLXJpZ2h0OjE0cHghaW1wb3J0YW50fQoubXIxNXttYXJnaW4tcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5tcjE2e21hcmdpbi1yaWdodDoxNnB4IWltcG9ydGFudH0KLm1yMTd7bWFyZ2luLXJpZ2h0OjE3cHghaW1wb3J0YW50fQoubXIxOHttYXJnaW4tcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5tcjE5e21hcmdpbi1yaWdodDoxOXB4IWltcG9ydGFudH0KLm1yMjB7bWFyZ2luLXJpZ2h0OjIwcHghaW1wb3J0YW50fQoubXIyNXttYXJnaW4tcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5tcjMwe21hcmdpbi1yaWdodDozMHB4IWltcG9ydGFudH0KLm1yMzV7bWFyZ2luLXJpZ2h0OjM1cHghaW1wb3J0YW50fQoubXI0MHttYXJnaW4tcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5tcjQ1e21hcmdpbi1yaWdodDo0NXB4IWltcG9ydGFudH0KLm1yNTB7bWFyZ2luLXJpZ2h0OjUwcHghaW1wb3J0YW50fQoubXI1NXttYXJnaW4tcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5tcjYwe21hcmdpbi1yaWdodDo2MHB4IWltcG9ydGFudH0KLm1yNjV7bWFyZ2luLXJpZ2h0OjY1cHghaW1wb3J0YW50fQoubXI3MHttYXJnaW4tcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5tcjc1e21hcmdpbi1yaWdodDo3NXB4IWltcG9ydGFudH0KLm1yODB7bWFyZ2luLXJpZ2h0OjgwcHghaW1wb3J0YW50fQoubXI4NXttYXJnaW4tcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5tcjkwe21hcmdpbi1yaWdodDo5MHB4IWltcG9ydGFudH0KLm1yOTV7bWFyZ2luLXJpZ2h0Ojk1cHghaW1wb3J0YW50fQoubXIxMDB7bWFyZ2luLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLm1yMTEwe21hcmdpbi1yaWdodDoxMTBweCFpbXBvcnRhbnR9Ci5tcjEyMHttYXJnaW4tcmlnaHQ6MTIwcHghaW1wb3J0YW50fQoubXIxMzB7bWFyZ2luLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLm1yMTQwe21hcmdpbi1yaWdodDoxNDBweCFpbXBvcnRhbnR9Ci5tcjE1MHttYXJnaW4tcmlnaHQ6MTUwcHghaW1wb3J0YW50fQoubXIxNjB7bWFyZ2luLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLm1yMTcwe21hcmdpbi1yaWdodDoxNzBweCFpbXBvcnRhbnR9Ci5tcjE4MHttYXJnaW4tcmlnaHQ6MTgwcHghaW1wb3J0YW50fQoubXIxOTB7bWFyZ2luLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLm1yMjAwe21hcmdpbi1yaWdodDoyMDBweCFpbXBvcnRhbnR9Ci5tdC01MHttYXJnaW4tdG9wOi01MHB4IWltcG9ydGFudH0KLm10LTQwe21hcmdpbi10b3A6LTQwcHghaW1wb3J0YW50fQoubXQtMzB7bWFyZ2luLXRvcDotMzBweCFpbXBvcnRhbnR9Ci5tdC0yNXttYXJnaW4tdG9wOi0yNXB4IWltcG9ydGFudH0KLm10LTIwe21hcmdpbi10b3A6LTIwcHghaW1wb3J0YW50fQoubXQtMTV7bWFyZ2luLXRvcDotMTVweCFpbXBvcnRhbnR9Ci5tdC0xMHttYXJnaW4tdG9wOi0xMHB4IWltcG9ydGFudH0KLm10LTl7bWFyZ2luLXRvcDotOXB4IWltcG9ydGFudH0KLm10LTh7bWFyZ2luLXRvcDotOHB4IWltcG9ydGFudH0KLm10LTd7bWFyZ2luLXRvcDotN3B4IWltcG9ydGFudH0KLm10LTZ7bWFyZ2luLXRvcDotNnB4IWltcG9ydGFudH0KLm10LTV7bWFyZ2luLXRvcDotNXB4IWltcG9ydGFudH0KLm10LTR7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudH0KLm10LTN7bWFyZ2luLXRvcDotM3B4IWltcG9ydGFudH0KLm10LTJ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudH0KLm10LTF7bWFyZ2luLXRvcDotMXB4IWltcG9ydGFudH0KLm10MHttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnR9Ci5tdDF7bWFyZ2luLXRvcDoxcHghaW1wb3J0YW50fQoubXQye21hcmdpbi10b3A6MnB4IWltcG9ydGFudH0KLm10M3ttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnR9Ci5tdDR7bWFyZ2luLXRvcDo0cHghaW1wb3J0YW50fQoubXQ1e21hcmdpbi10b3A6NXB4IWltcG9ydGFudH0KLm10NnttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnR9Ci5tdDd7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50fQoubXQ4e21hcmdpbi10b3A6OHB4IWltcG9ydGFudH0KLm10OXttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnR9Ci5tdDEwe21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnR9Ci5tdDExe21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnR9Ci5tdDEye21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnR9Ci5tdDEze21hcmdpbi10b3A6MTNweCFpbXBvcnRhbnR9Ci5tdDE0e21hcmdpbi10b3A6MTRweCFpbXBvcnRhbnR9Ci5tdDE1e21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnR9Ci5tdDE2e21hcmdpbi10b3A6MTZweCFpbXBvcnRhbnR9Ci5tdDE3e21hcmdpbi10b3A6MTdweCFpbXBvcnRhbnR9Ci5tdDE4e21hcmdpbi10b3A6MThweCFpbXBvcnRhbnR9Ci5tdDE5e21hcmdpbi10b3A6MTlweCFpbXBvcnRhbnR9Ci5tdDIwe21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnR9Ci5tdDI1e21hcmdpbi10b3A6MjVweCFpbXBvcnRhbnR9Ci5tdDMwe21hcmdpbi10b3A6MzBweCFpbXBvcnRhbnR9Ci5tdDM1e21hcmdpbi10b3A6MzVweCFpbXBvcnRhbnR9Ci5tdDQwe21hcmdpbi10b3A6NDBweCFpbXBvcnRhbnR9Ci5tdDQ1e21hcmdpbi10b3A6NDVweCFpbXBvcnRhbnR9Ci5tdDUwe21hcmdpbi10b3A6NTBweCFpbXBvcnRhbnR9Ci5tdDU1e21hcmdpbi10b3A6NTVweCFpbXBvcnRhbnR9Ci5tdDYwe21hcmdpbi10b3A6NjBweCFpbXBvcnRhbnR9Ci5tdDY1e21hcmdpbi10b3A6NjVweCFpbXBvcnRhbnR9Ci5tdDcwe21hcmdpbi10b3A6NzBweCFpbXBvcnRhbnR9Ci5tdDc1e21hcmdpbi10b3A6NzVweCFpbXBvcnRhbnR9Ci5tdDgwe21hcmdpbi10b3A6ODBweCFpbXBvcnRhbnR9Ci5tdDg1e21hcmdpbi10b3A6ODVweCFpbXBvcnRhbnR9Ci5tdDkwe21hcmdpbi10b3A6OTBweCFpbXBvcnRhbnR9Ci5tdDk1e21hcmdpbi10b3A6OTVweCFpbXBvcnRhbnR9Ci5tdDEwMHttYXJnaW4tdG9wOjEwMHB4IWltcG9ydGFudH0KLm10MTEwe21hcmdpbi10b3A6MTEwcHghaW1wb3J0YW50fQoubXQxMjB7bWFyZ2luLXRvcDoxMjBweCFpbXBvcnRhbnR9Ci5tdDEzMHttYXJnaW4tdG9wOjEzMHB4IWltcG9ydGFudH0KLm10MTQwe21hcmdpbi10b3A6MTQwcHghaW1wb3J0YW50fQoubXQxNTB7bWFyZ2luLXRvcDoxNTBweCFpbXBvcnRhbnR9Ci5tdDE2MHttYXJnaW4tdG9wOjE2MHB4IWltcG9ydGFudH0KLm10MTcwe21hcmdpbi10b3A6MTcwcHghaW1wb3J0YW50fQoubXQxODB7bWFyZ2luLXRvcDoxODBweCFpbXBvcnRhbnR9Ci5tdDE5MHttYXJnaW4tdG9wOjE5MHB4IWltcG9ydGFudH0KLm10MjAwe21hcmdpbi10b3A6MjAwcHghaW1wb3J0YW50fQoubWItNTB7bWFyZ2luLWJvdHRvbTotNTBweCFpbXBvcnRhbnR9Ci5tYi00MHttYXJnaW4tYm90dG9tOi00MHB4IWltcG9ydGFudH0KLm1iLTMwe21hcmdpbi1ib3R0b206LTMwcHghaW1wb3J0YW50fQoubWItMjV7bWFyZ2luLWJvdHRvbTotMjVweCFpbXBvcnRhbnR9Ci5tYi0yMHttYXJnaW4tYm90dG9tOi0yMHB4IWltcG9ydGFudH0KLm1iLTE1e21hcmdpbi1ib3R0b206LTE1cHghaW1wb3J0YW50fQoubWItMTB7bWFyZ2luLWJvdHRvbTotMTBweCFpbXBvcnRhbnR9Ci5tYi05e21hcmdpbi1ib3R0b206LTlweCFpbXBvcnRhbnR9Ci5tYi04e21hcmdpbi1ib3R0b206LThweCFpbXBvcnRhbnR9Ci5tYi03e21hcmdpbi1ib3R0b206LTdweCFpbXBvcnRhbnR9Ci5tYi02e21hcmdpbi1ib3R0b206LTZweCFpbXBvcnRhbnR9Ci5tYi01e21hcmdpbi1ib3R0b206LTVweCFpbXBvcnRhbnR9Ci5tYi00e21hcmdpbi1ib3R0b206LTRweCFpbXBvcnRhbnR9Ci5tYi0ze21hcmdpbi1ib3R0b206LTNweCFpbXBvcnRhbnR9Ci5tYi0ye21hcmdpbi1ib3R0b206LTJweCFpbXBvcnRhbnR9Ci5tYi0xe21hcmdpbi1ib3R0b206LTFweCFpbXBvcnRhbnR9Ci5tYjB7bWFyZ2luLWJvdHRvbTowcHghaW1wb3J0YW50fQoubWIxe21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudH0KLm1iMnttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnR9Ci5tYjN7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50fQoubWI0e21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudH0KLm1iNXttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnR9Ci5tYjZ7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50fQoubWI3e21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudH0KLm1iOHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnR9Ci5tYjl7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50fQoubWIxMHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50fQoubWIxMXttYXJnaW4tYm90dG9tOjExcHghaW1wb3J0YW50fQoubWIxMnttYXJnaW4tYm90dG9tOjEycHghaW1wb3J0YW50fQoubWIxM3ttYXJnaW4tYm90dG9tOjEzcHghaW1wb3J0YW50fQoubWIxNHttYXJnaW4tYm90dG9tOjE0cHghaW1wb3J0YW50fQoubWIxNXttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50fQoubWIxNnttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50fQoubWIxN3ttYXJnaW4tYm90dG9tOjE3cHghaW1wb3J0YW50fQoubWIxOHttYXJnaW4tYm90dG9tOjE4cHghaW1wb3J0YW50fQoubWIxOXttYXJnaW4tYm90dG9tOjE5cHghaW1wb3J0YW50fQoubWIyMHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50fQoubWIyNXttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50fQoubWIzMHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50fQoubWIzNXttYXJnaW4tYm90dG9tOjM1cHghaW1wb3J0YW50fQoubWI0MHttYXJnaW4tYm90dG9tOjQwcHghaW1wb3J0YW50fQoubWI0NXttYXJnaW4tYm90dG9tOjQ1cHghaW1wb3J0YW50fQoubWI1MHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50fQoubWI1NXttYXJnaW4tYm90dG9tOjU1cHghaW1wb3J0YW50fQoubWI2MHttYXJnaW4tYm90dG9tOjYwcHghaW1wb3J0YW50fQoubWI2NXttYXJnaW4tYm90dG9tOjY1cHghaW1wb3J0YW50fQoubWI3MHttYXJnaW4tYm90dG9tOjcwcHghaW1wb3J0YW50fQoubWI3NXttYXJnaW4tYm90dG9tOjc1cHghaW1wb3J0YW50fQoubWI4MHttYXJnaW4tYm90dG9tOjgwcHghaW1wb3J0YW50fQoubWI4NXttYXJnaW4tYm90dG9tOjg1cHghaW1wb3J0YW50fQoubWI5MHttYXJnaW4tYm90dG9tOjkwcHghaW1wb3J0YW50fQoubWI5NXttYXJnaW4tYm90dG9tOjk1cHghaW1wb3J0YW50fQoubWIxMDB7bWFyZ2luLWJvdHRvbToxMDBweCFpbXBvcnRhbnR9Ci5tYjExMHttYXJnaW4tYm90dG9tOjExMHB4IWltcG9ydGFudH0KLm1iMTIwe21hcmdpbi1ib3R0b206MTIwcHghaW1wb3J0YW50fQoubWIxMzB7bWFyZ2luLWJvdHRvbToxMzBweCFpbXBvcnRhbnR9Ci5tYjE0MHttYXJnaW4tYm90dG9tOjE0MHB4IWltcG9ydGFudH0KLm1iMTUwe21hcmdpbi1ib3R0b206MTUwcHghaW1wb3J0YW50fQoubWIxNjB7bWFyZ2luLWJvdHRvbToxNjBweCFpbXBvcnRhbnR9Ci5tYjE3MHttYXJnaW4tYm90dG9tOjE3MHB4IWltcG9ydGFudH0KLm1iMTgwe21hcmdpbi1ib3R0b206MTgwcHghaW1wb3J0YW50fQoubWIxOTB7bWFyZ2luLWJvdHRvbToxOTBweCFpbXBvcnRhbnR9Ci5tYjIwMHttYXJnaW4tYm90dG9tOjIwMHB4IWltcG9ydGFudH0KLnppMXt6LWluZGV4OjF9Ci56aTJ7ei1pbmRleDoyfQouemkze3otaW5kZXg6M30KLnppNHt6LWluZGV4OjR9Ci56aTV7ei1pbmRleDo1fQouemk2e3otaW5kZXg6Nn0KLnppN3t6LWluZGV4Ojd9Ci56aTh7ei1pbmRleDo4fQouemk5e3otaW5kZXg6OX0KLnppMTB7ei1pbmRleDoxMH0KLnppMTF7ei1pbmRleDoxMX0KLnppMTJ7ei1pbmRleDoxMn0KLnppMTN7ei1pbmRleDoxM30KLnppMTR7ei1pbmRleDoxNH0KLnppMTV7ei1pbmRleDoxNX0KLnppMTZ7ei1pbmRleDoxNn0KLnppMTd7ei1pbmRleDoxN30KLnppMTh7ei1pbmRleDoxOH0KLnppMTl7ei1pbmRleDoxOX0KLnppMjB7ei1pbmRleDoyMH0KLmZzNDB7Zm9udC1zaXplOjQwJSFpbXBvcnRhbnR9Ci5mczQ1e2ZvbnQtc2l6ZTo0NSUhaW1wb3J0YW50fQouZnM1MHtmb250LXNpemU6NTAlIWltcG9ydGFudH0KLmZzNTV7Zm9udC1zaXplOjU1JSFpbXBvcnRhbnR9Ci5mczYwe2ZvbnQtc2l6ZTo2MCUhaW1wb3J0YW50fQouZnM2NXtmb250LXNpemU6NjUlIWltcG9ydGFudH0KLmZzNzB7Zm9udC1zaXplOjcwJSFpbXBvcnRhbnR9Ci5mczc1e2ZvbnQtc2l6ZTo3NSUhaW1wb3J0YW50fQouZnM4MHtmb250LXNpemU6ODAlIWltcG9ydGFudH0KLmZzODV7Zm9udC1zaXplOjg1JSFpbXBvcnRhbnR9Ci5mczkwe2ZvbnQtc2l6ZTo5MCUhaW1wb3J0YW50fQouZnM5NXtmb250LXNpemU6OTUlIWltcG9ydGFudH0KLmZzMTAwe2ZvbnQtc2l6ZToxMDAlIWltcG9ydGFudH0KLmZzMTA1e2ZvbnQtc2l6ZToxMDUlIWltcG9ydGFudH0KLmZzMTEwe2ZvbnQtc2l6ZToxMTAlIWltcG9ydGFudH0KLmZzMTE1e2ZvbnQtc2l6ZToxMTUlIWltcG9ydGFudH0KLmZzMTIwe2ZvbnQtc2l6ZToxMjAlIWltcG9ydGFudH0KLmZzMTI1e2ZvbnQtc2l6ZToxMjUlIWltcG9ydGFudH0KLmZzMTMwe2ZvbnQtc2l6ZToxMzAlIWltcG9ydGFudH0KLmZzMTQwe2ZvbnQtc2l6ZToxNDAlIWltcG9ydGFudH0KLmZzMTUwe2ZvbnQtc2l6ZToxNTAlIWltcG9ydGFudH0KLmZzMTYwe2ZvbnQtc2l6ZToxNjAlIWltcG9ydGFudH0KLmZzMTcwe2ZvbnQtc2l6ZToxNzAlIWltcG9ydGFudH0KLmZzMTgwe2ZvbnQtc2l6ZToxODAlIWltcG9ydGFudH0KLmZzMTkwe2ZvbnQtc2l6ZToxOTAlIWltcG9ydGFudH0KLmZzMjAwe2ZvbnQtc2l6ZToyMDAlIWltcG9ydGFudH0KLmZzMjEwe2ZvbnQtc2l6ZToyMTAlIWltcG9ydGFudH0KLmZzMjIwe2ZvbnQtc2l6ZToyMjAlIWltcG9ydGFudH0KLmZzMjMwe2ZvbnQtc2l6ZToyMzAlIWltcG9ydGFudH0KLmZzMjQwe2ZvbnQtc2l6ZToyNDAlIWltcG9ydGFudH0KLmZzMjUwe2ZvbnQtc2l6ZToyNTAlIWltcG9ydGFudH0KLmZzMjYwe2ZvbnQtc2l6ZToyNjAlIWltcG9ydGFudH0KLmZzMjgwe2ZvbnQtc2l6ZToyODAlIWltcG9ydGFudH0KLmZzMzAwe2ZvbnQtc2l6ZTozMDAlIWltcG9ydGFudH0KLmZzMzIwe2ZvbnQtc2l6ZTozMjAlIWltcG9ydGFudH0KLmZzMzQwe2ZvbnQtc2l6ZTozNDAlIWltcG9ydGFudH0KLmZzMzYwe2ZvbnQtc2l6ZTozNjAlIWltcG9ydGFudH0KLmZzMzgwe2ZvbnQtc2l6ZTozODAlIWltcG9ydGFudH0KLmZzNDAwe2ZvbnQtc2l6ZTo0MDAlIWltcG9ydGFudH0KLmxoNzB7bGluZS1oZWlnaHQ6MC43ZW19Ci5saDc1e2xpbmUtaGVpZ2h0OjAuNzVlbX0KLmxoODB7bGluZS1oZWlnaHQ6MC44ZW19Ci5saDg1e2xpbmUtaGVpZ2h0OjAuODVlbX0KLmxoOTB7bGluZS1oZWlnaHQ6MC45ZW19Ci5saDk1e2xpbmUtaGVpZ2h0OjAuOTVlbX0KLmxoMTAwe2xpbmUtaGVpZ2h0OjFlbX0KLmxoMTA1e2xpbmUtaGVpZ2h0OjEuMDVlbX0KLmxoMTEwe2xpbmUtaGVpZ2h0OjEuMWVtfQoubGgxMTV7bGluZS1oZWlnaHQ6MS4xNWVtfQoubGgxMjB7bGluZS1oZWlnaHQ6MS4yZW19Ci5saDEyNXtsaW5lLWhlaWdodDoxLjI1ZW19Ci5saDEzMHtsaW5lLWhlaWdodDoxLjNlbX0KLmxoMTQwe2xpbmUtaGVpZ2h0OjEuNGVtfQoubGgxNTB7bGluZS1oZWlnaHQ6MS41ZW19Ci5saDE2MHtsaW5lLWhlaWdodDoxLjZlbX0KLmxoMTcwe2xpbmUtaGVpZ2h0OjEuN2VtfQoubGgxODB7bGluZS1oZWlnaHQ6MS44ZW19Ci5saDE5MHtsaW5lLWhlaWdodDoxLjllbX0KLmxoMjAwe2xpbmUtaGVpZ2h0OjJlbX0KLmxoMjIwe2xpbmUtaGVpZ2h0OjIuMmVtfQoubGgyNDB7bGluZS1oZWlnaHQ6Mi40ZW19Ci5saDI1MHtsaW5lLWhlaWdodDoyLjVlbX0KLmxoMjYwe2xpbmUtaGVpZ2h0OjIuNmVtfQoubGgyODB7bGluZS1oZWlnaHQ6Mi44ZW19Ci5saDMwMHtsaW5lLWhlaWdodDozZW19Ci5zbWFsbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMzdlbX0KLmJvbGR7Zm9udC13ZWlnaHQ6Ym9sZH0KLmJvbGRlcntmb250LXdlaWdodDpib2xkZXJ9Ci5mdzIwMHtmb250LXdlaWdodDoyMDB9Ci5mdzMwMHtmb250LXdlaWdodDozMDB9Ci5mdzQwMHtmb250LXdlaWdodDo0MDB9Ci5mdzUwMHtmb250LXdlaWdodDo1MDB9Ci5mdzYwMHtmb250LXdlaWdodDo2MDB9Ci50ZG57dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fQoudGRse3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fQouZmlsdGVyLW5vbWF0Y2h7ZGlzcGxheTpub25lIWltcG9ydGFudH0KLm53e3doaXRlLXNwYWNlOm5vd3JhcH0KLmVsbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30KLndiYXt3b3JkLWJyZWFrOmJyZWFrLWFsbH0KLnZhdHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fQoudmFie3ZlcnRpY2FsLWFsaWduOmJvdHRvbSFpbXBvcnRhbnR9Ci52YWx7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fQoudmFte3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9Ci50YWN7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fQoudGFye3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fQoudGFse3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9Ci5iYnN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJ0c3tib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmJke2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnRke2JvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmFze2JvcmRlcjoxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJhZHtib3JkZXI6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnIye2JvcmRlci1yYWRpdXM6MnB4IWltcG9ydGFudH0KLmJyNHtib3JkZXItcmFkaXVzOjRweCFpbXBvcnRhbnR9Ci5icjZ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50fQouYnI4e2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudH0KLmJyMTB7Ym9yZGVyLXJhZGl1czoxMHB4IWltcG9ydGFudH0KLmJyMTAwe2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50fQouYjF7Ym9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnR9Ci5iMntib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudH0KLmIze2JvcmRlci13aWR0aDozcHghaW1wb3J0YW50fQouYjR7Ym9yZGVyLXdpZHRoOjRweCFpbXBvcnRhbnR9Ci5iNXtib3JkZXItd2lkdGg6NXB4IWltcG9ydGFudH0KQGtleWZyYW1lcyByb3RhdGUzNjB7ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDBkZWcpfQp0b3t0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDM2MGRlZyl9fQouYXJvdDA1c3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjAuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0KLmFyb3Qxc3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9Ci5hcm90MnN7YW5pbWF0aW9uLW5hbWU6cm90YXRlMzYwO2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyfQpkaXYubXktbW9kYWwtc2NyZWVue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMiwgNTAsIDkwLCAwLjg4KTtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjE5OTc7dG9wOjA7bGVmdDowfQpkaXYubXktbW9kYWx7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxOTk4O2JveC1zaGFkb3c6MCAwIDY5cHggMTBweCByZ2JhKDI4LCAzMiwgMzgsIDAuNSk7cGFkZGluZzozMHB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHh9CmRpdi5teS1tb2RhbC5teS1tb2RhbC1sb2FkaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pL2xvYWRlci1iYXIyLmdpZicpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3B9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZXtmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLCAiU2Vnb2UgVUkiLCBBcmlhbCwgc2Fucztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTlwdDtyaWdodDotOHB0O2ZvbnQtc2l6ZToyMHB0O2xpbmUtaGVpZ2h0OjEzcHQ7bWFyZ2luOjA7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHQgNnB0IDhwdCA2cHQ7Y29sb3I6IzJkNjZiODtib3JkZXItcmFkaXVzOjIwcHQ7YmFja2dyb3VuZDojZTVmM2ZmO3RyYW5zaXRpb246Y29sb3IgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjE5OTl9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZTpob3Zlcntjb2xvcjojMTJhNWRjfQpkaXYubXktbW9kYWwubXktbW9kYWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE5OTg7Ym94LXNoYWRvdzowIDAgMTFweCA2cHggcmdiYSgyOCwgMzIsIDM4LCAwLjA4KSwgMCAwIDZweCByZ2JhKDI4LCAzMiwgMzgsIDAuMTUpO3BhZGRpbmc6MTBweCAxNXB4IDEzcHggMTVweDtib3JkZXItcmFkaXVzOjNweH0KZGl2Lm15LW1vZGFsLm15LW1vZGFsLW92ZXJsYXkgPiAubXktbW9kYWwtY2xvc2V7dG9wOi0wLjJwdDtyaWdodDotMC4ycHQ7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MnB0IDNwdCAzcHQgM3B0fQpkaXYubXktbW9kYWwgPiAubXktbW9kYWwtbm9zZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyOCwgMzIsIDM4LCAwLjE1KTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTt0b3A6MDtsZWZ0OjB9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnQ6YmVmb3JlLCBkaXYubXktbW9kYWwubm9zZS1yaWdodDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLXRvcDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjgsIDMyLCAzOCwgMC4xNSk7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnR7bWFyZ2luLWxlZnQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS1yaWdodHttYXJnaW4tcmlnaHQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS10b3B7bWFyZ2luLXRvcDo3cHh9CmRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbXttYXJnaW4tYm90dG9tOjdweH0KZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmV7bGVmdDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9CmRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZXtyaWdodDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS10b3A6YmVmb3Jle2xlZnQ6NTAlO3RvcDotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS1ib3R0b206YmVmb3Jle2xlZnQ6NTAlO2JvdHRvbTotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfQoubXktdGFnc3twb3NpdGlvbjpyZWxhdGl2ZX0KLm15LXRhZ3MgLnRhZ3twYWRkaW5nOjAuMTVlbSAwLjM1ZW0gMC4yMmVtIDAuMzVlbTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Ci5teS10YWdzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojMjM0ZjhmO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzNCwgMTE0LCAxMzQsIDAuMzUpO2NvbG9yOiNkNjJjNDl9Ci5teS10YWdzIC50YWcuYWN0aXZlOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5zZWxlY3QyLWNvbnRhaW5lcnttYXJnaW46MDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Ci5zZWxlY3QyLWNvbnRhaW5lciwgLnNlbGVjdDItZHJvcCwgLnNlbGVjdDItc2VhcmNoLCAuc2VsZWN0Mi1zZWFyY2ggaW5wdXR7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDAgMCAwLjRlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoyZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZXtib3JkZXItYm90dG9tLWNvbG9yOiNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItYWxsb3djbGVhciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDo0MnB4fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlID4gLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Zsb2F0Om5vbmU7d2lkdGg6YXV0bztsaW5lLWhlaWdodDoxLjllbTtjb2xvcjojNGQ1YTZhfQpodG1sW2Rpcj0icnRsIl0gLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSA+IC5zZWxlY3QyLWNob3NlbnttYXJnaW4tbGVmdDoyNnB4O21hcmdpbi1yaWdodDowfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnJ7ZGlzcGxheTpub25lO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjRweDt0b3A6OHB4O2ZvbnQtc2l6ZToxcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCB0b3A7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1hbGxvd2NsZWFyIC5zZWxlY3QyLWNob2ljZSBhYmJye2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnI6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtMTFweDtjdXJzb3I6cG9pbnRlcn0KLnNlbGVjdDItZHJvcC1tYXNre2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7bWluLWhlaWdodDoxMDAlO21pbi13aWR0aDoxMDAlO2hlaWdodDphdXRvO3dpZHRoOmF1dG87b3BhY2l0eTowO3otaW5kZXg6Mjk5NztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCl9Ci5zZWxlY3QyLWRyb3B7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi0xcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyOTk4O3RvcDoxMDAlO2ZvbnQtc2l6ZTowLjhlbTtsaW5lLWhlaWdodDoxLjM1ZW07YmFja2dyb3VuZDojZmZmO2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci10b3A6MDtjb2xvcjojNGQ1YTZhO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9Ci5zZWxlY3QyLWRyb3AgbGl7bWFyZ2luLWxlZnQ6MH0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmV7bWFyZ2luLXRvcDoxcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMH0KLnNlbGVjdDItZHJvcC1hY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O2JvcmRlci10b3A6bm9uZX0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmUuc2VsZWN0Mi1kcm9wLWFjdGl2ZXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWVjZGY4fQouc2VsZWN0Mi1kcm9wLWF1dG8td2lkdGh7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDt3aWR0aDphdXRvfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3JkZXItbGVmdDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjAgMnB4IDJweCAwO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kOiNlM2U4ZWJ9Ci5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjowIDFweH0KLnNlbGVjdDItc2VhcmNoe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWluLWhlaWdodDoyNnB4O21hcmdpbjowO3BhZGRpbmc6NHB4IDRweCAwIDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI5OTk7d2hpdGUtc3BhY2U6bm93cmFwfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXR7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6NHB4IDIwcHggNHB4IDVweDttYXJnaW46MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIycHh9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dC5zZWxlY3QyLWFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmYgdXJsKCcuLi9pL3NwaW5uZXIuZ2lmJykgbm8tcmVwZWF0IDEwMCV9Ci5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlLCAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O291dGxpbmU6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLWRyb3Bkb3duLW9wZW4uc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZSwgLnNlbGVjdDItZHJvcGRvd24tb3Blbi5zZWxlY3QyLWRyb3AtYWJvdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudH0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnQ7ZmlsdGVyOm5vbmV9Ci5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXItbGVmdDpub25lIWltcG9ydGFudDtmaWx0ZXI6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOHB4IDFweH0KLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGV7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9Ci5zZWxlY3QyLXJlc3VsdHN7bWF4LWhlaWdodDoyNTBweDtwYWRkaW5nOjAgMCAwIDRweDttYXJnaW46NHB4IDRweCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Cmh0bWxbZGlyPSJydGwiXSAuc2VsZWN0Mi1yZXN1bHRze3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjo0cHggMCA0cHggNHB4fQouc2VsZWN0Mi1yZXN1bHRzIHVsLnNlbGVjdDItcmVzdWx0LXN1YnttYXJnaW46MDtwYWRkaW5nLWxlZnQ6MH0KLnNlbGVjdDItcmVzdWx0cyBsaXtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpsaXN0LWl0ZW07YmFja2dyb3VuZC1pbWFnZTpub25lfQouc2VsZWN0Mi1yZXN1bHRzIGxpLnNlbGVjdDItcmVzdWx0LXdpdGgtY2hpbGRyZW4gPiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZzoxcHggMHB4IDJweDttYXJnaW46MDtjdXJzb3I6cG9pbnRlcjttaW4taGVpZ2h0OjFlbTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0xIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MHB4fQouc2VsZWN0Mi1yZXN1bHRzLWRlcHQtMiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZy1sZWZ0OjEwcHh9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0zIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MjBweH0KLnNlbGVjdDItcmVzdWx0cy1kZXB0LTQgLnNlbGVjdDItcmVzdWx0LWxhYmVse3BhZGRpbmctbGVmdDozMHB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIGxpIGVte2JhY2tncm91bmQ6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KTtmb250LXN0eWxlOm5vcm1hbH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1oaWdobGlnaHRlZCBlbXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVkIHVse2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLW5vLXJlc3VsdHMsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VhcmNoaW5nLCAuc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWFqYXgtZXJyb3IsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VsZWN0aW9uLWxpbWl0e2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbTtwYWRkaW5nLWxlZnQ6NXB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWRpc2FibGVkLnNlbGVjdDItaGlnaGxpZ2h0ZWR7Y29sb3I6IzRkNWE2YTtiYWNrZ3JvdW5kOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7ZGlzcGxheTpsaXN0LWl0ZW07Y3Vyc29yOmRlZmF1bHR9Ci5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItZGlzYWJsZWR7YmFja2dyb3VuZDpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpO2Rpc3BsYXk6bGlzdC1pdGVtO2N1cnNvcjpkZWZhdWx0fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLXNlbGVjdGVke2Rpc3BsYXk6bm9uZX0KLnNlbGVjdDItbW9yZS1yZXN1bHRzLnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KSB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJX0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1hamF4LWVycm9ye2JhY2tncm91bmQ6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KX0KLnNlbGVjdDItbW9yZS1yZXN1bHRze2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbX0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1sZWZ0OjB9Ci5zZWxlY3QyLWNvbnRhaW5lci5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2UgYWJicntkaXNwbGF5Om5vbmV9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2Vze21pbi1oZWlnaHQ6MjZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjowO3BhZGRpbmc6MCAwIDJweCAwO2N1cnNvcjp0ZXh0O292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Ci5zZWxlY3QyLWxvY2tlZHtwYWRkaW5nOjNweCA1cHggM3B4IDVweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7b3V0bGluZTpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyBsaXtmbG9hdDpsZWZ0O2xpc3Qtc3R5bGU6bm9uZX0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxke21hcmdpbjowO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3dyYXB9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1maWVsZCBpbnB1dHtwYWRkaW5nOjNweCA2cHg7bWFyZ2luOjNweCAwO2ZvbnQtc2l6ZTowLjllbTtsaW5lLWhlaWdodDoxLjFlbTtvdXRsaW5lOm5vbmU7Ym9yZGVyOjAhaW1wb3J0YW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQhaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LCAubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0OmZvY3Vze2JvcmRlcjowIWltcG9ydGFudH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZiB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJSFpbXBvcnRhbnR9Ci5zZWxlY3QyLWRlZmF1bHR7Y29sb3I6I2I5YzBjYiFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpO2ZpbHRlcjpub25lO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtjb2xvcjojNGQ1YTZhO2JvcmRlcjpub25lO2xpbmUtaGVpZ2h0OjEuMWVtO2ZvbnQtc2l6ZTowLjllbTtwYWRkaW5nOjNweCA4cHggNHB4IDE2cHg7bWFyZ2luOjNweCAwIDBweCAzcHg7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOmRlZmF1bHQ7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlIC5zZWxlY3QyLWNob3NlbntjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1mb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxM3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt0b3A6NHB4O2ZvbnQtc2l6ZToxcHg7b3V0bGluZTpub25lO2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtsZWZ0OjNweH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZSAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTExcHh9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtZm9jdXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0xMXB4fQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkuc2VsZWN0Mi1jb250YWluZXItZGlzYWJsZWQgLnNlbGVjdDItY2hvaWNlc3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZXtwYWRkaW5nLWxlZnQ6NXB4O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSl9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpub25lfQouc2VsZWN0Mi1yZXN1bHQtc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaCwgLnNlbGVjdDItcmVzdWx0LXVuc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQouc2VsZWN0Mi1vZmZzY3JlZW4sIC5zZWxlY3QyLW9mZnNjcmVlbjpmb2N1c3tjbGlwOnJlY3QoMCAwIDAgMCkhaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O291dGxpbmU6MCFpbXBvcnRhbnQ7bGVmdDowcHghaW1wb3J0YW50O3RvcDowcHghaW1wb3J0YW50fQouc2VsZWN0Mi1kaXNwbGF5LW5vbmV7ZGlzcGxheTpub25lfQouc2VsZWN0Mi1tZWFzdXJlLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwMDAwcHg7bGVmdDotMTAwMDBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7b3ZlcmZsb3c6c2Nyb2xsfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXQsIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2UsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgYWJiciwgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvdyBie2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFBb0NBWUFBQUNpdTVuL0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBcDlKUkVGVWVOcnNtZHRMRzFFUXhqZWFwRjZLWXJXQ1Y3eTBVR3NGcVJTdkQwWGY5S0VQL1RNRjhRK1FncWlsU0d0b29RVXIzckRpTFdnYmE3eWdpZC9ndC9WNFdKbzFOZGFkT1BBankxbGR6cmN6NTV5WjJWQTZuWGJ5eVFxY1BMTzhFeHoyR2d5RlFvR1l2THNjT2Q4dXNBbldlYnNhMUlOWTJsaTNZU1dPYTZLNFNwQUFaNkFEUE9UOU9XMkNkOEZ2Q3V3WDU0TWlqcTFyWE1QaTFTbXdEeDVRYkJLOEIxdGFONjJvcFVldUkxcDM2VWRnQUpReWpCUDBjaDlvK0IrQ293eTFYRmtabjMvRU1KNmhjQm1yeW5nc3dacmRuZDhZS3dScjRDU0xDYjBDeFdBaVI0SlhPTmVmNEpCakh5aDIxWS9nQ3RCdWpmMnkvL2thNGRiQzZ4cXdrYVB6Mko3YkFmRzFodWVzQjZUQU5Eak4wcnZtOVkwdEkwazQvT0IzRGNkNGdJdk44Nnk3cnJVejQzR3RITHk4YzZrbGJaOUNuNEl2Ly9EOEJUc0MrYUpUTjZoRGpwOUI3akhmT05aS3BveDFuVEhUK3NwTTVTVExpWHkrSmNkMWdoZU1xQ1RuTzhJWElkblgySjlsNEZVUEI2VjRNRXhFRGZQTVBXTVVoZW54ZDlBWTE1WjR5Sms3eW1xcGtHSjM2ZG00MXRTeTNxaU94RXJzTEV1VDRDZmdMUVZMR0M4enRYd0RlalFLTG1Bb2I0Tng4c01JNzZ0WmlrMUFyZEVLNldLT1hkR21aWmYyMVFyU3RtbjVqdjE3d2ZlQ0ZWbFF1NVlSNTdKZmRXZzFLdFFKbG41em0zUFpNdHBqa2JLbU1hUjdXUm1kc2treHorN01hK2VpR2EvS3czVk1JYVZBbURSSzFpVXdCTHA1NzBpTGh4djVPMnZWNTNIVzdkSVpyZFFVMGhGMlNSSWU5L2I4NmdtUzRBUE90ODdqbnJ0K2p6VUpYdVN2ZkUyb05id3VyWjBXdnBEdFRBOEpXdkhRU3NFT1F6dkt1dGMxYWVCOStsdnhFTFJ6ZUpGQ24vRTRraDM1TzNVOEorS3RqNW9TangxaVc0cmgzVWJSTWNmanc0R21YRHJHakN2RkNIaWNEOFdEZkRCd1A0QW52ZjdnWElBQkFGdXF0WS9jUUs4aEFBQUFBRWxGVGtTdVFtQ0MpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9CkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjJkcHB4KSB7LnNlbGVjdDItc2VhcmNoIGlucHV0LCAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlLCAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnIsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQlFDQVlBQUFEU203R0pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQkRaSlJFRlVlTnJzbk05UEUwRVV4NmVDWWlEQmt6OFNERDlpd2dGamhFUTRlT3FkZjlSL2dJdnh3QmxpaWpFYVUxUzBFVUxrMUNaRlRXM3FHenBMbnN1ODdRN2IyYzRzMzIveTBxWHp1aVQ5N0p2OXZ0bnUxZ2FEZ1lLcXExdjRDZ0FZQW1Bb1ZFM2pLd2hMdFZvdDJkd3dyNDJNOUlzYzhsRU5BSTVMR3R3aSs3dVJsYU1QQ2dreXB1anc0UzZ5YWhaekNQSUdBTWNyRGprTk4zdktSeDhjNURsWWd0aWxtTE84MzVLbWFBQU8yMlRscWRSV2xzbkNGQjJ1TkxSV0ViZ0FIQWZrcmpEV0hkRkNBWEFram5wT0dKdXp1R3NBanJoZHNycHJxVDBDNERqaGRsMGhBM0E4Y0xYaGVpTVlMeXgwUks0V00xUjUzUFdsb2w2TFpqMGoxMVB6K2lFOUVFblBuNEJjdE1BVmM2UjJxV29YRzdTelhEUGIzekphakZnZ3E0eFdxTUVPWExGZGNsckpvb3JacHBmWm5Pbm50Tytka2l1NFRuSGZiSjlSN0VaWXdXT1Y2emw0MzFQdU9MVEE0Q3F6dlhEVFQ5NnVnSDlTbk9USU96RzVaZWsyeGJybC9YVXpCc0FPT3FEb1pZejNURTZaV2hWT0hiTm1ESUFkcEkzTFljYjRZY25taGhzcm05YVV2TndId0lKMEMzSnVNMWEyOXNTek5zZVVBOEE1VE5Ta2paV2tHMnU0aWdCT0c2NnlqWlVTak5VNGNpY20zZnFacUp0UUdYR1JrN1cvb2dzZEI2eUN5alpXeW5lZlBVSFZVK1p3Tnl2SC9LcHkxd2RnYnJpNkN2SUJkOVVDK1VxT0JIbmFzV0lrd3dYNWJ3TVR5SFdYMWc4L3VndndISndCc1VNeGIzbS9LVTNSQUJ3bVlPVlFxU0xjb2k0YThpc05yVmtFTGdESEFia2pqSFVFZHczQWtUbnFlV0ZzM293RGNFWGFKYXU3SHJYUUFjQnh3ZTI0UWdiZ2VPQnF3L1ZLTUY0aVpBQ09RMDFtcVBLNGF3Q09xRDFxV3R6eWxSeGZhOUdRUDhpMmJXdE9WaStNbGF5S0MxTTBBRU1BREFFd0JNQVFBRU1BREFFd0FFTUFEQUV3Qk1DUWIrRnFraWRaSGkraGIwUmZvVmltdUpjYWE2dmhNMFdPVk9yZTY2SVhnM0ExcVJ6QStzN0dUVFg2YVFNYXJyNUQ4eGlBNHdHOHJPejNKeWRmdk8xWlVQdW1vZ3NEeGhUdFZ3c3B1SnFXdmtuK0U4VXBPd0IwekRMWW02YWFqd3NmYUtoZ2J4V3NwK050TmkzM0tiNVN2RGZiWERNVXo5VHd3V1pUYkxyZUlUNDl1T2d3dGNMZzZpcjZvb2IzVVBjdHVYOG8zcHBwZVpBeVpXaVRBdFV5Mjg3ejdCSU45aDNGYjJFZkFCeVllQ3YwbWVKdmpzLzBFM05sMlFjQUJ5d1hzM1RHcG1rRndIRm9hbEwvR0lETDBTT0gzSWRDYnd6QWdhbk50cC9rWEhPWVVmOC83YjBOd09HS215WDlLTVhuSTc3dktaTnpWOWdIQUFjbWZ1RkFUN2xMRkM5TWxhWjFoMktMNGpHYm5yWFJPdUlQUHJ1T3NKTGxTUWFJWHFwOG1lcDFmMUg4VU1PbFNsMWdEOHkwUEdNNTkzNm4yTHY4OERWWUFiQmZ3TWxpaGV2RkJpdGtBQTRUY0ZMSmVTNFhEZ1RnRjVBQk9GekFTdVcvNEw5aHp0ZFhJQk9yUFFDdXhrR3hOUzdJY05GaGFzOU15Mmt0MFVHd2hRcXV6clF1VlhLYnVMMUdCVmUza25OZlpRTGdlQ0VEY01VZzgzWHBqemdIUTZqZ202Qi9BZ3dBU2Y5SmRHbEcwODBBQUFBQVNVVk9SSzVDWUlJPSkhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjYwcHggNDBweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIxcHghaW1wb3J0YW50fX0KLnVpLXNsaWRlcntib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50O2JhY2tncm91bmQ6d2hpdGU7Zm9udC1zaXplOjkwJTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnR9Ci51aS1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6MC40ZW19Ci51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtiYWNrZ3JvdW5kOiNlM2U4ZWI7Ym9yZGVyLXJhZGl1czozcHg7aGVpZ2h0OjEuMWVtO3dpZHRoOjEuMWVtO291dGxpbmU6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2N1cnNvcjpkZWZhdWx0fQoudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlcntiYWNrZ3JvdW5kOiNjYmU3ZmU7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4fQoudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouN2VtO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZXt0b3A6LTAuNGVtO21hcmdpbi1sZWZ0Oi0wLjU1ZW19Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdle3RvcDowO2hlaWdodDoxMDAlfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7cmlnaHQ6MH0KLnVpLXNsaWRlci12ZXJ0aWNhbHt3aWR0aDouNGVtO2hlaWdodDoxMDBweH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0wLjRlbTttYXJnaW4tbGVmdDowO21hcmdpbi1ib3R0b206LTAuNTVlbX0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdle2xlZnQ6MDt3aWR0aDoxMDAlfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWlue2JvdHRvbTowfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfQppbnB1dFt0eXBlPSJyYW5nZSJdIHtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czoxMDBweDtiYWNrZ3JvdW5kOndoaXRlO2ZvbnQtc2l6ZTo5MCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjAuNGVtfQppbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MDttYXJnaW4tbGVmdDowO3otaW5kZXg6MTtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7YmFja2dyb3VuZDojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDoxLjFlbTt3aWR0aDoxLjFlbX0KaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojYjdkYmZiO2JvcmRlcjoxcHggc29saWQgI2I3ZGJmYn0KLnVpLXdpZGdldHtmb250LXNpemU6OTAlfQpib2R5ID4gLnVpLWF1dG9jb21wbGV0ZXtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjNlbX0KLnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOndoaXRlO2NvbG9yOiM0ZDVhNmF9Ci51aS1zdGF0ZS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2JlN2ZlfQoudWktc3RhdGUtaGlnaGxpZ2h0e2JveC1zaGFkb3c6MCAwIDAgMXB4ICNkMGQ2ZGQgaW5zZXR9Ci51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApfQoudWktd2lkZ2V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Ci51aS1zdGF0ZS1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNjYmU3ZmV9Ci51aS1hdXRvY29tcGxldGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2N1cnNvcjpkZWZhdWx0O2JvcmRlci1jb2xvcjojOWVjZGY4O2JvcmRlci10b3A6bm9uZTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7ei1pbmRleDo5OTk5fQoudWktbWVudXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2Rpc3BsYXk6YmxvY2s7b3V0bGluZTpub25lfQoudWktbWVudSAudWktbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDtwYWRkaW5nOjNweCAxZW0gM3B4IC40ZW07Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDowO2xpc3Qtc3R5bGUtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTciKX0KLnVpLXRvb2x0aXB7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk5O21heC13aWR0aDozMDBweDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDVweCAjYWFhO2JveC1zaGFkb3c6MCAwIDVweCAjYWFhfQoudWktdG9vbHRpcHtwYWRkaW5nOjhweCAxMnB4IDlweCAxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTk5OTk7bWF4LXdpZHRoOjI1MHB4O21pbi13aWR0aDoyMDBweDtib3gtc2hhZG93OjJweCAycHggMHB4IHJnYmEoMjgsIDMyLCAzOCwgMC4wOCk7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Zm9udC1zaXplOjkwJTtsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNmI5ZmRiO2hlaWdodDphdXRvfQoudWktdG9vbHRpcDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi03cHg7dG9wOjEwcHg7d2lkdGg6MTFweDtoZWlnaHQ6MTFweDtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt6LWluZGV4OjU5OTk4fQouQ29kZU1pcnJvcntmb250OjEzcHggQ291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7aGVpZ2h0OmF1dG99Ci5Db2RlTWlycm9yLXNjcm9sbHtvdmVyZmxvdzphdXRvfQouQ29kZU1pcnJvci1saW5lc3twYWRkaW5nOjRweCAwfQouQ29kZU1pcnJvciBwcmV7cGFkZGluZzowIDRweH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlciwgLkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlcntiYWNrZ3JvdW5kLWNvbG9yOndoaXRlfQouQ29kZU1pcnJvci1ndXR0ZXJze2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7d2hpdGUtc3BhY2U6bm93cmFwfQouQ29kZU1pcnJvci1saW5lbnVtYmVye3BhZGRpbmc6MCAzcHggMCA1cHg7bWluLXdpZHRoOjIwcHg7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjojOTk5O3doaXRlLXNwYWNlOm5vd3JhcH0KLkNvZGVNaXJyb3IgZGl2LkNvZGVNaXJyb3ItY3Vyc29ye2JvcmRlci1sZWZ0OjFweCBzb2xpZCBibGFjazt6LWluZGV4OjN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLXNlY29uZGFyeWN1cnNvcntib3JkZXItbGVmdDoxcHggc29saWQgc2lsdmVyfQouQ29kZU1pcnJvci5jbS1rZXltYXAtZmF0LWN1cnNvciBkaXYuQ29kZU1pcnJvci1jdXJzb3J7d2lkdGg6YXV0bztib3JkZXI6MDtiYWNrZ3JvdW5kOiM3ZTc7ei1pbmRleDoxfQouY20tdGFie2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouY20tcy1kZWZhdWx0IC5jbS1rZXl3b3Jke2NvbG9yOiM3MjM1OTR9Ci5jbS1zLWRlZmF1bHQgLmNtLWF0b217Y29sb3I6I2ZmNGQwMX0KLmNtLXMtZGVmYXVsdCAuY20tbnVtYmVye2NvbG9yOiM2NTljMTN9Ci5jbS1zLWRlZmF1bHQgLmNtLWRlZntjb2xvcjojYzMwYzNifQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZXtjb2xvcjojMzNiZmFkfQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZS0ye2NvbG9yOiMwMDU1YWF9Ci5jbS1zLWRlZmF1bHQgLmNtLXZhcmlhYmxlLTN7Y29sb3I6IzAwODg1NX0KLmNtLXMtZGVmYXVsdCAuY20tcHJvcGVydHl7Y29sb3I6IzQzNGU1ZH0KLmNtLXMtZGVmYXVsdCAuY20tb3BlcmF0b3J7Y29sb3I6IzM2MzYzNn0KLmNtLXMtZGVmYXVsdCAuY20tY29tbWVudHtjb2xvcjojNGFhYTAwfQouY20tcy1kZWZhdWx0IC5jbS1zdHJpbmd7Y29sb3I6IzQwNjNiMH0KLmNtLXMtZGVmYXVsdCAuY20tc3RyaW5nLTJ7Y29sb3I6I2ZmNTUwMH0KLmNtLXMtZGVmYXVsdCAuY20tbWV0YXtjb2xvcjojNTU1NTU1fQouY20tcy1kZWZhdWx0IC5jbS1xdWFsaWZpZXJ7Y29sb3I6IzU1NTU1NX0KLmNtLXMtZGVmYXVsdCAuY20tYnVpbHRpbntjb2xvcjojMzMwMGFhfQouY20tcy1kZWZhdWx0IC5jbS1icmFja2V0e2NvbG9yOiM5OTk5Nzd9Ci5jbS1zLWRlZmF1bHQgLmNtLXRhZ3tjb2xvcjojNzNhYzE5fQouY20tcy1kZWZhdWx0IC5jbS1hdHRyaWJ1dGV7Y29sb3I6IzAwNDdjY30KLmNtLXMtZGVmYXVsdCAuY20taGVhZGVye2NvbG9yOiNiNjAwMDB9Ci5jbS1zLWRlZmF1bHQgLmNtLXF1b3Rle2NvbG9yOiNmODM0Yzh9Ci5jbS1zLWRlZmF1bHQgLmNtLWhye2NvbG9yOiM5OTk5OTl9Ci5jbS1zLWRlZmF1bHQgLmNtLWxpbmt7Y29sb3I6IzU0ODFhMH0KLmNtLW5lZ2F0aXZle2NvbG9yOiNkZDQ0NDR9Ci5jbS1wb3NpdGl2ZXtjb2xvcjojMjI5OTIyfQouY20taGVhZGVyLCAuY20tc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGR9Ci5jbS1lbXtmb250LXN0eWxlOml0YWxpY30KLmNtLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0KLmNtLXN0cmlrZXRocm91Z2h7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmNtLXMtZGVmYXVsdCAuY20tZXJyb3J7Y29sb3I6I2Q2MmM0OX0KLmNtLWludmFsaWRjaGFye2NvbG9yOiNmZjAwMDB9CmRpdi5Db2RlTWlycm9yIHNwYW4uQ29kZU1pcnJvci1tYXRjaGluZ2JyYWNrZXR7Y29sb3I6IzAwZmYwMH0KZGl2LkNvZGVNaXJyb3Igc3Bhbi5Db2RlTWlycm9yLW5vbm1hdGNoaW5nYnJhY2tldHtjb2xvcjojZmYyMjIyfQouQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmR7YmFja2dyb3VuZDojZThmMmZmfQouQ29kZU1pcnJvcntsaW5lLWhlaWdodDoxLjMyZW07cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6d2hpdGU7Y29sb3I6IzMzM30KLkNvZGVNaXJyb3Itc2Nyb2xse21hcmdpbi1ib3R0b206LTMwcHg7bWFyZ2luLXJpZ2h0Oi0zMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7cGFkZGluZy1yaWdodDozMHB4O2hlaWdodDoxMDAlO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0KLkNvZGVNaXJyb3Itc2l6ZXJ7cG9zaXRpb246cmVsYXRpdmV9Ci5Db2RlTWlycm9yLXZzY3JvbGxiYXIsIC5Db2RlTWlycm9yLWhzY3JvbGxiYXIsIC5Db2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXIsIC5Db2RlTWlycm9yLWd1dHRlci1maWxsZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2O2Rpc3BsYXk6bm9uZX0KLkNvZGVNaXJyb3ItdnNjcm9sbGJhcntyaWdodDowO3RvcDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6c2Nyb2xsfQouQ29kZU1pcnJvci1oc2Nyb2xsYmFye2JvdHRvbTowO2xlZnQ6MDtvdmVyZmxvdy15OmhpZGRlbjtvdmVyZmxvdy14OnNjcm9sbH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlcntyaWdodDowO2JvdHRvbTowfQouQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVye2xlZnQ6MDtib3R0b206MH0KLkNvZGVNaXJyb3ItZ3V0dGVyc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cGFkZGluZy1ib3R0b206MzBweDt6LWluZGV4OjN9Ci5Db2RlTWlycm9yLWd1dHRlcnt3aGl0ZS1zcGFjZTpub3JtYWw7aGVpZ2h0OjEwMCU7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7cGFkZGluZy1ib3R0b206MzBweDttYXJnaW4tYm90dG9tOi0zMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyp6b29tOjE7KmRpc3BsYXk6aW5saW5lfQouQ29kZU1pcnJvci1ndXR0ZXItZWx0e3Bvc2l0aW9uOmFic29sdXRlO2N1cnNvcjpkZWZhdWx0O3otaW5kZXg6NH0KLkNvZGVNaXJyb3ItbGluZXN7Y3Vyc29yOnRleHQ7bGluZS1oZWlnaHQ6MS4zZW19Ci5Db2RlTWlycm9yIHByZXstbW96LWJvcmRlci1yYWRpdXM6MDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXdpZHRoOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O21hcmdpbjowO3doaXRlLXNwYWNlOnByZTt3b3JkLXdyYXA6bm9ybWFsO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt6LWluZGV4OjI7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6dmlzaWJsZX0KLkNvZGVNaXJyb3Itd3JhcCBwcmV7d29yZC13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpub3JtYWx9Ci5Db2RlTWlycm9yLWNvZGUgcHJle2JvcmRlci1yaWdodDozMHB4IHNvbGlkIHRyYW5zcGFyZW50O3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0KLkNvZGVNaXJyb3Itd3JhcCAuQ29kZU1pcnJvci1jb2RlIHByZXtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDphdXRvfQouQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDt6LWluZGV4OjB9Ci5Db2RlTWlycm9yLWxpbmV3aWRnZXR7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO292ZXJmbG93OmF1dG99Ci5Db2RlTWlycm9yLXdyYXAgLkNvZGVNaXJyb3Itc2Nyb2xse292ZXJmbG93LXg6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3Zpc2liaWxpdHk6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJlIHByZXtwb3NpdGlvbjpzdGF0aWN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDowfQouQ29kZU1pcnJvci1mb2N1c2VkIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OnZpc2libGV9Ci5Db2RlTWlycm9yLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q5ZDlkOX0KLkNvZGVNaXJyb3ItZm9jdXNlZCAuQ29kZU1pcnJvci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNkN2Q0ZjB9Ci5jbS1zZWFyY2hpbmd7YmFja2dyb3VuZDojZmZhO2JhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMCwgMC40KX0KQG1lZGlhIHByaW50ey5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OmhpZGRlbn19Ci5qY3JvcC1ob2xkZXJ7ZGlyZWN0aW9uOmx0cjt0ZXh0LWFsaWduOmxlZnR9Ci5qY3JvcC12bGluZSwgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I2ZmZmZmZjtmb250LXNpemU6MDtwb3NpdGlvbjphYnNvbHV0ZX0KLmpjcm9wLXZsaW5le2hlaWdodDoxMDAlO3dpZHRoOjFweCFpbXBvcnRhbnR9Ci5qY3JvcC12bGluZS5yaWdodHtyaWdodDowfQouamNyb3AtaGxpbmV7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MTAwJX0KLmpjcm9wLWhsaW5lLmJvdHRvbXtib3R0b206MH0KLmpjcm9wLXRyYWNrZXJ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfQouamNyb3AtaGFuZGxle2JhY2tncm91bmQtY29sb3I6IzM4NDE0Yztib3JkZXI6MXB4ICNlM2U4ZWIgc29saWQ7Zm9udC1zaXplOjFweDtoZWlnaHQ6N3B4O3dpZHRoOjdweH0KLmpjcm9wLWhhbmRsZS5vcmQtbntsZWZ0OjUwJTttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3tib3R0b206MDtsZWZ0OjUwJTttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWhhbmRsZS5vcmQtZXttYXJnaW4tcmlnaHQ6LTRweDttYXJnaW4tdG9wOi00cHg7cmlnaHQ6MDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC13e2xlZnQ6MDttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC1ud3tsZWZ0OjA7bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tdG9wOi00cHg7dG9wOjB9Ci5qY3JvcC1oYW5kbGUub3JkLW5le21hcmdpbi1yaWdodDotNHB4O21hcmdpbi10b3A6LTRweDtyaWdodDowO3RvcDowfQouamNyb3AtaGFuZGxlLm9yZC1zZXtib3R0b206MDttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3d7Ym90dG9tOjA7bGVmdDowO21hcmdpbi1ib3R0b206LTRweDttYXJnaW4tbGVmdDotNHB4fQouamNyb3AtZHJhZ2Jhci5vcmQtbiwgLmpjcm9wLWRyYWdiYXIub3JkLXN7aGVpZ2h0OjdweDt3aWR0aDoxMDAlfQouamNyb3AtZHJhZ2Jhci5vcmQtZSwgLmpjcm9wLWRyYWdiYXIub3JkLXd7aGVpZ2h0OjEwMCU7d2lkdGg6N3B4fQouamNyb3AtZHJhZ2Jhci5vcmQtbnttYXJnaW4tdG9wOi00cHh9Ci5qY3JvcC1kcmFnYmFyLm9yZC1ze2JvdHRvbTowO21hcmdpbi1ib3R0b206LTRweH0KLmpjcm9wLWRyYWdiYXIub3JkLWV7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWRyYWdiYXIub3JkLXd7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWxpZ2h0IC5qY3JvcC12bGluZSwgLmpjcm9wLWxpZ2h0IC5qY3JvcC1obGluZXtiYWNrZ3JvdW5kOiNmZmZmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApIWltcG9ydGFudDtvcGFjaXR5Oi43MCFpbXBvcnRhbnR9Ci5qY3JvcC1saWdodCAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLWNvbG9yOiNGRkY7Ym9yZGVyLXJhZGl1czozcHh9Ci5qY3JvcC1kYXJrIC5qY3JvcC12bGluZSwgLmpjcm9wLWRhcmsgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6IzAwMDtmaWx0ZXI6YWxwaGEob3BhY2l0eT03MCkhaW1wb3J0YW50O29wYWNpdHk6LjchaW1wb3J0YW50fQouamNyb3AtZGFyayAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czozcHh9Ci5zb2xpZC1saW5lIC5qY3JvcC12bGluZSwgLnNvbGlkLWxpbmUgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I0ZGRn0KLmpjcm9wLWhvbGRlciBpbWcsIGltZy5qY3JvcC1wcmV2aWV3e21heC13aWR0aDpub25lfQouamNyb3AtaG9sZGVyIGRpdntwb3NpdGlvbjpzdGF0aWN9Ci5qc29uZGlmZnBhdGNoLWRlbHRhe2ZvbnQtZmFtaWx5OkNvdXNpbmUsIHVpLW1vbm9zcGFjZSwgTW9uYWNvLCBNZXJsbywgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW07bWFyZ2luOjA7cGFkZGluZzowIDAgMCAxMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1kZWx0YSBwcmV7Zm9udC1mYW1pbHk6Q291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7Zm9udC1zaXplOjEycHg7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrfQp1bC5qc29uZGlmZnBhdGNoLWRlbHRhe2xpc3Qtc3R5bGUtdHlwZTpub25lO3BhZGRpbmc6MCAwIDAgMjBweDttYXJnaW46MH0KLmpzb25kaWZmcGF0Y2gtZGVsdGEgdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowIDAgMCAyMHB4O21hcmdpbjowfQouanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lLCAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC12YWx1ZSBwcmUsIC5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXJpZ2h0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtYWRkZWR7YmFja2dyb3VuZDojZTBmNWM2fQouanNvbmRpZmZwYXRjaC1kZWxldGVkIC5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWUsIC5qc29uZGlmZnBhdGNoLWRlbGV0ZWQgcHJlLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1sZWZ0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtZGVsZXRlZHtiYWNrZ3JvdW5kOiNmZWQzZDM7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb257Y29sb3I6IzZiNzY4NX0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXt0cmFuc2l0aW9uOmFsbCAwLjNzOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcztvdmVyZmxvdy15OmhpZGRlbn0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXNob3dpbmcgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtc2hvd2luZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkZGVuIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGRlbiAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRpbmcgLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUsIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRkZW4gLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTpibG9ja30KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXZpc2libGUgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtdmlzaWJsZSAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGluZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1zaG93aW5nIC5qc29uZGlmZnBhdGNoLWFycm93LCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLWFycm93e2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7dmVydGljYWwtYWxpZ246dG9wfQouanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzonfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtYXJyYXkgPiAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzpbJ30KLmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10sJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmJlZm9yZXtjb250ZW50OidbJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10nfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0ID4gLmpzb25kaWZmcGF0Y2gtcHJvcGVydHktbmFtZTphZnRlcntjb250ZW50Oic6eyd9Ci5qc29uZGlmZnBhdGNoLWNoaWxkLW5vZGUtdHlwZS1vYmplY3Q6YWZ0ZXJ7Y29udGVudDonfSwnfQpkaXYuanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0OmJlZm9yZXtjb250ZW50Oid7J30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLW9iamVjdDphZnRlcntjb250ZW50Oid9J30KLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6JywnfQpsaTpsYXN0LWNoaWxkID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVyLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCA+IC5qc29uZGlmZnBhdGNoLWxlZnQtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6Jyd9Ci5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1yaWdodC12YWx1ZXttYXJnaW4tbGVmdDo1cHh9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtbW92ZWQgLmpzb25kaWZmcGF0Y2gtbW92ZWQtZGVzdGluYXRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojZmZlZjkxO2NvbG9yOiM0ZDVhNmF9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLW1vdmVkLWRlc3RpbmF0aW9uOmJlZm9yZXtjb250ZW50OicgPT4gJ30KdWwuanNvbmRpZmZwYXRjaC10ZXh0ZGlmZntwYWRkaW5nOjB9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxvY2F0aW9ue2NvbG9yOiM4ODkyOWY7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjYwcHh9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmUtbnVtYmVyOmFmdGVye2NvbnRlbnQ6JywnfQouanNvbmRpZmZwYXRjaC1lcnJvcntiYWNrZ3JvdW5kOiNkNjJjNDk7Y29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6Ym9sZH0KQGZvbnQtZmFjZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7c3JjOnVybCgiZm91bmRhdGlvbi1pY29ucy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiZm91bmRhdGlvbi1pY29ucy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQouZmktYWRkcmVzcy1ib29rOmJlZm9yZSwgLmZpLWFsZXJ0OmJlZm9yZSwgLmZpLWFsaWduLWNlbnRlcjpiZWZvcmUsIC5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSwgLmZpLWFsaWduLWxlZnQ6YmVmb3JlLCAuZmktYWxpZ24tcmlnaHQ6YmVmb3JlLCAuZmktYW5jaG9yOmJlZm9yZSwgLmZpLWFubm90YXRlOmJlZm9yZSwgLmZpLWFyY2hpdmU6YmVmb3JlLCAuZmktYXJyb3ctZG93bjpiZWZvcmUsIC5maS1hcnJvdy1sZWZ0OmJlZm9yZSwgLmZpLWFycm93LXJpZ2h0OmJlZm9yZSwgLmZpLWFycm93LXVwOmJlZm9yZSwgLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUsIC5maS1hcnJvd3MtZXhwYW5kOmJlZm9yZSwgLmZpLWFycm93cy1pbjpiZWZvcmUsIC5maS1hcnJvd3Mtb3V0OmJlZm9yZSwgLmZpLWFzbDpiZWZvcmUsIC5maS1hc3RlcmlzazpiZWZvcmUsIC5maS1hdC1zaWduOmJlZm9yZSwgLmZpLWJhY2tncm91bmQtY29sb3I6YmVmb3JlLCAuZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsIC5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlLCAuZmktYmF0dGVyeS1oYWxmOmJlZm9yZSwgLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSwgLmZpLWJpdGNvaW46YmVmb3JlLCAuZmktYmxpbmQ6YmVmb3JlLCAuZmktYmx1ZXRvb3RoOmJlZm9yZSwgLmZpLWJvbGQ6YmVmb3JlLCAuZmktYm9vay1ib29rbWFyazpiZWZvcmUsIC5maS1ib29rOmJlZm9yZSwgLmZpLWJvb2ttYXJrOmJlZm9yZSwgLmZpLWJyYWlsbGU6YmVmb3JlLCAuZmktYnVyc3QtbmV3OmJlZm9yZSwgLmZpLWJ1cnN0LXNhbGU6YmVmb3JlLCAuZmktYnVyc3Q6YmVmb3JlLCAuZmktY2FsZW5kYXI6YmVmb3JlLCAuZmktY2FtZXJhOmJlZm9yZSwgLmZpLWNoZWNrOmJlZm9yZSwgLmZpLWNoZWNrYm94OmJlZm9yZSwgLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUsIC5maS1jbGlwYm9hcmQtcGVuY2lsOmJlZm9yZSwgLmZpLWNsaXBib2FyZDpiZWZvcmUsIC5maS1jbG9jazpiZWZvcmUsIC5maS1jbG9zZWQtY2FwdGlvbjpiZWZvcmUsIC5maS1jbG91ZDpiZWZvcmUsIC5maS1jb21tZW50LW1pbnVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtcXVvdGVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLCAuZmktY29tbWVudDpiZWZvcmUsIC5maS1jb21tZW50czpiZWZvcmUsIC5maS1jb21wYXNzOmJlZm9yZSwgLmZpLWNvbnRyYXN0OmJlZm9yZSwgLmZpLWNyZWRpdC1jYXJkOmJlZm9yZSwgLmZpLWNyb3A6YmVmb3JlLCAuZmktY3Jvd246YmVmb3JlLCAuZmktY3NzMzpiZWZvcmUsIC5maS1kYXRhYmFzZTpiZWZvcmUsIC5maS1kaWUtZml2ZTpiZWZvcmUsIC5maS1kaWUtZm91cjpiZWZvcmUsIC5maS1kaWUtb25lOmJlZm9yZSwgLmZpLWRpZS1zaXg6YmVmb3JlLCAuZmktZGllLXRocmVlOmJlZm9yZSwgLmZpLWRpZS10d286YmVmb3JlLCAuZmktZGlzbGlrZTpiZWZvcmUsIC5maS1kb2xsYXItYmlsbDpiZWZvcmUsIC5maS1kb2xsYXI6YmVmb3JlLCAuZmktZG93bmxvYWQ6YmVmb3JlLCAuZmktZWplY3Q6YmVmb3JlLCAuZmktZWxldmF0b3I6YmVmb3JlLCAuZmktZXVybzpiZWZvcmUsIC5maS1leWU6YmVmb3JlLCAuZmktZmFzdC1mb3J3YXJkOmJlZm9yZSwgLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlLCAuZmktZmVtYWxlOmJlZm9yZSwgLmZpLWZpbHRlcjpiZWZvcmUsIC5maS1maXJzdC1haWQ6YmVmb3JlLCAuZmktZmxhZzpiZWZvcmUsIC5maS1mb2xkZXItYWRkOmJlZm9yZSwgLmZpLWZvbGRlci1sb2NrOmJlZm9yZSwgLmZpLWZvbGRlcjpiZWZvcmUsIC5maS1mb290OmJlZm9yZSwgLmZpLWZvdW5kYXRpb246YmVmb3JlLCAuZmktZ3JhcGgtYmFyOmJlZm9yZSwgLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLCAuZmktZ3JhcGgtcGllOmJlZm9yZSwgLmZpLWdyYXBoLXRyZW5kOmJlZm9yZSwgLmZpLWd1aWRlLWRvZzpiZWZvcmUsIC5maS1oZWFyaW5nLWFpZDpiZWZvcmUsIC5maS1oZWFydDpiZWZvcmUsIC5maS1ob21lOmJlZm9yZSwgLmZpLWh0bWw1OmJlZm9yZSwgLmZpLWluZGVudC1sZXNzOmJlZm9yZSwgLmZpLWluZGVudC1tb3JlOmJlZm9yZSwgLmZpLWluZm86YmVmb3JlLCAuZmktaXRhbGljOmJlZm9yZSwgLmZpLWtleTpiZWZvcmUsIC5maS1sYXB0b3A6YmVmb3JlLCAuZmktbGF5b3V0OmJlZm9yZSwgLmZpLWxpZ2h0YnVsYjpiZWZvcmUsIC5maS1saWtlOmJlZm9yZSwgLmZpLWxpbms6YmVmb3JlLCAuZmktbGlzdC1idWxsZXQ6YmVmb3JlLCAuZmktbGlzdC1udW1iZXI6YmVmb3JlLCAuZmktbGlzdC10aHVtYm5haWxzOmJlZm9yZSwgLmZpLWxpc3Q6YmVmb3JlLCAuZmktbG9jazpiZWZvcmUsIC5maS1sb29wOmJlZm9yZSwgLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLCAuZmktbWFpbDpiZWZvcmUsIC5maS1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS1tYWxlLXN5bWJvbDpiZWZvcmUsIC5maS1tYWxlOmJlZm9yZSwgLmZpLW1hcDpiZWZvcmUsIC5maS1tYXJrZXI6YmVmb3JlLCAuZmktbWVnYXBob25lOmJlZm9yZSwgLmZpLW1pY3JvcGhvbmU6YmVmb3JlLCAuZmktbWludXMtY2lyY2xlOmJlZm9yZSwgLmZpLW1pbnVzOmJlZm9yZSwgLmZpLW1vYmlsZS1zaWduYWw6YmVmb3JlLCAuZmktbW9iaWxlOmJlZm9yZSwgLmZpLW1vbml0b3I6YmVmb3JlLCAuZmktbW91bnRhaW5zOmJlZm9yZSwgLmZpLW11c2ljOmJlZm9yZSwgLmZpLW5leHQ6YmVmb3JlLCAuZmktbm8tZG9nczpiZWZvcmUsIC5maS1uby1zbW9raW5nOmJlZm9yZSwgLmZpLXBhZ2UtYWRkOmJlZm9yZSwgLmZpLXBhZ2UtY29weTpiZWZvcmUsIC5maS1wYWdlLWNzdjpiZWZvcmUsIC5maS1wYWdlLWRlbGV0ZTpiZWZvcmUsIC5maS1wYWdlLWRvYzpiZWZvcmUsIC5maS1wYWdlLWVkaXQ6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSwgLmZpLXBhZ2UtZXhwb3J0LWRvYzpiZWZvcmUsIC5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQ6YmVmb3JlLCAuZmktcGFnZS1maWxsZWQ6YmVmb3JlLCAuZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsIC5maS1wYWdlLXBkZjpiZWZvcmUsIC5maS1wYWdlLXJlbW92ZTpiZWZvcmUsIC5maS1wYWdlLXNlYXJjaDpiZWZvcmUsIC5maS1wYWdlOmJlZm9yZSwgLmZpLXBhaW50LWJ1Y2tldDpiZWZvcmUsIC5maS1wYXBlcmNsaXA6YmVmb3JlLCAuZmktcGF1c2U6YmVmb3JlLCAuZmktcGF3OmJlZm9yZSwgLmZpLXBheXBhbDpiZWZvcmUsIC5maS1wZW5jaWw6YmVmb3JlLCAuZmktcGhvdG86YmVmb3JlLCAuZmktcGxheS1jaXJjbGU6YmVmb3JlLCAuZmktcGxheS12aWRlbzpiZWZvcmUsIC5maS1wbGF5OmJlZm9yZSwgLmZpLXBsdXM6YmVmb3JlLCAuZmktcG91bmQ6YmVmb3JlLCAuZmktcG93ZXI6YmVmb3JlLCAuZmktcHJldmlvdXM6YmVmb3JlLCAuZmktcHJpY2UtdGFnOmJlZm9yZSwgLmZpLXByaWNldGFnLW11bHRpcGxlOmJlZm9yZSwgLmZpLXByaW50OmJlZm9yZSwgLmZpLXByb2hpYml0ZWQ6YmVmb3JlLCAuZmktcHJvamVjdGlvbi1zY3JlZW46YmVmb3JlLCAuZmktcHV6emxlOmJlZm9yZSwgLmZpLXF1b3RlOmJlZm9yZSwgLmZpLXJlY29yZDpiZWZvcmUsIC5maS1yZWZyZXNoOmJlZm9yZSwgLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSwgLmZpLXJlc3VsdHM6YmVmb3JlLCAuZmktcmV3aW5kLXRlbjpiZWZvcmUsIC5maS1yZXdpbmQ6YmVmb3JlLCAuZmktcnNzOmJlZm9yZSwgLmZpLXNhZmV0eS1jb25lOmJlZm9yZSwgLmZpLXNhdmU6YmVmb3JlLCAuZmktc2hhcmU6YmVmb3JlLCAuZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsIC5maS1zaGllbGQ6YmVmb3JlLCAuZmktc2hvcHBpbmctYmFnOmJlZm9yZSwgLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLCAuZmktc2h1ZmZsZTpiZWZvcmUsIC5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUsIC5maS1zb2NpYWwtYXBwbGU6YmVmb3JlLCAuZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZSwgLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLCAuZmktc29jaWFsLXNreXBlOmJlZm9yZSwgLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsIC5maS1zb2NpYWwtdHdpdHRlcjpiZWZvcmUsIC5maS1zb2NpYWwtd2luZG93czpiZWZvcmUsIC5maS1zb2NpYWwteW91dHViZTpiZWZvcmUsIC5maS1zb3VuZDpiZWZvcmUsIC5maS1zdGFyOmJlZm9yZSwgLmZpLXN0b3A6YmVmb3JlLCAuZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsIC5maS1zdWJzY3JpcHQ6YmVmb3JlLCAuZmktc3VwZXJzY3JpcHQ6YmVmb3JlLCAuZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsIC5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlLCAuZmktdGFyZ2V0LXR3bzpiZWZvcmUsIC5maS10YXJnZXQ6YmVmb3JlLCAuZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlLCAuZmktdGVsZXBob25lOmJlZm9yZSwgLmZpLXRleHQtY29sb3I6YmVmb3JlLCAuZmktdGh1bWJuYWlsczpiZWZvcmUsIC5maS10aWNrZXQ6YmVmb3JlLCAuZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLCAuZmktdG9yc28tZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGw6YmVmb3JlLCAuZmktdG9yc29zLWZlbWFsZS1tYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS10b3Jzb3M6YmVmb3JlLCAuZmktdHJhc2g6YmVmb3JlLCAuZmktdHJlZXM6YmVmb3JlLCAuZmktdHJvcGh5OmJlZm9yZSwgLmZpLXVuZGVybGluZTpiZWZvcmUsIC5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSwgLmZpLXVubGluazpiZWZvcmUsIC5maS11bmxvY2s6YmVmb3JlLCAuZmktdXBsb2FkLWNsb3VkOmJlZm9yZSwgLmZpLXVwbG9hZDpiZWZvcmUsIC5maS11c2I6YmVmb3JlLCAuZmktdmlkZW86YmVmb3JlLCAuZmktdm9sdW1lLW5vbmU6YmVmb3JlLCAuZmktdm9sdW1lLXN0cmlrZTpiZWZvcmUsIC5maS12b2x1bWU6YmVmb3JlLCAuZmktd2ViOmJlZm9yZSwgLmZpLXdoZWVsY2hhaXI6YmVmb3JlLCAuZmktd2lkZ2V0OmJlZm9yZSwgLmZpLXdyZW5jaDpiZWZvcmUsIC5maS14LWNpcmNsZTpiZWZvcmUsIC5maS14OmJlZm9yZSwgLmZpLXllbjpiZWZvcmUsIC5maS16b29tLWluOmJlZm9yZSwgLmZpLXpvb20tb3V0OmJlZm9yZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9Ci5maS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0KLmZpLWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9Ci5maS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0KLmZpLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0KLmZpLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0KLmZpLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9Ci5maS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0KLmZpLWFubm90YXRlOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9Ci5maS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9Ci5maS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9Ci5maS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9Ci5maS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGIifQouZmktYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTBjIn0KLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYxMGQifQouZmktYXJyb3dzLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYxMGUifQouZmktYXJyb3dzLWluOmJlZm9yZXtjb250ZW50OiJcZjEwZiJ9Ci5maS1hcnJvd3Mtb3V0OmJlZm9yZXtjb250ZW50OiJcZjExMCJ9Ci5maS1hc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0KLmZpLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjExMiJ9Ci5maS1hdC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjExMyJ9Ci5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZXtjb250ZW50OiJcZjExNCJ9Ci5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjExNSJ9Ci5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTE2In0KLmZpLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYxMTcifQouZmktYml0Y29pbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0KLmZpLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0KLmZpLWJsaW5kOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9Ci5maS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0KLmZpLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0KLmZpLWJvb2stYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMTFkIn0KLmZpLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0KLmZpLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjExZiJ9Ci5maS1icmFpbGxlOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9Ci5maS1idXJzdC1uZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0KLmZpLWJ1cnN0LXNhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0KLmZpLWJ1cnN0OmJlZm9yZXtjb250ZW50OiJcZjEyMyJ9Ci5maS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMjQifQouZmktY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9Ci5maS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYxMjYifQouZmktY2hlY2tib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0KLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmV7Y29udGVudDoiXGYxMjgifQouZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYxMjkifQouZmktY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9Ci5maS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYxMmIifQouZmktY2xvc2VkLWNhcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0KLmZpLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9Ci5maS1jb21tZW50LW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9Ci5maS1jb21tZW50LXF1b3RlczpiZWZvcmV7Y29udGVudDoiXGYxMmYifQouZmktY29tbWVudC12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxMzAifQouZmktY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYxMzEifQouZmktY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0KLmZpLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0KLmZpLWNvbnRyYXN0OmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9Ci5maS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMzUifQouZmktY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMzYifQouZmktY3Jvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0KLmZpLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0KLmZpLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9Ci5maS1kaWUtZml2ZTpiZWZvcmV7Y29udGVudDoiXGYxM2EifQouZmktZGllLWZvdXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0KLmZpLWRpZS1vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0KLmZpLWRpZS1zaXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTNkIn0KLmZpLWRpZS10aHJlZTpiZWZvcmV7Y29udGVudDoiXGYxM2UifQouZmktZGllLXR3bzpiZWZvcmV7Y29udGVudDoiXGYxM2YifQouZmktZGlzbGlrZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifQouZmktZG9sbGFyLWJpbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0KLmZpLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGYxNDIifQouZmktZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0KLmZpLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9Ci5maS1lbGV2YXRvcjpiZWZvcmV7Y29udGVudDoiXGYxNDUifQouZmktZXVybzpiZWZvcmV7Y29udGVudDoiXGYxNDYifQouZmktZXllOmJlZm9yZXtjb250ZW50OiJcZjE0NyJ9Ci5maS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0KLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0KLmZpLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifQouZmktZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9Ci5maS1maXJzdC1haWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0KLmZpLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0KLmZpLWZvbGRlci1hZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0KLmZpLWZvbGRlci1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjE0ZiJ9Ci5maS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0KLmZpLWZvb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0KLmZpLWZvdW5kYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0KLmZpLWdyYXBoLWJhcjpiZWZvcmV7Y29udGVudDoiXGYxNTMifQouZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGYxNTQifQouZmktZ3JhcGgtcGllOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9Ci5maS1ncmFwaC10cmVuZDpiZWZvcmV7Y29udGVudDoiXGYxNTYifQouZmktZ3VpZGUtZG9nOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9Ci5maS1oZWFyaW5nLWFpZDpiZWZvcmV7Y29udGVudDoiXGYxNTgifQouZmktaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0KLmZpLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0KLmZpLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9Ci5maS1pbmRlbnQtbGVzczpiZWZvcmV7Y29udGVudDoiXGYxNWMifQouZmktaW5kZW50LW1vcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0KLmZpLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0KLmZpLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYxNWYifQouZmkta2V5OmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9Ci5maS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0KLmZpLWxheW91dDpiZWZvcmV7Y29udGVudDoiXGYxNjIifQouZmktbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9Ci5maS1saWtlOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9Ci5maS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9Ci5maS1saXN0LWJ1bGxldDpiZWZvcmV7Y29udGVudDoiXGYxNjYifQouZmktbGlzdC1udW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0KLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxNjgifQouZmktbGlzdDpiZWZvcmV7Y29udGVudDoiXGYxNjkifQouZmktbG9jazpiZWZvcmV7Y29udGVudDoiXGYxNmEifQouZmktbG9vcDpiZWZvcmV7Y29udGVudDoiXGYxNmIifQouZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmV7Y29udGVudDoiXGYxNmMifQouZmktbWFpbDpiZWZvcmV7Y29udGVudDoiXGYxNmQifQouZmktbWFsZS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0KLmZpLW1hbGUtc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjE2ZiJ9Ci5maS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9Ci5maS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0KLmZpLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYxNzIifQouZmktbWVnYXBob25lOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9Ci5maS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjE3NCJ9Ci5maS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0KLmZpLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9Ci5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9Ci5maS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0KLmZpLW1vbml0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0KLmZpLW1vdW50YWluczpiZWZvcmV7Y29udGVudDoiXGYxN2EifQouZmktbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0KLmZpLW5leHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0KLmZpLW5vLWRvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0KLmZpLW5vLXNtb2tpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0KLmZpLXBhZ2UtYWRkOmJlZm9yZXtjb250ZW50OiJcZjE3ZiJ9Ci5maS1wYWdlLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0KLmZpLXBhZ2UtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9Ci5maS1wYWdlLWRlbGV0ZTpiZWZvcmV7Y29udGVudDoiXGYxODIifQouZmktcGFnZS1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTgzIn0KLmZpLXBhZ2UtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYxODQifQouZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9Ci5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0KLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmV7Y29udGVudDoiXGYxODcifQouZmktcGFnZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0KLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9Ci5maS1wYWdlLW11bHRpcGxlOmJlZm9yZXtjb250ZW50OiJcZjE4YSJ9Ci5maS1wYWdlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxOGIifQouZmktcGFnZS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0KLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9Ci5maS1wYWdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZSJ9Ci5maS1wYWludC1idWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMThmIn0KLmZpLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGYxOTAifQouZmktcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0KLmZpLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxOTIifQouZmktcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9Ci5maS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0KLmZpLXBob3RvOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9Ci5maS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTYifQouZmktcGxheS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxOTcifQouZmktcGxheTpiZWZvcmV7Y29udGVudDoiXGYxOTgifQouZmktcGx1czpiZWZvcmV7Y29udGVudDoiXGYxOTkifQouZmktcG91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0KLmZpLXBvd2VyOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9Ci5maS1wcmV2aW91czpiZWZvcmV7Y29udGVudDoiXGYxOWMifQouZmktcHJpY2UtdGFnOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9Ci5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmV7Y29udGVudDoiXGYxOWUifQouZmktcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlmIn0KLmZpLXByb2hpYml0ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0KLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9Ci5maS1wdXp6bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0KLmZpLXF1b3RlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9Ci5maS1yZWNvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0KLmZpLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0KLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZXtjb250ZW50OiJcZjFhNiJ9Ci5maS1yZXN1bHRzOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9Ci5maS1yZXdpbmQtdGVuOmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9Ci5maS1yZXdpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0KLmZpLXJzczpiZWZvcmV7Y29udGVudDoiXGYxYWEifQouZmktc2FmZXR5LWNvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0KLmZpLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0KLmZpLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9Ci5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9Ci5maS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFmIn0KLmZpLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYxYjAifQouZmktc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYxYjEifQouZmktc2h1ZmZsZTpiZWZvcmV7Y29udGVudDoiXGYxYjIifQouZmktc29jaWFsLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0KLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifQouZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9Ci5maS1zb2NpYWwtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9Ci5maS1zb2NpYWwtcmRpbzpiZWZvcmV7Y29udGVudDoiXGYxZDcifQouZmktc29jaWFsLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxZDgifQouZmktc29jaWFsLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9Ci5maS1zb2NpYWwtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMWRmIn0KLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9Ci5maS1zb2NpYWwtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxZTYifQouZmktc29jaWFsLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0KLmZpLXNvdW5kOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9Ci5maS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9Ci5maS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjFlZiJ9Ci5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9Ci5maS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0KLmZpLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9Ci5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9Ci5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0KLmZpLXRhcmdldC10d286YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0KLmZpLXRhcmdldDpiZWZvcmV7Y29udGVudDoiXGYxZjYifQouZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY3In0KLmZpLXRlbGVwaG9uZTpiZWZvcmV7Y29udGVudDoiXGYxZjgifQouZmktdGV4dC1jb2xvcjpiZWZvcmV7Y29udGVudDoiXGYxZjkifQouZmktdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxZmEifQouZmktdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9Ci5maS10b3Jzby1idXNpbmVzczpiZWZvcmV7Y29udGVudDoiXGYxZmMifQouZmktdG9yc28tZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9Ci5maS10b3JzbzpiZWZvcmV7Y29udGVudDoiXGYxZmUifQouZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWZmIn0KLmZpLXRvcnNvcy1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0KLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifQouZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9Ci5maS10b3Jzb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0KLmZpLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9Ci5maS10cmVlczpiZWZvcmV7Y29udGVudDoiXGYyMDUifQouZmktdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9Ci5maS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0KLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0KLmZpLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYyMDkifQouZmktdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9Ci5maS11cGxvYWQtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0KLmZpLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYyMGMifQouZmktdXNiOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9Ci5maS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYyMGUifQouZmktdm9sdW1lLW5vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjBmIn0KLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0KLmZpLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifQouZmktd2ViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9Ci5maS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9Ci5maS13aWRnZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0KLmZpLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYyMTUifQouZmkteC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0KLmZpLXg6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0KLmZpLXllbjpiZWZvcmV7Y29udGVudDoiXGYyMTgifQouZmktem9vbS1pbjpiZWZvcmV7Y29udGVudDoiXGYyMTkifQouZmktem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0KI2N3LW5vdGVze3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MjBweDt0b3A6MjBweDt3aWR0aDoyOTBweDtwYWRkaW5nOjBweDt6LWluZGV4OjMwMDJ9CiNjdy1ub3RlcyA+IGRpdnttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjkwcHg7cGFkZGluZzoxNXB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwgNzksIDE0MywgMC45KTtib3gtc2hhZG93OjAgMCAwIDFweCB3aGl0ZTtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTJwdDtsaW5lLWhlaWdodDoxNXB0O3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93OmhpZGRlbn0KI2N3LW5vdGVzID4gZGl2LmVycm9ye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzQsIDExNCwgMTM0LCAwLjkpfQojY3ctbm90ZXMgPiBkaXYud2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC45KTtjb2xvcjpyZ2JhKDIwNCwgMTM0LCAxMywgMC45KX0KI2N3LW5vdGVzID4gZGl2Lm9re2JhY2tncm91bmQtY29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjkpO2NvbG9yOiM2NTljMTN9Ci5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgLm15LWVycm9yIHRleHRhcmVhLCAubXktZXJyb3IgYnV0dG9ue2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6Zm9jdXMsIC5teS1lcnJvciB0ZXh0YXJlYTpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9Ci5teS1lcnJvciAubGFiZWwsIC5teS1lcnJvciBsYWJlbCwgLm15LWVycm9ye2NvbG9yOiNlYTcyODYhaW1wb3J0YW50fQoubXktZXJyb3IgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3O2JhY2tncm91bmQtY29sb3I6I2ZlZDNkM30KLm15LWVycm9yIGlucHV0W3R5cGU9InJhbmdlIl06Zm9jdXMgOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6MXB4IHNvbGlkICNlYTcyODY7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyOjFweCBzb2xpZCAjZWE3Mjg2IWltcG9ydGFudH0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgPiAuc2VsZWN0Mi1jaG9zZW57Y29sb3I6I2Q2MmM0OX0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2Uuc2VsZWN0Mi1kZWZhdWx0ID4gLnNlbGVjdDItY2hvc2Vue2NvbG9yOiNiOWMwY2J9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudDtiYWNrZ3JvdW5kOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSl9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tib3JkZXItbGVmdDoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnQ7YmFja2dyb3VuZDojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3csIC5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2Vze2JvcmRlcjoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNle2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpfQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZ3tjb2xvcjojZWE3Mjg2fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzO2NvbG9yOiNkNjJjNDl9Ci5teS1lcnJvciA+IGRpdi5teS1tb2RhbHtib3JkZXItY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KTtib3gtc2hhZG93OjAgMCAxMXB4IDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjkyKSwgMCAwIDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjg1KX0KLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmUsIC5teS1lcnJvciA+IGRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtdG9wOmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtYm90dG9tOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSk7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KX0KLm15LWVycm9yIC51aS1zbGlkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudH0KLm15LWVycm9yIC51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztiYWNrZ3JvdW5kOiNmZWQzZDN9Ci5teS1lcnJvciAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9CkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0NvdXNpbmUnO3NyYzp1cmwoJ2NvdXNpbmUtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQojY3ctYm9keXttYXJnaW46MCBhdXRvIDAgYXV0bztmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjRlbTt0ZXh0LXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247Zm9udC13ZWlnaHQ6MzAwO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CiNjdy1ib2R5IC5jdy1idXN5e2hlaWdodDo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjMwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pL2xvYWRlci1iYXIyLmdpZik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9CiNjdy1ib2R5IGlucHV0LCAjY3ctYm9keSBidXR0b24sICNjdy1ib2R5IHRleHRhcmVhe2ZvbnQtd2VpZ2h0OmluaGVyaXR9CiNjdy1ib2R5IC5teS1lcnJvci10aXB7Zm9udC1zaXplOjg1JTtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyk7cGFkZGluZzowcHggMCA2cHggMHB4O2xpbmUtaGVpZ2h0OjEuMmVtfQojY3ctYm9keSAubXktZXJyb3IgLnZhcmlhbnRzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZkZDtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyl9CiNjdy1ib2R5IC5teS1yb3cgaW5wdXQsIC5teS1yb3cgdGV4dGFyZWEsIC5teS1yb3cgc2VsZWN0LCAubXktcm93IC5idXR0b257bWFyZ2luOjB9CiNjdy1ib2R5IC5teS1yb3cgdGV4dGFyZWF7dmVydGljYWwtYWxpZ246dG9wfQojY3ctYm9keSAubXktcm93IC5teS1sYWJlbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMWVtfQojY3ctYm9keSAubXktcm93IC5teS1zaG9ydGN1dHttYXJnaW46MCAwIDAgMC4yNWVtO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzU0ODFhMDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjAuNzt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zczstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzLCBib3JkZXIgMC4zczstb3BlcmEtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MsIGJvcmRlciAwLjNzOy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3N9CiNjdy1ib2R5IC5teS1yb3cgLm15LXNob3J0Y3V0OmhvdmVye29wYWNpdHk6MX0KI2N3LWJvZHkgLm15LXJvdyBkaXYubXktZXJyb3ItdGlwe3BhZGRpbmc6MC4zZW0gMCAwIDB9CiNjdy1ib2R5IC5teS1yb3cgc3Bhbi5teS1lcnJvci10aXB7cGFkZGluZzowfQojY3ctYm9keSAudWktc2VhcmNoe2JvcmRlci1yYWRpdXM6NTBweCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjIycHg7cGFkZGluZy1yaWdodDoyMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfQojY3ctYm9keSAudWktc2VhcmNoLWNsZWFye21hcmdpbjoxcHggMCAtMXB4IC0yMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjV9CiNjdy1ib2R5IC51aS1zZWFyY2guc21hbGwgKyAudWktc2VhcmNoLWNsZWFyICB7bWFyZ2luLWJvdHRvbTotMnB4fQojY3ctYm9keSAudWktc2VhcmNoLmJnLXllbGxvdyArIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjU7ZGlzcGxheTppbmxpbmUtYmxvY2t9CiNjdy1ib2R5IC51aS1zZWFyY2guYmcteWVsbG93ICsgLnVpLXNlYXJjaC1jbGVhcjpob3ZlcntvcGFjaXR5OjF9CiNjdy1ib2R5IC5teS1zZWFyY2ggaW5wdXQudWktc2VhcmNoe2JhY2tncm91bmQtY29sb3I6I0ZGRjA4OCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmNmNjMhaW1wb3J0YW50fQojY3ctYm9keSAubXktc2VhcmNoIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0KI2N3LWJvZHkgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuN2VtfQojY3ctbm90ZXN7dG9wOjUwcHh9CmJvZHk+c3Bhbi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0KYnV0dG9uLm1hcmtmb2N1cywgIC5idXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVyLCAuYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O3JpZ2h0OjNweDt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjNweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDt6LWluZGV4OisyfQpib2R5LnRoZW1lLWRhcmt7ZmlsdGVyOmJyaWdodG5lc3MoMC45NikgaW52ZXJ0KCkgY29udHJhc3QoMC45KSBicmlnaHRuZXNzKDEuMjUpIGh1ZS1yb3RhdGUoMTgyZGVnKSBicmlnaHRuZXNzKDAuOSkgc2F0dXJhdGUoMS4yKX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5e2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYn0KYm9keS50aGVtZS1kYXJrIC5vcmFuZ2V7Y29sb3I6I2MxNmYwMCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAucmVke2NvbG9yOiNmZjQyNjIhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgYTpob3ZlciwgIGJvZHkudGhlbWUtZGFyayAucHNldWRvbGluazpob3ZlciwgIGJvZHkudGhlbWUtZGFyayAucHNldWRvYnV0dG9uOmhvdmVye2NvbG9yOiMyZTdkZmZ9CmJvZHkudGhlbWUtZGFyayAubXktdGFncyAudGFnLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNzYsMTA0LDEyOSwwLjM1KX0KYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9dGV4dF0sICBib2R5LnRoZW1lLWRhcmsgaW5wdXRbdHlwZT1wYXNzd29yZF0sICBib2R5LnRoZW1lLWRhcmsgaW5wdXRbdHlwZT1udW1iZXJdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9ZW1haWxdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9dGVsXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPWRhdGVdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9dGltZV0sIGJvZHkudGhlbWUtZGFyayB0ZXh0YXJlYXtib3JkZXItY29sb3I6I2RmZTNlOH0KYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2J1dHRvbiddOmRpc2FibGVkLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9J2J1dHRvbiddOmRpc2FibGVkOmhvdmVyLCAgYm9keS50aGVtZS1kYXJrIGJ1dHRvbjpkaXNhYmxlZCwgIGJvZHkudGhlbWUtZGFyayBidXR0b246ZGlzYWJsZWQ6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLmJ1dHRvbi5kaXNhYmxlZCwgIGJvZHkudGhlbWUtZGFyayAuYnV0dG9uLmRpc2FibGVkOmhvdmVye2NvbG9yOiM4ODkyOWYhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgdGV4dGFyZWE6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5ZWNkZjh9CmJvZHkudGhlbWUtZGFyayAubXktZXJyb3IgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSksICBib2R5LnRoZW1lLWRhcmsgLm15LWVycm9yIHRleHRhcmVhe2JvcmRlci1jb2xvcjojZmNjMWM3fQpib2R5LnRoZW1lLWRhcmsgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMsIGJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNle2JvcmRlci1jb2xvcjojZGZlM2U4fQpib2R5LnRoZW1lLWRhcmsgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tib3JkZXItbGVmdC1jb2xvcjojZGZlM2U4fQpib2R5LnRoZW1lLWRhcmsgLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2UsICBib2R5LnRoZW1lLWRhcmsgLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2Vze2JvcmRlci1jb2xvcjojOWVjZGY4fQpib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVye2JhY2tncm91bmQtY29sb3I6I2YzZjVmOCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgLmwtdGFiIGF7Y29sb3I6IzRjNWQ2ZSFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgLmwtdGFiIGEuc3lzdGVte2NvbG9yOiM0MDczMDAhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVyIC5sLXRhYi5hY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2Q4ZGZlOCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgI2wtYXBwdGFicywgYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAjbC1hc2lkZXtib3JkZXItdG9wLWNvbG9yOiNjZGQ1ZTF9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAjbC1oZWFkZXIgI2wtYXNpZGUgLmFzaWRlLWJ0bntib3JkZXItbGVmdC1jb2xvcjojY2RkNWUxO2NvbG9yOiM1MjU3NWIhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgI2N3LWJvZHkgI2wtaGVhZGVyICNsLWFzaWRlICNidG4tY2xvc2UtYWxsLXRhYnN7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAjbC1oZWFkZXIgI2wtYXNpZGUgLmFzaWRlLWJ0biBhe2NvbG9yOiM1MjU3NWIhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVyICNzdmctdW5hdXRoe3N0cm9rZTojZmY1NDAwIWltcG9ydGFudH0KI2wtaGVhZGVyICNzdmctdW5hdXRoe3N0cm9rZTojZmY2NDcyIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAjc3ZnLWF1dGh7c3Ryb2tlOiMzMDc3MDAhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgI2N3LWJvZHkgLnZpZXctcm93e2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYn0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5IC52aWV3LXJvdzpudGgtY2hpbGQoMm4rMCkge2JhY2tncm91bmQtY29sb3I6I2VmZjFmNH0KYm9keS50aGVtZS1kYXJrIGRpdi5teS1tb2RhbHtib3gtc2hhZG93OjBweCAwcHggMHB4IDJweCByZ2JhKDAsMjksNzksMC42KSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjfQpib2R5LnRoZW1lLWRhcmsgI2N3LWJvZHk+ZGl2Lm15LW1vZGFsLXNjcmVlbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDI0OSwyNTUsMC45KSFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayBidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVyLCAgYm9keS50aGVtZS1kYXJrIC5idXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVye2JhY2tncm91bmQtY29sb3I6IzZkNmQ2ZCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayBkaXYubXktbW9kYWwubm9zZS1sZWZ0OmJlZm9yZSwgIGJvZHkudGhlbWUtZGFyayBkaXYubXktbW9kYWwubm9zZS1yaWdodDpiZWZvcmUsICBib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtdG9wOmJlZm9yZSwgIGJvZHkudGhlbWUtZGFyayBkaXYubXktbW9kYWwubm9zZS1ib3R0b206YmVmb3Jle3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlcjoycHggc29saWQgcmdiYSgwLDI5LDc5LDAuNik7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjfQpib2R5LnRoZW1lLWRhcmsgI2N3LWJvZHkgPiBkaXYubXktbW9kYWwgPiAubXktbW9kYWwtY2xvc2V7YmFja2dyb3VuZC1jb2xvcjojOWJiMWM2fQpib2R5LnRoZW1lLWRhcmsgI2wtYXBwcyAubC1hcHAgLmZlYXRoZXI6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDI0NywyNDgsMjUwLDEpLCByZ2JhKDI0NywyNDgsMjUwLDApKX0KYm9keS50aGVtZS1kYXJrICNsLWFwcHMgLmwtYXBwIC5mZWF0aGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjQ3LDI0OCwyNTAsMSksIHJnYmEoMjQ3LDI0OCwyNTAsMCkpfQpib2R5LnRoZW1lLWRhcmsgLm15LW1hbmlmZXN0LTFhb2MxeGZsICNkb2M6aG92ZXJ7YmFja2dyb3VuZDojZjhmOWZifQpib2R5LnRoZW1lLWRhcmsgaW1nI3NpY29ue2ZpbHRlcjpzYXR1cmF0ZSgxLjMpIGJyaWdodG5lc3MoMC42KSBpbnZlcnQoKSBodWUtcm90YXRlKDE4MWRlZykgY29udHJhc3QoMS4yKX0KYm9keS50aGVtZS1kYXJrIC5pdmFsdWUgYS5iYXNlNjRpbWFnZSBpbWd7ZmlsdGVyOnNhdHVyYXRlKDEuMykgYnJpZ2h0bmVzcygwLjYpIGludmVydCgpIGh1ZS1yb3RhdGUoMTgxZGVnKSBjb250cmFzdCgxLjIpfQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLWRlZntjb2xvcjojZmY3ODlifQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLWtleXdvcmR7Y29sb3I6Izk2NDlmZn0KYm9keS50aGVtZS1kYXJrIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZS0ye2NvbG9yOiM1MjhjYzZ9CmJvZHkudGhlbWUtZGFyayAuQ29kZU1pcnJvciAuY20tdmFyaWFibGV7Y29sb3I6IzAwOGM2NH0KYm9keS50aGVtZS1kYXJrIC5Db2RlTWlycm9yIC5jbS1zdHJpbmd7Y29sb3I6IzVlNmJhZH0KYm9keS50aGVtZS1kYXJrIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eXtjb2xvcjojNDM0ZTVkfQpib2R5LnRoZW1lLWRhcmsgLmpzb25kaWZmcGF0Y2gtYWRkZWQgLmpzb25kaWZmcGF0Y2gtcHJvcGVydHktbmFtZSwgIGJvZHkudGhlbWUtZGFyayAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC12YWx1ZSBwcmUsICBib2R5LnRoZW1lLWRhcmsgLmpzb25kaWZmcGF0Y2gtbW9kaWZpZWQgLmpzb25kaWZmcGF0Y2gtcmlnaHQtdmFsdWUgcHJlLCAgYm9keS50aGVtZS1kYXJrIC5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWFkZGVke2JhY2tncm91bmQ6I2FkY2I4N30KYm9keS50aGVtZS1kYXJrIC5sb2ctZm91bmQsIGJvZHkudGhlbWUtZGFyayAuanZhbC1mb3VuZC1rZXl7YmFja2dyb3VuZC1jb2xvcjojZTljYTAwIWltcG9ydGFudH0=" }, "index.html": { "content_type": "text/html", @@ -55,7 +55,7 @@ }, "photon.js": { "content_type": "text/javascript", - "data": "LypQaG90b24gMS4yMCBhcHBzIGFuZCBib290c3RyYXAgY29kZSwgKGMpIDIwMjIgZXJtb3V0aCovCiQuZXh0ZW5kKHdpbmRvdy5ERE9DLmFwcHMseyJjdy5QaG90b24iOntpZDoiY3cuUGhvdG9uIixidWlsZDo1LFZlcnNpb246IjEuMjAiLENmZzp7cm9vdFJlcG86Imh0dHBzOi8vY2RuLmNsb3Vkd2FsbC5tZS9waG90b24vIix1cGRhdGU6InJlbWluZCIscm9sZXM6W10sbWF4V2lkdGg6IjIwMDAiLG1heFRhYnM6MTUsc2Nyb2xsU3BlZWQ6IjAiLGZvbnQ6ImF1dG8iLGZvbnRXZWlnaHQ6IjQwMCIsZm9udENvZGU6ImF1dG8iLGljb246IiIsbGlzdENvbHM6WyJpbmZvIiwic2VjdXJpdHkiXSxiYXRjaERiSW5mb0RlbGF5OjUsYmF0Y2hDb21wYWN0RGVsYXk6NTAwLGJhdGNoQ3JlYXRlRGVsYXk6MTUwLGJhdGNoVXBkYXRlQ2ZnOjEwMCxsb29wQWN0aXZlVGFza3M6NSx0YXNrc1JlYWRSZXBsaWNhdG9yOiEwLHN0YXRzUmVmcmVzaDo1LHBpbmdTZXNzaW9uOjAsdGFiQmFyOiJhdXRvIix0aGVtZToiIixncm91cGluZzpbIm5vcm1hbCIsImF1dG8iXX0sbGFuZzp7ZW46e1RJUF9MT0dJTjoiTG9nIGluIixUSVBfUFJPRklMRToiRWRpdCB1c2VyIFxucHJvZmlsZSBkb2MiLFRJUF9DT05GSUc6IkNvdWNoREIgY29uZmlnIixUSVBfU0hBUkU6IlBob3RvbiBjb25maWciLFRJUF9ST09UOiJTaW5nbGUgY2xpY2s6IGxpc3Qgb2YgREJzIFxuRG91YmxlIGNsaWNrOiBjbG9zZSBhbGwgdGFicyIsQlROX1hBTEw6IuKclSBDbG9zZSBhbGzCoCIsRVJSX1JFUV9JTlZBTElEQ0FMTDoiSW52YWxpZCByZXF1ZXN0IHBhcmFtcywgcHJvYmFibHkgaW52YWxpZCBjb21tYW5kLCBvciB0aGVyZeKAmXMgYSBidWciLEVSUl9SRVFfQVVUSFJFUToiWW91IG5lZWQgdG8gbG9nIGluIHRvIHVzZSBQaG90b24iLEVSUl9SRVFfUk9MRVJFUToiSW5zdWZmaWNpZW50IHByaXZpbGVnZXMgdG8gcnVuIFBob3RvbiIsRVJSX1JFUTp7MDoiT2ZmbGluZSIsNDAwOiJCYWQgcmVxdWVzdCIsNDAxOiJVbmF1dGhvcml6ZWQiLDQwMzoiRm9yYmlkZGVuIiw0MDQ6Ik5vdCBmb3VuZCIsNDA1OiJOb3QgYWxsb3dlZCIsNDA4OiJUaW1lb3V0Iiw0MDk6IkNvbmZsaWN0Iiw0MTI6IlByZWNvbmRpdGlvbiBmYWlsZWQiLDQyOToiVG9vIG1hbnkgcmVxdWVzdHMiLDUwMDoiSW50ZXJuYWwgZXJyb3IiLDUwMToiTm90IGltcGxlbWVudGVkIiw1MDM6IlNlcnZpY2UgdW5hdmFpbGFibGUiLDUwNDoiR2F0ZXdheSB0aW1lb3V0Iiw1MDk6IkJhbmR3aWR0aCBxdW90YSIsOTk5OiJVbmtub3duIGVycm9yIn0sRkFJTF9UT09fTUFOWV9UQUJTOiJ7MX0gdGFicyBtYXhpbXVtLCBwbGVhc2UsIGNsb3NlIHNvbWV0aGluZyBvciBkb3VibGUtY2xpY2sgdGhlIGxvZ28gdG8gY2xvc2UgYWxsIHRhYnMuIixGQUlMX1RBQl9BUFA6IkZhaWxlZCBzdGFydGluZyB0YWIgYXBwLiBTZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLERMR19VTkxPQUQ6IlRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMuIFJlbG9hZD8iLERMR19VTlNBVkVEOiJUaGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzLiBQcm9jZWVkPyIsVVBEX09MRDoiWW91ciB2ZXJzaW9uIG9mIFBob3RvbiBpcyBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IG9sZC4gIixVUERfTU9OVEg6IllvdSB1cGRhdGVkIFBob3RvbiBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IGFnby4gIixVUERfVEFJTDonVG8gdXBkYXRlIGNsaWNrIDxzcGFuIGNsYXNzPSJmaS13cmVuY2ggbzgwIj48L3NwYW4+IGljb24gYXQgbmF2YmFyLCBhbmQgdGhlbiBjbGljayDigJhDaGVjayBmb3IgdXBkYXRlc+KAmSBidXR0b24uJyxNU0dfTkVXREJfT0s6IkNyZWF0ZWQgbmV3IERCIOKAmHsxfeKAmSIsTVNHX05FV0RCX0ZBSUw6IkZhaWxlZCBjcmVhdGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkiLE1TR19ORVdEQl9OT0FDTDoiREIg4oCYezF94oCZIGNyZWF0ZWQgYnV0IHNlY3VyaXR5IGNvbmZpZyBmYWlsZWQsIHdoaWNoIG1lYW5zIERCIGlzIHB1YmxpYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkiLE1TR19TRUNEQl9PSzoiVXBkYXRlZCBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmSIsTVNHX1NFQ0RCX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M30iLEluZGV4RWQ6e1RYVF9USVRMRToiTWFuZ28gaW5kZXggezF9wqBpbsKgezJ9IixUWFRfVElUTEUwOiJEZWZhdWx0IE1hbmdvIGluZGV4IixCVE5fUEFORUxfQ0xPU0U6IkNsb3NlIGVkaXRvciIsVEFHX01PREU6e3RhZ3M6W3tKU09OOiJqc29uIn1dLGVtcHR5OntTb3VyY2U6ImphdmFzY3JpcHQifX0sRVJSX05PX0lOREVYOiJNdXN0IGhhdmUgLmluZGV4LmZpZWxkcyBhcnJheSIsRVJSX05PX1RZUEU6J1Byb3BlcnR5IC50eXBlIHNob3VsZCBiZSAianNvbiInLEVSUl9OT19KU09OOiJDYW7igJl0IGNvbnZlcnQgdG8gSlNPTiIsQlROX1JVTjoiU2F2ZSBhbmQgcnVuIixCVE5fUlVOMDoiQ3JlYXRlIG5ldyBhbmQgcnVuIixUSVBfUlVOOiJTYXZlcyBpbmRleCBhbmQgc2hvd3MgaW5kZXggZW50cmllcyIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIGluZGV4IGVudHJpZXMiLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIGluZGV4IHVuZGVyIGRpZmZlcmVudCBuYW1lIGFuZCBzaG93cyBpbmRleCBlbnRyaWVzIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyBNYW5nbyBpbmRleCIsQlROX1JFVkVSVDoiUmV2ZXJ0IixUSVBfUkVWRVJUOiJSZXZlcnRzIGVkaXRvciB0byBzYXZlZCBpbmRleCBjb2RlIixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyBpbmRleDwvaDM+PHA+U2F2ZXMgaW5kZXggaW50byBleGlzdGluZyBvciBuZXcgZGVzaWduIGRvY3VtZW50LjwvcD4iLExCTF9ERE9DOiJEZG9jIG5hbWUiLFBMQ19ERE9DOiJTaG9ydCBvZiBmdWxsIGZvcm0iLExCTF9ORVc6IkluZGV4IG5hbWUiLFBMQ19ORVc6IktleSBuYW1lIGluIC52aWV3cyBwcm9wIG9mIGRkb2MiLEVSUl9ORVdfUkVROiJJbmRleCBuYW1lIHJlcXVpcmVkIixFWFBfRVhJU1Q6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IEluZGV4IGFscmVhZHkgZXhpc3RzIGFuZCB3aWxsIGJlIHJlcGxhY2VkLicsRVhQX05ERE9DOiJUYXJnZXQgZGVzaWduIGRvYyBkb2VzbuKAmXQgZXhpc3QgYW5kIHdpbGwgYmUgY3JlYXRlZC4iLEVYUF9OVklFVzoiTmV3IGluZGV4IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgaW5kZXgiLEJUTl9ORVdfQ0FOQ0VMOiJDYW5jZWwiLEVSUl9OT19OQU1FOiJJbnZhbGlkIGRkb2Mgb3IgaW5kZXggbmFtZSwgY2Fu4oCZdCBjcmVhdGUgaW5kZXgiLEVSUl9OT19OQU1FX1JVTjoiWW91IGNhbuKAmXQgcnVuIGRlZmF1bHQgaW5kZXgsIHBsZWFzZSB1c2UgU2F2ZSBhcyBidXR0b24iLEVSUl9FUlJET0M6IkNhbuKAmXQgc2F2ZSBpbnZhbGlkIGluZGV4LiB7MX0uIixNU0dfREVMX1RFWFQ6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IERlbGV0ZSBNYW5nbyBpbmRleCB7MX0gZnJvbSB7Mn0/JyxCVE5fREVMX1lFUzoiRGVsZXRlIixCVE5fREVMX05POiJDYW5jZWwiLE1TR19ERUxfT0s6IkluZGV4IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sVmlld0VkOntUWFRfVElUTEU6e2phdmFzY3JpcHQ6IkpTIHZpZXcgezF94oCJL+KAiXsyfSIsZXJsYW5nOiJFcmxhbmcgdmlldyB7MX3igIkv4oCJezJ9In0sVEFHX01PREU6e3RhZ3M6W1t7UmVkdWNlOiJyZWR1Y2UifSx7SlNPTjoianNvbiJ9XV0sZW1wdHk6e01hcDoibWFwIn19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fTUFQOiJNYXAgaXMgbm90IGEgZnVuY3Rpb24iLEVSUl9OT19SRURVQ0U6IlJlZHVjZSBpcyBub3QgYSBmdW5jdGlvbiIsRVJSX0ZfQlVJTFRJTjoiVW5rbm93biBidWlsdC1pbiByZWR1Y2VyIixFUlJfRVJSRE9DOiJDYW7igJl0IHNhdmUgaW52YWxpZCBkZXNpZ24gZG9jLiB7MX0uIixCVE5fUlVOOiJSdW4gdmlldyIsVElQX1JVTjoiUnVucyBzYXZlZCB2aWV3IGluZGV4IHF1ZXJ5IixCVE5fU0FWRToiU2F2ZSBhbmQgcnVuIixUSVBfU0FWRToiU2F2ZXMgdmlldyBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIHZpZXciLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIHZpZXcgdW5kZXIgZGlmZmVyZW50IG5hbWUgYW5kIHNob3dzIHRoZSByZXN1bHQiLEJUTl9SRVZFUlQ6IlJldmVydCIsVElQX1JFVkVSVDoiUmV2ZXJ0cyBlZGl0b3IgdG8gc2F2ZWQgdmlldyBjb2RlIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyB2aWV3IGluZGV4IixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyB2aWV3PC9oMz48cD5TYXZlcyB2aWV3IGludG8gZXhpc3Rpbmcgb3IgbmV3IGRlc2lnbiBkb2N1bWVudC48L3A+IixMQkxfRERPQzoiRGRvYyBfaWQiLFBMQ19ERE9DOiJGdWxsZm9ybSwgbGlrZSBfZGVzaWduL2Rkb2NOYW1lIixFUlJfRERPQzoiVmFsaWQgX2lkLXMgYXJlIGxpa2UgX2Rlc2lnbi9kZG9jTmFtZSIsTEJMX05FVzoiVmlldyBuYW1lIixQTENfTkVXOiJLZXkgbmFtZSBpbiAudmlld3MgcHJvcCBvZiBkZG9jIixFUlJfTkVXX1JFUToiVmlldyBuYW1lIHJlcXVpcmVkIixFUlJfTkVXX1NMQVNIOiJTbGFzaGVzIGFyZSBub3QgYWxsb3dlZCBpbiB2aWV3IG5hbWUiLEVYUF9FWElTVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gVmlldyBhbHJlYWR5IGV4aXN0cyBhbmQgd2lsbCBiZSByZXBsYWNlZC4nLEVYUF9ORERPQzoiVGFyZ2V0IGRlc2lnbiBkb2MgZG9lc27igJl0IGV4aXN0IGFuZCB3aWxsIGJlIGNyZWF0ZWQuIixFWFBfTlZJRVc6Ik5ldyB2aWV3IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgdmlldyIsQlROX05FV19DQU5DRUw6IkNhbmNlbCIsRVJSX05PX05BTUU6IkludmFsaWQgZGRvYyBvciB2aWV3IG5hbWUsIGNhbuKAmXQgY3JlYXRlIHZpZXciLE1TR19ERUxfVEVYVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gRGVsZXRlIHZpZXcgaW5kZXggezF9IGZyb20gezJ9PycsQlROX0RFTF9ZRVM6IkRlbGV0ZSIsQlROX0RFTF9OTzoiQ2FuY2VsIixNU0dfREVMX09LOiJWaWV3IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sTWFuZ29FZDp7VFhUX1RJVExFOiJNYW5nbyBxcnkgezF9IixUWFRfVElUTEUwOiJVbnRpdGxlZCBNYW5nbyBxcnkiLFRBR19NT0RFOnt0YWdzOlt7SlNPTjoianNvbiJ9XSxlbXB0eTp7U291cmNlOiJqYXZhc2NyaXB0In19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fU0VMRUNUT1I6Ik5vIC5zZWxlY3RvciBwcm9wZXJ0eSIsRVJSX05PX0ZJRUxEUzoiTm8gLmZpZWxkcyBhcnJheSIsRVJSX0VNUFRZX0ZJRUxEUzoiRW1wdHkgLmZpZWxkcyBhcnJheSIsRVJSX05PX0pTT046IkNhbuKAmXQgY29udmVydCB0byBKU09OIixFUlJfTUFOR09fS0VZUzoiVW5rbm93biBrZXkgezF9IixFUlJfSU5WQUxJRF9PUEVSQVRPUjoiSW52YWxpZCBvcGVyYXRvciB7MX0iLEVSUl9WX01PRDA6IiRtb2QgZGl2aXNvciBpcyAwIixFUlJfVl9NT0QxOiIkbW9kIG11c3QgYmUgW2Rpdmlzb3IsIHJlbWFpbmRlcl0iLEVSUl9WX01PREQ6IiRtb2QgZGl2aXNvciBtdXN0IGJlIGFuIGludGVnZXIiLEVSUl9WX01PRFI6IiRtb2QgcmVtYWluZGVyIG11c3QgYmUgYW4gaW50ZWdlciIsRVJSX1ZfRVhJU1Q6IiRleGlzdHMgbXVzdCBiZSBhIGJvb2wiLEVSUl9WX1RZUEUwOiIkdHlwZSBtdXN0IGJlIGEgc3RyaW5nIixFUlJfVl9UWVBFMToiSW52YWxpZCAkdHlwZSIsRVJSX1ZfU0laRToiJHNpemUgbXVzdCBiZSBhbiBpbnRlZ2VyIixFUlJfVl9SRUdFWDoiJHJlZ2V4IG11c3QgYmUgYSBzdHJpbmciLEVSUl9WX0FSUjoiezF9IG11c3QgYmUgYW4gYXJyYXkiLEVSUl9WX09CSjoiezF9IG11c3QgYmUgYW4gb2JqZWN0IixCVE5fUlVOOiJSdW4gcXJ5IixUSVBfUlVOOiJFeGVjdXRlcyBxdWVyeSBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsQlROX0VYUEw6IkV4cGxhaW4iLFRJUF9FWFBMOiJFeHBsYWlucyBxdWVyeSwgYWxsIGhpZGRlbiBwYXJhbXMgYW5kIGluZGV4ZXMgaW52b2x2ZWQiLEJUTl9TQVZFOiJTYXZlIGFzLi4uIixCVE5fUkVOQU1FOiJSZW5hbWUuLi4iLFRJUF9TQVZFOiJTYXZlcyBNYW5nbyBxdWVyeSB0byBsb2NhbFN0b3JhZ2UgZm9yIGxhdGVyIHJlLXVzZSIsQlROX0RFTDoiRGVsIixUSVBfREVMOiJEZWxldGVzIHRoaXMgTWFuZ28gcXVlcnkgZnJvbSBsb2NhbFN0b3JhZ2UgYW5kIHN3aXRjaGVzIHRvIERlZmF1bHQgcXVlcnkiLEJUTl9SRVNFVDoiUmVzZXQiLFRJUF9SRVNFVDoiUmVzZXRzIHRvIGluaXRpYWwgZGVmYXVsdCBxdWVyeSIsVFhUX1NUQVNIOiI8aDM+TWVtb2l6ZSBxdWVyeTwvaDM+PHA+U2F2ZXMgTWFuZ28gcXVlcnkgdG8gbG9jYWxTdG9yYWdlIGZvciBsYXRlciByZS11c2UuPC9wPiIsUExDX1NUQVNIOiJRdWVyeSB0aXRsZSwgMy4uLjMwIGNoYXJzIixFUlJfU1RBU0hfUkVROiJUaXRsZSByZXF1aXJlZCIsRVJSX1NUQVNIX0xFTjoiMy4uLjMwIGNoYXJhY3RlcnMiLEVSUl9TVEFTSF9FWElTVDoiQWxyZWFkeSBleGlzdHMiLEJUTl9TVEFTSF9PSzoiU2F2ZSBxdWVyeSIsQlROX1NUQVNIX09LMToiU2F2ZSAmIHN3aXRjaCB0byBuZXciLEJUTl9TVEFTSF9DQU5DRUw6IkNhbmNlbCJ9LFVzZXJEb2M6e1RYVF9USVRMRToiQ3JlYXRlIG5ldyB1c2VyIixUWFRfVElUTEVfRUQ6IkNoYW5nZSBwYXNzd29yZCBvciByb2xlcyIsTEJMX046Ik5hbWUiLFBMQ19OOiJVc2VyIGxvZ2luIixFUlJfTjoiQ2Fu4oCZdCBzdGFydCB3aXRoIF8gb3IgY29udGFpbiA6IixFUlJfTlg6IlVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIixMQkxfUDoiUGFzc3dvcmQiLFBMQ19QOiJVc2VyIHBhc3Nzd29yZCIsUExDX1BfRUQ6IkNoYW5nZSB1c2VyIHBhc3Nzd29yZCIsRVJSX1A6IlJlcXVpcmVkIixMQkxfUjoiUm9sZXMiLFBMQ19SOiJBZGQgcm9sZXMiLEVSUl9SOiJSb2xlcyBjYW7igJl0IHN0YXJ0IHdpdGggXyIsQlROX1NBVkU6IlNhdmUgdXNlciIsQlROX0RPQzoiQ3JlYXRlIGVtcHR5IEpTT04uLi4iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX09LOiJVc2VyIHsxfSBzdWNjZXNzZnVsbHkgc2F2ZWQiLE1TR19GQUlMOiJGYWlsZWQgc2F2aW5nIHVzZXIgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSJ9LERlbERCOntUWFRfVElUTEU6IkRlbGV0ZSBEQnMiLFRYVF9USVRMRTE6IkRlbGV0ZSBEQiIsUExDX0RCUzoiU2VsZWN0IERCcyB0byBkZWxldGUiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLExCTF9ORVc6IlJlLWNyZWF0ZSBEQnMgYWZ0ZXIgZGVsZXRpb24iLExCTF9ORVdfQUNMOiJBcHBseSBvcmlnaW5hbCBzZWN1cml0eSBvYmplY3RzIixMQkxfTkVXX1FOUDoiUmVzdG9yZSBzaGFyZGluZyBzZXR0aW5ncyIsVFhUX1dBUk46ZnVuY3Rpb24oeCl7dmFyIGE9T2JqZWN0LmNsb25lKHgpO3JldHVybiBhLnNjb3VudD1hLmNvdW50PDI/IiI6InMiLGEuc2l6ZT0oK2Euc2l6ZSkuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIiksYS5kaXNrPSgrYS5kaXNrKS5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKSxbIllvdSBhcmUgZGVsZXRpbmcge2NvdW50fSBEQntzY291bnR9IGNvbnRhaW5pbmcge3NpemV9IG9mIGRhdGEuIiwiRGVsZXRpb24gd2lsbCBmcmVlIH57ZGlza30gb2YgZGlzayBzcGFjZSBhdCA8bm9icj57YmFzZX08L25vYnI+LiJdLmpvaW4oIiAiKS5hc3NpZ24oYSl9LEJUTl9TVEFSVDpmdW5jdGlvbih4KXtyZXR1cm4geD8iRGVsZXRlICIreCsiIERCIisoeD4xPyJzIjoiIik6Ik5vdGhpbmcgdG8gZGVsZXRlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIOKAmHsxfeKAmSBEQiIsTVNHX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkifSxTZWNPYmo6e1RYVF9USVRMRToiQWNjZXNzIGNvbnRyb2wiLExCTF9EQlM6IkRCcyIsUExDX0RCUzoiU2VsZWN0IERCIG5hbWVzIHRvIHNldCBBQ0wiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLFRYVF9BRE06IkFkbWluaXN0cmF0b3JzIixMQkxfVUFETToiVXNlcnMiLFBMQ19VQURNOiJVc2VyIG5hbWVzIixMQkxfR0FETToiUm9sZXMiLFBMQ19HQURNOiJSb2xlcyB3aXRoIGFkbWluIGFjY2VzcyIsRVJSX0FETToiSW52YWxpZCBuYW1lIixFUlJfVU5BTUU6Ik5hbWVzIGNhbuKAmXQgc3RhcnQgd2l0aCBfIG9yIGNvbnRhaW4gOiIsVFhUX01FTToiTWVtYmVycyIsUExDX1VNRU06IlVzZXIgbmFtZXMiLFBMQ19HTUVNOiJSb2xlcyB3aXRoIG1lbWJlciBhY2Nlc3MiLEJUTl9TVEFSVDoiU2V0IHNlY3VyaXR5IixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19PSzoiU2VjdXJpdHkgb2JqZWN0IGZvciBEQiDigJh7MX3igJkgdXBkYXRlZCIsTVNHX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIERCIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LExvZ2luOntUWFRfTE9HSU46IkxvZyBpbiIsUExDX1VOQU1FOiJVc2VybmFtZSIsUExDX1BXRDoiUGFzc3dvcmQiLEJUTl9MT0dJTjoiQ3JlYXRlIHNlc3Npb24iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX0FVVEhfT0s6IkF1dGhvcml6ZWQgYXMgezF9IixNU0dfQVVUSF9GQUlMOiJBdXRob3JpemF0aW9uIGFzIHsxfSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezJ9OsKgezN9In0sTG9nb3V0OntUWFRfTE9HT1VUOiJMb2cgb3V0IixUWFRfUFJPRklMRToiUHJvZmlsZSIsTVNHX0xPR09VVF9TVEFSVDoiTG9nZ2luZyBvdXQuLi4iLE1TR19MT0dPVVRfT0s6IllvdSB3YXMgbG9nZ2VkIG91dCBzdWNjZXNzZnVsbHkiLE1TR19MT0dPVVRfRkFJTDoiTG9nIG91dCBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9In0sVGFiOntCVE5fQ0xPU0VUQUI6IkNsb3NlIHRhYiJ9LE5ld0RCOntUWFRfVElUTEU6IkNyZWF0ZSBEQnMiLFRYVF9USVRMRTE6IkNyZWF0ZSBEQiIsTEJMX0RCUzoiTmFtZXMiLFBMQ19EQlM6IkRCcyB0byBjcmVhdGUiLEVSUl9EQl9FWElTVDoiREIgezF9IGFscmVhZHkgZXhpc3RzIixFUlJfREJfTkFNRToiTG93ZXJjYXNlIGEteiwgMC05IGFuZCBfJCgpKy0vIGFyZSBvbmx5IGFsbG93ZWQgaW4gREIgbmFtZXMiLEVSUl9EQl9VTkQ6IkRCIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBsb3dlcmNhc2UgYS16IixUWFRfQURNOiJBZG1pbmlzdHJhdG9ycyIsTEJMX1VBRE06IlVzZXJzIixQTENfVUFETToiVXNlciBuYW1lcyIsTEJMX0dBRE06IlJvbGVzIixQTENfR0FETToiUm9sZXMgd2l0aCBhZG1pbiBhY2Nlc3MiLEVSUl9BRE06IkludmFsaWQgbmFtZSIsRVJSX1VOQU1FOiJOYW1lcyBjYW7igJl0IHN0YXJ0IHdpdGggXyBvciBjb250YWluIDoiLFRYVF9NRU06Ik1lbWJlcnMiLFBMQ19VTUVNOiJVc2VyIG5hbWVzIixQTENfR01FTToiUm9sZXMgd2l0aCBtZW1iZXIgYWNjZXNzIixMQkxfQ0xVU1RFUjoiU3RvcmFnZSIsVFhUX1NIQVJEUzpmdW5jdGlvbih4KXtyZXR1cm4ic2hhcmQiKyh4PjE/InMiOiIiKX0sVFhUX0NPUElFUzpmdW5jdGlvbih4KXtyZXR1cm4iZGF0YSBjb3AiKyh4PDI/InkiOiJpZXMiKX0sVFhUX1BBUlRJVElPTlM6InBhcnRpdGlvbmVkIixCVE5fU1RBUlQ6IkNyZWF0ZSBEQnMiLEJUTl9TVEFSVF9QVUJMSUM6IkNyZWF0ZSBwdWJsaWMgREJzIixCVE5fQ0FOQ0VMOiJDYW5jZWwifSxDb21wYWN0OntUWFRfVElUTEU6IkNvbXBhY3QgREJzIixUWFRfVElUTEUxOiJDb21wYWN0IERCIixUWFRfREJMSVNUOmZ1bmN0aW9uKHgpe3ZhciBhPXgubGVuZ3RoO3JldHVybiJZb3UgYXJlIGdvaW5nIHRvIGNvbXBhY3QgezF9IGJ1Y2tldHsyfTogIi5hc3NpZ24oYSxhPDI/IiI6InMiKSt4Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVIVE1MKCl9KS5qb2luKCIsICIpfSxQTENfREJTOiJTZWxlY3QgREJzIHRvIGNvbXBhY3QiLFBMQ19ERE9DUzoiU2VsZWN0IGRkb2NzIGZvciB2aWV3IGNvbXBhY3Rpb24iLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLEVSUl9ERE9DUzoiU2VsZWN0IGF0IGxlYXN0IG9uZSBkZXNpZ24gZG9jIixUQUdfT1A6W3siU3RyaXAgb2xkIHJldnMiOiJkb2NzIn0seyJTdHJpcCBvbGQgdmlld3MiOiJ2aWV3cyJ9LHsiQ29tcGFjdCB2aWV3cyI6ImRkb2NzIn1dLEVSUl9PUDoiU2VsZWN0IGF0IGxlYXN0IG9uZSBhY3Rpb24iLEVSUl9WQzoiVmlldyBjb21wYWN0aW9uIHJlcXVpcmVzIHNlbGVjdGluZyBkZG9jcywgc28gaXTigJlzIHVuYXZhaWxhYmxlIGZvciBtdWx0aXBsZSBEQnMgc2VsZWN0ZWQiLEJUTl9TVEFSVDoiU3RhcnQgY29tcGFjdGlvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfQ09NUEFDVF9TVEFSVDoiU3RhcnRlZCBjb21wYWN0aW9uIG9mIOKAmHsxfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIGNvbXBhY3Rpb24gb2Yg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTF9TT01FOiJFcnJvcnMgb2NjdXJlZCBkdXJpbmcgYXQgbGVhc3Qgb25lIGNvbXBhY3Rpb24gdGFza3MsIGNoZWNrIGNvbnNvbGUgZm9yIGRldGFpbHMifSxTeW5jVGFzazp7VFhUX1RJVExFOiJOZXcgcmVwbGljYXRpb24vZHVtcCIsVFhUX1RJVExFX1NZTkM6Ik5ldyByZXBsaWNhdGlvbiIsVFhUX1RJVExFX1pJUDoiRHVtcCB0byBaSVAiLFRYVF9USVRMRV9EVU1QOiJSZXN0b3JlIGZyb20gWklQIGR1bXAiLExCTF9NT0RFOiJNb2RlIixUQUdfTU9ERTp7dGFnczpbW3tPbmNlOiJvbmNlIn0se0xpdmU6ImxpdmUifSx7WklQOiJ6aXAifV0sW3tuYW1lOiJVc2UgX3JlcGxpY2F0b3IgZG9jIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxUQUdfTU9ERV9DT1BZOnt0YWdzOltbeyJSZXBsaWNhdGUgZG9jcyI6Im9uY2UifSx7IkR1bXAgZG9jcyB0byBaSVAiOiJ6aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IlN5bmMgbmFtZSIsUExDX0lEOiJEb2MgX2lkIGZvciB7X3JlcGxpY2F0b3J9IERCIixFUlJfSUQ6IlJlcXVpcmVkIixFUlJfSURfVU5EOiJDYW7igJl0IHN0YXJ0IHdpdGggdW5kZXJzY29yZSIsRVJSX1VOWklQX0ZBSUw6IlVuemlwIGZhaWxlZC4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIixFUlJfVU5aSVBfQUJSVDoiVW56aXAgYW5kIHNhdmUgYWJvcnRlZC4iLE1TR19VTlpJUF9PSzoiRHVtcCByZXN0b3JlIGNvbXBsZXRlZC4iLExCTF9GUk9NOiJTb3VyY2UgREIiLFBMQ19GUk9NOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9GUk9NOiJFeGlzdGluZyBEQiBuYW1lIG9yIHZhbGlkIFVSTCIsRVJSX0ZST01fVVJMOiJJbnZhbGlkIFVSTCIsRVJSX1BXRDoiUGxlYXNlIHByb3ZpZGUgY3JlZGVudGlhbHMiLExCTF9aSVBEVU1QOiJTcmMgemlwIGR1bXAiLFBMQ19aSVBEVU1QOiJTZWxlY3Qgb3IgZHJhZyAuemlwIERCIGR1bXAgaGVyZSIsRVJSX1pJUERVTVA6IkludmFsaWQgemlwIixMQkxfU1JDX0NSRURTOiJTb3VyY2UgY3JlZHMiLFBMQ19VTkFNRToiVXNlcm5hbWUiLEVSUl9VTk9fOiJDYW7igJl0IHN0YXJ0IHdpdGggXyIsUExDX1VQV0Q6IlBhc3N3b3JkIixFUlJfTk9QV0Q6IlBhc3N3b3JkIHJlcXVpcmVkIixUWFRfVUNUWDoiVXNlIC51c2VyQ3R4IHByb3Agd2l0aCBfYWRtaW4gcm9sZSIsTEJMX0ZJTFRFUjoiRmlsdGVyIixUQUdfRklMVEVSOnt0YWdzOltbe25hbWU6IkJ5IF9pZHMiLHZhbHVlOiJpZHMifSx7bmFtZToiRnVuY3Rpb24iLHZhbHVlOiJmbiIsY3NzOiJub3ppcCJ9LHtuYW1lOiJTa2lwIF9kZWxldGVkIix2YWx1ZToieGRlbCJ9XSx7bmFtZToiU2tpcCBkZG9jcyIsdmFsdWU6InhkZG9jIn0se25hbWU6IlNraXAgY29uZmxpY3RzIix2YWx1ZToieHJldnMiLGNzczoiemlwb25seSJ9XSxlbXB0eTp7Tm86IiJ9LHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfRE9DUzoiRG9jcyB0byBzeW5jIixQTENfRE9DUzoiSlNPTiBbXSBvZiBkb2MgX2lkLXMgdG8gcmVwbGljYXRlIixFUlJfRE9DUzoiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixMQkxfRk46IkZpbHRlciBmbiIsUExDX0ZOOiJkZG9jTmFtZS9maWx0ZXJGbk5hbWUsIGZpbHRlciBmdW5jdGlvbiIsRVJSX0ZOX0RFU0lHTjoiTm8gX2Rlc2lnbiBwcmVmaXgsIG9ubHkgZGRvY05hbWUvZmlsdGVyIixFUlJfRk46IlZhbGlkIGZvcm1hdCBpcyBkZG9jTmFtZS9maWx0ZXIiLExCTF9RUlk6IlFyeSBwYXJhbXMiLFBMQ19RUlk6IlF1ZXJ5IHBhcmFtcyBmb3IgZmlsdGVyIGZuLCBKU09OIG9iamVjdCIsRVJSX1FSWToiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBvYmplY3QiLExCTF9aSVBPUFQ6IlN0b3JlIERCIG1ldGEiLFRBR19aSVBPUFQ6e3RhZ3M6W3tuYW1lOiJTZWN1cml0eSBvYmplY3RzIix2YWx1ZToiYWNsIn0se25hbWU6IlNoYXJkaW5nIHNldHRpbmdzIix2YWx1ZToicW5wIn1dLHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfVE86IlRhcmdldCBEQiIsUExDX1RPOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9UTzoiSW52YWxpZCBEQiBVUkwiLEVSUl9UT19VUkw6Ik1hbGZvcm1lZCBVUkwiLEVSUl9UT19NSVNTOiJNaXNzaW5nIGxvY2FsIHRhcmdldCBEQiIsRVJSX0RVUDoiU291cmNlIGFuZCBUYXJnZXQgbXVzdCBiZSBkaWZmZXJlbnQiLEVSUl9DUkVEUzoiQ3JlZGVudGlhbHMgcmVxdWlyZWQsIGxpa2UgaHR0cDovL3VzZXI6cHdkQGFiYy54eXovLi4uIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLEVSUl9VUkVRX0NUOiJSZXF1aXJlZCB3aXRoIENyZWF0ZSB0YXJnZXQiLFRYVF9ORVdUR1Q6IkNyZWF0ZSB0YXJnZXQiLFRJUF9UR1RfUToiTnVtYmVyIG9mIHNoYXJkcywgZm9yIG5ld2x5IGNyZWF0ZWQgREJzIG9ubHkiLFRJUF9UR1RfTjoiTnVtYmVyIG9mIGRhdGEgY29waWVzIHN0b3JlZCBpbiBhIGNsdXN0ZXIsIGZvciBuZXdseSBjcmVhdGVkIERCcyBvbmx5IixUWFRfQ09QWUFDTDoiQ29weSBzb3VyY2UgREIgc2VjdXJpdHkgIGRlc2NyaXB0b3JzIixMQkxfWklQRklMRToiVGFyZ2V0IGZpbGUiLFBMQ19aSVBGSUxFOiJUYXJnZXQgLnppcCBhcmNoaXZlIGZpbGUgbmFtZSIsRVJSX05PWklQOiJZb3VyIGJyb3dzZXIgZG9lc27igJl0IGhhdmUgYWxsIGZlYXR1cmVzIHJlcXVpcmVkIHRvIGNyZWF0ZSBaSVAgZmlsZSBvbiB0aGUgZmx5LCBzb3JyeS4gVXNlIENMSSB0b29scyB0byBkdW1wIHlvdXIgZGF0YS4iLE1TR19aSVBfQkxPQjonPHNwYW4gY2xhc3M9ImRpYiB3MjAgdGFjIG1sLTIwIGZpLWFsZXJ0IHJlZDEiPjwvc3Bhbj5Zb3VyIGJyb3dzZXIgZG9lc27igJl0IGFsbG93IGNsaWVudC1zaWRlIHN0cmVhbWluZyB0byBhIGZpbGUuIEl0IG1lYW5zIGFsbCBkYXRhIHNob3VsZCBmaXQgaW4gbWVtb3J5LCBzbyBkb2504oCZdCBkdW1wIG1vcmUgdGhhbiBzZXZlcmFsIGh1bmRyZWRzIG9mIG1lZ2FiYXl0ZXMuICcsTVNHX1pJUF9XQVJOOiJUaGlzIGZlYXR1cmUgaXMgZXhwZXJpbWVudGFsLCBpdCB3b3JrcyB3ZWxsIGZvciBEQnMgdXAgdG8gc2V2ZXJhbCBHYiBpZiBib3RoIG5ldHdvcmsgYW5kIERCIGFyZSBoZWFsdGh5LiBDb25zaWRlciB1c2luZyBwcm92ZW4gQ0xJIHNvbHV0aW9ucyBmb3IgbGFyZ2VyIERCcyBvciBmbGFreSBuZXR3b3Jrcy4iLExCTF9VTlpJUE9QVDoiVW56aXAgb3B0aW9ucyIsVEFHX1VOWklQT1BUOnt0YWdzOlt7bmFtZToiQ3JlYXRlIERCcyIsdmFsdWU6ImNyZWF0ZSJ9LHtuYW1lOiJQdXQgQUNMIix2YWx1ZToiYWNsIn0se25hbWU6IlNraXAgZGVsZXRlZCIsdmFsdWU6InhkZWwifSx7bmFtZToiU2tpcCBjb25mbGljdHMiLHZhbHVlOiJ4cmV2cyJ9XSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1VOWklQREJTOiJSZXN0b3JlIERCcyIsQlROX1NUQVJUOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCB7MX0gcmVwbGljYXRpb257Mn0iLmFzc2lnbigxPT14PyIiOngseD4xPyJzIjoiIil9LEJUTl9TVEFSVF9ET0M6ZnVuY3Rpb24oeCl7cmV0dXJuIkNyZWF0ZSB7MX0gZG9jezJ9IGFuZCBzdGFydCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1pJUDpmdW5jdGlvbih4KXtyZXR1cm4iRHVtcCB7MX0gREJ7Mn0gdG8gLnppcCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1VOWklQOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCByZXN0b3JlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xFQVI6IkNsZWFyIixNU0dfU1RBUlQ6IlN0YXJ0aW5nIHsxfSBzeW5jIHRhc2suLi4iLE1TR19PS19PTkNFOiJSZXBsaWNhdGlvbiBmcm9tIHsxfSBmaW5pc2hlZCIsTVNHX09LX0RPQzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfTElWRToiQ3JlYXRlZCBhIHRhc2sgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfT05DRV9CQUNLOiJSZXBsaWNhdGlvbiB0byB7MX0gZmluaXNoZWQiLE1TR19PS19ET0NfQkFDSzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBpbmJvdW5kIHN5bmMiLE1TR19PS19MSVZFX0JBQ0s6IkNyZWF0ZWQgYSB0YXNrIGZvciB7MX0gaW5ib3VuZCBzeW5jIixNU0dfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIHsxfSBzeW5jLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1pJUF9SVU5OSU5HOiJDYW7igJl0IHN0YXJ0IG5ldyBkdW1wIHdoaWxlIGFub3RoZXIgZHVtcCB0YXNrIGlzIHJ1bm5pbmcuIFJldHJ5IHdoZW4gaXQgZmluaXNoZXMuIixFUlJfSk9COntUOiJGYWlsZWQgezF9IGZvciB7Mn0gREIuIFNlcnZlciByZXNwb25kZWQg4oCYezN9OsKgezR94oCZIixDOiIgQ29udGludWluZyB0YXNrLiIsR0VUOiJyZWFkaW5nIGRkb2NzIixVVElMUzoiY3JlYXRpbmcgdXRpbCBkZG9jIixGRERPQzoicmVwbGljYXRpbmcgZmlsdGVyaW5nIGRkb2MgdG8gdGFyZ2V0IixBQ0w6ImNsb25pbmcgc2VjdXJpdHkgb2JqZWN0IHRvIHRhcmdldCIsVE86ImNyZWF0aW5nIG91dGJvdW5kIHN5bmMiLEZST006ImNyZWF0aW5nIGluYm91bmQgc3luYyJ9LE11bHRpOntUWFRfVElUTEU6Ik5ldyBiYWNrdXAvcmVzdG9yZSBqb2IiLFRBR19NT0RFOnt0YWdzOltbe09uY2U6Im9uY2UifSx7TGl2ZToibGl2ZSJ9LHtaSVA6InppcCJ9XSxbe25hbWU6IlVzZSBfcmVwbGljYXRvciBkb2NzIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IkRvY3MgcHJlZml4IixQTENfSUQ6IlByZWZpeCBmb3Ige19yZXBsaWNhdG9yfSBkb2NzIixFUlJfSURfVU5EOiJEb2MgbmFtZXMgY2Fu4oCZdCBzdGFydCB3aXRoIHVuZGVyc2NvcmUiLExCTF9GUk9NOiJTb3VyY2UgREJzIixQTENfRlJPTToiU2VsZWN0IERCcyB0byBiYWNrdXAvcmVzdG9yZSIsRVJSX0ZST006IkF0IGxlYXN0IG9uZSBEQiByZXF1aXJlZCIsTEJMX1VOUFJFRklYOiJVbnByZWZpeCBEQnMiLFBMQ19VTlBSRUZJWDoiUHJlZml4IHRvIHJlbW92ZSBmcm9tIERCIG5hbWVzIixUSVBfVU5QUkVGSVg6IkRCIG5hbWVzIG5vdCBzdGFydGluZyB3aXRoIHByZWZpeCBhcmUga2VwdCBpbnRhY3QiLExCTF9GSUxURVI6IkZpbHRlciIsVEFHX0ZJTFRFUjp7dGFnczpbe25hbWU6IlNraXAgX2RlbGV0ZWQiLHZhbHVlOiJ4ZGVsIn0se25hbWU6IlNraXAgZGRvY3MiLHZhbHVlOiJ4ZGRvYyJ9LHtuYW1lOiJTa2lwIGNvbmZsaWN0cyIsdmFsdWU6InhyZXZzIixjc3M6InppcG9ubHkifV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1RPOiJUYXJnZXQgQ291Y2giLFBMQ19UTzoiVGFyZ2V0IENvdWNoREIgcm9vdCBVUkwiLEVSUl9UTzoiUGxlYXNlIHByb3ZpZGUgdmFsaWQgVVJMIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLExCTF9QUkVGSVg6IkFkZCBwcmVmaXgiLFBMQ19QUkVGSVg6IlN0cmluZyB0byBwcmVwZW5kIHRvIHRhcmdldCBEQiBuYW1lcyIsVFhUX05FV1RHVDoiQ3JlYXRlIHRhcmdldCBEQnMiLFRYVF9DT1BZQUNMOiJDb3B5IHNlY3VyaXR5ICBkZXNjcmlwdG9ycyBmcm9tIHNvdXJjZSBEQnMiLE1TR19TVEFSVElORzoiQ3JlYXRpbmcgc3luYyB0YXNrcy4uLiIsTVNHX1NUQVJUOiJTdGFydGluZyB7MX0gc3luYy4uLiIsTVNHX0ZBSUw6IkZhaWxlZCBzdGFydGluZyB7MX0gc3luYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkifSxDb3B5OntUWFRfVElUTEU6IlJlcGxpY2F0ZS9kdW1wIGRvY3MiLEJUTl9TVEFSVDpmdW5jdGlvbih4LGEsYil7cmV0dXJuInppcCI9PWI/IkR1bXAgezF9IGRvY3syfSIuYXNzaWduKDE9PWE/IiI6YSxhPjE/InMiOiIiKToiUmVwbGljYXRlIHsxfSBkb2N7Mn0iLmFzc2lnbigxPT1hPyIiOmEsYT4xPyJzIjoiIil9fX0sJHN0YXRzOnt9LCRsb2c6e1RYVF9USVRMRToiTG9ncyIsVFhUX0tCOiJrYiIsVFhUX1NJWkU6IlNob3ciLFRYVF9PRkZTRVQ6Im9mZnNldCIsUExDX1NFQVJDSDoiU2VhcmNoIGluIGxvZ3MiLFBMQ19SRUxPQUQ6IlJlbG9hZCIsVEFHX0RJUjp7dGFnczpbeyLigKZhdCB0aGUgYm90dG9tIjoiZm9yd2FyZCJ9XSxlbXB0eTp7IkxhdGVzdCBhdCB0aGUgdG9wIjoicmV2ZXJzZSJ9fX0sJGRpZmY6e1RYVF9CQU46IlNraXAiLFBMQ19CQU46Ik5vZGVzIHRvIGV4Y2x1ZGUiLExCTF9TUkM6IlNob3cgc291cmNlIixUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TUkM6IlNvdXJjZSByZXZpc2lvbi4uLiIsUExDX1RHVDoiVGFyZ2V0IHJldmlzaW9uLi4uIixUWFRfTk9ESUZGOiJObyBkaWZmZXJlbmNlIixUWFRfU0VMRUNUOiJTZWxlY3QgZGlmZmVyZW50IHJldmlzaW9ucyJ9LCRjb25maWc6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixFUlJfUkVMT0FEOiJFcnJvciByZWxvYWRpbmcgY29uZmlnLiBTZXJ2ZXIgcmVzcG9uZGVkIHsxfTogezJ9IixCVE5fU0FWRToiU2F2ZSBjaGFuZ2VzICZuYnNwOyIsQlROX1JFVkVSVDoiUmV2ZXJ0IHRvIHNhdmVkICIsQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xPU0U6IkNsb3NlIixUWFRfSElTVF9USVRMRToiQ29uZmlnIGNoYW5nZXMiLFRYVF9ISVNUX0VNUFRZOiJObyB1bnNhdmVkIGNoYW5nZXMiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLEVSUl9WQUw6e0NIQVJTOiJGb3JiaWRkZW4gY2hhcnMgaW4gYSBrZXksIG9ubHkgYS16LCAwLTkgYW5kIF8tISBhbGxvd2VkIixWQUxTVFJJTkc6IlZhbHVlIGNhbuKAmXQgYmUgbnVsbCwgYXJyYXkgb3Igb2JqZWN0In0sTVNHX1NBVkVfT0s6IlN1Y2Nlc3NmdWxseSB1cGRhdGVkIGNvbmZpZyIsTVNHX1NBVkVfRkFJTDoiRmFpbGVkIHVwZGF0aW5nIHNvbWUga2V5cywgc2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiLE1TR19DTFVTVEVSOiJZb3UgYXJlIG9wZXJhdGluZyBhIGNsdXN0ZXIuIFByb3BhZ2F0ZSBjb25maWcgY2hhbmdlcyB0byBhbGwgbm9kZXM/IixCVE5fU0FWRUNMVVNURVI6IlNhdmUgdG8gYWxsIG5vZGVzIixCVE5fU0FWRU5PREU6IlNhdmUgdG8gezF9IG9ubHkiLEJBTl9IVFRQOiJLZXkgY2Fu4oCZdCBiZSBjaGFuZ2VkIHRocm91Z2ggSFRUUCwgZWRpdCBsb2NhbC5pbmkgc2VydmVyc2lkZS4gUmVhc29uIGlzIENWRS0yMDE3LTEyNjM2LiIsQkFOX0NMVVNURVI6IktleSBjYW7igJl0IGJlIGNoYW5nZWQgdXNpbmcgYWRtaW4gcGFuZWwuIixNU0dfVU5LTk9XTl9LRVk6IlVua25vd24gY29uZmlnIGtleSIsSEVMUDp7T0JKX1BBVEhTOntWMToiaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuLzEuNi4xL2NvbmZpZy8iLFYyOiJodHRwczovL2RvY3MuY291Y2hkYi5vcmcvZW4vMi4zLjEvY29uZmlnLyIsVjM6Imh0dHBzOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi8zLjIuMC9jb25maWcvIixDQjoiaHR0cHM6Ly9naXRsYWIuY29tL0NvdWNoYm94L2NvdWNoYm94In0sVFhUX0RPQ1M6Ik9mZmljaWFsIGRvY3VtZW50YXRpb24iLFRYVF9OT0RPQ1M6Ik5vIG9mZmljaWFsIGRvY3VtZW50YXRpb24iLGFkbWluczp7X186IntWMn1hdXRoLmh0bWwjc2VydmVyLWFkbWluaXN0cmF0b3JzIiwiIjoiQ291Y2hEQiBub2RlIGFkbWluaXN0cmF0b3JzLCB1c2VycyBoYXZpbmcgYF9hZG1pbmAgcm9sZSIsIioiOiJLZXkgaXMgdXNlciBuYW1lLCB2YWx1ZSBpcyBwYXNzd29yZCBoYXNoLCBvciBuZXcgcGFzc3dvcmQgZm9yIHRoZSB1c2VyIn0sYXR0YWNobWVudHM6e19fOiJ7VjJ9bWlzYy5odG1sI3trZXl9IiwiIjoiQ29uZmlndXJhdGlvbiBvZiBhdHRhY2htZW50IGZpbGUgc3RvcmFnZSIsY29tcHJlc3NpYmxlX3R5cGVzOiJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb21wcmVzc2libGUgTUlNRSB0eXBlcyBsaWtlIGB0ZXh0LyosIGFwcGxpY2F0aW9uL2phdmFzY3JpcHRgIixjb21wcmVzc2lvbl9sZXZlbDoiWmxpYiBjb21wcmVzc2lvbiBsZXZlbCwgbnVtYmVyIDDigJM5In0sY2h0dHBkOntfXzoie1YzfWh0dHAuaHRtbCN7a2V5fSIsIiI6IkhUVFAgc2VydmVyIG9wdGlvbnMiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGJhY2tsb2c6Ik1vY2hpV2ViIHBhcmFtLCBzb2NrZXQgYmFja2xvZyBzaXplLCBieXRlcyIsbWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxOiJNYXggbnVtYmVyIG9mIERCcyBhbGxvd2VkIGZvciBgL19kYnNfaW5mb2AgcmVxdWVzdCIscG9ydDoiQ291Y2hEQiBwb3J0LCBudW1iZXIgMeKAkzY1NTM1IixwcmVmZXJfbWluaW1hbDoiU2VuZHMgbWluaW1hbCBzZXQgb2YgaGVhZGVycyIscmVxdWlyZV92YWxpZF91c2VyOiJXaGVuIGB0cnVlYCwgbm8gcmVxdWVzdHMgYXJlIGFsbG93ZWQgZnJvbSBhbm9ueW1vdXMgdXNlcnMiLHNvY2tldF9vcHRpb25zOiJUaGUgc29ja2V0IG9wdGlvbnMgZm9yIHRoZSBsaXN0ZW5pbmcgc29ja2V0IGluIENvdWNoREIiLGFkbWluX29ubHlfYWxsX2RiczpbIldoZW4gYHRydWVgIHByZXZlbnRzIG5vbi1hZG1pbnMgZnJvbSBhY2Nlc3NpbmcgYC9fYWxsX2Ric2AiLCIiXX0sY2h0dHBkX2F1dGg6e19fOiJ7VjN9YXV0aC5odG1sI3trZXl9IiwiIjoiQXV0aGVudGljYXRpb24gY29uZmlnIixwYXNzd29yZF9yZWdleHA6IlJlZ0V4cCByZXN0cmljdGluZyBwYXNzd29yZCB2YWx1ZSJ9LGNsdXN0ZXI6e19fOiJ7VjJ9Y2x1c3Rlci5odG1sI3trZXl9IiwiIjoiQ2x1c3RlciBvcHRpb25zIixuOiJOdW1iZXIgb2YgcmVwbGljYXMgb2YgZWFjaCBkb2N1bWVudCBpbiBhIGNsdXN0ZXIsIG51bWJlciAxKyIscGxhY2VtZW50OiJTZXRzIHRoZSBjbHVzdGVyLXdpZGUgcmVwbGljYSBwbGFjZW1lbnQgcG9saWN5IGZvciBuZXcgZGF0YWJhc2VzIixxOiJEZWZhdWx0IG51bWJlciBvZiBzaGFyZHMgZm9yIG5ld2x5IGNyZWF0ZWQgZGF0YWJhc2VzLCBudW1iZXIgMSsiLHNlZWRsaXN0OiJMaXN0IG9mIG5vZGVzIHRvIGNvbnRhY3QgaW4gb3JkZXIgdG8gam9pbiBhIGNsdXN0ZXIifSxjb21wYWN0aW9uX2RhZW1vbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJDb21wYWN0aW9uIGRhZW1vbiBjb25maWciLGNoZWNrX2ludGVydmFsOiJEZWxheSBiZWZvcmUgYXV0by1jb21wYWN0aW9uIGRhZW1vbiBjaGVja3MgYSBEQiwgc2Vjb25kcyIsbWluX2ZpbGVfc2l6ZToiTWluaW1hbCBEQiBmaWxlIHNpemUgZm9yIGNvbXBhY3Rpb24gZGFlbW9uIHRvIHRyaWdnZXIgY2hlY2siLHNub296ZV9wZXJpb2RfbXM6Ik1pbmltdW0gZ2FwIGJldHdlZW4gc3Vic2VxdWVudCBkYWVtb24gYWN0aXZhdGlvbnMsIG1pbGxpc2Vjb25kcyJ9LGNvbXBhY3Rpb25zOntfXzoie1YyfWNvbXBhY3Rpb24uaHRtbCN7a2V5fSIsIiI6IkEgbGlzdCBvZiBydWxlcyB0byBkZXRlcm1pbmUgd2hlbiB0byBydW4gYXV0b21hdGljIGNvbXBhY3Rpb24iLCIqIjonS2V5IGlzIERCIG5hbWUsIHZhbHVlIGlzIGxpa2VgW3tkYl9mcmFnbWVudGF0aW9uLCI3MCUifSwge3ZpZXdfZnJhZ21lbnRhdGlvbiwiNjAlIn0sIHtmcm9tLCIyMzowMCJ9LHt0bywiMDQ6MDAifV1gJ30sY29yczp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJDcm9zcy1vcmlnaW4gcmVzb3VyY2Ugc2hhcmluZyBjb25maWciLGNyZWRlbnRpYWxzOiJJZiBzZXQgYHRydWVgLCBDb3VjaCBzZW5kcyBhdXRoIGNvb2tpZXMgZm9yIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyIsaGVhZGVyczoiSGVhZGVycyBhY2NlcHRlZCBmb3IgQ09SUyByZXF1ZXN0cywgZ29vZCBkZWZhdWx0IGlzIGBhY2NlcHQsIGF1dGhvcml6YXRpb24sIGNvbnRlbnQtdHlwZSwgb3JpZ2luYCIsbWF4X2FnZToiU2V0cyBtYXggYWdlIGhlYWRlciBmb3IgT1BUSU9OUyByZXNwb25zZSwgc2Vjb25kcyIsbWV0aG9kczoiTGlzdCBvZiBhbGxvd2VkIG1ldGhvZHMsIGxpa2UgYEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIE9QVElPTlMsIEhFQURgIixvcmlnaW5zOiJMaXN0IG9mIG9yaWdpbnMgc2VwYXJhdGVkIGJ5IGEgY29tbWEsIGxpa2UgYGh0dHA6Ly9kb21haW4wLmNvbSwgaHR0cHM6Ly9kb21haW4xLmNvbTo0NDNgIn0sY291Y2hfaHR0cGRfYXV0aDp7X186IntWMn1hdXRoLmh0bWwje2tleX0iLCIiOiJBdXRoZW50aWNhdGlvbiBjb25maWciLGFsbG93X3BlcnNpc3RlbnRfY29va2llczoiV2hlbiBgdHJ1ZWAsIENvdWNoIGF1dG8tcmVmcmVzaGVzIHNlc3Npb24gY29va2llcyB0aW1lIHRvIHRpbWUiLGF1dGhfY2FjaGVfc2l6ZToiSG93IG1hbnkgdXNlcnMgYXJlIGNhY2hlZCBpbiBtZW1vcnksIG51bWJlciIsYXV0aGVudGljYXRpb25fcmVkaXJlY3Q6IlJlZGlyZWN0aW9uIG9uIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gaWYgdGhlIGNsaWVudCBhY2NlcHRzIGB0ZXh0L2h0bWxgIixjb29raWVfZG9tYWluOiJDb25maWd1cmVzIHRoZSBkb21haW4gYXR0cmlidXRlIG9mIHRoZSBgQXV0aFNlc3Npb25gIGNvb2tpZSIsaXRlcmF0aW9uczoiUGFzc3dvcmQgaGFzaGluZyBpdGVyYXRpb25zIGNvdW50IixtYXhfaXRlcmF0aW9uczoiTWF4aW11bSBQQktERjIgaXRlcmF0aW9ucyBjb3VudCIsbWluX2l0ZXJhdGlvbnM6Ik1pbmltdW0gUEJLREYyIGl0ZXJhdGlvbnMgY291bnQiLHByb3h5X3VzZV9zZWNyZXQ6IkZvcmNlIHByb3h5IGF1dGggdG8gdXNlIHNlY3JldCB0b2tlbiwgYGZhbHNlYCBtYWtlcyBDb3VjaCB2ZXJ5IHVucHJvdGVjdGVkIixwdWJsaWNfZmllbGRzOiJMaXN0IG9mIHB1YmxpYyBmaWVsZHMgaW4gYF91c2Vyc2AgZG9jdW1lbnRzIHRoYXQgYXJlIHVzZXIgcHJvZmlsZXMiLHJlcXVpcmVfdmFsaWRfdXNlcjoiV2hlbiBgdHJ1ZWAsIG5vIHJlcXVlc3RzIGFyZSBhbGxvd2VkIGZyb20gYW5vbnltb3VzIHVzZXJzIixzZWNyZXQ6IlNlY3JldCB0b2tlbiB1c2VkIGZvciBQcm94eSBhbmQgQ29va2llIGF1dGhlbnRpY2F0aW9uIixzYW1lX3NpdGU6IlNhbWVTaXRlIGF0dHJpYnV0ZSBmb3IgYXV0aCBjb29raWUsIGBub25lYCwgYGxheGAgb3IgYHN0cmljdGAgIix0aW1lb3V0OiJOdW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZXF1ZXN0IGJlZm9yZSBzZXNzaW9uIGV4cGlyZXMiLHVzZXJzX2RiX3B1YmxpYzoiQWxsb3cgYWxsIHVzZXJzIHRvIHZpZXcgdXNlciBkb2N1bWVudHMiLHhfYXV0aF9yb2xlczoiUHJveHkgQXV0aCByb2xlcyBoZWFkZXIgbmFtZSwgZGVmYXVsdCBpcyBgWC1BdXRoLUNvdWNoREItUm9sZXNgIix4X2F1dGhfdG9rZW46IlByb3h5IEF1dGggdG9rZW4gaGVhZGVyIG5hbWUsIGRlZmF1bHQgaXMgYFgtQXV0aC1Db3VjaERCLVRva2VuYCIseF9hdXRoX3VzZXJuYW1lOiJQcm94eSBBdXRoIHVzZXJuYW1lIGhlYWRlciBuYW1lLCBkZWZhdWx0IGlzIGBYLUF1dGgtQ291Y2hEQi1Vc2VyTmFtZWAifSxjb3VjaF9odHRwZF9vYXV0aDp7X186IntWMX1hdXRoLmh0bWwje2tleX0iLCIiOiJIVFRQIE9BdXRoIENvbmZpZ3VyYXRpb24iLHVzZV91c2Vyc19kYjoiSWYgYHRydWVgIE9BdXRoIHRva2VuIGFuZCBjb25zdW1lciBzZWNyZXRzIGFyZSBsb29rZWQgdXAgaW4gYF91c2Vyc2AgZG9jcyJ9LGNvdWNoX3BlcnVzZXI6e19fOiJ7VjJ9Y291Y2gtcGVydXNlci5odG1sI3trZXl9IiwiIjoiR2VuZXJhdGVzIGEgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtYmVyIixkZWxldGVfZGJzOiJEZWxldGUgYSB1c2VyIERCIG9uIGBfdXNlcnNgIGRvYyBkZWxldGlvbiIsZW5hYmxlOiJJZiBgdHJ1ZWAgYXV0by1jcmVhdGVzIGB1c2VyLXtoZXhuYW1lfWAgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtZWJlciJ9LGNvdWNoZGI6e19fOiJ7VjJ9Y291Y2hkYi5odG1sI3trZXl9IiwiIjoiQmFzZSBDb3VjaERCIG9wdGlvbnMiLGF0dGFjaG1lbnRfc3RyZWFtX2J1ZmZlcl9zaXplOiJCdWZmZXIgdXNlZCB3aGlsZSBzdHJlYW1pbmcgYW4gYXR0YWNobWVudCwgYnl0ZXMiLGRhdGFiYXNlX2RpcjoiRGF0YWJhc2VzIGxvY2F0aW9uIGRpcmVjdG9yeSIsZGVmYXVsdF9zZWN1cml0eToiRGVmYXVsdCBzZWN1cml0eSBvYmplY3QgZm9yIERCcywgYGV2ZXJ5b25lYCBhbmQgYGFkbWluX2xvY2FsYCBtYWtlIERCIHB1YmxpYywgYGFkbWluX29ubHlgIHByb3RlY3RzIixkZWxheWVkX2NvbW1pdHM6IklmIGB0cnVlYCBDb3VjaCBndWFyYW50ZWVzIGNoYW5nZXMgYXJlIHdyaXR0ZW4gdG8gZGlzayBiZWZvcmUgYDIweGAgcmVzcG9uc2UgaXMgc2VudCIsZmlsZV9jb21wcmVzc2lvbjoiQ29tcHJlc3Npb24gbWV0aG9kIGZvciBkb2N1bWVudHMsIGBub25lYCwgYHNuYXBweWAgb3IgYGRlZmxhdGVfTmAiLGZzeW5jX29wdGlvbnM6IkZzeW5jIG9wdGlvbnMiLG1haW50ZW5hbmNlX21vZGU6IklmIHNldCBgdHJ1ZWAsIG5vZGUgaXMgbm90IGluIGNsdXN0ZXIsIGFuZCBgL191cGAgcmV0dXJucyBgNDA0YCIsbWF4X2Ric19vcGVuOiJMaW1pdCBvZiBzaW11bHRhbmVvdXNseSBvcGVuZWQgZGF0YWJhc2VzLCBudW1iZXIiLG1heF9kb2N1bWVudF9zaXplOiJMaW1pdCBtYXhpbXVtIGRvY3VtZW50IGJvZHkgc2l6ZSwgYnl0ZXMiLG9zX3Byb2Nlc3NfdGltZW91dDoiRXh0ZXJuYWwgcHJvY2Vzc2VzIHRpbWUgbGltaXQsIG1pbGxpc2Vjb25kcyIsdXJpX2ZpbGU6IkRpc2NvdmVyeSBDb3VjaERCIGhlbHAgZmlsZSIsdXNlcnNfZGJfc3VmZml4OiJTcGVjaWZpZXMgdGhlIHN1ZmZpeCBvZiB0aGUgc3lzdGVtIGRhdGFiYXNlIG9mIHVzZXJzIix1dGlsX2RyaXZlcl9kaXI6IlNwZWNpZmllcyBsb2NhdGlvbiBvZiBiaW5hcnkgZHJpdmVycyIsdXVpZDoiVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgQ291Y2hEQiBzZXJ2ZXIgaW5zdGFuY2UiLHZpZXdfaW5kZXhfZGlyOiJWaWV3IGluZGV4ZXMgbG9jYXRpb24gZGlyZWN0b3J5Iix1c2Vyc19kYl9zZWN1cml0eV9lZGl0YWJsZTpbIkFsbG93IGVkaXRzIG9uIHRoZSBgX3NlY3VyaXR5YCBvYmplY3QgaW4gdGhlIHVzZXIgZGIiLCIiXX0sY3NwOntfXzoie1YzfW1pc2MuaHRtbCN7a2V5fSIsIiI6IkNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHNldHRpbmdzIixlbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBGYXV4dG9uIixoZWFkZXJfdmFsdWU6IkRlZmF1bHQgRmF1eHRvbiBDU1AgaGVhZGVyIHZhbHVlIixhdHRhY2htZW50c19lbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBkb2MgYXR0YWNobWVudHMiLGF0dGFjaG1lbnRzX2hlYWRlcl92YWx1ZToiRGVmYXVsdCBDU1AgaGVhZGVyIHZhbHVlIGZvciBkb2MgYXR0YWNobWVudHMiLHNob3dsaXN0X2VuYWJsZToiSWYgYHRydWVgIGVuYWJsZXMgQ1NQIGhlYWRlcnMgZm9yIG5vbi1KU09OIHNob3cvbGlzdCByZXN1bHRzIixzaG93bGlzdF9oZWFkZXJfdmFsdWU6IkRlZmF1bHQgQ1NQIGhlYWRlciB2YWx1ZSBmb3Igbm9uLUpTT04gc2hvdy9saXN0IHJlc3VsdHMifSxkYWVtb25zOntfXzoie1YyfXNlcnZpY2VzLmh0bWwje2tleX0iLCIiOiJDb3VjaERCIERhZW1vbml6ZWQgTWluaSBBcHBzIixhdXRoX2NhY2hlOiJBdXRoZW50aWNhdGlvbiBjYWNoaW5nIGxvY2F0b3IiLGNvbXBhY3Rpb25fZGFlbW9uOiJDb21wYWN0aW9uIGRhZW1vbiBsb2NhdG9yIixleHRlcm5hbF9tYW5hZ2VyOiJFeHRlcm5hbCBwcm9jZXNzZXMgbWFuYWdlciBsb2NhdG9yIixodHRwZDoiTm9kZSBIVFRQIHNlcnZlciBkYWVtb24gbG9jYXRvciIsaW5kZXhfc2VydmVyOiJDb3VjaERCIGluZGV4IHNlcnZlciBsb2NhdG9yIixxdWVyeV9zZXJ2ZXJzOiJRdWVyeSBzZXJ2ZXJzIG1hbmFnZXIgbG9jYXRvciIscmVwbGljYXRvcl9tYW5hZ2VyOiJDb3VjaCByZXBsaWNhdG9yIG1hbmFnZXIgbG9jYXRvciIsc3RhdHNfYWdncmVnYXRvcjoiQ291Y2ggc3RhdHMgYWdncmVnYXRvciBkYWVtb24gbG9jYXRvciIsc3RhdHNfY29sbGVjdG9yOiJDb3VjaCBzdGF0cyBjb2xsZWN0b3IgZGFlbW9uIGxvY2F0b3IiLHV1aWRzOiJVVUlEcyBnZW5lcmF0b3IgZGFlbW9uIGxvY2F0b3IiLHZob3N0czoiTWFuYWdlciBvZiBgdmhvc3RzYCBjb25uZWN0aW9ucyBsb2NhdG9yIn0sZGF0YWJhc2VfY29tcGFjdGlvbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJEYXRhYmFzZSBjb21wYWN0aW9uIG9wdGlvbnMiLGNoZWNrcG9pbnRfYWZ0ZXI6IlRyaWdnZXJzIGEgY2hlY2twb2ludCBhZnRlciB0aGUgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyB3ZXJlIGNvcGllZCIsZG9jX2J1ZmZlcl9zaXplOiJUaGUgY29weSBidWZmZXLigJlzIG1heGltdW0gc2l6ZSwgYnl0ZXMifSxkcmV5ZnVzOntfXzoie1YzfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IkRyZXlmdXMgc2VhcmNoIHN1YnN5c3RlbSBjb25maWd1cmF0aW9uIixsaW1pdDoiRGVmYXVsdCByZXN1bHQgc2V0IGxpbWl0IGZvciBnbG9iYWwgc2VhcmNoIixsaW1pdF9wYXJ0aXRpb25zOiJEZWZhdWx0IHJlc3VsdCBzZXQgbGltaXQgZm9yIHBhcnRpdGlvbmVkIERCcyIsbWF4X2xpbWl0OiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIGdsb2JhbCBzZWFyY2giLG1heF9saW1pdF9wYXJ0aXRpb25zOiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIHBhcnRpdGlvbmVkIHNlYXJjaCIsbmFtZToiQ2xvdXNlYXUgSlZNIG5vZGUgbmFtZSBhbmQgbG9jYXRpb24iLHJldHJ5X2xpbWl0OiJNYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9uIHJldHJpZXMifSxodHRwZDp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJIVFRQIHNlcnZlciBjb25maWcsIGZvciAyLnggb25seSBmb3IgbG9jYWwgNTk4NiBwb3J0IiwiV1dXLUF1dGhlbnRpY2F0ZSI6IklmIGB0cnVlYCB0cmlnZ2VyIGJhc2ljLWF1dGggcG9wLXVwIG9uIHVuYXV0aG9yaXplZCByZXF1ZXN0cyIsYWxsb3dfanNvbnA6IklmIGB0cnVlYCBlbmFibGVzIEpTT05QIHN1cHBvcnQsIGBmYWxzZWAgcmVjb21tZW5kZWQiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGNoYW5nZXNfdGltZW91dDoiQ2hhbmdlcyBmZWVkIHRpbWVvdXQsIG1pbGxpc2Vjb25kcyIsY29uZmlnX3doaXRlbGlzdDoiT25seSB3aGl0ZWxpc3RlZCB2YWx1ZXMgbWF5IGJlIGNoYW5nZWQgdmlhIHRoZSBgL19jb25maWdgIEhUVFAgZW5kcG9pbnRzIixkZWZhdWx0X2hhbmRsZXI6IkRlZmF1bHQgcmVxdWVzdCBoYW5kbGVyIGxvY2F0b3IiLGVuYWJsZV9jb3JzOiJJZiBgdHJ1ZWAgYWxsb3dzIENPUlMiLGVuYWJsZV94ZnJhbWVfb3B0aW9uczoiQ29udHJvbHMgWC1GcmFtZS1PcHRpb25zIGhlYWRlciIsbG9nX21heF9jaHVua19zaXplOiJNYXggcmVzcG9uc2Ugc2l6ZSBmb3IgYC9fbG9nYCByZXF1ZXN0IixtYXhfaHR0cF9yZXF1ZXN0X3NpemU6IkxpbWl0IHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIEhUVFAgcmVxdWVzdCBib2R5LCBieXRlcyIscG9ydDoiTGlzdGVuIHBvcnQiLHJlZGlyZWN0X3Zob3N0X2hhbmRsZXI6IkN1c3RvbWl6ZXMgdGhlIGRlZmF1bHQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHJlcXVlc3RzIHRvIHZpcnR1YWwgaG9zdHMiLHNlY3VyZV9yZXdyaXRlczoiQWxsb3dzIGBfcmV3cml0ZWAgcnVsZXMgcG9pbnRpbmcgdG8gZGlmZmVyZW50IERCIixzZXJ2ZXJfb3B0aW9uczoiTW9jaGlXZWIgd2ViIHNlcnZlciBvcHRpb25zIixzb2NrZXRfb3B0aW9uczoiVGhlIHNvY2tldCBvcHRpb25zIGZvciB0aGUgbGlzdGVuaW5nIHNvY2tldCBpbiBDb3VjaERCIix2aG9zdF9nbG9iYWxfaGFuZGxlcnM6Ikxpc3Qgb2YgZ2xvYmFsIGhhbmRsZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdmlydHVhbCBob3N0cyIseF9mb3J3YXJkZWRfaG9zdDoiWC1Gb3J3YXJkZXItSG9zdCIseF9mb3J3YXJkZWRfcHJvdG86IlgtRm9yd2FyZGVyLVByb3RvIix4X2ZvcndhcmRlZF9zc2w6IlgtRm9yd2FyZGVyLVNzbCJ9LGh0dHBkX2RiX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZXZlcnkgQ291Y2hEQiBkYXRhYmFzZSIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZGVzaWduX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZGVzaWduIGRvY3VtZW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZ2xvYmFsX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6Ikdsb2JhbCBIVFRQIGVuZHBvaW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saW9xOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiSU8gcXVldWUgcHJpb3JpdGl6YXRpb24gb3B0aW9ucyIsY29uY3VycmVuY3k6Ik51bWJlciBvZiBjb25jdXJyZW50IGluLWZsaWdodCBJTyByZXF1ZXN0cyB0aGF0IHRoZSBxdWV1ZWluZyBzeXN0ZW0gd2lsbCBzdWJtaXQiLHJhdGlvOiJCYWNrZ3JvdW5kIElPIHJlcXVlc3RzIHF1b3RhIHJhdGlvIn0sImlvcS5ieXBhc3MiOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiTGlzdCBvZiBvcGVyYXRpb25zIHRoYXQgY2FuIGJ5cGFzcyBJTyBxdWV1ZSIsIioiOiJLZXkgaXMgdGhlIG9wZXJhdGlvbiwgdmFsdWUgaXMgYnlwYXNzIHN0YXR1cyBmb3IgaXQifSxrZW46e19fOiJ7VjN9aW5kZXhidWlsZHMuaHRtbCN7a2V5fSIsIiI6IkJhY2tncm91bmQgaW5kZXggYnVpbGRzIixiYXRjaF9jaGFubmVsczoiQ29udHJvbHMgdGhlIG51bWJlciBvZiBiYWNrZ3JvdW5kIHZpZXcgYnVpbGRzIHRoYXQgY2FuIGJlIHJ1bm5pbmcgaW4gcGFyYWxsZWwiLGluY3JlbWVudGFsX2NoYW5uZWxzOiJBZGRpdGlvbmFsIHNsb3RzIGZvciBzaG9ydCBqb2JzIixtYXhfaW5jcmVtZW50YWxfdXBkYXRlczoiVGhyZXNob2xkIGRlZmluaW5nIGEgam9iIGFzIHNob3J0In0sImtlbi5pZ25vcmUiOntfXzoie1YzfWluZGV4YnVpbGRzLmh0bWwje2tleX0iLCIiOiJBdXRvLWluZGV4aW5nIGJsYWNrbGlzdCIsIioiOiJLZXkgaXMgYSBzaGFyZCBuYW1lIHRvIHNraXAgd2hpbGUgYXV0by1pbmRleGluZywgdmFsdWUgc2hvdWxkIGJlIGB0cnVlYCJ9LGxvZzp7X186IntWMn1sb2dnaW5nLmh0bWwje2tleX0iLCIiOiJMb2dnaW5nIG9wdGlvbnMiLHdyaXRlcjoiU2V0IHRoZSBsb2cgd3JpdGVyIHRvIHVzZTogYHN0ZGVycmAsIGBmaWxlYCwgYHN5c2xvZ2AiLGZpbGU6IkxvZ2dpbmcgZmlsZSBwYXRoIixpbmNsdWRlX3Nhc2w6IklmIGB0cnVlYCBwdXRzIFNBU0wgaW5mbyBpbnRvIGxvZ3MiLGxldmVsOiJMb2dnaW5nIHZlcmJvc2l0eTogYGRlYnVnYCwgYGluZm9gLCBgbm90aWNlYCwgYHdhcm5gLCBgZXJyYCwgYG5vbmVgIixzeXNsb2dfYXBwaWQ6IlNwZWNpZmllcyBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgYHN5c2xvZ2Agd3JpdGVyIixzeXNsb2dfZmFjaWxpdHk6IlNwZWNpZmllcyB0aGUgc3lzbG9nIGZhY2lsaXR5IHRvIHVzZSB3aXRoIHRoZSBgc3lzbG9nYCB3cml0ZXIiLHN5c2xvZ19ob3N0OiJTcGVjaWZpZXMgdGhlIGhvc3QgdG8gc2VuZCBsb2dzIHRvIGJ5IGBzeXNsb2dgIHdyaXRlciIsc3lzbG9nX3BvcnQ6IlNwZWNpZmllcyB0aGUgcG9ydCB0byBzZW5kIGxvZ3MgdG8gYnkgYHN5c2xvZ2Agd3JpdGVyIix3cml0ZV9idWZmZXI6IkJ1ZmZlciBmb3IgYGZpbGVgIGxvZyB3cml0ZXIsIGJ5dGVzIix3cml0ZV9kZWxheToiRGVsYXkgZm9yIGBmaWxlYCBsb2cgd3JpdGVyLCBtaWxsaXNlY29uZHMifSxuYXRpdmVfcXVlcnlfc2VydmVyczp7X186IntWMn1xdWVyeS1zZXJ2ZXJzLmh0bWwje2tleX0iLCIiOiJOYXRpdmUgRXJsYW5nIHF1ZXJ5IHNlcnZlciIsZW5hYmxlX2VybGFuZ19xdWVyeV9zZXJ2ZXI6IklmIGB0cnVlYCwgRXJsYW5nIFFTIGlzIGVuYWJsZWQgaW4gMi54Iixlcmxhbmc6IkVybGFuZyBRUyBsb2NhdG9yIGZvciBDb3VjaCAxLngifSxwdXJnZTp7X186IntWM31taXNjLmh0bWwje2tleX0iLCIiOiJDb25maWd1cmF0aW9uIG9mIGRhdGFiYXNlIHB1cmdlIixtYXhfZG9jdW1lbnRfaWRfbnVtYmVyOiJNYXggbnVtYmVyIG9mIGRvY3MgYWxsb3dlZCBpbiBhIHNpbmdsZSBwdXJnZSByZXF1ZXN0IixtYXhfcmV2aXNpb25zX251bWJlcjoiTWF4IG51bWJlciBvZiBhY2N1bXVsYXRlZCByZXZpc2lvbnMgaW4gYSBzaW5nbGUgcHVyZ2UgcmVxdWVzdCIsaW5kZXhfbGFnX3dhcm5fc2Vjb25kczoiTWF4IGR1cmF0aW9uIGZvciB1cGRhdGluZyBpbmRleCB0byBjb21wbHkgbG9jYWwgcHVyZ2UgY2hlY2twb2ludCJ9LHNtb29zaDp7X186IntWM31jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJBdXRvY29tcGFjdGlvbiBkYWVtb24gc2V0dGluZ3MiLGRiX2NoYW5uZWxzOiJMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBkYiBjb21wYWN0aW9uIGNoYW5uZWwgbmFtZXMiLHZpZXdfY2hhbm5lbHM6Ikxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIHZpZXcgaW5kZXggY29tcGFjdGlvbiBjaGFubmVsIG5hbWVzIn0sInNtb29zaC5yYXRpb19kYnMiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgZGJzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LCJzbW9vc2gucmF0aW9fdmlld3MiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgdmlldyBpbmRpY2VzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LHF1ZXJ5X3NlcnZlcnM6e19fOiJ7VjJ9cXVlcnktc2VydmVycy5odG1sI3trZXl9IiwiIjoiUXVlcnkgc2VydmVycyBsaXN0IiwiKiI6IktleSBpcyBsYW5ndWFnZSwgdmFsdWUgaXMgcGF0aCB0byBwcm9jZXNzb3IifSxxdWVyeV9zZXJ2ZXJfY29uZmlnOntfXzoie1YyfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IlF1ZXJ5IHNlcnZlcnMgY29uZmlndXJhdGlvbiIsY29tbWl0X2ZyZXE6IkRlbGF5IGluIHNlY29uZHMgYmVmb3JlIHZpZXcgaW5kZXggY2hhbmdlcyBhcmUgY29tbWl0dGVkIHRvIGRpc2siLGxpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixvc19wcm9jZXNzX2xpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixyZWR1Y2VfbGltaXQ6IkNvbnRyb2xzIGlmIHJlZHVjZSB0aHJvd3MgZXJyb3Igb24gYSBzdGVwIHdoaWNoIGlzIG1vcmUgdGhhbiB0d2ljZSBhcyBsYXJnZSBhcyBpbnB1dCIsc29mdF9saW1pdDoiU29mdCBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIE9TIHByb2Nlc3NlcyB1c2FibGUgYnkgUXVlcnkgU2VydmVycyIsb3NfcHJvY2Vzc19zb2Z0X2xpbWl0OiJTb2Z0IGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIn0scmVwbGljYXRvcjp7X186IntWMn1yZXBsaWNhdG9yLmh0bWwje2tleX0iLCIiOiJSZXBsaWNhdG9yIERCIGNvbmZpZyIsYXV0aF9wbHVnaW5zOiJMaXN0IG9mIHJlcGxpY2F0b3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uIHBsdWdpbnMiLGNlcnRfZmlsZToiUGF0aCB0byBhIGZpbGUgY29udGFpbmluZyB0aGUgdXNlcuKAmXMgY2VydGlmaWNhdGUiLGNoZWNrcG9pbnRfaW50ZXJ2YWw6IlJlcGxpY2F0aW9uIGNoZWNrcG9pbnQgaW50ZXJ2YWwsIG1pbGxpc2Vjb25kcyIsY29ubmVjdGlvbl90aW1lb3V0OiJIVFRQIGNvbm5lY3Rpb24gdGltZW91dCBwZXIgcmVwbGljYXRpb24gaW4gbWlsbGlzZWNvbmRzLCBkaXZpZGVkIGJ5IDMgZm9yIHB1bGwgc3luYyIsaHR0cF9jb25uZWN0aW9uczoiTWF4IG51bWJlciBvZiBIVFRQIGNvbm5lY3Rpb25zIHBlciByZXBsaWNhdGlvbiIsaW50ZXJ2YWw6IlNjaGVkdWxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIixrZXlfZmlsZToiUGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgdXNlcuKAmXMgcHJpdmF0ZSBQRU0gZW5jb2RlZCBrZXkiLG1heF9jaHVybjoiTWF4IG51bWJlciBvZiByZXBsaWNhdGlvbiBqb2JzIHRvIHN0YXJ0L3N0b3AgZHVyaW5nIHJlc2NoZWR1bGluZyIsbWF4X2pvYnM6Ik1heCBudW1iZXIgb2YgYWN0aXZlbHkgcnVubmluZyByZXBsaWNhdGlvbnMiLHBhc3N3b3JkOiJVc2Vy4oCZcyBwYXNzd29yZCwgaWYgdGhlIHByaXZhdGUga2V5IGZpbGUgaXMgcGFzc3dvcmQgcHJvdGVjdGVkIixyZXRyaWVzX3Blcl9yZXF1ZXN0OiJJZiBhIHJlcXVlc3QgZmFpbHMsIHRoZSByZXBsaWNhdG9yIHdpbGwgcmV0cnkgaXQgdXAgdG8gTiB0aW1lcyIsc29ja2V0X29wdGlvbnM6IkZpbmUgdHVuZSByZXBsaWNhdGlvbiBzb2NrZXQgb3B0aW9ucyIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIixzc2xfdHJ1c3RlZF9jZXJ0aWZpY2F0ZXNfZmlsZToiRmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiBwZWVyIHRydXN0ZWQgY2VydGlmaWNhdGVzIGluIHRoZSBQRU0gZm9ybWF0Iix1cGRhdGVfZG9jczoiSWYgYHRydWVgIENvdWNoIHVwZGF0ZXMgX3JlcGxpY2F0b3IgZG9jcyBvbiB0YXNrIGVycm9yIGFuZCBzdGFydCIsdXNlX2NoZWNrcG9pbnRzOiJJZiBgdHJ1ZWAgQ291Y2hEQiBtYWtlcyBjaGVja3BvaW50cyBkdXJpbmcgYW5kIGF0IHRoZSBjb21wbGV0aW9uIG9mIHJlcGxpY2F0aW9uIix2ZXJpZnlfc3NsX2NlcnRpZmljYXRlczoiSWYgYGZhbHNlYCBpbnZhbGlkIGNlcnRpZmljYXRlcyBkbyBub3QgcHJldmVudCByZXBsaWNhdGlvbiIsd29ya2VyX2JhdGNoX3NpemU6Ik51bWJlciBvZiBkb2NzIHRvIHJlYWQgaW4gYmF0Y2ggZHVyaW5nIHN5bmMiLHdvcmtlcl9wcm9jZXNzZXM6Ik51bWJlciBvZiBhIHJlcGxpY2F0aW9uIHN1Yi1wcm9jZXNzZXMgdG8gcnVuIHNpbXVsdGFuZW91c2x5In0scmVzaGFyZGluZzp7X186IntWMn1yZXNoYXJkaW5nLmh0bWwje2tleX0iLCIiOiJSZXNoYXJkaW5nIGNvbmZpZ3VyYXRpb24iLGRlbGV0ZV9zb3VyY2U6ImlmIGB0cnVlYCBzb3VyY2Ugc2hhcmQgc2hvdWxkIGJlIGRlbGV0ZWQgYWZ0ZXIgcmVzaGFyZGluZyIsbWF4X2pvYnM6Ik1heGltdW0gbnVtYmVyIG9mIHJlc2hhcmRpbmcgam9icyBwZXIgY2x1c3RlciBub2RlIixtYXhfcmV0cmllczoiSG93IG1hbnkgdGltZXMgdG8gcmV0cnkgc2hhcmQgc3BsaXR0aW5nIHN0ZXBzIGlmIHRoZXkgZmFpbCIscmV0cnlfaW50ZXJ2YWxfc2VjOiJIb3cgbG9uZyB0byB3YWl0IGJldHdlZW4gc3Vic2VxdWVudCByZXRyaWVzLCBzZWNvbmRzIixzb3VyY2VfY2xvc2VfdGltZW91dF9zZWM6IkhvdyBtYW55IHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHNvdXJjZSBzaGFyZCB0byBjbG9zZSIsdXBkYXRlX3NoYXJkX21hcF90aW1lb3V0X3NlYzoiSG93IG1hbnkgc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgc2hhcmQgbWFwIHVwZGF0ZSBvcGVyYXRpb24gdG8gY29tcGxldGUifSxzc2w6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiSFRUUFMgb3B0aW9ucyIsY2FjZXJ0X2ZpbGU6IkNBIENlcnRpZmljYXRlIGZpbGUgcGF0aCIsY2VydF9maWxlOiJDZXJ0aWZpY2F0ZSBmaWxlIHBhdGgiLGNpcGhlcnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBjaXBoZXIgbGlzdCwgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixmYWlsX2lmX25vX3BlZXJfY2VydDoiUmVxdWlyZSBwcmVzZW5jZSBvZiBjbGllbnQgY2VydGlmaWNhdGUgaWYgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQiLGtleV9maWxlOiJDZXJ0aWZpY2F0ZSBrZXkgZmlsZSBwYXRoIixwYXNzd29yZDoiQ2VydGlmaWNhdGUga2V5IHBhc3N3b3JkIixzZWN1cmVfcmVuZWdvdGlhdGU6IkVuYWJsZSBzZWN1cmUgcmVuZWdvdGlhdGlvbiIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIix0bHNfdmVyc2lvbnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBTU0wvVExTIHByb3RvY29sIHZlcnNpb25zIix2ZXJpZnlfZnVuOiJTU0wgdmVyaWZpY2F0aW9uIGZ1bmN0aW9uIGxvY2F0b3IiLHZlcmlmeV9zc2xfY2VydGlmaWNhdGVzOiJJZiBgdHJ1ZWAgZW5hYmxlcyBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24ifSxzdGF0czp7X186IntWMn1taXNjLmh0bWwje2tleX0iLCIiOiJTdGF0aXN0aWMgY2FsY3VsYXRpb24iLHJhdGU6IlJhdGUgb2Ygc3RhdGlzdGljcyBnYXRoZXJpbmcgaW4gbWlsbGlzZWNvbmRzIixzYW1wbGVzOiJJbnRlcnZhbHMgZm9yIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiwgc2Vjb25kcyJ9LHV1aWRzOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlVVSURzIGNvbmZpZyIsYWxnb3JpdGhtOiJHZW5lcmF0aW9uIGFsZ29yaXRobSwgYHJhbmRvbWAsIGBzZXF1ZW50aWFsYCwgYHV0Y19yYW5kb21gLCBgdXRjX2lkYCIsbWF4X2NvdW50OiJQZXItcmVxdWVzdCBVVUlEIGxpbWl0LCBudW1iZXIiLHV0Y19pZF9zdWZmaXg6IlN1ZmZpeCB0byBhcHBlbmQgd2hlbiBgdXRjX2lkYCBVVUlEIGdlbmVyYXRvciBpcyB1c2VkIn0sdmVuZG9yOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlZlbmRvciBpbmZvcm1hdGlvbiIsIioiOiJLZXkgaXMgYSBrZXkgZm9yIGBHRVQgL2AgcmVzcG9uc2UsIHZhbHVlIGlzIHJldHVybmVkIHVuZGVyIHRoZSBrZXkifSx2aG9zdHM6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiVmlydHVhbCBob3N0cyBsaXN0IiwiKiI6IktleSBpcyBsaWtlIGBkb21haW4ubmFtZTo1OTg0YCwgdmFsdWUgaXMgYC9kYm5hbWUvZG9jLy4uLmAifSx2aWV3X2NvbXBhY3Rpb246e19fOiJ7VjJ9Y29tcGFjdGlvbi5odG1sI3trZXl9IiwiIjoiVmlld3MgY29tcGFjdGlvbiBvcHRpb25zIixrZXl2YWx1ZV9idWZmZXJfc2l6ZToiS2V5LVZhbHVlcyBidWZmZXIgc2l6ZSwgYnl0ZXMifSxjb3VjaGJveDp7X186IntDQn0jY291Y2hib3gtMSIsIiI6IkNvdWNoYm94IGNvbmZpZyIsZGVidWc6IlR1cm5zIG9uIGRlYnVnIG1vZGUgKG1vcmUgaW5mb3JtYXRpdmUgbWVzc2FnZXMpIixub2RlbmFtZToiU2hvcnRjdXQgbmFtZSBvZiBjdXJyZW50IG5vZGUiLG5vZGVzOiJMaXN0IG9mIG5vZGVzLCBKU09OOyBub2RlbmFtZXMgYXJlIGtleXMsIFVSTHMgYXJlIHZhbHVlcyIsbWF4X3BhcmFsbGVsX2NoYW5nZXM6Ik1heGltdW0gY2hhbmdlcyB0aWNrcyBwcm9jZXNzZWQgc2ltdWx0YW5lb3VzbHkiLGNvbGRfc3RhcnQ6IkRlZmluZXMgaWYgZmlyc3QgcnVuIHN0YXJ0cyBmcm9tIGN1cnJlbnQgc2VxdWVuY2VzIG9yIERCIGZpcnN0IHNlcSAoJ25vcm1hbCcpIixhcGk6IkNvbmZpZ3VyZXMgUkVTVCBBUEksIEpTT04iLHByb3h5OiJQcm94eSBzZXR0aW5ncywgSlNPTi4gRGVmYXVsdCBpcyBhIG1hc2sgYSBwYXRoIHJld3JpdGVzIGludG8iLHNvY2tldDoiU29ja2V0LmlvIGNvbmZpZyIsbWFpbDoiRW1lcmdlbmN5IG5vdGlmaWNhdGlvbnMgZW1haWxzIixyZWRpc19pcDoiUmVkaXMgZG9tYWluIG9yIElQIGFkZHJlc3MiLHJlZGlzX3BvcnQ6IlJlZGlzIHBvcnQiLHJlZGlzX3Bhc3N3b3JkOiJSZWRpcyBwYXNzd29yZCwgaWYgYW55IixyZWRpc19jb21tYW5kZXI6IlJlZGlzIGNvbW1hbmRlciBjb25maWcsIEpTT04ifSxjb3VjaGJveF9hcGk6e19fOiJ7Q0J9I3Jlc3QtYXBpIiwiIjoiTGlzdCBvZiBlbmRwb2ludHMgYW5kIGRkb2NzIGF0dGFjaGVkIHRvIHRoZW0iLCIqIjoiS2V5IGlzIGVuZHBvaW50IHdpdGggYWxsIGAvYCByZXBsYWNlZCB3aXRoIGAhYCwgdmFsdWUgaXMgYGRiL2Rkb2MgcGx1Z2luMSBwbHVnaW4yIC4uLmAifSxjb3VjaGJveF9ob29rczp7X186IntDQn0jaG9va3MtY29uZmlndXJhdGlvbiIsIiI6Ikxpc3Qgb2YgZGVzaWduIGRvY3VtZW50cyB3aXRoIGhvb2tzIGFuZCBwbHVnaW5zIHRoZXkgY2FuIHVzZSIsIioiOiJLZXkgaXMgcGF0aCBvZiBkZG9jLCB2YWx1ZSBpcyBhIGxpc3Qgb2YgcGx1Z2lucyBhdmFpbGFibGUgZm9yIHRoZSBkZG9j4oCZcyBob29rcyJ9LGNvdWNoYm94X3BsdWdpbnM6e19fOiJ7Q0J9I2NvdWNoYm94LXBsdWdpbnMiLCIiOiJDb3VjaGJveCBwbHVnaW5zIGNvbmZpZyIsIioiOiJLZXlzIGlzIGEgcGx1Z2luIG5hbWUsIHZhbHVlIGlzIEpTT04gcGx1Z2luIGNvbmZpZyJ9fX0sJGFib3V0OntMX1BITzoiUGhvdG9uIHZlcnNpb24iLExfUEhPQUREOiJQaG90b24gYWRkb25zIixMX1BIT0xJQlM6IlBob3RvbiBsaWJzIixMX1BIT0ZPTlRTOiJGb250cyB1c2VkIixMX1ZFUjoiQ291Y2hEQiB2ZXJzaW9uIixMX1ZFTkRPUjoiVmVuZG9yIixMX1VSTDoiTm9kZSBVUkwiLExfQ09VQ0g6IldlbGNvbWUgbXNnIixMX0ZFQVQ6IkF1eCBmZWF0dXJlcyIsTF9DTFVTVEVSOiJDbHVzdGVyIixUWFRfQ0xVU1RFUjpmdW5jdGlvbih4KXtyZXR1cm4geCsoeCUxMD09MSYmeCUxMDAhPTExPyIgbm9kZSI6IiBub2RlcyIpfSxMX1BFUkY6IlBlcmZvcm1hbmNlIixMX1BFUkZURVNUOiJSdW4gdGVzdC4uLiIsTF9HSVRIVUI6IlBob3RvbiBhdCBHaXRodWIiLExfU09VUkNFUzoiU291cmNlIGNvZGUiLExfREw6IkRvd25sb2FkIFBob3RvbiBhcHAganNvbi4uLiIsTF9ETF9MSU5LOiJDbGljayB0byBkb3dubG9hZCIsTF9ETFBSRVA6IlByZXBhcmluZyBqc29uLi4uIixMX0NIRUNLX1VQREFURVM6IkNoZWNrIGZvciB1cGRhdGVzIixUWFRfVVBEOidOZXcgdmVyc2lvbiBmb3VuZC4gTG9jYWwgdmVyc2lvbiBpcyA8bm9iciBjbGFzcz0iYm9sZGVyIj57MX08L25vYnI+LCBsYXRlc3QgaXMgPG5vYnIgY2xhc3M9ImJvbGRlciI+ezJ9PC9ub2JyPi4gezN9ICcsVFhUX1VQRF9GRUFUVVJFUzonPHVsIGNsYXNzPSJmczkwIG10OCBtYjEyIiBzdHlsZT0ibWF4LWhlaWdodDozNTBweDtvdmVyZmxvdy15OnNjcm9sbDsiPnsxfTwvdWw+JyxNU0dfVVBEX05PTkVFRDoiTm8gdXBkYXRlIG5lZWRlZCIsQlROX1VQREFURToiVXBkYXRlIFBob3RvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixFUlJfVVBEQVRFX0NIRUNLOiJGYWlsZWQgcmVhZGluZyBuZXcgdmVyc2lvbiwgc29ycnkiLEVSUl9VUERBVEU6IkZhaWxlZCB1cGRhdGluZyBQaG90b24uIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9IixNU0dfVVBEQVRFX09LOiJQaG90b24gd2FzIHVwZGF0ZWQsIHBsZWFzZSByZWxvYWQgdGhlIHBhZ2UiLFNfVElUTEU6IkN1c3RvbWl6ZSBQaG90b24iLFNfUkVQTzoiVXBkYXRlIHJlcG8gVVJMIixTX1VQRDoiVXBkYXRlIHJlbWluZGVyIixUQUdfVVBEOnt0YWdzOltbe05ldmVyOiJubyJ9XV0sZW1wdHk6eyJUaW1lIHRvIHRpbWUiOiJyZW1pbmQifX0sU19QSU5HOiJQaW5nIC9fc2Vzc2lvbiIsVEFHX1BJTkc6e3RhZ3M6W1t7IkV2ZXJ5IG1pbiI6IjEifSx7IkV2ZXJ5IDXigIltaW4iOiI1In1dXSxlbXB0eTp7TmV2ZXI6IjAifX0sU19TQ1JPTEw6IlNjcm9sbGJhcnMiLFRBR19TQ1JPTEw6e3RhZ3M6W1t7IkhvdmVyIHNsaW0iOiIzIn0seyJTbGltICYgYnJpc2siOiI0In1dXSxlbXB0eTp7TmF0aXZlOiIwIn19LFNfRkZBTUlMWToiVUkgZm9udCBmYW1pbHkiLFNfRldFSUdIVDoiRm9udCB3ZWlnaHQiLFRBR19GV0VJR0hUOnt0YWdzOlt7VGhpbjoiMzAwIn1dLGVtcHR5OntOb3JtYWw6IjQwMCJ9fSxTX0ZDRkFNSUxZOiI8Y29kZT5Db2RlPC9jb2RlPiBmb250IGZhbWlseSIsU19QT0xMOiJUYXNrIHBvbGwgaW50ZXJ2YWwiLFNfU1RBVFNfUE9MTDoiU3RhdHMgcG9sbCBpbnRlcnZhbCIsU19JQ09OOiJCcm93c2VyIHRhYiBpY29uIixTX0NPTFM6IkRCIGxpc3QgY29sdW1ucyIsVEFHX0NPTFM6W3siREIgc2l6ZSI6ImluZm8ifSx7IkFDTCBpbmZvIjoic2VjdXJpdHkifV0sU19USEVNRToiVUkgdGhlbWUiLFRBR19USEVNRTp7dGFnczpbW3tEYXJrOiJkYXJrIn0seyJNYXRjaCBicm93c2VyIjoiYXV0byJ9XV0sZW1wdHk6e0xpZ2h0OiIifX0sU19HUk9VUDoiREIgZ3JvdXBzIixUQUdfR1JPVVA6e3RhZ3M6W1t7MTA6InRpbnkifSx7MzA6InNtYWxsIn0sezEwMDoibm9ybWFsIn0sezI1MDoibGFyZ2UifV0sW3tQcmVmaXhlZDoiYXV0byJ9XV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCKIn0sQlROX0lDT046IlVwbG9hZCBuZXcgaWNvbuKApiIsQlROX0lDT05fUkVTRVQ6IlJlc2V0IGljb24iLEJUTl9BUFBMWToiQXBwbHkifSwkdmlldzp7TVNHX0xPQURJTkc6IkxvYWRpbmcuLi4iLE9QVF9BTExET0NTOiJBbGwgZG9jdW1lbnRzIixPUFRfRERPQ1M6IkRlc2lnbiBkb2N1bWVudHMiLE9QVF9DSEFOR0VTOiJDaGFuZ2VzIGZlZWQiLE9QVF9MT0NBTDoiTG9jYWwgZG9jdW1lbnRzIixPUFRfTVFSSUVTOiJMb2NhbCBNYW5nbyBxdWVyaWVzIixPUFRfTUlORElDRVM6Ik1hbmdvIGluZGljZXMiLFRYVF9GUk9NOiJmcm9tIixQTENfU1RBUlRLRVk6IlN0YXJ0IGtleSBvciBfc2tpcCIsVElQX1NISUZUX01JTlVTOiJTaGlmdCBmcmFtZSBiYWNrd2FyZCIsVElQX1NISUZUX1BMVVM6IlNoaWZ0IGZyYW1lIGZvcndhcmQiLFRJUF9DTEVBUl9GSUxURVI6IkNsZWFyIHN0YXJ0a2V5IixUSVBfVVA6Ik9wZW4gezF9IGRvYyBsaXN0XG5pbiBuZXcgdGFiIixUSVBfUkVMT0FEOiJSZWxvYWQiLEJUTl9ORVdET0M6Ik5ldyBkb2PCoCIsQlROX05FV0RPQ19QT1BVUDoiTmV3IGRvYy4uLiIsQlROX05FV1VTRVJfRExHOiJOZXcgdXNlci4uLiIsQlROX0NPUFlET0NTOiJDb3B5L2R1bXAuLi4iLEJUTl9ERUwwOiJEZWwuLi4iLEJUTl9ERUxET0NTOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jczwvc3Bhbj4uLi4nLEJUTl9ERUwxRE9DOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jPC9zcGFuPi4uLicsQlROX0FDTDoiQUNMLi4uIixCVE5fQ09NUEFDVDoiQ29tcGFjdOKApiIsQlROX0NBTkNFTDoiQ2FuY2VsIixUSVBfQ0xPU0VKU09OOiJDbG9zZSBKU09OIixUSVBfQUREQ09MOiJBZGQgY29sdW1uIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9ERFNUQVRTOic8c3Bhbj5JbmRleCBkYXRhOsKgezJ9PC9zcGFuPiA8c3BhbiBjbGFzcz0ibWwxNSI+SW5kZXggZGlzayBzaXplOsKgezF9PC9zcGFuPicsRVJSX0dFVFZJRVdTOiJGYWlsZWQgcmVhZGluZyBsaXN0IG9mIHZpZXcgZnVuY3Rpb25zIGZvciB7MX0gREIuIixFUlJfR0VUQUNMOiJGYWlsZWQgcmVhZGluZyBzZWN1cml0eSBvYmplY3QiLFRYVF9NQVBWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14fHxhPyJ7MX0gb2YgezJ9IHJvdyIuYXNzaWduKHgsYSkrKDEhPWE/InMiOiIiKToiTm8gcm93cyI7cmV0dXJuIHgmJmEmJm51bGwhPWImJihjPSdGb3VuZCA8c3BhbiBjbGFzcz0idmlldy1mb3VuZCBwbDMgcHIzIj4nK2IrIjwvc3Bhbj4gcm93IisoMSE9Yj8icyI6IiIpKSxjfSxCVE5fVklFV0NPREU6IkNvZGUiLEJUTl9WSUVXQ09ERV9HTTonPHNwYW4gY2xhc3M9ImZpLXBlbmNpbCBmczk1Ij48L3NwYW4+JyxUSVBfVklFV0NPREU6IkVkaXQgdmlldyBzb3VyY2UgY29kZSIsTVNHX1NUQVJUX0NIQU5HRToiU3RhcnRpbmcgZnJvbSBrZXkgezF9IixFUlJfTk9UQVVTRVI6Ik5vdCBhIHVzZXIiLFRYVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9VTlNFTEVDVDoiVW5zZWxlY3QgezF9IixUWFRfVU5TRUxFQ1RfT0Y6IlVuc2VsZWN0IHsxfSBvZiB7Mn0iLFRYVF9TRUxFQ1RfQUxMOiJhbGwiLFRYVF9TRUxFQ1RfRklMVEVSOiJmaWx0ZXJlZCIsVElQX0FOQ0hPUjoiT3BlbiBhcyBhIEpTT04gaW4gbmV3IGJyb3dzZXIgdGFiIixUQUdfUkVEVUNFOnt0YWdzOltbeyJHcm91cCBub25lIjoiMCJ9LHsi4oCJTDHigIkiOiIxIn0seyLigIlMMuKAiSI6IjIifSx7IuKAiUwz4oCJIjoiMyJ9LHsi4oCJTDTigIkiOiI0In0seyLigIlMNeKAiSI6IjUifSx7RXhhY3Q6Ijk5In1dXSxlbXB0eTp7Ik5vIHJlZHVjZSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUQUdfV0lUSERPQ1M6e3RhZ3M6W3siSW5jbHVkZSBkb2NzIjoiZG9jcyJ9XSxlbXB0eTp7IlJldnMgb25seSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUWFRfREVMX1RJVExFOiJCdWxrIGRlbGV0ZSBkb2NzIixUWFRfREVMX1dBUk46ZnVuY3Rpb24oeCxhKXtyZXR1cm4iWW91IGFyZSBnb2luZyB0byBkZWxldGUgIit4KyIgZG9jIisoeD4xPyJzIjoiIikrIiBmcm9tIHRoZSDigJgiK2ErIuKAmSBEQi4ifSxUWFRfREVMX1dBUk5fSElEREVOOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIk9ubHkgIithKyIgZG9jIisoYT4xPyJzIjoiIikrIiBvZiAiK3grIiBzZWxlY3RlZCAiKygxPT1hPyJpcyI6ImFyZSIpKyIgdmlzaWJsZSBpbiBjdXJyZW50IHNjb3BlLCBiZSBjYXJlZnVsLiJ9LEJUTl9ERUxfU1RBUlQ6IlByb2NlZWQiLExCTF9ERUxfQUxMOiJEZWwgZG9jcyBhbmQgdGhlaXIgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jcyBhcyBkZWxldGVkLCBidXQgcmV0YWluIGNvbnRlbnQiLExCTF9ERUxfUFVSR0U6IlB1cmdlIGRvY3MgY29tcGxldGVseSIsTVNHX0RFTF9PSzpmdW5jdGlvbih4LGEsYixjKXt2YXIgZD0iIGZyb20gdGhlIOKAmCIrYisi4oCZIERCIjtyZXR1cm4gYT09eD9kPSJTdWNjZXNzZnVsbHkgIisoInB1cmdlIiE9Yz8iZGVsZXRlZCAiOiJwdXJnZWQgIikrYSsiIGRvYyIrKGE+MT8icyI6IiIpK2Q6KGQ9IkRlbGV0ZWQgIithKyIgZG9jIisoYT4xPyJzIjoiIikrZCsiLCBidXQgZmFpbGVkIHRvIGRlbGV0ZSAiKyh4LWEpKyIgZG9jIisoeC1hPjE/InMiOiIiKSsiLiAiLGQrPSJQb3NzaWJseSwgZGVsZXRpb24gd2FzIGRlbmllZCBieSB2YWxpZGF0ZSBmdW5jdGlvbiwgb3IgZG9jIisoeC1hPjE/InMgd2VyZSI6IiB3YXMiKSsiIGFscmVhZHkgZGVsZXRlZC4gIixkKz0iU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiksZH0sTVNHX0RFTF9GQUlMOiJGYWlsZWQgZGVsZXRpbmcgZG9jc+KAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7MX06IHsyfeKAmSJ9LCRkYnM6e1RJUF9SRUxPQUQ6IlJlbG9hZCBEQiBsaXN0IixCVE5fTkVXREI6Ik5ldyBEQi4uLiIsQlROX0NPTVBBQ1Q6IkNvbXBhY3QuLi4iLEJUTl9ERUxEQjoiRGVsZXRlLi4uIixCVE5fTE9HUzoiTG9nc+KAiSIsQlROX1NUQVRTOiJTdGF0c+KAiSIsQlROX0NBTkNFTDoiQ2FuY2VsIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9EQlNWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz0iIjtyZXR1cm4gYz14fHxhP3g9PWE/eCsiIERCIisoYT4xPyJzIjoiIik6eD4xZTR8fGE+MWU0PyJ7MX0gLyB7Mn0iLmFzc2lnbih4LGEpOng+OTkmJmE+OTl8fHg+OTk5fHxhPjk5OT8iezF9IG9mIHsyfSIuYXNzaWduKHgsYSk6InsxfSBvZiB7Mn0gREIiLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gREJzIixiJiYoYys9IiAiK2IpLGN9LFRYVF9UQVNLVklFVzpmdW5jdGlvbih4LGEpe3JldHVybiB4fHxhPyh4PT1hPyJ7MX0gdGFzayI6InsxfSBvZiB7Mn0gdGFzayIpLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gdGFza3MifSxUSVBfREJTSVpFOiJEYXRhOiB7MX1cbkRpc2s6IHsyfSIsTVNHX05FV0RCX1NUQVJUOiJDcmVhdGVkIG5ldyBEQiDigJh7MX3igJkiLE1TR19ORVdEQl9GQUlMOiJGYWlsZWQgY3JlYXRpbmcgREIg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfTkVXREJfTk9BQ0w6IkRCIOKAmHsxfeKAmSBjcmVhdGVkLCBidXQgc2V0dGluZyBzZWN1cml0eSBjb25maWcgZmFpbGVkLCBzbyBEQiBpcyBwdWJsaWMuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIixUWFRfU0VMRUNUOiJTZWxlY3QgezF9IixUWFRfVU5TRUxFQ1Q6IlVuc2VsZWN0IHsxfSIsVFhUX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1NFTEVDVF9GSUxURVI6ImZpbHRlcmVkIixIX0RPQ1M6IkRvY3MiLEhfREVMRE9DUzoiRGVsZXRlZCIsSF9TRVE6IlNlcSIsSF9TSVpFOiJEaXNrIixUSVBfRE9DX0lORk86IlNob3cgREIgaW5mbyIsVElQX0JUTl9BQ0w6IkVkaXQgREIgYWNjZXNzIGNvbnRyb2wgbGlzdCIsVElQX0JUTl9TVEFSOiJBZGQvcmVtb3ZlIHRvIGZhdm9yaXRlcywgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgbGlzdCIsVElQX0JUTl9JTkZPOiJTaG93IERCIGluZm8gSlNPTiIsVElQX0NMT1NFSlNPTjoiQ2xvc2UgSlNPTiIsVFhUX0RCSU5GT19MT0FEOiJMb2FkaW5nLi4uIixFUlJfREJJTkZPOiJFcnJvciByZWFkaW5nIERCIGluZm8iLFRYVF9UQVNLX1RJVExFOiJUYXNrcyIsVEFHU19UQVNLX1RZUEU6e3RhZ3M6W1t7QWN0aXZlOiJhY3RpdmUifV0sW3tTeW5jOiJyZXBsaWNhdGlvbiJ9LHtDb21wYWN0aW9uOiJjb21wYWN0aW9uIn1dXSxlbXB0eTp7IuKAiUFsbOKAiSI6IiJ9fSxUSVBfVEFTS19SRUxPQUQ6IlJlbG9hZCB0YXNrcyIsQlROX1RBU0tfTkVXU1lOQzoiU3luYy9kdW1wLi4uIixCVE5fVEFTS19CQUNLVVA6IlN5bmMvZHVtcC4uLiIsQlROX1RBU0tfUkVTWU5DOiJSZXN0YXJ0Li4uIixUWFRfVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9UX1VOU0VMRUNUOiJVbnNlbGVjdCB7MX0iLFRYVF9UX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1RfU0VMRUNUX0ZJTFRFUjoiZmlsdGVyZWQiLFRYVF9UQVNLX1JFU1lOQ19USVRMRToiUmVzdGFydCByZXBsaWNhdGlvbnMiLFRYVF9UQVNLX1JFU1lOQ19XQVJOOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4nWW91IGFyZSBnb2luZyB0byByZXN0YXJ0IDxzcGFuIGNsYXNzPSJib2xkZXIiPicreCsiPC9zcGFuPiBzeW5jIHRhc2siKyh4PjE/InMiOiIiKSsiLiBUYXNrIGRvYyIrKHg+MT8icyI6IiIpKyIgaW4gIitiKyIgREIgd2lsbCBiZSBkZWxldGVkLCBhbmQgdGhlbiByZS1jcmVhdGVkLiJ9LEJUTl9UQVNLX1BST0NFRUQ6IlByb2NlZWQiLE1TR19UQVNLX1JFU1lOQzoiU3luYyBkb2NzIGRlbGV0ZWQsIHRhc2tzIHN0b3BwZWQuIFRyeWluZyB0byByZXN0YXJ0IHN5bmMgdGFza3MuLi4iLE1TR19UQVNLX1JFU1lOQ19PSzoiU3luYyB0YXNrcyByZXN0YXJ0ZWQiLEVSUl9UQVNLX1JFU1lOQzoiRXJyb3IgcmVzdGFydGluZyBzeW5jIHRhc2tzLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsQlROX1RBU0tfU1RPUDoiUmVtb3ZlLi4uIixUWFRfVEFTS19TVE9QX1RJVExFOiJTdG9wL3JlbW92ZSByZXBsaWNhdGlvbiB0YXNrcyIsVFhUX1RBU0tfU1RPUF9XQVJOOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14K2EsZD0nWW91IGFyZSBnb2luZyB0byBzdG9wIGFuZCByZW1vdmUgPHNwYW4gY2xhc3M9ImJvbGRlciI+JytjKyI8L3NwYW4+IHN5bmMgdGFzayIrKGM+MT8icyI6IiIpKyIuICI7cmV0dXJuIHg+MCYmKGQ9ZCsiVGFzayBkb2MiKyh4PjE/InMiOiIiKSsiIGluICIrYisiIERCIHdpbGwgYmUgZGVsZXRlZC4iKSxkfSxNU0dfVEFTS19TVE9QOiJTeW5jIGRvY3MgZGVsZXRlZCwgdGFza3Mgc3RvcHBlZCIsRVJSX1RBU0tfU1RPUDoiRXJyb3Igc3RvcHBpbmcgdGFza3MsIHNlcnZlciByZXNwb25kZWQgezF9In0sJGZpbGU6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiU2F2ZSBmaWxlICIsQlROX1NBVkVBUzoiU2F2ZSBhcy4uLiIsQlROX0RFTDoiRGVsZXRlLi4uIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19TQVZFOiJGaWxlIHsxfSB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkIGludG8gezJ9IixFUlJfU0FWRToiRXJyb3Igc2F2aW5nIGZpbGUgezF9IGludG8gaXRzIGRvYywgc2VydmVyIHJlc3BvbmRlZCB7Mn0ifSwkZG9jOntUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiwqBTYXZlwqAiLEJUTl9TQVZFQVM6IkNsb25lLi4uIixCVE5fREVMOiJEZWwuLi4iLEJUTl9ESUZGOiJEaWZm4oCJIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLFRYVF9ISVNUX1RJVExFOiJIaXN0b3J5IixUWFRfSElTVF9FTVBUWToiQ2hhbmdlcyBoaXN0b3J5IGlzIGVtcHR5IixCVE5fSElTVF9DTEVBUjoiQ2xlYXIiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLE1TR19TQVZFOiJEb2MgezF9IHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQgd2l0aCByZXZpc2lvbiB7Mn0iLEVSUl9TQVZFOiJFcnJvciBzYXZpbmcgZG9jLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsRVJSX1NBVkVMT0FEOiJEb2Mgd2FzIHNhdmVkLCBob3dldmVyIGxvYWRpbmcgaXQgYWZ0ZXIgc2F2ZSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9IixNU0dfRURTOiJUaGVyZSBhcmUgYWN0aXZlIGVkaXRvcnMgY29udGFpbmluZyBub3QgeWV0IGFwcGxpZWQgY2hhbmdlcy4iLEJUTl9FRFNfWUVTOiJBcHBseSBjaGFuZ2VzIGFuZCBzYXZlwqAiLEJUTl9FRFNfTk86IkRpc2NhcmQgYW5kIHNhdmXCoCIsTVNHX0NPTkZMSUNUOic8ZGl2IGNsYXNzPSJmczEzMCBsaDE1MCBtYjIgYm9sZGVyIG9yYW5nZSI+Q29uZmxpY3Q8L2Rpdj5Db25mbGljdCBzYXZpbmcgZG9jIOKAmHsxfeKAmSA8YnI+PHNwYW4gY2xhc3M9ImRpYiB3MTQwIj5Zb3VyIHJldjogPC9zcGFuPjxub2JyPnsyfTwvbm9icj4gPGJyPjxzcGFuIGNsYXNzPSJkaWIgdzE0MCI+REIgcmV2OiAgIDwvc3Bhbj48bm9icj57M308L25vYnI+LicsQlROX0NPTkZMSUNUX1lFUzoiT3ZlcndyaXRlIERCIGRvYyIsQlROX0NPTkZMSUNUX05POiJDYW5jZWwgc2F2ZSIsTVNHX0NPTkZMSUNUX0NBTkNFTExFRDoiQ2FuY2VsbGVkLCBkb2Mgd2FzIG5vdCBzYXZlZCIsTVNHX0NPTkZMSUNUX0xPQURGQUlMOiJGYWlsZWQgbG9hZGluZyBjb25mbGljdGluZyByZXZpc2lvbiwgZG9jIGNhbiBub3QgYmUgc2F2ZWQiLFRYVF9ERUxfVElUTEU6IkRlbGV0ZSBkb2MiLFRYVF9ERUxfVElUTEVfQ09ORkxJQ1Q6IkRlbGV0ZSBkb2MgY29uZmxpY3QiLFRYVF9ERUxfV0FSTjoiWW91IGFyZSBnb2luZyB0byBkZWxldGUgZG9jIDxub2JyPuKAmHsxfeKAmTwvbm9icj4gZnJvbSB0aGUg4oCYezJ94oCZIERCLiIsQlROX0RFTF9TVEFSVDoiUHJvY2VlZCIsVFhUX0RFTF9OT0RFTDoiTm90ZSwgdGhhdCB0aGUgZG9jIGhhcyBjb25mbGljdCByZXZpc2lvbnMsIGFuZCBvbmUgb2YgdGhlbSBwcm9iYWJseSBiZWNvbWUgYWN0aXZlIGFmdGVyIGRlbGV0aW9uLiIsVFhUX0RFTF9DT05GTElDVDoiTm90ZSwgdGhhdCB5b3UgYXJlIGRlbGV0aW5nIGNvbmZsaWN0IHJldmlzaW9uLCBpdCB3aWxsIG5vdCBhZmZlY3QgYWN0aXZlIHZlcnNpb24gb2YgdGhlIGRvYy4iLExCTF9ERUxfQUxMOiJEZWwgZG9jIGFuZCBpdHMgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jIGFzIGRlbGV0ZWQsIGJ1dCByZXRhaW4gY29udGVudCIsTEJMX0RFTF9QVVJHRToiUHVyZ2UgZG9jIGNvbXBsZXRlbHkiLE1TR19ERUxfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIGRvYyDigJh7MX3igJkgZnJvbSB0aGUg4oCYezJ94oCZIERCIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBkb2Mg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfREVMX1JFTE9BRDoiVXBkYXRlZCBsYXRlc3QgYWN0aXZlIHJldmlzaW9uIG9mIHRoZSBkb2MiLE1TR19ERUxfUkVMT0FEX0ZBSUw6IkZhaWxlZCByZWFkaW5nIGFjdGl2ZSByZXYgb2YgZG9jIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LCRlcnJvcjp7VFhUX0VSUjonPGRpdiBjbGFzcz0icmVkIHRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+RXJyb3Igc3dpdGNoaW5nIDxpPnsxfTwvaT48YnI+PHNwYW4gY2xhc3M9ImJvbGRlciI+ezJ9PC9zcGFuPjwvZGl2PicsQlROX1JFVFJZOic8c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBvNjAiPjwvc3Bhbj7CoFRyeSBhZ2FpbsKgJyxCVE5fQVVUSDonPHNwYW4gY2xhc3M9ImZpLXRvcnNvIG82MCI+PC9zcGFuPiBMb2cgaW4gJyxUWFRfQzNfQUxMX0RCU180MDE6JzxkaXYgY2xhc3M9InRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+U29ycnksIENvdWNoREIgMyBoaWRlcyBmdWxsIGxpc3Qgb2YgREJzIGZyb20gbm9uLWFkbWluIHVzZXJzLiBUbyBuYXZpZ2F0ZSB0aHJvdWdoIERCcyBzZWxlY3QgYSBEQiB5b3UgdmlzaXRlZCByZWNlbnRseSAoaWYgYW55KSwgb3IgZW50ZXIga25vd24gREIgbmFtZS48L2Rpdj4nLFBMQ19EQk5BTUU6IkVudGVyIGV4aXN0aW5nIERCIG5hbWUiLEJUTl9HTzoiT3BlbiBEQiJ9fX0sQmFzZToiIixBbGw6e30sR3JvdXBzOnt9LFRhYnM6W10sVHlwZXM6W10sSGlzdG9yeTpbXSxEb3dubG9hZFVSTDohMSxSZXBsaWNhdG9yREI6IiIsaXNDbHVzdGVyOiEwLGlzSUU6ITEsaU9TOiExLGlzV2ViS2l0OiExLGlzTWFjOiEwLGNhblppcDpudWxsLENvdWNoOnt2ZXJzaW9uOiIiLHE6MCxuOjAscG9ydDo1OTg0fSxVc2Vyczp7X3NlcTowfSxNZW1iZXJzaGlwOnt9LFBhbmVsSGVpZ2h0OjAsaXNCYXI6ITEsZGF0YTp7cGF0aDpbXSxuYW1lOiIifSxwYXJhbXM6e3Jlc3R5bGU6MTYsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5kYXRhLGEuQ2ZnKSxjPSQuRGVmZXJyZWQoKSxkPXdpbmRvdy5ERE9DLGU9d2luZG93LmxvY2F0aW9uLGY9d2luZG93Lm5hdmlnYXRvcixnPU9iamVjdC5rZXlzKGEpLmZpbHRlcigvXlwkLyk7YS5fY29tcGlsZWQ9YS5fY29tcGlsZWR8fCEoY3cuQ1d8fCJib29sZWFuIj09dHlwZW9mIGN3LmRlYnVnKSxPYmplY3Qua2V5cyhhLkYpLmZvckVhY2goeD0+YVt4XT1hW3hdfHxhLkZbeF0uYmluZChhKSksYS5TZXNzaW9uPWEuU2Vzc2lvbi5kZWJvdW5jZSgxZTMpLGEuVHlwZXM9Zy5zbGljZSgwKSxhLmlzSUU9ISFmLnVzZXJBZ2VudC5tYXRjaCgvRWRnZXxUcmlkZW50LyksYS5pc01hYz0vTWFjLy50ZXN0KGYucGxhdGZvcm0rIiIpLGEuaU9TPS9eKGlQYWR8aVBob25lKSQvLnRlc3QoZi5wbGF0Zm9ybSsiIil8fGEuaXNNYWMmJmYubWF4VG91Y2hQb2ludHM+MSxhLmlzV2ViS2l0PSFhLmlzSUUmJi9BcHBsZVdlYktpdC8udGVzdChmLnVzZXJBZ2VudCsiIiksYS5Mcz1hLkxzKCksYS5McygiVGFza3MuU3RhcnMiKSYmKGEuTHMoIkRCcy5TdGFycyIsYS5McygiVGFza3MuU3RhcnMiKSksYS5McygiVGFza3MuU3RhcnMiLG51bGwpKSxhLkJhc2V8fChhLkJhc2U9ZD9kLl9iYXNlOltlLnByb3RvY29sLCIiLGUuaG9zdCwiIl0uY29tcGFjdCgpLmpvaW4oIi8iKSksYS5fY29tcGlsZWQmJi9eV2luLy50ZXN0KGYucGxhdGZvcm0rIiIpJiYkKCIjc2Nyb2xsYmFyLXR3ZWFrIikudGV4dChbIiB7d2lkdGg6NHB4OyBoZWlnaHQ6NHB4O30iLCItdGh1bWIge2JhY2tncm91bmQ6cmdiYSg5MCw5MCw5MCwwLjIpOyBib3JkZXItcmFkaXVzOjJweDt9IiwiLXRyYWNrIHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Il0ubWFwKHg9PiI6Oi13ZWJraXQtc2Nyb2xsYmFyIit4KS5qb2luKCJcbiIpKSx4Lmh0bWwoYS5IVE1MKSxPYmplY3Qua2V5cyhhLkVkKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuRWRbeF0uaWQmJihhLkVkW3hdPSQuZXh0ZW5kKCEwLCQubXkuY2FjaGUoYS5FZFt4XS5pZCl8fHt9LGEuRWRbeF0se1BobzphLlBob30pKX0pO3ZhciBoPWEuRWQuanNvbnRyZWU7JC5leHRlbmQoITAsaC4kZmlsZXMudWkseyIuaWtleSI6aC4kbXVsdGkudWlbIi5pa2V5Il0sIi5idG4tanNvbiI6aC4kbXVsdGkudWlbIi5idG4tanNvbiJdfSksWyJIaXN0b3J5IiwiSFRNTC5IaXN0b3J5Um93IiwiRXh0RWQuTm9kZVVwZGF0ZWQiLCJFeHRFZC5FZGl0b3JJbnZva2VkIiwic3R5bGUuICIsImNtZFVuZG8iLCJ1aS4jZG9jLWhpc3RvcnkiLCJ1aS4jc3R5bGUtaGlzdG9yeSIsInVpLiNlbXB0eS1oaXN0b3J5IiwidWkuI2J0bi1oaXN0b3J5LXVuZG8iLCJzdHlsZS4gI2RvYy1oaXN0b3J5Il0uZm9yRWFjaChmdW5jdGlvbih4KXtjdy5saWIudW5tYXNrKGEuJGNvbmZpZyxjdy5saWIuZ2V0cmVmKGEuJGRvYyx4KSx4KX0pLGEuJHN0YXRzPSQuZXh0ZW5kKCEwLHt9LCQubXkuY2FjaGUoYS4kc3RhdHMuaWQpfHx7fSxhLiRzdGF0cyk7dmFyIGk9WyJUYWIiLCJMb2dpbiIsIkxvZ291dCIsIlJlcUpTT04iLCJDb21wYWN0IiwiTmV3REIiLCJEZWxEQiIsIlNlY09iaiIsIlVzZXJEb2MiLCJNYW5nb0VkIiwiVmlld0VkIiwiSW5kZXhFZCIsIlN5bmNUYXNrIiwiU3luY1Rhc2suRHVtcFppcCIsIlN5bmNUYXNrLlVuZHVtcCJdLmFkZChnKSxqPVsiaXNJRSIsImlPUyIsImlzV2ViS2l0IiwiUGhvIiwiUmVxIiwidHJ1bmMiLCJwMnUiLCJTZWwyU2Nyb2xsIiwibmljZVNjcm9sbCIsInNlbGVjdDIiXTtpZihpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9Y3cubGliLmdldHJlZihhLHgpO2ImJihiLmxhbmcmJiQuZXh0ZW5kKGIubGFuZyxhLmxhbmdbeF18fHt9KSxqLmZvckVhY2goZnVuY3Rpb24oeCl7Ylt4XT1hW3hdfSksYi5CdXN5PWEuRi5CdXN5KX0pLGEuajJoPWEuRWQuanNvbnRyZWUuajJoLHgub24oInRhYmNsb3NlLm15IiwoeCxiKT0+YS5DbG9zZShiKSksYS5fY29tcGlsZWQpe3ZhciBrPWEuTHMoIlRhYkNsb3NlSGlzdG9yeSIpO2lmKGsmJmsubGVuZ3RoKWlmKERhdGUubm93KCkta1swXS5zdGFtcDwzZTQpYS5UYWJzPU9iamVjdC5jbG9uZShrWzBdLnRhYnMsITApO2Vsc2V7dmFyIGw9W107ay5mb3JFYWNoKGZ1bmN0aW9uKHgpe0RhdGUubm93KCkteC5zdGFtcD4xNTU1MmU2fHxsLmxlbmd0aDx4LnRhYnMubGVuZ3RoJiYobD14LnRhYnMpfSksbC5sZW5ndGgmJihhLlRhYnM9T2JqZWN0LmNsb25lKGtbMF0udGFicywhMCkpfXZhciBtPWEuTHMoIkNmZyIpO209T2JqZWN0LmlzT2JqZWN0KG0pP206e30sJC5leHRlbmQoITAsYS5DZmcsbSksJC5leHRlbmQoYS5DZmcsT2JqZWN0LnNlbGVjdChtfHx7fSxbImxpc3RDb2xzIiwiZ3JvdXBpbmciXSkpLCInUFQgTW9ubyciPT1hLkNmZy5mb250Q29kZSYmKGEuQ2ZnLmZvbnRDb2RlPSJDb3VzaW5lIiksIidQVCBNb25vJyI9PWEuQ2ZnLmZvbnQmJihhLkNmZy5mb250PSJDb3VzaW5lIiksYS5DZmcudGFiQmFyPSJhdXRvIiwkLm5pY2VzY3JvbGwub3B0aW9ucy5tb3VzZXNjcm9sbHN0ZXA9MjUqYS5DZmcuc2Nyb2xsU3BlZWQtNSwkLmV4dGVuZChhLkNmZyxkJiZkLnNldHRpbmdzP2Quc2V0dGluZ3M6e30pfXJldHVybiBiPWEuQ2ZnLHgudGhlbihmdW5jdGlvbigpe2EuX2NvbXBpbGVkfHwoY3cubG9nKCJQaG90b24gc3RhcnRlZCBpbiBDbG91ZFdhbGwiKSx4Lm9uKCJjbGljay5teSIsImEiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5hdHRyKCJocmVmIik7aWYoIiMiPT1iWzBdKXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9eIytcLz8vLCIiKSkuc3BsaXQoIi8iKS5jb21wYWN0KCEwKTtyZXR1cm4gYS5Td2l0Y2goYyksITF9fSkpLGEuX2NvbXBpbGVkJiYoIWZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGIoKXt2YXIgeD0oZS5oYXNoKyIiKS5yZXBsYWNlKC9eIysvLCIiKS5zcGxpdCgiLyIpLm1hcChkZWNvZGVVUklDb21wb25lbnQpOyJfZGVzaWduIj09eFsxXSYmKHhbMl09Il9kZXNpZ24vIit4WzJdLHgucmVtb3ZlQXQoMSkpLGEuU3dpdGNoKHgpfSQod2luZG93KS5vbigiaGFzaGNoYW5nZS5waG8iLGIuZGVib3VuY2UoMWUzLzYwKzMpKSxudWxsIT14JiYoZS5oYXNoPXgrIiIpLCQod2luZG93KS50cmlnZ2VyKCJoYXNoY2hhbmdlIil9KCksJCgnbGlua1tyZWw9Imljb24iXScpLmF0dHIoImhyZWYiLGIuaWNvbnx8YS5maWxlc1siZmF2aWNvbi5wbmciXS51cmwpLHdpbmRvdy5vbmJlZm9yZXVubG9hZD1mdW5jdGlvbih4KXtpZihhLlRhYnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNoMCE9eC5oYXNoMX0pKXt2YXIgYj1hLmxhbmcuRExHX1VOTE9BRDt4LnJldHVyblZhbHVlPWJ9cmV0dXJuIGJ9LCQod2luZG93KS5vbigidW5sb2FkIixmdW5jdGlvbigpe3ZhciB4PU9iamVjdC5jbG9uZShhLlRhYnMsITApLGI9YS5McygiVGFiQ2xvc2VIaXN0b3J5Iil8fFtdO2IudW5zaGlmdCh7c3RhbXA6RGF0ZS5ub3coKSx0YWJzOngubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJ1bj0hMSx4LmVycm9yPSExLHguaGFzaDA9eC5oYXNoMT0iIix4fSl9KSxhLkxzKCJUYWJDbG9zZUhpc3RvcnkiLGIudG8oMykpfSksYS5VcGRhdGVyLmRlYm91bmNlKDFlMykoKSxhLnBpbmdTZXNzaW9uLmV2ZXJ5KDFlNCkpLGEubXkucmVzdHlsZSgpfS5kZWJvdW5jZSgxMCkpLGEuR2V0TGlzdCgpLmFsd2F5cyhmdW5jdGlvbigpe2MucmVzb2x2ZSgpfSksYy5wcm9taXNlKCl9LHVpOnsiI2wtcm9vdCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4LmF0dHIoInRpdGxlIixhLmxhbmcuVElQX1JPT1QpLHgub24oImRibGNsaWNrLm15IixmdW5jdGlvbigpe3JldHVybiBhLkNsb3NlQWxsLmRlbGF5KDUwKSwhMX0pfSxiaW5kOmZ1bmN0aW9uKHgpe3JldHVyblt0aGlzLlNWRy5sb2dvLCc8c3BhbiBjbGFzcz0ibm9iYXIgcGw4IGZzMTE1IHcyMjAgbncgb2ggZWxsIGxoMTgwIj4nLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiPC9zcGFuPiJdLmpvaW4oIiIpfX0sIiNidG4tYXNpZGUtYXV0aCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jdy5tZSgpLGU9Yy5pc0JhcixmPSIiO2lmKGIuYXR0cigidGl0bGUiLGQ/Yy5sYW5nLlRJUF9QUk9GSUxFOmMubGFuZy5USVBfTE9HSU4pLGY9JzxzcGFuIGlkPSJidG4tYXV0aC1wb3B1cCI+ezF9PC9zcGFuPicuYXNzaWduKGQ/Yy5TVkcudXNlcjpjLlNWRy5sb2dpbiksbnVsbD09YSlyZXR1cm4gZjtpZihiLmRhdGEoIm1vZGFsIikpYi5tb2RhbCghMCk7ZWxzZSBpZihkKXsoY3cubWUoInJvbGVzIil8fFtdKS5sZW5ndGg7dmFyIGc9Yy5pc0Jhcj8yNTA6Yy5teS5maW5kKCIjbC1oZWFkZXIiKS53aWR0aCgpLTQyO2MubXkubW9kYWwoIiNidG4tYXNpZGUtYXV0aCIse2JvdW5kOjUsbWFuaWZlc3Q6Yy5Mb2dvdXQsd2lkdGg6Zyxub3NlOmU/InRvcCI6ImJvdHRvbSIsYWxpZ246InsxfTtyaWdodDotNDRweDsiLmFzc2lnbihlPyJ0b3A6ODclIjoiYm90dG9tOjExNyUiKSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiExLHo6MTk5Nn0pfWVsc2UgYy5teS5tb2RhbCgiI2J0bi1hc2lkZS1hdXRoIix7bWFuaWZlc3Q6Yy5Mb2dpbixib3VuZDoyLHdpZHRoOjMyMCxjbG9zZTohMSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiEwLGdsb2JhbDohMCx6OjNlMyxjc3M6InAyMCBwdDE1IHhncmF5In0pO3JldHVybiBmfSxldmVudHM6ImNsaWNrLm15IixsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJnRoaXMubXkuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpfX19LCIjYnRuLWFzaWRlLWNvbmZpZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX0NPTkZJRyksJzxhIGhyZWY9IiNfY29uZmlnIj4nK3RoaXMuU1ZHLmNvbmZpZysiPC9hPiJ9fSwiI2J0bi1hc2lkZS1zaGFyZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX1NIQVJFKSwnPGEgaHJlZj0iI19hYm91dCI+Jyt0aGlzLlNWRy5zaGFyZSsiPC9hPiJ9LGV2ZW50czoiY2xpY2subXkifSwiI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuZmluZCgiI2wtYXBwdGFicyAubC10YWIuYWN0aXZlICNidG4tdGFiY2xvc2UiKS50cmlnZ2VyKCJjbGljay5teSIpfSxldmVudHM6ImNsaWNrLm15In0sIiNidG4tY2xvc2UtYWxsLXRhYnMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJnRoaXMuQ2xvc2VBbGwuZGVsYXkoNTAsITApLHRoaXMubGFuZy5CVE5fWEFMTH0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiNsLWFwcHRhYnMiOntpbml0OmZ1bmN0aW9uKHgpe3guc29ydGFibGUoe2Rpc3RhbmNlOjV9KX0sZGVsYXk6MSxtZXJnZTohMSxpZDpbImlkIl0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gubmFtZSx4LmFjdGl2ZSx4LmVycm9yLHguaGFzaDAseC5oYXNoMV0pfSxsaXN0Oic8ZGl2IGNsYXNzPSJsLXRhYiI+PC9kaXY+JyxiaW5kOiJ0aGlzLlRhYnMiLG1hbmlmZXN0OiJ0aGlzLlRhYiJ9fSxzdHlsZTp7IiAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxkPWEuQ2ZnLGU9YjwoYz8xMzgwOjE1MTApPzE1OjE2LGY9ZS0xLjgsZz1kLmZvbnRXZWlnaHQsaD0iJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxVYnVudHUsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLHNhbnMtc2VyaWYiOyJhdXRvIiE9ZC5mb250JiYoaD1kLmZvbnQrIixzYW5zLXNlcmlmIik7dmFyIGk9IkNvdXNpbmUsdWktbW9ub3NwYWNlLE1vbmFjbyxDb25zb2xhcyxtb25vc3BhY2UiOyJhdXRvIiE9ZC5mb250Q29kZSYmKGk9ZC5mb250Q29kZSsiLHVpLW1vbm9zcGFjZSxtb25vc3BhY2UiKTt2YXIgaj0iZm9udC1mYW1pbHk6ICIraCsiO2ZvbnQtd2VpZ2h0OnsyfTsiLGs9aisiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiO2EuX2NvbXBpbGVkJiYoJCgiYm9keSIpLmNzcyh7ImZvbnQtZmFtaWx5IjpoLCJmb250LXdlaWdodCI6Z30pLCQoIiNjdy1ib2R5IikuY3NzKHsiZm9udC1mYW1pbHkiOmgsImZvbnQtd2VpZ2h0IjpnfSkpO3ZhciBsPSJmb250LXdlaWdodDp7MX0haW1wb3J0YW50OyIuYXNzaWduKCgrZysxMDApLmNsYW1wKDQwMCw2MDApKTtyZXR1cm4gYS5fY29tcGlsZWQmJiQoIiNjdy1ub3RlcyIpLmNzcyh7dG9wOmM/IjUwcHgiOiIxOHB4In0pLHsiIjprLmFzc2lnbihlLGcpKyJsaW5lLWhlaWdodDoxLjZlbTsiLCIgLnBsc2hpbSI6Yj4oYz8xMjcwOjE2MDApPyJwYWRkaW5nLWxlZnQ6MTZweDsiOiIiLCIgYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEiOmouYXNzaWduKCItIixnKSwiIC5Db2RlTWlycm9yLCAucHJlIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsgZm9udC1mYW1pbHk6ezJ9IWltcG9ydGFudDsiLmFzc2lnbihmLGkpLCIgY29kZSI6ImZvbnQtZmFtaWx5OnsxfSFpbXBvcnRhbnQ7Ii5hc3NpZ24oaSksIiAuanNvbmRpZmZwYXRjaC1kZWx0YSwgLmpzb25kaWZmcGF0Y2gtZGVsdGEgcHJlIjoiZm9udC1mYW1pbHk6ezF9IWltcG9ydGFudDsiLmFzc2lnbihpKSwiICNkaWZmLmpzb25kaWZmIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiLmFzc2lnbihmKSwiIC5ib2xkZXIsIC5sLXRhYi5hY3RpdmUgYSI6bCwiICN2aWV3LXBhbmVsIC5qdmFsLWtleSwgI3ZpZXctcGFuZWwgLmp2YWwtYnJhY2tldCI6bCwiICN2aWV3LXJlc3VsdHMgaW5wdXQ6Y2hlY2tlZCtkaXYsICNkYi1saXN0IGlucHV0OmNoZWNrZWQrZGl2IjpsLCIgI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7IiI6Yz8iZGlzcGxheTpub25lIjoicmlnaHQ6MDt0b3A6MDt6LWluZGV4OjE5OTY7IiwiICI6ImNvbG9yOnJnYmEoMTU4LDE4NCwyMzAsMC4zKTsgdHJhbnNpdGlvbjogY29sb3IgMC42czsgZm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OjI0cHg7IHdpZHRoOjI0cHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwiOmhvdmVyIjoiY29sb3I6cmdiYSgyNTUsMzAsNjQsMC41KTsifX19LCIgLnhwYW5lbCI6eyIiOiJib3JkZXItcmFkaXVzOjJweCAycHggMCAwOyBoZWlnaHQ6MzFweDsiLCIgLnhidXR0b24iOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7IGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjJweDsiLCIgLm15LXRhZ3MiOnsiIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWFyZ2luLXRvcDogMnB4OyBsaW5lLWhlaWdodDoyMHB4OyAiLCIgLnRhZyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyAiLCIgLnRhZy5hY3RpdmUiOiJiYWNrZ3JvdW5kLWNvbG9yOiNkM2RhZTA7Y29sb3I6ICM0ZDVhNmE7In19LCIgLmJnLXBncmF5IjoiYmFja2dyb3VuZC1jb2xvcjojZTNlOWVjOyIsIiBidXR0b24sIC5idXR0b24iOiJwYWRkaW5nOjAuM2VtIDAuNmVtIDAuNGVtIDAuNmVtIiwiIC5ub2N3bWluIjoiZGlzcGxheTpub25lIWltcG9ydGFudCIsIiAubm90YXAiOiItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7IiwiIC5teS1tb2RhbC1vdmVybGF5IjoiYm94LXNoYWRvdzogMnB4IDNweCAyMnB4IC03cHggcmdiYSgxMCwgMjAsIDI5LCAwLjgpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7IiwiIC5kaWYiOiJkaXNwbGF5OmlubGluZS1mbGV4OyIsIiAudzExcCI6IndpZHRoOjExJTsiLCIgLncxMnAiOiJ3aWR0aDoxMiU7IiwiIC53MThwIjoid2lkdGg6MTglOyIsIiAudzAiOiJ3aWR0aDowcHg7IiwiIC53NDIiOiJ3aWR0aDo0MnB4OyIsIiAudzJlbSI6IndpZHRoOjJlbTsiLCIgLm13MTAwcCI6Im1heC13aWR0aDoxMDAlOyIsIiAubXc5NXAiOiJtYXgtd2lkdGg6OTUlOyIsIiAuYm9sZGVyIjoiZm9udC13ZWlnaHQ6Ym9sZGVyOyIsIiAubGlnaHRlciI6ImZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IiwiIC5saDE0MGkiOiJsaW5lLWhlaWdodDoxLjRlbSFpbXBvcnRhbnQ7IiwiIC50cmFucyI6InBvaW50ZXItZXZlbnRzOm5vbmU7IiwiIC5wYWJjIjoicG9zaXRpb246YWJzb2x1dGU7IiwiIC5wcmVsIjoicG9zaXRpb246cmVsYXRpdmU7IiwiIC53YmEiOiJ3b3JkLWJyZWFrOmJyZWFrLWFsbDsiLCIgLnduIjoid2hpdGUtc3BhY2U6bm9ybWFsOyB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzOyIsIiAub3hoIjoib3ZlcmZsb3cteDpoaWRkZW47IiwiIC50dzEwMCI6InRyYW5zaXRpb246d2lkdGggMC4xcyIsIiAudHc1MDAiOiJ0cmFuc2l0aW9uOndpZHRoIDAuNXMiLCIgLmJ4dG9wIjoiYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4OyIsIiAuYnh0b3AtMzEiOnsiOmFmdGVyIjonYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O3RvcDozMXB4OyBsZWZ0OjA7IHdpZHRoOmNhbGMoMTAwJSAtIDJweCk7IGhlaWdodDpjYWxjKDEwMCUgLSAzMnB4KTtwb2ludGVyLWV2ZW50czpub25lOyB6LWluZGV4OjM7IGNvbnRlbnQ6IiAiOyBwb3NpdGlvbjphYnNvbHV0ZTsgJ30sIiBzZWN0aW9uIjoib3V0bGluZTogbm9uZTsiLCIgLmFkb3duLCAuYXJpZ2h0IjpbImZvbnQtc2l6ZTo1MCU7IGxpbmUtaGVpZ2h0OjFlbTsgZm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDsgIiwidmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsiLCJwYWRkaW5nOjAgMCAxcHggM3B4OyBvcGFjaXR5OjAuMzsgIl0sIiAuYXJpZ2h0OmFmdGVyIjonY29udGVudDoi4pa277iOIjsnLCIgLmFkb3duOmFmdGVyIjonY29udGVudDoi4pa8IjsnLCIgLm15LXRhZ3MuYnV0dG9ucyI6eyIgLnRhZyI6ImJvcmRlci1yYWRpdXM6MDsgYm9yZGVyOiAxcHggc29saWQgI2UzZTVlNzsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnM7bWFyZ2luLWxlZnQ6LTFweDtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmhvdmVyIjoiY29sb3I6IzI3YTsiLCIgLnRhZy5hY3RpdmUiOiJib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6I2UzZTVlNztjb2xvcjp3aGl0ZTtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmZpcnN0LWNoaWxkIjoiYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTNlNWU3OyIsIiAudGFnOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwOyIsIiAudGFnOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjNweDsifSwiIGRpdi5teS1tb2RhbCI6ImJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjgsIDIzMiwgMC41NSk7IiwiIC5teS1tb2RhbC5tb2RhbC1idXN5Ijp7IjphZnRlciI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6LTFweDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDo1O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjYpOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIC03cHg7JywiLm5vc2UtdG9wOmJlZm9yZSI6InotaW5kZXg6NjsifSwiIC5wcmUiOiJ3aGl0ZS1zcGFjZTpwcmUtd3JhcDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3ciOiJib3JkZXItcmFkaXVzOjA7IiwiICNsLWJvYXJkIjp7IiAiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LndpZHRoKCksYz14LnBhcmVudCgpLmhhc0NsYXNzKCJteS1tb2RhbC1mb3JtIiksZD0od2luZG93LmlubmVySGVpZ2h0LyhjPzEuMzoxKXwwKSsicHgiLGU9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxmPWU/MDoxMjYrYi8xMHwwO3JldHVybnsiIjplP1sid2lkdGg6MTAwJTsgcGFkZGluZzowOyBvdmVyZmxvdzpoaWRkZW47IixhLl9jb21waWxlZD8iaGVpZ2h0OmNhbGMoIitkKyIgLSAzMnB4KTsiOiJoZWlnaHQ6Y2FsYygiK2QrIiAtIDcwcHgpOyJdLmpvaW4oIiIpOlsiZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6Y2FsYygxMDAlIC0gezF9cHgpOyIuYXNzaWduKGYpLGEuX2NvbXBpbGVkPyJoZWlnaHQ6IitkKyI7IjoiaGVpZ2h0OmNhbGMoIitkKyIgLSAzOHB4KTsiXS5qb2luKCIiKSwiICNsLXBpdm90LXJiIjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyByaWdodDowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IiwiIC53MTI4MHBsdXMiOmItZjwxMjgwPyJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyI6IiIsIiAudzEyMDBwbHVzIjpiLWY8MTIwMD8iZGlzcGxheTpub25lIWltcG9ydGFudDsiOiIifX19LCIgI2wtYXBwcyI6eyIiOiJtaW4td2lkdGg6MTAyMHB4OyBtYXJnaW46MCBhdXRvOyBtYXgtd2lkdGg6MTAwJTsiLCIgLmwtYXBwIjp7IiI6Im9wYWNpdHk6MTsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IiwiICI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSEoeC53aWR0aCgpPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxjPWEuX2NvbXBpbGVkLGQ9eC5wYXJlbnQoKS5oYXNDbGFzcygibXktbW9kYWwtZm9ybSIpLGU9KHdpbmRvdy5pbm5lckhlaWdodC8oZD8xLjM6MSl8MCktKGM/MDozMikrKGI/MDozMiksZj0iaGVpZ2h0OmNhbGMoIisoZSsicHgiKSsiIC0gIjtyZXR1cm4gYS5QYW5lbEhlaWdodD1lLTg0LGEuaXNCYXI9Yix7IiAuYXBwaGVpZ2h0IjpmKyIzMnB4KTsiLCIgLnBhbmVsaGVpZ2h0IjpmKyI4NHB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQiOmYrIjg4cHgpOyIsIiAucGFuZWxoZWlnaHQtOCI6ZisiOTJweCk7IiwiIC5wYW5lbGhlaWdodC0xNiI6ZisiMTAwcHgpOyIsIiAucGFuZWxoZWlnaHQtMzIiOmYrIjExNnB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQ4IjpmKyIxMzJweCk7IiwiIC5wYW5lbGhlaWdodC02MyI6ZisiMTQ3cHgpOyIsIiAucGFuZWxoZWlnaHQtNjQiOmYrIjE0OHB4KTsifX0sIiAuYXBwLWhlYWQiOnsiIjoiZGlzcGxheTpibG9jaztoZWlnaHQ6NTJweDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTsiLCIgYnV0dG9uLCAuYnV0dG9uLCAudGFnLmJ0biI6ImhlaWdodDoyZW07cGFkZGluZy10b3A6MC4yZW07cGFkZGluZy1ib3R0b206NHB4O2xpbmUtaGVpZ2h0OjE5cHg7dGV4dC1hbGlnbjpjZW50ZXI7In0sIi5hcHAtYnVzeSI6Im9wYWNpdHk6MC41O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyIsIiAuZmVhdGhlciI6eyI6YmVmb3JlIjp7IiI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTtoZWlnaHQ6MTVweDsgcG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDEpLCByZ2JhKDI1NSwyNTUsMjU1LDApKTt6LWluZGV4OjE5OTA7J30sIjphZnRlciI6eyIiOidjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6Y2FsYygxMDAlIC0gMTJweCk7aGVpZ2h0OjE1cHg7YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyNTUsMjU1LDI1NSwxKSwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7ei1pbmRleDoxOTkwOyd9fX0sIiAuYXBwLWJ1c3k6YWZ0ZXIiOidjb250ZW50OiIgIjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6KzE5OTM7IHdpZHRoOjEwMCU7IGhlaWdodDoxMTAlOyB0b3A6MDsgbGVmdDowOyd9LCIgLmNvbC1qc29uIjp7IiI6InBhZGRpbmc6MCAwIDAgNnB4IWltcG9ydGFudDt3b3JkLXdyYXA6bm9ybWFsOyIsIiAuQ29kZU1pcnJvciI6ImJhY2tncm91bmQ6bm9uZTtmb250LXNpemU6OTUlIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjNlbSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtdHJpbSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtZWQiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsiLCI+ZGl2LmNvbC1lZC1jbG9zZSI6eyIiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246cmlnaHQ7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowOyByaWdodDo1cHg7IHdpZHRoOjk1JSFpbXBvcnRhbnQ7IGhlaWdodDoyMXB4OyB6LWluZGV4OjU7dHJhbnNpdGlvbjpjb2xvciAwLjVzOyBjb2xvcjpyZ2JhKDQxLDEwOSwxNjYsMC43NSk7IiwiOmhvdmVyIjoiY29sb3I6IzEyYTVkYzsifX0sIiAuanZhbC10cmltIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzoxcHggMnB4O2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOnJnYmEoMjEzLCA0OCwgODksIDAuNjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MywgMTA3LCAxOTIsIDAuMDcpOyIsIiAuanZhbC1zaG9ydCI6ImNvbG9yOnJnYmEoODgsMTAxLDEyMywwLjYzKTsiLCIgLmp2YWwta2V5IjoibWFyZ2luLWxlZnQ6MnB4OyBjb2xvcjojNGQ1YTZhOyIsIiAuanZhbC1icmFja2V0Ky5qdmFsLWtleSI6Im1hcmdpbi1sZWZ0OjBweDsiLCIgLmp2YWwtYnJhY2tldCI6ImNvbG9yOiAjODE5NWM1OyIsIiAuanZhbC1zaW1wbGUiOiJjb2xvcjpyZ2JhKDUyLCAxNDMsIDI3LCAwLjc4KTsiLCIgLmp2YWwtdW5kZWZpbmVkIjoiY29sb3I6cmdiYSgxMTcsMTI4LDEzOCwwLjQxKTsiLCIgLmp2YWwtc3RyaW5nIjoiY29sb3I6IzNiNWU4NTsiLCIgLmp2YWwtbnVtYmVyIjoiY29sb3I6IzViOTgwOCIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVyIjoid2hpdGUtc3BhY2U6bm93cmFwOyIsIiAuQ29kZU1pcnJvci1ndXR0ZXJzIjoiYmFja2dyb3VuZDp3aGl0ZTt4Ym9yZGVyLXJpZ2h0Om5vbmU7IiwiIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5Db2RlTWlycm9yIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsiLCIgLkNvZGVNaXJyb3IgLmNtLW1hdGNoaGlnaGxpZ2h0IjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MiwyNTUsMiwwLjM3KTsgYm94LXNoYWRvdzpub25lOyBib3JkZXItcmFkaXVzOiAxcHg7IiwiIC5Db2RlTWlycm9yIC5jbS1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDIzMiwxMjEsMC43NSkhaW1wb3J0YW50OyBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNTUsMjMyLDEyMSwwLjc1KSFpbXBvcnRhbnQ7IiwiICAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9ImJvb2xlYW4iPT10eXBlb2YgYS5pc0ZGP2EuaXNGRjphLmlzRkY9L0ZpcmVmb3gvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR8fCIiKSxkPWEuQ2ZnLGU9ZC50YWJCYXIsZj0hKGI+PTE0MjAmJiJ0b3AiIT1lKSxnPWQudGhlbWUsaD14LnBhcmVudCgpLmhhc0NsYXNzKCJteS1tb2RhbC1mb3JtIiksaT0od2luZG93LmlubmVySGVpZ2h0LyhoPzEuMzoxKXwwKS0oYS5fY29tcGlsZWQ/MDozMiksaj17aGVpZ2h0OmEuX2NvbXBpbGVkPyIxMDB2aCI6aSsicHgiLGh0YWI6Zj8zMjppPDY1MD8zNDppPDcwMD8zNjppPDgwMD8zODo0MCx3dGFiOmY/MDoxMjYrYi8xMHwwfSxrPSguNTUqKGItai53dGFiKXwwKS00MC0yLTMzODtyZXR1cm57IiAjZGItbGlzdCAudmlldy1yb3ciOmMmJiFhLmlzTWFjPyJ3aWR0aDp7MX1weDsiLmFzc2lnbihrKzMzOCk6bnVsbCwiICNkYi1wYW5lbCI6eyIgI2RiLWxpc3QgLnZpZXctcm93Ijp7fX0sIiAjbC1oZWFkZXIiOnsiIjpmP1sid2lkdGg6MTAwJTtoZWlnaHQ6MzJweDtvdmVyZmxvdzpoaWRkZW47IiwiYmFja2dyb3VuZC1zaXplOiAycHggMzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsiLGcrIiImJmEuX2NvbXBpbGVkPyJiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZDZkY2U4LCAjZjJmOGZmKTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhNWFiYjE7IjoiYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzBjMTkzMiwgIzRiNjI3Yyk7Il0uam9pbigiIik6WyJiYWNrZ3JvdW5kLWNvbG9yOiAjMWUzNTUzOyB3aWR0aDp7d3RhYn1weDsgaGVpZ2h0OntoZWlnaHR9OyIsIm92ZXJmbG93OmhpZGRlbjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiXS5qb2luKCIiKS5hc3NpZ24oaiksIiAjbC10YWJzICI6Im1heC13aWR0aDoxMDAlOyIsIiAubm9iYXIiOmY/ImRpc3BsYXk6bm9uZTsiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyIsIiAjbC10YWJzIjp7IiI6Zj8ibWluLXdpZHRoOjEwMjBweDsgbWFyZ2luOjAgYXV0bzsiOiJ3aWR0aDoxMDAlOyBoZWlnaHQ6e2hlaWdodH07Ii5hc3NpZ24oaiksIiAudWktc29ydGFibGUtaGVscGVyIjpmPyJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAyLDEyMCwxNTIsMC44KTtib3JkZXItbGVmdDoxcHggc29saWQgIzllYTZiMDsiOnsiOmJlZm9yZSI6Wydjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrOyB3aWR0aDp7Mn1weDsgaGVpZ2h0OnsxfXB4OycuYXNzaWduKGouaHRhYixqLnd0YWItMTApLCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MiwyNDYsMjU1LDAuMik7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjVweDsiLCJib3JkZXItcmFkaXVzOiAzcHg7Il0uam9pbigiIil9LCIgLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyKy5sLXRhYiI6Zj8iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICM5ZWE2YjA7IjoiIiwiIC50YWItYnVzeTphZnRlciI6Zj9bJ2NvbnRlbnQ6IiAiOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb24teTogLTJweDsnLCJwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjJweDsgYm90dG9tOjA7IGxlZnQ6MDsgei1pbmRleDorMTk4MDsgb3ZlcmZsb3c6aGlkZGVuOyJdLmpvaW4oIiIpOlsnY29udGVudDoiICI7IGJhY2tncm91bmQtaW1hZ2U6IHVybChpL2xvYWRlci1iYXIyLmdpZik7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAtMXB4OycsInBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDp7MX1weDsgaGVpZ2h0OjJweDsgdG9wOjNweDsgbGVmdDoycHg7IHotaW5kZXg6KzE5ODA7IG92ZXJmbG93OmhpZGRlbjsiLmFzc2lnbihqLmh0YWItNiksInRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDsiXS5qb2luKCIiKX0sIiAjbC1yb290dGFiIjp7IiI6Zj8id2lkdGg6IDcycHg7Ijoid2lkdGg6IHt3dGFifXB4OyBoZWlnaHQ6NThweDtsaW5lLWhlaWdodDozN3B4O292ZXJmbG93OmhpZGRlbjsiLmFzc2lnbihqKSwiICNsLXJvb3QiOiJkaXNwbGF5OmJsb2NrOyIrKGY/IndpZHRoOiA3MnB4OyBwYWRkaW5nOjNweCAxMHB4IDAgMjBweDsgIjoid2lkdGg6IHt3dGFifXB4OyBwYWRkaW5nOjEzcHggMCAwIDEwcHg7IGhlaWdodDo1OHB4OyIuYXNzaWduKGopKSwiLmwtdGFiIjpmPyIiOiJib3JkZXItdG9wOm5vbmU7IiwiLmwtdGFiOmJlZm9yZSI6Zj8iIjoiZGlzcGxheTpub25lOyJ9LCIgI2wtYXBwdGFicyI6Zj8id2lkdGg6Y2FsYygxMDAlIC0gNzJweCAtIDk2cHgpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsiOiJ3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjNGY2NDgxOyBwYWRkaW5nLXRvcDo1cHg7IGhlaWdodDp7MX1weDsiLmFzc2lnbihpLTk0KSwiIC5sLXRhYiI6eyIiOmY/WyJsaW5lLWhlaWdodDoyOXB4OyBoZWlnaHQ6MzJweDsgbWluLXdpZHRoOjcycHg7IG1heC13aWR0aDozMDBweDsgdHJhbnNpdGlvbjp3aWR0aCAwLjJzOyIsImJvcmRlci1yaWdodDoxcHggc29saWQgIzllYTZiMDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyIsImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG92ZXJmbG93OmhpZGRlbiA7Il0uam9pbigiIik6WyJsaW5lLWhlaWdodDp7Mn1weDsgaGVpZ2h0OnsxfXB4OyIuYXNzaWduKGouaHRhYixqLmh0YWItMyksImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7Il0uam9pbigiIiksIiAiOmY/IndpZHRoOmNhbGMoMTAwJSAvICIrKGEuVGFicy5sZW5ndGh8fDEpKyIpOyI6IndpZHRoOjEwMCU7IiwiICNidG4tdGFiY2xvc2UiOiJjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpub25lOyIrKGY/ImNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7IjoiY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsiKSwiICNsLXRhYnN0YXRlIjp7IiI6ImNvbG9yOnJnYmEoMTMxLDE5OCwyNTUsMC42Mik7IiwiLmhpZGUrI2J0bi10YWJjbG9zZSI6ImRpc3BsYXk6YmxvY2s7In0sIiAubC10YWJtYXJrIjp7IiI6WyJ3aWR0aDoxNnB4O3Bvc2l0aW9uOmFic29sdXRlO2xpbmUtaGVpZ2h0OjIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwidHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCBjb2xvciAwLjNzOyIsZj8icmlnaHQ6MDsgdG9wOjA7IjoicmlnaHQ6NnB4OyB0b3A6ezF9cHg7Ii5hc3NpZ24oKGouaHRhYi0yNikvMildLmpvaW4oIiIpfSwiOmhvdmVyICI6eyIgI2wtdGFic3RhdGUiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAjYnRuLXRhYmNsb3NlIjoiZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC42KTsifSwiICNidG4tdGFiY2xvc2U6aG92ZXIiOiJjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOSk7IiwiIGEiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IGNvbG9yOndoaXRlOyBvcGFjaXR5OjAuOCFpbXBvcnRhbnQ7IiwiIGEuc3lzdGVtIjoiY29sb3I6I2Q4ZmZhNDsiLCI6aG92ZXIgYSI6Im9wYWNpdHk6MSFpbXBvcnRhbnQ7IiwiICNsLXRhYm5hbWUiOnsiIjoid2lkdGg6Y2FsYygxMDAlIC0gMTZweCk7ZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsgd2hpdGUtc3BhY2U6bm93cmFwOyIrKGY/InBhZGRpbmc6MCAwIDRweCA2cHg7IjoicGFkZGluZzowIDAgNHB4IDExcHg7IiksIi5zbWFsbGVyIjoiZm9udC1zaXplOjAuOTVlbTsifSwiOmJlZm9yZSI6Zj8iIjp7IiI6Wydjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrOyB3aWR0aDp7MX1weDsgaGVpZ2h0OjFweDsnLmFzc2lnbihqLnd0YWItMjApLCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MiwyNDUsMjU1LDAuMSk7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjEwcHg7IiwiYm9yZGVyLXJhZGl1czogMHB4OyB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzLCBoZWlnaHQgMC4wNnMsIGJvcmRlci1yYWRpdXMgMC4xcywgYmFja2dyb3VuZC1jb2xvciAwLjJzLCBsZWZ0IDAuMXM7Il0uam9pbigiIil9LCIuYWN0aXZlIjp7IiBhIjoiY29sb3I6IzAyMGUxZSFpbXBvcnRhbnQ7b3BhY2l0eTowLjghaW1wb3J0YW50OyB4Zm9udC13ZWlnaHQ6Ym9sZGVyOyIsIjpob3ZlciBhIjoib3BhY2l0eTowLjk1IWltcG9ydGFudDsiLCIiOmY/WyJiYWNrZ3JvdW5kLXNpemU6IDJweCAzMnB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsiLCJiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYTNiNWNkLCAjZDJkZWVlKTsiXS5qb2luKCIiKTp7IjpiZWZvcmUiOlsnY29udGVudDoiICI7ZGlzcGxheTpibG9jazsgd2lkdGg6ezJ9cHg7IGhlaWdodDp7MX1weDsnLmFzc2lnbihqLmh0YWIsai53dGFiLTEwKSwiYmFja2dyb3VuZC1jb2xvcjogI2M4ZDFkZSFpbXBvcnRhbnQ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjVweDsiLCJib3JkZXItcmFkaXVzOiAzcHg7Il0uam9pbigiIil9LCIgI2wtdGFic3RhdGUiOiJjb2xvcjpyZ2JhKDM3LDEzNywyMTUsMC44KTsiLCIgI2J0bi10YWJjbG9zZSI6Zj8iY29sb3I6cmdiYSgwLDE4LDQwLDAuMyk7IjoiY29sb3I6cmdiYSgwLDE3LDQwLDApOyIsIjpob3ZlciAjYnRuLXRhYmNsb3NlIjoiY29sb3I6cmdiYSgwLDE4LDQwLDAuNik7IiwiICNidG4tdGFiY2xvc2U6aG92ZXIiOiJjb2xvcjpyZ2JhKDAsMTgsNDAsMC44KTsifX0sIiAjbC1hc2lkZSI6eyIiOiJwb3NpdGlvbjphYnNvbHV0ZTsgezJ9OjA7IHJpZ2h0OjA7IHdpZHRoOnsxfXB4OyIuYXNzaWduKGY/OTY6ai53dGFiLGY/InRvcCI6ImJvdHRvbSIpKyhmPyJib3JkZXItcmlnaHQ6MXB4IHNvbGlkICM5ZWE2YjA7IjoiYm9yZGVyLXRvcDoxcHggc29saWQgIzRmNjQ4MTsiKSsid2hpdGUtc3BhY2U6bm93cmFwOyB6LWluZGV4OjI7IiwiIC5hc2lkZS1idG4iOlsid2lkdGg6ezF9cHg7IGhlaWdodDp7Mn1weDsgY3Vyc29yOnBvaW50ZXI7Ii5hc3NpZ24oZj8zMjpqLnd0YWIvNSxmPzMyOjM1KSxmPyIiOiJwYWRkaW5nOjFweCAwIDAgMDsgdGV4dC1hbGlnbjpjZW50ZXI7IixmPyJib3JkZXItbGVmdDoxcHggc29saWQgIzllYTZiMDsiOiJib3JkZXItbGVmdDoxcHggc29saWQgIzRmNjQ4MTsiLCJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBvdmVyZmxvdzpoaWRkZW47IiwidHJhbnNpdGlvbjogY29sb3IgMC4zcywgb3BhY2l0eSAwLjNzOyBjb2xvcjp3aGl0ZSFpbXBvcnRhbnQ7Iiwib3BhY2l0eTowLjchaW1wb3J0YW50OyJdLmpvaW4oIiIpLCIgLmFzaWRlLWJ0bjpob3ZlciI6Im9wYWNpdHk6MSFpbXBvcnRhbnQ7IiwiICNidG4tY2xvc2UtYWxsLXRhYnMiOnsiIjoib3BhY2l0eTowLjY7IGNvbG9yOndoaXRlOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IHdpZHRoOmNhbGMoMTAwJSAtIDMgKiB7MX1weCk7Ii5hc3NpZ24oai53dGFiLzUpLCI6aG92ZXIiOiJvcGFjaXR5OjE7In0sIiBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOndoaXRlOyIsIiBhOmhvdmVyIjoiY29sb3I6d2hpdGU7In19fX19LFBobzpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxTZXRUaXRsZTpmdW5jdGlvbih4KXt0aGlzLl9jb21waWxlZCYmJCgiaGVhZCB0aXRsZSIpLnRleHQoeCsiIil9LHAydTpmdW5jdGlvbih4LGEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgeD9iKHgsMSk6eC5tYXAoYik7ZnVuY3Rpb24gYih4LGIpe3ZhciBjPWVuY29kZVVSSUNvbXBvbmVudDtpZihhfHwxPT1ifHwyPT1iKXtpZigvXl9kZXNpZ25cLy4rJC8udGVzdCh4KSlyZXR1cm4iX2Rlc2lnbi8iK2MoeC5mcm9tKDgpKTtpZigvXl9sb2NhbFwvLiskLy50ZXN0KHgpKXJldHVybiJfbG9jYWwvIitjKHguZnJvbSg3KSl9cmV0dXJuIGMoeCl9fSxqMmg6ZnVuY3Rpb24oKXt9LG5pY2VTY3JvbGw6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pT1N8fHRoaXMuaXNNYWN8fHRoaXMuaXNXZWJLaXR8fCIwIj09dGhpcy5DZmcuc2Nyb2xsU3BlZWQ/eC5jc3MoeyJvdmVyZmxvdy15Ijp0aGlzLmlzV2ViS2l0PyJvdmVybGF5IjoiYXV0byIsIi1tcy1vdmVyZmxvdy1zdHlsZSI6Ii1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhciIsIi13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nIjoidG91Y2giLCJzY3JvbGxiYXItd2lkdGgiOiJ0aGluIiwib3ZlcmZsb3cteCI6ImhpZGRlbiJ9KTp4Lm5pY2VTY3JvbGwoYXx8e2N1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4wNyxjdXJzb3JvcGFjaXR5bWF4Oi40LHppbmRleDozfSkseH0sc2VsZWN0MjpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPXguc2VsZWN0MihhKTtyZXR1cm4gYy5pT1MmJighKGF8fHt9KS5tdWx0aXBsZSYmIShhfHx7fSkudGFnc3x8YikmJihkLm9uKCJzZWxlY3QyLW9wZW4iLGMuc2VsZWN0MmlPU2JsdXIpLGQub24oInNlbGVjdDItY2xvc2UiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChjLnNlbGVjdDJpT1NibHVyLDUwKX0pKSxkfSxzZWxlY3QyaU9TYmx1cjpmdW5jdGlvbigpeyQoIi5zZWxlY3QyLXNlYXJjaCBpbnB1dCwgOmZvY3VzLCBpbnB1dCIpLnByb3AoImZvY3VzIiwhMSkuYmx1cigpfSx0cnVuYzpmdW5jdGlvbih4LGEpe3JldHVybiB4Lmxlbmd0aD5hKzE/eC50cnVuY2F0ZShhLCJtaWRkbGUiLCLigKYiKTp4fSxkaWU6ZnVuY3Rpb24oeCl7JCh3aW5kb3cpLm9mZigiLnBobyIpLHguZmluZCgiI2wtYXBwcz5kaXYiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5teSgicmVtb3ZlIil9KX0scGluZ1Nlc3Npb246ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5sYXN0UGluZ3x8MCxiPURhdGUubm93KCksYz0oK3guQ2ZnLnBpbmdTZXNzaW9ufHwwKS5jbGFtcCgwLDFlMyk7IWN8fChiLWEpLzZlNDxjfHwoeC5sYXN0UGluZz1iLHguU2Vzc2lvbigpKX0sZGJUeXBlOntzeW5jc3RhdGU6IiIsc3RhbXA6MCxjb21taXR0ZWRfdXBkYXRlX3NlcTotMSxjb21wYWN0X3J1bm5pbmc6ITEsZGF0YV9zaXplOiIiLGRpc2tfc2l6ZTowLHNpemVzYWZlOiIiLHNpemV0aXA6IiIsZGJfbmFtZToiIixkaXNrX2Zvcm1hdF92ZXJzaW9uOiIiLGRvY19jb3VudDoiIixkb2NfZGVsX2NvdW50OiIiLGluc3RhbmNlX3N0YXJ0X3RpbWU6IiIscHVyZ2Vfc2VxOiIiLHVwZGF0ZV9zZXE6IiIsdXBkYXRlX3NlcV9zYWZlOiIiLHNlY3VyaXR5OntzdGFtcDowLHNlcTotMSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LHByb3RlY3RlZDoiIixzdGFyOiIiLGdyb3VwOiIiLHRhc2tzOntzdGFtcDowLHBpZHM6W119LHN5bmNzOntzdGFtcDowLGRvY3M6W119fSxMaWJzVXNlZDp7alF1ZXJ5OiJodHRwczovL2pxdWVyeS5jb20vIiwiJC51aSI6Imh0dHBzOi8vanF1ZXJ5dWkuY29tLyIsIiQubXkiOiJodHRwOi8vanF1ZXJ5bXkuY29tLyIsIiQudGFncyI6IiIsIiQubGlzdCI6IiIsc2VsZWN0MjoiaHR0cHM6Ly9zZWxlY3QyLmdpdGh1Yi5pby9zZWxlY3QyLyIsQ29kZU1pcnJvcjoiaHR0cHM6Ly9jb2RlbWlycm9yLm5ldC8iLG5pY2VTY3JvbGw6Imh0dHBzOi8vZ2l0aHViLmNvbS9pbnV5YWtzYS9qcXVlcnkubmljZXNjcm9sbCIsSkNyb3A6Imh0dHBzOi8vZ2l0aHViLmNvbS90YXBtb2RvL0pjcm9wIixTdWdhcjoiaHR0cHM6Ly9zdWdhcmpzLmNvbSIsUToiaHR0cHM6Ly9naXRodWIuY29tL2tyaXNrb3dhbC9xIixVUkxwb2x5ZmlsbDoiaHR0cHM6Ly9naXRodWIuY29tL3dlYmNvbXBvbmVudHMvVVJMIiwid2ViLXN0cmVhbXMtcG9seWZpbGwiOiJodHRwczovL2dpdGh1Yi5jb20vTWF0dGlhc0J1ZWxlbnMvd2ViLXN0cmVhbXMtcG9seWZpbGwiLFN0cmVhbVNhdmVyOiJodHRwczovL2dpdGh1Yi5jb20vamltbXl3YXJ0aW5nL1N0cmVhbVNhdmVyLmpzIixmZmxhdGU6Imh0dHBzOi8vZ2l0aHViLmNvbS8xMDFhcnJvd3ovZmZsYXRlIixqc29uZGlmZjoiaHR0cHM6Ly9naXRodWIuY29tL2JlbmphbWluZS9qc29uZGlmZnBhdGNoIiwiY3cubGliIjoiaHR0cHM6Ly9jbG91ZHdhbGwubWUvYXBpL2N3X2xpYiJ9LEZvbnRzVXNlZDp7Q291c2luZToiaHR0cHM6Ly93d3cuZm9udHNxdWlycmVsLmNvbS9mb250cy9jb3VzaW5lIiwiRm91bmRhdGlvbiBJY29ucyI6Imh0dHBzOi8venVyYi5jb20vcGxheWdyb3VuZC9mb3VuZGF0aW9uLWljb24tZm9udHMtMyJ9LEhUTUw6JzxkaXYgaWQ9ImJ0bi1jbG9zZS1hY3RpdmUtdGFiIiBjbGFzcz0iY3Agbm9iYXIgcGFiYyBmdzIwMCIgdGl0bGU9IkNsb3NlIHRhYiI+4pyVPC9kaXY+PGRpdiBpZD0ibC1oZWFkZXIiPjxkaXYgaWQ9ImwtdGFicyI+PGRpdiBpZD0ibC1yb290dGFiIiBjbGFzcz0ibC10YWIiPjxhIGlkPSJsLXJvb3QiIGhyZWY9IiMiIGNsYXNzPSIiPlBob3RvbjwvYT48L2Rpdj48ZGl2IGlkPSJsLWFwcHRhYnMiIGNsYXNzPSJkaWIgdmF0IG9oIj48L2Rpdj48ZGl2IGlkPSJsLWFzaWRlIj48ZGl2IGlkPSJidG4tY2xvc2UtYWxsLXRhYnMiIGNsYXNzPSJub2JhciBmdzIwMCBmczkwIHRhYyBsaDI0MCBjcCI+PC9kaXY+PGRpdiBpZD0iYnRuLWFzaWRlLWF1dGgiIGNsYXNzPSJhc2lkZS1idG4iPjwvZGl2PjxkaXYgaWQ9ImJ0bi1hc2lkZS1jb25maWciIGNsYXNzPSJhc2lkZS1idG4iPjwvZGl2PjxkaXYgaWQ9ImJ0bi1hc2lkZS1zaGFyZSIgY2xhc3M9ImFzaWRlLWJ0biI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibC1ib2FyZCI+PGRpdiBpZD0ibC1hcHBzIj48L2Rpdj48ZGl2IGlkPSJsLXBpdm90LXJiIj48L2Rpdj48L2Rpdj4nLFNWRzp7bG9nbzonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMSIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCwgMCwgMzEsIDE2Ij5cbiAgPGcgaWQ9IlBob3RvbkxvZ28iPlxuICAgICA8cGF0aCBkPSJNMTUuNSwwIEMyMC4zLDAuMCAyNC4yLDAuNiAyNy44LDEuOSBMMjguMCwxLjkgQzI5LjYsMi41IDI5LjIsMi40IDI5LjQsMi40IEwzMSwzLjEgTDMxLDE2IEwwLDE2IEwwLDMuMSBDMS43LDIuNCAxLjMsMi41IDIuNCwyLjEgTDIuOSwxLjkgQzYuNywwLjYgMTAuNiwwLjAgMTUuMSwwLjAgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkZGRkZGIiBmaWxsLW9wYWNpdHk9IjEiLz5cbiAgICAgPHBhdGggZD0iTTMwLDEyIEwzMCwxNSBMMSwxNSBMMSwxMiBMMzAsMTIgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjZDcxZDJmIi8+XG4gICAgIDxwYXRoIGQ9Ik0zLjAsMy4wIEMzLjEsMy43IDMuMiw0LjMgMy4yLDQuNiBDMy40LDUuNyAzLjksNi42IDQuNyw3LjIgQzUuNCw3LjcgNi4yLDguMCA3LjAsOC4wIEM4LjAsNy45IDExLjYsOC4wIDEzLjEsOC4wIEMxNC4wLDguMCAxNC42LDguNiAxNSw5LjUgTDE1LDExIEwxLDExIEwxLDMuOCBDMi42LDMuMSAxLjksMy40IDMuMCwzLjAgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkE0ODQ4Ii8+XG4gICAgIDxwYXRoIGQ9Ik0xNSwxIEwxNSw3LjcgQzE0LjYsNy4xIDE0LjAsNi45IDEzLjQsNi44IEM5LjUsNi44IDguNiw2LjggNy42LDYuOCBDNy40LDYuOCA3LjMsNi44IDcuMyw2LjggQzUuOCw2LjggNC40LDUuNyA0LjEsNC4wIEw0LDIuOCBDNy41LDEuNSAxMS4zLDEuMCAxNSwxIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI0ZGNjc2NyIvPlxuICAgICA8cGF0aCBkPSJNMjcuOSwzLjAgQzI3LjgsMy43IDI3LjcsNC4zIDI3LjcsNC42IEMyNy41LDUuNyAyNy4wLDYuNiAyNi4yLDcuMiBDMjUuNSw3LjcgMjQuNyw4LjAgMjMuOSw4LjAgQzIyLjksNy45IDE5LjMsOC4wIDE3LjgsOC4wIEMxNi45LDguMCAxNi4zLDguNiAxNiw5LjUgTDE2LDExIEwzMCwxMSBMMzAsMy44IEMyOC4zLDMuMSAyOS4wLDMuNCAyNy45LDMuMCB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGQTQ4NDgiLz5cbiAgICAgPHBhdGggZD0iTTE2LDEgTDE2LDcuNyBDMTYuMyw3LjEgMTYuOSw2LjkgMTcuNSw2LjggQzIxLjQsNi44IDIyLjMsNi44IDIzLjMsNi44IEMyMy41LDYuOCAyMy42LDYuOCAyMy42LDYuOCBDMjUuMSw2LjggMjYuNSw1LjcgMjYuOCw0LjAgTDI3LDIuOCBDMjMuNCwxLjUgMTkuNiwxLjAgMTYsMSB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGRjY3NjciLz5cbiAgPC9nPlxuPC9zdmc+Jyx1c2VyOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwLCAwLCAzMiwgMzIiPlxuXHQ8ZyBpZD0iYnRuLXVzZXItc3ZnIj48Zz5cbiAgICA8cGF0aCBpZD0ic3ZnLWF1dGgiIGQ9Ik0yNi4yNSwyMC42NSBMMjMuNTUsMjMuMzUgTDIxLjc1LDIxLjU1IE0yNCwxNy41IEMyMS41MSwxNy41IDE5LjUsMTkuNTEgMTkuNSwyMiBDMTkuNSwyNC40OCAyMS41MSwyNi41IDI0LDI2LjUgQzI2LjQ4LDI2LjUgMjguNSwyNC40OCAyOC41LDIyIEMyOC41LDE5LjUxIDI2LjQ4LDE3LjUgMjQsMTcuNSB6IiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgICAgc3Ryb2tlPSIjOWJkMDg5IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICAgIDxwYXRoIGQ9Ik0xOC45OSwxOC40NCBMMTYsMTcuMzYgTDE2LDE1LjMyIE0xNywyMi41IEw2LjUsMjIuNSBMNi41LDIxLjAxIEM2LjUsMjAuMDEgNy4xMSwxOS4xMSA4LjA1LDE4Ljc3IEwxMiwxNy4zNiBMMTIsMTUuMzIgTTE3Ljk0LDExLjIzIEMxNy45NCw4LjYyIDE2LjE4LDYuNSAxNCw2LjUgQzExLjgxLDYuNSAxMC4wNSw4LjYyIDEwLjA1LDExLjIzIEMxMC4wNSwxMy44NSAxMS44MSwxNS45NyAxNCwxNS45NyBDMTYuMTcsMTUuOTcgMTcuOTQsMTMuODUgMTcuOTQsMTEuMjMgeiBNMTAuMDksMTAuNDcgQzEwLjU3LDEwLjcyIDExLjA1LDEwLjg0IDExLjYyLDEwLjg0IEMxMi43NiwxMC44NCAxNC4xNCwxMC4xNyAxNC41OSw5LjMxIEMxNS4zMywxMC42MSAxNi4xOSwxMS4xMCAxNy41NCwxMC44NCBDMTcuNjcsMTAuODEgMTcuNzgsMTAuODIgMTcuOTEsMTAuODEiIGZpbGwtb3BhY2l0eT0iMCIgXG4gICAgICBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPjwvZz5cbjwvc3ZnPicsbG9naW46JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAsIDAsIDMyLCAzMiI+XG4gIDxnIGlkPSJsb2dvX2xvZ2luIj5cbiAgICA8Zz5cbiAgICAgIDxwYXRoIGQ9Ik0xNi41LDE5LjUgTDQuNSwxOS41IEw0LjUsMTAuNSBMMjcuNSwxMC41IEwyNy41LDE2LjUyIE04LjUsMTcgTDguNSwxMyBNNi44MiwxNi4wOSBMMTAuMTcsMTMuOTAgTTYuODMsMTMuODkgTDEwLjE2LDE2LjExIE0xNC41LDE3IEwxNC41LDEzIE0xMi44MiwxNi4wOSBMMTYuMTcsMTMuOTAgTTEyLjgzLDEzLjg5IEwxNi4xNiwxNi4xMSIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICAgIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICAgICAgPHBhdGggaWQ9InN2Zy11bmF1dGgiIGQ9Ik0xOC41LDE5LjgzIEwyNy41LDE5LjgzIEwyNy41LDI2LjUwIEwxOC41LDI2LjUwIHogTTIyLjk3LDIyLjU3IEwyMi45NywyNC4yNCBNMjUuNjcsMTkuODMgTDI1LjY3LDE5LjAwIEMyNS42NywxNy42MiAyNC40NiwxNi41MCAyMi45NywxNi41MCBDMjEuNDgsMTYuNTAgMjAuMjcsMTcuNjIgMjAuMjcsMTkuMDAgTDIwLjI3LDE5LjgzIE0yMy40MiwyMi4xNSBDMjMuNDIsMjEuOTIgMjMuMjIsMjEuNzQgMjIuOTcsMjEuNzQgQzIyLjcyLDIxLjc0IDIyLjUyLDIxLjkyIDIyLjUyLDIyLjE1IEMyMi41MiwyMi4zOCAyMi43MiwyMi41NyAyMi45NywyMi41NyBDMjMuMjIsMjIuNTcgMjMuNDIsMjIuMzggMjMuNDIsMjIuMTUgeiIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICAgIHN0cm9rZT0iI0ZGQzMwMDsiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gICAgPC9nPlxuICA8L2c+XG48L3N2Zz4nLGNvbmZpZzonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCwgMCwgMzIsIDMyIj5cbiAgPGcgaWQ9ImxvZ29fY2ZnIj5cbiAgICA8cGF0aCBkPSJNMTYuNDgsMTguNSBMMTYuNDgsMTEuNSBNMjIuNTEsMTYuNSBMMjIuNTEsMTguNSBNMTAuNDgsNy41IEwxMC40OCwxMi41IE0xMC40OCwxNC41IEwxMC40OCwxOC41IE0yMi41MSw3LjUgTDIyLjUxLDE0LjUgTTE2LjQ4LDcuNSBMMTYuNDgsOS41IE0yMC41MSwxNi41IEwyNC41MSwxNi41IEwyNC41MSwxNC41IEwyMC41MSwxNC41IHogTTE0LjQ4LDExLjUgTDE4LjQ4LDExLjUgTDE4LjQ4LDkuNSBMMTQuNDgsOS41IHogTTguNDgsMTQuNSBMMTIuNDgsMTQuNSBMMTIuNDgsMTIuNSBMOC40OCwxMi41IHogTTIyLjUyLDIxLjUgQzIxLjY5LDIxLjUgMjEuMDIsMjIuMTcgMjEuMDIsMjMgQzIxLjAyLDIzLjgyIDIxLjY5LDI0LjUgMjIuNTIsMjQuNSBDMjMuMzUsMjQuNSAyNC4wMiwyMy44MiAyNC4wMiwyMyBDMjQuMDIsMjIuMTcgMjMuMzUsMjEuNSAyMi41MiwyMS41IHogTTE2LjQ4LDIxLjUgQzE1LjY1LDIxLjUgMTQuOTgsMjIuMTcgMTQuOTgsMjMgQzE0Ljk4LDIzLjgyIDE1LjY1LDI0LjUgMTYuNDgsMjQuNSBDMTcuMzEsMjQuNSAxNy45OCwyMy44MiAxNy45OCwyMyBDMTcuOTgsMjIuMTcgMTcuMzEsMjEuNSAxNi40OCwyMS41IHogTTEwLjQ4LDIxLjUgQzkuNjUsMjEuNSA4Ljk4LDIyLjE3IDguOTgsMjMgQzguOTgsMjMuODIgOS42NSwyNC41IDEwLjQ4LDI0LjUgQzExLjMxLDI0LjUgMTEuOTgsMjMuODIgMTEuOTgsMjMgQzExLjk4LDIyLjE3IDExLjMxLDIxLjUgMTAuNDgsMjEuNSB6IiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz4nLHNoYXJlOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIxLCAwLCAzMywgMzIiPlxuICA8ZyBpZD0ibG9nb19zZXR0aW5ncyI+XG4gICAgPHBhdGggZD0iTTIzLjU4OSwxNi44NDcgQzI1LjQ2NywxNC45NjggMjUuODMsMTIuMTQyIDI0LjY4MSw5Ljg5OSBMMjEuNjQxLDEyLjc5OSBMMTkuMjAxLDEyLjc5OSBMMTkuMjAxLDEwLjUwMyBMMjIuMTYsNy4zMSBDMTkuOTE4LDYuMTYzIDE3LjA2Miw2LjUyNiAxNS4xODQsOC40MDMgQzEzLjMwNywxMC4yOCAxMi45MjUsMTMuMDk3IDE0LjA3MywxNS4zNDEgTDYuODg0LDIyLjUyMiBDNi4xNjcsMjMuMjM5IDYuMTYxLDI0LjQwMSA2Ljg3OSwyNS4xMTkgQzcuNTk3LDI1LjgzNyA4Ljc1NywyNS44MzcgOS40NzQsMjUuMTE5IEwxNi42NTMsMTcuOTM5IEMxOC44OTYsMTkuMDg3IDIxLjcxMiwxOC43MjMgMjMuNTg5LDE2Ljg0NyB6IE0yMy4zMzQsMTcuMjE5IEwxOS4yMDEsMTIuNzk5IE0xNi45MDUsMTIuNzk5IEwxNS41MjcsMTQuMTc2IE0xOC4wNTMsMTMuOTQ3IEwxNi42NzYsMTUuMzI0IE0xOS4yMDEsMTUuMDk1IEwxNy44MjQsMTYuNDcyIiBcbiAgICAgICAgICBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPlxuPC9zdmc+J30sRjp7TWV0cmljOmZ1bmN0aW9uKHgsYSl7aWYoIiI9PXgpcmV0dXJuIHg7YT1hfHw2O3ZhciBiPSt4fHwwO2lmKCFiKXJldHVybiAwO3ZhciBjPStiLnRvRXhwb25lbnRpYWwoKS5zcGxpdCgiZSIpWzFdO2lmKGI8KygiMWUiK2EpKXJldHVybiBiKyIiO3ZhciBkPWM+Nz8zOjIsZT1jJiZjJTMhPTI/YyUzPT0wPzI6MTowO3JldHVybiBiLm1ldHJpYyhlLGQpfSxCeXRlczpmdW5jdGlvbih4KXtpZigiIj09eClyZXR1cm4geDt2YXIgYT0reHx8MDtpZighYSlyZXR1cm4iIjt2YXIgYj0rYS50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUiKVsxXTtyZXR1cm4gYS5ieXRlcyhiJTM9PTAmJmI/MTowKX0sUG9rZUJ1Y2tldDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5SZXEoW3hdKX0sU2V0VGhlbWU6ZnVuY3Rpb24oeCl7ZnVuY3Rpb24gYSgpeyQoImJvZHkiKS5yZW1vdmVDbGFzcygoeCxhKT0+KGEubWF0Y2goLyhefFxzKXRoZW1lLVxTKy9nKXx8W10pLmpvaW4oIiAiKSl9dGhpcy5fY29tcGlsZWQmJigiYXV0byI9PXgmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/KGEoKSwkKCJib2R5IikuYWRkQ2xhc3MoInRoZW1lLWRhcmsiKSk6eD8oYSgpLCQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtIit4KSk6YSgpLCQoImJvZHkiKS50cmlnZ2VyKCJyZXNpemUiKSl9LFNlbDJTY3JvbGw6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2E/eC5maW5kKCIuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyIpLmVhY2goZnVuY3Rpb24oKXtiLm5pY2VTY3JvbGwoJCh0aGlzKSx7Ym91bmNlc2Nyb2xsOiEwLGN1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4xLGN1cnNvcm9wYWNpdHltYXg6LjQscmFpbHBhZGRpbmc6e3JpZ2h0OjF9fSl9KTp4LmZpbmQoIi5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIikuZWFjaChmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgeCYmeCgpLnJlbW92ZSgpfSl9LFNlc3Npb246ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9dGhpcy5pc0lFO3guUGhvKCJfY29tcGlsZWQiKSYmd2luZG93LkRET0MmJiQuYWpheCh7dXJsOnguQmFzZS5yZXBsYWNlKC9cLyskLywiIikrIi9fc2Vzc2lvbiIsbWV0aG9kOiJnZXQiLGRhdGFUeXBlOiJqc29uIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifSxjYWNoZTohYX0pLnRoZW4oZnVuY3Rpb24oeCl7aWYoT2JqZWN0LmlzT2JqZWN0KHgpJiZ4LnVzZXJDdHgpe3ZhciBhPXgudXNlckN0eCxiPXtuYW1lOmEubmFtZXx8IiIscm9sZXM6YS5yb2xlc3x8W119O2EubmFtZXx8KCQuZXh0ZW5kKHdpbmRvdy5ERE9DLl9tZSxiKSwkLm15LnJhZGlvKCJ1c2VyQ3R4IixiKSl9fSl9LENsb3NlQWxsOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlRhYnMucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuKHg/Yi5hY3RpdmU6IWIucGF0aC5sZW5ndGgpfHxiLmhhc2gwIT1iLmhhc2gxP2E6KGEucHVzaCh7dGFiaWQ6Yi5pZCxlbmZvcmNlOiEwLHNpbGVudDohMH0pLGEpfSxbXSk7Yi5sYXN0KCkuc2lsZW50PSExLGIubWFwKGZ1bmN0aW9uKHgpe2EuQ2xvc2UoeCl9LmxhenkoMzApKX0sQnVzeTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2EubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJhcHAtYnVzeSIseCksJC5teS5yYWRpbygiYXBwYnVzeSIse2lkOmIudGFiaWQsYnVzeTp4fSl9LFJlcTpmdW5jdGlvbih4LGEpe09iamVjdC5pc1N0cmluZzt2YXIgYj1PYmplY3QuaXNPYmplY3QsYz1PYmplY3QuaXNBcnJheSxkPXRoaXMuaXNJRSxlPWZ1bmN0aW9uKHgpe3JldHVybiJfbm9kZS9fbG9jYWwvX25vZGVzIiE9eD93aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KHgpOnh9LGY9dGhpcyxnPShmLmRhdGEsZi5DZmcpLGg9Zi5sYW5nLGk9JC5EZWZlcnJlZCgpLGo9JC5leHRlbmQoITAse21ldGhvZDoiR0VUIixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn0sY2FjaGU6IWR9LGIoeCk/eDpjKHgpP3t1cmw6eH06e3VybDp4KyIifSksaz1tKGoudXJsLGYuQmFzZSk7cmV0dXJuIGE/azooa3x8bCg0MDAsaC5FUlJfUkVRX0lOVkFMSURDQUxMKSxmLl9jb21waWxlZCYmIS9cL19zZXNzaW9uJC8udGVzdChrKSYmayE9Zi5CYXNlJiZnLnJvbGVzLmxlbmd0aCYmLTE9PWN3Lm1lKCJyb2xlcyIpLmluZGV4T2YoIl9hZG1pbiIpJiYwPT1jdy5tZSgicm9sZXMiKS5pbnRlcnNlY3QoZy5yb2xlcykubGVuZ3RoPyhjdy5tZSgpP2woNDAzLGguRVJSX1JFUV9ST0xFUkVRLHtvazohMSxyZWFzb246ImNvbmZpZyJ9KTpsKDQwMSxoLkVSUl9SRVFfQVVUSFJFUSx7b2s6ITEscmVhc29uOiJjb25maWcifSksaS5wcm9taXNlKCkpOihqLnVybD1rLCQuYWpheChqKS50aGVuKGZ1bmN0aW9uKHgsYSxiKXtpLnJlc29sdmUoeCxiKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXt2YXIgYjt0cnl7Yj1KU09OLnBhcnNlKHgucmVzcG9uc2VUZXh0KX1jYXRjaCh4KXt9T2JqZWN0LmlzT2JqZWN0KGIpfHwoYj17cmVzcG9uc2U6eC5yZXNwb25zZVRleHR9KSxiLm9rPSExO3ZhciBjPXguc3RhdHVzO2woYyxiLnJlYXNvbnx8Yi5tZXNzYWdlfHwiIixiKSxmLl9jb21waWxlZCYmY3cubWUoIm5hbWUiKSYmKDQwMT09Y3x8NDAzPT1jKSYmZi5TZXNzaW9uKCl9KSxpLnByb21pc2UoKSkpO2Z1bmN0aW9uIGwoeCxhLGIpe3ZhciBjPWlzTmFOKHgpPzUwMDoreCxkPWlzTmFOKHgpJiYhYT94OmE7ZHx8KGQ9aC5FUlJfUkVRW2NdfHxoLkVSUl9SRVFbOTk5XSksZCs9IiIsaS5yZWplY3QoYyxkLGIpfWZ1bmN0aW9uIG0oeCxhKXt2YXIgYj1bXSxjPXt9LGQ9W10sZj0iIixnPWE/KGErIiIpLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyI6IiIsaD17c3RhcnRrZXk6MSxlbmRrZXk6MSxzdGFydF9rZXk6MSxlbmRfa2V5OjEsa2V5OjF9LGk9L15fZGVzaWduXC8vO3JldHVybiJzdHJpbmciPT10eXBlb2YgeD9mPS9eaHR0cFtzXT86Ly50ZXN0KHgpP3g6Zyt4LnJlcGxhY2UoL15cLysvLCIiKTpPYmplY3QuaXNBcnJheSh4KSYmKHguZm9yRWFjaChmdW5jdGlvbih4LGEpe2lmKCIiIT09eCYmbnVsbCE9eClpZihPYmplY3QuaXNPYmplY3QoeCkpJC5leHRlbmQoITAsYyx4KTtlbHNlIGlmKGkudGVzdCh4KyIiKSl7dmFyIGQ9KHgrIiIpLnNwbGl0KCIvIik7Yi5hZGQoW2RbMF0sZC5mcm9tKDEpLmpvaW4oIi8iKV0pfWVsc2UgYi5wdXNoKGUoeCsiIikpfSksZD1PYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9Y1t4XTtyZXR1cm4oaFt4XXx8InN0cmluZyIhPXR5cGVvZiBhKSYmKGE9SlNPTi5zdHJpbmdpZnkoYSkpLGUoeCkrIj0iK2UoYSl9KSxmPWcrYi5qb2luKCIvIikrKGQubGVuZ3RoPyI/IitkLmpvaW4oIiYiKToiIikpLGZ9fSxTd2l0Y2g6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1zLGU9Yy5kYXRhLGY9Yy5UYWJzLmZpbmRJbmRleChmdW5jdGlvbih4KXtyZXR1cm4geC5hY3RpdmV9KXx8MCxnPU9iamVjdC5pc1N0cmluZyh4KT94LnJlcGxhY2UoL14jLywiIikuc3BsaXQoIi8iKS5jb21wYWN0KCEwKTpPYmplY3QuaXNBcnJheSh4KT94LnNsaWNlKDApLmNvbXBhY3QoITApOltdO2cubGVuZ3RoPjImJmcuam9pbigiLyIpLnN0YXJ0c1dpdGgoIl9ub2RlL19sb2NhbC9fbm9kZXMiKSYmKChnPWcuZnJvbSgyKSlbMF09Il9ub2RlL19sb2NhbC9fbm9kZXMiKSxbMSwyLDNdLmZvckVhY2goZnVuY3Rpb24oeCl7L15fKGRlc2lnbnxsb2NhbCkkLy50ZXN0KGdbeF0pJiYoZ1t4KzFdJiYoZ1t4KzFdPWdbeF0rIi8iK2dbeCsxXSksZy5yZW1vdmVBdCh4KSl9KTt2YXIgaCxpPWcuam9pbigiXGZmZmQiKSxqPVtdO2lmKGMuVGFicy5mb3JFYWNoKHg9PngucGF0aC5qb2luKCJcZmZmZCIpPT1pP2oucHVzaCh4KTowKSxqLmxlbmd0aD4xJiZhJiYoalswXT1qLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguaWQ9PWF9KXx8alswXSksKGg9alswXSkmJmguYWN0aXZlJiZoLnJ1bilyZXR1cm4hMTt2YXIgayxsPS9eKF9ub2RlXC9fbG9jYWxcL19ub2Rlc3xfdXNlcnN8X3JlcGxpY2F0b3J8X2Ric3xfbm9kZXN8X2dsb2JhbF9jaGFuZ2VzKSQvLnRlc3QoZ1swXSl8fC9eW2EtekEtWjAtOSRcKFwpXCtcLV1bYS16QS1aMC05JFwoXClcK1wtXC9fXC5dKiQvLnRlc3QoZ1swXSksbT0iZXJyb3IiLG49IkVycm9yIixvPWMuVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7aWYoeC5va3x8IWNbYV0ubWF0Y2gpcmV0dXJuIHg7dmFyIGI9Y1thXS5tYXRjaC5jYWxsKGMsZy5zbGljZSgwKSxsKTtyZXR1cm4gYiYmJC5leHRlbmQoeCx7b2s6ITAsdHlwZTphLnN1YnN0cigxKX0sYikseH0se29rOiExLHRpdGxlOiJFcnJvciIsdHlwZToiZXJyb3IiLHBhdGg6Z30pO2lmKG09by50eXBlLG49by50aXRsZSxrPW8uYXBwRGF0YSxnPW8ucGF0aCwiZXJyb3IiPT1tJiYoaz17ZXJyb3I6IlVucmVjb2duaXplZCBjb21tYW5kIn0pLCFoKXtpZihjLlRhYnMubGVuZ3RoPj1jLkNmZy5tYXhUYWJzJiZnLmxlbmd0aCl7dmFyIHA9Yy5UYWJzLm1hcChmdW5jdGlvbih4LGEpe3JldHVybiB4LnRzPXgudHN8fCIwMDAwMDAiKyg5OS1hKS50b1N0cmluZygzNikseH0pLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4heC5lcnJvciYmIXguYWN0aXZlJiZ4Lmhhc2gwPT14Lmhhc2gxfSkuc29ydEJ5KCJ0cyIpWzBdO2lmKCFwKXJldHVybiBjdy5saWIubm90ZShjLmxhbmcuRkFJTF9UT09fTUFOWV9UQUJTLmFzc2lnbihjLkNmZy5tYXhUYWJzKyIiKSwiZXJyb3IiKSwhMTtjLkNsb3NlKHt0YWJpZDpwLmlkLHNpbGVudDohMH0pfSEwLGg9e2lkOmN3LmxpYi5zZGJtKERhdGUubm93KCkrZyksdHlwZTptLGhhc2gwOiIiLGhhc2gxOiIiLGFjdGl2ZTohMCxuYW1lOm4scGF0aDpnLnNsaWNlKDApLGVycm9yOiJlcnJvciI9PW0scnVuOiExLHRzOkRhdGUubm93KCkudG9TdHJpbmcoMzYpfSwvXihkYnN8Y29uZmlnfGFib3V0fHN0YXRzfGxvZykkLy50ZXN0KG0pP2MuVGFicy5pbnNlcnQoaCxjLlRhYnMubGVuZ3RoJiYhYy5UYWJzWzBdLnBhdGgubGVuZ3RoPzE6MCk6MT09Zy5sZW5ndGgmJmMuVGFic1tmXS5wYXRoWzBdPT1nWzBdP2MuVGFicy5pbnNlcnQoaCxmKTpjLlRhYnMuaW5zZXJ0KGgsZisxKX1pZihjLlRhYnMuZm9yRWFjaCh4PT54IT09aD94LmFjdGl2ZT0hMTowKSxoLmFjdGl2ZT0hMCxoLnRzPURhdGUubm93KCkudG9TdHJpbmcoMzYpLGMuSGlzdG9yeS5yZW1vdmUoaC5pZCksYy5IaXN0b3J5LnB1c2goaC5pZCksYy5fY29tcGlsZWQpe3ZhciBxPWgucGF0aC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX0pLmpvaW4oIi8iKTtsb2NhdGlvbi5oYXNoLnJlcGxhY2UoL14jLywiIikhPXEmJihsb2NhdGlvbi5oYXNoPSIjIitxKX1jLlNldFRpdGxlKGgubmFtZSksZCgpLGMubXkucmVzdHlsZSgpO3ZhciByPXQobSxnLGguaWQsayk7ZnVuY3Rpb24gcygpe2MubXkucmVjYWxjKCIjbC1hcHB0YWJzIiksZS5wYXRoPU9iamVjdC5jbG9uZShnLCEwKX1mdW5jdGlvbiB0KHgsYSxkLGUpe3ZhciBmLGc9Y1siJCIreF0saD1jLm15LmZpbmQoIiNsLWFwcHM+I2FwcC0iK2QpO3JldHVybiFoLmxlbmd0aHx8IWguaXMoIi5teS1mb3JtIikmJiJlcnJvciI9PXg/KGgubGVuZ3RofHwoaD0kKCc8ZGl2IGNsYXNzPSJsLWFwcCIgaWQ9ImFwcC0nK2QrJyI+PC9kaXY+JyksYy5teS5maW5kKCIjbC1hcHBzIikuYXBwZW5kKGgpKSxjLm15LmZpbmQoIiNsLWFwcHM+LmwtYXBwIikuYWRkQ2xhc3MoImhpZGUiKSxoLnJlbW92ZUNsYXNzKCJoaWRlIiksZj1oLm15KGcsJC5leHRlbmQoe3BhdGg6YSx0YWJpZDpkfSxlfHx7fSwiZXJyb3IiPT14P3t9OmJ8fHt9KSkpOmMubXkuZmluZCgiI2wtYXBwcz4ubC1hcHAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4LmlzKGgpP3gucmVtb3ZlQ2xhc3MoImhpZGUiKTp4LmFkZENsYXNzKCJoaWRlIil9KSxmfHxofXIudGhlbiYmci50aGVuKGZ1bmN0aW9uKCl7dmFyIHg9ITE7aC5ydW49ITAsaC5oYXNoMD1oLmhhc2gxPXIubXkoIm1hbmlmZXN0IikuaGFzaCgpLGgubmFtZT1yLm15KCJtYW5pZmVzdCIpLnRpdGxlKCksYy5TZXRUaXRsZShoLm5hbWUpLHIub24oImNoYW5nZS5teSIsZnVuY3Rpb24oKXtoLmhhc2gxPXIubXkoIm1hbmlmZXN0IikuaGFzaCgpO3ZhciBhPXIubXkoIm1hbmlmZXN0IikudGl0bGUoKTtoLmhhc2gwIT1oLmhhc2gxfHxhIT1oLm5hbWU/KGgubmFtZT1hLHg9ITAsZCgpKTp4JiZkKCksaC5hY3RpdmUmJmMuU2V0VGl0bGUoaC5uYW1lKX0uZGVib3VuY2UoNTAwKSksci5vbigicmVzZXR0YWJoYXNoLm15IixmdW5jdGlvbigpe2guaGFzaDA9aC5oYXNoMT1yLm15KCJtYW5pZmVzdCIpLmhhc2goKSxoLm5hbWU9ci5teSgibWFuaWZlc3QiKS50aXRsZSgpLGQoKX0uZGVib3VuY2UoMTAwKSksZCgpfSkuZmFpbChmdW5jdGlvbih4LGIpe2MuUGhvKCJDb3VjaCIpLnZlcj49IjAwMy4iJiZjdy5tZSgpJiYhZy5sZW5ndGh8fGN3LmxpYi5ub3RlKGMubGFuZy5GQUlMX1RBQl9BUFAsImVycm9yIiksYy5teS5maW5kKCIjbC1hcHBzPiNhcHAtIithKS5yZW1vdmUoKSxoLmVycm9yPSEwLGNvbnNvbGUubG9nKHgsYiksaC5oYXNoMT1oLmhhc2gwPSJlcnJvciIsdCgiZXJyb3IiLGcsaC5pZCx7ZXJyb3I6T2JqZWN0LmlzU3RyaW5nKHgpJiZPYmplY3QuaXNTdHJpbmcoYik/eCsiICIrYjp4fSl9LmRlYm91bmNlKDEwKSl9LENsb3NlOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPSExO2lmKE9iamVjdC5pc09iamVjdCh4KT8oYT14LnRhYmlkfHwiIix4LmVuZm9yY2V8fCExLGM9eC5zaWxlbnR8fCExKTphPXgrIiIsIShiLlRhYnMubGVuZ3RoPDIpJiZhKXt2YXIgZD1iLlRhYnMuZmluZCh4PT54LmlkPT1hKTtpZihkKXt2YXIgZT1iLm15LmZpbmQoIiNsLWFwcHM+I2FwcC0iK2EpO2UubGVuZ3RoJiZlLmlzKCIubXktZm9ybSIpPyhkLmhhc2gxPWUubXkoIm1hbmlmZXN0IikuaGFzaCgpLGQuaGFzaDE9PWQuaGFzaDA/ZihlLGQpOiQubXkubW9kYWwoe21hbmlmZXN0OmIuQ29uZmlybSxkYXRhOnt5ZXM6IkNsb3NlIHRhYiZuYnNwOyIsbm86IkNhbmNlbCBjbG9zZSIsY2FuY2VsOiIiLHRleHQ6Yi5sYW5nLkRMR19VTlNBVkVELHVzZUJ1dHRvbnM6ITB9LHdpZHRoOjMwMCxjbG9zZTohMCxlc2M6ITAsZW50ZXI6ITEsY3NzOiJsaDE3MCB4Z3JheSBwMjAgcGIyNSIsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oeCl7InllcyI9PXguY21kJiZmKGUsZCl9KSk6ZyghZC5hY3RpdmUpfX1mdW5jdGlvbiBmKHgsYSl7eC5teSgicmVtb3ZlIikseC5yZW1vdmUoKSxnKCFhLmFjdGl2ZSl9ZnVuY3Rpb24gZyh4KXtpZihiLkhpc3RvcnkucmVtb3ZlKGEpLGIuVGFicy5yZW1vdmUoZCkseCljfHxiLm15LnJlY2FsYygiI2wtYXBwdGFicyIpO2Vsc2UgaWYoYi5IaXN0b3J5Lmxlbmd0aCl7Zm9yKHZhciBlLGY7Yi5IaXN0b3J5Lmxlbmd0aCYmIWU7KWY9Yi5IaXN0b3J5LnBvcCgpLGU9Yi5UYWJzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguaWQ9PWZ9KTtlfHwoZT1iLlRhYnNbMF0pLGIuU3dpdGNoKGUucGF0aCxlLmlkKX1lbHNlIGIubXkucmVjYWxjKCIjbC1hcHB0YWJzIiksYi5fY29tcGlsZWQmJndpbmRvdy5oaXN0b3J5LmJhY2soKTtjfHxiLm15LnJlc3R5bGUoKX19LEdldExpc3Q6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9KHguZGF0YSwkLkRlZmVycmVkKCkpLGI9ZW5jb2RlVVJJQ29tcG9uZW50LGM9IiIsZD1bXSxlPSJfbm9kZS9fbG9jYWwvX25vZGVzIixmPVt4LlJlcShbIl9hbGxfZGJzIl0pLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGM9T2JqZWN0LmtleXMoeC5BbGwpLGQ9YS5zbGljZSgwKTtjLnN1YnRyYWN0KGQpLmZvckVhY2goZnVuY3Rpb24oYSl7YSE9ZSYmZGVsZXRlIHguQWxsW2FdfSksZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKCF4LkFsbFthXSl7dmFyIGM9YS5lc2NhcGVIVE1MKCksZD1nKGEpLGU9YyxmPWEubGVuZ3RoLGg9MDtmPjE1JiYoaD1mLSgxNStmJTMpLGU9YS50byhmLWgpK2EuZnJvbShmLWgpLnJlcGxhY2UoLyguezN9KS9nLCIkMTx3YnI+IikpO3ZhciBpPSQuZXh0ZW5kKCEwLHtuYW1lOmEsbmFtZXNhZmU6YyxobmFtZTplLHRvb2x0aXA6ZCxocmVmOmIoYSl9LHguZGJUeXBlKTt4LkFsbFthXT0kLmV4dGVuZCghMCxpLHguQWxsW2FdfHx7fSl9fSkseC5Hcm91cERCcygpfSkudGhlbihmdW5jdGlvbigpe3guUGhvKCJDb3VjaCIpLnZlcjwiMDAzLiJ8fCFjdy5tZSgicm9sZXMiKS5maW5kKCJfYWRtaW4iKXx8KHguQWxsW2VdPXguQWxsW2VdfHwkLmV4dGVuZCghMCx7bmFtZTplLG5hbWVzYWZlOmUsaG5hbWU6ZSx0b29sdGlwOmUsaHJlZjpiKGUpfSx4LmRiVHlwZSkpfSkuZmFpbChmdW5jdGlvbih4LGIsYyl7Y29uc29sZS5sb2coeCxiLGMpLGEucmVqZWN0KHgsYixjKX0pXTtyZXR1cm4gZi5wdXNoKGgoKSksUS5hbGxTZXR0bGVkKGYpLnRoZW4oZnVuY3Rpb24oKXt4LkFsbFtjXT94LlJlcGxpY2F0b3JEQj1jOnguUmVwbGljYXRvckRCPXguUmVwbGljYXRvckRCfHwiX3JlcGxpY2F0b3IiLGEucmVzb2x2ZSh4LkFsbCl9KSxhLnByb21pc2UoKTtmdW5jdGlvbiBnKHgpe2lmKCEvXnVzZXJkYi0oWzAtOWEtaF17Mn0pezEsfSQvLnRlc3QoeCkpcmV0dXJuIHgubGVuZ3RoPjIwP3g6IiI7dmFyIGE9eC5mcm9tKDcpLGI9IiI7dHJ5e2I9ZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvKC4uKS9nLCIlJDEiKSl9Y2F0Y2goeCl7fXJldHVybiBiPyJVc2VyIERCIGZvciAiK2I6eC5sZW5ndGg+MjA/eDoiIn1mdW5jdGlvbiBoKCl7dmFyIGE9W107cmV0dXJuIHguQ291Y2gudmVyc2lvbnx8KGEucHVzaCh4LlJlcSh7dXJsOltdLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oYSl7eC5Db3VjaC52ZXJzaW9ufHwkLmV4dGVuZCh4LkNvdWNoLGEpLGwoKX0pKSx4LlBobygiX2NvbXBpbGVkIikmJiF3aW5kb3cuRERPQy5fZGImJmEucHVzaCh4LlJlcSh7dXJsOlsiX2Ricm9vdCJdLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oYSl7JC5leHRlbmQoeC5Db3VjaCxhKSxsKCl9KS5mYWlsKHg9PmNvbnNvbGUubG9nKCJUaGlzIDQwMCBpcyBub3JtYWwiKSkpKSxRLmFsbFNldHRsZWQoYSkudGhlbihpKX1mdW5jdGlvbiBpKCl7dmFyIGE9W107cmV0dXJuIHguQ291Y2gudmVyPCIwMDIuIj8oYS5wdXNoKHguUmVxKFsiX2NvbmZpZyIsInJlcGxpY2F0b3IiLCJkYiJdKS50aGVuKGZ1bmN0aW9uKHgpeyJzdHJpbmciPT10eXBlb2YgeCYmKGM9eCl9KS5mYWlsKGZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIlRoaXMgNDB4IGlzIG5vcm1hbCIpfSkseC5SZXEoWyJfY29uZmlnIiwiaHR0cGQiLCJwb3J0Il0pLnRoZW4oZnVuY3Rpb24oYSl7InN0cmluZyI9PXR5cGVvZiBhJiYoeC5Db3VjaC5wb3J0PWEpfSkpLHguQ291Y2gubWF4QmF0Y2g9MCk6YS5wdXNoKHguR2V0TWVtYmVyc2hpcCgpLnRoZW4oZnVuY3Rpb24oeCl7ZD14fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBrKCl9KSxqKCkseC5SZXEoWyJfbm9kZSIsIl9sb2NhbCIsIl9jb25maWciLCJjaHR0cGQiLCJwb3J0Il0pLnRoZW4oZnVuY3Rpb24oYSl7InN0cmluZyI9PXR5cGVvZiBhJiYoeC5Db3VjaC5wb3J0PWEpfSkpLFEuYWxsU2V0dGxlZChhKX1mdW5jdGlvbiBqKCl7aWYoIXguUGhvKCJDb3VjaCIpLnEpcmV0dXJuIHguUmVxKFsiX25vZGUiLCJfbG9jYWwiLCJfY29uZmlnIiwiY2x1c3RlciJdKS50aGVuKGZ1bmN0aW9uKGEpe2EmJiJvYmplY3QiPT10eXBlb2YgYSYmKHguQ291Y2gucT0rKGEucXx8MCkseC5Db3VjaC5uPSsoYS5ufHwwKSl9KS5mYWlsKGZ1bmN0aW9uKCl7eC5Db3VjaC5xPTAsY29uc29sZS5sb2coIlRoaXMgNDB4IGlzIG5vcm1hbCIpfSl9ZnVuY3Rpb24gaygpe3JldHVybiFkLmxlbmd0aHx8eC5Db3VjaC52ZXI8IjAwMi4wMDIuInx8eC5Db3VjaC5tYXhCYXRjaD4wPyh4LkNvdWNoLm1heEJhdGNoPXguQ291Y2gubWF4QmF0Y2h8fDAsdm9pZCAwKTp4LlJlcShbIl9ub2RlIiwiX2xvY2FsIiwiX2NvbmZpZyIsImNodHRwZCIsIm1heF9kYl9udW1iZXJfZm9yX2Ric19pbmZvX3JlcSJdKS50aGVuKGZ1bmN0aW9uKGEpe3guQ291Y2gubWF4QmF0Y2g9InN0cmluZyI9PXR5cGVvZiBhPythOjB9KS5mYWlsKGZ1bmN0aW9uKCl7eC5Db3VjaC5tYXhCYXRjaD14LkNvdWNoLnZlcj4iMDAzLjAwMS4iPzEwMDowLGNvbnNvbGUubG9nKCJUaGlzIDQweCBpcyBub3JtYWwiKX0pfWZ1bmN0aW9uIGwoKXt4LkNvdWNoLnZlcj14LkNvdWNoLnZlcnNpb24uc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuKCIwMCIrKCt4fHxwYXJzZUludCh4KXx8MCkudG9TdHJpbmcoKSkuc3Vic3RyKC0zKX0pLmpvaW4oIi4iKX19LEdldE1lbWJlcnNoaXA6ZnVuY3Rpb24oKXt2YXIgeCxhPXRoaXM7cmV0dXJuIE9iamVjdC5zaXplKHg9YS5QaG8oIk1lbWJlcnNoaXAiKSk/Yih4KTphLlJlcShbIl9tZW1iZXJzaGlwIl0pLnRoZW4oYik7ZnVuY3Rpb24gYih4KXt2YXIgYj1bXTtyZXR1cm4gT2JqZWN0LmlzT2JqZWN0KHgpJiZPYmplY3QuaXNBcnJheSh4LmFsbF9ub2RlcykmJk9iamVjdC5pc0FycmF5KHguY2x1c3Rlcl9ub2RlcykmJigkLmV4dGVuZCghMCxhLlBobygiTWVtYmVyc2hpcCIpLHgpLGI9eC5jbHVzdGVyX25vZGVzLnNsaWNlKDApLmludGVyc2VjdCh4LmFsbF9ub2RlcykpLGJ9fSxHZXRVc2VyczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0kLkRlZmVycmVkKCksYj14LlVzZXJzO3JldHVybihiLl9zZXE/eC5SZXEoe3VybDpbIl91c2VycyIsIl9jaGFuZ2VzIix7c2luY2U6Yi5fc2VxfV0sZGF0YVR5cGU6Impzb24ifSk6eC5SZXEoe3VybDpbIl91c2VycyIsIl9hbGxfZG9jcyIse3VwZGF0ZV9zZXE6ITB9XSxkYXRhVHlwZToianNvbiJ9KSkudGhlbihmdW5jdGlvbih4KXtiLl9zZXE9eC5sYXN0X3NlcXx8eC51cGRhdGVfc2VxLCh4LnJvd3N8fHgucmVzdWx0c3x8W10pLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoIm9yZy5jb3VjaGRiLnVzZXI6Ij09eC5pZC50bygxNykpe3ZhciBhPXguaWQuZnJvbSgxNyk7eC5kZWxldGVkP2RlbGV0ZSBiW2FdOmJbYV09ITB9fSl9KS5hbHdheXMoZnVuY3Rpb24oKXthLnJlc29sdmUoT2JqZWN0LmtleXMoYikuc29ydCgpLnJlbW92ZSgvXl8vKSl9KSxhLnByb21pc2UoKX0sR3JvdXBEQnM6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5BbGwsZD1iLlBobygiQ2ZnIikuZ3JvdXBpbmcsZT0oeD14fHxPYmplY3Qua2V5cyhjKSxhPWF8fE9iamVjdC5rZXlzKGIuTHMoIkRCcy5TdGFycyIpfHx7fSksY3cubGliLmEybyhhKSksZj1kLmZpbmQoInRpbnkiKT8xMDpkLmZpbmQoInNtYWxsIik/MzA6ZC5maW5kKCJsYXJnZSIpPzI1MDoxMDAsZz1mLzN8MCxoPXguZmlsdGVyKHg9PiFlW3hdKS5zb3J0KCk7aWYoeC5sZW5ndGg8MipnfHxkKyIiPT0iIilyZXR1cm4gT2JqZWN0LmtleXMoYykuZm9yRWFjaCh4PT5jW3hdLmdyb3VwPSIiKSxiLkdyb3Vwcz17fTtpZihkLmZpbmQoImF1dG8iKSl7aWYoZC5maW5kKCJhdXRvIikpe2w9eyIiOjB9O3ZhciBpPXt9O2g9KGg9aC5tYXAoZnVuY3Rpb24oeCxhKXt2YXIgYj0oeC5tYXRjaCgvXlthLXowLTlcJF0rW1wvXC1fXCtdLyl8fFtdKVswXTtyZXR1cm4gYj8obFtiXXx8KGlbYl09YSxsW2JdPTApLGxbYl0rPTEse2RiOngsZ3JvdXA6Yn0pOihsWyIiXSs9MSx7ZGI6eCxncm91cDoiIn0pfSkpLm1hcChmdW5jdGlvbih4KXt2YXIgYT14Lmdyb3VwO3JldHVybiBhPyhsW2FdP2xbYV08ZyYmKGxbIiJdKz1sW2FdLGRlbGV0ZSBsW2FdLHguZ3JvdXA9IiIpOnguZ3JvdXA9IiIseCk6eH0pO3ZhciBqPVtdLGs9bnVsbDttPTA7aC5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7aWYoIl8iIT14LmRiWzBdKXtpZih4Lmdyb3VwKXJldHVybiBrPW51bGw7a3x8ai5wdXNoKHtpMDphLHNpemU6MCxwZjp7fX0pO3ZhciBiPWoubGFzdCgpLGM9eC5kYlswXTtiLnBmW2NdfHwoYi5wZltjXT17aTA6YSxzaXplOjB9KSxiLnBmW2NdLnNpemUrPTEsYi5zaXplKz0xLGs9eH19KSwoaj1qLmZpbHRlcih4PT54LnNpemU+PWYpKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXgucGY7T2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYj1hW3hdLGM9Yi5zaXplPGYtZz8iIjp4O2MmJihpW2NdPWIuaTAsbFtjXT1iLnNpemUsbFsiIl0tPWIuc2l6ZSk7Zm9yKHZhciBkPTA7ZDxiLnNpemU7ZCsrKWhbYi5pMCtkXS5ncm91cD1jfSl9KSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2lmKHgmJiEobFt4XTxmK2cpKXt2YXIgYT1sW3hdLGI9YS9mO2IhPT0oMHxiKSYmKGI9TWF0aC5jZWlsKGIpKTtmb3IodmFyIGM9TWF0aC5jZWlsKGEvYikuY2xhbXAoLjkqZnwwLGYpLGQ9aVt4XSxlPTE7ZTxiO2UrKylmb3IodmFyIGo9MCxrPTA7azxjO2srKykoaj1lKmMrayk8YSYmKGhbZCtqXS5ncm91cCs9IjoiK2UpfX0pfX1lbHNle3ZhciBsPXsiIjowfSxtPTA7aD1oLm1hcChmdW5jdGlvbih4LGEpe2lmKCJfIj09eFswXSlyZXR1cm57ZGI6eCxncm91cDoiIn07dmFyIGI9IjoiK207cmV0dXJuIGxbYl18fChsW2JdPTApLGxbYl0rPTEsbFtiXT49ZiYmKG0rPTEpLHtkYjp4LGdyb3VwOmJ9fSl9bD17IiI6e3NpemU6MCxzdGFydDoiIixlbmQ6IiJ9fSxrPW51bGw7cmV0dXJuIGguZm9yRWFjaChmdW5jdGlvbih4LGEpe3ZhciBiPXguZ3JvdXA7Y1t4LmRiXS5ncm91cD1iLGImJiFsW2JdJiYobFtiXT17aWQ6YixoZWFkOmIuc3BsaXQoIjoiKVswXSxzdGFydDp4LmRiLGVuZDoiIixzaXplOjAsaTA6YX0pLCFifHxoW2ErMV0mJmhbYSsxXS5ncm91cD09Ynx8KGxbYl0uZW5kPXguZGIpLGxbYl0uc2l6ZSs9MX0pLGIuR3JvdXBzPWx9LFVwZGF0ZXI6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guTHM7aWYoeC5fY29tcGlsZWQmJmN3Lm1lKCkmJiJyZW1pbmQiPT14LkNmZy51cGRhdGUpe3ZhciBhPXguTHMoIkxhc3RVcGRhdGUiKXx8e30sYj13aW5kb3cuRERPQyxjPURhdGUubm93KCksZD0iIixlPTI2Nzg0ZTUsZj0wO2lmKCEoYS5yZW1pbmRlciYmYy1hLnJlbWluZGVyPGUqKE1hdGgucmFuZG9tKCkvMisuNSkpKXtpZihhLnN0YW1wKXtpZigoZj0oYy1hLnN0YW1wKS9lKTwxLjEpcmV0dXJuO2Q9eC5sYW5nLlVQRF9NT05USC5hc3NpZ24oMHxmLGY+MT8icyI6IiIpfWVsc2V7aWYoKGY9KGMtYi5zdGFtcCkvZSk8MS4xKXJldHVybjtkPXgubGFuZy5VUERfT0xELmFzc2lnbigwfGYsZj4xPyJzIjoiIil9ZCYmKGQrPXgubGFuZy5VUERfVEFJTCxjdy5saWIubm90ZShkLCJ4eHgiLDZlMyksYS5yZW1pbmRlcj1jLHguTHMoIkxhc3RVcGRhdGUiLGEpKX19fSxMczpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9d2luZG93LmxvY2FsU3RvcmFnZSxjPWYsZD14fHxhLmlkfHwiWCIsZT1PYmplY3QuaXNTdHJpbmc7aWYoYS5fY29tcGlsZWQpdHJ5e2guZGVsYXkoM2UzKX1jYXRjaCh4KXt9cmV0dXJuIGM7ZnVuY3Rpb24gZih4LGEpe3ZhciBjLGY9ZCsiLiIreDtyZXR1cm4gbnVsbD09PWE/Yi5yZW1vdmVJdGVtKGYpOnZvaWQgMCE9PWE/Yi5zZXRJdGVtKGYsSlNPTi5zdHJpbmdpZnkoYSkpOihjPWIuZ2V0SXRlbShmKSxlKGMpP2coYyk6bnVsbCl9ZnVuY3Rpb24gZyh4KXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoeCl9Y2F0Y2goeCl7fXJldHVybiBudWxsfWZ1bmN0aW9uIGgoKXt2YXIgeD1EYXRlLm5vdygpO2lmKCEoSlNPTi5zdHJpbmdpZnkoYikubGVuZ3RoPDFlNikpT2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0c1dpdGgoImN3LlN5cy5KU09OLnZpZXdzdGF0ZSIpfSkucmVkdWNlKGZ1bmN0aW9uKGEsYyl7dmFyIGQ9Yi5nZXRJdGVtKGMpO2lmKCFlKGQpKXJldHVybiBhO3ZhciBmPWcoZCk7cmV0dXJuIGYmJmYuc3RhbXAmJmYuc3RhbXA+eC0zMTUzNmU2JiZhLnB1c2goW2MsZl0pLGF9LFtdKS5zb3J0QnkoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMV0uc3RhbXB9KS50bygtMWUzKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2IucmVtb3ZlSXRlbSh4WzBdKX0pfX0sQ3JlYXRlREJzOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIubGFuZyxkPWIuUGhvKCJDZmciKS5iYXRjaENyZWF0ZURlbGF5LGU9Yi5QaG8oIkNvdWNoIiksZj1lLnZlcixnPWUucTtyZXR1cm4gUS5hbGxTZXR0bGVkKHgubWFwKGgpKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIseC5tYXAoeD0+eC5uYW1lKSl9LmRlbGF5KDUwKSxhfSk7ZnVuY3Rpb24gaCh4LGUpe3ZhciBoPSQuZXh0ZW5kKCEwLHtuYW1lOiIiLHNlY3VyaXR5Om51bGwscTowLG46MCxwYXJ0aXRpb25lZDohMSxjcmVhdGU6ITB9LHgpO2guc2VjdXJpdHk9JC5leHRlbmQoITAse2FkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfX0seC5zZWN1cml0eXx8e30pO3ZhciBqPWgubmFtZSxrPXt9LGw9JC5EZWZlcnJlZCgpO3JldHVybiBmPiIwMDIuIiYmK2c+MCYmK2gucT4wJiYkLmV4dGVuZChrLHtxOitoLnF8fDIsbjoraC5ufHwxfSksZj4iMDAzLiImJmgucGFydGl0aW9uZWQmJitoLnE+MSYmKGsucGFydGl0aW9uZWQ9ITApLGZ1bmN0aW9uKCl7KGguY3JlYXRlP2IuUmVxKHt1cmw6W2osa10sbWV0aG9kOiJQVVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pLnRoZW4obSk6bSgpKS50aGVuKGZ1bmN0aW9uKCl7bC5yZXNvbHZlKGgpfSkuZmFpbChmdW5jdGlvbih4LGMsZCl7bC5yZWplY3QoeCxjLGQsaCksYXx8Y3cubGliLm5vdGUoYi5sYW5nLk1TR19ORVdEQl9GQUlMLmFzc2lnbihqLHgsaShjKSksImVycm9yIiwxZTQpfSl9LmRlbGF5KGUqZHx8MCksbC5wcm9taXNlKCk7ZnVuY3Rpb24gbSgpe3ZhciBkPSQuRGVmZXJyZWQoKTtyZXR1cm4gbnVsbCE9eC5zZWN1cml0eXx8aC5jcmVhdGUmJmY+IjAwMy4iP2IuUmVxKHt1cmw6W2osIl9zZWN1cml0eSJdLG1ldGhvZDoiUFVUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShPYmplY3Quc2VsZWN0KGguc2VjdXJpdHksWyJhZG1pbnMiLCJtZW1iZXJzIl0pKX0pLnRoZW4oZnVuY3Rpb24oKXthfHxlKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYixkKXthfHxjdy5saWIubm90ZShjW2guY3JlYXRlPyJNU0dfTkVXREJfTk9BQ0wiOiJNU0dfU0VDREJfRkFJTCJdLmFzc2lnbihqLHgsaShiKSksIndhcm5pbmciLDZlMyl9KS5hbHdheXMoZnVuY3Rpb24oKXtkLnJlc29sdmUoaCl9KTooIWEmJmguY3JlYXRlJiZlKCksZC5yZXNvbHZlKGgpKSxkLnByb21pc2UoKTtmdW5jdGlvbiBlKCl7Y3cubGliLm5vdGUoaC5jcmVhdGU/Yy5NU0dfTkVXREJfT0suYXNzaWduKGopOmMuTVNHX1NFQ0RCX09LLmFzc2lnbihqKSl9fX1mdW5jdGlvbiBpKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9fSxDb21waWxlVDpmdW5jdGlvbih4KXtmb3IodmFyIGEsYixjLGQ9L1x7W2EtejAtOV9dW2EtejAtOV9dezAsMTl9XC4/W2EtejAtOV9dezAsMjB9XH0vZ2ksZT1bXSxmPTAsZz0wLGg9MDtudWxsIT09KGE9ZC5leGVjKHgpKTspYz0oYj1hWzBdKS5sZW5ndGgsZz1kLmxhc3RJbmRleCxlLnB1c2goeC5zdWJzdHJpbmcoZixnLWMpKSxmPWcsZS5wdXNoKFtiXS5jb25jYXQoYi5zdWJzdHIoMSxjLTIpLnNwbGl0KCIuIikpKSxoKz0yO3JldHVybiBlLnB1c2goeC5zdWJzdHIoZikpLGQ9bnVsbCx7c3RhbXA6RGF0ZS5ub3coKSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB4fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LGFzc2lnbjpmdW5jdGlvbihhKXt2YXIgYj0iIixjPSJvYmplY3QiO2lmKHR5cGVvZiBhIT09YylyZXR1cm4geDtmb3IodmFyIGQsZixnPTAsaT0xO2c8aDtnKz0yKXtiKz1lW2ddLGQ9ZVtnKzFdLGk9MSxmPWE7ZG97Zj1mW2RbaSsrXV19d2hpbGUodHlwZW9mIGY9PT1jJiZpPGQubGVuZ3RoKTtiKz12b2lkIDAhPT1mP2Y6ZFswXX1yZXR1cm4gYitlW2hdfX19fSxFZDp7anNvbnRyZWU6e2lkOiJjdy5TeXMuSlNPTiIscGFyYW1zOnt9LHVpOnsiI2J0bi1zYXZlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2J0bi1zYXZlIiwic2F2ZWRvYy5teSIpfX19LExpYjp7aXNTeXN0ZW06ZnVuY3Rpb24oeCl7cmV0dXJuIXRoaXMubXkucm9vdCgpLnBhcmVudHMoIi5sLWFwcCIpLmVxKDApLm15KCJkYXRhIikuaXNOZXcmJiEhKDE9PXgubGV2ZWwmJi9eXyhpZHxyZXZ8cmV2c19pbmZvfGxvY2FsX3NlcSkkLy50ZXN0KHgua2V5KSYmeC52YWx1ZXx8eC5sZXZlbD4yJiYiX3JldnNfaW5mbyI9PXgucGF0aFsxXXx8Il9jb25mbGljdHMiPT14LnBhdGhbMV0pfX0sc3R5bGU6eyIgIjoiIiwiIC5pcm9vdC5pc2VkaXRvciI6InBhZGRpbmctbGVmdDowIWltcG9ydGFudDsiLCIgLmlyb290LmlzZWRpdG9yPi5pa2V5IjoiZGlzcGxheTpub25lIiwiIC5pcm9vdD4uaWVkaXRvciI6InBhZGRpbmctdG9wOjRweDsiLCIgLmlyb290Pi5pZWRpdG9yIC5Db2RlTWlycm9yLXNjcm9sbCI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QaG8oIlBhbmVsSGVpZ2h0IiktMzI7cmV0dXJuIm1pbi1oZWlnaHQ6ezF9cHg7bWF4LWhlaWdodDp7MX1weDtoZWlnaHQ6ezF9cHg7b3ZlcmZsb3c6c2Nyb2xsOyIuYXNzaWduKGEpfX0sTHM6ZnVuY3Rpb24oKXt2YXIgeD13aW5kb3cubG9jYWxTdG9yYWdlO3JldHVybiBmdW5jdGlvbihhLGIpe3ZhciBjPSJjdy5TeXMuSlNPTi4iK2E7aWYoYilyZXR1cm4geC5zZXRJdGVtKGMsSlNPTi5zdHJpbmdpZnkoYikpO2lmKG51bGw9PT1ifHwhMT09PWIpcmV0dXJuIHgucmVtb3ZlSXRlbShjKTt2YXIgZD14LmdldEl0ZW0oYyk7cmV0dXJuIE9iamVjdC5pc1N0cmluZyhkKT9KU09OLnBhcnNlKGQpOm51bGx9fSxNYWtlTGlzdDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPVtdLGU9eC52YWx1ZSxmPWN3LmxpYi5zZGJtLGc9d2luZG93LmF0b2IsaD1jLmRhdGEudmlld3N0YXRlfHx7fSxpPWMuZGF0YS5mb3VuZHx8e30saj14LmxldmVsKzEsaz1jLmRhdGEuc2VhcmNoLmxlbmd0aD4yLGw9L15kYXRhOmltYWdlXC8oanBlZ3xwbmd8Z2lmfHN2Z1wreG1sKTtiYXNlNjQsLyxtPU9iamVjdC5rZXlzKGUpO3JldHVybiJfYXR0YWNobWVudHMiPT14LmtleSYmMT09eC5wYXRoLmxlbmd0aCYmIlJvb3QiPT14LnBhdGhbMF0mJihtPW0uc29ydEJ5KGZ1bmN0aW9uKHgpe3ZhciBhPXguaW5kZXhPZigiLyIpPi0xO3JldHVybi9eaW5kZXhcLmh0bS8udGVzdCh4KT8iMCIreDphPyIyIit4OiIxIit4fSkpLG0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgZyxtLG89ZVthXSxwPSQudHlwZShvKSxxPSJvYmplY3QiPT1wfHwiYXJyYXkiPT1wPyJtdWx0aSI6cCxyPXgucGF0aC5zbGljZSgwKS5hZGQoeC5rZXkpLHM9Yy5QYXRoU2lnKHIsYSk7ayYmIWlbc118fCgibXVsdGkiPT1xJiYoIlJvb3QiIT14LmtleXx8eC5wYXRoLmxlbmd0aHx8Il9hdHRhY2htZW50cyIhPWE/Il9hdHRhY2htZW50cyI9PXgua2V5JiYxPT14LnBhdGgubGVuZ3RoJiYiUm9vdCI9PXgucGF0aFswXSYmKHE9ImZpbGUiKTpxPSJmaWxlcyIpLCJzdHJpbmciPT1wJiYoayYmOHxpW3NdP3E9ImZvdW5kIjpvLmxlbmd0aD4xMSYmKC9eW1xzXHJcblx0XSpmdW5jdGlvbi8udGVzdChvLnN1YnN0cigwLDIwKSkmJi9cfVtcclxuXHRcc10qJC8udGVzdChvLnN1YnN0cigtMTApKXx8L15bXHNcclxuXHRdKlwoW1xzXHJcblx0XSpmdW5jdGlvbi8udGVzdChvLnRvKDIwKSkmJi9cfVtcclxuXHRcc10qXClbXHJcblx0XHNdKiQvLnRlc3Qoby5zdWJzdHIoLTEwKSkpP3E9ImZ1bmN0aW9uIjpvLmxlbmd0aD4xNjAmJm8ubGVuZ3RoPDE1ZTQmJi9eW2EtekEtWjAtOVwrXC9dKyQvLnRlc3Qoby5zdWJzdHIoMCwxNTgpKSYmL15bYS16QS1aMC05XCtcL10rPXswLDJ9JC8udGVzdChvKT8ic3RyaW5nIj09dHlwZW9mKG09bihvKSkmJihxPSJiYXNlNjQiKTpvLmxlbmd0aD4xNjAmJm8ubGVuZ3RoPDE1ZTQmJmwudGVzdChvKSYmInN0cmluZyI9PXR5cGVvZihtPW4oby5yZXBsYWNlKGwsIiIpKSkmJihxPSJiYXNlNjQiKSksZ3x8KGc9ZihbYSxvXSkpLGsmJiFpW3NdfHxkLnB1c2goe3N0YXRlOmJ8fChrP2lbc106aFtzXXx8MSksbGV2ZWw6aixtYW5pZmVzdDoiJCIrcSxwYXRoOnIsdHlwZTpwLGtleTphLGlkOmEsdmFsdWU6ImZ1bmN0aW9uIj09dHlwZW9mIGVbYV0/ZVthXSsiIjplW2FdLGJpbjptLGhhc2g6Z30pKX0pLGQ7ZnVuY3Rpb24gbih4KXt2YXIgYTt0cnl7YT1nKHgpfWNhdGNoKHgpe31yZXR1cm4gYX19LCRmaWxlczp7aWQ6IlN5cy5KU09OLkZpbGVzIixkYXRhOnt9LExpc3Q6W10sQ006InRleHQvamF2YXNjcmlwdCIsVHh0OntvYmplY3Q6WyJGaWxlcyB7IiwifSJdLGFycmF5OlsiQXJyYXkgWyIsIl0iXX0saW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1hLmRhdGE7eC5hZGRDbGFzcygiZWQtbm9kZS0iK2IuUGF0aFNpZyhjLnBhdGgsYy5rZXkpKSx4Lmh0bWwoYi5IVE1MKSxjLnN0YXRlPjEmJihiLkxpc3Q9Yi5NYWtlTGlzdChjKSkseC5maW5kKCIuaWxpc3Q6ZXEoMCkiKS5vbigiY2hhbmdlLm15IixmdW5jdGlvbigpe2IuUlQoIlJlam9pbiIpKGMsYi5MaXN0KX0uZGVib3VuY2UoMzAwKSkseC5vbigiY2xpY2subXkiLCIuaWxpc3Q6ZXEoMCkgLmJ0bi1kZWwiLGZ1bmN0aW9uKGMpe2Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKS5wYXJlbnRzKCIubXktZm9ybSIpLmVxKDApLGU9ZC5wYXJlbnQoKS5kYXRhKCJteSIpLmRhdGEsZj0kLnR5cGUoZS52YWx1ZSksZz1kLm15KCJkYXRhIikua2V5LGg9T2JqZWN0LmNsb25lKGUudmFsdWVbZ10sITApOyJvYmplY3QiPT1mP2RlbGV0ZSBlLnZhbHVlW2ddOiJhcnJheSI9PWYmJmUudmFsdWUucmVtb3ZlQXQoZyksYi5Ob2RlVXBkYXRlZChlLnBhdGguY29uY2F0KGUua2V5LGcpLGgsdm9pZCAwKSxiLlJUKCJMaWIiKS5yZWxpc3QoeCxiLGEpfSl9LHVpOnsiLml2YWx1ZSI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLkxpc3QubGVuZ3RofSxub2NvbXA6ZnVuY3Rpb24oeCl7dmFyIGE9MCxiPTA7cmV0dXJuIE9iamVjdC5rZXlzKHgudmFsdWUpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQsZT0wOyhkPXgudmFsdWVbY10pJiYoZT0oZC5kYXRhP2QuZGF0YS5sZW5ndGgvNCozfDA6MCl8fCtkLmxlbmd0aHx8K2Quc2l6ZXx8MCxhKz1lLGIrPSsoeC52YWx1ZVtjXS5lbmNvZGVkX2xlbmd0aHx8ZSkpfSksYT09Yn19LHdhdGNoOlsiLmlkZXNjIl19LCIuaWxpc3QiOntkZWxheTowLGNoZWNrOiExLGJpbmQ6InRoaXMuTGlzdCIsbGlzdDonPGRpdiBjbGFzcz0iaXJvdyI+PC9kaXY+JyxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNofSxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5SVCh4Lm1hbmlmZXN0KXx8dGhpcy5SVCgiJHN0cmluZyIpfSx3YXRjaDpbIi5pZGVzYyJdfSwiLmlrZXkiOnt9LCIuYnRuLWpzb24iOnt9LCIjYnRuLXVwbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXM7Yi5kYXRhKCJtb2RhbCIpPyhiLm1vZGFsKCEwKSxkKCkpOihiLnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGMubXkubW9kYWwoIiNidG4tdXBsb2FkIix7bWFuaWZlc3Q6Yy5BZGQsZGF0YTp7fSx3aWR0aDo1MDAsYWxpZ246InRvcDoxMDMlLCByaWdodDotMzhweDsiLG5vc2U6InRvcCJ9KS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPU9iamVjdC5jbG9uZSh4LnZhbHVlLCEwKTthLmZpbGVzLmZvckVhY2goZnVuY3Rpb24oYSl7eC52YWx1ZVthLm5hbWVdPU9iamVjdC5zZWxlY3QoYSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSxjLk5vZGVVcGRhdGVkKHgucGF0aC5jb25jYXQoeC5rZXkpLGIsT2JqZWN0LmNsb25lKHgudmFsdWUsITApKSx4LnN0YXRlPTIsYy5MaXN0PWMuTWFrZUxpc3QoeCksYy5teS5yZWRyYXcoKX0pLmFsd2F5cyhmdW5jdGlvbigpe2QoKX0pKX1mdW5jdGlvbiBkKCl7Yi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKX19fSwiI2J0bi1iNjQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLlJUKCJHZXRBdHRzIikoKS50aGVuKGZ1bmN0aW9uKCl7Yi5teS5yZWRyYXcoKX0pfX19LCIuaWRlc2MiOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9KHRoaXMuTGlzdCxjLlR4dFt4LnR5cGVdKSxlPU9iamVjdC5zaXplKHgudmFsdWUpLGY9IiI7MT09eC5zdGF0ZSYmYy5TaG93SXRlbXM/Zj1jLlNob3dJdGVtczooZj1kWzBdK2UrZFsxXSsiICIsMj09eC5zdGF0ZSYmKGY9JzxzcGFuIGNsYXNzPSJvNDAiPicrZisiPC9zcGFuPiIpKTt2YXIgZz0wLGg9MDtyZXR1cm4gT2JqZWN0LmtleXMoeC52YWx1ZSkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYixjPTA7KGI9eC52YWx1ZVthXSkmJihjPShiLmRhdGE/Yi5kYXRhLmxlbmd0aC80KjN8MDowKXx8K2IubGVuZ3RofHwrYi5zaXplfHwwLGcrPWMsaCs9Kyh4LnZhbHVlW2FdLmVuY29kZWRfbGVuZ3RofHxjKSl9KSxnJiYoZj1bJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXI1IiBzdHlsZT0id2lkdGg6ezR9OyI+ezF9PC9kaXY+JywnPGRpdiBjbGFzcz0iZGliIHZhdCB3OTAgdGFyIG85MCI+ezJ9PC9kaXY+JywnPGRpdiBjbGFzcz0iZGliIHZhdCB3OTAgcGw1IHRhbCBvNjAgZnM5NSI+ezN9PC9kaXY+J10uam9pbigiIikuYXNzaWduKGYsaShnKSxnIT1oP2koaCk6IiIsMj09eC5zdGF0ZT8yNzItYy5sYWJlbFdpZHRoKyJweCI6ImF1dG8iKSksZjtmdW5jdGlvbiBpKHgpe3JldHVybiB4LmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYiIpLnJlcGxhY2UoL14oWzAtOVwuXSspKFthLXpdKykkL2ksJyQxPGRpdiBjbGFzcz0idzM1IGRpYiB0YWwgcGwyIj4kMjwvZGl2PicpfX0sd2F0Y2g6WyIuaWtleSIsIi5idG4tanNvbiJdfX0sc3R5bGU6eyI+Lml2YWx1ZT4uaWxpc3Q+Lmlyb3ciOmZ1bmN0aW9uKCl7dmFyIHg9MjUwLGE9eC0yNztyZXR1cm57IiAuaW5hdiI6InBhZGRpbmctbGVmdDoiK2ErInB4OyIsIiAuaW5hdj4uaWtleSI6Im1hcmdpbi1sZWZ0Oi0iK2ErInB4O3dpZHRoOiIrYSsicHg7IiwiPi5pbmF2IjoicGFkZGluZy1sZWZ0OiIreCsicHg7IiwiPi5pbmF2Pi5pa2V5IjoibWFyZ2luLWxlZnQ6LSIreCsicHg7d2lkdGg6Iit4KyJweDsiLCIgLmlrZXkiOiJjdXJzb3I6bm9ybWFsOyIsIiAuaWFjdCAuYnV0dG9uIjoicGFkZGluZzogMC4xNWVtIDAgMC4wNWVtIDA7IiwiIC5pZGVzYz5kaXYiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyJ9fSwiIC5pdmFsdWUgLmluYXYiOiJtYXJnaW46MDsiLCIgLm5vY29tcCAuc2l6ZWNvbXAiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LEhUTUw6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgaWtleXRyZWUiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gaWQ9ImJ0bi1iNjQiIGNsYXNzPSJidXR0b24iIHRpdGxlPSJGZXRjaCBhdHRhY2htZW50c+KAmSBiYXNlNjQiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLWFyY2hpdmUiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGJ1dHRvbiBoaWRlIiB0aXRsZT0iRWRpdCBhcyBKU09OIj48c3BhbiBjbGFzcz0iYm9sZCBkaWIgdmF0IG10LTEgbWIxIj57JiM4MjAyO308L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXVwbG9hZCIgY2xhc3M9ImJ1dHRvbiIgdGl0bGU9IkFkZCBhdHRhY2htZW50Ij48c3BhbiBjbGFzcz0iZmktcGFwZXJjbGlwIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIiAgdGl0bGU9IkRlbCBhbGwgYXR0YWNobWVudHMiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLE5vZGVVcGRhdGVkOmZ1bmN0aW9uKCl7fSxBZGQ6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MKX0sZGF0YTp7ZmlsZXM6W119LHVpOnsiI2ZsaXN0Ijp7YmluZDoiZmlsZXMiLGxpc3Q6Ij5kaXYiLG1lcmdlOiExLGlkOlsibmFtZSJdLGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4Lm5hbWUseC5jb250ZW50X3R5cGUseC5kYXRhLmxlbmd0aCx4LmRhdGEudG8oMTAwKV0pfSxtYW5pZmVzdDp7dWk6eyIjZm5hbWUiOiJuYW1lIiwiI2ZzaXplIjpmdW5jdGlvbih4LGEpe3JldHVybih4LmRhdGEubGVuZ3RoLzQqM3wwKS5ieXRlcygxKS5yZXBsYWNlKC9eKFswLTlcLl0rKShbYS16XSspJC9pLCckMTxkaXYgY2xhc3M9InczNSBkaWIgdGFsIHBsMiI+JDI8L2Rpdj4nKX0sIiNmdHlwZSI6ImNvbnRlbnRfdHlwZSIsIiNidG4tZmRlbCI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnJlbW92ZSgpfSxldmVudHM6ImNsaWNrLm15In19fX0sIiNidG4tYXR0YWRkIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZmlsZXMubGVuZ3RofX0sd2F0Y2g6IiNmbGlzdCJ9LCIjYnRuLWF0dGNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfSwiI211cGxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hJiZhKXtmb3IodmFyIGM9dGhpcyxkPWJbMF0uZmlsZXMsZT1bXSxmPXguZmlsZXMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYS5uYW1lXT1hLHh9LHt9KSxnPVtdLGg9MDtoPGQubGVuZ3RoO2grKyllLnB1c2goZFtoXSk7ZS5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7aWYoeCl7dmFyIGIsYyxkPXtuYW1lOngubmFtZSxjb250ZW50X3R5cGU6eC50eXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn0sZT0kLkRlZmVycmVkKCksaD1uZXcgRmlsZVJlYWRlcixpPVtdO2gub25sb2FkPWZ1bmN0aW9uKGEpe2M9bmV3IFVpbnQ4QXJyYXkoYS50YXJnZXQucmVzdWx0KTtmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjW2ddKSk7Yj13aW5kb3cuYnRvYShpLmpvaW4oIiIpKSxkLmRhdGE9YixmW3gubmFtZV09ZCxlLnJlc29sdmUoKX0saC5yZWFkQXNBcnJheUJ1ZmZlcih4KSxnLnB1c2goZS5wcm9taXNlKCkpfX0pLFEuYWxsU2V0dGxlZChnKS50aGVuKGZ1bmN0aW9uKCl7eC5maWxlcz1PYmplY3QudmFsdWVzKGYpLGIud3JhcCgiPGZvcm0+IikuY2xvc2VzdCgiZm9ybSIpLmdldCgwKS5yZXNldCgpLGIudW53cmFwKCJmb3JtIiksYy5teS5yZWNhbGMoIiNmbGlzdCIpfS5kZWJvdW5jZSgwKSkudGhlbihmdW5jdGlvbigpe2MubXkuZmluZCgiI2J0bi1hdHRhZGQiKS5mb2N1cygpfS5kZWJvdW5jZSgxMDApKX19fX0sSFRNTDonPGRpdiBjbGFzcz0iZnMxMzAgbGgxNjAgYm9sZGVyIj5BZGQgZmlsZXM8L2Rpdj48ZGl2IGlkPSJmbGlzdCIgY2xhc3M9ImZzOTUiPjxkaXYgY2xhc3M9ImZyb3cgIG1iNiI+PGRpdiBpZD0iYnRuLWZkZWwiIGNsYXNzPSJyZWQyIHcyMCBkaWIgdmF0IHB0MyBjcCI+4pyVPC9kaXY+PGRpdiBjbGFzcz0idzIyMCBkaWIgdmF0Ij48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIiBpZD0iZm5hbWUiIHBsYWNlaG9sZGVyPSJGaWxlIHBhdGgvbmFtZS5leHQiPjwvZGl2PjxkaXYgaWQ9ImZzaXplIiBjbGFzcz0idzkwIGRpYiB2YXQgcHQzIGdyYXkgdGFyIj48L2Rpdj48ZGl2IGlkPSJmdHlwZSIgY2xhc3M9IncxNTAgZGliIHZhdCBwdDMgZ3JheSBudyBlbGwiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im10MTAiPjxpbnB1dCBpZD0ibXVwbG9hZCIgdHlwZT0iZmlsZSIgbXVsdGlwbGUgY2xhc3M9ImgzMCB3MTAwcCBjcCIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTtvcGFjaXR5OjA7Ij48ZGl2IGNsYXNzPSJoMzAgcHNldWRvbGluayB0ZG4iPlNlbGVjdCBmaWxlcyB0byBhdHRhY2guLi48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtdDUgcHQxMCBidGQiPjxidXR0b24gaWQ9ImJ0bi1hdHRhZGQiIGNsYXNzPSJtYXJrZm9jdXMgZ3JlZW4gbXIyIj5BdHRhY2ggZmlsZXM8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tYXR0Y2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj5DYW5jZWw8L2J1dHRvbj48L2Rpdj4nfX0sJGZpbGU6e2lkOiJTeXMuSlNPTi5GaWxlIixkYXRhOnt9LHBhcmFtczp7ZGVsYXk6MH0sTGlzdDpbXSxDTToidGV4dC9qYXZhc2NyaXB0IixyZXY6IiIsaW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGE7eC5hZGRDbGFzcygiZWQtbm9kZS0iK2IuUGF0aFNpZyhjLnBhdGgsYy5rZXkpKSx4Lmh0bWwoYi5IVE1MLmFzc2lnbih7aWRlc2M6Yi5pZGVzYyhjKX0pKSxiLnJldj1iLlJUKCJNUm9vdCIpKCkubXkoImRhdGEiKS5yZXZ9LFNob3dJdGVtczpudWxsLGlkZXNjOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LnZhbHVlLGM9e3NpemU6ZCgoYi5kYXRhP2IuZGF0YS5sZW5ndGgvNCozfDA6MCl8fCtiLmxlbmd0aHx8K2Iuc2l6ZXx8MCksc2l6ZXg6Yi5lbmNvZGVkX2xlbmd0aD9kKCtiLmVuY29kZWRfbGVuZ3RoKToiIixtaW1lOihiLmNvbnRlbnRfdHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpLmVzY2FwZUhUTUwoKSxyZXZwb3M6Yi5kaWdlc3QmJm51bGwhPWIucmV2cG9zPyJyOiAgIitiLnJldnBvczphLkhUTUxuZXd9O3JldHVybiBhLkhUTUxyb3cuYXNzaWduKGMpO2Z1bmN0aW9uIGQoeCl7cmV0dXJuIHguYnl0ZXMoMSkucmVwbGFjZSgvXihbMC05XC5dKykoW2Etel0rKSQvaSwnJDE8ZGl2IGNsYXNzPSJ3MzUgZGliIHRhbCBwbDIiPiQyPC9kaXY+Jyl9fSx1aTp7Ii5pa2V5Ijp7ZGVsYXk6MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpcyxjPWVuY29kZVVSSUNvbXBvbmVudCxkPSgvXih8XHMrKSQvLnRlc3QoeC5rZXkpPyciJyt4LmtleSsnIic6eC5rZXkudHJ1bmNhdGUoNTAsL1wvLy50ZXN0KHgua2V5KT8ibGVmdCI6Im1pZGRsZSIsIuKApiIpKS5yZXBsYWNlKC9cLy9nLCLigIkv4oCJIikuZXNjYXBlSFRNTCgpO2lmKG51bGw9PXgudmFsdWUucmV2cG9zKXJldHVybiBkO3ZhciBlPWIuUlQoImRhdGEiKSxmPShbZS5iYXNldXJsLnJlcGxhY2UoL1wvJC8sIiIpLGMoZS5kYm5hbWUpLGMoZS5kb2MuX2lkKSx4LmtleV0uam9pbigiLyIpKyh0aGlzLnJldj8iP3Jldj0iK3RoaXMucmV2OiIiKSkuZXNjYXBlSFRNTCgpO3JldHVybic8YSBocmVmPSJ7MX0iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIj57Mn08L2E+Jy5hc3NpZ24oZixkKX19fSwiI2J0bi1kb3dubG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPXgudmFsdWUucmV2cG9zKXt2YXIgYz10aGlzLlJUKCJkYXRhIiksZD1lbmNvZGVVUklDb21wb25lbnQ7Yi5hdHRyKCJkb3dubG9hZCIseC5rZXkuc3BsaXQoIi8iKS5sYXN0KCkpLGIuYXR0cigiaHJlZiIsW2MuYmFzZXVybC5yZXBsYWNlKC9cLyQvLCIiKSxkKGMuZGJuYW1lKSxkKGMuZG9jLl9pZCkseC5rZXldLmpvaW4oIi8iKSsodGhpcy5yZXY/Ij9yZXY9Iit0aGlzLnJldjoiIikpfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT14LnZhbHVlLnJldnBvc319fSwiI2J0bi1maWxlZGl0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9eC52YWx1ZS5yZXZwb3Mpe3ZhciBjPXRoaXMuUlQoImRhdGEiKSxkPWVuY29kZVVSSUNvbXBvbmVudDtiLmF0dHIoImhyZWYiLFsiIyIrZChjLmRibmFtZSksZChjLmRvYy5faWQpLGQoeC5rZXkpXS5qb2luKCIvIikpfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3ZhciBiPXgudmFsdWUuY29udGVudF90eXBlO3JldHVybiBudWxsPT14LnZhbHVlLnJldnBvc3x8dGhpcy5yZXZ8fCEoL150ZXh0XC8uKi8udGVzdChiKXx8L1wvKGpzb258amF2YXNjcmlwdHx4bWx8c3ZnKS8udGVzdChiKSl9fX19LEhUTUxyb3c6JzxkaXYgY2xhc3M9Inc5MCB0YXIgbzkwIHNpemVmdWxsIj57c2l6ZX08L2Rpdj48ZGl2IGNsYXNzPSJ3OTAgcGw1IHRhbCBvNjAgZnM5NSBzaXplY29tcCI+e3NpemV4fTwvZGl2PjxkaXYgY2xhc3M9IncyMDAgcHIxMCBudyBlbGwgbzYwIGZzOTUiPnttaW1lfTwvZGl2PjxkaXYgY2xhc3M9Im82MCBwdDIgZnM5NSI+e3JldnBvc308L2Rpdj4nLEhUTUxuZXc6JzxzcGFuIGNsYXNzPSJmaS1idXJzdC1uZXcgb3JhbmdlIG1sLTMiPiBOZXc8L3NwYW4+JyxIVE1MOic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IHhncmF5IGZzMTAwIj57aWtleX08L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyB3NDUwIj57aWRlc2N9PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tdGFrZW91dCBidXR0b24iIHRpdGxlPSJWaWV3IGFzIEpTT04iPjxzcGFuIGNsYXNzPSJmaS1zaG9wcGluZy1iYWcgZnM5NSI+PC9zcGFuPjwvYnV0dG9uPjxhIGlkPSJidG4tZmlsZWRpdCIgY2xhc3M9ImJ1dHRvbiBmczkwIHZhdCBwdDMgcGIwIGhpZGUiIHRpdGxlPSJFZGl0IGF0dGFjaG1lbnQiPjxzcGFuIGNsYXNzPSJmaS1wZW5jaWwiPjwvc3Bhbj48L2E+PGEgaWQ9ImJ0bi1kb3dubG9hZCIgY2xhc3M9ImJ1dHRvbiBmczkwIHZhdCIgdGl0bGU9IkRvd25sb2FkIGZpbGUiIGRvd25sb2FkPSIgIj48c3BhbiBjbGFzcz0iZmktZG93bmxvYWQiPjwvc3Bhbj48L2E+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIHZhdCIgIHRpdGxlPSJEZWwgbm9kZSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+J319LGpzb250ZXh0Ont9fSwkYWJvdXQ6e2lkOiJjdy5QaG90b24uJGFib3V0IixwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbmhlcml0OlsiU2V0VGhlbWUiXSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuImFib3V0In0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iQWJvdXQgdGhpcyBub2RlIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfYWJvdXQiIT14WzBdP251bGw6e3RpdGxlOiJBYm91dCJ9fSxsYW5nOnt9LEpTT046ITEsQmxvYjohMSxVcmw6ITEsZGF0YTp7cGhvdG9uOnt9LHNlcnZpY2U6e2NvdWNoZGI6Ik5vIG1lc3NhZ2UiLHZlcnNpb246Ij8/Iix2ZW5kb3I6e25hbWU6InVua25vd24iLHZlcnNpb246IiIsdmFyaWFudDoiIn0sZmVhdHVyZXM6W119LGRkb2M6e30sY2ZnOnttYXhXaWR0aDoiMjAwMCIsc2Nyb2xsU3BlZWQ6IjMiLGxpc3RDb2xzOltdLHJvb3RSZXBvOiIiLHVwZGF0ZToicmVtaW5kIixmb250OiJhdXRvIixmb250V2VpZ2h0OiIzMDAiLGZvbnRDb2RlOiJhdXRvIixpY29uOiIiLG1heFRhYnM6MTUsbG9vcEFjdGl2ZVRhc2tzOjUscGluZ1Nlc3Npb246MCxncm91cGluZzpbXSx0aGVtZToiIn19LExpbms6JzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlciIgY2xhc3M9InRkbiBudyBtbDQiPnsyfTwvYT4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSQuRGVmZXJyZWQoKTtyZXR1cm4gYS5Vcmw9YS5QaG8oKS5Eb3dubG9hZFVSTCwkLmV4dGVuZCghMCxhLmRhdGEuY2ZnLGEuUGhvKCJDZmciKSksWyIvL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Nkbi5jbG91ZHdhbGwubWUvcGhvdG9uLyJdLmluZGV4T2YoYS5kYXRhLmNmZy5yb290UmVwbyk+LTEmJihhLmRhdGEuY2ZnLnJvb3RSZXBvPSJodHRwczovL2Nkbi5jbG91ZHdhbGwubWUvcGhvdG9uLyIpLGEucmVsb2FkREJMaXN0PWEucmVsb2FkREJMaXN0LmRlYm91bmNlKDUwMCksYS5SZXEoe3VybDpbXSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZCghMCxhLmRhdGEuc2VydmljZSx4KX0pLmFsd2F5cyhmdW5jdGlvbigpe3guaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSksYS5uaWNlU2Nyb2xsKHguZmluZCgiI2FhbGwiKSksYi5yZXNvbHZlKCl9KSxiLnByb21pc2UoKX0sdWk6eyIjYXBobyI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5QaG8oIlZlcnNpb24iKS5yZXBsYWNlKC9bXjAtOVwuXS9nLCIiKX0sIiNhcGhvYnVpbGQiOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJidWlsZCIpLGI9RGF0ZS5jcmVhdGUoeC5QaG8oInN0YW1wIil8fERhdGUubm93KCkpLmZvcm1hdCgie3l5eXl9LXtNTX0te2RkfSIpO3JldHVybiBhPyc8c3BhbiBjbGFzcz0iZ3JheSI+QnVpbGQgJythKyIsICIrYisiPC9zcGFuPiI6IiJ9LCIjYXBob2FkZCI6ZnVuY3Rpb24oKXt2YXIgeD0od2luZG93LkRET0N8fHthcHBzOntlZDp7aWQ6ImN3LlN5cy5KU09OIn19fSkuYXBwcyxhPVtdO3JldHVybiBPYmplY3Qua2V5cyh4KS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPXhbYl07Yy5pZCYmIWMuaWQuc3RhcnRzV2l0aCgiY3cuUGhvdG9uIikmJmEucHVzaChbKGMubmFtZXx8Yy5pZCkrIsKgIixjLlZlcnNpb258fGMudmVyc2lvbnx8bnVsbCxjLmJ1aWxkPyIuIitjLmJ1aWxkOm51bGxdLmNvbXBhY3QoKS5qb2luKCIiKSl9KSxhLmpvaW4oIjxicj4iKX0sIiNhcGhvbGlicyI6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oIkxpYnNVc2VkIik7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYVtiXT94LkxpbmsuYXNzaWduKGFbYl0sYik6JzxzcGFuIGNsYXNzPSJ0ZG4gbncgbWw0Ij4nK2IrIjwvc3Bhbj4ifSkuam9pbigiLCAiKX0sIiNidG4tc2hvd2xpYnMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiYoYi5hZGRDbGFzcygiaGlkZSIpLGIubmV4dCgpLnJlbW92ZUNsYXNzKCJoaWRlIikpfSxldmVudHM6ImNsaWNrLm15In0sIiNhcGhvZm9udHMiOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJGb250c1VzZWQiKTtyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBhW2JdP3guTGluay5hc3NpZ24oYVtiXSxiKTonPHNwYW4gY2xhc3M9InRkbiBudyBtbDQiPicrYisiPC9zcGFuPiJ9KS5qb2luKCIsICIpfSwiI2F2ZXIiOiJzZXJ2aWNlLnZlcnNpb24iLCIjYXZlbmRvciI6ZnVuY3Rpb24oeCl7dmFyIGE9eC5zZXJ2aWNlLnZlbmRvcjtyZXR1cm4oYS5uYW1lKyIgIithLnZlcnNpb24rKGEudmFyaWFudD8iICgiK2EudmFyaWFudCsiKSI6IiIpKS5lc2NhcGVIVE1MKCl9LCIjYW5vZGUiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuUGhvKCJCYXNlIik7cmV0dXJuJzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iPnsyfSB7M308L2E+Jy5hc3NpZ24oYSwnPHNwYW4gY2xhc3M9ImZzOTAgJysoL15odHRwczovLnRlc3QoYSk/ImZpLWxvY2sgYmx1ZTIiOiJmaS11bmxvY2sgcmVkMiIpKyciPjwvc3Bhbj4nLGEucmVwbGFjZSgvXmh0dHBbc10/OlwvXC98XC8vZywiIikuZXNjYXBlSFRNTCgpKX0sIiNhd2VsY29tZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VydmljZS5jb3VjaGRiLmVzY2FwZUhUTUwoKX0sIiNhZmVhdHVyZXMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14LnNlcnZpY2UuZmVhdHVyZXM7cmV0dXJuIE9iamVjdC5pc0FycmF5KGMpJiZjLmxlbmd0aD8oYi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGlkZSIpLHguc2VydmljZS5mZWF0dXJlcy5qb2luKCIsICIpLmVzY2FwZUhUTUwoKSk6KGIucGFyZW50KCkuYWRkQ2xhc3MoImhpZGUiKSwi4oCUIil9fSwiI2FjbHVzdGVyIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcy5QaG8oIk1lbWJlcnNoaXAiKS5jbHVzdGVyX25vZGVzfHxbXTtyZXR1cm4gYi5wYXJlbnQoKS50b2dnbGVDbGFzcygiaGlkZSIsYy5sZW5ndGg8MiksYy5sZW5ndGg/dGhpcy5sYW5nLlRYVF9DTFVTVEVSKGMubGVuZ3RoKToi4oCUIn19LCIjYXBlcmZ0ZXN0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbD09YSYmYi5hdHRyKCJocmVmIix3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdLnJlcGxhY2UoL2luZGV4Lmh0bWwkLywiIikucmVwbGFjZSgvXC8kLywiIikrIi9wZXJmdGVzdC5odG1sIil9LGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fC0xPT0oY3cubWUoInJvbGVzIil8fFtdKS5pbmRleE9mKCJfYWRtaW4iKX19fSwiI2hpZGVjb3VjaGFwcCI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fC0xPT0oY3cubWUoInJvbGVzIil8fFtdKS5pbmRleE9mKCJfYWRtaW4iKX19fSwiI2J0bi1hZGwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpczskLm15Lm1vZGFsKHttYW5pZmVzdDokLmV4dGVuZCghMCx7bGFuZzpiLmxhbmcsUGhvOmIuUGhvLFJlcTpiLlJlcX0sYi5Eb3dubG9hZCksZGF0YTp7fSxnbG9iYWw6ITAsc2NyZWVuOiEwLGVzYzohMCxlbnRlcjohMCxjc3M6InAyNSB0YWMiLHdpZHRoOjMwMH0pfX0sZXZlbnRzOiJjbGljay5teSJ9LCIjc2ZvbnQiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHtkYXRhOlt7aWQ6ImF1dG8iLHRleHQ6IkF1dG8ifSx7aWQ6IictYXBwbGUtc3lzdGVtJywnQmxpbmtNYWNTeXN0ZW1Gb250JyIsdGV4dDoiQXBwbGUgc3lzdGVtIGZvbnQifSx7aWQ6IidTZWdvZSBVSSciLHRleHQ6IlNlZ29lIFVJIn0se2lkOiInSGVsdmV0aWNhIE5ldWUnLEhlbHZldGljYSIsdGV4dDoiSGVsdmV0aWNhIn0se2lkOiJVYnVudHUiLHRleHQ6IlVidW50dSJ9LHtpZDoiVGFob21hIix0ZXh0OiJUYWhvbWEifSx7aWQ6IkNvdXNpbmUiLHRleHQ6IkNvdXNpbmUgKG1vbm9zcGFjZWQpIn1dLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImNmZy5mb250In0sIiNzdGhlbWUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX1RIRU1FKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP1t4LmNmZy50aGVtZSsiIl06KHguY2ZnLnRoZW1lIT1hKyIiJiYoeC5jZmcudGhlbWU9YSsiIix0aGlzLlNldFRoZW1lLmRlbGF5KDUsYSsiIikpLGEpfX0sIiNzZndlaWdodCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfRldFSUdIVCl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT9beC5jZmcuZm9udFdlaWdodCsiIl06KHguY2ZnLmZvbnRXZWlnaHQ9YSsiIixhKX19LCIjc2Nmb250Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7ZGF0YTpbe2lkOiJhdXRvIix0ZXh0OiJBdXRvIn0se2lkOiJDb3VzaW5lIix0ZXh0OiJDb3VzaW5lIn0se2lkOiJNb25hY28iLHRleHQ6Ik1vbmFjbyJ9LHtpZDoiQ29uc29sYXMiLHRleHQ6IkNvbnNvbGFzIn1dLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImNmZy5mb250Q29kZSJ9LCIjc2NvbHMiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh7dGFnczp0aGlzLmxhbmcuVEFHX0NPTFN9KX0sYmluZDoiY2ZnLmxpc3RDb2xzIixjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIWN3Lm1lKCl9fX0sIiNzZ3JvdXAiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX0dST1VQKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiZhKyIiIT14LmNmZy5ncm91cGluZysiIiYmKHguY2ZnLmdyb3VwaW5nPWEsdGhpcy5yZWxvYWREQkxpc3QoKSkseC5jZmcuZ3JvdXBpbmd9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3NzY3JvbGwiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCh7dGFnc2hpbToiIixncm91cHNoaW06IiJ9LHRoaXMubGFuZy5UQUdfU0NST0xMKSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnNjcm9sbFNwZWVkPWErIiJ8fCIyIiksW3guY2ZnLnNjcm9sbFNwZWVkKyIiXX0sY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuUGhvKCJfY29tcGlsZWQiKXx8dGhpcy5QaG8oImlPUyIpfHx0aGlzLlBobygiaXNNYWMiKXx8dGhpcy5QaG8oImlzV2ViS2l0Iil9fX0sIiNzcGluZyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKCQuZXh0ZW5kKHt0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0sdGhpcy5sYW5nLlRBR19QSU5HKSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnBpbmdTZXNzaW9uPSsoYSsiIil8fDApLFt4LmNmZy5waW5nU2Vzc2lvbisiIl19fSwiI3Nwb2xsIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcubG9vcEFjdGl2ZVRhc2tzPWlzTmFOKGEpPzU6KDB8K2EpLmNsYW1wKDEsMzYwMCkpLHguY2ZnLmxvb3BBY3RpdmVUYXNrcysiIn0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc3RhdHNwb2xsIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcuc3RhdHNSZWZyZXNoPWlzTmFOKGEpPzEwOigwfCthKS5jbGFtcCg1LDEyMCkpLHguY2ZnLnN0YXRzUmVmcmVzaCsiIn0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc3JlcG8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy5yb290UmVwbz1hLnJlcGxhY2UoL1xzL2csIiIpKSx4LmNmZy5yb290UmVwb30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fCEoIXdpbmRvdy5ERE9DfHwhd2luZG93LkRET0Muc2V0dGluZ3Mucm9vdFJlcG8pfHwhY3cubWUoKX19fSwiI3N1cGQiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCghMCx7fSx0aGlzLmxhbmcuVEFHX1VQRCx7dGFnc2hpbToiIixncm91cHNoaW06IiJ9KSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnVwZGF0ZT1hKyIifHwicmVtaW5kIiksW3guY2ZnLnVwZGF0ZSsiIl19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3NpY29uIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiB4LmNmZy5pY29uP3guY2ZnLmljb246dGhpcy5QaG8oImZpbGVzIilbImZhdmljb24ucG5nIl0udXJsfSx3YXRjaDpbIiNidG4tcmVzZXRpY29uIl19LCIjYnRuLXNldGljb24iOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLm15Lm1vZGFsKCIjYnRuLXNldGljb24iLHttYW5pZmVzdDpiLkNyb3BwZXIsZ2xvYmFsOiEwLGNzczoicDI1IixzY3JlZW46ITB9KS50aGVuKGZ1bmN0aW9uKGEpe3guY2ZnLmljb249YS5kYXRhLGIubXkuY2hlY2soIiNzaWNvbiIpfSl9fSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hKHRoaXMuUGhvKCJfY29tcGlsZWQiKSYmKCF3aW5kb3cuRERPQ3x8IXdpbmRvdy5ERE9DLnNldHRpbmdzLmljb24pJiZjdy5tZSgpJiYheC5jZmcudGhlbWUpfX0sd2F0Y2g6WyIjc3RoZW1lIl19LCIjYnRuLXJlc2V0aWNvbiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5jZmcuaWNvbj0iIil9LGV2ZW50czoiY2xpY2subXkiLHdhdGNoOlsiI3N0aGVtZSJdLGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiEodGhpcy5QaG8oIl9jb21waWxlZCIpJiYoIXdpbmRvdy5ERE9DfHwhd2luZG93LkRET0Muc2V0dGluZ3MuaWNvbikmJmN3Lm1lKCkmJiF4LmNmZy50aGVtZSl9fX0sIiNzcHJveHkiOntkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpe3ZhciBiPXRoaXM7JC5leHRlbmQoYi5QaG8oIkNmZyIpLHguY2ZnKSxiLlBobygiX2NvbXBpbGVkIikmJihiLlBobygiTHMiKSgiQ2ZnIix4LmNmZyksJC5uaWNlc2Nyb2xsLm9wdGlvbnMubW91c2VzY3JvbGxzdGVwPTI1KnguY2ZnLnNjcm9sbFNwZWVkLTUsJCgnbGlua1tyZWw9Imljb24iXScpLmF0dHIoImhyZWYiLHguY2ZnLmljb258fGIuUGhvKCJmaWxlcyIpWyJmYXZpY29uLnBuZyJdLnVybCkpLCQod2luZG93KS50cmlnZ2VyKCJyZXNpemUiKSwkLm15LnJhZGlvKCJwaG90b25fY2ZnX2NoYW5nZSIsT2JqZWN0LmNsb25lKHguY2ZnLCEwKSl9fSx3YXRjaDpbIiNzcmVwbyIsIiNzdXBkIiwiI3N0aGVtZSIsIiNzZm9udCIsIiNzY2ZvbnQiLCIjc2Z3ZWlnaHQiLCIjc3dpZHRoIiwiI3Nwb2xsIiwiI3N0YXRzcG9sbCIsIiNzaWNvbiIsIiNidG4tcmVzZXRpY29uIiwiI3Njb2xzIiwiI3Nncm91cCIsIiNzc2Nyb2xsIiwiI3NiYXIiLCIjc3BpbmciXSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSwiI2F1cGQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGIsYyxkLGU9dGhpcyxmPWUuUGhvKCJDZmciKS5yb290UmVwbyxnPWUubGFuZyxoPSIiO2Q9L19kZXNpZ25cL3Bob3RvbiQvLnRlc3QoZik/e3ZlcnNpb246ZixwaG90b246ZisiP2F0dGFjaG1lbnRzPXRydWUifTp7dmVyc2lvbjpmKyJ2ZXJzaW9uLmpzb24iLHBob3RvbjpmKyJwaG90b24uanNvbiJ9LCQuYWpheCh7dXJsOmQudmVyc2lvbixkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGEoeCl7dmFyIGE9eC5zcGxpdCgiLiIpO3JldHVybiAxZTEyKmFbMF0rMWU2KmFbMV0rKGlzTmFOKGFbMl0pPzk5OTk5OTorYVsyXSl9Yj1lLlBobygiVmVyc2lvbiIpKyIuIitlLlBobygiYnVpbGQiKSxjPXgudmVyc2lvbnx8IjAuMC4wIjt2YXIgZj1hKGIpLGo9YShjKTtyZXR1cm4gZj49aj8oZS5QaG8oIkxzIikoIkxhc3RVcGRhdGUiLHtyZW1pbmRlcjpEYXRlLm5vdygpfSksY3cubGliLm5vdGUoZy5NU0dfVVBEX05PTkVFRCkpOih4LnZlcnNpb25zJiYoaD14LnZlcnNpb25zLnNwbGl0KCIjIyIpLmNvbXBhY3QoITApLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50cmltKCl9KS5yZWR1Y2UoZnVuY3Rpb24oeCxiKXt2YXIgYz1iLnNwbGl0KC9cblxuLyk7cmV0dXJuIGEoY1swXSk+ZiYmeC5wdXNoKGMuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybic8bGkgY2xhc3M9Im1sMTciPnsxfTwvbGk+Jy5hc3NpZ24oeC5lc2NhcGVIVE1MKCkpfSkuam9pbigiXG4iKSkseH0sW10pLmpvaW4oIlxuIikpLmxlbmd0aCYmKGg9Zy5UWFRfVVBEX0ZFQVRVUkVTLmFzc2lnbihoKSksJC5hamF4KHt1cmw6ZC5waG90b24sZGF0YVR5cGU6Impzb24ifSkudGhlbihpKSl9KS5mYWlsKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZy5FUlJfVVBEQVRFX0NIRUNLLCJlcnJvciIpfSl9ZnVuY3Rpb24gaSh4KXskLm15Lm1vZGFsKHttYW5pZmVzdDplLlBobygiQ29uZmlybSIpLGRhdGE6e3RleHQ6Zy5UWFRfVVBELmFzc2lnbihiLGMsaCkseWVzOmcuQlROX1VQREFURSxubzpnLkJUTl9DQU5DRUwsY2FuY2VsOiIiLHVzZUJ1dHRvbnM6ITB9LHdpZHRoOjQ1MCxjc3M6InAyMCB4Z3JheSBsaDE3MCBwYjI1Iixmb2N1czoiI2J0bi15ZXMifSkudGhlbihmdW5jdGlvbihhKXtpZigieWVzIiE9YS5jbWR8fCF3aW5kb3cuRERPQylyZXR1cm4gZS5QaG8oIkxzIikoIkxhc3RVcGRhdGUiLHtyZW1pbmRlcjpEYXRlLm5vdygpfSksdm9pZCAwO3guX3Jldj1lLmRhdGEuZGRvYy5fcmV2fHx3aW5kb3cuRERPQy5fcmV2LHdpbmRvdy5ERE9DJiZ3aW5kb3cuRERPQy5zZXR0aW5ncyYmKHguc2V0dGluZ3M9d2luZG93LkRET0Muc2V0dGluZ3MpO3ZhciBiPXt9O09iamVjdC5rZXlzKHguX2F0dGFjaG1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2JbYV09T2JqZWN0LnNlbGVjdCh4Ll9hdHRhY2htZW50c1thXSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSx4Ll9hdHRhY2htZW50cz1iLGUuUmVxKHt1cmw6W0RET0MuX2RifHwiX3Bob3RvbiIseC5faWRdLG1ldGhvZDoiUFVUIixkYXRhOkpTT04uc3RyaW5naWZ5KHgpLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToidGV4dCJ9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZy5NU0dfVVBEQVRFX09LLCIiLDZlMyksZS5QaG8oIkxzIikoIkxhc3RVcGRhdGUiLHtzdGFtcDpEYXRlLm5vdygpfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjdy5saWIubm90ZShnLkVSUl9VUERBVEUuYXNzaWduKHgsYSksImVycm9yIil9KX0pfX0sZXZlbnRzOiJjbGljay5teSJ9fSxyZWxvYWREQkxpc3Q6ZnVuY3Rpb24oKXskLm15LnJhZGlvKCJkYmxpc3QiLE9iamVjdC5rZXlzKHRoaXMuUGhvKCJBbGwiKSkpfSxzdHlsZTp7IiBjb2RlIjoiZm9udC1zaXplOjEwMyU7IiwiICNzaWNvbiI6ZnVuY3Rpb24oeCl7dmFyIGE9d2luZG93LmRldmljZVBpeGVsUmF0aW98fC45OTk7cmV0dXJuIGE9PU1hdGgucm91bmQoYSk/ImltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWQ7IjoiIn19LEFjdGlvbnM6e2NsZWFuTFM6ZnVuY3Rpb24oKXtmb3IodmFyIHgsYSxiPWxvY2FsU3RvcmFnZSxjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKyl4PWIua2V5KGQpLGE9Yi5nZXRJdGVtKHgpLHguc3RhcnRzV2l0aCgiY3cuUGhvdG9uLlZpZXdTdGF0ZS4iKSYmKGEuaGFzKCdbIi52YWx1ZSInKXx8YS5oYXMoJ1siLmRvYyJdJykpJiZjLnB1c2goYi5rZXkoZCkpO2MuZm9yRWFjaCh4PT5iLnJlbW92ZUl0ZW0oeCkpfX0sSFRNTDpbJzxkaXYgY2xhc3M9InhncmF5IGFwcGhlaWdodCIgaWQ9ImFhbGwiIHN0eWxlPSJtYXJnaW46MCBhdXRvIDAgYXV0bzsgcGFkZGluZzo1MnB4IGNhbGMoNTAlIC0gNDI1cHgpIDIwcHggY2FsYyg1MCUgLSA0MjVweCk7Ij4nLCc8ZGl2IGNsYXNzPSJ3NDUwIGRpYiB2YXQiPicse3JvdzoiNDUwcHgiLGxhYmVsOiIxMjBweCIscm93Q3NzOiJteS1yb3cgcGIyIixsYWJlbENzczoibXktbGFiZWwgZnM5MCJ9LCc8ZGl2IGlkPSJhdGl0bGUiPicsJzxzcGFuIGNsYXNzPSJkaWIgZnMxNTAgbGgxNjAgcHIyMCIgc3R5bGU9Im1pbi13aWR0aDoxMjBweDsiPicsJ0NvdWNoREIgPHNwYW4gaWQ9ImF2ZXIiPjwvc3Bhbj4nLCI8L3NwYW4+IiwiPC9kaXY+IixbIntMX1VSTH0iLCJzcG4jYW5vZGUiXSxbIntMX0NMVVNURVJ9Iiwic3BuI2FjbHVzdGVyIl0sWyJ7TF9WRU5ET1J9Iiwic3BuI2F2ZW5kb3IiXSxbIntMX0NPVUNIfSIsInNwbiNhd2VsY29tZSJdLFsie0xfRkVBVH0iLCJzcG4jYWZlYXR1cmVzIl0sWyJ7TF9QRVJGfSIsJzxhIGlkPSJhcGVyZnRlc3QiIGNsYXNzPSJ0ZG4iIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiPicsJzxzcGFuIGNsYXNzPSJmaS1ncmFwaC1ob3Jpem9udGFsIGJsdWUyIGZzOTAiPjwvc3Bhbj4nLCImbmJzcDt7TF9QRVJGVEVTVH0iLCI8L2E+Il0sJzxkaXYgaWQ9ImF0aXRsZSIgY2xhc3M9Im10MjAiPicsJzxzcGFuIGNsYXNzPSJkaWIgZnMxNTAgbGgxNjAgcHI2IG1iMiIgc3R5bGU9Im1pbi13aWR0aDoxMjBweDsiPicsJ1Bob3RvbsKgPHNwYW4gaWQ9ImFwaG8iPjwvc3Bhbj4nLCI8L3NwYW4+IiwnPHNwYW4gaWQ9ImFwaG9idWlsZCI+PC9zcGFuPicsIjwvZGl2PiIse3Jvd0NzczoibXktcm93IHBiNiJ9LFsie0xfUEhPQUREfSIsInNwbiNhcGhvYWRkIl0sWyJ7TF9QSE9MSUJTfSIsInNwbiNidG4tc2hvd2xpYnMucHNldWRvbGluay50ZG4iLHt0eHQ6IlNob3cgbGlzdC4uLiJ9LCJzcG4jYXBob2xpYnMuZGliLnZhdC5tbC00LmhpZGUiXSxbIntMX1BIT0ZPTlRTfSIsInNwbiNhcGhvZm9udHMuZGliLnZhdC5tbC00Il0se3Jvd0NzczoibXktcm93IG10MTUgbWIyMCAifSwnPGRpdiBpZD0iaGlkZWNvdWNoYXBwIiBjbGFzcz0iaGlkZSI+JyxbIiAiLCc8YnV0dG9uIGlkPSJhdXBkIiBjbGFzcz0iZnMxMDAiPjxzcGFuIGNsYXNzPSJmaS1jbG91ZCBvNDAiPjwvc3Bhbj4ge0xfQ0hFQ0tfVVBEQVRFU33CoDwvYnV0dG9uPiddLHtyb3dDc3M6Im15LXJvdyBtdDIifSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNTAgZmktZG93bmxvYWQgZnM5NSBtcjIgZnM5MCI+PC9zcGFuPiA8c3BhbiBpZD0iYnRuLWFkbCIgY2xhc3M9InBzZXVkb2xpbmsgdGRuIj57TF9ETH08L3NwYW4+J10sWyIgIiwnPHNwYW4gY2xhc3M9ImJsdWUgbzYwIGZpLXNvY2lhbC1naXRodWIgbXIyIj48L3NwYW4+ICcsJzxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lcm1vdXRoL2NvdWNoLXBob3RvbiIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiI+e0xfR0lUSFVCfTwvYT4nXSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNTAgZmktbGlnaHRidWxiIG1yMiI+PC9zcGFuPiAnLCc8YSBocmVmPSJodHRwczovL2Nsb3Vkd2FsbC5tZS9fZGVtby8jY3cvTWFuaWZlc3QvIVd5SmxaR2wwSWl3aVkzY3RVR2h2ZEc5dUxURmpZMlFpWFEtLSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiI+e0xfU09VUkNFU308L2E+J10sIjwvZGl2PiIse3Jvd0NzczoibXktcm93IG10MjAifSxbIiAiLCc8c3BhbiBjbGFzcz0iZ3JheSBmczkwIj4oYykgMjAyMiBlcm1vdXRoLiBQaG90b24gaXMgTUlUIGxpY2Vuc2VkLjwvc3Bhbj4nXSwiPC9kaXY+IiwnPGRpdiBjbGFzcz0idzM3MCBkaWIgdmF0IG1sMzAiPicse3JvdzoiMzcwcHgiLGxhYmVsOiIxMzBweCIscm93Q3NzOiJteS1yb3cgcGI5IixsYWJlbENzczoibXktbGFiZWwgZnM5MCB2YXQgcHQ5In0sJzxkaXYgaWQ9ImF0aXRsZSIgY2xhc3M9ImZzMTUwIGxoMTYwIHBiNiI+e1NfVElUTEV9PC9kaXY+JyxbIntTX1JFUE99IiwiaW5wI3NyZXBvLncxMDBwIl0sWyJ7U19VUER9IiwiZGl2I3N1cGQuZGliLnZhdC53MTAwcC5saDE4MC5wYjIubnciXSxbIntTX1RIRU1FfSIsImRpdiNzdGhlbWUuZGliLnZhdC53MTAwcC5saDE4MC5wYjEiXSxbIntTX0ZDRkFNSUxZfSIsImlucCNzY2ZvbnQudzEwMHAuZnMxMTAiXSxbIntTX0ZGQU1JTFl9IiwiaW5wI3Nmb250LncxMDBwLmZzMTEwIl0sWyJ7U19GV0VJR0hUfSIsImRpdiNzZndlaWdodC5kaWIudmF0LncxMDBwLmxoMTgwLnBiMSJdLFsie1NfU0NST0xMfSIsImRpdiNzc2Nyb2xsLmRpYi52YXQudzEwMHAubGgxODAucGIxIl0sWyJ7U19DT0xTfSIsImRpdiNzY29scy5kaWIudmF0LncxMDBwLmxoMTgwLnBiMSJdLFsie1NfR1JPVVB9IiwiZGl2I3Nncm91cC5kaWIudmF0LncxMDBwLmxoMTgwLnBiMS5udyJdLFsie1NfUElOR30iLCJkaXYjc3BpbmcuZGliLnZhdC53MTAwcC5saDE4MC5wYjMiXSxbIntTX1BPTEx9IiwibnVtI3Nwb2xsLnc2NSIse21pbjoiMSIsbWF4OiIzNjAwIixzdGVwOiIxIn0sIjxzcGFuPiBzPC9zcGFuPiJdLFsie1NfU1RBVFNfUE9MTH0iLCJudW0jc3RhdHNwb2xsLnc2NSIse21pbjoiNSIsbWF4OiIxMjAiLHN0ZXA6IjUifSwiPHNwYW4+IHM8L3NwYW4+Il0se2xhYmVsQ3NzOiJteS1sYWJlbCBmczkwIHB0OCJ9LFsie1NfSUNPTn0iLCc8aW1nIHN0eWxlPSJ3aWR0aDo2NHB4O2hlaWdodDo2NHB4OyIgY2xhc3M9ImRpYiB2YXQgYnIyIiBpZD0ic2ljb24iPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgcHQzIHBsMTAiPicsJzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiIgaWQ9ImJ0bi1zZXRpY29uIj57QlROX0lDT059PC9zcGFuPiA8YnI+JywnPHNwYW4gY2xhc3M9InBzZXVkb2xpbmsgdGRuIGhpZGUiIGlkPSJidG4tcmVzZXRpY29uIj57QlROX0lDT05fUkVTRVR9PC9zcGFuPiddLCc8ZGl2IGlkPSJzcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLCI8L2Rpdj4iXSxDcm9wcGVyOntwYXJhbXM6e3dpZHRoOjY4Nn0sZGF0YTp7ZmlsZW5hbWU6IiIsZGF0YToiIixjcm9wcGVkOiExLHNpemU6NjR9LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0kLm15LmZvcm1nZW4oWyc8ZGl2IGNsYXNzPSJmbCBtcjIwIHRhYyB2YXQgYmctbGdyYXkiIHN0eWxlPSJ3aWR0aDo2MDBweDtoZWlnaHQ6NDUwcHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjQ1MHB4OyIgaWQ9ImNyb3AtZnJhbWUiPicsJzxpbWcgaWQ9InNvdXJjZSIgY2xhc3M9InZhbSIgc3R5bGU9Im1heC13aWR0aDo2MDBweDsgbWF4LWhlaWdodDo0NTBweDsgYmFja2dyb3VuZDp3aGl0ZSIgc3JjPSIiIC8+JywnPGRpdiBjbGFzcz0idzYwMCAgZGliIiBzdHlsZT0iaGVpZ2h0OjQ1MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MCI+JywnPHNwYW4gY2xhc3M9ImRpYiB2YW0gZnMxMTAgYnV0dG9uIj4nLCc8c3BhbiBjbGFzcz0iZmktcGhvdG8iPjxzcGFuIGNsYXNzPSJmczExMCI+ICZuYnNwO1NlbGVjdCBJbWFnZTwvc3Bhbj48L3NwYW4+JywiPC9zcGFuPiIsJzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZSIgY2xhc3M9Inc2MDAgZGliIiBhY2NlcHQ9ImltYWdlL2pwZWcsaW1hZ2UvcG5nIiBzdHlsZT0iaGVpZ2h0OjQ1MHB4O2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MDsgcG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowIj4nLCI8L2Rpdj4iLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3NjUgZGliIHZhdCIgaWQ9InhwcmV2aWV3Ij4nLCc8aW1nIGlkPSJpcHJldmlldyIgc3R5bGU9IndpZHRoOjY0cHg7aGVpZ2h0OjY0cHg7Ym9yZGVyOm5vbmU7IiBjbGFzcz0iYmctZ3JheTciPicse3JvdzoiNjVweCIscm93Q3NzOiJtdDUgZnM5MCB0YWMifSxbIiIsImJ0biNidG4tYXBwbHkudzY1LmdyZWVuIix7dmFsOiJTZXQifV0sIjwvZGl2PiIsJzxkaXYgY2xhc3M9Inc2NSBkaWIgdmF0IiBpZD0ieHdhcm4iPicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImhpZGUiPicsJzxjYW52YXMgaWQ9IngyIiB3aWR0aD0nKzIqYS5kYXRhLnNpemUrIiBoZWlnaHQ9IisyKmEuZGF0YS5zaXplKyI+PC9jYW52YXM+IiwnPGNhbnZhcyBpZD0icHJldmlldyIgY2xhc3M9ImJnLWxncmF5IiBzdHlsZT0id2lkdGg6NjRweDtoZWlnaHQ6NjRweCIgd2lkdGg9JythLmRhdGEuc2l6ZSsiIGhlaWdodD0iK2EuZGF0YS5zaXplKycgc3R5bGU9Im92ZXJmbG93OmhpZGRlbjsiPjwvY2FudmFzPicsIjwvZGl2PiIsJzxpbWcgaWQ9Im1hc2sxIiBjbGFzcz0iaGlkZSIgc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqWTBJaUJvWldsbmFIUTlJalkwSWlCMmFXVjNRbTk0UFNJd0xEQXNOalFzTmpRaVBnb2dJRHh3WVhSb0lHUTlJazB3TERNeUlFTXdMREFnTUN3d0lETXlMREFnUXpZMExEQWdOalFzTUNBMk5Dd3pNaUJETmpRc05qUWdOalFzTmpRZ016SXNOalFnUXpBc05qUWdNQ3cyTkNBd0xETXlJaUJtYVd4c1BTSWpSakJHTUVZd0lpOCtDand2YzNablBnbz0iPiddKTt4Lmh0bWwoYil9LHN0eWxlOnsiIC5qY3JvcC1ob2xkZXIiOiJkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUifSx1aTp7IiNmaWxlIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLGU9Yi5teSgpLnJvb3QsZj1lLmZpbmQoIiNwcmV2aWV3IiksZz1lLmZpbmQoIiNzb3VyY2UiKSxoPWUuZmluZCgiI3gyIiksaT1lLmZpbmQoIiNtYXNrMSIpLGo9e2s6MX0saz0iIjtmdW5jdGlvbiBsKGEpe2lmKHBhcnNlSW50KGEudyk+MCl7dmFyIGIsYyxlLGs9Z1swXSxsPWouayxtPWEudypsfDA7KGI9ZlswXS5nZXRDb250ZXh0KCIyZCIpKS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLGIuZmlsbFN0eWxlPSJ0cmFuc3BhcmVudCIsYi5maWxsUmVjdCgwLDAseC5zaXplLHguc2l6ZSksYi5kcmF3SW1hZ2UoaVswXSwwLDAseC5zaXplLHguc2l6ZSwwLDAseC5zaXplLHguc2l6ZSksYi5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsbT4yKnguc2l6ZT8oKGU9KGM9aFswXSkuZ2V0Q29udGV4dCgiMmQiKSkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJjb3B5IixlLmZpbGxTdHlsZT0idHJhbnNwYXJlbnQiLGUuZmlsbFJlY3QoMCwwLDIqeC5zaXplLDIqeC5zaXplKSxlLmRyYXdJbWFnZShrLGEueCpsfDAsYS55Kmx8MCxtLG0sMCwwLDIqeC5zaXplLDIqeC5zaXplKSxiLmRyYXdJbWFnZShjLDAsMCwyKnguc2l6ZSwyKnguc2l6ZSwwLDAseC5zaXplLHguc2l6ZSkpOmIuZHJhd0ltYWdlKGssYS54Kmx8MCxhLnkqbHwwLG0sbSwwLDAseC5zaXplLHguc2l6ZSkseC5kYXRhPWN3LmxpYi5pbWFnZShmKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuKCgyNTUqeHwwKT4+Mjw8MikvMjU1fSkuc2hhcnBlbigxLjYpLmJyaWdodG5lc3MoMS4xKS5wbmcoKSxkLm15LmZpbmQoIiNpcHJldmlldyIpLmF0dHIoInNyYyIseC5kYXRhKSx4LmNyb3BwZWQ9ITAsZC5teS5jaGVjaygiI2J0bi1hcHBseSIpfX1udWxsIT1hJiZhJiYoYz1iWzBdLmZpbGVzWzBdKSYmZnVuY3Rpb24oKXt4LmZpbGVuYW1lPWMubmFtZTt2YXIgYSxkPW5ldyBGaWxlUmVhZGVyLGU9W107ZC5vbmxvYWQ9ZnVuY3Rpb24oeCl7YT1uZXcgVWludDhBcnJheSh4LnRhcmdldC5yZXN1bHQpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGFbYl0pKTtrPXdpbmRvdy5idG9hKGUuam9pbigiIikpfSxkLm9ubG9hZGVuZD1mdW5jdGlvbigpe2cubG9hZChmdW5jdGlvbigpe2ouaz1nWzBdLm5hdHVyYWxXaWR0aC9nLndpZHRoKCl9KSxnLnJlbW92ZUNsYXNzKCJoaWRlIikuYXR0cigic3JjIiwiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwiK2spLGouaz1nWzBdLm5hdHVyYWxXaWR0aC9nLndpZHRoKCksZy5KY3JvcCh7b25DaGFuZ2U6bCxvblNlbGVjdDpsLmRlYm91bmNlKDIwKSxhc3BlY3RSYXRpbzoxLG1pblNpemU6WzY0LDY0XSxhbGxvd01vdmU6ITB9LGZ1bmN0aW9uKCl7dGhpcy5hbmltYXRlVG8oWzEwMCwxMDAsMzAwLDMwMF0pfSksaz0iIixiLnBhcmVudCgpLmFkZENsYXNzKCJoaWRlIil9LGQucmVhZEFzQXJyYXlCdWZmZXIoYyl9KCl9fSwiI2J0bi1hcHBseSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ4LmNyb3BwZWQmJnRoaXMubXkuY29tbWl0KCl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5jcm9wcGVkfX19fX0sRG93bmxvYWQ6e2RhdGE6e2NmZzp7fX0sSlNPTjohMSxCbG9iOiExLFVybDohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5Vcmw9YS5QaG8oKS5Eb3dubG9hZFVSTCwkLmV4dGVuZCghMCxhLmRhdGEuY2ZnLGEuUGhvKCJDZmciKSkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSx4LnRoZW4oZnVuY3Rpb24oKXthLnJlYWRQaG90b24oKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjb25zb2xlLmxvZyh4LGEpfSl9LHVpOnsiI2FkbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jLlVybCxlPXdpbmRvdy5ERE9DO3JldHVybiBjLlBobygiX2NvbXBpbGVkIikmJmUmJiIiIT09ZD8hMT09PWQ/JzxzcGFuIGNsYXNzPSJ4Z3JheSI+JytjLmxhbmcuTF9ETFBSRVArIjwvc3Bhbj4iOihiLmF0dHIoImhyZWYiLGQpLGIuYXR0cigiZG93bmxvYWQiLCJwaG90b24tIitjLlBobygiVmVyc2lvbiIpLnJlcGxhY2UoL1teMC05XC5dL2csIiIpKyIuIitjLlBobygiYnVpbGQiKSsiLmpzb24iKSxjLmxhbmcuTF9ETF9MSU5LKToiTm8gYXBwIGNvZGUsIHNvcnJ5In19fSxIVE1MOlt7cm93Q3NzOiJteS1yb3cifSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNTAgZmktZG93bmxvYWQgZnM5NSBtcjIiPjwvc3Bhbj4gPGEgaHJlZj0iIiBpZD0iYWRsIiBjbGFzcz0idGRuIiBkb3dubG9hZD0icGhvdG9uLmpzb24iPjwvYT4nXV0scmVhZFBob3RvbjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT13aW5kb3cuRERPQztpZigheC5QaG8oIl9jb21waWxlZCIpfHwhYSlyZXR1cm4iIjt4LlVybHx8eC5SZXEoe3VybDpbYS5fZGJ8fCJfcGhvdG9uIixhLl9pZCx7YXR0YWNobWVudHM6ITB9XX0pLnRoZW4oZnVuY3Rpb24oYSl7eC5kYXRhLmRkb2M9YTt2YXIgYj0kLmV4dGVuZCghMCx7X2lkOiIiLG5hbWU6IiIsdmVyc2lvbjp4LlBobygiVmVyc2lvbiIpKyIuIit4LlBobygiYnVpbGQiKX0sT2JqZWN0LnJlamVjdChhLFsiX3JldiIsIl9hdHRhY2htZW50cyJdKSk7Yi5fYXR0YWNobWVudHM9e30sT2JqZWN0LmtleXMoYS5fYXR0YWNobWVudHMpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9YS5fYXR0YWNobWVudHNbeF07Yi5fYXR0YWNobWVudHNbeF09e2NvbnRlbnRfdHlwZTpjLmNvbnRlbnRfdHlwZSxkYXRhOmMuZGF0YX19KSx4LkpTT049Yjtjdy5saWIuYmFzZTY0MmJsb2IoY3cubGliLmJhc2U2NChKU09OLnN0cmluZ2lmeShiLG51bGwsIiAgIikpLGZ1bmN0aW9uKGEpe3guQmxvYj1hLHguVXJsPVVSTC5jcmVhdGVPYmplY3RVUkwoYSkseC5QaG8oKS5Eb3dubG9hZFVSTD14LlVybCx4Lm15LmNoZWNrKCIjYWRsIil9LCJhcHBsaWNhdGlvbi9qc29uIil9KS5mYWlsKGZ1bmN0aW9uKCl7eC5Vcmw9IiIseC5teS5jaGVjaygiI2FkbCIpfSl9LHN0eWxlOnsiIjoiZm9udC1zaXplOjE4cHg7In19fSwkZXJyb3I6e2lkOiJjdy5QaG90b24uJGVycm9yIixsYW5nOnt9LGRhdGE6e2Vycm9yOiIiLHBhdGg6W10sbWVzc2FnZToiIn0saGFzaDpmdW5jdGlvbigpe3JldHVybiJlcnJvciJ9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIkVycm9yIHN3aXRjaGluZyAjIit0aGlzLmRhdGEucGF0aC5qb2luKCIvIil9LERCMmdvOiIiLERCbGlzdDpbXSxpc0NvdWNoM2FuZEFsbERCczohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5pc0NvdWNoM2FuZEFsbERCcz1hLlBobygiQ291Y2giKS52ZXI+PSIwMDMuIiYmY3cubWUoKSYmIWIucGF0aC5sZW5ndGgseC5odG1sKGEuSFRNTCksYS5pc0NvdWNoM2FuZEFsbERCcyYmeC50aGVuKGZ1bmN0aW9uKCl7eC5maW5kKCIjZS1kYm5hbWUiKS5vbigia2V5dXAubXkiLGZ1bmN0aW9uKGEpe3ZhciBiPWEua2V5Q29kZTsxMyE9YiYmMTAhPWJ8fGZ1bmN0aW9uKCl7eC5maW5kKCIjYnRuLWdvIikudHJpZ2dlcigiY2xpY2siKX0uZGVib3VuY2UoNTApKCl9KX0pfSx1aTp7IiNlLWxvZ28iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGhvKCJTVkciKS5sb2dvfSwiI2UtbXNnIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiLGM9dGhpcyxkPXguZXJyb3I7dHJ5e2I9T2JqZWN0LmlzU3RyaW5nKGQpP2QrIiI6SlNPTi5zdHJpbmdpZnkoZCl9Y2F0Y2goeCl7fXJldHVybiBifHwoYj1kKyIifHwiVW5kZWZpbmVkIGVycm9yIiksYj1iLnNwbGl0KCJ0byBpbml0aWFsaXplOiIpLmxhc3QoKS5jb21wYWN0KCkseC5tZXNzYWdlPWIsYy5pc0NvdWNoM2FuZEFsbERCcz9jLmxhbmcuVFhUX0MzX0FMTF9EQlNfNDAxOmMubGFuZy5UWFRfRVJSLmFzc2lnbigiIyIreC5wYXRoLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCksYil9LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmKGEubmFtZXx8dGhpcy5pc0NvdWNoM2FuZEFsbERCcykmJi9cczQwWzMxXVxzLy50ZXN0KHguZXJyb3IpJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9fX0sIiNlLWNkYm5hbWUiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXRoaXMuaXNDb3VjaDNhbmRBbGxEQnN9fX0sIiNlLWRibmFtZSI6e2RlbGF5OjIwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7dGhpcy5pc0NvdWNoM2FuZEFsbERCcyYmKHguYXR0cigicGxhY2Vob2xkZXIiLHRoaXMubGFuZy5QTENfREJOQU1FKSxhLkRCbGlzdD0oYS5QaG8oIkxzIikoIlRhYkNsb3NlSGlzdG9yeSIpfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRhYnN9KS5mbGF0dGVuKCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnBhdGh9KS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHgubGVuZ3RoJiYiXyIhPXhbMF1bMF19KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF19KS51bmlxdWUoKS5zb3J0KCksYS5EQmxpc3QubGVuZ3RoJiZ4LmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6YS5EQmxpc3QsY2xvc2U6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjYnRuLWRibmFtZSIpfS5kZWJvdW5jZSgxMCksc2VsZWN0OmZ1bmN0aW9uKHgsYil7YS5teS5jaGVjaygiI2UtZGJuYW1lIiksYS5Td2l0Y2guZGVib3VuY2UoNjApKCl9LmRlYm91bmNlKDEwKSxhcHBlbmRUbzphLm15LnJvb3QoKSxtaW5MZW5ndGg6MH0pKX0sYmluZDoidGhpcy5EQjJnbyJ9LCIjYnRuLWRibmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5teS5maW5kKCIjZS1kYm5hbWUiKSxkPSEhYi5EQmxpc3QubGVuZ3RoJiZjLmF1dG9jb21wbGV0ZSgid2lkZ2V0IikuaXMoIjp2aXNpYmxlIik7cmV0dXJuIG51bGwhPWEmJihkP2MuYXV0b2NvbXBsZXRlKCJjbG9zZSIpOmMuYXV0b2NvbXBsZXRlKCJzZWFyY2giLCIiKSxkPSFkKSwiPGRpdj57MX08L2Rpdj4iLmFzc2lnbihkPyLilrIiOiLilrwiKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF0aGlzLkRCbGlzdC5sZW5ndGh9fSx3YXRjaDpbIiNlLWRibmFtZSJdfSwiI2J0bi1nbyI6e2RlbGF5OjI1LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIG51bGwhPWEmJmMuU3dpdGNoKCksYy5sYW5nLkJUTl9HT30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiEvXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QodGhpcy5EQjJnbyl9fSx3YXRjaDpbIiNlLWRibmFtZSJdfSwiI2UtY3JlbG9hZCI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pc0NvdWNoM2FuZEFsbERCc319fSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9IjQwMSI9PXgubWVzc2FnZS50bygzKSYmIWN3Lm1lKCk7aWYobnVsbD09YSlyZXR1cm4gdGhpcy5sYW5nW2I/IkJUTl9BVVRIIjoiQlROX1JFVFJZIl07Yj8kKCIjYnRuLWF1dGgtcG9wdXAiKS50cmlnZ2VyKCJjbGljayIpOiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5pc0NvdWNoM2FuZEFsbERCcyYmdGhpcy5EQmxpc3QubGVuZ3RoJiZ4LmZpbmQoIiNlLWRibmFtZSIpLmF1dG9jb21wbGV0ZSgiZGVzdHJveSIpfSxTd2l0Y2g6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3dpbmRvdy5sb2NhdGlvbi5oYXNoPXguREIyZ28seC5teS5maW5kKCIjZS1kYm5hbWUiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsInNvdXJjZSIseC5EQmxpc3Q9eC5EQmxpc3QuYWRkKHguREIyZ28pLnVuaXF1ZSgpKX0sSFRNTDonPGRpdiBjbGFzcz0icDEwMCB0YWMiPjxkaXYgY2xhc3M9Inc1MHAgbXQyNSB0YWwgZGliIHZhdCBtYjE1Ij48ZGl2IGlkPSJlLWxvZ28iPjwvZGl2PjxkaXYgaWQ9ImUtdGl0bGUiIGNsYXNzPSJkaWIgdmF0Ij5QaG90b248L2Rpdj48L2Rpdj48ZGl2IGlkPSJlLW1zZyIgY2xhc3M9IiI+PC9kaXY+PGZvcm0gaWQ9ImUtY2RibmFtZSIgY2xhc3M9Im10MjUgZnM5NSBoaWRlIj48ZGl2IGNsYXNzPSJ3NTBwIHRhbCBkaWIgdmF0IHBsNzAiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZS1kYm5hbWUiIHN0eWxlPSJ3aWR0aDogY2FsYygxMDAlIC0gMTIycHgpOyBtYXgtd2lkdGg6NjAwcHg7IiBjbGFzcz0ibXIyIj48c3BhbiBzdHlsZT0iIiBjbGFzcz0icHNldWRvbGluayB0ZG4gYmZvbGQgZGliIHZhdCIgdHh0PSIiIGlkPSJidG4tZGJuYW1lIj48ZGl2PuKWvDwvZGl2Pjwvc3Bhbj48ZGl2IGNsYXNzPSJ3MTIwIGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1nbyIgY2xhc3M9IncxMjAgcHIxNSI+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9mb3JtPjxkaXYgaWQ9ImUtY3JlbG9hZCIgY2xhc3M9Im10MjUgZnM5NSBoaWRlIj48ZGl2IGNsYXNzPSJ3NTBwIHRhbCBkaWIgdmF0IHBsNzAiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3MTIwIHByMTUiPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZGl2Picsc3R5bGU6eyIgI2UtbG9nbyI6eyIiOlsid2lkdGg6NTVweDsgaGVpZ2h0OjU1cHg7IGJvcmRlcjoycHggc29saWQgI2EwYjBjMDsgYm9yZGVyLXJhZGl1czo2MHB4OyIsImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1yaWdodDoxM3B4OyBwYWRkaW5nOjE0cHggNXB4OyJdLCIgc3ZnIjoid2lkdGg6MzlweDsgaGVpZ2h0OjIwcHg7In0sIiAjZS10aXRsZSI6ImZvbnQtc2l6ZTo2MHB4OyBsaW5lLWhlaWdodDowLjllbTsgY29sb3I6Izk1YTViNTsgZm9udC13ZWlnaHQ6MjAwOyIsIiAudWktd2lkZ2V0IjoiZm9udC1zaXplOjEwMCUiLCIgLnVpLWF1dG9jb21wbGV0ZSI6ImxpbmUtaGVpZ2h0OjEuM2VtOyBtYXgtaGVpZ2h0OjE5dmg7IG92ZXJmbG93LXk6YXV0bzsgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC5iZm9sZCI6eyIiOlsid2lkdGg6MjBweCFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7ICIsImJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyIsIm1hcmdpbi1sZWZ0Oi0yMXB4OyB6LWluZGV4OisxOyJdLCIgZGl2IjoiZm9udC1zaXplOjYwJTsgb3BhY2l0eTowLjU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozLjJlbTsgd2lkdGg6MTAwJTsifSwiIHVsIjp7Ii51aS1hdXRvY29tcGxldGUiOiJtYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTE1cHgpOyJ9fSxwYXJhbXM6e3N0cmljdDohMH19LCRkb2M6e2lkOiJjdy5QaG90b24uJGRvYyIsbGFuZzp7fSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKHRoaXMuZGF0YS5kb2MpfSxwYXJhbXM6e3Jlc3R5bGU6MjUsc3RyaWN0OiEwfSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLnBhdGgsYz1hLmRvYy5faWQ7cmV0dXJuW3gudHJ1bmMoYlswXSwxMCksIuKAiS/igIkiLCJfZGVzaWduLyI9PWMudG8oOCk/Il9kIitjLmZyb20oNyk6Il91c2VycyI9PWJbMF0/Yy5mcm9tKDE3KTpjLGEucmV2PyLigIlA4oCJIithLnJldjoiIl0uam9pbigiIil9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7aWYoYSlyZXR1cm4iX25ldyI9PXhbMV0/e3RpdGxlOiJOZXcgZG9jIixhcHBEYXRhOntpc05ldzohMCxkb2M6Il91c2VycyI9PXhbMF0/e19pZDoib3JnLmNvdWNoZGIudXNlcjpfdXNlcm5hbWVfIix0eXBlOiJ1c2VyIixuYW1lOiJfdXNlcm5hbWVfIixwYXNzd29yZDoiX3Bhc3N3b3JkXyIscm9sZXM6W119OnhbMF09PXRoaXMuUmVwbGljYXRvckRCP3tfaWQ6IiIsc291cmNlOiIiLHRhcmdldDoiIixjcmVhdGVfdGFyZ2V0OiExLGNvbnRpbnVvdXM6ITEsZG9jX2lkczpbXSxmaWx0ZXI6IiIsdXNlcl9jdHg6e25hbWU6IiIscm9sZXM6W119LHF1ZXJ5Ont9fTp7fX19OjIhPXgubGVuZ3RofHwiXyI9PXhbMV1bMF0mJiEvXl8oZGVzaWdufGxvY2FsKVwvLy50ZXN0KHhbMV0pPzMhPXgubGVuZ3RofHwiXyI9PXhbMV1bMF0mJiEvXl9kZXNpZ25cLy8udGVzdCh4WzFdKXx8Il8iIT14WzJdWzBdP3ZvaWQgMDp7dGl0bGU6dGhpcy50cnVuYyh4WzBdLDEwKSsi4oCJL+KAiSIreFsxXSx0eXBlOiJkb2MiLGFwcERhdGE6e3Jldjp4WzJdLnJlcGxhY2UoL15cRCsvLCIiKX19Ont0aXRsZTp0aGlzLnRydW5jKHhbMF0sMTApKyLigIkv4oCJIit4WzFdLHR5cGU6ImRvYyJ9fSxkYXRhOntpc05ldzohMSxwYXRoOltdLHJldjoiIixyZXZsYXN0OiIiLHJldnN0YXJ0OiIiLHNlYXJjaDoiIixkb2M6e19pZDoiIn0sY29uZmxpY3RzOltdLHJldnM6W10sYXR0czohMX0sRG9jOltdLFJUOmZ1bmN0aW9uKHgpe3JldHVybiBudWxsPT14P3RoaXM6T2JqZWN0LmlzQXJyYXkoeCk/Y3cubGliLmdldHJlZih0aGlzLHgpOnRoaXNbeF19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtyZXR1cm4geC5hZGRDbGFzcygibnciKSxiLnBhdGgubGVuZ3RoPigiX2Rlc2lnbiI9PWIucGF0aFsxXT8zOjIpJiYoYi5yZXY9Yi5wYXRoLmxhc3QoKS5yZXBsYWNlKC9eXEQrLywiIikpLGIucmV2c3RhcnQ9Yi5yZXYsYS5IVE1MLkhpc3RvcnlSb3c9YS5QaG8oIkNvbXBpbGVUIikoYS5IVE1MLkhpc3RvcnlSb3cpLGEuSGlzdG9yeS5pbml0KGEseCksYS5HZXREb2MoKS50aGVuKGZ1bmN0aW9uKCl7eC5odG1sKGEuSFRNTC5BcHAuYXNzaWduKGEubGFuZykpfSkudGhlbihmdW5jdGlvbigpe2EuQnVzeSghMSl9LmRlYm91bmNlKDEwMCkpfSx1aTp7IiNhcHAtdGl0bGUiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLnAydSxjPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oYih4LnBhdGhbMF0pLGEudHJ1bmMoeC5wYXRoWzBdLDE1KS5lc2NhcGVIVE1MKCkseC5wYXRoWzBdLmVzY2FwZUhUTUwoKSksZD14LmRvYy5faWR8fHgucGF0aFsxXSsoIl9kZXNpZ24iPT14LnBhdGhbMV0/Ii8iK3gucGF0aFsyXToiIiksZT0nPGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKFsiIixiKHgucGF0aFswXSksYihkKV0uam9pbigiLyIpLmVzY2FwZUhUTUwoKSsoeC5yZXY/Ij9yZXY9Iit4LnJldjoiIiksZC5lc2NhcGVIVE1MKCksZC5sZW5ndGg+MTU/ZC5lc2NhcGVIVE1MKCk6IiIpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTUwIGxoMTMwIHhncmF5IG10LTEgbzgwIj4nLCc8c3BhbiBjbGFzcz0ibzgwIj57Mn08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnsxfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGUsYyl9LHdhdGNoOlsiI2FwcC1yZXYiLCIjanNlZGl0b3IiXX0sIiNhcHAtcmV2Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlJldnNMaXN0KCIjYXBwLXJldiIpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJldiE9YSYmKHguYXR0cz0hMSkseC5yZXY9YSkseC5yZXZ9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuL15fbG9jYWxcLy8udGVzdCh4LmRvYy5faWQpfX19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LnNlYXJjaDooeC5zZWFyY2g9YS5sZW5ndGg8Mz8iIjphLHRoaXMuRG9jWzBdJiZ0aGlzLkRvY1swXS5zZWFyY2ghPXguc2VhcmNoJiZ0aGlzLm15LmZpbmQoIiNqc29uLXNlYXJjaCIpLnZhbCh4LnNlYXJjaCkudHJpZ2dlcigiY2hlY2siKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99fSwiI2pzZWRpdG9yIjp7ZGVsYXk6MTAwLGNoZWNrOiExLGxpc3Q6IjxkaXY+PC9kaXY+IixtZXJnZTohMSxpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZG9jLl9pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oeC5kb2MpfSxtYW5pZmVzdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLnBhdGg7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuUGhvKCJFZCIpLmpzb250cmVlLGEuRXh0RWQse01Sb290OmZ1bmN0aW9uKCl7cmV0dXJuIGEubXkucm9vdCgpfSxHZXRBdHRzOmEuR2V0QXR0cyxkYXRhOntsYWJlbFdpZHRoOiJfcmVwbGljYXRvciI9PWJbMF0/MTc1OiJfZCI9PWJbMV0udG8oMik/MTYwOjE1MH19KX0sYmluZDoidGhpcy5Eb2MifSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLkdldERvYyghMCwhMCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoNTApKX19LGxpc3Rlbjp7ZmlsZXVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKCF4LnJldiYmT2JqZWN0LmlzT2JqZWN0KGEpJiZhLmRiPT14LnBhdGhbMF0mJmEuZG9jPT14LmRvYy5faWQmJmEucmV2PT14LmRvYy5fcmV2KXt2YXIgYj10aGlzO2IuR2V0RG9jKCEwLCEwKS5hbHdheXMoZnVuY3Rpb24oKXtiLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpfX19fSwiI2J0bi1kb2Mtc2F2ZWFzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiLGM9dGhpcztmdW5jdGlvbiBkKCl7Yy5CdXN5KCEwKSxjLlNhdmVBbGwoKS5hbHdheXMoZnVuY3Rpb24oKXtjLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpfWZ1bmN0aW9uIGUoKXt4LmRvYy5faWQ9Yi5kb2MuX2lkLHgucGF0aFswXT1iLnBhdGhbMF0seC5wYXRoWzFdPWIuZG9jLl9pZCxPYmplY3Qua2V5cyh4LmRvYykuZm9yRWFjaChmdW5jdGlvbihhKXsiXyI9PWFbMF0mJiJfaWQiIT1hJiYiX2F0dGFjaG1lbnRzIiE9YSYmZGVsZXRlIHguZG9jW2FdfSkseC5yZXY9IiIseC5yZXZsYXN0PSIiLHgucmV2cz1bXSx4LmlzTmV3PSEwfWZ1bmN0aW9uIGYoKXtjLkRvYz1be2RibmFtZTp4LnBhdGhbMF0scmV2aXNpb246IiIsYmFzZXVybDpjLlBobygiQmFzZSIpLGRvYzp4LmRvY31dLGMubXkucmVkcmF3KCl9bnVsbCE9YSYmYy5teS5tb2RhbCgiI2J0bi1kb2Mtc2F2ZWFzIix7cm9vdDpjLm15LnJvb3QoKSxzY3JlZW46ITAsZ2xvYmFsOiEwLGVzYzohMCxlbnRlcjohMSxjbG9zZTohMSx3aWR0aDo0MDAsejoxOTk1LGNzczoicDIwIHB0MTUiLG1hbmlmZXN0OiQuZXh0ZW5kKCEwLHtQaG86Yy5QaG8sUlQ6Yy5SVH0sYy5OZXdEb2NUZ3QpLGRhdGE6T2JqZWN0LmNsb25lKGMuZGF0YSwhMCl9KS50aGVuKGZ1bmN0aW9uKHgpe2I9eH0pLnRoZW4oYy5BcHBseUVkcykudGhlbihmdW5jdGlvbigpe2MuQnVzeSghMCksYi5kb2MuX2F0dGFjaG1lbnRzJiZPYmplY3Quc2l6ZShiLmRvYy5fYXR0YWNobWVudHMpJiZPYmplY3QudmFsdWVzKGIuZG9jLl9hdHRhY2htZW50cykuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiF4LmRhdGF9KS5sZW5ndGg/Yy5HZXRBdHRzKCEwKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPWEuX2F0dGFjaG1lbnRzO2lmKGIpe3guZG9jLl9hdHRhY2htZW50c3x8KHguZG9jLl9hdHRhY2htZW50cz17fSk7dmFyIGM9eC5kb2MuX2F0dGFjaG1lbnRzO09iamVjdC5rZXlzKGIpLmZvckVhY2goZnVuY3Rpb24oeCl7Y1t4XSYmIWNbeF0uZGF0YSYmKGNbeF09T2JqZWN0LnNlbGVjdChiW3hdLFsiY29udGVudF90eXBlIiwiZGF0YSJdKSl9KX1lbHNlIGM9eC5kb2MuX2F0dGFjaG1lbnRzfHx7fTtPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2NbeF0uZGF0YXx8ZGVsZXRlIGNbeF19KX0pLnRoZW4oZSkudGhlbihmKS50aGVuKGQpOihlKCksZCgpKX0pfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlzTmV3fX19LCIjYnRuLWRvYy1zYXZlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuY21kU2F2ZSgpfX0sIiNidG4tZG9jLWRlbCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO251bGwhPWEmJihiLkJ1c3koITApLGIuRGVsRG9jKCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoNTApKSl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXt2YXIgYj14LmNvbmZsaWN0c3x8W10sYz14LnJldnMmJngucmV2c1swXSYmeC5yZXZzWzBdPT14LmRvYy5fcmV2O3JldHVybiBiLmxlbmd0aD8hYyYmLTE9PWIuaW5kZXhPZih4LmRvYy5fcmV2fHwiIik6ISgvXl9sb2NhbFwvLy50ZXN0KHguZG9jLl9pZCl8fHguZG9jLl9yZXYmJmMpfX0sd2F0Y2g6WyIjYXBwLXJldiJdfSwiI2J0bi1kb2MtZGlmZiI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMucDJ1O2IuYXR0cigiaHJlZiIsIiN7MX0vX2RpZmYvezJ9L3szfS97NH0iLmFzc2lnbihjKHgucGF0aFswXSksYyh4LnBhdGhbMV0pLCJfIisoeC5yZXZ8fCIiKSwiXyIpKX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4geC5jb25mbGljdHMubGVuZ3RoK3gucmV2cy5sZW5ndGg8Mnx8L15fbG9jYWxcLy8udGVzdCh4LmRvYy5faWQpfX0sd2F0Y2g6WyIjYXBwLXJldiJdfSwiI3N0YXRlLXByb3h5Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpe3ZhciBiPXRoaXM7eC5yZXY/eC5wYXRoLmxhc3QoKSE9eC5kb2MuX2lkP3gucGF0aFt4LnBhdGgubGVuZ3RoLTFdPSJfIit4LnJldjp4LnBhdGgucHVzaCgiXyIreC5yZXYpOngucGF0aC5sYXN0KCkhPXguZG9jLl9pZCYmKHgucGF0aC5sZW5ndGg9KHgucGF0aC5sZW5ndGgtMSkuY2xhbXAoMiw2KSkseC5yZXYhPXgucmV2bGFzdCYmKCQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRoLHRpdGxlOmIudGl0bGUoKX0pLHgucmV2bGFzdDI9eC5yZXZsYXN0LHgucmV2bGFzdD14LnJldixiLkdldERvYyghMCwhMCkudGhlbihmdW5jdGlvbigpe3gucmV2bGFzdDI9bnVsbH0pLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDUwKSkpfX0sd2F0Y2g6IiNhcHAtcmV2IixsaXN0ZW46e2RiZGVsZXRlZDpmdW5jdGlvbih4LGEpe2lmKGE9PXgucGF0aFswXSl7dmFyIGI9dGhpczsoZnVuY3Rpb24oKXtiLm15LnJvb3QoKS50cmlnZ2VyKCJ0YWJjbG9zZSIse3RhYmlkOngudGFiaWQsZW5mb3JjZTohMH0pfSkuZGVib3VuY2UoTnVtYmVyLnJhbmRvbSgxMCw1MCkpKCl9fX19LCIjZG9jLWhpc3RvcnkiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhLE9iamVjdC5pc0FycmF5LE9iamVjdC5pc09iamVjdDthLm5pY2VTY3JvbGwoeCkseC5saXN0KHtkYXRhOmEuSGlzdG9yeS5zdGVwcyxkZWxheTowLGNodW5rOjUwLHNvcnRCeTpudWxsLGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlkfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlkK3guaGFzaH0sdGVtcGxhdGU6ZnVuY3Rpb24oeCxiKXtyZXR1cm4gYS5IVE1MLkhpc3RvcnlSb3cuYXNzaWduKHtwYXRoOnguc3BhdGgsaWNvOiJpbnMiPT14Lm9wPyJwbHVzIjoiZGVsIj09eC5vcD8ibWludXMiOiJjaGVjayIsaGFzaDp4Lmhhc2gsc3ZhbDp4LnN2YWwsb3A6eC5vcCx0aXA6WyJDbGljayB0byB1bmRvICIrKCJpbnMiPT14Lm9wPyJpbnNlcnRpb24uIjoiZGVsIj09eC5vcD8iZGVsZXRpb24uIjoiZWRpdHMuIiksImlucyIhPXgub3A/IlJlc3RvcmVkIHZhbHVlOiAiK3gudmFsLnRydW5jYXRlKDE1MCkuZXNjYXBlSFRNTCgpOm51bGxdLmNvbXBhY3QoKS5qb2luKCJcbiIpfSl9fSkseC5vbigiY2xpY2subXkiLCIuaC1yb3ciLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5pbmRleCgpO2EuSGlzdG9yeS51bmRvKGIpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJihiLmxpc3QoImRhdGEiLHRoaXMuSGlzdG9yeS5zdGVwcyksYlswXS5zY3JvbGxUb3A9MWU2KX0sd2F0Y2g6WyIjYnRuLWhpc3RvcnktY2xlYXIiXX0sIiNzdHlsZS1oaXN0b3J5Ijp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9Ii5teS1mb3JtLSIreC5teS5yb290KCkubXkoKS5jaWQrJyAuaC1yb3dbZGF0YS1wYXRoPSJ7MX0iXTpob3Zlcn4uaC1yb3dbZGF0YS1wYXRofD0iezF9Il17YmFja2dyb3VuZC1jb2xvcjogI2VmZjZmZjsgb3BhY2l0eTowLjU7fScsYj17fTtyZXR1cm4geC5IaXN0b3J5LnN0ZXBzLmZvckVhY2goZnVuY3Rpb24oeCl7Ylt4Lmhhc2hdPTF9KSxPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGEuYXNzaWduKHgpfSkuam9pbigiXG4iKX0sd2F0Y2g6WyIjZG9jLWhpc3RvcnkiLCIjYnRuLWhpc3RvcnktY2xlYXIiXX0sIiNlbXB0eS1oaXN0b3J5Ijp7ZGVsYXk6MjAsY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RofX0sd2F0Y2g6WyIjZG9jLWhpc3RvcnkiXX0sIiNidG4taGlzdG9yeS1jbGVhciI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLkhpc3RvcnkuY2xlYXIoITApfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGh9fSx3YXRjaDpbIiNkb2MtaGlzdG9yeSJdfSwiI2J0bi1oaXN0b3J5LXVuZG8iOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5jbWRVbmRvKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5IaXN0b3J5LnN0ZXBzLmxlbmd0aH19LHdhdGNoOlsiI2RvYy1oaXN0b3J5Il19fSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjanNlZGl0b3IiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LGNtZFVuZG86ZnVuY3Rpb24oKXt0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RoJiZ0aGlzLkhpc3RvcnkudW5kbyh0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RoLTEpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpczt4LkFwcGx5RWRzKCkudGhlbihmdW5jdGlvbigpe3guU2F2ZUFsbCgpLmFsd2F5cyhmdW5jdGlvbigpe3guQnVzeSghMSl9LmRlYm91bmNlKDUwKSl9KX0sSFRNTDp7QXBwOic8ZGl2IGlkPSJjb2wtZWQiIGNsYXNzPSJkaWIgdmF0IHduIj48ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzE1NSBmczk1Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IiB0aXRsZT0ie1BMQ19SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgaWQ9ImFwcC10aXRsZSIgY2xhc3M9ImRpYiB2YXQgZWxsIG1yMTAgbnciPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzIwMCBtcjEwIj48aW5wdXQgaWQ9ImFwcC1yZXYiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1kb2Mtc2F2ZSIgY2xhc3M9ImdyZWVuIG1yMiI+e0JUTl9TQVZFfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kb2Mtc2F2ZWFzIiBjbGFzcz0idGVhbCBtcjIiPntCVE5fU0FWRUFTfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kb2MtZGVsIiBjbGFzcz0icmVkIG1yMiI+e0JUTl9ERUx9PC9idXR0b24+PGEgaHJlZj0iIiBpZD0iYnRuLWRvYy1kaWZmIiBjbGFzcz0iaGlkZSBidXR0b24gdGRuIHZhdCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNGVtOyI+e0JUTl9ESUZGfTwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJqc2VkaXRvciIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjb2wtaGlzdG9yeSIgY2xhc3M9ImRpYiB2YXQgeGdyYXkgd24iPjxkaXYgaWQ9ImgtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LXVuZG8iIGNsYXNzPSJsaDE0MCBtcjIiPntCVE5fSElTVF9VTkRPfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LWNsZWFyIiBjbGFzcz0ibGgxNDAiPntCVE5fSElTVF9DTEVBUn08L2J1dHRvbj48L2Rpdj48c3BhbiBjbGFzcz0iZnMxNTAgZGliIHZhdCBwbDUgbzkwIHB0MyI+e1RYVF9ISVNUX1RJVExFfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJlbXB0eS1oaXN0b3J5IiBjbGFzcz0iaGlkZSBwYWJjIHBsNSBwdDggZ3JheSIgc3R5bGU9InRvcDowOyBsZWZ0OjA7Ij57VFhUX0hJU1RfRU1QVFl9PC9kaXY+PGRpdiBpZD0iZG9jLWhpc3RvcnkiIGNsYXNzPSJwYW5lbGhlaWdodCBwcjIwIHB0MTAgcGIxNiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvZGl2PjwvZGl2PjxzdHlsZSBpZD0ic3R5bGUtaGlzdG9yeSIgY2xhc3M9ImhpZGUiPjwvc3R5bGU+PGRpdiBpZD0ic2Nyb2xsLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdGUtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLEhpc3RvcnlSb3c6JzxkaXYgY2xhc3M9Imgtcm93IHcxMDBwIGNwIG9wLXtvcH0iIHRpdGxlPSJ7dGlwfSIgZGF0YS1wYXRoPSJ7aGFzaH0iPjxkaXYgY2xhc3M9ImgtdWJ0biBwYWJjIHBsNCBwdDMgZnM5NSBibHVlMiIgc3R5bGU9InRvcDowOyByaWdodDowOyB0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpOyI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idzE1IGRpYiB2YXQgbWwtMTUgbzQwIGZzODUgbXQxIGZpLXtpY299Ij48L3NwYW4+PGRpdiBjbGFzcz0ibXcxMDBwIHRkbiBkaWIgbncgb2ggZWxsIHBzZXVkb2xpbmsiPntwYXRofSA8L2Rpdj48ZGl2IGNsYXNzPSJ0ZGkgbXcxMDBwIGZzOTAgbGgxMzAgbzcwIGRpYiB2YWwgbncgb2ggZWxsIj57c3ZhbH08L2Rpdj48L2Rpdj4nfSxIaXN0b3J5Ontpbml0OmZ1bmN0aW9uKHgpe09iamVjdC5rZXlzKHguSGlzdG9yeSkuZm9yRWFjaChmdW5jdGlvbihhKXsiZnVuY3Rpb24iPT10eXBlb2YgeC5IaXN0b3J5W2FdJiYoeC5IaXN0b3J5W2FdPXguSGlzdG9yeVthXS5iaW5kKHgpKX0pLHguSGlzdG9yeS5jbGVhcigpfSxlbWl0OmZ1bmN0aW9uKHgsYSxiLGMpe3ZhciBkPXRoaXMsZT1kLkhpc3RvcnksZj1kLkRvY1swXS5kb2MsZz0hMCxoPXguZmxhdCgpLGk9W10saj1PYmplY3QuaXNPYmplY3Qsaz1PYmplY3QuaXNBcnJheSxsPShlLmhhc2gsZS5yYW5kKTtpZihqKGEpJiZqKGIpKXt2YXIgbT1bYSxiXS5yZWR1Y2UoZnVuY3Rpb24oeCxhLGIpe3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3hbY118fCh4W2NdPVt2b2lkIDAsdm9pZCAwXSkseFtjXVtiXT1jdy5saWIuc2RibShhW2NdKX0pLHh9LHt9KTtPYmplY3QudmFsdWVzKG0pLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geFswXSE9eFsxXX0pLmxlbmd0aDwxMCYmKE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9bVt4XTtpZihjWzBdIT1jWzFdKXt2YXIgZD1udWxsPT1jWzBdPyJpbnMiOnZvaWQgMD09PWNbMV0/ImRlbCI6InVwZCI7aS5wdXNoKFtoLmNvbmNhdCh4KSxkLHZvaWQgMD09PWNbMF0/Ylt4XTphW3hdLCJkZWwiPT1kP251bGw6Ylt4XV0pfX0pLGc9ITEpfWlmKGcpe3ZhciBuPXZvaWQgMD09PWE/ImlucyI6dm9pZCAwPT09Yj8iZGVsIjoidXBkIjtpLnB1c2goW2gsbiwiaW5zIj09bj9iOmEsImRlbCI9PW4/bnVsbDpiXSl9ZnVuY3Rpb24gbyh4LGEsYixkKXt2YXIgZz1jdy5saWIuZ2V0cmVmKGYseC5zbGljZSgxKS50bygtMSkpLGg9ayhnKSxpPSJkZWwiPT1hJiZoPysrZS5kZWxzOjAsaj14Lmxlbmd0aCxtPUpTT04uc3RyaW5naWZ5KGIsbnVsbCwiICIpLG49bnVsbDtpZighaCl7dmFyIG89T2JqZWN0LmtleXMoZykscD1vLmluZGV4T2YoeC5sYXN0KCkpOyJkZWwiIT1hP249W3A+MD9vW3AtMV06bnVsbCxwPT1vLmxlbmd0aC0xP251bGw6cD4tMT9vW3ArMV06bnVsbF06YyYmKG49Yyl9dmFyIHE9ZS5yZWhhc2goe2lkOmwoKSx0czpEYXRlLm5vdygpLHBhdGg6eCxjdHg6bixoYXNoOiIiLG9wOmEsdmFsOm0sZGVsOmkscm93Omgsc3BhdGg6IiIsc3ZhbDooImRlbCI9PWE/IsKgd2FzICIrbS50bygxMDApLnJlcGxhY2UoL1xuXHMrL2csIiIpOiLCoD3CoCAiK0pTT04uc3RyaW5naWZ5KGQpLnRvKDEwMCkpLnJlcGxhY2UoL1xcbi9nLCLCtiIpLmVzY2FwZUhUTUwoKS5yZXBsYWNlKC/Cti9nLCc8c3BhbiBjbGFzcz0iZ3JheTIgcGwxIHByMSI+wrY8L3NwYW4+Jyl9KTtpZigiZGVsIj09YSYmaCl7dmFyIHI9ZS5oYXNoKHgudG8oLTEpLDApKyItIixzPSt4Lmxhc3QoKTtlLnN0ZXBzLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeC5oYXNoLnN0YXJ0c1dpdGgocikpe3ZhciBhPSt4LnBhdGhbai0xXTthIT1zfHx4LmRlbD9hPnMmJih4LnBhdGhbai0xXT0oYS0xKS5jbGFtcCgwLDFlNikrIiIsZS5yZWhhc2goeCkpOih4LmRlbD1pLGUucmVoYXNoKHgpKX19KX1pZigiaW5zIj09YSYmaCl7cj1lLmhhc2goeC50bygtMSksMCkrIi0iLHM9K3gubGFzdCgpO2Uuc3RlcHMuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4Lmhhc2guc3RhcnRzV2l0aChyKSl7dmFyIGE9K3gucGF0aFtqLTFdO2E+PXMmJih4LnBhdGhbai0xXT0oYSsxKS5jbGFtcCgwLDFlNikrIiIsZS5yZWhhc2goeCkpfX0pfWUuc3RlcHMucHVzaChxKX1pLmZvckVhY2goZnVuY3Rpb24oeCl7byh4WzBdLHhbMV0seFsyXSx4WzNdKX0pLGQubXkuY2hlY2soIiNkb2MtaGlzdG9yeSIpfSx1bmRvOmZ1bmN0aW9uKHgpe2Zvcih2YXIgYT10aGlzLGI9KGEuZGF0YSxhLkhpc3RvcnkpLGM9Yi5zdGVwcyxkPWNbeF0sZT1kLmhhc2gsZj1iLmhhc2goZC5wYXRoLnRvKC0xKSwwKSsiLSIsZz1kLnBhdGguc2xpY2UoMSksaD1nLmxlbmd0aCxpPUpTT04ucGFyc2UoZC52YWwpLGo9ZC5vcCxrPTAsbD1hLkRvY1swXS5kb2MsbT0oT2JqZWN0LmlzT2JqZWN0LE9iamVjdC5pc0FycmF5KSxuPShiLmhhc2gsMCksbz1sO248Zy5sZW5ndGgtMSYmbyYmIm9iamVjdCI9PXR5cGVvZiBvO24rKylvPSJvYmplY3QiPT10eXBlb2Ygb1tnW25dXSYmbnVsbCE9b1tnW25dXT9vW2dbbl1dOm51bGw7aWYoIW8pcmV0dXJuIHIoIk5vZGUgdG8gbW9kaWZ5IGRvZXNu4oCZdCBleGlzdCIpO2Z1bmN0aW9uIHAoeCl7aWYoeClmb3IodmFyIGE9K2cubGFzdCgpLGQ9ZixlPTA7ZTxjLmxlbmd0aDtlKyspY1tlXS5oYXNoLnN0YXJ0c1dpdGgoZCkmJitjW2VdLnBhdGhbaF0+PWEmJihjW2VdLnBhdGhbaF09IiIrKCtjW2VdLnBhdGhbaF0reCkuY2xhbXAoMCwxZTYpLGIucmVoYXNoKGNbZV0pKX1mdW5jdGlvbiBxKCl7dmFyIHg9ImRlbCI9PWo/ImlucyI6ImlucyI9PWo/ImRlbCI6InVwZCIsYj1hLm15LmZpbmQoIiNqc2VkaXRvcj5kaXYiKS5teSgibWFuaWZlc3QiKS5NdXRhdGUoe3BhdGg6ZyxjdHg6ZC5jdHgsdmFsOiJkZWwiIT14P2k6dm9pZCAwLG9wOngsZXhwYW5kOiEwLGJsaW5rOiJiZy1ibHVlNyJ9KTtiLmVycm9yP3IoYi5lcnJvcik6YS5teS5jaGVjaygiI2RvYy1oaXN0b3J5Iil9ZnVuY3Rpb24gcih4KXtjdy5saWIubm90ZSh4LCJlcnJvciIsNGUzKSxhLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0iZGVsIiE9aiYmZC5yb3cmJmMuZmlsdGVyKGZ1bmN0aW9uKGEsYil7cmV0dXJuIShiPD0reCkmJihhLnJvdyYmImRlbCI9PWEub3AmJmEuZGVsPT1kLmRlbCYmYS5wYXRoLmxlbmd0aD09aCsxJiZhLmhhc2guc3RhcnRzV2l0aChmKSl9KS5sZW5ndGgmJihqPSJpbnMiPT1qPyJub29wIjoidXBkIj09aj8iZGVsIjpqKSwiZGVsIj09aj9oP20obykmJi9eXGQrJC8udGVzdChnLmxhc3QoKSkmJnAoMStrKTpsPWk6InVwZCI9PWp8fCJpbnMiPT1qJiZoJiZtKG8pJiYvXlxkKyQvLnRlc3QoZy5sYXN0KCkpJiZwKC0xK2spLGIuc3RlcHM9Yy5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09eHx8Yj54JiZhLmhhc2guc3RhcnRzV2l0aChlKT9udWxsOmF9KS5jb21wYWN0KCkscSgpfSxjbGVhcjpmdW5jdGlvbih4KXt0aGlzLkhpc3Rvcnkuc3RlcHM9W10sdGhpcy5IaXN0b3J5LmRlbHM9MCx4JiZ0aGlzLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0saGFzaDpmdW5jdGlvbih4LGEpe3ZhciBiPXguZmxhdCgpLGM9Yi5sZW5ndGgtMTtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oeCxiKXtyZXR1cm4gY3cubGliLnNkYm0oYiE9Y3x8MD09YT94Olt4LGFdKX0pLmpvaW4oIi0iKX0scmVoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiB4Lmhhc2g9dGhpcy5IaXN0b3J5Lmhhc2goeC5wYXRoLHguZGVsKSx4LnNwYXRoPXgucGF0aC5sZW5ndGg8Mj8iRG9jIHJvb3QiOngucGF0aC5zbGljZSgxKS5qb2luKCLigIku4oCJIikudHJ1bmNhdGUoMzIsIm1pZGRsZSIsIi4uLiIpLmVzY2FwZUhUTUwoKSx4fSxyYW5kOmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5yYW5kb20oMCwyMTc2NzgyMzM1KS50b1N0cmluZygzNikucGFkTGVmdCg2LCIwIil9LHN0ZXBzOltdLGRlbHM6MH0sc3R5bGU6eyIgIjpmdW5jdGlvbih4KXt2YXIgYT0wfHgud2lkdGgoKSxiPTB8KGEvNC41KS5jbGFtcCgyODAsNDUwKSxjPWEtYixkPSJ3aWR0aDp7MX1weCI7cmV0dXJueyIgI2NvbC1lZCI6ZC5hc3NpZ24oYyksIiAjY29sLWhpc3RvcnkiOmQuYXNzaWduKGIpfX0sIiAjanNlZGl0b3IiOnsiPmRpdiI6Im1pbi1oZWlnaHQ6OTkuOSU7IiwiPi5teS1mb3JtPnNlY3Rpb24+I2VkaXRvcj4jZG9jPi5pYWN0LmJ1dHRvbnMiOiJwYWRkaW5nLXJpZ2h0OjNweDsiLCIgLmlhY3QgLmJ1dHRvbiI6IiAgaGVpZ2h0OiAxLjdlbTtsaW5lLWhlaWdodDogMS4xZW07In0sIiAubXktbW9kYWwtZm9ybSI6eyIgLkNvZGVNaXJyb3IgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6Y2FsYygxOCAqIDE3cHggKyA2cHgpOyIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6InRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zczsiLCIuZWQtZXJyb3IgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiIC5Db2RlTWlycm9yIjoibWluLWhlaWdodDoxNTBweDsgaGVpZ2h0OmF1dG87IiwiIC5idXR0b25zIGJ1dHRvbiI6Im1hcmdpbi1yaWdodDogMnB4O3BhZGRpbmc6IDAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO2ZvbnQtc2l6ZTogOTAlOyJ9LCIgI2FwcC10aXRsZSI6Im1heC13aWR0aDogY2FsYygxMDAlIC0gNDMwcHggLSAxNi4zZW0pOyIsIiAjZG9jLWhpc3RvcnkiOnsiIC5oLXJvdyI6eyIiOiJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyBib3JkZXItcmFkaXVzOjFweDsgbWFyZ2luLWJvdHRvbToxcHg7IHBhZGRpbmc6MnB4IDE1cHggMXB4IDIwcHg7dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzOyBsaW5lLWhlaWdodDoxLjNlbTsiLCIgLnRkaSI6InRleHQtZGVjb3JhdGlvbjppbmhlcml0OyIsIi5vcC1kZWwiOiJ0ZXh0LWRlY29yYXRpb246cmdiYSgwLDAsMCwwLjQpIHNvbGlkIGxpbmUtdGhyb3VnaCFpbXBvcnRhbnQ7IiwiIC5oLXVidG4iOiJvcGFjaXR5OjA7IHRyYW5zaXRpb246IG9wYWNpdHkgMC41czsiLCI6aG92ZXIiOnsiIjoiYmFja2dyb3VuZC1jb2xvcjogI2UyZjBmZjsiLCIgLmgtdWJ0biI6Im9wYWNpdHk6MTsifX19LCIgLmVkLW5vZGUtMTN0NmQ2YzUiOnsiIC5pYWN0IjoidG9wOjJweCIsIiAuaWRlc2MiOnsiIjoicGFkZGluZy10b3A6MXB4OyIsIiAuZnM5NSI6InBhZGRpbmctdG9wOjFweDsifX19LEV4dEVkOntIVE1MOntJdGVtUm9vdDonPGRpdiBjbGFzcz0iaW5hdiBpcm9vdCI+PGRpdiBjbGFzcz0iaWtleSI+PC9kaXY+PGRpdiBjbGFzcz0iaWRlc2MgY3AiPuKAkzwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IgcGFuZWxoZWlnaHQtMzIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Iml2YWx1ZSBpbXVsdGkgaGlkZSI+PGRpdiBjbGFzcz0iaWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWFkZCBidXR0b24gZ3JlZW4iIHRpdGxlPSJBZGQgbmV3IHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1wbHVzIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tdGFrZW91dCBidXR0b24iIHRpdGxlPSJDb3B5IC8gcGFzdGUgLyBlZGl0IGFzIEpTT04iPjxzcGFuIGNsYXNzPSJmaS1zaG9wcGluZy1iYWciPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1hdHRhY2giIGNsYXNzPSJidXR0b24iIHRpdGxlPSJBZGQgYXR0YWNobWVudCIgc3R5bGU9IndpZHRoOjc0cHgiPjxzcGFuIGNsYXNzPSJmaS1wYXBlcmNsaXAiPjwvc3Bhbj48c3BhbiBjbGFzcz0iZnM5MCBkaWIgdmF0Ij4gQXR0YWNo4oCmPC9zcGFuPjwvYnV0dG9uPjwvZGl2Pid9LHVpOnsiI2RvYyI6e21hbmlmZXN0OmZ1bmN0aW9uKHgpe2lmKCF0aGlzLkhUTUwuSXRlbVJvb3QpcmV0dXJuIHRoaXMuJG11bHRpO3ZhciBhPXRoaXMsYj1hLiRmaWxlcy5BZGQ7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuJG11bHRpLHtIVE1MOmEuSFRNTC5JdGVtUm9vdCx1aTp7IiNidG4tYXR0YWNoIjp7YmluZDpmdW5jdGlvbih4LGEsYyl7aWYobnVsbCE9YSl7dmFyIGQ9dGhpcztpZihjLmRhdGEoIm1vZGFsIikpcmV0dXJuIGMubW9kYWwoITApLGUoKSx2b2lkIDA7Yy5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxkLm15Lm1vZGFsKCIjYnRuLWF0dGFjaCIse21hbmlmZXN0OmIsZGF0YTp7fSx3aWR0aDo1MDAsYWxpZ246InRvcDoxMDMlLCByaWdodDowcHg7Iixub3NlOiJ0b3AifSkudGhlbihmdW5jdGlvbihhKXtpZihhLmZpbGVzLmxlbmd0aCl7eC52YWx1ZS5fYXR0YWNobWVudHN8fCh4LnZhbHVlLl9hdHRhY2htZW50cz17fSk7dmFyIGI9JC5leHRlbmQoITAse30seC52YWx1ZS5fYXR0YWNobWVudHMpO2EuZmlsZXMuZm9yRWFjaChmdW5jdGlvbihhKXt4LnZhbHVlLl9hdHRhY2htZW50c1thLm5hbWVdPU9iamVjdC5zZWxlY3QoYSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSxkLlJUKCJkYXRhIikudmlld3N0YXRlfHwoZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZT17fSksZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZVtjdy5saWIuc2RibSgiUm9vdOKdgF9hdHRhY2htZW50cyIpXT0yLGQuTGlzdD1kLk1ha2VMaXN0KHgpLGQuTm9kZVVwZGF0ZWQoWyJSb290IiwiX2F0dGFjaG1lbnRzIl0sYix4LnZhbHVlLl9hdHRhY2htZW50cyksZC5teS5yZWRyYXcoKX19LmRlYm91bmNlKDIwKSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZSgpfSl9ZnVuY3Rpb24gZSgpe2MucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIil9fX19fSl9fX0sTm9kZVVwZGF0ZWQ6ZnVuY3Rpb24oeCxhLGIsYyl7dGhpcy5teS5wYXJlbnQoKS5IaXN0b3J5LmVtaXQoeCxhLGIsY3x8bnVsbCl9LEVkaXRvckludm9rZWQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9YS5teS5yb290KCksZD1jLmhlaWdodCgpLGU9Yy5wYXJlbnRzKCIjanNlZGl0b3IiKS5lcSgwKSxmPWVbMF0uc2Nyb2xsVG9wLGc9ZS5vZmZzZXQoKS50b3AsaD1jLm9mZnNldCgpLnRvcC1nLGk9Yi5QaG8oIm15Iikucm9vdCgpLmhlaWdodCgpLTYyO2g+aS1kLTMwJiZlLmFuaW1hdGUoe3Njcm9sbFRvcDooaCtkK2YtaSs0MCkuY2xhbXAoMCwxZTYpKyJweCJ9LDEwMCl9fSxTYXZlQWxsOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPU9iamVjdC5jbG9uZShjdy5saWIuZHJ5KGMuZG9jKSwhMCksZT0kLkRlZmVycmVkKCksZj1iLmxhbmcsZz0iUE9TVCIsaD1bYy5wYXRoWzBdXSxpPXsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQuX2lkP2MuaXNOZXd8fCFkLl9yZXZ8fC9cLy8udGVzdChkLl9pZCl8fChnPSJQVVQiLGgucHVzaChkLl9pZCkpOmRlbGV0ZSBkLl9pZCxudWxsPT1kLl9pZCYmZGVsZXRlIGQuX3JldixqKGQpLmZhaWwoZnVuY3Rpb24oZyxoLGkpezQwOSE9Zz8oYXx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRS5hc3NpZ24oZysiOiAiK2woaS5yZWFzb258fGgpKSwiZXJyb3IiKSxlLnJlamVjdChnLGgsaSkpOmIuUmVxKHttZXRob2Q6IkdFVCIsdXJsOltjLnBhdGhbMF0sZC5faWRdfSkudGhlbihmdW5jdGlvbihnKXskLm15Lm1vZGFsKHttYW5pZmVzdDpiLlBobygiQ29uZmlybSIpLHdpZHRoOjUwMCxkYXRhOnt0ZXh0OmYuTVNHX0NPTkZMSUNULmFzc2lnbihtKGQuX2lkLDQwKSxtKGQuX3JldiwyNSksbShnLl9yZXYsMjUpKSx5ZXM6Zi5CVE5fQ09ORkxJQ1RfWUVTLG5vOmYuQlROX0NPTkZMSUNUX05PLGNhbmNlbDoiIix1c2VCdXR0b25zOiEwfSxjc3M6InhncmF5IGxoMTcwIHAyMCBwYjI1Iixlc2M6ITEsZW50ZXI6ITEsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oZCl7InllcyI9PWQuY21kPyhjLmRvYy5fcmV2PWcuX3JldixiLlNhdmVBbGwoeCxhKS50aGVuKGZ1bmN0aW9uKHgpe28oITApfSkuZmFpbChmdW5jdGlvbih4LGEsYil7ZS5yZWplY3QoeCxhLGIpfSkpOmsoKX0pLmZhaWwoayl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtjb25zb2xlLmxvZyh4LGIsYyksYXx8Y3cubGliLm5vdGUoZi5NU0dfQ09ORkxJQ1RfTE9BREZBSUwpLGUucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIGJ5IHVzZXIiLGYuTVNHX0NPTkZMSUNUX0xPQURGQUlMKX0pfSksZS5wcm9taXNlKCk7ZnVuY3Rpb24gaihhKXtyZXR1cm4gYi5SZXEoe3VybDpoLG1ldGhvZDpnLGhlYWRlcnM6aSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShhKSxkYXRhVHlwZToiUFVUIj09Zz8idGV4dCI6Impzb24ifSkudGhlbihmdW5jdGlvbihiKXt2YXIgZD1iO3RyeXtkPU9iamVjdC5pc1N0cmluZyhiKT9KU09OLnBhcnNlKGIpOmJ9Y2F0Y2goeCl7fWlmKHgpcmV0dXJuIG4oKSxlLnJlc29sdmUoJC5leHRlbmQoYSx7X2lkOmQuaWQsX3JldjpkLnJldn0pKTtjLmRvYy5fY29uZmxpY3RzJiZjLmRvYy5fY29uZmxpY3RzLmluZGV4T2YoYy5kb2MuX3Jldik+LTEmJmMucmV2P28uZGVib3VuY2UoMjApKGQucmV2KTpvLmRlYm91bmNlKDIwKSghMCl9KX1mdW5jdGlvbiBrKCl7YXx8Y3cubGliLm5vdGUoZi5NU0dfQ09ORkxJQ1RfQ0FOQ0VMTEVEKSxlLnJlamVjdCg5OTksIkNhbmNlbGxlZCBieSB1c2VyIixmLk1TR19DT05GTElDVF9DQU5DRUxMRUQpfWZ1bmN0aW9uIGwoeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX1mdW5jdGlvbiBtKHgsYSl7cmV0dXJuIGwoKHgrIiIpLnRydW5jYXRlKGF8fDE1LCJyaWdodCIsIuKApiIpKX1mdW5jdGlvbiBuKCl7JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpjLnBhdGhbMF0sY21kOiJ3cml0ZSIsZG9jczpbYy5kb2MuX2lkXX0pLGMucGF0aFswXT09Yi5QaG8oIlJlcGxpY2F0b3JEQiIpJiZjLmRvYy5jcmVhdGVfdGFyZ2V0PygvKGxvY2FsaG9zdHwxMjdcLjBcLjBcLjEpLy50ZXN0KGMuZG9jLnRhcmdldCsiIil8fC0xPT0oYy5kb2MudGFyZ2V0KyIiKS5pbmRleE9mKCIvIikpJiZmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIsWyJfcmVwbGljYXRvciIsKGMuZG9jLnRhcmdldCsiIikuc3BsaXQoIi8iKS5sYXN0KCldLmNvbXBhY3QoInRydWUiKSl9LmRlYm91bmNlKDMwMCkoKTokLm15LnJhZGlvKCJkYmxpc3QiLFtjLnBhdGhbMF1dKSxhfHxjdy5saWIubm90ZShmLk1TR19TQVZFLmFzc2lnbihtKGMuZG9jLl9pZCksbShjLnJldnx8Yy5kb2MuX3Jldnx8IiIpKSwib2siKX1mdW5jdGlvbiBvKHgpeyEwPT09eD8oYy5wYXRoWzFdPWMuZG9jLl9pZCxjLnBhdGgubGVuZ3RoPTIsYy5yZXY9IiIsYy5pc05ldyYmKGMuaXNOZXc9ITEsJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOmMudGFiaWQscGF0aDpjLnBhdGgsdGl0bGU6Yi50aXRsZSgpfSkpLGIuR2V0RG9jKCEwLCEwKS50aGVuKGZ1bmN0aW9uKCl7bigpLGUucmVzb2x2ZShjLmRvYyl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtyZXR1cm4gYXx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRUxPQUQuYXNzaWduKHgrIjogIitsKGIpKSwiZXJyb3IiKSxlLnJlamVjdCh4LGYuRVJSX1NBVkVMT0FELmFzc2lnbihiKSxjKX0pKTpjLnJldiYmInN0cmluZyI9PXR5cGVvZiB4JiYoYy5yZXY9eCxjLnBhdGhbYy5wYXRoLmxlbmd0aC0xXT0iXyIreCxiLm15LnJlY2FsYygiI3N0YXRlLXByb3h5IiksbigpLGUucmVzb2x2ZShjLmRvYykpfX0sR2V0RG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYyxkPXRoaXMsZT1kLmRhdGEsZj17Y29uZmxpY3RzOiEwLGxvY2FsX3NlcTohMCxyZXZzX2luZm86ITAsYXR0X2VuY29kaW5nX2luZm86ITB9O2lmKGQuQnVzeS5kZWJvdW5jZSgyMCkoITApLGUuaXNOZXcpe3ZhciBnPSQuRGVmZXJyZWQoKTtyZXR1cm4gZC5SZXEoWyJfdXVpZHMiLHtjb3VudDo1fV0pLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2MuX2lkPWUuZG9jLl9pZHx8KHgudXVpZHN8fFsiIl0pLnNhbXBsZSgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZS5kb2MuX2lkfHwoZS5kb2MuX2lkPU51bWJlci5yYW5kb20oNzgzNjQxNjQwOTYsMjgyMTEwOTkwNzQ1NSkudG9TdHJpbmcoMzYpKSxkLkRvYz1be2RibmFtZTplLnBhdGhbMF0scmV2aXNpb246IiIsYmFzZXVybDpkLlBobygiQmFzZSIpLGRvYzpkLmRhdGEuZG9jfV0sZC5CdXN5LmRlYm91bmNlKDUwKSghMSksZy5yZXNvbHZlKCl9KSxnLnByb21pc2UoKX1yZXR1cm4gZS5wYXRoLmxlbmd0aD4oIl9kZXNpZ24iPT1lLnBhdGhbMV0/MzoyKT8oYz1lLnBhdGgubGFzdCgpLnJlcGxhY2UoL15cRCsvLCIiKSxiPWUucGF0aC50bygtMSkpOmI9ZS5wYXRoLnNsaWNlKDApLGUuYXR0cyYmYi5wdXNoKHthdHRhY2htZW50czohMCxhdHRfZW5jb2RpbmdfaW5mbzohMH0pLGc9JC5EZWZlcnJlZCgpLGM/ZC5SZXEoYi5jb25jYXQoWyQuZXh0ZW5kKCEwLHt9LGYse3JldjpjfSldKSkudGhlbihmdW5jdGlvbih4KXtlLmRvYz1qKHgpLGQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2M9JC5leHRlbmQoZS5kb2MsT2JqZWN0LnNlbGVjdCh4LFsiX2NvbmZsaWN0cyIsIl9yZXZzX2luZm8iLCJfbG9jYWxfc2VxIl0pKSxrKGUuZG9jKX0pLmZhaWwoZnVuY3Rpb24oKXtlLnJldnM9W2NdLGUuY29uZmlsY3RzPVtdfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zy5yZXNvbHZlKCl9KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2cucmVqZWN0KHgsYSxiKX0pOmQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7aSh4KSxnLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oKXtiPVtiWzBdLCJfYWxsX2RvY3MiLHtrZXk6ZS5wYXRoLmZyb20oMSkuam9pbigiLyIpLGluY2x1ZGVfZG9jczohMH1dLGQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7eC5yb3dzJiZ4LnJvd3NbMF0mJngucm93c1swXS5kb2M/KGkoeC5yb3dzWzBdLmRvYyksZy5yZXNvbHZlKCkpOmcucmVqZWN0KDQwNCwiTm90IGZvdW5kIil9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtnLnJlamVjdCh4LGEsYil9KX0pLGcuYWx3YXlzKGZ1bmN0aW9uKCl7aCgpLGQuQnVzeS5kZWJvdW5jZSg1MCkoITEpfSksZztmdW5jdGlvbiBoKCl7YSYmZC5SZXZzTGlzdCgiI2FwcC1yZXYiKSxkLkRvYz1be2RibmFtZTplLnBhdGhbMF0scmV2aXNpb246ZS5yZXYsYmFzZXVybDpkLlBobygiQmFzZSIpLGRvYzpkLmRhdGEuZG9jfV0sZC5IaXN0b3J5LmNsZWFyKCEwKSxkLm15LnRyaWdnZXIoIiNzdGF0ZS1wcm94eSIsInJlc2V0dGFiaGFzaC5teSIpLHgmJmQubXkucmVkcmF3KCl9ZnVuY3Rpb24gaSh4KXtlLmRvYz1qKHgpLGsoZS5kb2MpfWZ1bmN0aW9uIGooeCl7cmV0dXJuICQuZXh0ZW5kKHguX2F0dGFjaG1lbnRzP3tfaWQ6IiIsX3JldjoiIixfYXR0YWNobWVudHM6e319OntfaWQ6IiIsX3JldjoiIn0seCl9ZnVuY3Rpb24gayh4KXtPYmplY3QuaXNBcnJheSh4Ll9yZXZzX2luZm8pJiYoeC5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuImF2YWlsYWJsZSI9PXguc3RhdHVzfSkpLGUuY29uZmxpY3RzPXguX2NvbmZsaWN0c3x8W10sZS5yZXZzPSh4Ll9yZXZzX2luZm98fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fSxHZXRBdHRzOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YSxkPVtdO3JldHVybiBjLnBhdGgubGVuZ3RoPigiX2Rlc2lnbiI9PWMucGF0aFsxXT8zOjIpPyhhPWMucGF0aC5sYXN0KCkucmVwbGFjZSgvXlxEKy8sIiIpLGQ9Yy5wYXRoLnRvKC0xKSk6ZD1jLnBhdGgsYSYmZC5wdXNoKHtyZXY6YX0pLGQucHVzaCh7YXR0YWNobWVudHM6ITAsYXR0X2VuY29kaW5nX2luZm86ITB9KSx4fHxiLkJ1c3kuZGVib3VuY2UoMTApKCEwKSxjLmF0dHM9ITAsYi5SZXEoZCkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4geD9hOihhLl9hdHRhY2htZW50cyYmKGMuZG9jLl9hdHRhY2htZW50cz1hLl9hdHRhY2htZW50cyksYi5Eb2M9W3tkYm5hbWU6Yy5wYXRoWzBdLHJldmlzaW9uOmMucmV2LGJhc2V1cmw6Yi5QaG8oIkJhc2UiKSxkb2M6Yi5kYXRhLmRvY31dLGIubXkudHJpZ2dlcigiI3N0YXRlLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IiksYi5teS5yZWRyYXcoKSxhKX0pLmZhaWwoZnVuY3Rpb24oKXt9KS5hbHdheXMoZnVuY3Rpb24oKXt4fHxiLkJ1c3koITEpfS5kZWJvdW5jZSgyMCkpfSxEZWxEb2M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9T2JqZWN0LmNsb25lKGN3LmxpYi5kcnkoYS5kb2MpLCEwKSxjPWEucmV2c1swXSYmYS5yZXZzWzBdPT1hLmRvYy5fcmV2LGQ9LTEhPWEuY29uZmxpY3RzLmluZGV4T2YoYS5kb2MuX3Jldnx8IiIpLGU9eC5sYW5nLGY9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX0sZz1mdW5jdGlvbih4LGEpe3JldHVybiBmKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9LGg9JC5EZWZlcnJlZCgpLGk9W2EucGF0aFswXSxiLl9pZCx7cmV2OmIuX3Jldn1dLGo9JzxkaXYgY2xhc3M9Im1iMTAiPnsxfTwvZGl2Pic7cmV0dXJuICQubXkubW9kYWwoe3dpZHRoOjM1MCxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSx4LlBobygiQ29uZmlybSIpLHt1aTp7J2lucHV0W25hbWU9InJldGFpbiJdJzoicmV0YWluIn0sc3R5bGU6eyIgbGFiZWwiOiJtYXJnaW46MDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOmluaGVyaXQ7In19KSxkYXRhOntyZXRhaW46Im5vIix0ZXh0OltkPyIiOic8ZGl2IGNsYXNzPSJmczEzMCByZWQgbWI1Ij4nK2UuVFhUX0RFTF9USVRMRSsiPC9kaXY+IixkPyc8ZGl2IGNsYXNzPSJmczEzMCBvcmFuZ2UgbWI1Ij4nK2UuVFhUX0RFTF9USVRMRV9DT05GTElDVCsiPC9kaXY+IjoiIixqLmFzc2lnbihlLlRYVF9ERUxfV0FSTi5hc3NpZ24oZyhiLl9pZCwyNSksZyhhLnBhdGhbMF0sMjUpKSksai5hc3NpZ24oWyc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9Im5vIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfQUxMKyI8L2xhYmVsPiIsJzxsYWJlbCBjbGFzcz0ieGdyYXkiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmV0YWluIiB2YWx1ZT0icmV0YWluIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfUkVUQUlOKyI8L2xhYmVsPiJdLmNvbmNhdCh4LlBobygiQ291Y2giKS52ZXI+PSIwMDIuMDAzLiI/Wyc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9InB1cmdlIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfUFVSR0UrIjwvbGFiZWw+Il06W10pLmpvaW4oIiIpKSxhLmNvbmZsaWN0cy5sZW5ndGgmJmM/ai5hc3NpZ24oZS5UWFRfREVMX05PREVMKToiIixkP2ouYXNzaWduKGUuVFhUX0RFTF9DT05GTElDVCk6IiJdLmNvbXBhY3QoITApLmpvaW4oIiIpLHllc2NzczpkPyJvcmFuZ2UiOiJyZWQiLHllczplLkJUTl9ERUxfU1RBUlQsbm86ZS5CVE5fQ0FOQ0VMLGNhbmNlbDoiIn0sY3NzOiJsaDE2MCB4Z3JheSBwMjAgcGIyNSJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKCJ5ZXMiIT14LmNtZClyZXR1cm4gaC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKTtrKHgucmV0YWluKyIiKX0pLmZhaWwoZnVuY3Rpb24oKXtoLnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpfSksaC5wcm9taXNlKCk7ZnVuY3Rpb24gayhjKXt2YXIgZCxqLGssbT17bm86e3VybDppLG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifX0scmV0YWluOnt1cmw6W2EucGF0aFswXSwiX2J1bGtfZG9jcyJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoe2RvY3M6W09iamVjdC5tZXJnZSh7X2RlbGV0ZWQ6ITB9LGIpXX0pfSxwdXJnZTp7dXJsOlthLnBhdGhbMF0sIl9wdXJnZSJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoKGQ9Yi5faWQsaj1iLl9yZXYsaz17fSxrW2RdPVtqXSxrKSl9fVtjXTtyZXR1cm4geC5SZXEobSkudGhlbihmdW5jdGlvbihkKXtjdy5saWIubm90ZShlLk1TR19ERUxfT0suYXNzaWduKGcoYi5faWQpLGcoYS5wYXRoWzBdKSksIm9rIik7dHJ5eyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6YS5wYXRoWzBdLGNtZDoiZGVsZXRlIixkb2NzOltiLl9pZF19KSwkLm15LnJhZGlvKCJkYmxpc3QiLFthLnBhdGhbMF1dKX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX0icHVyZ2UiIT1jJiZhLmNvbmZsaWN0cy5sZW5ndGg/bCghMCk6KGZ1bmN0aW9uKCl7eC5teS5yb290KCkudHJpZ2dlcigidGFiY2xvc2UiLHt0YWJpZDphLnRhYmlkLGVuZm9yY2U6ITB9KX0uZGVib3VuY2UoMTAwKSgpLGgucmVzb2x2ZShkKSl9KS5mYWlsKGZ1bmN0aW9uKHgsYyxkKXtyZXR1cm4gY3cubGliLm5vdGUoZS5NU0dfREVMX0ZBSUwuYXNzaWduKGcoYi5faWQpLHgsZihjKSksImVycm9yIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLGEucGF0aFswXSksaC5yZWplY3QoeCxjLGQpfSl9ZnVuY3Rpb24gbChjKXthLnBhdGhbMV09Yi5faWQsYS5wYXRoLmxlbmd0aD0yO3ZhciBkPWEucmV2O2EucmV2PSIiLGQmJiQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDphLnRhYmlkLHBhdGg6YS5wYXRoLHRpdGxlOngudGl0bGUoKX0pLHguR2V0RG9jKCEwKS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZS5NU0dfREVMX1JFTE9BRCwiIiw0ZTMpLHguUmV2c0xpc3QoIiNhcHAtcmV2IiksaC5yZXNvbHZlKGEuZG9jKX0pLmZhaWwoZnVuY3Rpb24oYixjLGQpe2N3LmxpYi5ub3RlKGUuTVNHX0RFTF9SRUxPQURfRkFJTC5hc3NpZ24oZyhhLmRvYy5faWQpLGIsZihjKSksImVycm9yIiksaC5yZWplY3QoYixjLGQpLHgubXkudHJpZ2dlcigiI2J0bi1kZWwtZG9jIiwidGFiY2xvc2UiLHt0YWJpZDphLnRhYmlkLGVuZm9yY2U6ITB9KX0pfX0sUmV2c0xpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9W3tpZDoiIix0ZXh0OmF8fGIubGFuZy5UWFRfUkVWfV07ZnVuY3Rpb24gZSh4KXt2YXIgYT14LnRleHQucmVwbGFjZSgiLSIsIuKAkyIpLnRydW5jYXRlKDE3LCJtaWRkbGUiLCc8c3BhbiBjbGFzcz0ib3JhbmdlIj7igKY8L3NwYW4+Jyk7cmV0dXJuIngiPT1hWzBdJiYoYT0nPHNwYW4gY2xhc3M9InJlZDEgYm9sZGVyIj7igKA8L3NwYW4+4oCJJythLmZyb20oMSkpLCI8bm9icj4iK2ErIjwvbm9icj4ifWMuY29uZmxpY3RzLmZvckVhY2goZnVuY3Rpb24oeCl7ZC5wdXNoKHtpZDp4LHRleHQ6IngiK3h9KX0pLGMucmV2cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2QucHVzaCh7aWQ6eCx0ZXh0Onh9KX0pLGIuc2VsZWN0MihiLm15LmZpbmQoeCkse2RhdGE6ZCxmb3JtYXRSZXN1bHQ6ZSxmb3JtYXRTZWxlY3Rpb246ZSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDozfSl9LEFwcGx5RWRzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEsJC5EZWZlcnJlZCgpKSxiPXgubXkuZmluZCgiI2pzZWRpdG9yIGJ1dHRvbiNidG4tY2hhbmdlOnZpc2libGUiKSxjPWIubGVuZ3RoO3JldHVybiBjP3gubXkubW9kYWwoIiNidG4tZG9jLXNhdmUiLHttYW5pZmVzdDp4LlBobygiQ29uZmlybSIpLGRhdGE6e3RleHQ6eC5sYW5nLk1TR19FRFMseWVzOngubGFuZy5CVE5fRURTX1lFUyxubzp4LmxhbmcuQlROX0VEU19OTyx1c2VCdXR0b25zOiEwfSx3aWR0aDo0NTAsejoxOTk1LHNjcmVlbjohMCxnbG9iYWw6ITAsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oeCl7aWYoInllcyIhPXguY21kKXJldHVybiBhLnJlc29sdmUoKSx2b2lkIDA7Yi5lYWNoKGZ1bmN0aW9uKHgsYil7JChiKS50cmlnZ2VyKCJjbGljayIpLHg9PWMtMSYmYS5yZXNvbHZlLmRlbGF5KDQwMCl9LmxhenkoMjApKX0pLmZhaWwoZnVuY3Rpb24oKXthLnJlamVjdCgpfSk6YS5yZXNvbHZlKCksYS5wcm9taXNlKCl9LE5ld0RvY1RndDp7aWQ6ImN3LlBob3Rvbi4kZG9jLk5ld0RvY1RndCIsaW5oZXJpdDpbIlBobyJdLGRhdGE6e30sbmV3X2RiOiIiLG5ld19pZDoiIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5uZXdfZGI9Yi5wYXRoWzBdLGEubmV3X2lkPWIuZG9jLl9pZCx4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpfSx1aTp7IiN0Z3QtZGIiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5zZWxlY3QyKHtkYXRhOk9iamVjdC5rZXlzKGEuUGhvKCJBbGwiKSkuc29ydCgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITF9KX0sYmluZDoidGhpcy5uZXdfZGIifSwiI3RndC1pZCI6e2JpbmQ6InRoaXMubmV3X2lkIixjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMubGFuZztyZXR1cm4gYT9hPT14LmRvYy5faWQmJnRoaXMubmV3X2RiPT14LnBhdGhbMF0/Yi5FUlJfSURfRVE6YSYmIS9eX2Rlc2lnblwvLiskLy50ZXN0KGEpJiYiXyI9PWFbMF0/Yi5FUlJfSURfVVNDOnZvaWQgMDpiLkVSUl9JRF9SRVF9LHdhdGNoOlsiI3RndC1kYiJdfSwiI2J0bi1hcHBseSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5wYXRoWzBdPXRoaXMubmV3X2RiLHguZG9jLl9pZD10aGlzLm5ld19pZCx0aGlzLm15LmNvbW1pdCgpKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiN0Z3QtZGIiLCIjdGd0LWlkIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTUwIGxoMTQwIGZ3NTAwIG1iOCI+e1RYVF9USVRMRX08L2Rpdj4nLHtyb3c6IjQwMHB4IixsYWJlbDoiMTAwcHgiLHJvd0NzczoibXktcm93IHBiOCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAifSxbIntMQkxfREJ9IiwiaW5wI3RndC1kYi53MTAwcC5mczExNSJdLFsie0xCTF9JRH0iLCJpbnAjdGd0LWlkLncxMDBwLmZzMTAwIix7cGxjOiJOb24tZW1wdHkgc3RyaW5nIn0sIm1zZyJdLCc8ZGl2IGNsYXNzPSJwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLWFwcGx5IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9BUFBMWX08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxsYW5nOntlbjp7VFhUX1RJVExFOiJOZXcgZG9jIGxvY2F0aW9uIixMQkxfREI6IlRhcmdldCBEQiIsTEJMX0lEOiJOZXcgZG9jIF9pZCIsQlROX0FQUExZOiJTYXZlIG5ldyBkb2MiLEJUTl9DQU5DRUw6IkNhbmNlbCIsRVJSX0lEX0VROiJOZXcgX2lkIG11c3QgYmUgZGlmZmVyZW50LCBvciBjaGFuZ2UgREIiLEVSUl9JRF9SRVE6Ik5vbi1lbXB0eSBzdHJpbmcgcmVxdWlyZWQiLEVSUl9JRF9VU0M6IkRvYyBfaWQgY2Fu4oCZdCBzdGFydCB3aXRoIF8gc3ltYm9sIn19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjIycHg7In19fSwkZmlsZTp7aWQ6ImN3LlBob3Rvbi4kZmlsZSIsbGFuZzp7fSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKHt0ZXh0OnRoaXMuZGF0YS50ZXh0LnJlcGxhY2UoL1xyXG4vZywiXG4iKX0pfSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLnBhdGgsYz1hLmRvYy5faWQ7cmV0dXJuW3gudHJ1bmMoIl9kZXNpZ24vIj09Yy50byg4KT8iX2QiK2MuZnJvbSg3KToiX3VzZXJzIj09YlswXT9jLmZyb20oMTcpOmMsOCksIuKAiS/igIkiLGEuZm5hbWVdLmpvaW4oIiIpfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKGEpe3ZhciBiPXhbMV0sYz14WzJdO3JldHVybiB4Lmxlbmd0aD4yJiYiXyIhPWNbMF0mJigiXyIhPWJbMF18fC9eX2Rlc2lnblwvLy50ZXN0KGIpKT97dHlwZToiZmlsZSIsdGl0bGU6W3RoaXMudHJ1bmMoYiw4KSx4LnNsaWNlKDIpLmpvaW4oIi8iKV0uam9pbigi4oCJL+KAiSIpLGFwcERhdGE6e2ZuYW1lOnguc2xpY2UoMikuam9pbigiLyIpLGRvYzp7X2lkOmJ9fX06dm9pZCAwfX0sc2VhcmNoUmU6bnVsbCxkYXRhOntwYXRoOltdLHNlYXJjaDoiIixmbmFtZToiIixmbmFtZTA6IiIsdGV4dDoiIixzcmM6IiIsbWltZToidGV4dC9wbGFpbiIsZG9jOntfaWQ6IiJ9fSxwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIGIuZm5hbWUwPWIuZm5hbWUsYS5HZXRGaWxlKCkudGhlbihmdW5jdGlvbigpe3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSl9LHVpOnsiI2FwcC10aXRsZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5wMnUsYj0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKGEoeC5wYXRoWzBdKSx0aGlzLnRydW5jKHgucGF0aFswXSwxNSkuZXNjYXBlSFRNTCgpLHgucGF0aFswXS5lc2NhcGVIVE1MKCkpLGM9eC5kb2MuX2lkfHx4LnBhdGhbMV0rKCJfZGVzaWduIj09eC5wYXRoWzFdPyIvIit4LnBhdGhbMl06IiIpLGQ9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKFsiIyIsYSh4LnBhdGhbMF0pLGEoYyldLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCksYy5lc2NhcGVIVE1MKCksYy5sZW5ndGg+MTU/Yy5lc2NhcGVIVE1MKCk6IiIpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTQwIGxoMTMwIHhncmF5IG84MCI+JywnPHNwYW4gY2xhc3M9Im84MCI+ezJ9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57MX08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnszfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGQsYix4LmZuYW1lLmVzY2FwZUhUTUwoKSl9LHdhdGNoOlsiI2FwcC1yZXYiLCIjdHh0ZWRpdG9yIl19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiBudWxsIT1hJiYoeC5zZWFyY2g9YSkseC5zZWFyY2gubGVuZ3RoPDI/Yi5zZWFyY2hSZT1udWxsOmIuc2VhcmNoUmU9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZSh4LnNlYXJjaCkrIikiLCJpIikseC5zZWFyY2h9LGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiNmb3VuZCI6e2RlbGF5OjEzMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5vbigiY2xpY2subXkiLCIucHNldWRvbGluayIsZnVuY3Rpb24oKXt2YXIgeD0rJCh0aGlzKS50ZXh0KCksYj1hLm15LmZpbmQoIiN0eHRlZGl0b3IiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtiLnNjcm9sbEludG9WaWV3KHtsaW5lOngsY2hhcjoxfSw0OCk7dmFyIGM9ZnVuY3Rpb24oKXtiLmFkZExpbmVDbGFzcyh4LTEsImJhY2tncm91bmQiLCJiZy15ZWxsb3c0IiksZnVuY3Rpb24oKXtiLnJlbW92ZUxpbmVDbGFzcyh4LTEsImJhY2tncm91bmQiLCJiZy15ZWxsb3c0Iil9LmRlYm91bmNlKDEwMCkoKX07Yy5kZWJvdW5jZSgxMDApKCksYy5kZWJvdW5jZSgzMDApKCl9KX0sYmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLnNlYXJjaFJlLGI9W107cmV0dXJuIGEmJih4LnRleHQubGluZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHgsYyl7Yi5sZW5ndGg8MTAwJiZhLnRlc3QoeCkmJmIucHVzaChjKzEpfSksYi5sZW5ndGgpP1snPGRpdiBjbGFzcz0iYnIyIHllbGxvdy0xIGJnLXllbGxvdzQgcGw3IHByNyBwdDIgcGIyIGZzOTAgbGgxMzAiPicsIiBGb3VuZCBAICIsYi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuJzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiI+Jyt4KyI8L3NwYW4+In0pLmpvaW4oIiwgIiksIjwvZGl2PiJdLmpvaW4oIiIpOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zZWFyY2hSZX19LHdhdGNoOiIjYXBwLXNlYXJjaCJ9LCIjdHh0ZWRpdG9yIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Yi5taW1lfHwidGV4dC9wbGFpbiIsbGluZU51bWJlcnM6ITAsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOihudWxsLCJuYXRpdmUiKSxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLGluZGVudFdpdGhUYWJzOiExLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMSxleHRyYUtleXM6eyJDdHJsLVMiOmZ1bmN0aW9uKCl7YS5TYXZlRmlsZSgpfSwiQ21kLVMiOmZ1bmN0aW9uKCl7YS5TYXZlRmlsZSgpfSwiQ3RybC1GIjpjLCJDbWQtRiI6Y30sc3R5bGVTZWxlY3RlZFRleHQ6ITAsaGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlczp7bWluQ2hhcnM6M319KTt4WzBdLm5leHRTaWJsaW5nLkNvZGVNaXJyb3I7ZnVuY3Rpb24gYygpe3ZhciBjPXhbMF0ubmV4dFNpYmxpbmcuQ29kZU1pcnJvci5nZXRTZWxlY3Rpb24oKTtjLmxlbmd0aD4yJiYoYi5zZWFyY2g9Yi5zZWFyY2g9PWM/IiI6YyxhLm15LnJlY2FsYygiI2FwcC1zZWFyY2giKSxhLm15LmNoZWNrKCIjYXBwLXNlYXJjaCIpKX19LGJpbmQ6InRleHQifSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5HZXRGaWxlKCl9fSwiI2J0bi1maWxlLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5jbWRTYXZlKCl9fX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI2VkY29udGFpbmVyIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dGhpcy5TYXZlRmlsZSgpfSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzE1NSBmczk1Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IiB0aXRsZT0ie1BMQ19SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgaWQ9ImFwcC10aXRsZSIgY2xhc3M9ImRpYiB2YXQgZWxsIG1yMjAgbnciPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1maWxlLXNhdmUiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fU0FWRX08L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBwbDIwIHByMjAgcHQxNiBwYjE2Ij48ZGl2IGlkID0gImVkY29udGFpbmVyIiBjbGFzcz0icGFuZWxoZWlnaHQtMzIgYmFzIG9oIGJyMiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjx0ZXh0YXJlYSBpZD0idHh0ZWRpdG9yIiBjbGFzcz0idzEwMHAgcGFuZWxoZWlnaHQtMzIiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBpZD0iZm91bmQiIGNsYXNzPSJoaWRlIHcxNDUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OiszO3RvcDoyMXB4O3JpZ2h0OjI0cHg7Ij48L2Rpdj48L2Rpdj48ZGl2IGlkPSJzdGF0ZS1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2Picsc3R5bGU6eyIgLkNvZGVNaXJyb3IiOiJmb250LXNpemU6ODclIWltcG9ydGFudDtoZWlnaHQ6MTAwJTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjpmdW5jdGlvbih4KXtyZXR1cm4ibWluLWhlaWdodDoiKyh0aGlzLlBobygiUGFuZWxIZWlnaHQiKS0zNCkrInB4OyJ9LCIgLm15LW1vZGFsLWZvcm0iOnsiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OmNhbGMoMTggKiAxN3B4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiLmVkLWVycm9yIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAuYnV0dG9ucyBidXR0b24iOiJtYXJnaW4tcmlnaHQ6IDJweDtwYWRkaW5nOiAwLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTtmb250LXNpemU6IDkwJTsifSwiICNhcHAtdGl0bGUiOiJtYXgtd2lkdGg6Y2FsYygxMDAlIC0gMzMwcHgpOyJ9LEdldEZpbGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9e3VybDphLnBhdGguc2xpY2UoMCksZGF0YVR5cGU6InRleHQiLHRpbWVvdXQ6M2U0LGNhaGNlOiExLGhlYWRlcnM6e0FjY2VwdDoiKi8qIn19O3JldHVybiB4LkJ1c3kuZGVib3VuY2UoMTApKCEwKSx4LlJlcShiKS50aGVuKGZ1bmN0aW9uKGIsYyl7YS5zcmM9YS50ZXh0PWIsYS5taW1lPWMuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpKyIiLHgubXkudHJpZ2dlcigiI2VkY29udGFpbmVyIiwicmVzZXR0YWJoYXNoLm15IikseC5teS5yZWRyYXcoKX0pLmZhaWwoZnVuY3Rpb24oKXt9KS5hbHdheXMoZnVuY3Rpb24oKXt4LkJ1c3koITEpfS5kZWJvdW5jZSgxNSkpfSxTYXZlRmlsZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9Yi5wYXRoLnRvKCJfZGVzaWduIj09Yi5wYXRoWzFdPzM6MiksZD17dXJsOmMuc2xpY2UoMCksbWV0aG9kOiJwdXQiLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxkYXRhOiIifSxlPSQuRGVmZXJyZWQoKSxmPWEubGFuZyxnPSIiO3JldHVybiBhLkJ1c3kuZGVib3VuY2UoMTApKCEwKSxhLlJlcShjKS50aGVuKGZ1bmN0aW9uKHgpe3guX2F0dGFjaG1lbnRzfHwoeC5fYXR0YWNobWVudHM9e30pLHguX2F0dGFjaG1lbnRzW2IuZm5hbWVdPXtjb250ZW50X3R5cGU6Yi5taW1lLGRhdGE6Y3cubGliLmJhc2U2NChiLnRleHQpfSxnPXguX3JldixkLmRhdGE9SlNPTi5zdHJpbmdpZnkoeCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuUmVxKGQpfSkudGhlbihmdW5jdGlvbigpe3h8fGN3LmxpYi5ub3RlKGYuTVNHX1NBVkUuYXNzaWduKGkoYi5mbmFtZSw0MCksaShiLmRvYy5faWQsMjApKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmIucGF0aFswXSxjbWQ6IndyaXRlIixkb2NzOltiLmRvYy5faWRdfSksJC5teS5yYWRpbygiZGJsaXN0IixbYi5wYXRoWzBdXSksJC5teS5yYWRpbygiZmlsZXVwZGF0ZSIse2RiOmIucGF0aFswXSxkb2M6Yi5kb2MuX2lkLHJldjpnLGZpbGU6Yi5mbmFtZX0pLGEubXkudHJpZ2dlcigiI2VkY29udGFpbmVyIiwicmVzZXR0YWJoYXNoLm15IiksZS5yZXNvbHZlKCl9KS5mYWlsKGZ1bmN0aW9uKGEsYyxkKXt4fHxjdy5saWIubm90ZShmLkVSUl9TQVZFLmFzc2lnbihpKGIuZm5hbWUsNDApLGErIjogIitoKGQucmVhc29ufHxjKSksImVycm9yIiksZS5yZWplY3QoYSxjLGQpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7YS5CdXN5KCExKX0uZGVib3VuY2UoMTUpKSxlLnByb21pc2UoKTtmdW5jdGlvbiBoKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9ZnVuY3Rpb24gaSh4LGEpe3JldHVybiBoKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9fX0sJGNvbmZpZzp7aWQ6ImN3LlBob3Rvbi4kY29uZmlnIixsYW5nOnt9LHBhcmFtczp7cmVzdHlsZToyNSxzdHJpY3Q6ITB9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4gY3cubGliLmNyYzIoKHRoaXMuRG9jWzBdfHx7fSkuZG9jfHx7fSl9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIkNvdWNoREIgY29uZmlnIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfY29uZmlnIiE9eFswXT9udWxsOnt0aXRsZToiQ291Y2hEQiBjb25maWcifX0sZGF0YTp7cGF0aDpbXSxub2RlOiIiLGRvYzp7fSxzdGFtcDowfSxEb2M6W10sT2xkOnt9LE5vZGVzOltdLE1lbWJlcnNDaGVja2VkOiExLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7eC5hZGRDbGFzcygibnciKSxhLkhUTUwuSGlzdG9yeVJvdz1hLlBobygiQ29tcGlsZVQiKShhLkhUTUwuSGlzdG9yeVJvdyksYS5IaXN0b3J5LmluaXQoYSx4KTt2YXIgYj1hLmxhbmcuSEVMUDtyZXR1cm4gJC5leHRlbmQoYi5jaHR0cGRfYXV0aCxPYmplY3QucmVqZWN0KGIuY291Y2hfaHR0cGRfYXV0aCxbIl9fIiwiIl0pKSwkLmV4dGVuZChiLmNodHRwZCxPYmplY3QucmVqZWN0KGIuaHR0cGQsWyJfXyIsIiJdKSksYS5HZXQoITEsITApLnRoZW4oZnVuY3Rpb24oYil7eC5odG1sKGEuSFRNTC5BcHAuYXNzaWduKGEubGFuZykuYXNzaWduKHtUSVRMRV9IVE1MOmEuSFRNTC5UaXRsZUhUTUxbYS5QaG8oImlzQ2x1c3RlciIpPzE6MF19KSl9KX0sdWk6eyIjYXBwLXRpdGxlIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuTm9kZXMubGVuZ3RoPjEmJmEuc2VsZWN0Mih4LHtkYXRhOmEuTm9kZXMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztyZXR1cm4gYi5Ob2Rlcy5sZW5ndGg8Mj93aW5kb3cubG9jYXRpb24uaG9zdDoobnVsbCE9YSYmeC5ub2RlIT1hJiYoeC5ub2RlPWEsZnVuY3Rpb24oKXtiLkdldCghMCkudGhlbihmdW5jdGlvbigpe2IuSGlzdG9yeS5jbGVhcighMCl9KX0uZGVsYXkoMjApKSx4Lm5vZGUpfX0sIiNhcHAtc2VhcmNoIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP3guc2VhcmNoOih4LnNlYXJjaD1hLmxlbmd0aDwzPyIiOmEsdGhpcy5Eb2NbMF0mJnRoaXMuRG9jWzBdLnNlYXJjaCE9eC5zZWFyY2gmJnRoaXMubXkuZmluZCgiI2pzb24tc2VhcmNoIikudmFsKHguc2VhcmNoKS50cmlnZ2VyKCJjaGVjayIpLGEpfSxjc3M6eyJteS1zZWFyY2giOi9eLnszLH0kL319LCIjanNlZGl0b3IiOntkZWxheToxMDAsY2hlY2s6ITEsbGlzdDoiPGRpdj48L2Rpdj4iLG1lcmdlOiExLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLm5pY2VTY3JvbGwoeCx7Ym91bmNlc2Nyb2xsOiEwLGN1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4wNyxjdXJzb3JvcGFjaXR5bWF4Oi40fSkseC5vbigiY2xpY2subXkiLCIuYnRuLWhlbHAiLGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKSxiPXgucGFyZW50KCkucGFyZW50KCksYz1iLm15KCJkYXRhIiksZD1jLnBhdGguc2xpY2UoMSkuY29uY2F0KFtjLmtleV0pO2lmKHguZGF0YSgibW9kYWwiKSlyZXR1cm4gJCh0aGlzKS5tb2RhbCghMCk7ZFsxXXx8KGRbMV09IiIpO3ZhciBlPWIubXkoIm1hbmlmZXN0IikuSGVscChkKTt4LnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGIuYWRkQ2xhc3MoImhvdmVyIiksJCh0aGlzKS5tb2RhbCh7bWFuaWZlc3Q6e2luaXQ6Wyc8ZGl2IGlkPSJpbmZvLXRpdGxlIiBjbGFzcz0iZnMxMTAgYm9sZGVyIG10MyBtYjciPjwvZGl2PicsJzxkaXYgaWQ9ImluZm8taGVscCIgc3R5bGU9IndvcmQtYnJlYWs6bm9ybWFsOyI+PC9kaXY+JywnPGRpdiBpZD0iaW5mby11cmwiIGNsYXNzPSJtdDciPjwvZGl2PiddLHVpOnsiI2luZm8taGVscCI6InRpcCIsIiNpbmZvLXRpdGxlIjoidGl0bGUiLCIjaW5mby11cmwiOntiaW5kOiJ1cmwiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC51cmx9fX19fSxkYXRhOnt0aXRsZTpkLmpvaW4oIuKAiS/igIkiKSx0aXA6KGUudGlwfHxhLmxhbmcuTVNHX1VOS05PV05fS0VZKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgvYChbXmBdKylgL2csJzxjb2RlIGNsYXNzPSJkaWIgdmF0Ij4kMTwvY29kZT4nKSx1cmw6ZS51cmx9LHdpZHRoOjM1MCxhbGlnbjoidG9wOjEwMyU7cmlnaHQ6LTM4cHg7Iixub3NlOiJ0b3AifSkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKSxiLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9KX0saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGF0YS5zdGFtcH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLmNyYzIoeC5kb2MpfSxtYW5pZmVzdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuUGhvKCJDb3VjaCIpLnZlcixjPVsiaHR0cGRfZ2xvYmFsX2hhbmRsZXJzIiwibmF0aXZlX3F1ZXJ5X3NlcnZlcnMiLCJodHRwZF9kZXNpZ25faGFuZGxlcnMiLCJkYWVtb25zIiwicXVlcnlfc2VydmVycyIsImh0dHBkX2RiX2hhbmRsZXJzIiwiZXh0ZXJuYWwiLCJvc19kYWVtb25zIl07aWYoYj49IjAwMS4wMDcuMDAwIiYmYjwiMDAyLiJ8fGI+PSIwMDIuMDAxLjAwMSIpe2lmKGMuaW5kZXhPZih4LnBhdGhbMV0pPi0xfHxjLmluZGV4T2YoeC5rZXkpPi0xKXJldHVybiBhLmxhbmcuQkFOX0hUVFA7aWYoYj49IjAwMi4iJiYoImNsdXN0ZXIiPT14LnBhdGhbMV18fCJjbHVzdGVyIj09eC5rZXkpKXJldHVybiBhLmxhbmcuQkFOX0NMVVNURVJ9cmV0dXJuITF9LmJpbmQodGhpcyk7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuUGhvKCJFZCIpLmpzb250cmVlLGEuRXh0RWQse2RhdGE6e2xhYmVsV2lkdGg6MjUwfX0se2xhbmc6e0hFTFA6YS5sYW5nLkhFTFB9LE1FZGl0OntkYXRhOntjb21taXRUeXBlS2V5czp7YXV0bzpbIkVudGVyIl19fX0sTVJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYS5teS5yb290KCl9fSx7TGliOntpc1N5c3RlbTpifX0pfSxiaW5kOiJ0aGlzLkRvYyJ9LCIjYnRuLWNmZy1zYXZlIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuY21kU2F2ZSgpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGh9fSx3YXRjaDpbIiNjZmctd2FybiIsIiNkb2MtaGlzdG9yeSJdfSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLkdldCghMCkudGhlbihmdW5jdGlvbigpe2IuSGlzdG9yeS5jbGVhcighMCl9KX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmKGEubmFtZXx8JC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pKX0scmV2ZXJ0X2NvbmZpZzpmdW5jdGlvbigpe3RoaXMuR2V0LmRlYm91bmNlKDE1MCkoITApfX19fSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjanNlZGl0b3IiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LGNtZFNhdmU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5sYW5nO3guTm9kZXMubGVuZ3RoPjE/eC5teS5tb2RhbCgiI2J0bi1jZmctc2F2ZSIse21hbmlmZXN0OnguUGhvKCJDb25maXJtIiksd2lkdGg6NTUwLGRhdGE6e3RleHQ6Yi5NU0dfQ0xVU1RFUix5ZXM6Yi5CVE5fU0FWRUNMVVNURVIseWVzY3NzOiJvcmFuZ2UiLG5vOmIuQlROX1NBVkVOT0RFLmFzc2lnbih4LnRydW5jKGEubm9kZSwyMikuZXNjYXBlSFRNTCgpKSxub2NzczoiZ3JlZW4iLHVzZUJ1dHRvbnM6ITB9LGdsb2JhbDohMCxzY3JlZW46ITAsejoxOTkyLGZvY3VzOiIjYnRuLXllcyJ9KS50aGVuKGZ1bmN0aW9uKGIpeyJubyI9PWIuY21kP3guU2F2ZShbYS5ub2RlXSk6eC5TYXZlKCl9KTp4LlNhdmUoKX0sc3R5bGU6eyIgI2pzZWRpdG9yPmRpdiI6ImZvbnQtc2l6ZToxNC41cHghaW1wb3J0YW50O21pbi1oZWlnaHQ6NTUwcHg7IiwiICNqc2VkaXRvciAuaW5hdiI6Im1hcmdpbjoxcHggMCFpbXBvcnRhbnQ7IiwiIC5pYWN0IC5idXR0b24iOiJwYWRkaW5nOiAwLjA1ZW0gMCAwLjFlbSAwIWltcG9ydGFudDsiLCIgI2pzZWRpdG9yPi5teS1mb3JtPnNlY3Rpb24+I2VkaXRvcj4jZG9jPi5pYWN0LmJ1dHRvbnMiOiJwYWRkaW5nLXJpZ2h0OjNweDsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlciI6IndoaXRlLXNwYWNlOm5vd3JhcDsiLCIgLm15LW1vZGFsLWZvcm0iOnsiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OmNhbGMoMTggKiAxN3B4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiLmVkLWVycm9yIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAuQ29kZU1pcnJvciAuY20tcHJvcGVydHkiOiJjb2xvcjojNDM0ZTVkOyIsIiAuQ29kZU1pcnJvciAuY20tdmFyaWFibGUiOiJjb2xvcjojMzNiZmFkOyIsIiAuQ29kZU1pcnJvciAuY20ta2V5d29yZCI6ImNvbG9yOiM5MDI1OWU7IiwiIC5Db2RlTWlycm9yIjoibWluLWhlaWdodDoxNTBweDsgaGVpZ2h0OmF1dG87IiwiIC5idXR0b25zIGJ1dHRvbiI6Im1hcmdpbi1yaWdodDogMnB4O3BhZGRpbmc6IDAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO2ZvbnQtc2l6ZTogOTAlOyIsIiBjb2RlIjoiYmFja2dyb3VuZC1jb2xvcjogI2ViZjBmMyFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czogMnB4O2ZvbnQtc2l6ZTogODUlOyBwYWRkaW5nOiAwLjFlbSAwLjNlbSJ9fSxFeHRFZDp7SFRNTDp7SXRlbVJvb3Q6JzxkaXYgY2xhc3M9ImluYXYgaXJvb3QiPjxkaXYgY2xhc3M9ImlrZXkiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIHBhbmVsaGVpZ2h0LTMyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLXRha2VvdXQgYnV0dG9uIiB0aXRsZT0iQ29weSAvIHBhc3RlIC8gZWRpdCBhcyBKU09OIj48c3BhbiBjbGFzcz0iZmktc2hvcHBpbmctYmFnIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWpzb24gaGlkZSI+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXJldmVydCIgY2xhc3M9ImJ1dHRvbiIgIHRpdGxlPSJSZXZlcnQgdG8gc2F2ZWQiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2PicsSXRlbVNpbXBsZTonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5c2ltcGxlIj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUiPjwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWhlbHAgYnV0dG9uIHRlYWwiIHRpdGxlPSJDb25maWcga2V5IGluZm8iPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLWluZm8iPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1kZWwgYnV0dG9uIHJlZCIgdGl0bGU9IkRlbCBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2PicsSXRlbUNvbXBsZXg6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgaWtleXRyZWUiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWhlbHAgYnV0dG9uIHRlYWwiIHRpdGxlPSJDb25maWcga2V5IGluZm8iPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLWluZm8iPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1kZWwgYnV0dG9uIHJlZCIgIHRpdGxlPSJEZWwgbm9kZSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2Pid9LHVpOnsiI2RvYyI6e21hbmlmZXN0OmZ1bmN0aW9uKHgpe2lmKCF0aGlzLkhUTUwuSXRlbVJvb3QpcmV0dXJuIHRoaXMuJG11bHRpO3ZhciBhPXRoaXM7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuJG11bHRpLHtIVE1MOmEuSFRNTC5JdGVtUm9vdCx1aTp7IiNidG4tcmV2ZXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmJC5teS5yYWRpbygicmV2ZXJ0X2NvbmZpZyIsITApfX19fSl9fX0sSGVscDpmdW5jdGlvbih4KXt4LnNsaWNlKDApO3ZhciBhPXRoaXMubGFuZy5IRUxQLGI9bnVsbCxjPSIiLGQ9IiIsZT0iIixmPU9iamVjdC5pc0FycmF5O2lmKGEpe251bGw9PXhbMV0mJih4WzFdPSIiKTt2YXIgZz1hW3hbMF1dfHx7fTtnJiYoYz0oYj1nW3hbMV1dfHxnWyIqIl18fCIiKT9mKGIpP2JbMF0rIi4iOmIrIi4iOiIiLGU9ZihiKT9iWzFdOmcuX18sYyYmZSYmKGQ9ZS5hc3NpZ24oJC5leHRlbmQoe2tleTp4LmNvbXBhY3QoITApLmpvaW4oIi8iKX0sYS5PQkpfUEFUSFMpKSkpLGQ/ZD0nPGEgaHJlZj0iezF9IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiBwbDIgcHI1IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXIiIHJlbD0ibm9mb2xsb3ciPjxzcGFuIGNsYXNzPSJmaS1wYWdlIGZzOTAgbzcwIj48L3NwYW4+Jm5ic3A7ezJ9PC9hPicuYXNzaWduKGQsYS5UWFRfRE9DUyk6YyYmKGQ9JzxzcGFuIGNsYXNzPSJmczkwIG83MCI+ezF9PC9zcGFuPicuYXNzaWduKGEuVFhUX05PRE9DUykpfXJldHVybnt0aXA6Yyx1cmw6ZH19fSxHZXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9JC5EZWZlcnJlZCgpLGU9W10sZj1iLlBobygiTWVtYmVyc2hpcCIpfHx7fTtyZXR1cm4hYi5QaG8oImlzQ2x1c3RlciIpJiZiLk1lbWJlcnNDaGVja2VkfHwoYi5NZW1iZXJzQ2hlY2tlZD0hMCxPYmplY3QuaXNBcnJheShmLmFsbF9ub2RlcykmJk9iamVjdC5pc0FycmF5KGYuY2x1c3Rlcl9ub2Rlcyk/KChlPWYuY2x1c3Rlcl9ub2Rlcy5zbGljZSgwKS5pbnRlcnNlY3QoZi5hbGxfbm9kZXMpKS5sZW5ndGg8MiYmKGIuUGhvKCkuaXNDbHVzdGVyPSExKSxiLk5vZGVzPWUsLTE9PWUuaW5kZXhPZihjLm5vZGUpJiYoYy5ub2RlPWVbMF0pKTpiLlBobygpLmlzQ2x1c3Rlcj0hMSksZygpLGQucHJvbWlzZSgpO2Z1bmN0aW9uIGcoKXt2YXIgZT1bIl9jb25maWciXTtiLk5vZGVzLmxlbmd0aCYmKDEhPWIuTm9kZXMubGVuZ3RoJiZjLm5vZGU/ZS51bnNoaWZ0KCJfbm9kZSIsYy5ub2RlKTplLnVuc2hpZnQoIl9ub2RlIixiLk5vZGVzWzBdKSksYi5SZXEoZSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT17fTtyZXR1cm4gT2JqZWN0LmtleXMoeCkuc29ydCgpLmZvckVhY2goZnVuY3Rpb24oYil7T2JqZWN0LmlzT2JqZWN0KHhbYl0pP2FbYl09T2JqZWN0LmtleXMoeFtiXSkuc29ydCgpLnJlZHVjZShmdW5jdGlvbihhLGMpe3JldHVybiBhW2NdPWgoeFtiXVtjXSksYX0se30pOmFbYl09eFtiXX0pLGMuZG9jPWEsYi5Eb2M9W3tsYWJlbFdpZHRoOjI1MCxkb2M6Yi5kYXRhLmRvYyxfaWQ6Il9jb25maWcifV0sYi5PbGQ9T2JqZWN0LmNsb25lKGMuZG9jLCEwKSxhLmNodHRwZCYmdm9pZCAwIT09YS5jaHR0cGQubWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxJiYoYi5QaG8oIkNvdWNoIikubWF4QmF0Y2g9K2EuY2h0dHBkLm1heF9kYl9udW1iZXJfZm9yX2Ric19pbmZvX3JlcXx8MCkseH0pLnRoZW4oZnVuY3Rpb24oYSl7Yy5zdGFtcD1EYXRlLm5vdygpLHgmJmIubXkucmVjYWxjKCIjanNlZGl0b3IiKSxiLm15LnRyaWdnZXIoIiNjZmctcHJveHkiLCJyZXNldHRhYmhhc2gubXkiKSxkLnJlc29sdmUoYSl9KS5mYWlsKGZ1bmN0aW9uKHgsYyxlKXthfHxjdy5saWIubm90ZShiLmxhbmcuRVJSX1JFTE9BRC5hc3NpZ24oeCxjLnRydW5jYXRlKDQ1LCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSksImVycm9yIiksZC5yZWplY3QoeCxjLGUpfSl9ZnVuY3Rpb24gaCh4KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHg/eDoidHJ1ZSI9PXh8fCJmYWxzZSIhPXgmJigvXlxkezEsMTV9JC8udGVzdCh4KT8reDp4KX19LFNhdmU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLlBobygiX2NvbXBpbGVkIiksYS5sYW5nKSxjPVtdLGQ9e30sZT0oeHx8YS5Ob2Rlcykuc2xpY2UoMCksZj1hLkRvY1swXS5kb2M7Yz1PYmplY3QudmFsdWVzKGEuSGlzdG9yeS5zdGVwcy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXt2YXIgYj1hLm9wO2lmKGEucGF0aC5sZW5ndGg+Mil7dmFyIGM9YS5wYXRoLnNsaWNlKDEpLmpvaW4oIuKAgyIpO3hbY109e2tleTpjLHZhbHVlOiJkZWwiIT1iP2N3LmxpYi5nZXRyZWYoZixhLnBhdGguc2xpY2UoMSkpKyIiOm51bGx9fWVsc2V7dmFyIGQ9YS5wYXRoWzFdLGU9Y3cubGliLmdldHJlZihmLGQpO09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGM9W2QsYV0sZT1jLmpvaW4oIuKAgyIpO3hbZV09e2tleTplLHZhbHVlOiJkZWwiIT1iP2N3LmxpYi5nZXRyZWYoZixjKSsiIjpudWxsfX0pfXJldHVybiB4fSx7fSkpLGUubGVuZ3RoJiYoYz1jLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oYil7eC5wdXNoKHt1cmw6WyJfbm9kZSIsYiwiX2NvbmZpZyJdLGtleTphLmtleSx2YWx1ZTphLnZhbHVlfSl9KSx4fSxbXSkpO3ZhciBnPWMubGVuZ3RoO2Z1bmN0aW9uIGgoKXtPYmplY3Quc2l6ZShkKT8oY3cubGliLm5vdGUoYi5NU0dfU0FWRV9GQUlMLCJlcnJvciIpLGNvbnNvbGUubG9nKCJFcnJvcnMgZHVyaW5nIGNvbmZpZyB1cGRhdGU6IiksY29uc29sZS5sb2coZCkpOihjdy5saWIubm90ZShiLk1TR19TQVZFX09LLCJvayIpLGEuR2V0KCEwKS50aGVuKGZ1bmN0aW9uKCl7YS5IaXN0b3J5LmNsZWFyKCEwKX0pKX1jLmZvckVhY2goZnVuY3Rpb24oeCxiKXthLlJlcSh7dXJsOih4LnVybHx8WyJfY29uZmlnIl0pLmNvbmNhdCh4LmtleS5zcGxpdCgi4oCDIikpLG1ldGhvZDpudWxsIT09eC52YWx1ZT8iUFVUIjoiREVMRVRFIixjb250ZW50VHlwZTpudWxsIT09eC52YWx1ZT8iYXBwbGljYXRpb24vanNvbiI6bnVsbCxkYXRhOm51bGwhPT14LnZhbHVlP0pTT04uc3RyaW5naWZ5KHgudmFsdWUpOnZvaWQgMH0pLnRoZW4oZnVuY3Rpb24oKXsicmVwbGljYXRvcuKAg2RiIj09eC5rZXkmJihhLlBobygpLlJlcGxpY2F0b3JEQj14LnZhbHVlKX0pLmZhaWwoZnVuY3Rpb24oYSxiLGMpe2RbeC5rZXldPXtjb2RlOmEsZXJyb3I6YixyZWFzb246Y319KS5hbHdheXMoZnVuY3Rpb24oKXsoZy09MSl8fGgoKX0pfS5sYXp5KGEuUGhvKCJDZmciKS5iYXRjaFVwZGF0ZUNmZ3x8MTAwKSl9LEhUTUw6e0FwcDonPGRpdiBpZD0iY29sLWVkIiBjbGFzcz0iZGliIHZhdCB3biI+PGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxNTUgZnM5NSI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj57VElUTEVfSFRNTH08ZGl2IGNsYXNzPSJudyBtcjEwIGRpYiB2YXQgdGFjIHc0MHAiID48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yMiIgdGl0bGU9IntCVE5fUkVWRVJUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tY2ZnLXNhdmUiIGNsYXNzPSJncmVlbiBtcjIiIGRpc2FibGVkPntCVE5fU0FWRX08L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJqc2VkaXRvciIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjb2wtaGlzdG9yeSIgY2xhc3M9ImRpYiB2YXQgeGdyYXkgd24iPjxkaXYgaWQ9ImgtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LXVuZG8iIGNsYXNzPSJsaDE0MCI+e0JUTl9ISVNUX1VORE99PC9idXR0b24+PC9kaXY+PHNwYW4gY2xhc3M9ImZzMTUwIGRpYiB2YXQgcGw1IG85MCBwdDMiPntUWFRfSElTVF9USVRMRX08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgZmVhdGhlciI+PGRpdiBpZD0iZW1wdHktaGlzdG9yeSIgY2xhc3M9ImhpZGUgcGFiYyBwbDUgcHQ4IGdyYXkiIHN0eWxlPSJ0b3A6MDsgbGVmdDowOyI+e1RYVF9ISVNUX0VNUFRZfTwvZGl2PjxkaXYgaWQ9ImRvYy1oaXN0b3J5IiBjbGFzcz0icGFuZWxoZWlnaHQgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48c3R5bGUgaWQ9InN0eWxlLWhpc3RvcnkiIGNsYXNzPSJoaWRlIj48L3N0eWxlPjxkaXYgaWQ9InNjcm9sbC1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImNmZy1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PicsVGl0bGVIVE1MOlsnPGRpdiBpZD0iYXBwLXRpdGxlIiBjbGFzcz0iZGliIHZhdCBmczE2MCBsaDEyMCBlbGwgbXIyMCIgc3R5bGU9Im1heC13aWR0aDo0MCUiPjwvZGl2PicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgZnMxMTUgbXIyMCB3NDBwIj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC10aXRsZSIgY2xhc3M9IncxMDBwIGJvbGRlciI+PC9kaXY+J119fSwkdmlldzp7aWQ6ImN3LlBob3Rvbi4kdmlldyIsbGFuZzp7fSxwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbmhlcml0OlsiQnl0ZXMiLCJNZXRyaWMiXSxTdGVwczpbMSwxMCwyMCw1MCwxMDAsMjAwLDUwMCwxZTNdLE1vZGFsczp7fSxSZXN1bHQ6W10sUm93czpbXSxFcnJvcjoiIixmUm93czpudWxsLGdSb3dzOm51bGwsRGRvY3M6e30sVmlld3M6W10sVmk6e30sVmlFZHM6e30sUGVuZGluZzp7fSxMaXN0OltdLEZpZWxkczpbXSxDb2x1bW5zOltdLEVkaXRvcjpbXSxoYXNTZWxlY3Rpb246ITEsUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sSW5kZXg6ZnVuY3Rpb24oeCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHgsbnVsbCwiICAiKX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuc3Rhc2hWaWV3U3RhdGUoKSxbIiN2aWV3LXJlc3VsdHMiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXguZmluZChhKTsiZnVuY3Rpb24iPT10eXBlb2YgYi5nZXROaWNlU2Nyb2xsJiZiLmdldE5pY2VTY3JvbGwoKS5yZW1vdmUoKSxiLmxpc3QoInJlbW92ZSIpfSk7dHJ5e3guZmluZCgiI3ZpZXctbmFtZSIpLmRhdGEoKS5zZWxlY3QyLmRyb3Bkb3duLmZpbmQoIi5zZWxlY3QyLXJlc3VsdHMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiB4JiZ4KCkucmVtb3ZlKCl9KX1jYXRjaCh4KXt9fSxzMnA6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9W2EucGF0aFswXV07aWYoIWEuc3RhcnQmJiFhLnZpZXcpcmV0dXJuW2EucGF0aFswXV07dmFyIGM9eC5WaVthLnZpZXddLGQ9YS52aWV3LnNwbGl0KCLvv70iKTtyZXR1cm4iX2ZpbmQiPT1hLnZpZXcudG8oNSk/KGIucHVzaCgiX2ZpbmQiKSxiLnB1c2goZFsxXXx8IkRlZmF1bHQgcXVlcnkiKSk6Il9pZHgiPT1hLnZpZXcudG8oNCk/KGIucHVzaCgiX2luZGV4IiksIl9pZHgv77+9IiE9YS52aWV3LnRvKDYpP2IucHVzaChkWzBdLnNwbGl0KCIvIilbMV0sZFsxXSk6Yi5wdXNoKCJEZWZhdWx0IGluZGV4IikpOmM/Yi5wdXNoKCJfdmlldyIsYy5wYXRoWzJdLGMucGF0aFs0XSk6L14oX2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfF9jaGFuZ2VzKSQvLnRlc3QoYS52aWV3KT9iLnB1c2goYS52aWV3KTpiLnB1c2goIl9hbGxfZG9jcyIpLGEuc3RhcnQ/KGIucHVzaChhLnN0YXJ0LChhLnJldmVyc2U/Ii0iOiIiKSsgK2EubGltaXQpLGIpOmJ9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4idmlldyJ9LHRpdGxlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhLGE9eC5wYXRoLGI9Il9maW5kIj09eC52aWV3LnRvKDUpLGM9L15fKGNoYW5nZXN8ZGVzaWduX2RvY3N8bG9jYWxfZG9jcykkLy50ZXN0KHgudmlldyksZD14LnZpZXc/Il9kZXNpZ25fZG9jcyI9PXgudmlldz8iX2Rlc2lnbi8qIjoiX2xvY2FsX2RvY3MiPT14LnZpZXc/Il9sb2NhbC8qIjoiX2NoYW5nZXMiPT14LnZpZXc/Il9jaGFuZ2VzIjp4LnZpZXcuc3BsaXQoIu+/vSIpLnRvKDIpLm1hcChmdW5jdGlvbih4LGEpe3JldHVybigoYT94Onguc3BsaXQoIi8iKVsxXSl8fHh8fCIiKS50cnVuY2F0ZShhPzMwOjEwLCJtaWRkbGUiLCIuLi4iKX0pLmpvaW4oIuKAii/igIoiKToiIixlPWI/IuKKtiI6Yz8iw5ciOiLDtyI7cmV0dXJuKGQ/YVswXS50cnVuY2F0ZSgxNSwibWlkZGxlIiwiLi4uIik6YVswXSkrKGQ/IuKAiSIrZSsi4oCJIitkOiIiKX0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtpZihhJiYoMT09eC5sZW5ndGh8fC9eXyh2aWV3fGFsbF9kb2NzfGxvY2FsX2RvY3N8ZGVzaWduX2RvY3N8ZmluZHxpbmRleHxjaGFuZ2VzKSQvLnRlc3QoeFsxXSkpKXt2YXIgYj14Lmxlbmd0aCxjPXhbMV18fCJfYWxsX2RvY3MiLGQ9e3RpdGxlOnhbMF0sdHlwZToidmlldyIsYXBwRGF0YTp7fX0sZT0vXl8oZGVzaWdufGxvY2FsKV9kb2NzJC8udGVzdChjKTtpZigvXl8oYWxsfGRlc2lnbnxsb2NhbClfZG9jcyQvLnRlc3QoYykpND09Ynx8ZT9kLmFwcERhdGE9e3N0YXJ0OnhbMl0sbGltaXQ6IisiKyh0aGlzLiR2aWV3LlN0ZXBzLmZpbmQoTWF0aC5hYnMoK3hbM10pKXx8IjEwMCIpLHJldmVyc2U6Ii0iPT0oeFszXSsiIilbMF19OngubGVuZ3RoPTEsZSYmKGQudGl0bGUrPSLigIkv4oCJIitjLnJlcGxhY2UoL19kb2NzJC8sIiIpLGQuYXBwRGF0YS52aWV3PWMpO2Vsc2UgaWYoIl9jaGFuZ2VzIj09YylkLnRpdGxlKz0i4oCJL+KAiSIrYyxkLmFwcERhdGE9e3ZpZXc6YyxzdGFydDp4WzJdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzNdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbM10rIiIpWzBdfTtlbHNlIGlmKCJfZmluZCI9PWMpYj41P3gubGVuZ3RoPTU6ZC5hcHBEYXRhPXtzdGFydDp4WzNdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzRdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbNF0rIiIpWzBdfTtlbHNlIGlmKCJfaW5kZXgiPT1jKWlmKGI+Nil4Lmxlbmd0aD02O2Vsc2V7dmFyIGY9IkRlZmF1bHQgaW5kZXgiPT14WzJdJiYoMz09Ynx8NT09Yik7ZC5hcHBEYXRhPXtzdGFydDpmP3hbM106eFs0XSxsaW1pdDoiKyIrKHRoaXMuJHZpZXcuU3RlcHMuZmluZChNYXRoLmFicygrKGY/eFs0XTp4WzVdKSkpfHwiMTAwIikscmV2ZXJzZToiLSI9PSgoZj94WzRdOnhbNV0pKyIiKVswXX19ZWxzZXtpZigiX3ZpZXciIT1jKXJldHVybjs2IT1iP3gubGVuZ3RoPTQ6ZC5hcHBEYXRhPXtzdGFydDp4WzRdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzVdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbNV0rIiIpWzBdfX1yZXR1cm4gZC5wYXRoPXgsZH19LGpzZXZhbDpmdW5jdGlvbihzKXt2YXIgcjt0cnl7cj1ldmFsKCIoIitzKyIpIil9Y2F0Y2goeCl7fXJldHVybiByfSxkYXRhOntwYXRoOltdLHNlYXJjaDoiIix2aWV3OiIiLHN0YXJ0OiIiLGxpbWl0OiIrMTAwIixyZXZlcnNlOiExLHJlZHVjZTpbXSxpbmNsOltdLHN0YXRlOiIiLHNlbGVjdGlvbjpbXSxsaW5rOiIiLGR1cjowLHNpemU6MCxncmlkOiExLGNvbHVtbnM6WyIudmFsdWUiXSx0b3RhbF9yb3dzOjAsb2Zmc2V0OjAsc2VxOiIiLHhrZXk6IjAiLGVkaXRvcjohMSxtYW5nbzp7YWN0aXZlOiJEZWZhdWx0IHF1ZXJ5Iixtb2RlOlsiamF2YXNjcmlwdCJdLHF1ZXJ5Olt7bmFtZToiRGVmYXVsdCBxdWVyeSIsdGV4dDoiKHt9KSIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6MH1dfX0sRGVmYXVsdE1hbmdvUXJ5OntuYW1lOiJEZWZhdWx0IHF1ZXJ5Iix0eXBlOiJtYW5nbyIsdGV4dDoiKHtcbiAgLy8gTWF0Y2hpbmcgZG9jcyBzZWxlY3RvclxuICBzZWxlY3Rvcjoge1xuICAgIF9pZDogeyRndDogJyd9XG4gIH0sXG4gIFxuICAvLyBEb2MgZmllbGRzIHRvIHJldHVybiwgXG4gIC8vIGNvbW1lbnQgb3V0IHRvIGdldCB3aG9sZSBkb2NzXG4gIGZpZWxkczogWydfaWQnLCAnX3JldicsIC8qJ3gueScqL10sXG4gIFxuICAvLyBTb3J0IG9yZGVyLCBsaWtlOlxuICAvLyBzb3J0OiBbe19pZDonYXNjJ30sIHtuYW1lOiAnZGVzYyd9XVxuICBcbiAgLy8gV2hlbiBlZGl0LCB1c2UgQ21kLVIgdG8gcnVuIHF1ZXJ5XG59KSIsanNvbjp7c2VsZWN0b3I6e19pZDp7JGd0OiIifX0sZmllbGRzOlsiX2lkIiwiX3JldiJdfSxlcnJvcnM6W10sc3RhbXA6MH0sRGVmYXVsdE1hbmdvSWR4OntuYW1lOiJEZWZhdWx0IGluZGV4IixkZG9jOiIiLHR5cGU6ImluZGV4Iix0ZXh0OiIoe1xuICBpbmRleDoge1xuXHRcdGZpZWxkczogW3tfaWQ6ICdhc2MnfV1cblx0fSxcblx0Ly8gcGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6e1xuXHQvLyBcdCdmb28uYmFyJzp7JGd0OjB9XG5cdC8vIH1cbn0pIixqc29uOntpbmRleDp7ZmllbGRzOlt7X2lkOiJhc2MifV19fSxlcnJvcnM6W10sc3RhbXA6MH0sdWk6eyIjYnRuLXJvb3QiOntkZWxheToxMDAsYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIiwiIyIreC5wYXRoWzBdKSxiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX1VQLmFzc2lnbih4LnBhdGhbMF0pKX19LCIjeC1idG4tcm9vdCI6e2Nzczp7dzA6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudmlld30sdzQyOmZ1bmN0aW9uKHgpe3JldHVybiEheC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIl19LCIjdmlldy1uYW1lIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLnNlbGVjdDIoeCx7ZGF0YTp0aGlzLlZpZXdzLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyLGZvcm1hdFNlbGVjdGlvbjphLmZvcm1hdFNlbDJ9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4geC52aWV3O2lmKHgudmlldyE9YSl7dmFyIGM9Yi5yZXN0b3JlVmlld1N0YXRlKGEsITEpO2Iuc3Rhc2hWaWV3U3RhdGUoKSx4LnN0YXJ0PSIiLHgucmVkdWNlPSIiLHguZ3JpZD0hMSxiLlJvd3M9W10sYi5mUm93cz1udWxsLGIuQ29sdW1ucz1bXSxiLkZpZWxkcz1bXSxiLkVycm9yPSIiLGIuRWRpdG9yPVtdLHgudmlldz1hLGIucmVzdG9yZVZpZXdTdGF0ZSh2b2lkIDAsITEpLGIuYnVpbGRHcmlkQ29sdW1ucygpLHZvaWQgMD09PWMuZWRpdG9yJiYoIl9maW5kIj09YS50byg1KXx8Il9pZHgiPT1hLnRvKDQpP3guZWRpdG9yPSEwOmF8fCh4LmVkaXRvcj0hMSkpfXJldHVybiB4LnZpZXd9fSwiI3ZpZXctbGltaXQiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz0oTWF0aC5hYnMoK2IubGltaXQpfHwxMDApLmNsYW1wKDEsMWU0KTthLnNlbGVjdDIoeCx7ZGF0YTp0aGlzLlN0ZXBzLmNvbmNhdChbY10pLnVuaXF1ZSgpLnNvcnRCeSgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6IisiK3gsdGV4dDp4PDFlMz94KyIiOngvMWUzKyJLIn19KSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxZTR9KX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP3gubGltaXQ6KHgubGltaXQ9YSx4LmxpbWl0KX19LCIjdmlldy1zdGFydGtleSI6e2RlbGF5OjAsYmluZDoic3RhcnQiLGV2ZW50czoiaW5wdXQubXkiLHdhdGNoOlsiI2J0bi1jbGVhci1zdGFydGtleSIsIiNidG4tdmlldy1wbHVzIiwiI2J0bi12aWV3LW1pbnVzIiwiI3ZpZXctbmFtZSJdLGNzczp7Im15LXNlYXJjaCI6L14uezEsfSQvfX0sIiNidG4tdmlldy1taW51cyI6e2RlbGF5OjEsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz14LnN0YXJ0LGQ9K3gudG90YWxfcm93cyxlPSt4LmxpbWl0LGY9Yi5WaVt4LnZpZXddJiZiLlZpW3gudmlld10ucmVkdWNlJiZ4LnJlZHVjZSsiIixnPSJfZmluZCI9PXgudmlldy50byg1KSxoPSJfbG9jYWxfZG9jcyI9PXgudmlldzt4LnN0YXJ0Py9eX1xkKyQvLnRlc3QoeC5zdGFydCkmJihjPSJfIisoKCt4LnN0YXJ0LnN1YnN0cigxKXx8MCktZSkuY2xhbXAoMCxmfHxnfHxoPzFlMTI6ZCkpOihkPmV8fGZ8fGd8fGgpJiYoYz0iXyIrKGQtZSkuY2xhbXAoMCwxZTEyKSksIl8wIj09YyYmKGM9IiIpLHguc3RhcnQ9Y319LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiB4LnN0YXJ0JiYhL15fXGQrJC8udGVzdCh4LnN0YXJ0KXx8IXguc3RhcnQmJmIuUm93cy5sZW5ndGg8PSt4LmxpbWl0fHwiX2NoYW5nZXMiPT14LnZpZXd9fSx3YXRjaDpbIiN2aWV3LXN0YXJ0a2V5IiwiI3ZpZXctbGltaXQiLCIjc3RhdGUtcHJveHkiXX0sIiNidG4tdmlldy1wbHVzIjp7ZGVsYXk6MSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcyxjPXguc3RhcnQsZD0reC50b3RhbF9yb3dzLGU9K3gubGltaXQsZj1iLlZpW3gudmlld10mJmIuVmlbeC52aWV3XS5yZWR1Y2UmJngucmVkdWNlKyIiLGc9Il9maW5kIj09eC52aWV3LnRvKDUpLGg9Il9sb2NhbF9kb2NzIj09eC52aWV3O2lmKCJfY2hhbmdlcyI9PXgudmlldyYmeC5yZXZlcnNlKWM9Yi5SZXN1bHRbMF0ucmVzdWx0c1tlXT9iLlJlc3VsdFswXS5yZXN1bHRzW2UtMV0uc2VxKyIiOiIiO2Vsc2UgaWYoeC5zdGFydClpZigvXl9cZCskLy50ZXN0KHguc3RhcnQpKXt2YXIgaT0oK3guc3RhcnQuc3Vic3RyKDEpfHwwKStlO2M9Il8iKyhpPj1kJiYhZiYmIWcmJiFoPzA6aSl9ZWxzZSBjPWIuUm93cy5sZW5ndGg8PWU/IiI6SlNPTi5zdHJpbmdpZnkoYi5Sb3dzW2VdLmtleSkucmVwbGFjZSgvXiJ8IiQvZywiIik7ZWxzZShkPmV8fGZ8fGd8fGgpJiYoYz0iXyIrZSk7Il8wIj09YyYmKGM9IiIpLHguc3RhcnQ9Y319LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiF4LnN0YXJ0JiZiLlJvd3MubGVuZ3RoPD0reC5saW1pdHx8Il9jaGFuZ2VzIj09eC52aWV3JiYheC5yZXZlcnNlfX0sd2F0Y2g6WyIjdmlldy1saW1pdCIsIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctZ3JpZCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHt0YWdzOlt7JzxzcGFuIGNsYXNzPSJmaS10aHVtYm5haWxzIGZzMTE1IGxoMTMwIiB0aXRsZT0iR3JpZCB2aWV3Ij48L3NwYW4+JzoiZ3JpZCJ9XSxlbXB0eTp7JzxzcGFuIGNsYXNzPSJmaS1saXN0LXRodW1ibmFpbHMgZnMxMTUgbGgxMzAiIHRpdGxlPSJMaW5lIHZpZXciPjwvc3Bhbj4nOiIifSx0YWdjc3M6InRhZyBidG4gdzMyIGRpYiBjcCIsdGFnc2hpbToiIixncm91cHNoaW06IiJ9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIG51bGwhPWEmJih4LmdyaWQ9ISEoYSsiIikseC5ncmlkPyh4LnZpZXd8fCh4LmluY2w9WyJkb2NzIl0pLGIuUmVzdWx0Lmxlbmd0aCYmKGIuRmllbGRzLmxlbmd0aHx8Yi5idWlsZEZpZWxkc0xpc3QoKSx4LmNvbHVtbnMubGVuZ3RoPDImJigheC5jb2x1bW5zWzBdfHwiLnZhbHVlIj09eC5jb2x1bW5zWzBdfHwiLmRvYyI9PXguY29sdW1uc1swXSkmJih4LmNvbHVtbnM9Yi5kZXJpdmVHcmlkQ29sdW1ucygpKSksYi5idWlsZEdyaWRDb2x1bW5zKCksYi5teS5yZXN0eWxlKCkpOmIuY2xvc2VBdXRvY29tcGxldGVzKCksYi5zdGFzaFZpZXdTdGF0ZSgpLGIubXkucmVjYWxjKCIjdmlldy1ncmlkLWNvbHMiKSxiLm15LmNoZWNrKCIjdmlldy1ncmlkLWNvbHMiKSkseC5ncmlkP1siZ3JpZCJdOltdfSx3YXRjaDpbIiN2aWV3LW5hbWUiXX0sIiNhcHAtc2VhcmNoIjp7ZGVsYXk6MTUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LnNlYXJjaDphLmxlbmd0aDwzPyh0aGlzLmZTZWFyY2g9dGhpcy5jbVNlYXJjaD1udWxsLHguc2VhcmNoPSIiLGEpOih4LnNlYXJjaD1hLHRoaXMuZlNlYXJjaD1uZXcgUmVnRXhwKCIoIitSZWdFeHAuZXNjYXBlKGEpKyIpIiwiaSIpLHRoaXMuY21TZWFyY2g9bmV3IFJlZ0V4cCgiXiIrUmVnRXhwLmVzY2FwZShhKSwiaSIpLGEpfSxjc3M6eyJteS1zZWFyY2giOi9eLnszLH0kL30sd2F0Y2g6WyIjc3RhdGUtcHJveHkiXX0sIiN2aWV3LXBhbmVscyI6e3dhdGNoOlsiI3ZpZXctbmFtZSIsIiNidG4tdmlld2NvZGUiXSxjc3M6eyJ2aWV3LWVkaXRvciI6ZnVuY3Rpb24oeCl7cmV0dXJuIS9eKF9jaGFuZ2VzfF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdCh4LnZpZXcpJiYhIXguZWRpdG9yfSwidmlldy1tYW5nbyI6ZnVuY3Rpb24oeCl7cmV0dXJuIl9maW5kIj09eC52aWV3LnRvKDUpfSwidmlldy1pbmRleCI6ZnVuY3Rpb24oeCl7cmV0dXJuIl9pZHgiPT14LnZpZXcudG8oNCl9LCJ2aWV3LWNoYW5nZXMiOmZ1bmN0aW9uKHgpe3JldHVybiJfY2hhbmdlcyI9PXgudmlldy50byg4KX0sIm1vZGUtZ3JpZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZ3JpZH0sIm1vZGUtanNvbiI6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZ3JpZH0sImRiLXVzZXJzIjpmdW5jdGlvbih4KXtyZXR1cm4iX3VzZXJzIj09eC5wYXRoWzBdfX19LCIjYnRuLXJlbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj1bXTt4LnNlbGVjdGlvbi5sZW5ndGgmJi9eKHxfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3MpJC8udGVzdCh4LnZpZXcpJiYoYj14LnNlbGVjdGlvbi5zb3J0KCkudW5pcXVlKCkpLHRoaXMuR2V0VmlldyghMCxiKSxiLmxlbmd0aHx8L15fKGRlc2lnbnxsb2NhbClfZG9jcyQvLnRlc3QoeC52aWV3KXx8Il9pZHgv77+9Ij09eC52aWV3LnRvKDYpfHx0aGlzLkdldFZpZXdzKCEwKX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmIWEubmFtZSYmL15fKHVzZXJzfHJlcGxpY2F0b3IpJC8udGVzdCh4LnBhdGhbMF0pJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9LGRidXBkYXRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczshT2JqZWN0LmlzT2JqZWN0KGEpfHwid3JpdGUiIT1hLmNtZCYmImRlbGV0ZSIhPWEuY21kfHxhLmRiPT14LnBhdGhbMF0mJi0xIT0oYS5kb2NzfHxbXSkuaW5kZXhPZih4LnZpZXcuc3BsaXQoIu+/vSIpWzBdKSYmYi5HZXRWaWV3cyghMCl9fX0sIiNidG4tdmlldy1jb21wYWN0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcyxkPXgucGF0aCxlPXt9LGY9T2JqZWN0LnNpemUoYy5WaSk/e2Rkb2NzOk9iamVjdC5rZXlzKGMuVmkpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgi77+9IilbMF0uc3BsaXQoIi8iKVsxXX0pLnVuaXF1ZSgpLnNvcnQoKX06e307Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tdmlldy1jb21wYWN0IiwhMCk6KGMuTW9kYWxzLmhlYWQmJmMuTW9kYWxzLmhlYWQubW9kYWwoITApLGMuTW9kYWxzLmhlYWQ9YiwiX2Rlc2lnbl9kb2NzIj09eC52aWV3JiYoZT17ZHNlbGVjdGlvbjooZi5kZG9jc3x8W10pLmludGVyc2VjdCh4LnNlbGVjdGlvbi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3BsaXQoIi8iKVsxXX0pKS5zbGljZSgwKSxvcHM6WyJ2aWV3cyIsImRkb2NzIl19KSxjLm15Lm1vZGFsKCIjYnRuLXZpZXctY29tcGFjdCIse21hbmlmZXN0OiQuZXh0ZW5kKCEwLHt9LGMuUGhvKCJDb21wYWN0Iikse0NCOntkZG9jczpmdW5jdGlvbih4KXtjLkdldFZpZXcoITApfX19KSx3aWR0aDozNzAsZGF0YTokLmV4dGVuZCh7c2VsZWN0aW9uOlt4LnBhdGhbMF1dLG9wczpbImRvY3MiLCJ2aWV3cyJdfSxmLCJfdmlldyI9PWRbMV0/e29wczpbImRkb2NzIl0sZHNlbGVjdGlvbjpbZFsyXV19Ont9LGUpLGFsaWduOiJ0b3A6MTAyJTsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixlc2M6ITAsYm91bmQ6MjAsZm9jdXM6IiNidG4tc3RhcnQifSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSkpfX19LCIjYnRuLXZpZXctYWNsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi12aWV3LWFjbCIsITApOmMuUmVxKFt4LnBhdGhbMF0sIl9zZWN1cml0eSJdKS50aGVuKGZ1bmN0aW9uKGEpe2MuTW9kYWxzLmhlYWQmJmMuTW9kYWxzLmhlYWQubW9kYWwoITApLGMuTW9kYWxzLmhlYWQ9YixjLm15Lm1vZGFsKCIjYnRuLXZpZXctYWNsIix7bWFuaWZlc3Q6Yy5QaG8oIlNlY09iaiIpLHdpZHRoOjM4MCxkYXRhOiQuZXh0ZW5kKCEwLHt9LHtkYnM6W3gucGF0aFswXV0sYWRtaW5zOmEuYWRtaW5zfHx7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6YS5tZW1iZXJzfHx7bmFtZXM6W10scm9sZXM6W119fSksYWxpZ246InRvcDoxMDIlOyIsbm9zZToidG9wIixjc3M6InhncmF5IixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGVzYzohMCxib3VuZDoyMCxmb2N1czoiI2J0bi1zdGFydCJ9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2N3LmxpYi5ub3RlKGMubGFuZy5FUlJfR0VUQUNMLCJlcnJvciIpfSl9fSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiEheC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIl19LCIjYnRuLXZpZXctbmV3ZG9jIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzOyJfdXNlcnMiPT1hLmRhdGEucGF0aFswXSYmKHgub24oImNsaWNrLm15IixmdW5jdGlvbihiKXtyZXR1cm4geC5kYXRhKCJtb2RhbCIpPyhhLm15Lm1vZGFsKCIjYnRuLXZpZXctbmV3ZG9jIiwhMCksITEpOihhLk1vZGFscy5oZWFkJiZhLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxhLk1vZGFscy5oZWFkPXgsYS5teS5tb2RhbCgiI2J0bi12aWV3LW5ld2RvYyIse21hbmlmZXN0OmEuUGhvKCJVc2VyRG9jIiksd2lkdGg6MzgwLGRhdGE6e30sYWxpZ246InRvcDoxMDIlO2xlZnQ6LTE0N3B4OyIsbm9zZToidG9wIixjc3M6InhncmF5IixzY3JlZW46ITEsZXNjOiEwLGZvY3VzOiEwLGJvdW5kOjIwfSkuYWx3YXlzKGZ1bmN0aW9uKCl7YS5Nb2RhbHMuaGVhZD1udWxsfSksITEpfSkseC5odG1sKCc8c3BhbiBjbGFzcz0ibGgxNDAiPicrYS5sYW5nLkJUTl9ORVdVU0VSX0RMRysiPC9zcGFuPiIpKX0sYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIiwiIyIrZW5jb2RlVVJJQ29tcG9uZW50KHgucGF0aFswXSkrIi9fbmV3Iil9LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnZpZXcmJnguc2VsZWN0aW9uLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctYWN0aW9ucyJdfSwiI3ZpZXctYWN0aW9ucyI6e2RlbGF5OjEwLGNzczp7aGFzU2VsZWN0aW9uOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmhhc1NlbGVjdGlvbj0hKCIiIT14LnJlZHVjZXx8Il9maW5kIj09eC52aWV3LnRvKDUpfHwheC5zZWxlY3Rpb24uaW50ZXJzZWN0KHRoaXMuUm93cy50bygreC5saW1pdCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmlkfSkpLmxlbmd0aCksdGhpcy5oYXNTZWxlY3Rpb259LGlzRGRvY3M6ZnVuY3Rpb24oeCl7cmV0dXJuIl9kZXNpZ25fZG9jcyI9PXgudmlld319LHdhdGNoOlsiI3ZpZXctbmFtZSIsIiNidG4tc2VsZWN0Il19LCIjYnRuLXZpZXctZGVsZG9jcyI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpe2IuQnVzeSghMCk7dmFyIGM9Yi5teS5maW5kKCIjYnRuLXZpZXctY29weWRvY3MiKTtjLmRhdGEoIm1vZGFsIikmJmMubW9kYWwoITApLGIuRGVsRG9jcygpLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDEwKSl9dmFyIGQ9Yi5sYW5nW3guc2VsZWN0aW9uLmxlbmd0aD4xPyJCVE5fREVMRE9DUyI6IkJUTl9ERUwxRE9DIl07cmV0dXJuIl9kZXNpZ25fZG9jcyI9PXgudmlldz9kOmQuc3RyaXBUYWdzKCl9LHdhdGNoOlsiI3ZpZXctYWN0aW9ucyJdfSwiI2J0bi12aWV3LWNvcHlkb2NzIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLm15LmZpbmQoIiNidG4tdmlldy1jb3B5ZG9jcyIpO2lmKGMuZGF0YSgibW9kYWwiKSlyZXR1cm4gYy5tb2RhbCghMCksdm9pZCAwO2MubW9kYWwoe3Jvb3Q6Yi5teS5yb290KCksbWFuaWZlc3Q6JC5leHRlbmQoITAse30sYi5QaG8oIlN5bmNUYXNrIikse3BhcmFtczp7d2lkdGg6NTAwfX0pLGRhdGE6e3Rhc2s6IkNvcHkiLHNyYzp7dXJsOngucGF0aFswXSxmaWx0ZXI6WyJpZHMiXSxpZHM6eC5zZWxlY3Rpb24uc2xpY2UoMCl9fSxmb2N1czoiI3J0YXJnZXQiLG5vc2U6InRvcCIsYWxpZ246InRvcDoxMDMlIixkcmFnOiIuY20iLGNzczoieGdyYXkiLGVzYzohMCxib3VuZDowfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfSwic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4iX2xvY2FsX2RvY3MiPT14LnZpZXd9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXt0aGlzLm15LmNoZWNrKCIjYnRuLXZpZXctY29weWRvY3MiKX19LHdhdGNoOlsiI3ZpZXctbmFtZSJdfSwiI2J0bi12aWV3Y29kZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIG51bGwhPWEmJngudmlldyYmKGMuY2xvc2VBdXRvY29tcGxldGVzKCksYy5FZFN3aXRjaCgpLHguZWRpdG9yPSEwLGMuc3Rhc2hWaWV3U3RhdGUoKSksYy5sYW5nWyJfZmluZCI9PXgudmlldy50byg1KSYmeC5ncmlkPyJCVE5fVklFV0NPREVfR00iOiJCVE5fVklFV0NPREUiXX0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5lZGl0b3J8fC9eKF9jaGFuZ2VzfF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdCh4LnZpZXcpfX0sZXZlbnRzOiJjbGljay5teSIsd2F0Y2g6WyIjdmlldy1uYW1lIiwiI3ZpZXctZ3JpZCJdfSwiI2J0bi12aWV3LWRpciI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmV2ZXJzZT0heC5yZXZlcnNlKSx4LnJldmVyc2U/IuKWvCI6IuKWsiJ9LGV2ZW50czoiY2xpY2subXkifSwiI3ZpZXctY29scyI6e2RlbGF5OjMwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZigiX2ZpbmQiPT14LnZpZXcudG8oNSkmJnguZ3JpZClyZXR1cm4iIyI7dmFyIGIsYz0reC50b3RhbF9yb3dzLGQ9eC5zZWFyY2g7cmV0dXJuIHRoaXMubGFuZy5UWFRfTUFQVklFVyhNYXRoLm1pbih0aGlzLlJvd3MubGVuZ3RoLCt4LmxpbWl0KSwtMT09Yz8iPz8iOmM8OTk5OT9jOiJ+IitjLm1ldHJpYygxLDQpLGQubGVuZ3RoPjImJihiPXguZ3JpZD90aGlzLmdSb3dzOnRoaXMuZlJvd3MpP2IubGVuZ3RoOm51bGwpfSx3YXRjaDpbIiN2aWV3LXJlc3VsdHMtanNvbiIsIiNzdGF0ZS1wcm94eSIsIiN2aWV3LWdyaWQiXX0sIiN2aWV3LWxpbmtzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSI+ezJ9PC9hPicsZD14LnBhdGgsZT14LnZpZXcuc3BsaXQoIu+/vSIpLGY9Yi5wMnUoZFswXSksZz1iLnRydW5jKGRbMF0sMjUpLmVzY2FwZUhUTUwoKTtyZXR1cm4geC52aWV3Py9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jcykkLy50ZXN0KHgudmlldyk/W2MuYXNzaWduKGYsZyksIi8iLCc8c3BhbiBjbGFzcz0ieGdyYXkiPicreC52aWV3KyI8L3NwYW4+IHwgIl0uam9pbigi4oCJIik6Il9maW5kIj09eC52aWV3LnRvKDUpP1tjLmFzc2lnbihmLGcpLCIvIiwnPHNwYW4gY2xhc3M9InhncmF5Ij5fZmluZDwvc3Bhbj4nXS5qb2luKCLigIkiKToiX2lkeC/vv70iPT14LnZpZXcudG8oNik/W2MuYXNzaWduKGYsZyksIi8iLCJfYWxsX2RvY3MgfCAiXS5qb2luKCLigIkiKToiX2lkeCI9PXgudmlldy50byg0KT9bYy5hc3NpZ24oZixnKSwiLyIsYy5hc3NpZ24oZisiL19kZXNpZ24iK2VbMF0uZnJvbSg0KSwoIl9kZXNpZ24iK2VbMF0uZnJvbSg0KSkuZXNjYXBlSFRNTCgpKV0uam9pbigi4oCJIikrIiB8ICI6W2MuYXNzaWduKGYsZyksIi8iLGMuYXNzaWduKGYrIi8iK2VbMF0sZVswXS5lc2NhcGVIVE1MKCkpXS5qb2luKCLigIkiKSsiIHwgIjpbZywiLyIsJzxzcGFuIGNsYXNzPSJ4Z3JheSI+X2FsbF9kb2NzPC9zcGFuPiddLmpvaW4oIuKAiSIpKyIgfCAifSx3YXRjaDpbIiN2aWV3LXJlc3VsdHMtanNvbiIsIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctZGRzdGF0cyI6e2JpbmQ6ZnVuY3Rpb24oeCl7aWYoIl9kZXNpZ25fZG9jcyIhPXgudmlldylyZXR1cm4iIjt2YXIgYT0wLGI9MDtyZXR1cm4gdGhpcy5Sb3dzLmZvckVhY2goZnVuY3Rpb24oeCl7eC52YWx1ZSYmeC52YWx1ZS5zaXplcyYmKGErPXgudmFsdWUuc2l6ZXMuYWN0aXZlLGIrPXgudmFsdWUuc2l6ZXMuZmlsZSl9KSxhJiZiP3RoaXMubGFuZy5UWFRfRERTVEFUUy5hc3NpZ24odGhpcy5CeXRlcyhiKSx0aGlzLkJ5dGVzKGEpKToiIn0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiJfZGVzaWduX2RvY3MiIT14LnZpZXd9fSx3YXRjaDpbIiN2aWV3LXJlc3VsdHMtanNvbiIsIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctd2l0aGRvY3MiOntkZWxheToxMCxpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX1dJVEhET0NTKX0sYmluZDoiaW5jbCIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIiwiI3ZpZXctZ3JpZCJdfSwiI3ZpZXctcmVkdWNlIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19SRURVQ0UpfSxiaW5kOiJyZWR1Y2UiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5WaVt4LnZpZXddfHwhdGhpcy5WaVt4LnZpZXddLnJlZHVjZX19LHdhdGNoOiIjdmlldy1uYW1lIn0sIiNidG4tYW5jaG9yIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIikhPXgubGluayYmYi5hdHRyKCJocmVmIix4LmxpbmspfSx3YXRjaDoiI3N0YXRlLXByb3h5Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIl9maW5kIj09eC52aWV3LnRvKDUpfX19LCIjdmlldy1wbmF2LWpzb24iOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LmdyaWR9fSx3YXRjaDpbIiN2aWV3LWdyaWQiXX0sIiNidG4tc2VsZWN0Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKCIiIT14LnJlZHVjZXx8Il9maW5kIj09eC52aWV3LnRvKDUpKXJldHVybiIiO3ZhciBiPXRoaXMsYz0oKHguZ3JpZD9iLmdSb3dzOmIuZlJvd3MpfHxiLlJvd3MpLnRvKCt4LmxpbWl0KS5tYXAoeD0+eC5pZCkudW5pcXVlKCksZD14LnNlbGVjdGlvbi5pbnRlcnNlY3QoYyksZT1kLmxlbmd0aCxmPXguc2VsZWN0aW9uLmxlbmd0aCxnPWIubGFuZztyZXR1cm4gbnVsbCE9YSYmKHguc2VsZWN0aW9uPWU/eC5zZWxlY3Rpb24uc3VidHJhY3QoYykudW5pcXVlKCk6Zj9bXTp4LnNlbGVjdGlvbi5jb25jYXQoYykudW5pcXVlKCksZT0oZD14LnNlbGVjdGlvbi5pbnRlcnNlY3QoYykpLmxlbmd0aCksZSYmZT09Zj9nLlRYVF9VTlNFTEVDVC5hc3NpZ24oZT09Yy5sZW5ndGg/Zy5UWFRfU0VMRUNUX0FMTDplKTohZSYmZj9nLlRYVF9VTlNFTEVDVC5hc3NpZ24oZik6ZSYmZSE9Zj9nLlRYVF9VTlNFTEVDVF9PRi5hc3NpZ24oZSxmKTpnLlRYVF9TRUxFQ1QuYXNzaWduKHguc2VhcmNoLmxlbmd0aD4yP2cuVFhUX1NFTEVDVF9GSUxURVI6Zy5UWFRfU0VMRUNUX0FMTCl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiEodGhpcy5mUm93c3x8dGhpcy5Sb3dzKS5sZW5ndGh8fCIiIT14LnJlZHVjZXx8Il9maW5kIj09eC52aWV3LnRvKDUpfX0sd2F0Y2g6WyIjdmlldy1hY3Rpb25zIiwiI3N0YXRlLXByb3h5IiwiI2FwcC1zZWFyY2giXX0sIiNidG4tZ3JpZC1hZGRjb2wiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpczsxPT14LmNvbHVtbnMubGVuZ3RoJiYiLnZhbHVlIj09eC5jb2x1bW5zWzBdP3guY29sdW1ucz1iLmRlcml2ZUdyaWRDb2x1bW5zKCk6eC5jb2x1bW5zLnB1c2goIiIpLGIuYnVpbGRHcmlkQ29sdW1ucygpLGIubXkucmVzdHlsZSgpfX0sZXZlbnRzOiJjbGljay5teSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LmdyaWR8fHRoaXMuQ29sdW1ucy5sZW5ndGg+N319LHdhdGNoOlsiI3ZpZXctZ3JpZCIsIiNncmlkLXByb3h5Il19LCIjdmlldy1wbmF2LWdyaWQiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZ3JpZH19LHdhdGNoOlsiI3ZpZXctZ3JpZCJdfSwiI3ZpZXctZ3JpZC1jb2xzIjp7Y2hlY2s6ITAsZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTt4LnNvcnRhYmxlKHtheGlzOiJ4IixkaXN0YW5jZTo1LGhhbmRsZToiLnZpZXctZ3JpZC1jb2xzLXNvcnQifSksYS5idWlsZEdyaWRDb2x1bW5zKCl9LG1lcmdlOiExLGJpbmQ6InRoaXMuQ29sdW1ucyIsbGlzdDonPGRpdiBjbGFzcz0idmlldy1ncmlkLWNvbHVtbiBkaWIgdmF0Ij48ZGl2IGNsYXNzPSJ2aWV3LWdyaWQtY29scy1zb3J0IiB0aXRsZT0iRHJhZyBoZXJlIHRvIHNvcnQgY29sdW1ucyI+PC9kaXY+PGRpdiBjbGFzcz0idzEwMHAgZGliIHZhdCI+PGlucHV0IGNsYXNzPSJncmlkLWNvbHVtbi1wdHIgYm9sZGVyIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPSJmYWxzZSI+PHNwYW4gaWQ9ImJ0bi1mb2xkIiBjbGFzcz0icHNldWRvbGluayB0ZG4gYmZvbGQgZGliIHZhdCI+PGRpdj7ilrw8L2Rpdj48L3NwYW4+PC9kaXY+PC9kaXY+JyxpZDpbImlkIl0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuR3JpZENvbHVtbigpfSx3YXRjaDpbIiNidG4tZ3JpZC1hZGRjb2wiLCIjdmlldy1ncmlkIl19LCIjZ3JpZC1wcm94eSI6e2RlbGF5OjUxLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKHguZ3JpZCYmKGIuQ29sdW1uc3x8W10pLmxlbmd0aCl7dmFyIGM9eC5jb2x1bW5zLmxlbmd0aDt4LmNvbHVtbnM9Yi5Db2x1bW5zLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5jb2xzfSksYi5zdGFzaFZpZXdTdGF0ZSgpLGMhPShiLkNvbHVtbnN8fFtdKS5sZW5ndGgmJnRoaXMubXkucmVzdHlsZSgpfX0sd2F0Y2g6WyIjdmlldy1ncmlkLWNvbHMiXX0sIiNyZXEtZHVyIjp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9eC5kdXIsYj14LnNpemU7cmV0dXJuIGEmJmI/dGhpcy5CeXRlcyhiKSsiIMK3ICIrYSsibXMiOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZHVyfHwheC5zaXplfX0sd2F0Y2g6WyIjc3RhdGUtcHJveHkiXX0sIiNzdGF0ZS1wcm94eSI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzO3gucGF0aC5zbGljZSgwKTt4LnBhdGg9Yi5zMnAoKTt2YXIgYz1jdy5saWIuc2RibShbeC52aWV3LHguc3RhcnQseC5saW1pdCx4LnJldmVyc2UseC5yZWR1Y2UrIiIseC52aWV3PyIiOnguaW5jbCsiIl0pO3guc3RhdGUhPWMmJihiLnN0YXNoVmlld1N0YXRlKCksJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOngudGFiaWQscGF0aDp4LnBhdGgsdGl0bGU6Yi50aXRsZSgpfSkseC5zdGF0ZT1jLC9eKHxfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8X2NoYW5nZXMpJC8udGVzdCh4LnZpZXcpJiYoeC5lZGl0b3I9ITEpLHguZWRpdG9yP2IuRWRTd2l0Y2goKTpiLkVkaXRvci5sZW5ndGg9MCxiLkdldFZpZXcoITApLGIubXkucmVjYWxjKCIjdmlldy1lZC1jb250YWluZXIiKSx4LmVkaXRvcnx8Yi5teS5yZXN0eWxlKCkpfX0sd2F0Y2g6WyIjdmlldy1ncmlkIiwiI3ZpZXctc3RhcnRrZXkiLCIjdmlldy1uYW1lIiwiI3ZpZXctbGltaXQiLCIjYnRuLXZpZXctZGlyIiwiI3ZpZXctcmVkdWNlIiwiI3ZpZXctd2l0aGRvY3MiXSxsaXN0ZW46e2RidXBkYXRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczsoT2JqZWN0LmlzT2JqZWN0KGEpP2EuZGI6YSsiIik9PXgucGF0aFswXSYmKChhLmRvY3N8fFtdKS5maW5kKC9eX2Rlc2lnbi8pJiYoYS5kb2NzLmZvckVhY2goZnVuY3Rpb24oeCl7Yi5EZG9jc1t4XSYmZGVsZXRlIGIuRGRvY3NbeF19KSxiLkdldFZpZXdzKCEwKSksYi5HZXRWaWV3KCEwKSl9LGRiZGVsZXRlZDpmdW5jdGlvbih4LGEpe2lmKGE9PXgucGF0aFswXSl7dmFyIGI9dGhpczsoZnVuY3Rpb24oKXtiLm15LnJvb3QoKS50cmlnZ2VyKCJ0YWJjbG9zZSIse3RhYmlkOngudGFiaWQsZW5mb3JjZTohMH0pfSkuZGVib3VuY2UoTnVtYmVyLnJhbmRvbSgxMCw1MCkpKCl9fX19LCIjdmlldy1yZXEtZXJyb3IiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLkVycm9yLmVzY2FwZUhUTUwoKX0sY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuRXJyb3J9fSx3YXRjaDpbIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctZWQtY29udGFpbmVyIjp7ZGVsYXk6MTAwLGluaXQ6ZnVuY3Rpb24oeCl7fSxiaW5kOiJ0aGlzLkVkaXRvciIsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9eC50eXBlO3JldHVybiB0aGlzLlBobygidmlldyI9PWE/IlZpZXdFZCI6ImluZGV4Ij09YT8iSW5kZXhFZCI6Ik1hbmdvRWQiKX0sbGlzdDonPGRpdj48ZGl2IGNsYXNzPSJ3MTAwcCB0YWMgcHQ1MCBsaDIwMCI+PGRpdiBjbGFzcz0iY3ctYnVzeSB3MTAwIGgzIj48L2Rpdj48L2Rpdj48L2Rpdj4nLGlkOlsibmFtZSIsInR5cGUiLCJkZG9jIiwicmV2Il0sd2F0Y2g6WyIjYnRuLXZpZXdjb2RlIl19LCIjdmlldy1yZXN1bHRzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGNzczp7fX0sIiN2aWV3LXJlc3VsdHMtanNvbiI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuVERvY3MsYz1hLlRNYXAsZD1hLlRNYW5nbyxlPWEuZGF0YTt4Lmxpc3Qoe2RhdGE6YS5Sb3dzLnRvKCtlLmxpbWl0KSxkZWxheTowLGNodW5rOjUwLHNvcnRCeTpudWxsLGlkOng9PnguX2lkeCxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbZS52aWV3LGUuc2VxfHwiIixhLlJvd3MubGVuZ3RoLGUudmlldz8iIjplLmluY2wsbnVsbD09eC5kb2MseC5fY2hlY2tlZCxlLnNlYXJjaC5sZW5ndGg+MT9lLnNlYXJjaDoiICIsIl9kZXNpZ25fZG9jcyI9PWUudmlld3x8Il9jaGFuZ2VzIj09ZS52aWV3P1t4LnZhbHVlLHgudmlld19pbmRleF06IiAiXSl9LHRlbXBsYXRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIl9sb2NhbF9kb2NzIj09ZS52aWV3fHwhZS52aWV3JiYhZS5pbmNsLmxlbmd0aD9iKHgsYSk6Il9maW5kIj09ZS52aWV3LnRvKDUpP2QoeCxhKTpjKHgsYSl9fSkseC5vbigiY2xpY2subXkiLCIuY29sLXZhbHMiLGZ1bmN0aW9uKHgpe3ZhciBiLGMsZCxlPSQoeC5jdXJyZW50VGFyZ2V0KSxmPWUucGFyZW50KCkuZGF0YSgia2V5IiksZz1PYmplY3QuaXNTdHJpbmcoZik/ZjpKU09OLnN0cmluZ2lmeShmKTtpZighZS5pcygiLmNvbC1qc29uIikpe2lmKCEoYj0oYS5Sb3dzfHxbXSkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5faWR4PT1nfSkpKXJldHVybiExO2IuX2luZGV4LGUuYWRkQ2xhc3MoImNvbC1qc29uIiksZS5maW5kKCI+LmNvbC1lZC1jbG9zZSIpLmxlbmd0aHx8KGQ9Yi5fa2pzb24rYi5fdmpzb24sZS5hcHBlbmQoYz0kKCc8ZGl2IGNsYXNzPSJjb2wtZWQgcHJlIGZzODUgbGgxMjAgcGw0Ij48L2Rpdj4nKSksZS5hcHBlbmQoJzxkaXYgY2xhc3M9ImNvbC1lZC1jbG9zZSBmczEzMCBsaDEzMCIgdGl0bGU9InsxfSI+4pyVPC9kaXY+Jy5hc3NpZ24oYS5SVCgibGFuZyIpLlRJUF9DTE9TRUpTT04pKSxDb2RlTWlycm9yKGNbMF0se21vZGU6ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiExLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITB9KS5zZXRWYWx1ZShkKSxhLmZTZWFyY2gmJmNbMF0uY2hpbGRyZW5bMF0uQ29kZU1pcnJvci5hZGRPdmVybGF5KHt0b2tlbjpmdW5jdGlvbih4LGIpe2lmKHgubWF0Y2goYS5jbVNlYXJjaCkpcmV0dXJuIHguZWF0KGEuY21TZWFyY2gpLCJmb3VuZCI7Zm9yKDtudWxsIT14Lm5leHQoKSYmIXgubWF0Y2goYS5jbVNlYXJjaCwhMSk7KTtyZXR1cm4gbnVsbH19KSl9fSkseC5vbigiY2xpY2subXkiLCIuY29sLWVkLWNsb3NlIixmdW5jdGlvbih4KXtyZXR1cm4gJCh4LmN1cnJlbnRUYXJnZXQpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJjb2wtanNvbiIpLCExfSl9LGRlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEpe3ZhciBjLGQ9dGhpcyxlPSIiPT14LnJlZHVjZSYmIl9maW5kIiE9eC52aWV3LnRvKDUpO2lmKCF4LmdyaWQpe2lmKC9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdCh4LnZpZXcpfHxlKXt2YXIgZj1jdy5saWIuYTJvKHguc2VsZWN0aW9uKTtkLlJvd3MuZm9yRWFjaCh4PT54Ll9jaGVja2VkPWZbZT94LmlkOngua2V5XT8iY2hlY2tlZCI6IiIpfXguc2VhcmNoLmxlbmd0aD4yJiYoYz1kLmZTZWFyY2gpPyhkLmZSb3dzPWQuUm93cy50bygreC5saW1pdCkuZmlsdGVyKHg9PmMudGVzdCh4Ll9ranNvbil8fGMudGVzdCh4Ll92anNvbikpLGIubGlzdCgiZGF0YSIsZC5mUm93cykpOihkLmZSb3dzPW51bGwsYi5saXN0KCJkYXRhIixkLlJvd3MudG8oK3gubGltaXQpKSl9fX0sd2F0Y2g6WyIjc3RhdGUtcHJveHkiLCIjdmlldy1hY3Rpb25zIiwiI2J0bi1zZWxlY3QiLCIjYXBwLXNlYXJjaCJdfSwiI3ZpZXctcmVzdWx0cy1ncmlkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KGEuVERvY3MsYS5UTWFwLGEuVE1hbmdvLGEuVEdyaWRNYXApLGM9YS5kYXRhO3RyeXt4Lmxpc3Qoe2RhdGE6KGEuZ1Jvd3N8fFtdKS50bygrYy5saW1pdCksZGVsYXk6MCxjaHVuazo1MCxzb3J0Qnk6bnVsbCxpZDp4PT54Ll9pZHgsaGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW2MudmlldyxjLnNlcXx8IiIsYS5Sb3dzLmxlbmd0aCx4Ll9jaGVja2VkLGMuY29sdW1ucyxudWxsPT14LmRvYyxjLnNlYXJjaC5sZW5ndGg+MT9jLnNlYXJjaDoiICIsIl9kZXNpZ25fZG9jcyI9PWMudmlld3x8Il9jaGFuZ2VzIj09Yy52aWV3P1t4LnZhbHVlLHgudmlld19pbmRleF06IiAiXSl9LHRlbXBsYXRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGIoeCxhKX19KX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX14Lm9uKCJjbGljay5teSIsInRkLmdyaWQtY29sdW1uIixmdW5jdGlvbih4KXt2YXIgYixjLGQsZT0kKHguY3VycmVudFRhcmdldCksZj1lLnBhcmVudCgpLmRhdGEoImtleSIpLGc9T2JqZWN0LmlzU3RyaW5nKGYpP2Y6SlNPTi5zdHJpbmdpZnkoZik7aWYoIWUuaXMoIi5jb2wtanNvbiIpKXtpZighKGI9KGEuZ1Jvd3N8fFtdKS5maW5kKHg9PnguX2lkeD09ZykpKXJldHVybiExO3ZhciBoPSQoJzx0ZCBjbGFzcz0iZ3JpZC1jb2x1bW4gY29sLWpzb24gcHJlbCIgY29sc3Bhbj0iezF9Ij48L3RkPicuYXNzaWduKGEuQ29sdW1ucy5sZW5ndGgpKTtoPWguaW5zZXJ0QWZ0ZXIoZS5wYXJlbnQoKS5jaGlsZHJlbigpWzBdKSxiLl9pbmRleCxkPWIuX2tqc29uK2IuX3Zqc29uLGguYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQgcHJlIGZzODUgbGgxMjAiPjwvZGl2PicpLGguYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQtY2xvc2UgZnMxMzAgbGgxMzAiIHRpdGxlPSJ7MX0iPuKclTwvZGl2PicuYXNzaWduKGEuUlQoImxhbmciKS5USVBfQ0xPU0VKU09OKSksYz1oLmZpbmQoIi5jb2wtZWQiKSxDb2RlTWlycm9yKGNbMF0se21vZGU6ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiExLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITB9KS5zZXRWYWx1ZShkKSxhLmZTZWFyY2gmJmNbMF0uY2hpbGRyZW5bMF0uQ29kZU1pcnJvci5hZGRPdmVybGF5KHt0b2tlbjpmdW5jdGlvbih4LGIpe2lmKHgubWF0Y2goYS5jbVNlYXJjaCkpcmV0dXJuIHguZWF0KGEuY21TZWFyY2gpLCJmb3VuZCI7Zm9yKDtudWxsIT14Lm5leHQoKSYmIXgubWF0Y2goYS5jbVNlYXJjaCwhMSk7KTtyZXR1cm4gbnVsbH19KX19KSx4Lm9uKCJjbGljay5teSIsIi5jb2wtZWQtY2xvc2UiLGZ1bmN0aW9uKHgpe3JldHVybiAkKHguY3VycmVudFRhcmdldCkucGFyZW50KCkucmVtb3ZlKCksITF9KX0sZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbD09YSYmeC5ncmlkKXt2YXIgYz10aGlzLGQ9Yy5GLmdldFJlZlN0YXIsZT0iIj09eC5yZWR1Y2UmJiJfZmluZCIhPXgudmlldy50byg1KSxmPWMuQ29sdW1ucy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtpZih4Lmxhc3QoKSYmeC5sYXN0KCkuY29scz09YS5jb2xzKXJldHVybiB4Lmxhc3QoKS5zcGFuKz0xLHg7dmFyIGI9KGEuY2FzdD9hLmNvbHMudG8oYS5jb2xzLmxlbmd0aC1hLmNhc3QubGVuZ3RoLTIpOmEuY29scykuc3BsaXQoIi4iKTtyZXR1cm4iIiE9PWJbMF0/Yi51bnNoaWZ0KCJ2YWx1ZSIpOmIuc2hpZnQoKSx4LnB1c2goe3NlbDpiLHNwYW46MSxjb2xzOmEuY29scyxjYXN0OmEuY2FzdH0pLHh9LFtdKSxnPWN3LmxpYi5hMm8oeC5zZWxlY3Rpb24pO2MuUm93cy5mb3JFYWNoKHg9PnguX2NoZWNrZWQ9Z1tlP3guaWQ6eC5rZXldPyJjaGVja2VkIjoiIiksYy5nUm93cz1jLlJvd3MudG8oK3gubGltaXQpO3ZhciBoPXguc2VhcmNoLmxlbmd0aD4yJiZjLmZTZWFyY2g/Yy5mU2VhcmNoOm51bGw7aCYmKGMuZ1Jvd3M9Yy5nUm93cy5maWx0ZXIoeD0+aC50ZXN0KHguX2tqc29uKXx8aC50ZXN0KHguX3Zqc29uKSkpLGMuZ1Jvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3guY29scz1mLm1hcChmdW5jdGlvbihhKXt2YXIgYj1hLnNlbC5sZW5ndGg/ZCh4LGEuc2VsKTp2b2lkIDAsYz0ic3RyaW5nIj09dHlwZW9mIGIsZT1udWxsIT1oJiZoLnRlc3QoYz9iOkpTT04uc3RyaW5naWZ5KGIpKTtyZXR1cm57dmFsOmIsc3BhbjphLnNwYW4sY3NzOmU/ImNlbGwtZm91bmQiOiIiLGNhc3Q6YS5jYXN0fX0pfSksYi5saXN0KCJkYXRhIixjLmdSb3dzKX19LHdhdGNoOlsiI3ZpZXctbmFtZSIsIiN2aWV3LWdyaWQiLCIjZ3JpZC1wcm94eSIsIiNzdGF0ZS1wcm94eSIsIiN2aWV3LWFjdGlvbnMiLCIjYnRuLXNlbGVjdCIsIiNhcHAtc2VhcmNoIl19fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzEwcCBmczk1IHppMiI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJ7UExDX1NFQVJDSH0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+PGRpdiBpZD0ieC1idG4tcm9vdCIgY2xhc3M9ImRpYiB2YXQgb2gge191cHdpZHRofSB0dzEwMCI+PGEgaWQ9ImJ0bi1yb290IiBjbGFzcz0idzQwIGJ1dHRvbiBtcjIgdGRuIGRpYiB2YXQgcGwwIHByMCBmdzYwMCIgdGl0bGU9IkRCIGRvYyBsaXN0Ij4uLi88L2E+PC9kaXY+PGRpdiBjbGFzcz0ibncgZGliIHZhdCIgc3R5bGU9IndpZHRoOmNhbGMoMzUlICsgMjMwcHgpOyI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZCIgY2xhc3M9Inc0MCBtcjIiIHRpdGxlPSJ7VElQX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0iZGliIHZhdCBtcjIgYm9sZGVyIiBzdHlsZT0id2lkdGg6Y2FsYygoMTAwJSAtIDIwNHB4KSAvIDIgKyAxNnB4KTsiPjxpbnB1dCBpZD0idmlldy1uYW1lIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iIHcxMDBwIGZzMTEwIHZhdCI+PC9kaXY+PGRpdiBjbGFzcz0iZnM5NSBkaWIgdmF0IiBzdHlsZT0id2lkdGg6Y2FsYygoMTAwJSAtIDIwNHB4KSAvIDIgLSA1cHgpOyI+PGRpdiBjbGFzcz0iZmktZmlsdGVyIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogNnB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgaWQ9InZpZXctc3RhcnRrZXkiIHR5cGU9InRleHQiIGNsYXNzPSJ2YXQgdWktc2VhcmNoIHcxMDBwIiBwbGFjZWhvbGRlcj0ie1BMQ19TVEFSVEtFWX0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxN3B4IWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MTlweCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoycHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHcxNSBwbDIgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE1cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLnRyaWdnZXIoXCdpbnB1dFwnKSI+PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJidXR0b25zIG1sMiI+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWludXMiIGNsYXNzPSJ3MmVtIG1yMiBwbDAgcHIwIiB0aXRsZT0ie1RJUF9TSElGVF9NSU5VU30iPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1sZWZ0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LXBsdXMiIGNsYXNzPSJ3MmVtIG1yMiBwbDAgcHIwIiB0aXRsZT0ie1RJUF9TSElGVF9QTFVTfSI+PHNwYW4gY2xhc3M9ImZpLWFycm93LXJpZ2h0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjwvc3Bhbj48ZGl2IGNsYXNzPSJkaWIgdmF0IHc3MCI+PGlucHV0IGlkPSJ2aWV3LWxpbWl0IiB0eXBlPSJ0ZXh0IiBjbGFzcz0iIHcxMDBwIGZzMTEwIHZhdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCBwcjcgYnV0dG9ucyIgaWQ9InZpZXctZ3JpZCI+PC9kaXY+PGRpdiBpZD0idmlldy1hY3Rpb25zIiBjbGFzcz0ibncgcGw1IGRpYiB2YXQiIHN0eWxlPSJ3aWR0aDpjYWxjKDUzJSAtIDI3MHB4KTsiPjxhIGhyZWY9IiIgaWQ9ImJ0bi12aWV3LW5ld2RvYyIgY2xhc3M9ImJ1dHRvbiBmczEwMCB0ZG4gZGliIGdyZWVuIHZhdCBtcjIgbm90NGRkb2Nzc2VsIj48c3BhbiBjbGFzcz0ibGgxNDAiPntCVE5fTkVXRE9DfTwvc3Bhbj48L2E+PGJ1dHRvbiBpZD0iYnRuLXZpZXctZGVsZG9jcyIgY2xhc3M9Im9rNHNlbCBtcjIgcmVkIj57QlROX0RFTERPQ1N9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctY29weWRvY3MiIGNsYXNzPSJvazRzZWwgbXIyIiB4ZGlzYWJsZWQ+e0JUTl9DT1BZRE9DU308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1jb21wYWN0IiBjbGFzcz0ibm90NHNlbCBvazRkZG9jcyBtcjIiPntCVE5fQ09NUEFDVH08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1hY2wiIGNsYXNzPSJub3Q0c2VsIj57QlROX0FDTH08L2J1dHRvbj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1wYW5lbHMiIGNsYXNzPSJ3MTAwcCBwdDE2IHBsMjAgcHIyMCI+PHNlY3Rpb24gaWQ9InZpZXctZWQtY29udGFpbmVyIiBjbGFzcz0idmF0IHBhbmVsaGVpZ2h0LTMyIGJyMiBtcjIwIGJ4dG9wLTMxIiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9zZWN0aW9uPjxkaXYgaWQ9InZpZXctcGFuZWwiIGNsYXNzPSJkaWIgdmF0IHBhbmVsaGVpZ2h0LTMyIGJyMiI+PGRpdiBjbGFzcz0iYmctcGdyYXkgYmJzIGxoMTYwIG53IG9oIGVsbCB2aWV3LXJlc3VsdHMtaGVhZCB4cGFuZWwgYmFzIj48ZGl2IGNsYXNzPSJoY29sdzEgZGliIHZhdCBwdDEgbncgb2ggZWxsIHByMiI+PHNwYW4gaWQ9ImJ0bi12aWV3LWRpciIgY2xhc3M9ImRpYiBwbDggcHI2IG1yMiB2YXQgY3AgbzUwIGZzODAgcHQyIHBzZXVkb2xpbmsgdGRuIGgzMCI+PC9zcGFuPjxkaXYgaWQ9InZpZXctY29scyIgY2xhc3M9ImRpYiB2YXQgbncgeGdyYXkgbXI4Ij48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWJ0bnMtYm94IGRpYiB2YXQiPjxkaXYgaWQ9ImJ0bi1zZWxlY3QiIGNsYXNzPSJidXR0b24geGJ1dHRvbiBwdDIgaDI1IG10MSBmczkwIGxoMTMwIHRkbiBkaWIgdmF0IG1sMyBoaWRlIj48L2Rpdj48ZGl2IGlkPSJidG4tdmlld2NvZGUiIGNsYXNzPSJidXR0b24geGJ1dHRvbiBwdDIgaDI1IG10MSBmczkwIGxoMTMwIHRkbiBkaWIgdmF0IG1sMyBoaWRlIiB0aXRsZT0ie1RJUF9WSUVXQ09ERX0iPntCVE5fVklFV0NPREV9PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0idmlldy1wbmF2LWpzb24iIGNsYXNzPSJoY29sdzIgZGliIHB0MSBncmF5IGZzOTAiPjxzcGFuIGNsYXNzPSJ2aWV3LWVkaXRvci1oaWRlIGdyYXkgZnIgcHI4IHczNXAgZWxsIHRhciI+PHNwYW4gaWQ9InZpZXctbGlua3MiPjwvc3Bhbj48YSBocmVmPSIiIGlkPSJidG4tYW5jaG9yIiBjbGFzcz0idGRuIG83MCBkaWIgdmF0IG10MSBtYi0xIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IntUSVBfQU5DSE9SfSI+PHNwYW4gY2xhc3M9ImZpLWFuY2hvciI+PC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gaWQ9InZpZXctcmVkdWNlIiBjbGFzcz0ibXQxIHBsNyBoaWRlIj48L3NwYW4+PHNwYW4gaWQ9InZpZXctd2l0aGRvY3MiIGNsYXNzPSJtdDEgaGlkZSI+PC9zcGFuPjxzcGFuIGlkPSJ2aWV3LWRkc3RhdHMiIGNsYXNzPSJtdDEgcGw3IHhncmF5IGhpZGUiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWV3LXBuYXYtZ3JpZCIgY2xhc3M9Imhjb2x3MiBkaWIgdmF0IGZzOTUgZ3JheSBoaWRlIj48ZGl2IGlkPSJ2aWV3LWdyaWQtY29scyI+PC9kaXY+PGRpdiBpZD0iYnRuLWdyaWQtYWRkY29sIiBjbGFzcz0iYnV0dG9uIHAwIGxoMTYwIGZzMTEwIHRkbiBkaWIgdmF0IGJscyBib2xkZXIgdGFjIiB0aXRsZT0ie1RJUF9BRERDT0x9Ij4rPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0idmlldy1yZXEtZXJyb3IiIGNsYXNzPSJ3MTAwcCBoaWRlIHJlZDEgdGFjIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjUwcHg7bGVmdDowOyI+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctcmVzdWx0cyIgY2xhc3M9InBhbmVsaGVpZ2h0LTYzIGdyYXktMSBsaDE3MCBieHRvcCIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjxzZWN0aW9uIGlkPSJ2aWV3LXJlc3VsdHMtanNvbiIgY2xhc3M9IncxMDBwIiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9zZWN0aW9uPjx0YWJsZSBjbGFzcz0iZ3JpZC10YWJsZSIgY2VsbHNwYWNpbmc9IjAiPjx0Ym9keSBpZD0idmlldy1yZXN1bHRzLWdyaWQiIGNsYXNzPSJteS1jb250YWluZXIiPjwvdGJvZHk+PC90YWJsZT48L3NlY3Rpb24+PC9kaXY+PC9zZWN0aW9uPjxkaXYgaWQ9InN0YXRlLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PGRpdiBpZD0iZ3JpZC1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjxkaXYgaWQ9InJlcS1kdXIiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHN0eWxlOnsiICN2aWV3LWFjdGlvbnMiOnsiIC5ub3Q0c2VsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5vazRzZWwiOiJkaXNwbGF5Om5vbmU7IiwiLmhhc1NlbGVjdGlvbiI6eyIgLm5vdDRzZWwiOiJkaXNwbGF5Om5vbmU7IiwiIC5vazRzZWwiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIuaXNEZG9jcyI6eyIgLm9rNGRkb2NzIjoiZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50OyIsIiAubm90NGRkb2Nzc2VsIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifX19LCIgI3JlcS1kdXIiOiJwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi0wLjc1ZW07IHJpZ2h0OjMlO2ZvbnQtc2l6ZTo4MCU7IGxpbmUtaGVpZ2h0OjEuMjVlbTsgY29sb3I6IzhhOTA5YTsgYm9yZGVyOjFweCBzb2xpZCAjY2JkM2RiO2JhY2tncm91bmQ6d2hpdGU7IGJvcmRlci1yYWRpdXM6MTBweDsgcGFkZGluZzowcHggNXB4IDFweCA1cHg7IiwiICN2aWV3LXBhbmVscyI6eyIiOnsiICN2aWV3LXBhbmVsIjoid2lkdGg6MTAwJTsiLCIgI3ZpZXctZWQtY29udGFpbmVyIjoiZGlzcGxheTpub25lO3dpZHRoOjM1JTsiLCIgLmhjb2x3MSI6IndpZHRoOjM4JTsgdHJhbnNpdGlvbjp3aWR0aCAwLjFzOyIsIiAuaGNvbHcyIjoid2lkdGg6NjIlOyB0cmFuc2l0aW9uOndpZHRoIDAuMXM7In0sIi52aWV3LWVkaXRvciI6eyIgI3ZpZXctcGFuZWwiOiJ3aWR0aDpjYWxjKDYwJSAtIDIwcHgpOyIsIiAjdmlldy1lZC1jb250YWluZXIiOiJ3aWR0aDo0MCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyAiLCIgLmhjb2x3MSI6IndpZHRoOjM4JTsiLCIgLmhjb2x3MiI6IndpZHRoOjYyJTsiLCIgLnZpZXctZWRpdG9yLWhpZGUiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LCIudmlldy1lZGl0b3Iudmlldy1tYW5nbyI6eyIgI3ZpZXctcGFuZWwiOiJ3aWR0aDpjYWxjKDY1JSAtIDIwcHgpOyIsIiAjdmlldy1lZC1jb250YWluZXIiOiJ3aWR0aDozNSU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9LCIudmlldy1tYW5nbyI6eyIgI3ZpZXctcmVzdWx0cyI6eyIgLmNvbC1pZHMiOiJ3aWR0aDo3JTtwYWRkaW5nOjNweCAycHggM3B4IDdweDsiLCIgLmNvbC12YWxzIjoid2lkdGg6OTMlOyBwYWRkaW5nLWxlZnQ6NXB4OyJ9LCIgI2J0bi12aWV3LWRpciI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICN2aWV3LWNvbHMiOiJwYWRkaW5nLWxlZnQ6NnB4OyIsIi5tb2RlLWdyaWQiOnsiIC5oY29sdzEiOiJ3aWR0aDo2NXB4IWltcG9ydGFudDsiLCIgLmhjb2x3MiI6IndpZHRoOmNhbGMoMTAwJSAtIDY1cHgpIWltcG9ydGFudDsiLCIgdGFibGUuZ3JpZC10YWJsZSI6eyIgdGQuZ2NvbHcwIjoid2lkdGg6NjVweCFpbXBvcnRhbnQ7In19fSwiLnZpZXctZWRpdG9yLnZpZXctaW5kZXgiOnsiICN2aWV3LXBhbmVsIjoid2lkdGg6Y2FsYyg2NSUgLSAyMHB4KTsiLCIgI3ZpZXctZWQtY29udGFpbmVyIjoid2lkdGg6MzUlOyBkaXNwbGF5OmlubGluZS1ibG9jazsifSwiLnZpZXctaW5kZXgiOnsiIC52aWV3LXRvZmlsdGVyIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifSwiLnZpZXctY2hhbmdlcyI6eyIgLnZpZXctdG9maWx0ZXIiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LCIubW9kZS1qc29uIjp7IiAuZ3JpZC10YWJsZSI6ImRpc3BsYXk6bm9uZTsifSwiLm1vZGUtZ3JpZCI6eyIgLmhjb2x3MSI6IndpZHRoOjMzMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlM2U5ZWM7IG1pbi1oZWlnaHQ6IDI5cHg7IiwiIC5oY29sdzIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMzBweCk7IiwiIC52aWV3LWJ0bnMtYm94IjoiZmxvYXQ6cmlnaHQiLCIudmlldy1lZGl0b3IiOnsiIC5oY29sdzEiOiJ3aWR0aDoyODBweDsiLCIgLmhjb2x3MiI6IndpZHRoOmNhbGMoMTAwJSAtIDI4MHB4KTsiLCIgdGFibGUuZ3JpZC10YWJsZSI6eyIgdGQuZ2NvbHcwIjoid2lkdGg6MjgwcHg7In19LCIgI3ZpZXctZ3JpZC1jb2xzIjp7IiI6IndpZHRoOmNhbGMoMTAwJSAtIDMwcHgpOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyIsIiBpbnB1dCI6ImJvcmRlci1sZWZ0LWNvbG9yOiNlM2U5ZWM7In0sIiAjYnRuLWdyaWQtYWRkY29sIjp7IiI6ImJvcmRlcjpub25lOyBib3JkZXItbGVmdDoxcHggc29saWQgI2UzZTllYyFpbXBvcnRhbnQ7IHdpZHRoOjMwcHg7IGhlaWdodDoyOXB4OyBib3JkZXItcmFkaXVzOiAwcHg7IGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZjghaW1wb3J0YW50OyIsIjpob3ZlciI6ImJhY2tncm91bmQtY29sb3I6d2hpdGUhaW1wb3J0YW50OyJ9LCIgLnZpZXctcmVzdWx0cy1oZWFkIjoiYmFja2dyb3VuZC1jb2xvcjojZjBmOGZmIWltcG9ydGFudCIsIiB0YWJsZS5ncmlkLXRhYmxlIjp7IiI6ImJvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTsgdGFibGUtbGF5b3V0OmZpeGVkOyB3aWR0aDoxMDAlOyIsIiB0ciI6IndpZHRoOjEwMCUiLCIgdHI6bGFzdC1jaGlsZCB0ZCI6ImJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlZmYzOyIsIiB0ZCI6eyIiOiJwYWRkaW5nOjA7IHZlcnRpY2FsLWFsaWduOnRvcDsgdHJhbnNpdGlvbjp3aWR0aCAwLjFzOyBtaW4taGVpZ2h0OiAyZW07IiwiLmdjb2x2IjoiYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsMTQsMzUsMC4wNyk7IiwiLmdjb2x2PmRpdiI6InBhZGRpbmc6IDVweCA1cHggNnB4IDdweDsgbWluLWhlaWdodDoyZW07IiwiLmdjb2x3MCI6IndpZHRoOjMzMHB4OyAiLCIgPmRpdiI6IndpZHRoOjEwMCU7IHdvcmQtYnJlYWs6YnJlYWstd29yZDsiLCIgPmRpdi53MTAwcC0zMCI6IndpZHRoOmNhbGMoMTAwJSAtIDMwcHgpOyB3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7IHBhZGRpbmc6IDZweCA3cHggNnB4IDA7IiwiLmNvbC1qc29uIjp7IiB+dGQiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiI6InBhZGRpbmc6MCFpbXBvcnRhbnQ7In19fSwiICN2aWV3LXJlc3VsdHMtanNvbiI6ImRpc3BsYXk6bm9uZTsiLCIgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KGEuQ29sdW1uc3x8W10pLmxlbmd0aHx8MSxjPWEubXkuZmluZCgiI3ZpZXctcmVzdWx0cyIpLGQ9Il9maW5kIj09YS5kYXRhLnZpZXcudG8oNSksZT0oKGMubGVuZ3RoP2Mud2lkdGgoKToxMDI0KS0oZD82NTphLmRhdGEuZWRpdG9yPzI4MDozMzApKS9iO3JldHVybiBhLmNsb3NlQXV0b2NvbXBsZXRlcyYmYS5jbG9zZUF1dG9jb21wbGV0ZXMoKSxbMSwyLDMsNCw1LDYsNyw4XS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFsiIC5nY29sdyIrYV09IndpZHRoOiIrYSplKyJweDsiLHh9LHsiIC52aWV3LWdyaWQtY29sdW1uIjoid2lkdGg6Y2FsYygoMTAwJSArIDMwcHgpLyAiK2IrIik7IiwiIC52aWV3LWdyaWQtY29sdW1uOmxhc3QtY2hpbGQiOiJ3aWR0aDpjYWxjKCgoMTAwJSArIDMwcHgpLyAiK2IrIikgLSAzMHB4KTsifSl9fSwiIC52aWV3LWhvdmVyYnRuLnZpZXctZWRpdHVzZXIiOiJkaXNwbGF5Om5vbmUiLCIuZGItdXNlcnMgLnZpZXctaG92ZXJidG4udmlldy1lZGl0dXNlciI6ImRpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDsifSwiICN2aWV3LWdyaWQtY29scyI6eyIgLnZpZXctZ3JpZC1jb2x1bW4iOnsiLnVpLXNvcnRhYmxlLWhlbHBlciI6eyIiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTsiLCIgLnZpZXctZ3JpZC1jb2xzLXNvcnQiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTIwLDE2OCwyMjIsMC41KTsifX0sIiBpbnB1dCI6eyIiOiJib3JkZXItcmFkaXVzOiAwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1ib3R0b206bm9uZTsgYm9yZGVyLXJpZ2h0Om5vbmU7IHBhZGRpbmctcmlnaHQ6MjBweDt3aWR0aDogY2FsYygxMDAlICsgMXB4KTsgaGVpZ2h0OjI5cHg7IGxpbmUtaGVpZ2h0OjI5cHg7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7ICIsIjpmb2N1cyI6ImJhY2tncm91bmQ6cmdiYSgwLDE1NSwyNTUsMC4xMik7In0sIiAudmlldy1ncmlkLWNvbHMtc29ydCI6eyIiOiJjdXJzb3I6bW92ZTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDozcHg7IHotaW5kZXg6MTsgd2lkdGg6MTAwJTsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuM3M7IiwiOmhvdmVyIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMCwxNjgsMjIyLDAuNSk7In19LCIgI3ZpZXctcmVzdWx0cyI6eyIiOiJsaW5lLWhlaWdodDoxLjRlbTsiLCIgLnZpZXctcm93IjoibWluLWhlaWdodDoyZW07IiwiIC52aWV3LXJvdzpudGgtY2hpbGQoMm4rMCkiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA2LDIxNCwyMjYsMC4yKTsiLCIgLnZpZXctaG92ZXJidG4iOiJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMHB4O2xpbmUtaGVpZ2h0OjEuMmVtO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMC41czt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcjsiLCIgLnZpZXctcm93OmhvdmVyIC52aWV3LWhvdmVyYnRuIjoib3BhY2l0eTowLjU7IiwiIC52aWV3LXJvdzpob3ZlciAudmlldy1ob3ZlcmJ0bjpob3ZlciI6Im9wYWNpdHk6MC44OyIsIiAudmlldy1ob3ZlcmJ0bi5ob3ZlciI6Im9wYWNpdHk6MC43OyIsIiAudmlldy1yb3c+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO3dvcmQtd3JhcDogYnJlYWstd29yZDsiLCIgLmNvbC1pZHMiOiJ3aWR0aDozOCU7IHBhZGRpbmc6NHB4IDIwcHggNXB4IDhweDsiLCIgLmNvbC1pZHMudzM1cC0zMCI6IndpZHRoOmNhbGMoMzglIC0gMzBweCk7IiwiIC5jb2wtdmFscyI6eyIiOiJ3aWR0aDo2MiU7IHBhZGRpbmctbGVmdDoxMHB4OyIsIiAuY29sLXRyaW0iOiJjdXJzb3I6cG9pbnRlciIsIiAuY29sLWVkIjoiZGlzcGxheTpub25lOyIsIiAuY29sLWVkLWNsb3NlIjoiZGlzcGxheTpub25lOyJ9LCIgLnc0MHAtMzAiOiJ3aWR0aDpjYWxjKDQwJSAtIDMwcHgpOyIsIiAudzM4cC0zMCI6IndpZHRoOmNhbGMoMzglIC0gMzBweCk7IiwiIC53NjJwIjoid2lkdGg6NjIlOyJ9LCIgLmJicyI6ImJvcmRlci1ib3R0b20tY29sb3I6I2UzZTllYzsiLCIgLmJhcyI6ImJvcmRlci1jb2xvcjojZTNlOWVjOyIsIiAuYnJzIjoiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZTNlOWVjOyIsIiAudmlldy1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjMyLDEyMSwwLjc1KTsgYm9yZGVyLXJhZGl1czoycHg7IiwiIC5jZWxsLWZvdW5kIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzIsMTIxLDAuNCk7IiwiIC5teS1tb2RhbC1mb3JtIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDpjYWxjKDIwICogMTZweCArIDZweCk7IiwiIC5teS1tb2RhbC1mb3JtIC5Db2RlTWlycm9yIjp7IiI6Im1pbi1oZWlnaHQ6MTUwcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjEzcHghaW1wb3J0YW50IiwiIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweCFpbXBvcnRhbnQ7IiwiIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsifSwiIC51aS13aWRnZXQiOiJmb250LXNpemU6MTAwJSIsIiAudWktYXV0b2NvbXBsZXRlIjoiZm9udC1zaXplOjAuOWVtOyBsaW5lLWhlaWdodDoxLjI1ZW07IG1heC1oZWlnaHQ6NTB2aDsgei1pbmRleDoxODAwO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDsiLCIgLmJmb2xkIjp7IiI6WyJ3aWR0aDoyMHB4IWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IiwibWFyZ2luLWxlZnQ6LTIxcHg7IHotaW5kZXg6KzE7Il0sIiBkaXYiOiJmb250LXNpemU6NjAlOyBvcGFjaXR5OjAuNTt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDozLjRlbTt3aWR0aDoxMDAlOyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1hLmxhbmc7eC5odG1sKCc8ZGl2IGNsYXNzPSJncmF5MSBmczEwNSBwdDEwMCBwYjEwMCB0YWMiPnsxfTwvZGl2PicuYXNzaWduKGMuTVNHX0xPQURJTkcpKSxhLkxzPWEuUGhvKCJMcyIpLE9iamVjdC5rZXlzKGEuRikuZm9yRWFjaChmdW5jdGlvbih4KXsiZnVuY3Rpb24iPT10eXBlb2YgYS5GW3hdJiYoYVt4XT1hLkZbeF0uYmluZChhKSl9KSxPYmplY3Qua2V5cyhhLlQpLmZvckVhY2goZnVuY3Rpb24oeCl7YS5UW3hdPWEuUGhvKCJDb21waWxlVCIpKGEuVFt4XSl9KSxhLlZpZXdzPWEuRGVmYXVsdFZpZXdzKCksYS5UTWFwPWEuVE1hcCgpLGEuVERvY3M9YS5URG9jcygpLGEuVE1hbmdvPWEuVE1hbmdvKCksYS5UR3JpZE1hcD1hLlRHcmlkTWFwKCk7dmFyIGQ9YS5QaG8oIkxzIikoIk1hbmdvLiIrYi5wYXRoWzBdKTtyZXR1cm4gT2JqZWN0LmlzT2JqZWN0KGQpJiZkLnF1ZXJ5JiYkLmV4dGVuZChiLm1hbmdvLGQpLHgub24oImNsaWNrLm15IiwiLnZpZXctdG9maWx0ZXIiLGZ1bmN0aW9uKHgpe3ZhciBkPSQoeC5jdXJyZW50VGFyZ2V0KS5kYXRhKCJmaWx0ZXIiKTtiLnN0YXJ0PU9iamVjdC5pc1N0cmluZyhkKT8vXiJcZCsiJC8udGVzdChkKT9kOmQucmVwbGFjZSgvXiJ8IiQvZywiIik6SlNPTi5zdHJpbmdpZnkoZCksY3cubGliLm5vdGUoYy5NU0dfU1RBUlRfQ0hBTkdFLmFzc2lnbihiLnN0YXJ0KSksYS5teS5yZWNhbGMoIiN2aWV3LXN0YXJ0a2V5IiksYS5teS5jaGVjaygiI3ZpZXctc3RhcnRrZXkiKX0uZGVib3VuY2UoNDApKSx4Lm9uKCJjbGljay5teSIsIi5idG4tb3Blbi1kb2MiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5kYXRhKCJ1cmwiKTthLlBobygiU3dpdGNoIikoYi5zcGxpdCgiLyIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHgpfSkpfSkseC5vbigiY2xpY2subXkiLCIudmlldy1lZGl0dXNlciIsZnVuY3Rpb24oYil7dmFyIGQ9JChiLmN1cnJlbnRUYXJnZXQpLGU9JChiLmN1cnJlbnRUYXJnZXQpLmRhdGEoInVzZXIiKTtpZignIic9PWVbMF0mJihlPUpTT04ucGFyc2UoZSkpLCFlLnN0YXJ0c1dpdGgoIm9yZy5jb3VjaGRiLnVzZXI6IikpcmV0dXJuIGN3LmxpYi5ub3RlKGMuRVJSX05PVEFVU0VSLCJlcnJvciIpLCExO2QuYWRkQ2xhc3MoImhvdmVyIiksYS5SZXEoWyJfdXNlcnMiLGVdKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBkLm1vZGFsKHtyb290OngsbWFuaWZlc3Q6YS5QaG8oIlVzZXJEb2MiKSxkYXRhOmIsd2lkdGg6MzgwLGJvdW5kOjAsbm9zZToibGVmdCIsY3NzOiJ4Z3JheSIsYWxpZ246ImxlZnQ6MTAwJTt0b3A6LTU3cHg7IixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGVzYzohMH0pfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5yZW1vdmVDbGFzcygiaG92ZXIiKX0pfS5kZWJvdW5jZSg1KSkseC5vbigiY2xpY2subXkiLCdpbnB1dFtuYW1lPSJkb2NzLXNlbGVjdGlvbiJdJyxmdW5jdGlvbigpe3ZhciB4PSQodGhpcykudmFsKCk7JCh0aGlzKS5pcygiOmNoZWNrZWQiKT9iLnNlbGVjdGlvbj1iLnNlbGVjdGlvbi5hZGQoeCkudW5pcXVlKCk6Yi5zZWxlY3Rpb24ucmVtb3ZlKHgpLGEubXkuY2hlY2soIiN2aWV3LWFjdGlvbnMiKX0pLCJfdXNlcnMiPT1iLnBhdGhbMF0mJmEuUGhvKCJDZmciKS5saXN0Q29scy5pbmRleE9mKCJzZWN1cml0eSIpPi0xJiZ4LnRoZW4oZnVuY3Rpb24oKXthLkdldFNlYygpfSkseC50aGVuKGZ1bmN0aW9uKCl7YS5uaWNlU2Nyb2xsKHguZmluZCgiI3ZpZXctbmFtZSIpLmRhdGEoKS5zZWxlY3QyLmRyb3Bkb3duLmZpbmQoIi5zZWxlY3QyLXJlc3VsdHMiKSx7Ym91bmNlc2Nyb2xsOiEwLGN1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4xLGN1cnNvcm9wYWNpdHltYXg6LjQscmFpbHBhZGRpbmc6e3JpZ2h0OjF9fSl9KSxhLkJ1c3koITApLGEuUGhvKCJQb2tlQnVja2V0IikoYi5wYXRoWzBdKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuR2V0Vmlld3MoITEsITApLnRoZW4oZnVuY3Rpb24oKXt2YXIgeD1iLnBhdGhbMl0sYz1iLnBhdGhbM107aWYoIl9maW5kIj09Yi5wYXRoWzFdKXt2YXIgZD14KyIiO2IubWFuZ28ucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT1kfSl8fChkPSJEZWZhdWx0IHF1ZXJ5IiksYi52aWV3PSJfZmluZO+/vSIrZCxiLmVkaXRvcj0hMH1lbHNlIGlmKCJfaW5kZXgiPT1iLnBhdGhbMV0pIkRlZmF1bHQgaW5kZXgiIT1iLnBhdGhbMl18fGIucGF0aFszXT9iLnZpZXc9Il9pZHgvezF977+9ezJ9Ii5hc3NpZ24oYi5wYXRoWzJdLGIucGF0aFszXSk6Yi52aWV3PSJfaWR4L++/vURlZmF1bHQgaW5kZXgiLGIuZWRpdG9yPSEwO2Vsc2UgaWYoL14oX2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfF9jaGFuZ2VzKSQvLnRlc3QoYi5wYXRoWzFdKSliLnZpZXc9Yi5wYXRoWzFdO2Vsc2UgaWYoeCYmYyl7dmFyIGU9Il9kZXNpZ24vIit4KyLvv70iK2M7Yi52aWV3PWEuVmlbZV0/ZToiIn19KX0pLnRoZW4oZnVuY3Rpb24oKXthLnJlc3RvcmVWaWV3U3RhdGUoKSx4Lmh0bWwoYS5IVE1MLmFzc2lnbihjKS5hc3NpZ24oe191cHdpZHRoOmIudmlldz8idzQyIjoidzAifSkpfSkuZmFpbChmdW5jdGlvbigpe2EuQnVzeSghMSl9KX0sRjp7RGVmYXVsdFZpZXdzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXgubGFuZyxiPXguUGhvKFsiQ291Y2giLCJ2ZXIiXSksYz1be2lkOiIiLHRleHQ6YS5PUFRfQUxMRE9DUyxvcmRlcjoiX18xIn0se2lkOiJfZGVzaWduX2RvY3MiLHRleHQ6YS5PUFRfRERPQ1Msb3JkZXI6Il9fMiJ9LHtpZDoiX2NoYW5nZXMiLHRleHQ6YS5PUFRfQ0hBTkdFUyxvcmRlcjoiX18zIn1dO2lmKGI+PSIwMDIuMDAwIiYmKGI+PSIwMDIuMDAxLjAwMiImJmMucHVzaCh7aWQ6Il9sb2NhbF9kb2NzIix0ZXh0OmEuT1BUX0xPQ0FMLG9yZGVyOiJfXzQifSksIl9ub2RlL19sb2NhbC9fbm9kZXMiIT14LmRhdGEucGF0aFswXSkpe3ZhciBkPXt0ZXh0OmEuT1BUX01RUklFUyxjaGlsZHJlbjpbXSxvcmRlcjoifjIifTt4LmRhdGEubWFuZ28ucXVlcnkuZm9yRWFjaChmdW5jdGlvbih4KXtkLmNoaWxkcmVuLnB1c2goe2lkOiJfZmluZO+/vSIreC5uYW1lLHRleHQ6IsKgwqAiK3gubmFtZSxvcmRlcjooIkRlZmF1bHQgcXVlcnkiPT14Lm5hbWU/Il8xICI6Il8yICIpK3gubmFtZX0pfSksZC5jaGlsZHJlbj1kLmNoaWxkcmVuLnNvcnRCeSgib3JkZXIiKSxjLnB1c2goZCk7dmFyIGU9e3RleHQ6YS5PUFRfTUlORElDRVMsY2hpbGRyZW46W3tpZDoiX2lkeC/vv70iK3guRGVmYXVsdE1hbmdvSWR4Lm5hbWUsdGV4dDoiwqDCoCIreC5EZWZhdWx0TWFuZ29JZHgubmFtZSxvcmRlcjoiXzAifV0sb3JkZXI6In4zIn07Yy5wdXNoKGUpfXJldHVybiBjfSxUTWFwOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguUGhvKCJqMmgiKSxjPXguVC5kZXNpZ25fZG9jcyxkPXguVC52aWV3LGU9eC5ULnZpZXdfbm9pZCxmPXguVC52aWV3X2ZpbHRlcixnPXguVC52aWV3X2ZpbHRlcl9ub2lkO3JldHVybiBmdW5jdGlvbihsLG0pe3ZhciBuLG89eC5Sb3dzLmxlbmd0aCxwPSJfaWR4Ij09YS52aWV3LnRvKDQpLHE9IiI9PXguZGF0YS5yZWR1Y2Uscj0iX2Rlc2lnbl9kb2NzIj09YS52aWV3LHM9Il9jaGFuZ2VzIj09YS52aWV3LHQ9bzwxMjA/aDpvPDI1MD9pOmosdT1vPDQwPzJlMzpvPDYwPzUwMDpvPDEyMD8zMDA6MjAwLHY9bzw0MD81Om88NjA/NDpvPDEyMD8zOm88MjUwPzM6Mix3PSFhLnZpZXcmJmEuaW5jbC5sZW5ndGg/bC5kb2M6cD9sLmtleTpsLnZhbHVlLHk9Yih3LHUsWyJfaWQiLCJpZCIsIm5hbWUiXSx2KTtyZXR1cm4gMT09eS5sZW5ndGgmJiJzaG9ydCI9PXlbMF1bMF0mJigieyI9PXlbMF1bMV1bMF0/eVswXVsxXT0iT2JqZWN0ICIreVswXVsxXToiWyI9PXlbMF1bMV1bMF0mJih5WzBdWzFdPSJBcnJheSAiK3lbMF1bMV0pKSxuPXkubWFwKHQpLmpvaW4oIiIpLHguZlNlYXJjaCYmYS5zZWFyY2gubGVuZ3RoPjI/KHE/ZjpnKS5hc3NpZ24oe19pZHg6bC5faWR4LF9pZHhzYWZlOmwuX2lkeHNhZmUsY2hlY2tlZDpsLl9jaGVja2VkLGlkOmwua2V5LGlkc2FmZWZpbHRlcjoocD9sLmlkOmsobC5rZXkpKS5yZXBsYWNlKHguZlNlYXJjaCwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9InZpZXctZm91bmQiPicpLnJlcGxhY2UoIu+/sCIsIjwvc3Bhbj4iKSxpZHNhZmU6KHA/bC5pZDprKGwua2V5KSkuZXNjYXBlSFRNTCgpLGRvY2lkc2FmZTpudWxsIT1sLmlkPyhsLmlkKyIiKS5lc2NhcGVIVE1MKCk6IiIsaHJlZjpsLmlkP3gucDJ1KFthLnBhdGhbMF0sbC5pZF0pLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCk6IiIsbm9kb2M6bC5pZD8iIjoiaGlkZSIsa2V5Omwua2V5LGh0bWw6bixjc3M6bi5sZW5ndGg+MjUwPyJmczk1IGxoMTQwIHB0MyBwYjMiOiJsaDE0MCBwdDIgcGIyIn0pOihyfHxzP2M6cT9kOmUpLmFzc2lnbih7X2lkeDpsLl9pZHgsX2lkeHNhZmU6bC5faWR4c2FmZSxfZGVsOmwuX2RlbCxjaGVja2VkOmwuX2NoZWNrZWQsaWQ6bC5rZXksaWRzYWZlOihyfHxzP2wua2V5OnA/bC5pZDprKGwua2V5KSkuZXNjYXBlSFRNTCgpLGRvY2lkc2FmZTpudWxsIT1sLmlkPyhsLmlkKyIiKS5lc2NhcGVIVE1MKCk6IiIsaHJlZjpsLmlkP3gucDJ1KGwuX2RlbD9bYS5wYXRoWzBdLGwuaWQsIl8iK2wuX2RlbF06W2EucGF0aFswXSxsLmlkXSkuam9pbigiLyIpLmVzY2FwZUhUTUwoKToiIixub2RvYzpsLmlkPyIiOiJoaWRlIixrZXk6bC5rZXksaHRtbDpuLGNzczpuLmxlbmd0aD4yNTA/ImZzOTUgbGgxNDAgcHQzIHBiMyI6ImxoMTQwIHB0MiBwYjIifSl9O2Z1bmN0aW9uIGgoeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19ZnVuY3Rpb24gaSh4KXtyZXR1cm4iYnJhY2tldCIhPXhbMF0mJiJrZXkiIT14WzBdP3hbMV06JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4ifWZ1bmN0aW9uIGooeCl7cmV0dXJuIHhbMV19ZnVuY3Rpb24gayh4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCxudWxsLDEpLnJlcGxhY2UoL15ccysvZ20sIiAiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC97XHMvZywieyIpLnJlcGxhY2UoL1xzfS9nLCJ9IikucmVwbGFjZSgvXFtccy9nLCJbIikucmVwbGFjZSgvXHNcXS9nLCJdIil9fSxURG9jczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlQuZG9jcyxjPXguVC51c2VyX2RvY3M7cmV0dXJuIl91c2VycyIhPWEucGF0aFswXT9mdW5jdGlvbih4LGEpe3JldHVybiBiLmFzc2lnbihkKHgsYSkpfTpmdW5jdGlvbih4LGEpe3ZhciBlPWQoeCxhKTtyZXR1cm4ib3JnLmNvdWNoZGIudXNlcjoiIT14LmtleS5zdWJzdHIoMCwxNyk/Yi5hc3NpZ24oZSk6Yy5hc3NpZ24oZSl9O2Z1bmN0aW9uIGQoYixjKXtyZXR1cm57aWQ6Yi5rZXksaWRzYWZlOihiLmtleSsiIikuZXNjYXBlSFRNTCgpLGNoZWNrZWQ6Yi5fY2hlY2tlZCxocmVmOmIuaWQ/eC5wMnUoYi5fZGVsP1thLnBhdGhbMF0sYi5pZCwiXyIrYi5fZGVsXTpbYS5wYXRoWzBdLGIuaWRdKS5qb2luKCIvIikuZXNjYXBlSFRNTCgpOiIiLHJldjooKGIudmFsdWV8fHt9KS5yZXYrIiIpLmVzY2FwZUhUTUwoKX19fSxUTWFuZ286ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9KHguZGF0YSx4LlBobygiajJoIikpLGI9eC5ULm1hbmdvO3guVC52aWV3X2ZpbHRlcjtyZXR1cm4gZnVuY3Rpb24oZixnKXt2YXIgaCxpPXguUm93cy5sZW5ndGgsaj1pPDEyMD9jOmk8MjUwP2Q6ZSxrPWk8NDA/MmUzOmk8NjA/NTAwOmk8MTIwPzMwMDoyMDAsbD1pPDQwPzU6aTw2MD80Omk8MTIwPzM6aTwyNTA/MzoyLG09Zi52YWx1ZSxuPWEobSxrLFsiX2lkIiwiaWQiLCJuYW1lIl0sbCk7cmV0dXJuIDE9PW4ubGVuZ3RoJiYic2hvcnQiPT1uWzBdWzBdJiYoInsiPT1uWzBdWzFdWzBdP25bMF1bMV09Ik9iamVjdCAiK25bMF1bMV06IlsiPT1uWzBdWzFdWzBdJiYoblswXVsxXT0iQXJyYXkgIituWzBdWzFdKSksaD1uLm1hcChqKS5qb2luKCIiKSxiLmFzc2lnbih7X2lkeDpmLl9pZHgsX2lkeHNhZmU6Zi5faWR4c2FmZSxpZDpmLmtleSsiIixpZHNhZmU6Zi5rZXkrIiIsaHJlZjoiIixub2RvYzoiIixrZXk6ZysiIixodG1sOmgsY3NzOmgubGVuZ3RoPjI1MD8iZnM5NSBsaDE0MCBwdDMgcGIzIjoibGgxNDAgcHQyIHBiMiJ9KX07ZnVuY3Rpb24gYyh4KXtyZXR1cm4geFswXT8nPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiI6eFsxXX1mdW5jdGlvbiBkKHgpe3JldHVybiJicmFja2V0IiE9eFswXSYmImtleSIhPXhbMF0/eFsxXTonPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiJ9ZnVuY3Rpb24gZSh4KXtyZXR1cm4geFsxXX19LGdldFJlZlN0YXI6ZnVuY3Rpb24geChhLGIpe3ZhciBjLGQsZT0ic3RyaW5nIj09dHlwZW9mIGI/Yi5zcGxpdCgiLiIpOk9iamVjdC5pc0FycmF5KGIpP2I6W10sZj1hLGc9MDtmb3IoZz0wO2c8ZS5sZW5ndGgmJm51bGw9PWQmJm51bGwhPWY7ZysrKSIqIj09KGM9ZVtnXSkmJk9iamVjdC5pc0FycmF5KGYpPyhkPWUuc2xpY2UoZysxKSxmPWYucmVkdWNlKGZ1bmN0aW9uKGEsYil7aWYobnVsbD09YilyZXR1cm4gYTt2YXIgYz14KGIsZCk7cmV0dXJuIG51bGwhPWMmJmEucHVzaChjKSxhfSxbXSkpOmY9ZltjXTtyZXR1cm4gZn0sZm9ybWF0U2VsMjpmdW5jdGlvbih4KXtpZih4LmlkKXt2YXIgYT14LmlkLnNwbGl0KCLvv70iKTtyZXR1cm4gYVsxXT8oYVswXS5zcGxpdCgiLyIpLmxhc3QoKS50cnVuY2F0ZSgoMzAtYVsxXS5sZW5ndGgpLmNsYW1wKDEwLDMwKSwibWlkZGxlIiwiLi4uIikrIuKAiS/igIkiK2FbMV0pLmVzY2FwZUhUTUwoKTp4LnRleHR9cmV0dXJuIHgudGV4dH0sYnVpbGRHcmlkQ29sdW1uczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGE7YS5ncmlkP3guQ29sdW1ucz1hLmNvbHVtbnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDoieCIrTnVtYmVyLnJhbmRvbSgwLDFlNiksY29sczp4fX0pOnguQ29sdW1ucz1bXX0sZGVyaXZlR3JpZENvbHVtbnM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSh4PSgreHx8NSkuY2xhbXAoMSw4KSxjdy5saWIuYTJvKCJpZCBrZXkgcmV2IC5pZCAua2V5IC5yZXYgLmRvYyAuX2lkIC5fcmV2IC52YWx1ZSAuZG9jLl9pZCAuZG9jLl9yZXYg4oCMIi5zcGxpdCgiICIpKSksYz1hLkZpZWxkcy5zb3J0QnkoZnVuY3Rpb24oeCl7dmFyIGE9eC52YWx1ZSxiPXguY3RyO3JldHVybiJ0aXRsZSIhPWEmJiJuYW1lIiE9YXx8KGIqPTEuNSksInR5cGUiPT1hJiYoYio9MS4yKSxifSwhMCkuZmlsdGVyKHg9PiFiW3gudmFsdWVdKS50byh4KS5tYXAoeD0+eC52YWx1ZSk7cmV0dXJuIGMubGVuZ3RofHwoYz1bIi52YWx1ZSJdKSxjfSxzdGFzaFZpZXdTdGF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1jdy5saWIuc2RibShbYS5wYXRoWzBdLGEudmlld10pLGM9e3JlZHVjZTphLnJlZHVjZSxncmlkOmEuZ3JpZCxjb2x1bW5zOmEuY29sdW1ucy5zbGljZSgwKSxlZGl0b3I6YS5lZGl0b3IsaW5jbDphLmluY2x9O3JldHVybiB4LkxzKCJWaWV3U3RhdGUuIitiLGMpLHtrZXk6YixzdGF0ZTpjfX0scmVzdG9yZVZpZXdTdGF0ZTpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD14fHxjLnZpZXcsZT1jdy5saWIuc2RibShbYy5wYXRoWzBdLGRdKSxmPWIuTHMoIlZpZXdTdGF0ZS4iK2UpfHx7fTtpZighZi5jb2x1bW5zfHwhZi5jb2x1bW5zLmxlbmd0aHx8Zi5jb2x1bW5zKyIiPT0iLnZhbHVlIil7dmFyIGc9Il9maW5kIj09ZC50byg1KSxoPSJfaWR4Ij09ZC50byg0KSxpPSJfZGVzaWduX2RvY3MiPT1kLGo9Il9jaGFuZ2VzIj09ZDtmLmNvbHVtbnM9ZD9pP1sidmlld3MgL2tleXMiLCJmaWx0ZXJzIC9rZXlzIiwibGlzdHMgL2tleXMiLCJzaXplcy5maWxlIC9ieXRlcyJdOmo/WyJyZXYiLCJkZWxldGVkIl06aD9bIi5rZXkiXTooZyxbIi52YWx1ZSJdKTpmLmluY2wrIiI/WyIuZG9jIl06WyJyZXYiXX1yZXR1cm4geHx8JC5leHRlbmQoYyxPYmplY3Quc2VsZWN0KGYsWyJyZWR1Y2UiLCJncmlkIiwiY29sdW1ucyIsImVkaXRvciIsImluY2wiXSkpLGEmJmIubXkucmVkcmF3KCksZn0sY2xvc2VBdXRvY29tcGxldGVzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5teSYmYS5teS5maW5kKCIudWktYXV0b2NvbXBsZXRlLWlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcyk7YS5pcyh4KXx8KGEuYXV0b2NvbXBsZXRlKCJjbG9zZSIpLGEubmV4dCgpLnRyaWdnZXIoImNoZWNrLm15IikpfSl9LGJ1aWxkRmllbGRzTGlzdDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlJlc3VsdFswXXx8e3Jvd3M6W119LGM9KE9iamVjdC5pc0FycmF5LE9iamVjdC5pc09iamVjdCksZD17fTtpZih4LkZpZWxkcy5sZW5ndGgpcmV0dXJuIHguRmllbGRzO2IuZG9jcz9iLmRvY3MubWFwKHg9Pih7dmFsdWU6eH0pKS5mb3JFYWNoKGYuZmlsbCgwLCIiKSk6Yi5yZXN1bHRzP2IucmVzdWx0cy5tYXAoeD0+KHt2YWx1ZTp4fSkpLmZvckVhY2goZi5maWxsKDAsIiIpKTooYi5yb3dzfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBPYmplY3Quc2VsZWN0KHgsYS52aWV3JiYiX2Rlc2lnbl9kb2NzIiE9YS52aWV3P1siaWQiLCJrZXkiLCJ2YWx1ZSJdOlsiaWQiLCJ2YWx1ZSIsImRvYyJdKX0pLmZvckVhY2goZi5maWxsKDAsIiIpKTt2YXIgZT1PYmplY3Qua2V5cyhkKTtyZXR1cm4gZS5sZW5ndGg+MTAwJiYoZT1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgiLiIpLmxlbmd0aDwoIi4iPT14WzBdPzU6NCl9KSksZS5sZW5ndGg+MTAwJiYoZT1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgiLiIpLmxlbmd0aDwoIi4iPT14WzBdPzQ6Myl9KSkseC5GaWVsZHM9W3tsYWJlbDoiw5cgRGVsZXRlIGNvbHVtbiIsdmFsdWU6IuKAjCIsY3RyOjB9XS5jb25jYXQoZS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIi4iIT1hWzBdJiYiLiIhPXhbMF18fGFbMF09PXhbMF0/YT54Py0xOmE8eD8xOjA6Ii4iPT1hWzBdPy0xOjF9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2xhYmVsOngudHJ1bmNhdGUoNTAsIm1pZGRsZSIsIsKg4oCmwqAiKSx2YWx1ZTp4LGN0cjpkW3hdfX0pKTtmdW5jdGlvbiBmKHgsYSxiKXt4PjN8fGMoYikmJk9iamVjdC5rZXlzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoYy5sZW5ndGgmJiJfYXR0YWNobWVudHMiIT1jKXt2YXIgZT1iW2NdLGc9JC50eXBlKGUpLGg9KCIudmFsdWUiPT1hPyIiOmErIi4iKStjO2RbaF09KGRbaF18fDApKyh4PjE/LjE6MSksIm9iamVjdCI9PWc/Zih4KzEsaCxlKToiYXJyYXkiPT1nJiZlLmxlbmd0aCYmZih4KzEsYSsiLiIrYysiLjAiLGVbMF0pfX0pfX0sVEdyaWRNYXA6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5QaG8oImoyaCIpLGM9eC5ULmdyaWRfdmlldyxkPXguVC5ncmlkX2RvYyxlPXguVC5ncmlkX21hbmdvLGY9eC5ULmdyaWRfY29sdW1uO3JldHVybiBmdW5jdGlvbihrLGwpe3ZhciBtPXguUm93cy5sZW5ndGgsbj0iX2lkeCI9PWEudmlldy50byg0KSxvPSJfZmluZCI9PWEudmlldy50byg1KSxwPSFvJiYiIj09eC5kYXRhLnJlZHVjZSxxPSJfZGVzaWduX2RvY3MiPT1hLnZpZXcscj0iX2NoYW5nZXMiPT1hLnZpZXcscz1oLHQ9bTw0MD8yZTM6bTw2MD8xNTAwOm08MTIwPzFlMzo3MDAsdT1tPDEyMD82OjUsdj14LkYuR3JpZENhc3Qsdz0hYS52aWV3fHxxfHxyfHxvP2sua2V5Om4/ay5pZDppKGsua2V5KTtyZXR1cm4oIWEudmlld3x8cXx8cj9kOnA/YzplKS5hc3NpZ24oe19pZHg6ay5faWR4LF9pZHhzYWZlOmsuX2lkeHNhZmUsY2hlY2tlZDprLl9jaGVja2VkLGlkOmsua2V5LGlkc2FmZTp3LmVzY2FwZUhUTUwoKSxpZHNhZmVmaWx0ZXI6eC5mU2VhcmNoP3cucmVwbGFjZSh4LmZTZWFyY2gsIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJ2aWV3LWZvdW5kIj4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iik6dy5lc2NhcGVIVE1MKCksZG9jaWRzYWZlOm51bGwhPWsuaWQ/KGsuaWQrIiIpLmVzY2FwZUhUTUwoKToiIixocmVmOmsuaWQ/eC5wMnUoay5fZGVsP1thLnBhdGhbMF0say5pZCwiXyIray5fZGVsXTpbYS5wYXRoWzBdLGsuaWRdKS5qb2luKCIvIikuZXNjYXBlSFRNTCgpOiIiLG5vZG9jOmsuaWQ/IiI6ImhpZGUiLGtleTprLmtleSxjb2x1bW5zOmsuY29scy5tYXAoZnVuY3Rpb24oeCxhKXt2YXIgYz0iIixkPXgudmFsLGU9dHlwZW9mIHgudmFsO3JldHVybiB2W3guY2FzdF0mJihlPXR5cGVvZihkPXZbeC5jYXN0XShkLGUpKSksYz0ib2JqZWN0Ij09ZT9qKGkoZCkpOiJudW1iZXIiPT1lP2coZCk6InN0cmluZyI9PWU/ZD9qKGQpLnJlcGxhY2UoL15bXHJcbl0rLywiIikucmVwbGFjZSgvW1xyXG5dKy9nLCI8YnI+Iik6JyIiJzpiKGQsdCxbXSx1KS5tYXAocykuam9pbigiIiksZi5hc3NpZ24oe2lkeDpsKyJfIithLHZhbDpjLGNzczpbYy5sZW5ndGg+MTAwPyJmczk1IGxoMTQwIHB0MSAiOiIiLCJvYmplY3QiPT1lPyJhc2pzb24gIjoiIiwiZ2NvbHYgZ2NvbHciK3guc3BhbisiICIseC5jc3N8fCIiXS5qb2luKCIiKX0pfSkuam9pbigiIil9KX07ZnVuY3Rpb24gZyh4KXtyZXR1cm4nPHNwYW4gY2xhc3M9Imp2YWwtbnVtYmVyJysoL1xkezEwfS8udGVzdCh4KT8iIGZzOTUiOiIiKSsnIj4nK3grIjwvc3Bhbj4ifWZ1bmN0aW9uIGgoeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19ZnVuY3Rpb24gaSh4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCxudWxsLDEpLnJlcGxhY2UoL15ccysvZ20sIiAiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC97XHMvZywieyIpLnJlcGxhY2UoL1xzfS9nLCJ9IikucmVwbGFjZSgvXFtccy9nLCJbIikucmVwbGFjZSgvXHNcXS9nLCJdIil9ZnVuY3Rpb24gaihhKXt2YXIgYj0yNTYrNzY4LygoeC5Db2x1bW5zfHxbXSkubGVuZ3RofHwxKXwwO3JldHVybiBhLmxlbmd0aD4xLjEqYj9hLnRvKGIpLmVzY2FwZUhUTUwoKSsnPHNwYW4gY2xhc3M9InJlZDEgcGwzIGJvbGQiPuKApjwvc3Bhbj4nOmEuZXNjYXBlSFRNTCgpfX0sR3JpZENhc3Q6e2R0OmZ1bmN0aW9uKHgsYSl7aWYoIXh8fCEvXihudW1iZXJ8c3RyaW5nKSQvLnRlc3QoYSkpcmV0dXJuIHg7dmFyIGI9RGF0ZS5jcmVhdGUoK3h8fHgpO3JldHVybiBiLmlzVmFsaWQoKT9iLmZvcm1hdCgie2R9IHtNb259IHt5eXl5fSwge0h9OnttbX06e3NzfSIpOnh9LGJ5dGVzOmZ1bmN0aW9uKHgpe3JldHVybiJudW1iZXIiIT10eXBlb2YgeD94OnguYnl0ZXMoMikucmVwbGFjZSgvKFxEXEQ/KSQvLCLigIrigIokMSIpfSxoZXg6ZnVuY3Rpb24oeCxhKXtpZigibnVtYmVyIj09YSYmTWF0aC5mbG9vcih4KT09PXgpe3ZhciBiPXgudG9TdHJpbmcoMTYpLGM9Ii0iPT1iWzBdPyItIjoiIixkPWIuc3Vic3RyKGM/MTowKS50b1VwcGVyQ2FzZSgpLGU9ZC5sZW5ndGg7cmV0dXJuIGMrKGQ9ZC5wYWRMZWZ0KGU8PTQ/NDplPDg/ODowLCIwIikpfXJldHVybiJzdHJpbmciPT1hP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh4KSkuY29kZXMoKS5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4oeDwxNj8iMCI6IiIpK3gudG9TdHJpbmcoMTYpKyhhJTQ9PTM/IiAiOiLCoCIpfSkuam9pbigiIik6eH0sbGlzdDpmdW5jdGlvbih4LGEpe3JldHVybiJvYmplY3QiIT1hP3g6T2JqZWN0LnZhbHVlcyh4KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiB4Pyh4KyIiKS5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKTpKU09OLnN0cmluZ2lmeSh4KX0pLmpvaW4oIlxuIil9LGtleXM6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ib2JqZWN0IiE9YT94Ok9iamVjdC5rZXlzKHgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKX0pLmpvaW4oIlxuIil9LGt2OmZ1bmN0aW9uKHgsYSl7cmV0dXJuIm9iamVjdCIhPWE/eDpPYmplY3Qua2V5cyh4KS5tYXAoZnVuY3Rpb24oYSl7dmFyIGI9eFthXTtyZXR1cm4gYS5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKSsiOsKgIisoIm9iamVjdCIhPXR5cGVvZiBiPyhiKyIiKS5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKTpKU09OLnN0cmluZ2lmeShiKSl9KS5qb2luKCJcbiIpfX0sR2V0U2VjOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJBbGwiKSxiPU9iamVjdC5rZXlzKGEpLGM9W10sZD1EYXRlLm5vdygpO3JldHVybiBiLmZvckVhY2goZnVuY3Rpb24oeCl7KCFhW3hdLnNlY3VyaXR5fHxhW3hdLnNlY3VyaXR5LnN0YW1wKzM2ZTU8ZCkmJmMucHVzaCh4KX0pLGM9Yy50bygxMDApLHguUGhvKCIkZGJzIikuQmF0Y2hJbmZvLmNhbGwoe1Bobzp4LlBobyxSZXE6eC5SZXEsQmF0Y2g6e30sQWxsOmEsUmVsaXN0OmZ1bmN0aW9uKCl7fSxSZWxpc3ROb3c6ZnVuY3Rpb24oKXt9fSxjLHguUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5LFsic2VjdXJpdHkiXSl9LERlbERvY3M6ZnVuY3Rpb24oKXt2YXIgeD0kLkRlZmVycmVkKCksYT10aGlzLGI9YS5kYXRhLGM9Yi5zZWxlY3Rpb24uc2xpY2UoMCkudW5pcXVlKCksZD1jLmxlbmd0aCxlPShhLmZSb3dzfHxhLlJvd3MpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5pZH0pLnVuaXF1ZSgpLmludGVyc2VjdChjKS5sZW5ndGgsZj1hLmxhbmcsZz1hLlBobygiQ291Y2giKS52ZXIsaD1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfSxpPWZ1bmN0aW9uKHgsYSl7cmV0dXJuIGgoKHgrIiIpLnRydW5jYXRlKGF8fDE1LCJyaWdodCIsIuKApiIpKX0saj0nPGRpdiBjbGFzcz0ibWIxMCI+ezF9PC9kaXY+JyxrPSc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9InsxfSIgY2xhc3M9Im1yNiI+IHsyfTwvbGFiZWw+JztyZXR1cm4gJC5teS5tb2RhbCh7d2lkdGg6MzgwLG1hbmlmZXN0OiQuZXh0ZW5kKCEwLHt9LGEuUGhvKCJDb25maXJtIikse3VpOnsnaW5wdXRbbmFtZT0icmV0YWluIl0nOiJyZXRhaW4ifSxzdHlsZTp7IiBsYWJlbCI6Im1hcmdpbjowO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDsifX0pLGRhdGE6e3JldGFpbjoibm8iLHRleHQ6Wyc8ZGl2IGNsYXNzPSJmczEzMCByZWQgbWI1Ij4nK2YuVFhUX0RFTF9USVRMRSsiPC9kaXY+IixqLmFzc2lnbihmLlRYVF9ERUxfV0FSTihkLGkoYi5wYXRoWzBdLDI1KSkpLGUhPWQ/ai5hc3NpZ24oZi5UWFRfREVMX1dBUk5fSElEREVOKGQsZSkpOiIiLGouYXNzaWduKGsuYXNzaWduKCJubyIsZi5MQkxfREVMX0FMTCkray5hc3NpZ24oInJldGFpbiIsZi5MQkxfREVMX1JFVEFJTikrKGc+PSIwMDIuMDAzLiI/ay5hc3NpZ24oInB1cmdlIixmLkxCTF9ERUxfUFVSR0UpOiIiKSldLmpvaW4oIiIpLHllc2NzczoicmVkIix5ZXM6Zi5CVE5fREVMX1NUQVJULG5vOmYuQlROX0NBTkNFTCxjYW5jZWw6IiJ9LGNzczoibGgxNjAgeGdyYXkgcDIwIHBiMjUiLGZvY3VzOiIjYnRuLW5vIixlc2M6ITAsZW50ZXI6ITF9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKCJ5ZXMiIT1hLmNtZClyZXR1cm4geC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKTtsKGEucmV0YWluKyIiKX0pLmZhaWwoZnVuY3Rpb24oKXt4LnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpfSkseC5wcm9taXNlKCk7ZnVuY3Rpb24gbChkKXt2YXIgZT1jLnVuaXF1ZSgpLnNvcnQoKSxnPXt1cmw6W2IucGF0aFswXSwiX2J1bGtfZG9jcyJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6IltdIn07aWYoIm5vIj09ZHx8InJldGFpbiI9PWQpZy5oZWFkZXJzPXsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifTtlbHNle2lmKCJwdXJnZSIhPWQpcmV0dXJuIHgucmVqZWN0KDk5OSwiVW5rbm93biBtb2RlIiwiQ2FuY2VsbGVkIiksdm9pZCAwO2cudXJsWzFdPSJfcHVyZ2UifXJldHVybiBqKGUsInJldGFpbiIhPWQpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIGcuZGF0YT1KU09OLnN0cmluZ2lmeSgicHVyZ2UiIT1kP3tkb2NzOnh9OngucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYS5faWRdPVthLl9yZXZdLHh9LHt9KSksYS5SZXEoZykudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gayh4LGUpfSkuZmFpbChsKX0pO2Z1bmN0aW9uIGooeCxjKXt2YXIgZD17dXJsOltiLnBhdGhbMF0sIl9hbGxfZG9jcyIse2luY2x1ZGVfZG9jczohY31dLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoe2tleXM6eH0pfTtyZXR1cm4gYS5SZXEoZCkudGhlbihmdW5jdGlvbih4KXtyZXR1cm4geC5yb3dzLm1hcChmdW5jdGlvbih4KXt2YXIgYT1jP3tfaWQ6eC5pZCxfcmV2OngudmFsdWUucmV2fTp4LmRvYztyZXR1cm4gYS5fZGVsZXRlZD0hMCxhfSl9KX1mdW5jdGlvbiBrKGMsZSl7dmFyIGcsaD1lLmxlbmd0aDtnPSJwdXJnZSIhPWQ/Yy5jb3VudChmdW5jdGlvbih4KXtyZXR1cm4heC5lcnJvcn0pOk9iamVjdC5zaXplKGMucHVyZ2VkKSxjdy5saWIubm90ZShmLk1TR19ERUxfT0soaCxnLGkoYi5wYXRoWzBdKSxkKSxoPT1nPyJvayI6ImVycm9yIiw1ZTMpLGg+ZyYmY29uc29sZS5sb2coYyksJC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpiLnBhdGhbMF0sY21kOiJkZWxldGUiLGRvY3M6ZX0pLCQubXkucmFkaW8oImRibGlzdCIsW2IucGF0aFswXV0pLGIuc2VsZWN0aW9uLmxlbmd0aD0wLGUuZm9yRWFjaChmdW5jdGlvbih4KXsiXyI9PXhbMF0mJmEuRGRvY3NbeF0mJmRlbGV0ZSBhLkRkb2NzW3hdfSkseC5yZXNvbHZlKGMpfWZ1bmN0aW9uIGwoYSxiLGMpe3JldHVybiBjdy5saWIubm90ZShmLk1TR19ERUxfRkFJTC5hc3NpZ24oYSxoKGIpKSwiZXJyb3IiKSx4LnJlamVjdChhLGIsYyl9fX0sRWRTd2l0Y2g6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhO2lmKC9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdChhLnZpZXcpKXJldHVybiB4LkVkaXRvci5sZW5ndGg9MCx2b2lkIDA7aWYoIl9kIj09YS52aWV3LnRvKDIpKXt2YXIgYj14LlZpW2Eudmlld107aWYoIShmPXguVmlFZHMpW2Eudmlld118fGZbYS52aWV3XS5yZXYhPWIucmV2KXt2YXIgYz1hLnZpZXcuc3BsaXQoIu+/vSIpO2ZbYS52aWV3XT17ZGRvYzpjWzBdLG5hbWU6Y1sxXSxyZXY6Yi5yZXYsdHlwZToidmlldyIsbW9kZTpbIm1hcCJdLGxhbmd1YWdlOiJqcyI9PWIudHlwZT8iamF2YXNjcmlwdCI6Yi50eXBlLG1hcDpiLnZpZXcubWFwfHwiIixyZWR1Y2U6Yi52aWV3LnJlZHVjZXx8IiIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6RGF0ZS5ub3coKX19eC5FZGl0b3JbMF0hPWZbYS52aWV3XSYmKHguRWRpdG9yWzBdPWZbYS52aWV3XSl9ZWxzZSBpZigiX2ZpbmQiPT1hLnZpZXcudG8oNSkpe3ZhciBkPWEubWFuZ28sZT1hLnZpZXcuc3BsaXQoIu+/vSIpWzFdKyIiOyhiPWQucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT1lfSkpfHwoZT0iRGVmYXVsdCBxdWVyeSIsYj1kLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09ZX0pKSxkLmFjdGl2ZT1lLGIuc3RhbXB8fChiLnN0YW1wPURhdGUubm93KCksYi50ZXh0PXguRGVmYXVsdE1hbmdvUXJ5LnRleHQpLHguRWRpdG9yWzBdIT1iJiYoeC5FZGl0b3I9W2JdLGIuanNvbj14LmpzZXZhbChiLnRleHQpLE9iamVjdC5pc09iamVjdChiLmpzb24pfHwoYi5qc29uPXt9KSl9ZWxzZSBpZigiX2lkeCI9PWEudmlldy50byg0KSl7dmFyIGY7Yj14LlZpW2Eudmlld118fE9iamVjdC5jbG9uZSh4LkRlZmF1bHRNYW5nb0lkeCwhMCk7aWYoIShmPXguVmlFZHMpW2Eudmlld118fGZbYS52aWV3XS5yZXYhPWIucmV2KXtjPWEudmlldy5zcGxpdCgi77+9Iik7ZlthLnZpZXddPXtkZG9jOiJfZGVzaWduLyIrY1swXS5zcGxpdCgiLyIpWzFdLG5hbWU6Y1sxXSxyZXY6Yi5yZXYsdHlwZToiaW5kZXgiLG1vZGU6WyJqYXZhc2NyaXB0Il0sdGV4dDpiLnZpZXc/Yi52aWV3LnNvdXJjZTpiLnRleHQsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6RGF0ZS5ub3coKX19eC5FZGl0b3JbMF0hPWZbYS52aWV3XSYmKHguRWRpdG9yWzBdPWZbYS52aWV3XSl9cmV0dXJuIGEuZ3JpZCYmeC5teS5yZXN0eWxlKCkseC5FZGl0b3JbMF19LEdldERkb2NzSW5mbzpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0oYi5kYXRhLGF8fFtdKSxkPXgubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBPYmplY3QuaXNPYmplY3QoeCk/JC5leHRlbmQoITAse30sT2JqZWN0LnJlamVjdCh4LFsiaW5jbHVkZV9kb2NzIl0pKTp4fSksZT17fSxmPSQuRGVmZXJyZWQoKTtyZXR1cm4gYi5SZXEoe3VybDpkLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOmMubGVuZ3RoPyJwb3N0IjoiZ2V0IixkYXRhOmMubGVuZ3RoP0pTT04uc3RyaW5naWZ5KHtrZXlzOmN9KTpudWxsfSkudGhlbihmdW5jdGlvbihhKXt2YXIgYz1bXTsoYS5yb3dzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihhKXtjLnB1c2goYi5SZXEoe3VybDpbeFswXSxhLmlkLCJfaW5mbyJdLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn19KSl9KSxRLmFsbFNldHRsZWQoYykudGhlbihmdW5jdGlvbih4KXsoeHx8W10pLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoImZ1bGZpbGxlZCI9PXguc3RhdGUpe3ZhciBhPXgudmFsdWUudmlld19pbmRleCxiPU9iamVjdC5zZWxlY3QoYS5zaXplc3x8e2FjdGl2ZTphLmRhdGFfc2l6ZXx8MCxmaWxlOmEuZGlza19zaXplfHwwfSxbImFjdGl2ZSIsImZpbGUiXSk7ZVsiX2Rlc2lnbi8iK3gudmFsdWUubmFtZV09e3ZhbHVlOntzaXplczpifSx2aWV3X2luZGV4OmF9fX0pLGYucmVzb2x2ZShlKX0pfSksZi5wcm9taXNlKCl9fSxHZXRWaWV3czpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMuZGF0YSxlPU9iamVjdC5pc1N0cmluZyxmPU9iamVjdC5pc09iamVjdCxnPU9iamVjdC5pc0FycmF5LGg9KE9iamVjdC5pc0Z1bmN0aW9uLGQucGF0aFswXSksaT1baCwiX2FsbF9kb2NzIix7c3RhcnRrZXk6Il9kZXNpZ24iLGVuZGtleToiX2Rlc2lnbjAiLGluY2x1ZGVfZG9jczohMH1dLGo9Yy5EZWZhdWx0Vmlld3MoKSxrPWMubGFuZy5PUFRfTUlORElDRVMsbD1qLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgudGV4dD09a30pLG09e30sbj0kLkRlZmVycmVkKCk7cmV0dXJuIGI/KGoucmVtb3ZlKGwpLGMuVmlld3MuZm9yRWFjaChmdW5jdGlvbih4KXsheC5jaGlsZHJlbnx8Il8iIT14LnRleHRbMF0mJiJNYW5nbyIhPXgudGV4dC50byg1KXx8ai5wdXNoKHgpfSksYy5WaWV3cz1qLnNvcnRCeShmdW5jdGlvbih4KXtyZXR1cm4oeC5vcmRlcnx8IiIpK3gudGV4dH0pLHgmJihjLnNlbGVjdDIoYy5teS5maW5kKCIjdmlldy1uYW1lIikse2RhdGE6aixtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMixmb3JtYXRTZWxlY3Rpb246Yy5mb3JtYXRTZWwyfSksYy5teS5yZWNhbGMoIiN2aWV3LW5hbWUiKSksbi5yZXNvbHZlKCksaik6KGMuUmVxKGkpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9eC5yb3dzfHxbXTtpZighYS5sZW5ndGgmJiJfZmluZCIhPWQudmlldy50byg1KSlyZXR1cm4gZC52aWV3PSIiLHZvaWQgMDthLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5kb2M7aWYoYSl7dmFyIGI9YS52aWV3c3x8e30sZD1hLl9yZXYsaT1PYmplY3Qua2V5cyhiKSxrPXt0ZXh0OnguaWQsY2hpbGRyZW46W119LG49ZShhLmxhbmd1YWdlKT9hLmxhbmd1YWdlOiJqYXZhc2NyaXB0IjtjLkRkb2NzW2EuX2lkXSYmYy5EZG9jc1thLl9pZF0uX3Jldj09YS5fcmV2fHwoYy5EZG9jc1thLl9pZF09JC5leHRlbmQoITAse30sYSkpLGkubGVuZ3RoJiYoaS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBjPWJbYV07aWYoInF1ZXJ5IiE9bil7aWYoIWYoYyl8fCFlKGMubWFwKXx8IWMubWFwKXJldHVybjt2YXIgaT17aWQ6cj14LmlkKyLvv70iK2EsdGV4dDoiwqDCoCIrYX0saj17cGF0aDpbaCwiX2Rlc2lnbiIseC5pZC5zcGxpdCgiLyIpWzFdLCJfdmlldyIsYV0scmV2OmQscmVkdWNlOiExLHR5cGU6ImpzIn07ImphdmFzY3JpcHQiIT1uJiYoai50eXBlPW4saS50ZXh0Kz0iwqAoIituLnRpdGxlaXplKCkrIikiKSxqLnZpZXc9T2JqZWN0LmNsb25lKGMsITApO3ZhciBvPWMucmVkdWNlLHA9IiIscT0iIjtlKG8pJiZvJiYoIl8iPT1vWzBdJiYocD1vLmZyb20oMSkpLChxPSJzdW0iPT1wPyLOoyI6ImNvdW50Ij09cD8iIyI6Im1pbiI9PXA/IuKKuyI6Im1heCI9PXA/IuKKvCI6InN0YXRzIj09cD8iPSI6InN1bXNxciI9PXA/Is6jwrIiOiJyZWR1Y2UiKSYmKGkudGV4dCs9IuKAieKHkuKAiSIrcSxqLnJlZHVjZT0hMCkpLGsuY2hpbGRyZW4ucHVzaChpKSxtW3JdPWp9ZWxzZSBpZihsJiYicXVlcnkiPT1uKXtpZighKGYoYykmJmYoYy5tYXApJiZmKGMubWFwLmZpZWxkcykmJmYoYy5vcHRpb25zKSYmZihjLm9wdGlvbnMuZGVmKSYmZyhjLm9wdGlvbnMuZGVmLmZpZWxkcykpKXJldHVybjt2YXIgcixzPXguaWQuc3BsaXQoIi8iKVsxXTtpPXtpZDpyPSJfaWR4LyIrcysi77+9IithLHRleHQ6IsKgwqAiK2ErIsKgaW7CoF9kLyIrcyxvcmRlcjoiXzEifTsoaj17cGF0aDpbaCwiX2Rlc2lnbiIseC5pZC5zcGxpdCgiLyIpWzFdLCJfdmlldyIsYV0scmV2OmQscmVkdWNlOiExLHR5cGU6IiJ9KS52aWV3PU9iamVjdC5jbG9uZShjLCEwKTt2YXIgdD1jLm9wdGlvbnMuZGVmO2oudmlldy5zb3VyY2U9WyIoeyIsIlxuXHRpbmRleDogeyIsIlxuXHRcdGZpZWxkczogW3sxfV0iLHQucGFydGlhbF9maWx0ZXJfc2VsZWN0b3I/Iixcblx0XHRwYXJ0aWFsX2ZpbHRlcl9zZWxlY3RvcjogIitKU09OLnN0cmluZ2lmeSh0LnBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yLG51bGwsIlx0IikubGluZXMoKS5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4oYT8iXHRcdCI6IiIpK3h9KS5qb2luKCJcbiIpOiIiLCdcblx0fSxcblx0bmFtZTogezJ9LFxuXHRkZG9jOiB7M30sXG5cdHR5cGU6ICJqc29uIicsIlxufSkiXS5qb2luKCIiKS5hc3NpZ24odC5maWVsZHMubWFwKEpTT04uc3RyaW5naWZ5KS5qb2luKCIsICIpLEpTT04uc3RyaW5naWZ5KGEpLEpTT04uc3RyaW5naWZ5KHguaWQuc3BsaXQoIi8iKS5mcm9tKDEpLmpvaW4oIi8iKSkpLG1bcl09aixsLmNoaWxkcmVuLnB1c2goaSl9fSksay5jaGlsZHJlbi5sZW5ndGgmJihrLmNoaWxkcmVuPWsuY2hpbGRyZW4uc29ydEJ5KCJ0ZXh0Iiksai5wdXNoKGspKSl9fSksaj1qLnNvcnRCeShmdW5jdGlvbih4KXtyZXR1cm4oeC5vcmRlcnx8IiIpK3gudGV4dH0pLGwmJihsLmNoaWxkcmVuPWwuY2hpbGRyZW4uc29ydEJ5KGZ1bmN0aW9uKHgpe3JldHVybih4Lm9yZGVyfHwiIikreC50ZXh0fSkpfSkuZmFpbChmdW5jdGlvbih4LGIsZCl7YXx8Y3cubGliLm5vdGUoYy5sYW5nLkVSUl9HRVRWSUVXUy5hc3NpZ24oaCksImVycm9yIil9KS5hbHdheXMoZnVuY3Rpb24oKXtjLlZpZXdzPWosYy5WaT1tLCFkLnZpZXd8fG1bZC52aWV3XXx8Il9maW5kIj09ZC52aWV3LnRvKDUpfHwvXl8oZGVzaWduX2RvY3N8bG9jYWxfZG9jc3xjaGFuZ2VzKSQvLnRlc3QoZC52aWV3KXx8KGQudmlldz0iIikseCYmKGMuc2VsZWN0MihjLm15LmZpbmQoIiN2aWV3LW5hbWUiKSx7ZGF0YTpqLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyLGZvcm1hdFNlbGVjdGlvbjpjLmZvcm1hdFNlbDJ9KSxjLm15LnJlY2FsYygiI3ZpZXctbmFtZSIpKSxuLnJlc29sdmUoail9KSxuLnByb21pc2UoKSl9LEdldFZpZXc6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPU9iamVjdC5pc0FycmF5LGQ9T2JqZWN0LmlzT2JqZWN0LGU9SlNPTi5zdHJpbmdpZnksZj10aGlzLGc9Zi5kYXRhLGg9Zy5wYXRoWzBdLGk9e2xpbWl0OjEwMCx1cGRhdGVfc2VxOiEwfSxqPWcudmlldyxrPWYuVmlbZy52aWV3XT9mLlZpW2cudmlld10ucGF0aC5zbGljZSgwKTpbaCxnLnZpZXcrIiJ8fCJfYWxsX2RvY3MiXSxsPSJnZXQiLG09e30sbj0iX2ZpbmQiPT1qLnRvKDUpLG89Il9pZHgiPT1qLnRvKDQpLHA9Il9kZXNpZ25fZG9jcyI9PWoscT0iX2NoYW5nZXMiPT1qLHI9YyhhKSYmIW4/YS5zbGljZSgwKTpbXSxzPSEhci5sZW5ndGgsdD1udWxsLHU9KCQuRGVmZXJyZWQoKSxbXSksdj17fSx3PXt9LHk9ITEsej0oZi5JbmRleCwiIiksQT0wLEI9MCxDPVsiI2dyaWQtcHJveHkiLCIjc3RhdGUtcHJveHkiLCIjdmlldy1yZXN1bHRzLWdyaWQiLCIjdmlldy1ncmlkLWNvbHMiXSxEPSJjaGVjayIsRT1rO2lmKHAmJihmLlBobyhbIkNvdWNoIiwidmVyIl0pPCIwMDIuMDAwIiYmKGtbMV09Il9hbGxfZG9jcyIsaVtnLnJldmVyc2U/ImVuZGtleSI6InN0YXJ0a2V5Il09Il9kZXNpZ24vIixpW2cucmV2ZXJzZT8ic3RhcnRrZXkiOiJlbmRrZXkiXT0iX2Rlc2lnbjAiKSxpLmluY2x1ZGVfZG9jcz0hMCksbilzPSExLGtbMV09Il9maW5kIixsPSJwb3N0IixtPWYuRWRpdG9yWzBdfHxnLm1hbmdvLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09ai5mcm9tKDYpfSl8fGcubWFuZ28ucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4iRGVmYXVsdCBxdWVyeSI9PXgubmFtZX0pLHQ9ZSgkLmV4dGVuZCghMCx7fSx7bGltaXQ6TWF0aC5hYnMoK2cubGltaXQpKzEsc2tpcDovXl9cZCskLy50ZXN0KGcuc3RhcnQpPytnLnN0YXJ0LmZyb20oMSk6MH0sbS5qc29uKSksaT17fTtlbHNle2lmKGcucmV2ZXJzZV5xJiYhcyYmKGkuZGVzY2VuZGluZz0hMCksaS5saW1pdD1NYXRoLmFicygrZy5saW1pdCkrMSxnLnN0YXJ0KWlmKC9eX1xkKyQvLnRlc3QoZy5zdGFydCkpaS5za2lwPStnLnN0YXJ0LnN1YnN0cigxKXx8MDtlbHNle3RyeXtiPUpTT04ucGFyc2UoZy5zdGFydCl9Y2F0Y2goeCl7fWkuc3RhcnRrZXk9dm9pZCAwIT09Yj9iOmcuc3RhcnR9IWomJihnLmluY2x8fFtdKS5pbmRleE9mKCJkb2NzIik+LTEmJihpLmluY2x1ZGVfZG9jcz0hMCkscSYmKGkuc3R5bGU9ImFsbF9kb2NzIixkZWxldGUgaS51cGRhdGVfc2VxLGkuc3RhcnRrZXkmJihpLnNpbmNlPWkuc3RhcnRrZXksZGVsZXRlIGkuc3RhcnRrZXkpKSwhbyYmZi5WaVtqXSYmZi5WaVtqXS5yZWR1Y2U/KHo9Zy5yZWR1Y2UrIiIpPyIwIj09ej9pLmdyb3VwPSExOiI5OSI9PXo/aS5ncm91cD0hMDppLmdyb3VwX2xldmVsPSt6OmkucmVkdWNlPSExOm8mJihpLnJlZHVjZT0hMSwiX2lkeC/vv70iPT1qLnRvKDYpJiYoa1sxXT0iX2FsbF9kb2NzIikpLGkucmVkdWNlJiYocz0hMSkscyYmKGw9InBvc3QiLHQ9ZSh7a2V5czpyLnNvcnQoKS51bmlxdWUoKX0pLGRlbGV0ZSBpLnN0YXJ0a2V5LGRlbGV0ZSBpLmVuZGtleSxkZWxldGUgaS5za2lwKX12YXIgRj1FLmNvbmNhdChbaV0pLEc9ZShGKTtyZXR1cm4gZy5ncmlkJiZmLmNsb3NlQXV0b2NvbXBsZXRlcygpLGYuUGVuZGluZ1tHXXx8KE0uZGVib3VuY2UoMTApKCEwKSxnLmR1cj0wLGcuc2l6ZT0wLEE9RGF0ZS5ub3coKSx1LnB1c2goZi5SZXEoe3VybDpGLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOmwsZGF0YTp0LGRhdGFUeXBlOiJ0ZXh0In0pLnRoZW4oZnVuY3Rpb24oeCl7Qj11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoeCkpLmxlbmd0aCx3PUpTT04ucGFyc2UoeCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXt3PXtjb2RlOngsZXJyOmEsbXNnOmJ9fSkpLHAmJnUucHVzaChmLkdldERkb2NzSW5mbyhGLHM/cjpudWxsKS50aGVuKGZ1bmN0aW9uKHgpe3Y9eH0pKSxmLlBlbmRpbmdbR109US5hbGxTZXR0bGVkKHUpLnRoZW4oZnVuY3Rpb24oYSl7aWYoZi5QZW5kaW5nW0ddPW51bGwsZy5kdXI9RGF0ZS5ub3coKS1BLGcuc2l6ZT1CLCJmdWxmaWxsZWQiIT1hWzBdLnN0YXRlKXJldHVybiBmLlJlc3VsdFswXT17dXJsOkcsY29kZTp3LmNvZGUsc3RhbXA6RGF0ZS5ub3coKSsiIixvazohMSxlcnJvcjp3LmVycixtc2c6dy5tc2d9LGYuUm93cz1bXSxmLkVycm9yPSJFcnJvciAiK3cuY29kZSsiOiAiK3cuZXJyLHgmJkgoKSxmLlJlc3VsdFswXTtmLkVycm9yPSIiLGYuRmllbGRzPVtdLGYuUmVzdWx0WzBdPU9iamVjdC5jbG9uZSh3LCEwKSxuP0wodyk6bz9LKHcpOnE/Sih3KTpJKHcpLHgmJihmLm15Lm1vZGFsKCIjYnRuLXZpZXdjb2RlIiwhMCksSCgpKX0uZGVib3VuY2UoMCkpLnRoZW4oZnVuY3Rpb24oKXtNLmRlYm91bmNlKDUwKSghMSl9KSksZi5QZW5kaW5nW0ddO2Z1bmN0aW9uIEgoKXtbQ10uZmxhdHRlbigpLmZvckVhY2goeD0+Zi5teVtEXSh4KSl9ZnVuY3Rpb24gSSh4KXt4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9eC50b3RhbF9yb3dzfHwtMSxnLm9mZnNldD14Lm9mZnNldHx8LTEsZy5zZXE9KHgudXBkYXRlX3NlcXx8RGF0ZS5ub3coKSkrIiI7dmFyIGE9WyJmaWx0ZXJzIiwidmlld3MiLCJsaXN0cyIsInNob3dzIiwiYXBpIiwiaG9va3MiLCJyZXdyaXRlcyIsInNpemVzIl07aWYoeC5yb3dzLmZvckVhY2goZnVuY3Rpb24oeCxhKXtwJiZqKHgpLHguX3Zqc29uPWUoT2JqZWN0LnJlamVjdCh4LHA/WyJrZXkiLCJkb2MiXTpbImtleSJdKSxudWxsLCIgICIpLmZyb20oMikseC5fa2pzb249J3tcbiAgImtleSI6ICcrZSh4LmtleSkrIixcbiIseC5faWR4PWUoW3gua2V5LHguaWQsYV0pLHguX2lkeHNhZmU9eC5faWR4LmVzY2FwZUhUTUwoKX0pLGYuUm93cz1zP2koeC5yb3dzfHxbXSxmLlJvd3MpOih4LnJvd3N8fFtdKS5zbGljZSgwKSxnLmxpbms9Zi5SZXEoRiwhMCksZy5ncmlkKXtmLmJ1aWxkRmllbGRzTGlzdCgpO3ZhciBiPWcuY29sdW1ucysiIjsiLnZhbHVlIiE9YiYmKGcudmlld3x8InJldiIhPWImJiIuZG9jIiE9Yil8fChnLmNvbHVtbnM9Zi5kZXJpdmVHcmlkQ29sdW1ucygpKX1yZXR1cm4geDtmdW5jdGlvbiBoKHgpe3JldHVybiJ7MX0gTE9DLCB7Mn0gY2hhcnMiLmFzc2lnbih4LmxpbmVzKCkubGVuZ3RoLHgubGVuZ3RoKX1mdW5jdGlvbiBpKHgsYSl7dmFyIGI9eC5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFtlKGEua2V5KSsiXG4iK2UoYS5pZCldPWEseH0se30pO3JldHVybiBhLm1hcChmdW5jdGlvbih4KXt2YXIgYT1iW2UoeC5rZXkpKyJcbiIrZSh4LmlkKV07cmV0dXJuIHZvaWQgMCE9PWE/YTp4fSl9ZnVuY3Rpb24gaih4KXt2YXIgYj14LnZhbHVlLnJldjt4LmRlc2M9Ikxpc3Qgb2YgZGRvYyBmdW5jdGlvbnMiLHgubGFuZ3VhZ2U9eC5kb2MubGFuZ3VhZ2V8fCJqYXZhc2NyaXB0Iix4LnZhbHVlPSQuZXh0ZW5kKHtyZXY6Yn0sT2JqZWN0LnNlbGVjdCh4LmRvYyxhKSksYS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXgudmFsdWVbYV07InN0cmluZyI9PXR5cGVvZiBiP3gudmFsdWVbYV09aChiKTpjKGIpP3gudmFsdWVbYV09IkFycmF5W3sxfV0iLmFzc2lnbihiLmxlbmd0aCk6ZChiKSYmInZpZXdzIj09YT94LnZhbHVlW2FdPU9iamVjdC5rZXlzKHgudmFsdWVbYV0pLnJlZHVjZShmdW5jdGlvbihiLGMpe3ZhciBlPXgudmFsdWVbYV1bY10sZj1lLm1hcCxnPWUucmVkdWNlO3JldHVybiJzdHJpbmciPT10eXBlb2YgZj8oYltjXT0iTWFwOiAiK2goZiksInN0cmluZyI9PXR5cGVvZiBnJiYoYltjXSs9IjsgUmVkdWNlOiAiKygiXyI9PWdbMF0/ZzpoKGcpKSkpOiJxdWVyeSI9PXgubGFuZ3VhZ2UmJmQoZikmJihiW2NdPSJNYW5nbyBpbmRleCIsZChmLmZpZWxkcykmJihiW2NdKz0iLCBmaWVsZHM6ICIrT2JqZWN0LmtleXMoZi5maWVsZHMpLmpvaW4oIiwgIikpKSxifSx7fSk6ZChiKSYmKHgudmFsdWVbYV09T2JqZWN0LmtleXMoeC52YWx1ZVthXSkucmVkdWNlKGZ1bmN0aW9uKGIsYyl7dmFyIGQ9eC52YWx1ZVthXVtjXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQmJihiW2NdPWgoZCkpLGJ9LHt9KSl9KSwkLmV4dGVuZCghMCx4LHZbeC5pZF18fHt9KX19ZnVuY3Rpb24gSih4KXt4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9LTEsZy5vZmZzZXQ9eC5vZmZzZXR8fC0xLGcuc2VxPXgubGFzdF9zZXErIiI7dmFyIGE9eC5yZXN1bHRzLm1hcChmdW5jdGlvbih4LGEpe3JldHVybntpZDp4LmlkLGtleTp4LmlkLHZhbHVlOiQuZXh0ZW5kKHguZGVsZXRlZD97ZGVsZXRlZDohMH06e30se3NlcTooeC5zZXErIiIpLnNwbGl0KCItIilbMF0scmV2OnguY2hhbmdlc1swXS5yZXZ9KSxfdmpzb246ZSh4LG51bGwsIiAgIikuZnJvbSgxKSxfa2pzb246InsiLF9pZHg6ZSh4LmlkKSxfaWR4c2FmZTplKHguaWQpLmVzY2FwZUhUTUwoKSxfZGVsOnguZGVsZXRlZD94LmNoYW5nZXNbMF0ucmV2OiIifX0pO3JldHVybiBmLlJvd3M9KGF8fFtdKS5zbGljZSgwKSxnLmxpbms9Zi5SZXEoRiwhMCkseH1mdW5jdGlvbiBLKHgpe3JldHVybiB4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9eC50b3RhbF9yb3dzfHwtMSxnLm9mZnNldD14Lm9mZnNldHx8LTEsZy5zZXE9KHgudXBkYXRlX3NlcXx8RGF0ZS5ub3coKSkrIiIseC5yb3dzLmZvckVhY2goZnVuY3Rpb24oeCxhKXt4Ll92anNvbj1lKHgsbnVsbCwiICAiKS5mcm9tKDIpLHguX2tqc29uPSJ7XG4iLHguX2lkeD1lKFt4LmtleSx4LmlkLGFdKSx4Ll9pZHhzYWZlPXguX2lkeC5lc2NhcGVIVE1MKCl9KSxmLlJvd3M9KHgucm93c3x8W10pLnNsaWNlKDApLGcubGluaz1mLlJlcShGLCEwKSx4fWZ1bmN0aW9uIEwoeCl7eC5zdGFtcD1EYXRlLm5vdygpKyIiLHgudXJsPUUrIiIsZy50b3RhbF9yb3dzPS0xLGcub2Zmc2V0PW0uc2tpcHx8LTEsZy5zZXE9KHgudXBkYXRlX3NlcXx8RGF0ZS5ub3coKSkrIiI7dmFyIGE9L15fXGQrJC8udGVzdChnLnN0YXJ0KT8rZy5zdGFydC5mcm9tKDEpOjAsYj14LmRvY3MubWFwKGZ1bmN0aW9uKHgsYil7cmV0dXJue2lkOmErYisiIixrZXk6YStiKyIiLHZhbHVlOngsX3Zqc29uOmUoeCxudWxsLCIgICIpLmZyb20oMSksX2tqc29uOiJ7IixfaWR4OmUoW2ErYl0pLF9pZHhzYWZlOmUoW2ErYl0pLmVzY2FwZUhUTUwoKX19KTtyZXR1cm4gZi5Sb3dzPShifHxbXSkuc2xpY2UoMCksZy5saW5rPWYuUmVxKEYsITApLHh9ZnVuY3Rpb24gTSh4KXsoeCYmIXl8fCF4KSYmKGYubXkmJmYubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJhcHAtYnVzeSIseCksJC5teS5yYWRpbygiYXBwYnVzeSIse2lkOmcudGFiaWQsYnVzeTp4fSkpLHk9ITB9fSxHcmlkQ29sdW1uOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcztyZXR1cm57UlQ6eC5SVCxpZDoiY3cuUGhvdG9uLiR2aWV3LkdyaWRDb2x1bW4iLGRhdGE6e3JhdzoiIixjb2xzOiIuaWQiLGNhc3Q6IiJ9LHVpOnsiLmdyaWQtY29sdW1uLXB0ciI6e2RlbGF5OjEwLGluaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztmdW5jdGlvbiBjKGEsYil7eC5teS5maW5kKCIuZ3JpZC1jb2x1bW4tcHRyIikudHJpZ2dlcigiYmx1ciIpfWZ1bmN0aW9uIGQoYSxjKXtpZighYS50ZXJtKXJldHVybiBjKGIuRmllbGRzKCkpO3ZhciBkPWIuRmllbGRzKCk7aWYoL1xzXC9bYS16MC05XXswLDZ9JC8udGVzdChhLnRlcm0pKXt2YXIgZT1hLnRlcm0ucmVwbGFjZSgvXHNcL1thLXowLTldezAsNn0kLywiIiksZj14LlJUKCkuRi5HcmlkQ2FzdDtjKFtkWzBdXS5jb25jYXQoT2JqZWN0LmtleXMoZikubWFwKGZ1bmN0aW9uKHgpe3JldHVybntsYWJlbDoiLyIreCx2YWx1ZTplKyIgLyIreH19KSkpfWVsc2V7dmFyIGc9bmV3IFJlZ0V4cChSZWdFeHAuZXNjYXBlKGEudGVybSksImkiKTtjKFtkWzBdXS5jb25jYXQoZC5zbGljZSgxKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGcudGVzdCh4LnZhbHVlKX0pKSl9fWEuYXV0b2NvbXBsZXRlKHtkZWxheTowLHNvdXJjZTp0aGlzLkZpZWxkcygpLHNvdXJjZTpkLHNlbGVjdDpjLmRlYm91bmNlKDIwKSxhcHBlbmRUbzp4Lm15LnJvb3QoKSxtaW5MZW5ndGg6MH0pLGEub24oImtleXVwLm15IixmdW5jdGlvbih4KXt2YXIgYj14LmtleUNvZGU7MTMhPWImJjEwIT1ifHxhLmJsdXIoKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO3JldHVybiBudWxsIT1hJiYoL1xzXC9bYS16XVthLXowLTldezAsNX0kLy50ZXN0KGEpP3guY2FzdD1hLm1hdGNoKC9cc1wvW2Etel1bYS16MC05XXswLDV9JC8pWzBdLnN1YnN0cigyKTp4LmNhc3Q9IiIseC5jb2xzPWEsYi5hdHRyKCJ0aXRsZSIseC5jb2xzLmxlbmd0aD44P3guY29sczoiIikpLCLigIwiPT14LmNvbHMmJmZ1bmN0aW9uKCl7Yy5teS5yZW1vdmUoKX0uZGVsYXkoMTApLHguY29sc319LCIjYnRuLWZvbGQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIubXkuZmluZCgiLmdyaWQtY29sdW1uLXB0ciIpLGQ9Yy5hdXRvY29tcGxldGUoIndpZGdldCIpLmlzKCI6dmlzaWJsZSIpO3JldHVybiBudWxsIT1hJiYoZD9jLmF1dG9jb21wbGV0ZSgiY2xvc2UiKTooYy5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGIuUlQoImNsb3NlQXV0b2NvbXBsZXRlcyIpKGMpKSxkPSFkKSwiPGRpdj57MX08L2Rpdj4iLmFzc2lnbihkPyLilrIiOiLilrwiKX0sZXZlbnRzOiJjbGljay5teSIsd2F0Y2g6WyIuZ3JpZC1jb2x1bW4tcHRyIl19fSxGaWVsZHM6ZnVuY3Rpb24oKXt2YXIgYT14LmJ1aWxkRmllbGRzTGlzdCgpO3JldHVybiB4LkNvbHVtbnMubGVuZ3RoPDImJihhPWEuc2xpY2UoMSkpLGF9LGRpZTpmdW5jdGlvbih4KXt4LmZpbmQoIi5ncmlkLWNvbHVtbi1wdHIiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKX19fSxUOnt2aWV3X25vaWQ6JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyI+e2lkc2FmZX08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLHZpZXc6JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7ZG9jaWRzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyB3MzVwLTMwIHBsMCI+e2lkc2FmZX08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIHBzZXVkb2xpbmsiIGRhdGEtdXNlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS10b3JzbyBmczExMCI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyx2aWV3X2ZpbHRlcl9ub2lkOic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMiPntpZHNhZmVmaWx0ZXJ9PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWhvdmVyYnRuIHtub2RvY30gcHNldWRvbGluayI+PHNwYW4gY2xhc3M9ImZpLXBhZ2UtZmlsbGVkIGJ0bi1vcGVuLWRvYyIgZGF0YS11cmw9IntocmVmfSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyx2aWV3X2ZpbHRlcjonPGRpdiBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9Intkb2NpZHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIHczNXAtMzAgcGwwIj57aWRzYWZlZmlsdGVyfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2PicsbWFuZ286JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyI+e2lkc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2PicsZG9jczonPGRpdiBjbGFzcz0idzEwMHAgdmlldy1yb3ciPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB0YWMgbWw0IG1yMSBtdDgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7aWRzYWZlfSI+PGRpdiBjbGFzcz0idzM4cC0zMCBwcjEyIHB0MyI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZX08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIG81MCBibHVlIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gbzUwIGZzMTEwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3NjJwIHByMTAgcGwzIHB0MyI+e3Jldn08L2Rpdj48L2Rpdj4nLGRlc2lnbl9kb2NzOic8ZGl2IGNsYXNzPSJ3MTAwcCB2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB2YXQgdGFjIG1sNCBtcjEgbXQ4IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2lkc2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMgdzM1cC0zMCBwcjIwIHBsMCI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZX08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIG81MCBibHVlIj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLHVzZXJfZG9jczonPGRpdiBjbGFzcz0idzEwMHAgdmlldy1yb3cgcHQzIj48aW5wdXQgY2xhc3M9IncyMyBkaWIgdGFjIG1sNCBtcjEgcHQyIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2lkc2FmZX0iPjxkaXYgY2xhc3M9InczOHAtMzAgcHIyMCI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZX08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIG81MCBibHVlIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gbzUwIGZzMTEwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3NjJwIHByMTAiPntyZXZ9PC9kaXY+PC9kaXY+JyxncmlkX3ZpZXc6Jzx0ciBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48dGQgY2xhc3M9Imdjb2x3MCI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDkiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7ZG9jaWRzYWZlfSI+PGRpdiBjbGFzcz0idzEwMHAtMzAgZGliIj57aWRzYWZlZmlsdGVyfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48L2Rpdj48L3RkPntjb2x1bW5zfTwvdHI+JyxncmlkX2RvYzonPHRyIGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjx0ZCBjbGFzcz0iZ2NvbHcwIj48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OSIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9Intkb2NpZHNhZmV9Ij48ZGl2IGNsYXNzPSJ3MTAwcC0zMCBkaWIiPjxzcGFuIGNsYXNzPSJidG4tb3Blbi1kb2MgcHNldWRvbGluayB0ZG4iIGRhdGEtdXJsPSJ7aHJlZn0iPntpZHNhZmVmaWx0ZXJ9PC9zcGFuPjxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gbzUwIGZzMTEwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48L3RkPntjb2x1bW5zfTwvdHI+JyxncmlkX21hbmdvOic8dHIgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PHRkIGNsYXNzPSJnY29sdzAiPjxkaXYgY2xhc3M9IncxMDBwIGRpYiBwbDcgcHQ0Ij57aWRzYWZlZmlsdGVyfTwvZGl2PjwvdGQ+e2NvbHVtbnN9PC90cj4nLGdyaWRfY29sdW1uOic8dGQgY2xhc3M9ImdyaWQtY29sdW1uIGNwIHtjc3N9IiBkYXRhLWlkeD0ie2lkeH0iPjxkaXY+e3ZhbH08L2Rpdj48L3RkPid9fSwkZGJzOntpZDoiY3cuUGhvdG9uLiRkYnMiLGxhbmc6e30saGFzaDpmdW5jdGlvbigpe3JldHVybiJsaXN0In0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iREIgbGlzdCBhbmQgdGFza3MifSxtYXRjaDpmdW5jdGlvbih4LGEpe3JldHVybiB4Lmxlbmd0aD9udWxsOnt0aXRsZToiREIgbGlzdCBhbmQgdGFza3MifX0saW5oZXJpdDpbIkJ5dGVzIiwiTWV0cmljIl0sZGF0YTp7cmV2ZXJzZTohMSxzZWFyY2g6IiIsc2VsZWN0aW9uOltdLG9zZWw6e30sc3RhcnM6e30sZ3JvdXBzOnt9LHRhc2s6e3NlYXJjaDoiIixmaWx0ZXI6WyIiXSxsaXN0OltdLHNlbGVjdGlvbjpbXSxmb2xkOnt9LHNlcTowfSxzZXJ2aWNlOnt2ZXJzaW9uOiIifX0sQWxsOnt9LEdyb3Vwczp7fSxMaXN0OltdLEJhdGNoOnt9LFRhc2tzOltdLEFsbFRhc2tzOnt9LE1vZGFsczp7fSxUYXNrTG9vcDohMSxUYXNrTG9vcEludGVydmFsOiExLExhc3RTeW5jOntzcmM6e30sdGd0Ont9fSx1aTp7IiNkYi1zZWFyY2giOntkZWxheToxNTAsYmluZDoic2VhcmNoIixjc3M6eyJteS1zZWFyY2giOi9eLnsyLH0kL319LCIjYnRuLXJlbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5zZWxlY3Rpb24ubGVuZ3RoP3RoaXMuQmF0Y2hJbmZvKHguc2VsZWN0aW9uLHRoaXMuUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5KTp0aGlzLkdldExpc3QoITApKX19LCIjYnRuLXZpZXctZGlyIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZXZlcnNlPSF4LnJldmVyc2UpLHgucmV2ZXJzZT8i4pa8Ijoi4payIn0sZXZlbnRzOiJjbGljay5teSJ9LCIjYnRuLXNlbGVjdCI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPXRoaXMsZD1PYmplY3Qua2V5cyhjLkFsbCksZT1jLkxpc3QuZmlsdGVyKHg9PiF4LnR5cGUpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSksZj14LnNlbGVjdGlvbixnPWYuaW50ZXJzZWN0KGUpLGg9Zy5sZW5ndGgsaT1jLmxhbmc7cmV0dXJuIGI9aD9pLlRYVF9VTlNFTEVDVC5hc3NpZ24oZy5sZW5ndGg9PWQubGVuZ3RoP2kuVFhUX1NFTEVDVF9BTEw6Zi5sZW5ndGgpOmkuVFhUX1NFTEVDVC5hc3NpZ24oZS5sZW5ndGg9PWQubGVuZ3RoP2kuVFhUX1NFTEVDVF9BTEw6ZS5sZW5ndGgpLG51bGwhPWEmJih4LnNlbGVjdGlvbj1oP1tdOmYuY29uY2F0KGUpLnVuaXF1ZSgpLHgub3NlbD1jdy5saWIuYTJvKHguc2VsZWN0aW9uKSksYn0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLkxpc3QubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1oYXNzZWxlY3Rpb24iLCIjZGItcHJveHkiXX0sIiN2aWV3LWNvbHMiOntkZWxlYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe2Zvcih2YXIgYixjPXRoaXMuTGlzdCxkPTAsZT0oeD0wLDApO2U8Yy5sZW5ndGg7ZSsrKWQrPShiPSJncm91cCI9PWNbZV0udHlwZSk/MDoxLHgrPWI/MDpjW2VdLmRpc2tfc2l6ZXx8MDtyZXR1cm4gdGhpcy5sYW5nLlRYVF9EQlNWSUVXKGQsT2JqZWN0LnNpemUodGhpcy5BbGwpLHg/JzxzcGFuIGNsYXNzPSJmczg1IG83MCBwbDYiPicrdGhpcy5CeXRlcyh4KSsiPC9zcGFuPiI6MCl9LHdhdGNoOlsiI2RiLXByb3h5Il19LCIjdmlldy1saW5rcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLlBobygiQmFzZSIpO3JldHVyblsnPGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSI+ezJ9PC9hPicuYXNzaWduKGIsYi5yZXBsYWNlKC9eaHR0cFtzXT86XC9cL3xcLy9nLCIiKS5lc2NhcGVIVE1MKCkpXS5qb2luKCLigIkiKX19LCIjZGItbGlzdCI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuUm93LGM9YS5Sb3dHcm91cCxkPWEuTm9ybURCLGU9YS5kYXRhLGY9YS5sYW5nO2Z1bmN0aW9uIGcoeCl7cmV0dXJuIHgucGFyZW50KCkucGFyZW50KCkuZmluZCgiPmlucHV0IikuYXR0cigidmFsdWUiKX14Lmxpc3Qoe2RhdGE6W10sZGVsYXk6MCxjaHVuazoxMDAsc29ydEJ5Om51bGwsaWQ6ZnVuY3Rpb24oeCl7cmV0dXJuImdyb3VwIj09eC50eXBlP3guaWQ6eC5uYW1lfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiJncm91cCI9PXgudHlwZT9jdy5saWIuc2RibShbeC5oZWFkLHguc3RhcnQseC5lbmQseC5mb2xkLHguZGlza10pOmN3LmxpYi5zZGJtKFt4Lm5hbWUseC5zdGFtcCx4LnVwZGF0ZV9zZXErIngiLGUub3NlbFt4Lm5hbWVdPyJ4IjoiIix4LnN0YXIseC5zaXpldGlwLHguc2VjdXJpdHkuc3RhbXAseC50YXNrcy5zdGFtcCx4LnN5bmNzLnN0YW1wXSl9LHRlbXBsYXRlOmZ1bmN0aW9uKHgpe3JldHVybiJncm91cCI9PXgudHlwZT9jLmFzc2lnbih4KTpiLmFzc2lnbihkKHgpKX19KSxhLm5pY2VTY3JvbGwoeCkseC5vbigiY2xpY2subXkiLCIuYnRuLWRiYWNsIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCksYz1nKGIpO2EuUmVxKFtjLCJfc2VjdXJpdHkiXSkudGhlbihmdW5jdGlvbih4KXtiLm1vZGFsKHtyb290OmEubXkucm9vdCgpLG1hbmlmZXN0OmEuUGhvKCJTZWNPYmoiKSxkYXRhOntkYnM6W2NdLGFkbWluczp4LmFkbWluc3x8e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOngubWVtYmVyc3x8e25hbWVzOltdLHJvbGVzOltdfX0sd2lkdGg6NDgwLGJvdW5kOjAsbm9zZToibGVmdCIsY3NzOiJ4Z3JheSIsYWxpZ246ImxlZnQ6NzAlO3RvcDotMzZweDsiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsZXNjOiEwfSl9KX0pLHgub24oImNsaWNrLm15IiwiLmJ0bi1kYnN0YXIiLGZ1bmN0aW9uKHgpe3ZhciBiPWcoJCh4LmN1cnJlbnRUYXJnZXQpKSxjPWUuc3RhcnNbYl09IWUuc3RhcnNbYl07YS5BbGxbYl0uc3Rhcj1jPyJyb3ctc3RhciI6IiIsYS5McygiREJzLlN0YXJzIixPYmplY3Qua2V5cyhlLnN0YXJzKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gZS5zdGFyc1thXSYmKHhbYV09ITApLHh9LHt9KSksYyYmKGEuQWxsW2JdLmdyb3VwPSIiKSxhLlBobygiR3JvdXBEQnMiKSgpLGEuUmVsaXN0Tm93KCksYS5CYXRjaEluZm8oW2JdKX0pLHgub24oImNsaWNrLm15IiwiLmJ0bi1kYmluZm8iLGZ1bmN0aW9uKHgpeyQoeC5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCIudGFwLWRiaW5mbyIpLnRyaWdnZXIoImNsaWNrIil9KSx4Lm9uKCJjbGljay5teSIsIi50YXAtZGJpbmZvIixmdW5jdGlvbih4KXt2YXIgYixjLGQ9JCh4LmN1cnJlbnRUYXJnZXQpLGU9ZC5wYXJlbnQoKSxnPWUuZmluZCgiPmlucHV0IikuYXR0cigidmFsdWUiKTtpZighYS5BbGxbZ118fGQuaXMoIi5jb2wtanNvbiIpKXJldHVybiExO2QuYWRkQ2xhc3MoImNvbC1qc29uIiksZS5hZGRDbGFzcygiaGFzLWNvbC1qc29uIiksZC5maW5kKCI+LmNvbC1lZC1jbG9zZSIpLmxlbmd0aD8oYj1kLmZpbmQoIj4uY29sLWVkPi5Db2RlTWlycm9yIiksYz1iWzBdLkNvZGVNaXJyb3IpOihkLmFwcGVuZChiPSQoJzxkaXYgY2xhc3M9ImNvbC1lZCBwcmUgZnM4NSBsaDEyMCBwbDQgaGlkZSI+PC9kaXY+JykpLGQuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQtY2xvc2UgZnMxMzAgbGgxMzAgaGlkZSIgdGl0bGU9InsxfSI+4pyVPC9kaXY+Jy5hc3NpZ24oZi5USVBfQ0xPU0VKU09OKSksYz1Db2RlTWlycm9yKGJbMF0se21vZGU6ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiExLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITB9KSksYy5zZXRWYWx1ZShmLlRYVF9EQklORk9fTE9BRCk7dmFyIGg9e2luZm86IkZhaWwgdG8gbG9hZCIsc2VjdXJpdHk6IkZhaWwgdG8gbG9hZCJ9O1EuYWxsU2V0dGxlZChbYS5SZXEoe3VybDpbZ119KS50aGVuKGZ1bmN0aW9uKHgpe2guaW5mbz14fSksYS5SZXEoe3VybDpbZywiX3NlY3VyaXR5Il19KS50aGVuKGZ1bmN0aW9uKHgpe2guc2VjdXJpdHk9eH0pXSkudGhlbihmdW5jdGlvbigpe2Muc2V0VmFsdWUoSlNPTi5zdHJpbmdpZnkoaCxudWxsLCIgIikpfSkuZmFpbChmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGYuRVJSX0RCSU5GTywiZXJyb3IiKSxkLnJlbW92ZUNsYXNzKCJjb2wtanNvbiIpfSl9KSx4Lm9uKCJjbGljay5teSIsIi5jb2wtZWQtY2xvc2UiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKSxjPWIucGFyZW50KCkuZmluZCgiPmlucHV0IikuYXR0cigidmFsdWUiKTtyZXR1cm4gYi5yZW1vdmVDbGFzcygiY29sLWpzb24iKSxiLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJoYXMtY29sLWpzb24iKSxhLkJhdGNoSW5mbyhbY10sMCxbImluZm8iLCJzZWN1cml0eSJdKSwhMX0pLHgub24oImNsaWNrLm15IiwiLmRiLWdyb3VwIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCkuZGF0YSgiZ3JvdXAiKSxjPWUuZ3JvdXBzW2JdPSFlLmdyb3Vwc1tiXTthLkxzKCJEQnMuR3JvdXBzIixPYmplY3Qua2V5cyhlLmdyb3VwcykucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGUuZ3JvdXBzW2FdJiYoeFthXT0xKSx4fSx7fSkpLGMmJmEuQmF0Y2hJbmZvKE9iamVjdC5rZXlzKGEuQWxsKS5maWx0ZXIoeD0+YS5BbGxbeF0uZ3JvdXA9PWIpLG51bGwsWyJpbmZvIiwic2VjdXJpdHkiXSksYS5teS5jaGVjaygiI2RiLXByb3h5IiksYS5teS5jaGVjaygiI3ZpZXctaGFzc2VsZWN0aW9uIil9KX0sYmluZDpmdW5jdGlvbih4LGEsYil7bnVsbD09YSYmYi5saXN0KCJkYXRhIix0aGlzLkxpc3QpfSx3YXRjaDpbIiNkYi1wcm94eSIsIiN2aWV3LWhhc3NlbGVjdGlvbiJdfSwiI2RiLXByb3h5Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0oYi5Sb3csYi5BbGwpLGQ9eC5yZXZlcnNlPy0xOjEsZT0tZDtpZihiLkxpc3Q9T2JqZWN0LnZhbHVlcyhjKS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguc3Rhcj5hLnN0YXI/LTFlMzp4LnN0YXI8YS5zdGFyPzFlMzp4Lm5hbWU+YS5uYW1lP2Q6ZX0pLHguc2VhcmNoLmxlbmd0aD4xKXt2YXIgZj1uZXcgUmVnRXhwKHguc2VhcmNoLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKS5jb21wYWN0KCEwKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZXNjYXBlUmVnRXhwKCl9KS5qb2luKCJ8IikpO2IuTGlzdD1iLkxpc3QuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBmLnRlc3QoeC5uYW1lLnRvTG93ZXJDYXNlKCkpfHwhIXgudG9vbHRpcCYmZi50ZXN0KHgudG9vbHRpcC50b0xvd2VyQ2FzZSgpKX0pfWVsc2V7dmFyIGc9IiIsaD17fTtiLkxpc3QuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT14Lmdyb3VwO2lmKGEpe2hbYV18fChoW2FdPVswLDBdKTt2YXIgYj0reC5kaXNrX3NpemV8fDA7YiYmKGhbYV1bMF0rPWIsaFthXVsxXSs9MSl9fSksYi5MaXN0PWIuTGlzdC5yZWR1Y2UoZnVuY3Rpb24oYSxjKXt2YXIgZD1jLmdyb3VwLGU9Yi5QaG8oIkdyb3VwcyIpW2RdO3JldHVybiBkJiZkIT1nJiZhLnB1c2goJC5leHRlbmQoITAse3R5cGU6Imdyb3VwIixmb2xkOnguZ3JvdXBzW2RdPyJhZG93biI6ImFyaWdodCIsZGlzazohaFtkXXx8aFtkXVsxXTxlLnNpemU/IiI6Yi5CeXRlcyhoW2RdWzBdKX0sZSkpLGQmJiF4Lmdyb3Vwc1tkXXx8YS5wdXNoKGMpLGc9ZCxhfSxbXSl9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2EmJihhLm5hbWU/KGIuR2V0TGlzdCghMCksYi5SZXN0YXJ0UG9sbCgpKTokLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSkpfSxkYmxpc3Q6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNBcnJheShhKSYmdGhpcy5HZXRMaXN0KCEwLGEpfX0sd2F0Y2g6WyIjYnRuLXZpZXctZGlyIiwiI2RiLXNlYXJjaCIsIiNidG4tc2VsZWN0Il19LCIjdmlldy1oYXNzZWxlY3Rpb24iOntjc3M6e30sd2F0Y2g6WyIjZGItc2VhcmNoIiwiI2J0bi1zZWxlY3QiXX0sIiNidG4tbG9ncyI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5QaG8oIkNvdWNoIikudmVyPj0iMDAyLiJ9fX0sIiNidG4tbmV3ZGIiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzLGQ9Yy5teS5maW5kKCIjZGItbGlzdCIpLndpZHRoKCktMzEwKzE1MC0zMTtiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi1uZXdkYiIsITApOihjLk1vZGFscy5oZWFkJiZjLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxjLk1vZGFscy5oZWFkPWIsYy5teS5tb2RhbCgiI2J0bi1uZXdkYiIse21hbmlmZXN0OmMuUGhvKCJOZXdEQiIpLHdpZHRoOmQ8NTUwP2QrODA6ZCxkYXRhOmMuUGhvKCJDb3VjaCIpLnZlcjwiMDAzLiI/e306e2FkbWluczp7cm9sZXM6WyJfYWRtaW4iXX0sbWVtYmVyczp7cm9sZXM6WyJfYWRtaW4iXX19LGFsaWduOiJ0b3A6MTAyJTtsZWZ0Oi00MnB4OyIsbm9zZToidG9wIixjc3M6InhncmF5IixkcmFnOiIuY20iLHNjcmVlbjohMSxlc2M6ITAsZm9jdXM6J2lucHV0W3R5cGU9InRleHQiXTplcSgwKSd9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi1uZXdkYiIpfX19LCIjYnRuLWNvbXBhY3QiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzO2IuZGF0YSgibW9kYWwiKT9jLm15Lm1vZGFsKCIjYnRuLWNvbXBhY3QiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLGMubXkubW9kYWwoIiNidG4tY29tcGFjdCIse21hbmlmZXN0OmMuUGhvKCJDb21wYWN0Iiksd2lkdGg6MzgwLGRhdGE6e3NlbGVjdGlvbjp4LnNlbGVjdGlvbi5zbGljZSgwKX0sYWxpZ246InRvcDoxMDIlO2xlZnQ6MDsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsc2NyZWVuOiExLGVzYzohMCxmb2N1czoiI2J0bi1zdGFydCJ9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfHwheC5zZWxlY3Rpb24ubGVuZ3RofHwhdGhpcy5MaXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkuaW50ZXJzZWN0KHguc2VsZWN0aW9uKS5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LWhhc3NlbGVjdGlvbiJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tY29tcGFjdCIpfX19LCIjYnRuLWRlbGRiIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi1kZWxkYiIsITApOihjLk1vZGFscy5oZWFkJiZjLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxjLk1vZGFscy5oZWFkPWIsJC5teS5tb2RhbCh7bWFuaWZlc3Q6Yy5QaG8oIkRlbERCIiksd2lkdGg6MzgwLGRhdGE6e2Riczp4LnNlbGVjdGlvbi5zbGljZSgwKX0sZm9jdXM6IiNidG4tY2FuY2VsIixjc3M6InhncmF5IHAyMCIsZXNjOiEwLGVudGVyOiExfSkudGhlbihmdW5jdGlvbigpe3guc2VsZWN0aW9uLmxlbmd0aD0wLHgub3NlbD17fX0pLmFsd2F5cyhmdW5jdGlvbigpe2MuTW9kYWxzLmhlYWQ9bnVsbH0pKX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIWN3Lm1lKCl8fCF4LnNlbGVjdGlvbi5sZW5ndGh8fCF0aGlzLkxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWV9KS5pbnRlcnNlY3QoeC5zZWxlY3Rpb24pLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctaGFzc2VsZWN0aW9uIl0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi1kZWxkYiIpfX19LCIjdGFzay1maWx0ZXIiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCghMCx7fSx0aGlzLmxhbmcuVEFHU19UQVNLX1RZUEUse3RhZ3NoaW06IuKAiSIsZ3JvdXBzaGltOiLigIkifSkpfSxiaW5kOiJ0YXNrLmZpbHRlciJ9LCIjdGFzay1jb2xzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIGIubGFuZy5UWFRfVEFTS1ZJRVcoYi5UYXNrcy5sZW5ndGg/eC50YXNrLmxpc3QuZmlsdGVyKGIuTm9Hcm91cCkubGVuZ3RoOjAsYi5UYXNrcy5maWx0ZXIoYi5Ob0dyb3VwKS5sZW5ndGgpfSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLWxpc3QiLCIjdGFzay1zZWFyY2giXX0sIiN0YXNrLXNlYXJjaCI6e2RlbGF5OjEwMCxiaW5kOiJ0YXNrLnNlYXJjaCIsY3NzOnsibXktc2VhcmNoIjovXi57Mix9JC99fSwiI3Rhc2stbGlzdCI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuVFRhc2ssYz1hLmRhdGE7ZnVuY3Rpb24gZCgpe2EubXkucmVjYWxjKCIjdGFzay1saXN0IiksYS5teS5jaGVjaygiI3Rhc2stbGlzdCIpfWZ1bmN0aW9uIGUoeCl7cmV0dXJuIE9iamVjdC5rZXlzKHgpLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiB4W2JdJiYoYVtiXT0hMCksYX0se30pfXgubGlzdCh7ZGF0YTphLlRhc2tzLGRlbGF5OjAsY2h1bms6MTAwLHNvcnRCeTpudWxsLGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LnBpZCt4LmRvY19pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gucGlkLHguX2dyb3VwfHwifiIseC5fdHlwZXx8In4iLHguX3NlbGVjdGVkPyJzZWwiOiJ1bnNlbCIseC5fZm9sZD8iZm9sZCI6InVuZm9sZCIseC50eXBlLHguX3Byb2dyZXNzLHguX3N0YXJ0ZWQseC5fZGVzYyx4LmZpbHRlcl0pfSx0ZW1wbGF0ZTpmdW5jdGlvbih4KXtyZXR1cm4gYih4KX19KSxhLm5pY2VTY3JvbGwoeCkseC5vbigiY2xpY2subXkiLCdpbnB1dFtuYW1lPSJ0YXNrLXNlbGVjdGlvbiJdJyxmdW5jdGlvbihiKXt2YXIgZT1bXSxmPXguZmluZCgnaW5wdXRbbmFtZT0idGFzay1zZWxlY3Rpb24iXScpLGc9JChiLnRhcmdldCkudmFsKCk7Zi5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4LmlzKCI6Y2hlY2tlZCIpJiZlLnB1c2goeC52YWwoKSl9KTt2YXIgaCxpPWEuVGFza3MuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZD09Zy5lc2NhcGVIVE1MKCl9KSxqPXt9LGs9IiI7aSYmKGg9aS5fc2VsZWN0ZWQ9ZS5pbmRleE9mKGcpPi0xLCJncm91cCI9PWkuX3R5cGU/KGs9Zy5mcm9tKDIpLGkuX2ZvbGQ9IWgmJmkuX2ZvbGQsaCYmKGMudGFzay5mb2xkW2tdPSExKSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5yZXBsaWNhdGlvbl9pZCE9ZyYmeC5fZ3JvdXA9PWsmJigoeC5fc2VsZWN0ZWQ9aCk/ZS5wdXNoKHgucmVwbGljYXRpb25faWQpOmUucmVtb3ZlKHgucmVwbGljYXRpb25faWQpKX0pKTooaz1pLl9ncm91cCkmJihqPWEuVGFza3MuZmluZChmdW5jdGlvbih4KXtyZXR1cm4iZ3JvdXAiPT14Ll90eXBlJiZ4LnBob3Rvbl90YXNrPT1rfSkpJiYoai5fc2VsZWN0ZWQ9aS5fc2VsZWN0ZWQmJmouX3NlbGVjdGVkKSksYy50YXNrLnNlbGVjdGlvbj1lLnVuaXF1ZSgpLGQoKX0pLHgub24oImNsaWNrLm15IiwiLnRhc2tsYWJlbCIsZnVuY3Rpb24oKXskKHRoaXMpLnBhcmVudCgpLmZpbmQoImlucHV0IikudHJpZ2dlcigiY2xpY2siKX0pLHgub24oImNsaWNrLm15IiwiLnRhc2stZ3JvdXAiLGZ1bmN0aW9uKCl7Yy50YXNrLnNlYXJjaD0kKHRoaXMpLmF0dHIoInRpdGxlIil8fCQodGhpcykudGV4dCgpLGEubXkucmVjYWxjKCIjdGFzay1zZWFyY2giKX0pLHgub24oImNsaWNrLm15IiwiLnRhc2stZm9sZGdyb3VwIixmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZGF0YSgiZ3JvdXAiKS5yZXBsYWNlKC9eX18vLCIiKSxiPWMudGFzay5mb2xkW3hdPSFjLnRhc2suZm9sZFt4XSxmPSJfXyIreCxnPWEuVGFza3MuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsaWNhdGlvbl9pZD09Znx8YS5fZ3JvdXA9PXh9KTtnLl9mb2xkPWIsZy5fc2VsZWN0ZWQ9Zy5fc2VsZWN0ZWQmJiFiLGImJmMudGFzay5zZWxlY3Rpb24ucmVtb3ZlKCJfXyIreCksYS5McygiVGFza3MuRm9sZCIsZShjLnRhc2suZm9sZCkpLGEuVGFza3MuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgZD1hLl9zZWxlY3RlZDthLl9ncm91cD09eCYmKGEuX3NlbGVjdGVkPWEuX3NlbGVjdGVkJiYhYixkJiYhYS5fc2VsZWN0ZWQmJmMudGFzay5zZWxlY3Rpb24ucmVtb3ZlKGEucmVwbGljYXRpb25faWQpKX0pLGQoKX0uZGVib3VuY2UoMTApKSx4Lm9uKCJjbGljay5teSIsIi5idG4tZG9uZS1yZXN0YXJ0IixmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZGF0YSgiaWQiKTthLlJlc3RhcnRUYXNrcyghMSxbeF0pfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEpe2lmKHgudGFzay5zZWFyY2guZnJvbSgxKXx8IiIhPXgudGFzay5maWx0ZXIpe3ZhciBjPXRoaXMuVGFza3Muc2xpY2UoMCksZD14LnRhc2suZmlsdGVyLmV4Y2x1ZGUoImFjdGl2ZSIpKyIiO2lmKHgudGFzay5maWx0ZXIuZmluZCgiYWN0aXZlIikmJihjPWMuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiJFcnJvciIhPXgucGlkJiYiRG9uZSIhPXgucGlkfSkpLCJjb21wYWN0aW9uIj09ZCl4LnRhc2subGlzdD1jLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4vY29tcGFjdGlvbiQvLnRlc3QoeC50eXBlKX0pO2Vsc2V7dmFyIGU9ZD9jLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hKCgicmVwbGljYXRpb24iIT1kfHwiZ3JvdXAiIT14Ll90eXBlKSYmLTE9PSh4LnR5cGUrIiIpLmluZGV4T2YoZCkpfSk6YztpZih4LnRhc2suc2VhcmNoLmxlbmd0aD4xKXt2YXIgZj1uZXcgUmVnRXhwKHgudGFzay5zZWFyY2gudG9Mb3dlckNhc2UoKS5zcGxpdCgifCIpLmNvbXBhY3QoITApLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVSZWdFeHAoKX0pLmpvaW4oInwiKSk7ZT1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZi50ZXN0KHguX2luZGV4KX0pfXgudGFzay5saXN0PWgoZS5maWx0ZXIoZykpfX1lbHNlIHgudGFzay5saXN0PXRoaXMuVGFza3MuZmlsdGVyKGcpO3RoaXMubXkuZmluZCgiI3Rhc2stbGlzdCIpLmxpc3QoImRhdGEiLHgudGFzay5saXN0KX1mdW5jdGlvbiBnKGEpe3JldHVybiJncm91cCI9PWEuX3R5cGV8fCFhLl9ncm91cHx8IXgudGFzay5mb2xkW2EuX2dyb3VwXX1mdW5jdGlvbiBoKHgpe3ZhciBhPXt9O3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7Imdyb3VwIiE9eC5fdHlwZSYmeC5fZ3JvdXAmJihhW3guX2dyb3VwXT0oYVt4Ll9ncm91cF18fDApKzEpfSkseC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISEoImdyb3VwIiE9eC5fdHlwZXx8YVt4Ll9ncm91cF18fHguX2ZvbGQmJnguX3J1bil9KX19LHdhdGNoOlsiI3Rhc2stZmlsdGVyIiwiI3Rhc2stc2VhcmNoIiwiI2J0bi1zZWxlY3QtdGFza3MiXX0sIiNidG4tc2VsZWN0LXRhc2tzIjp7ZGVsYXk6MCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuVGFza3Muc2xpY2UoMCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkuY29tcGFjdCgpLGQ9eC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkuY29tcGFjdCgpLGU9eC50YXNrLnNlbGVjdGlvbi5pbnRlcnNlY3QoZCkuZmlsdGVyKGIuTm9Hcm91cCksZj1lLmZpbHRlcihiLk5vR3JvdXApLmxlbmd0aCxnPWIubGFuZztyZXR1cm4gbnVsbCE9YSYmKHgudGFzay5zZWxlY3Rpb249Zj94LnRhc2suc2VsZWN0aW9uLnN1YnRyYWN0KGQpLnVuaXF1ZSgpOngudGFzay5zZWxlY3Rpb24uY29uY2F0KGQpLnVuaXF1ZSgpLGU9eC50YXNrLnNlbGVjdGlvbixiLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5yZXBsaWNhdGlvbl9pZCYmIXguX2ZvbGQmJih4Ll9zZWxlY3RlZD1lLmluZGV4T2YoeC5yZXBsaWNhdGlvbl9pZCk+LTEpfSkpLChmPShlPXgudGFzay5zZWxlY3Rpb24uaW50ZXJzZWN0KGQpKS5maWx0ZXIoYi5Ob0dyb3VwKS5sZW5ndGgpP2cuVFhUX1RfVU5TRUxFQ1QuYXNzaWduKGUubGVuZ3RoPT1jLmxlbmd0aD9nLlRYVF9UX1NFTEVDVF9BTEw6Zik6Zy5UWFRfVF9TRUxFQ1QuYXNzaWduKGQubGVuZ3RoPT1jLmxlbmd0aD9nLlRYVF9UX1NFTEVDVF9BTEw6Zy5UWFRfVF9TRUxFQ1RfRklMVEVSKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LnRhc2subGlzdC5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkJiYiZ3JvdXAiIT14Ll90eXBlfSl9fSx3YXRjaDpbIiN0YXNrLWxpc3QiLCIjdGFzay1maWx0ZXIiLCIjdGFzay1zZWFyY2giXX0sIiNidG4tcmVsb2Fkc3luYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLlJlc3RhcnRQb2xsLmRlYm91bmNlKDUwMCkoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiFjdy5tZSgpfX0sd2F0Y2g6WyIjdGFzay1saXN0Il0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztPYmplY3QuaXNPYmplY3QoYSkmJihhLm5hbWU/Yi5teS5jaGVjaygiI2J0bi1yZWxvYWRzeW5jIik6KGIuVGFza3MubGVuZ3RoPTAseC50YXNrLnNlbGVjdGlvbi5sZW5ndGg9MCxiLm15LnJlY2FsYygiI3Rhc2stbGlzdCIpLGIubXkuY2hlY2soIiN0YXNrLWNvbHMiKSxiLm15LmNoZWNrKCIjdGFzay1saXN0IikpKX19fSwiI2J0bi1yZXN5bmMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzO2lmKGIuZGF0YSgibW9kYWwiKSlyZXR1cm4gYi5tb2RhbCghMCksdm9pZCAwO2MuTW9kYWxzLnRhc2tzJiZjLk1vZGFscy50YXNrcy5tb2RhbCghMCksYy5SZXN0YXJ0VGFza3MoKS50aGVuKGZ1bmN0aW9uKCl7eC50YXNrLnNlbGVjdGlvbi5sZW5ndGg9MCxjLm15LmNoZWNrKCIjdGFzay1saXN0IiksYy5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgzMDApKCksYy5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgyNTAwKSgpfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe2lmKCF4LnRhc2suc2VsZWN0aW9uLmxlbmd0aClyZXR1cm4hMDt2YXIgYT14LnRhc2suc2VsZWN0aW9uLmZpbHRlcih0aGlzLk5vR3JvdXApLmludGVyc2VjdCh4LnRhc2subGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWR9KSk7aWYoIWEubGVuZ3RoKXJldHVybiEwO3ZhciBiPWN3LmxpYi5hMm8oYSksYz0hMDtyZXR1cm4gdGhpcy5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpeyF4LmRvY19pZCYmYlt4LnJlcGxpY2F0aW9uX2lkXSYmKGM9ITEpfSksIWN9fSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLWxpc3QiXX0sIiNidG4tc3RvcHN5bmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLlJlc3RhcnRUYXNrcyghMCkudGhlbihmdW5jdGlvbigpe3gudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYi5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGIuUmVzdGFydFBvbGwuZGVib3VuY2UoMzAwKSgpLGIuUmVzdGFydFBvbGwuZGVib3VuY2UoMjUwMCkoKX0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4heC50YXNrLnNlbGVjdGlvbi5sZW5ndGh8fCgheC50YXNrLnNlbGVjdGlvbi5maWx0ZXIodGhpcy5Ob0dyb3VwKS5pbnRlcnNlY3QoeC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkpLmxlbmd0aHx8dm9pZCAwKX19LHdhdGNoOlsiI3Rhc2stZmlsdGVyIiwiI3Rhc2stbGlzdCJdfSwiI2J0bi1uZXdzeW5jIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLGU9eC5zZWxlY3Rpb24ubGVuZ3RoPjE/Ik11bHRpIjoiU3luYyIsZj17dXJsOiIiLGRiczpbXX0sZz17dGFzazplLHNyYzpmfSxoPTQyO2lmKG51bGwhPWEpe2lmKGIuZGF0YSgibW9kYWwiKSlyZXR1cm4gYi5tb2RhbCghMCksdm9pZCAwO2QuTW9kYWxzLnRhc2tzJiZkLk1vZGFscy50YXNrcy5tb2RhbCghMCksMT09eC5zZWxlY3Rpb24ubGVuZ3RoP2YudXJsPXguc2VsZWN0aW9uWzBdOnguc2VsZWN0aW9uLmxlbmd0aD4xJiYoZi5kYnM9eC5zZWxlY3Rpb24uc2xpY2UoMCkpLGQuTW9kYWxzLnRhc2tzPWIsZC5MYXN0U3luYy50YXNrPT1lJiZKU09OLnN0cmluZ2lmeShmKT09SlNPTi5zdHJpbmdpZnkoT2JqZWN0LnNlbGVjdChkLkxhc3RTeW5jLnNyYyxbInVybCIsImRicyJdKSk/Zz1kLkxhc3RTeW5jOmQuTGFzdFN5bmM9ZywoYz1kLm15LmZpbmQoIiNycGFuZWwiKS53aWR0aCgpLTMyKTw0NjA/KGMrPTE4MyxoKz0xODMpOmM8NTYwJiYoYys9MTAyLGgrPTEwMiksYi5tb2RhbCh7cm9vdDpkLm15LmZpbmQoIiNycGFuZWwiKSxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSxkLlBobygiU3luY1Rhc2siKSx7UmVzdGFydFBvbGw6ZC5SZXN0YXJ0UG9sbCxwYXJhbXM6e3dpZHRoOmN9fSksZGF0YTpnLG5vc2U6InRvcCIsYWxpZ246InRvcDoxMDMlOyBsZWZ0Oi17MX1weDsiLmFzc2lnbihoKSxkcmFnOiIuY20iLGNzczoieGdyYXkiLGVzYzohMCxmb2N1czpkLkxhc3RTeW5jLnNyYy51cmw/IiNydGFyZ2V0IjoiI3Jzb3VyY2UifSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5Nb2RhbHMudGFza3M9bnVsbH0pfXJldHVybiB0aGlzLmxhbmdbeC5zZWxlY3Rpb24ubGVuZ3RoPDI/IkJUTl9UQVNLX05FV1NZTkMiOiJCVE5fVEFTS19CQUNLVVAiXX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiFjdy5tZSgpfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi1uZXdzeW5jIil9fSx3YXRjaDpbIiN0YXNrLWxpc3QiLCIjdmlldy1oYXNzZWxlY3Rpb24iXX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLlRhc2tMb29wJiZ0aGlzLlRhc2tMb29wLmNhbmNlbCgpLFsiI2RiLWxpc3QiLCIjdGFzay1saXN0Il0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj14LmZpbmQoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGIuZ2V0TmljZVNjcm9sbCYmYi5nZXROaWNlU2Nyb2xsKCkucmVtb3ZlKCksYi5saXN0KCJyZW1vdmUiKX0pfSxSVDpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxSZWxpc3Q6ZnVuY3Rpb24oKXt0aGlzLm15LmNoZWNrKCIjZGItcHJveHkiKX0sR2V0TGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGE7cmV0dXJuIGIuUGhvKCJHZXRMaXN0IikoKS50aGVuKGZ1bmN0aW9uKCl7Yi5BbGw9Yi5QaG8oIkFsbCIpLE9iamVjdC5rZXlzKGIuQWxsKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2IuQWxsW3hdLnN0YXI9Yy5zdGFyc1t4XT8icm93LXN0YXIiOiIifSkseCYmYi5SZWxpc3QoKSxiLkJhdGNoSW5mbyhhfHxPYmplY3Qua2V5cyhiLkFsbCksYi5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXkpfSl9LE5vcm1EQjpmdW5jdGlvbih4LGEpe3ZhciBiLGMsZD10aGlzLGU9YXx8ZC5kYXRhLm9zZWw7cmV0dXJuKGM9eC5kaXNrX3NpemUpJiYoYj14LmRhdGFfc2l6ZSkmJih4LnNpemVzYWZlPSc8c3BhbiBjbGFzcz0iezF9Ij57Mn08L3NwYW4+Jy5hc3NpZ24oYi9jPC4xPyJyZWQgbzcwIjpiL2M8LjU/Im9yYW5nZSBvOTAiOiJ4Z3JheSIsZC5CeXRlcyhjKSkseC5zaXpldGlwPWQubGFuZy5USVBfREJTSVpFLmFzc2lnbihkLkJ5dGVzKGIpLGQuQnl0ZXMoYykpKSx4Lmdyb3VwX3g9eC5ncm91cD8ieCI6IiIseC5kb2NfY291bnRfc2FmZT0iIiE9PXguZG9jX2NvdW50P2QuTWV0cmljKHguZG9jX2NvdW50LDYpOiIiLHguZG9jX2RlbF9jb3VudF9zYWZlPSIiIT09eC5kb2NfZGVsX2NvdW50P2QuTWV0cmljKHguZG9jX2RlbF9jb3VudCw2KToiIix4LnVwZGF0ZV9zZXFfc2FmZT0iIiE9PXgudXBkYXRlX3NlcT9kLk1ldHJpYygoeC51cGRhdGVfc2VxKyIiKS5zcGxpdCgiLSIpWzBdLDcpOiIiLHguY2hlY2tlZD1lW3gubmFtZV0/ImNoZWNrZWQiOiIiLHh9LE5vR3JvdXA6ZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB4PyJfXyIhPXgudG8oMik6Imdyb3VwIiE9eC5fdHlwZX0sc3R5bGU6eyIgLnZpZXctcm93Ijp7IiI6IndpZHRoOjEwMCU7IG1pbi1oZWlnaHQ6MmVtOyBwYWRkaW5nOjAuMzVlbSAwOyBsaW5lLWhlaWdodDoxLjJlbTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsiLCI6bnRoLWNoaWxkKDJuKzApIjoiYmFja2dyb3VuZC1jb2xvcjojZjVmN2Y5OyIsIiBzdmciOiJtYXJnaW4tYm90dG9tOjFweDsiLCIucm93LXN0YXIrLnZpZXctcm93IjoiYm9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCIucm93LXN0YXIrLnZpZXctcm93LnJvdy1zdGFyIjoiYm9yZGVyLXRvcDpub25lOyIsIiAuYnRuLWRic3RhciI6ImNvbG9yOiNkMGQ2ZGQ7IiwiIC5idG4tZGJzdGFyLnJvdy1zdGFyICI6ImNvbG9yOiNmZmI0MmE7In0sIiAudGFycm93IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzFweDtwYWRkaW5nLXJpZ2h0OjFweDt0ZXh0LWFsaWduOmNlbnRlcjsiLCIgLnJvdy1zZWwiOiJ3aWR0aDoyM3B4OyBtYXJnaW46IDAgMnB4IDJweCAzcHg7IHRleHQtYWxpZ246Y2VudGVyOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246bWlkZGxlOyIsIiAjZGItbGlzdCI6eyIiOiJvdXRsaW5lOm5vbmU7IiwiIC5jb2wtODAiOiJ3aWR0aDo4MHB4OyBwYWRkaW5nOjFweCA2cHggMCAwOyB0ZXh0LWFsaWduOnJpZ2h0OyIsIiAuY29sLTcwIjoid2lkdGg6NzBweDsgZm9udC1zaXplOjAuOWVtOyBsaW5lLWhlaWdodDoxLjJlbTsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjNweCAwIDAgNnB4OyIsIiAudmlldy1yb3ciOiJ3aGl0ZS1zcGFjZTogbm93cmFwOyIsIiAuZGItYnRucyI6eyIiOid3aWR0aDo1NXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LWZhbWlseTogImZvdW5kYXRpb24taWNvbnMiOyBmb250LXdlaWdodDo0MDA7JywiPnNwYW4iOiJvcGFjaXR5OjAuNjtmb250LXNpemU6MC45ZW07IGN1cnNvcjpwb2ludGVyOyBwYWRkaW5nOiAwIDNweCAwIDJweDsifSwiIC52aWV3LXJvdz5kaXYiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyB3b3JkLXdyYXA6YnJlYWstd29yZDsgd2hpdGUtc3BhY2U6YnJlYWstc3BhY2VzOyIsIiAudmlldy1hdXg+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWluLWhlaWdodDoxLjNlbTsiLCIgLmRiLWdlbmVyYWwiOiJ3aWR0aDpjYWxjKDEwMCUgLSAgMzM4cHggLSA1NXB4KTsiLCIgLmRiLWdyb3VwLW5hbWUiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMzhweCArIDE1MHB4KTsiLCIgLm1oMTllbSI6Im1pbi1oZWlnaHQ6MS45ZW07IiwiIC5taDEzZW0iOiJtaW4taGVpZ2h0OjEuM2VtOyIsIiAueHc0NXAiOiJtYXgtd2lkdGg6NDUlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyIsIiAuY29sLWlkcyI6IndpZHRoOjMwJTtwYWRkaW5nOjAgMjBweCAwIDhweDsiLCIgLmNvbC12YWxzIjoid2lkdGg6NzAlOyBwYWRkaW5nLWxlZnQ6MTBweDsiLCIgLmNvbC1qc29uIjp7IiI6IndpZHRoOjM3MHB4IWltcG9ydGFudDsgei1pbmRleDo0OyBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IG1pbi1oZWlnaHQ6MmVtO21hcmdpbjotMC4zNWVtIDAgLTAuMzVlbSAtNjBweDsgcGFkZGluZzogMC4yNWVtIDAhaW1wb3J0YW50OyJ9LCIgLnZpZXctdG9maWx0ZXIiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLWxlZnQ6NXB4O3dpZHRoOjIwcHg7bGluZS1oZWlnaHQ6MS4yZW07b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjVzOyIsIiAudmlldy1yb3c6aG92ZXIgLnZpZXctdG9maWx0ZXIiOiJvcGFjaXR5OjAuNTtjdXJzb3I6cG9pbnRlcjsiLCIgLmRiLWdyb3VwIjp7IiI6InotaW5kZXg6Mjtib3JkZXItdG9wOjFweCBzb2xpZCAjZTFlNWU4OyIsIisuZGItZ3JvdXAuenphcmlnaHQiOiJib3JkZXItdG9wOm5vbmU7IiwiLnp6YXJpZ2h0Ky56Z3JwIjoiYm9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCI6bGFzdC1jaGlsZCI6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMWU1ZTg7In0sIiAuemdycHgrLnpncnAiOiJib3JkZXItdG9wOjFweCBzb2xpZCAjZTFlNWU4OyIsIiAudmlldy1yb3c6bGFzdC1jaGlsZC56Z3JweCI6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMWU1ZTg7In0sIiAjdGFzay1wYW5lbCI6eyIiOiJvdXRsaW5lOm5vbmU7In0sIiAudGFwLWRiaW5mbyI6ImN1cnNvcjpwb2ludGVyOyIsIiAuY2ItdGFzay1yb3ciOiJ3aWR0aDoyN3B4OyBtYXJnaW4tbGVmdDotMjdweDsiLCIgI2RiLXBhbmVsIjp7IjpiZWZvcmUiOidjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MHB4O3otaW5kZXg6MTtoZWlnaHQ6MTAwJTtyaWdodDoyMzBweDt3aWR0aDo4MHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE3OCwxODQsMTkwLDAuMik7Ym9yZGVyLXJpZ2h0OjFweCBkb3R0ZWQgcmdiYSgxNzgsMTg0LDE5MCwwLjQpO3BvaW50ZXItZXZlbnRzOm5vbmU7JywiOmFmdGVyIjonY29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDt6LWluZGV4OjM7aGVpZ2h0OjEwMCU7cmlnaHQ6ODBweDt3aWR0aDo4MHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE3OCwxODQsMTkwLDAuMik7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDE3OCwxODQsMTkwLDAuMik7cG9pbnRlci1ldmVudHM6bm9uZTsnfSwiIC5iYnMiOiJib3JkZXItYm90dG9tLWNvbG9yOiNlM2U5ZWM7IiwiIC5iYXMiOiJib3JkZXItY29sb3I6I2UzZTllYzsiLCIgLmJycyI6ImJvcmRlci1yaWdodDoxcHggc29saWQgI2UzZTllYzsiLCIgLmJyc2wiOiJib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjExLDIxNywyMjIsMC4zKTsiLCIgLmJjZWxsMCI6ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDExNSwxMjEsMTI4LDAuMSk7IiwiIC5iY2VsbDEiOiJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxMTUsMTIxLDEyOCwwLjA3KTsiLCIgLncxMDBwLTMzOCI6IndpZHRoOmNhbGMoMTAwJSAtIDMzOHB4KTsiLCIgLncxMDBwLTMxMCI6IndpZHRoOmNhbGMoMTAwJSAtIDMxMXB4KTsiLCIgLnRhc2stcm93LXRpcCI6Im1pbi13aWR0aDozMCU7IHRleHQtYWxpZ246Y2VudGVyOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJvcmRlci1yYWRpdXM6MnB4OyBwYWRkaW5nOiAwIDJweCAxcHggMnB4OyIsIiAuYnRuLWRvbmUtcmVzdGFydCI6eyIiOiJvcGFjaXR5OjAuNDt0cmFuc2l0aW9uOm9wYWNpdHkgMC41czsiLCI6aG92ZXIiOiJvcGFjaXR5OjE7In19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtyZXR1cm4gYS5Mcz1hLlBobygiTHMiKSxhLlJvdz1hLlJvdy5hc3NpZ24oYS5sYW5nKSxhLlBobygiaXNJRSIpfHxbIlJvdyJdLmZvckVhY2goZnVuY3Rpb24oeCl7YVt4XT1hLlBobygiQ29tcGlsZVQiKShhW3hdKX0pLCQuZXh0ZW5kKGIudGFzay5mb2xkLGEuTHMoIlRhc2tzLkZvbGQiKXx8e30pLCQuZXh0ZW5kKGIuc3RhcnMsYS5McygiREJzLlN0YXJzIil8fHt9KSwkLmV4dGVuZChiLmdyb3VwcyxhLkxzKCJEQnMuR3JvdXBzIil8fHt9KSxhLlJlbGlzdE5vdz1hLlJlbGlzdC5kZWJvdW5jZSgxMCksYS5SZWxpc3Q9YS5SZWxpc3QudGhyb3R0bGUoNTAwKSxhLkFycm93cz1hLkFycm93cy5zcGxpdCgiXG5cbiIpLHguaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpLHgub24oImNsaWNrLm15IiwnaW5wdXRbbmFtZT0iZGItc2VsZWN0aW9uIl0nLGZ1bmN0aW9uKCl7dmFyIGM9W107eC5maW5kKCdpbnB1dFtuYW1lPSJkYi1zZWxlY3Rpb24iXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpO3guaXMoIjpjaGVja2VkIikmJmMucHVzaCh4LnZhbCgpKX0pLGIuc2VsZWN0aW9uPWMsYi5vc2VsPWN3LmxpYi5hMm8oYi5zZWxlY3Rpb24pLGEubXkuY2hlY2soIiN2aWV3LWhhc3NlbGVjdGlvbiIpfSkseC50aGVuKGZ1bmN0aW9uKCl7JC5leHRlbmQoITAsYS5kYXRhLnNlcnZpY2UsYS5QaG8oIkNvdWNoIikpfS5kZWJvdW5jZSgxMDApKSxhLkdldExpc3QoITApLnRoZW4oZnVuY3Rpb24oKXthLlRhc2tMb29wSW50ZXJ2YWw9YS5QaG8oIkNmZyIpLmxvb3BBY3RpdmVUYXNrcyxhLkdldFRhc2tzKCEwKSxhLlJlc3RhcnRQb2xsKCl9KX0sSFRNTDonPGRpdiBjbGFzcz0idzU1cCBkaWIgdmF0Ij48ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgZnM5NSB6aTIiIHN0eWxlPSJtYXgtd2lkdGg6MTgwcHg7d2lkdGg6Y2FsYygxMDAlIC0gNDQ1cHgpOyI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRiLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQgdzc1cCBwcjEwIj48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yMiIgdGl0bGU9IntUSVBfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tbmV3ZGIiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fTkVXREJ9PC9idXR0b24+PHNwYW4gaWQ9InZpZXctaGFzc2VsZWN0aW9uIj48YnV0dG9uIGlkPSJidG4tY29tcGFjdCIgY2xhc3M9Im1yMiIgZGlzYWJsZWQ+e0JUTl9DT01QQUNUfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kZWxkYiIgY2xhc3M9Im1yMiByZWQiIGRpc2FibGVkPntCVE5fREVMREJ9PC9idXR0b24+PC9zcGFuPjxzcGFuIGNsYXNzPSJwbHNoaW0gZGliIHZhdCI+PHNwYW4gaWQ9ImJ0bi1zdGF0cyIgY2xhc3M9Im1yMiI+PGEgaHJlZj0iI19zdGF0cyIgY2xhc3M9InRkbiBsaDE0MGkgYnV0dG9uIj57QlROX1NUQVRTfTwvYT48L3NwYW4+PHNwYW4gaWQ9ImJ0bi1sb2dzIiBjbGFzcz0iaGlkZSI+PGEgaHJlZj0iI19sb2ciIGNsYXNzPSJ0ZG4gbGgxNDBpIGJ1dHRvbiI+e0JUTl9MT0dTfTwvYT48L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImRiLXBhbmVsIiBjbGFzcz0icGFuZWxoZWlnaHQtMzIgYnIyIG10MTYgbWwyMCBtcjIwIj48ZGl2IGNsYXNzPSJiZy1wZ3JheSBiYnMgbGgxNjAgcHQyIG53IG9oIGVsbCB4cGFuZWwiPjxkaXYgY2xhc3M9IncxMDBwLTMxMCBkaWIgdmF0IG53IG9oIGVsbCI+PHNwYW4gaWQ9ImJ0bi12aWV3LWRpciIgY2xhc3M9ImRpYiBwbDggcHI2IG1yMiB2YXQgY3AgbzUwIGZzODAgcHQxIHBzZXVkb2xpbmsgdGRuIGgzMCI+PC9zcGFuPjxzcGFuIGlkPSJ2aWV3LWxpbmtzIiBjbGFzcz0iZ3JheSBoaWRlIj48L3NwYW4+PGRpdiBpZD0idmlldy1jb2xzIiBjbGFzcz0iZGliIHZhdCBwcjEyIG53IHhncmF5Ij48L2Rpdj48ZGl2IGlkPSJidG4tc2VsZWN0IiBjbGFzcz0iYnV0dG9uIHhidXR0b24gcHQyIGgyNSBtdDEgZnM5MCBsaDEzMCB0ZG4gZnIgbXIzIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3MzEwIGRpYiBncmF5IGZzOTAiPjxkaXYgY2xhc3M9Inc4MCBkaWIgdGFyIHByNiI+e0hfRE9DU308L2Rpdj48ZGl2IGNsYXNzPSJ3NzAgZGliIHBsNyI+e0hfREVMRE9DU308L2Rpdj48ZGl2IGNsYXNzPSJ3ODAgZGliIHRhciBwcjciPntIX1NFUX08L2Rpdj48ZGl2IGNsYXNzPSJ3ODAgZGliIHRhciBwcjciPntIX1NJWkV9PC9kaXY+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9ImRiLWxpc3QiIGNsYXNzPSJwYW5lbGhlaWdodC02MyB4Z3JheSBsaDE3MCBieHRvcCBveGgiPjwvc2VjdGlvbj48L2Rpdj48ZGl2IGlkPSJkYi1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InJwYW5lbCIgY2xhc3M9Inc0NXAgZGliIHZhdCBwcjIwIj48ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IG1iMTYgdGFsIj48ZGl2IGNsYXNzPSJmciBmczk1IHRhbCIgc3R5bGU9Im1heC13aWR0aDoxODBweDt3aWR0aDpjYWxjKDEwMCUgLSAzNDBweCk7Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGFzay1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ3NzBwIGRpYiI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZHN5bmMiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie1RJUF9UQVNLX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLW5ld3N5bmMiIGNsYXNzPSJtcjIgdzExMCBwbDQgcHIyIj57QlROX1RBU0tfTkVXU1lOQ308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tcmVzeW5jIiBjbGFzcz0ib3JhbmdlIG1yMiIgZGlzYWJsZWQ+e0JUTl9UQVNLX1JFU1lOQ308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tc3RvcHN5bmMiIGNsYXNzPSJyZWQiIGRpc2FibGVkPntCVE5fVEFTS19TVE9QfTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InRhc2stcGFuZWwiIGNsYXNzPSJwYW5lbGhlaWdodC0zMiBicjIgbXQxNiI+PGRpdj48ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE3MCB4cGFuZWwgcHQxIj48ZGl2IGNsYXNzPSJmciBwcjQgdGFyIj48c3BhbiBpZD0idGFzay1maWx0ZXIiIGNsYXNzPSJocGFuZWwgZnM5MCBwbDQiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ0YXNrLWNvbHMiIGNsYXNzPSJkaWIgdmF0IHBsOCBudyB4Z3JheSBwdDEgcHIxMiI+PC9kaXY+PGRpdiBpZD0iYnRuLXNlbGVjdC10YXNrcyIgY2xhc3M9ImJ1dHRvbiB4YnV0dG9uIHB0MiBoMjUgbXQyIGZzOTAgbGgxMzAgdGRuIGRpYiB2YXQgaGlkZSI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InRhc2stbGlzdCIgY2xhc3M9InBhbmVsaGVpZ2h0LTYzIHhncmF5IGxoMTcwIGJ4dG9wIj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdHVzLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+JyxSb3c6JzxkaXYgY2xhc3M9InZpZXctcm93IGRiLWJ1Y2tldCB7c3Rhcn0gemdycHtncm91cF94fSI+PGlucHV0IGNsYXNzPSJjcCByb3ctc2VsIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZGItc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9IntuYW1lc2FmZX0iPjxkaXYgY2xhc3M9ImRiLWdlbmVyYWwgbWgxM2VtIHByMiI+PGEgaHJlZj0iI3tocmVmfSIgY2xhc3M9InRkbiBtcjIwIHZpZXctZGItbmFtZSIgdGl0bGU9Int0b29sdGlwfSI+e2huYW1lfTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJkYi1idG5zIj48c3BhbiBjbGFzcz0iYnRuLWRiYWNsIHtwcm90ZWN0ZWR9IHByNSIgdGl0bGU9IntUSVBfQlROX0FDTH0iPjwvc3Bhbj48c3BhbiBjbGFzcz0iYnRuLWRiaW5mbyBsZ3JheSIgdGl0bGU9IntUSVBfQlROX0lORk99Ij7vhZ48L3NwYW4+PHNwYW4gY2xhc3M9ImJ0bi1kYnN0YXIge3N0YXJ9IHByNSIgdGl0bGU9IntUSVBfQlROX1NUQVJ9Ij7vh648L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idzMxMCB2aWV3LWF1eCBmczk1IHRhcC1kYmluZm8iIHRpdGxlPSJ7VElQX0RPQ19JTkZPfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIiB0aXRsZT0ie2RvY19jb3VudH0iPntkb2NfY291bnRfc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtNzAgZ3JheSI+e2RvY19kZWxfY291bnRfc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtODAiIHRpdGxlPSJ7dXBkYXRlX3NlcX0iPnt1cGRhdGVfc2VxX3NhZmV9PC9kaXY+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIHByOCIgdGl0bGU9IntzaXpldGlwfSI+e3NpemVzYWZlfTwvZGl2PjwvZGl2PjwvZGl2PicsUm93R3JvdXA6JzxkaXYgY2xhc3M9InZpZXctcm93IGRiLWdyb3VwIGNwIHp6e2ZvbGR9IiBkYXRhLWdyb3VwPSJ7aWR9Ij48ZGl2IGNsYXNzPSJ3MjMgbWw1IHBsMSBmczExMCI+PHNwYW4gY2xhc3M9Intmb2xkfSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRiLWdyb3VwLW5hbWUgbWgxM2VtIHByMiI+PGRpdiBjbGFzcz0ieHc0NXAgZGliIHZhdCBudyBmdzUwMCBvOTAiPntzdGFydH08L2Rpdj48c3BhbiBjbGFzcz0iYmx1ZTEgZnc2MDAiPuKAicK3wrfCt+KAiTwvc3Bhbj48ZGl2IGNsYXNzPSJ4dzQ1cCBkaWIgdmF0IG53IGdyYXkxIj57ZW5kfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IncxNjAgdmlldy1hdXggZnM5NSI+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIHRhciBncmF5MiI+e3NpemV9IERCczwvZGl2PjxkaXYgY2xhc3M9ImNvbC10cmltIGNvbC04MCB0YXIgcHI4IGdyYXkyIj57ZGlza308L2Rpdj48L2Rpdj48L2Rpdj4nLEFycm93czonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMCwgLTApIj5cbiAgICA8cGF0aCBkPSJNMS41LDQuNSBMMTUuNSw0LjUgTTEyLjUsNy41IEwxNS41LDQuNSBMMTIuNSwxLjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2LjM3NSIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNi4zNzUsIDgiPlxuICA8ZyBpZD0iTGF5ZXJfMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4zNzUsIC0xMCkiPlxuICAgIDxwYXRoIGQ9Ik02Ljc1LDE0LjUgTDE1LjUsMTQuNSBNMTIuNSwxNy41IEwxNS41LDE0LjUgTDEyLjUsMTEuNSBNMS4xMjUsMTEuNjg3IEwzLDE0LjgxMyBMMywxNy41IEMzLDE3LjUgNSwxNy41IDUsMTcuNSBDNSwxNy41IDUsMTQuODEzIDUsMTQuODEzIEw2Ljg3NSwxMS42ODcgTDEuMTI1LDExLjY4NyB6IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMCwgLTIwKSI+XG4gICAgPHBhdGggZD0iTTQuNSwyMS41IEw1LjUsMjEuNSBMNS41LDI3LjUgTDQuNSwyNy41IE0yLjUsMjEuNSBMMS41LDIxLjUgTDEuNSwyNy41IEwyLjUsMjcuNSBNMTUuNSwyNC41IEw3LDI0LjUgTTEyLjUsMjcuNSBMMTUuNSwyNC41IEwxMi41LDIxLjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTApIj5cbiAgICA8cGF0aCBkPSJNMzEuNSw0LjUgTDE3LjUsNC41IE0yMC41LDEuNSBMMTcuNSw0LjUgTDIwLjUsNy41IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNi4zNzUiIGhlaWdodD0iOCIgdmlld0JveD0iMCwgMCwgMTYuMzc1LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTEwKSI+XG4gICAgPHBhdGggZD0iTTI2LjI1LDE0LjUgTDE3LjUsMTQuNSBNMjAuNSwxNy41IEwxNy41LDE0LjUgTDIwLjUsMTEuNSBNMzEuODc1LDExLjY4NyBMMzAsMTQuODEzIEwzMCwxNy41IEMzMCwxNy41IDI4LDE3LjUgMjgsMTcuNSBDMjgsMTcuNSAyOCwxNC44MTMgMjgsMTQuODEzIEwyNi4xMjUsMTEuNjg3IEwzMS44NzUsMTEuNjg3IHoiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTIwKSI+XG4gICAgPHBhdGggZD0iTTI4LjUsMjcuNSBMMjcuNSwyNy41IEwyNy41LDIxLjUgTDI4LjUsMjEuNSBNMzAuNSwyNy41IEwzMS41LDI3LjUgTDMxLjUsMjEuNSBMMzAuNSwyMS41IE0xNy41LDI0LjUgTDI2LDI0LjUgTTIwLjUsMjEuNSBMMTcuNSwyNC41IEwyMC41LDI3LjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPicsQmF0Y2hJbmZvOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9Yy5BbGwsZT0oYT1udWxsIT1hP2E6Yy5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXksW10pLGY9Ynx8Yy5QaG8oIkNmZyIpLmxpc3RDb2xzfHxbXSxnPWYuaW5kZXhPZigiaW5mbyIpPi0xLGg9Zi5pbmRleE9mKCJzZWN1cml0eSIpPi0xLGk9Yy5QaG8oIkNvdWNoIikubWF4QmF0Y2h8fDAsaj17fSxrPWMubXk/Yy5teS5maW5kKCIjZGItbGlzdCIpOm51bGwsbD14LmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWMuQWxsW3hdfSkuc29ydChmdW5jdGlvbih4LGEpe3ZhciBiPWRbeF0uc3RhcixjPWRbYV0uc3RhcjtyZXR1cm4gYj5jPy0xOmI9PWM/MDoxfSksbT1sLmxlbmd0aDtyZXR1cm4gaTwyfHxsLmxlbmd0aDwyP2wuZm9yRWFjaChmdW5jdGlvbih4LGIpe3ZhciBmPWRbeF07aWYoYy5CYXRjaFt4XSlyZXR1cm4gZS5wdXNoKGMuQmF0Y2hbeF0pOyEoZ3x8aHx8Zi5zdGFyKXx8Zi5ncm91cCYmYy5kYXRhJiYhYy5kYXRhLmdyb3Vwc1tmLmdyb3VwXXx8ZS5wdXNoKFEuZGVsYXkoNSthKmIpLnRoZW4obi5maWxsKHgpKSl9KTppPjEmJihsLmZvckVhY2goZnVuY3Rpb24oeCxiKXt2YXIgZj1kW3hdLGs9IWYuZ3JvdXB8fCFjLmRhdGF8fGMuZGF0YS5ncm91cHNbZi5ncm91cF07KGd8fGYuc3RhcikmJms/IWouX3x8altqLl9dLmxlbmd0aD49aT8oai5fPXgsalt4XT1beF0pOmpbai5fXS5wdXNoKHgpOmgmJmsmJmUucHVzaChRLmRlbGF5KDUrYSpiKS50aGVuKHEuZmlsbCh4KSkudGhlbihjLlJlbGlzdCkpfSksZT0oai5fP28oKTpbXSkuY29uY2F0KGUpKSxRLmFsbFNldHRsZWQoZSkudGhlbihmdW5jdGlvbigpezE9PWwubGVuZ3RoJiZrP2subGlzdCgicm93IixjLk5vcm1EQihjLkFsbFtsWzBdXSkpOmMuUmVsaXN0Tm93KCl9KSxlO2Z1bmN0aW9uIG4oeCl7dmFyIGEsYj1bXS5jb25jYXQoeCksZT1iLmpvaW4oIi8iKSxmPSEhZFtlXS5zdGFyO3JldHVybihnfHxofHxmKSYmKGE9Z3x8Zj9jLlJlcSh7dXJsOmJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKGRbZV0pcmV0dXJuIHguc2l6ZXMmJih4LmRpc2tfc2l6ZT14LnNpemVzLmZpbGUseC5kYXRhX3NpemU9eC5zaXplcy5hY3RpdmUpLCQuZXh0ZW5kKGRbZV0seCx7c3RhbXA6RGF0ZS5ub3coKX0pLChofHxmKSYmZFtlXS5zZWN1cml0eS5zZXE8cGFyc2VJbnQoZFtlXS51cGRhdGVfc2VxKT9xKGUpOnZvaWQgMH0sZnVuY3Rpb24oeCl7NDA0PT14JiZkW2VdJiYiX25vZGUvX2xvY2FsL19ub2RlcyIhPWU/ZGVsZXRlIGMuQWxsW2VdOiQuZXh0ZW5kKGRbZV0sYy5QaG8oImRiVHlwZSIpLHtzdGFtcDpEYXRlLm5vdygpfSl9KTpxKGUpKT8oYy5CYXRjaFtlXT1RLmFsbFNldHRsZWQoW2FdKS50aGVuKGZ1bmN0aW9uKCl7KG0tPTEpP2MuUmVsaXN0KCk6Yy5SZWxpc3ROb3coKSxkZWxldGUgYy5CYXRjaFtlXX0pLGMuQmF0Y2hbZV0pOiQuRGVmZXJyZWQoKS5yZXNvbHZlKCl9ZnVuY3Rpb24gbygpe3ZhciB4PVtdO3JldHVybiBPYmplY3Qua2V5cyhqKS5mb3JFYWNoKGZ1bmN0aW9uKGIsYyl7aWYoIl8iIT1iKXt2YXIgZD1qW2JdO3gucHVzaChRLmRlbGF5KDErYSpjKigwfE1hdGgubG9nKGkpKSkudGhlbihwLmZpbGwoZCkpKX19KSxjLlBobygiQ291Y2giKS52ZXI+IjAwMy4iJiZ4LnB1c2gobigiX25vZGUvX2xvY2FsL19ub2RlcyIpKSx4fWZ1bmN0aW9uIHAoeCl7dmFyIGI9eC5zbGljZSgwKSxlPVtdLGY9W107cmV0dXJuIGMuUmVxKHt1cmw6WyJfZGJzX2luZm8iXSxtZXRob2Q6InBvc3QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KHtrZXlzOmJ9KX0pLnRoZW4oZnVuY3Rpb24oeCl7T2JqZWN0LmlzQXJyYXkoeCkmJih4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5rZXksYj0hIWRbYV0uc3RhcjtpZihkW2FdKXtpZih4LmVycm9yJiYiX25vZGUvX2xvY2FsL19ub2RlcyIhPWEpcmV0dXJuIGRlbGV0ZSBjLkFsbFthXSx2b2lkIDA7dmFyIGY9eC5pbmZvO2YmJihmLnNpemVzJiYoZi5kaXNrX3NpemU9Zi5zaXplcy5maWxlLGYuZGF0YV9zaXplPWYuc2l6ZXMuYWN0aXZlKSwkLmV4dGVuZChkW2FdLGYse3N0YW1wOkRhdGUubm93KCl9KSksKGh8fGIpJiZkW2FdLnNlY3VyaXR5LnNlcTxwYXJzZUludChkW2FdLnVwZGF0ZV9zZXEpJiZlLnB1c2goYSl9fSksYy5SZWxpc3QoKSxlLmxlbmd0aCYmKGUuZm9yRWFjaChmdW5jdGlvbih4LGIpe2YucHVzaChRLmRlbGF5KDErYSpiKS50aGVuKHEuZmlsbCh4KSkpfSksUS5hbGxTZXR0bGVkKGYpLnRoZW4oZnVuY3Rpb24oKXtjLlJlbGlzdCgpfSkpKX0pfWZ1bmN0aW9uIHEoeCl7cmV0dXJuIGMuUmVxKHt1cmw6W3gsIl9zZWN1cml0eSJdfSkudGhlbihmdW5jdGlvbihhKXtpZihkW3hdKXt2YXIgYj0kLmV4dGVuZCghMCx7c3RhbXA6RGF0ZS5ub3coKSxzZXE6cGFyc2VJbnQoZFt4XS51cGRhdGVfc2VxKSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LGEpOyJfIj09eFswXSYmYi5tZW1iZXJzLnJvbGVzLnB1c2goIl9hZG1pbiIpO3ZhciBjPSIiO2M9Yi5tZW1iZXJzLnJvbGVzLmxlbmd0aCtiLm1lbWJlcnMubmFtZXMubGVuZ3RoPT0wP2IuYWRtaW5zLnJvbGVzLmxlbmd0aCtiLmFkbWlucy5uYW1lcy5sZW5ndGghPTA/Im9yYW5nZTEgZmktdW5sb2NrIjoicmVkIGZpLXVubG9jayI6ImdyYXkzIGZpLWxvY2siLCQuZXh0ZW5kKGRbeF0se3NlY3VyaXR5OmIscHJvdGVjdGVkOmN9KX19KX19LEdldFRhc2tzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz0oYS5BbGwsYS5sYW5nLCI8bm9icj57MX08L25vYnI+IiksZD0nPG5vYnIgdGl0bGU9InsyfSI+ezF9PC9ub2JyPicsZT0nPHNwYW4gY2xhc3M9InsyfSI+ezF9PC9zcGFuPicsZj0kLkRlZmVycmVkKCksZz1hLkFycm93cyxoPWEuUGhvKCJDb3VjaCIpLnZlcixpPWEuUGhvKCJSZXBsaWNhdG9yREIiKTtyZXR1cm4hYS5teS5pbmRvbSgpfHxhLm15LnJvb3QoKS5oYXNDbGFzcygiaGlkZSIpfHx3aW5kb3cuZG9jdW1lbnQuaGlkZGVuP2YucmVzb2x2ZSgpLnByb21pc2UoKTpjdy5tZSgibmFtZSIpP2EuVGFza0xvb3BJbnRlcnZhbCE9YS5QaG8oIkNmZyIpLmxvb3BBY3RpdmVUYXNrcz8oYS5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgxKSgpLGYucmVzb2x2ZSgpLnByb21pc2UoKSk6KGooKS50aGVuKGspLnRoZW4obCkuZmFpbChmdW5jdGlvbih4LGIsYyl7eD40MDAmJng8NjAwJiYhY3cubWUoIm5hbWUiKT9hLlRhc2tzPVtdOmNvbnNvbGUubG9nKHgsYixjKX0pLmFsd2F5cyhwLmRlYm91bmNlKDEpKSxmLnByb21pc2UoKSk6KGEuVGFza3M9W10scC5kZWJvdW5jZSgxKSgpLGYucHJvbWlzZSgpKTtmdW5jdGlvbiBqKCl7cmV0dXJuIGEuUmVxKHt1cmw6WyJfYWN0aXZlX3Rhc2tzIl19KS50aGVuKGZ1bmN0aW9uKGIpe3ZhciBjPWIuY29uY2F0KGEuVGFza01vY2t8fFtdKS5zb3J0QnkoInR5cGUiKTtjLmZvckVhY2gobSksYy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuX25ldz0hMCxhLmRvY19pZD94KCJkb2NfaWQiLGEsITApOmEucmVwbGljYXRpb25faWQ/eCgicmVwbGljYXRpb25faWQiLGEsITApOmEucGlkJiZ4KCJwaWQiLGEsITEpfSksYS5UYXNrcy5yZW1vdmUoZnVuY3Rpb24oeCl7cmV0dXJuIXguX25ldyYmIkVycm9yIiE9eC5waWQmJiJEb25lIiE9eC5waWR9KSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5fbmV3PSExfSl9KTtmdW5jdGlvbiB4KHgsYyxkKXt2YXIgZSxmO2NbeF0mJihkJiYoYy5fc2VsZWN0ZWQ9Yi50YXNrLnNlbGVjdGlvbi5pbmRleE9mKGMucmVwbGljYXRpb25faWQpPi0xKSwoZj1hLlRhc2tzLmZpbmRJbmRleChmdW5jdGlvbihhKXtyZXR1cm4gYVt4XT09Y1t4XX0pKT4tMT8oKGU9YS5UYXNrc1tmXSkuZmlsdGVyJiYoYy5maWx0ZXI9ZS5maWx0ZXIpLGUucGhvdG9uX3Rhc2smJihjLnBob3Rvbl90YXNrPWUucGhvdG9uX3Rhc2spLGUuX3R5cGUmJihjLl90eXBlPWUuX3R5cGUpLGEuVGFza3NbZl09Yyk6YS5UYXNrcy5wdXNoKGMpKX19ZnVuY3Rpb24gaygpe2lmKCEoaDwiMDAyLiIpKXt2YXIgeD0kLkRlZmVycmVkKCk7cmV0dXJuIGEuUmVxKHt1cmw6WyJfc2NoZWR1bGVyIiwiam9icyJdfSkudGhlbihmdW5jdGlvbih4KXsoKHh8fHt9KS5qb2JzfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYixjPXguaGlzdG9yeXx8W10sZD1jWzBdLGU9KGR8fHt9KS50eXBlOyF4LnBpZCYmeC5kb2NfaWQmJmMubGVuZ3RoJiYiY3Jhc2hlZCI9PWUmJigoYj1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZG9jX2lkPT14LmRvY19pZH0pKSYmYS5UYXNrcy5yZW1vdmUoYiksYS5UYXNrcy5wdXNoKCQuZXh0ZW5kKG4oe19pZDp4LmRvY19pZCxzb3VyY2U6eC5zb3VyY2UsdGFyZ2V0OngudGFyZ2V0LGNvbnRpbnVvdXM6L2NvbnRpbnVvdXMkLy50ZXN0KHguaWQpLG93bmVyOngudXNlcnx8Ij8iLF9yZXBsaWNhdGlvbl9zdGF0ZToiZXJyb3IiLF9yZXBsaWNhdGlvbl9zdGF0ZV90aW1lOmQudGltZXN0YW1wLF9yZXBsaWNhdGlvbl9pZDp4LmlkLF9yZXBsaWNhdGlvbl9zdGF0ZV9yZWFzb246ZC5yZWFzb258fCJVbmtub3duIn0pLGImJmIucGhvdG9uX3Rhc2s/e3Bob3Rvbl90YXNrOmIucGhvdG9uX3Rhc2t9Ont9KSkpfSl9KS5hbHdheXMoZnVuY3Rpb24oKXt4LnJlc29sdmUoKX0pLHgucHJvbWlzZSgpfX1mdW5jdGlvbiBsKCl7aWYoIWEuUGhvKCJDZmciKS50YXNrc1JlYWRSZXBsaWNhdG9yfHxiLnRhc2suZmlsdGVyLmluZGV4T2YoImNvbXBhY3Rpb24iKT4tMSlyZXR1cm4gcCgpO3ZhciB4LGM9aTtyZXR1cm4oeD1iLnRhc2suc2VxP2EuUmVxKHt1cmw6W2MsIl9jaGFuZ2VzIix7aW5jbHVkZV9kb2NzOiEwLHNpbmNlOmIudGFzay5zZXF9XSxkYXRhVHlwZToianNvbiJ9KTphLlJlcSh7dXJsOltjLCJfYWxsX2RvY3MiLHtpbmNsdWRlX2RvY3M6ITAsdXBkYXRlX3NlcTohMH1dLGRhdGFUeXBlOiJqc29uIn0pKS50aGVuKGZ1bmN0aW9uKHgpe2IudGFzay5zZXE9eC5sYXN0X3NlcXx8eC51cGRhdGVfc2VxLCh4LnJvd3N8fHgucmVzdWx0cykuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4LmRvYy5fZGVsZXRlZClyZXR1cm4gYS5UYXNrcy5yZW1vdmUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZG9jX2lkPT14LmRvYy5faWR9KSx2b2lkIDA7dmFyIGIsYz14LmRvYy5fcmVwbGljYXRpb25fc3RhdGU7ImVycm9yIj09YyYmKGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSksYS5UYXNrcy5wdXNoKG4oeC5kb2MpKSksImNvbXBsZXRlZCI9PWM/KGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkseC5kb2MuX3JlcGxpY2F0aW9uX2lkfHwoeC5kb2MuX3JlcGxpY2F0aW9uX2lkPWN3LmxpYi5zZGJtKHguZG9jLl9pZCkpLGEuVGFza3MucHVzaChvKHguZG9jKSkpOiJjb21wbGV0ZWQiIT1jJiYoT2JqZWN0LmlzU3RyaW5nKHguZG9jLmZpbHRlcil8fE9iamVjdC5pc0FycmF5KHguZG9jLmRvY19pZHMpKSYmKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkpJiYoYi5maWx0ZXI9eC5kb2MuZmlsdGVyfHx4LmRvYy5kb2NfaWRzKSx4LmRvYy5waG90b25fdGFzayYmKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkpJiYoYi5waG90b25fdGFzaz14LmRvYy5waG90b25fdGFzayl9KX0pLHh9ZnVuY3Rpb24gbSh4KXtpZigiZ3JvdXAiPT14Ll90eXBlKXJldHVybiB4O3ZhciBhPXgudHlwZSxiPW51bGw9PWE/IiI6YS5yZXBsYWNlKC9fL2csIiAiKS5yZXBsYWNlKC9kYXRhYmFzZS9naSwiREIiKS5yZXBsYWNlKC9jb21wYWN0aW9uL2dpLCJjb21wYWN0IikucmVwbGFjZSgvcmVwbGljYXRpb24vZ2ksIiIpO2I9KGI9Yi5jb21wYWN0KCkpP2IrIjoiOiIiLHguX3R5cGU9IiI7dmFyIGU9JzxkaXYgY2xhc3M9InRhcnJvdyI+ezF9PC9kaXY+JyxmPSc8c3BhbiBjbGFzcz0icmVkMSBmczk1Ij57MX08L3NwYW4+JyxoPSc8c3BhbiBjbGFzcz0iZ3JlZW4gZnM5NSI+ezF9PC9zcGFuPic7eC5faW5kZXg9SlNPTi5zdHJpbmdpZnkoT2JqZWN0LnJlamVjdCh4LC9eXy8pKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1siLFx7XH1cW1xdXS9nLCIgIikuY29tcGFjdCgpLnN0cmlwVGFncygpLCJFcnJvciI9PXgucGlkPyh4Ll9waWQ9Zi5hc3NpZ24oJzxzcGFuIGNsYXNzPSJmaS1hbGVydCByZWQxIGZzOTUiPjwvc3Bhbj4gRXJyb3InKSx4Ll9waWRzYWZlPXguX3JlYXNvbnx8IkVycm9yIixlPWYuYXNzaWduKGUpKToiRG9uZSI9PXgucGlkPyh4Ll9waWQ9aC5hc3NpZ24oIkRvbmUiKSx4Ll9waWRzYWZlPSJEb25lIixlPWguYXNzaWduKGUpKTooeC5fcGlkPSfigLk8c3BhbiBjbGFzcz0iZnM5NSI+Jyt4LnBpZC5yZXBsYWNlKC9bPD5dL2csIiIpKyI8L3NwYW4+4oC6Iix4Ll9waWRzYWZlPXMoeC5waWQpKSx4LmZpbHRlciYmT2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpJiYoeC5kb2NzPSEwKTt2YXIgaj14LnN0YXJ0ZWRfb247aWYoail7dmFyIGs9RGF0ZS5jcmVhdGUoMWUzKitqKTtrLmlzVGhpc1llYXIoKT9rLmlzVG9kYXkoKT94Ll9zdGFydD1rLmZvcm1hdCgie0h9OnttbX06e3NzfSIpOnguX3N0YXJ0PWsuZm9ybWF0KCJ7ZH0ge01vbn0sIHtIfTp7bW19Iik6eC5fc3RhcnQ9ay5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0iKX1lbHNlIHguX3N0YXJ0PSI/Pz8iO2lmKCJFcnJvciI9PXgucGlkP3guX3Byb2dyZXNzPSIiOiJEb25lIj09eC5waWQ/eC5fcHJvZ3Jlc3M9IjEwMCUiOnguX3Byb2dyZXNzPU9iamVjdC5pc051bWJlcih4LnByb2dyZXNzKT8oMHx4LnByb2dyZXNzLmNsYW1wKDAsMTAwKSkrIiUiOiIgIix4LnNvdXJjZSYmeC50YXJnZXQpe3ZhciBsPXguc291cmNlLG09eC50YXJnZXQsbj12KGwpLG89dihtKTt4LnBob3Rvbl90YXNrO3guX2dyb3VwPXIoeCk7dmFyIHA9eC5fZ3JvdXA/IjgtIit4Ll9ncm91cDoiIjtuLmVuZHNXaXRoKG8pP249bi50byhuLmxlbmd0aC1vLmxlbmd0aCkrIn4iOm8uZW5kc1dpdGgobikmJihvPW8udG8oby5sZW5ndGgtbi5sZW5ndGgpKyJ+IiksL1wvLy50ZXN0KG4pJiYhL1wvLy50ZXN0KG8pPyh4Ll9sZWZ0PXArKCJEb25lIj09eC5waWQ/IjctIjoiRXJyb3IiPT14LnBpZD8iMS0iOnguZG9jX2lkPyIyLSI6IjMtIikrbysiMi0iK24seC5fZGVzYz1kLmFzc2lnbih0KG8sMzApLHMobSkpK2UuYXNzaWduKHguZG9jcz9nWzVdOnguZmlsdGVyP2dbNF06Z1szXSkrZC5hc3NpZ24odChuLDMwKSxzKGwpKSk6KHguX2xlZnQ9cCsoIkRvbmUiPT14LnBpZD8iNy0iOiJFcnJvciI9PXgucGlkPyIxLSI6eC5kb2NfaWQ/IjItIjoiMy0iKStuKyIxLSIrbyx4Ll9kZXNjPWQuYXNzaWduKHQobiwzMCkscyhsKSkrZS5hc3NpZ24oeC5kb2NzP2dbMl06eC5maWx0ZXI/Z1sxXTpnWzBdKStkLmFzc2lnbih0KG8sMzApLHMobSkpKSx4LmRvY19pZCYmKHguX2Rlc2M9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiMnK2krIi8iK3MoeC5kb2NfaWQpKyciPicreC5fZGVzYysiPC9hPiIpfWVsc2UvY29tcGFjdGlvbi8udGVzdCh4LnR5cGUpPyh4Ll9kZXNjPWMuYXNzaWduKHUoeCw2MCkpLHguX2xlZnQ9IjktIit4LmRhdGFiYXNlLHguX2dyb3VwPXIoeCkpOiJpbmRleGVyIj09eC50eXBlPyh4Ll9kZXNjPWMuYXNzaWduKHUoeCwzMCkpLHguX2xlZnQ9IkktIit4Ll9kZXNjLHguX2dyb3VwPSLigI1JbmRleGVy4oCNIik6eC5fZGVzYz14Ll9waWQ7cmV0dXJuIHh9ZnVuY3Rpb24gbih4KXtyZXR1cm4gJC5leHRlbmQobyh4KSx7cGlkOiJFcnJvciIsX3JlYXNvbjpzKHguX3JlcGxpY2F0aW9uX3N0YXRlX3JlYXNvbnx8IkVycm9yIiksZG9jX2lkOnguX2lkLHByb2dyZXNzOjB9KX1mdW5jdGlvbiBvKHgpe3ZhciBhPURhdGUuY3JlYXRlKHguX3JlcGxpY2F0aW9uX3N0YXRlX3RpbWUpLnZhbHVlT2YoKS8xZTN8MDtyZXR1cm57cGlkOiJEb25lIixjb250aW51b3VzOnguY29udGludW91cyxyZXBsaWNhdGlvbl9pZDp4Ll9yZXBsaWNhdGlvbl9pZCxfc2VsZWN0ZWQ6Yi50YXNrLnNlbGVjdGlvbi5pbmRleE9mKHguX3JlcGxpY2F0aW9uX2lkKT4tMSxkb2NfaWQ6eC5faWQscHJvZ3Jlc3M6MTAwLHBob3Rvbl90YXNrOngucGhvdG9uX3Rhc2t8fCIiLHNvdXJjZTp4LnNvdXJjZSxmaWx0ZXI6eC5maWx0ZXJ8fHguZG9jX2lkc3x8bnVsbCx0YXJnZXQ6eC50YXJnZXQsc3RhcnRlZF9vbjphLHVwZGF0ZWRfb246YSx0eXBlOiJyZXBsaWNhdGlvbiJ9fWZ1bmN0aW9uIHAoKXt2YXIgYz1hLlRhc2tzLnNsaWNlKDApO2M9Yy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIG0oeCl9KS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguX2xlZnQ8YS5fbGVmdD8tMTp4Ll9sZWZ0PmEuX2xlZnQ/MTowfSk7dmFyIGQ9e307Yz0oYz1jLnJldmVyc2UoKSkucmVkdWNlKGZ1bmN0aW9uKHgsYSxlKXt4LnB1c2goYSk7dmFyIGYsZz1yKGEpLGg9Y1tlKzFdO2lmKCFnKXJldHVybiB4O2RbZ118fChkW2ddPXtydW46MCxkb25lOjAsZXJyOjAsc2VsOjB9KSwoZj1kW2ddKVsiRXJyb3IiPT1hLnBpZD8iZXJyIjoiRG9uZSI9PWEucGlkPyJkb25lIjoicnVuIl0rPTEsZi5zZWwrPWEuX3NlbGVjdGVkPzE6MDt2YXIgaT0iX18iK2N3LmxpYi5zZGJtKGcpO3JldHVybiBoJiZyKGgpPT1nfHx4LnB1c2goe3BpZDppLF9waWQ6IiIsY29udGludW91czohMSxyZXBsaWNhdGlvbl9pZDppLGRvY19pZDoiIixwaG90b25fdGFzazpnLHJlcGxpY2F0aW9uX2lkOi8oY29tcGFjdGlvbnxpbmRleGVyKSQvLnRlc3QoYS50eXBlKT8iIjoiX18iK2cuZXNjYXBlSFRNTCgpLGZpbHRlcjoiIix0YXJnZXQ6IiIsc3RhcnRlZF9vbjoiIix1cGRhdGVkX29uOiIiLF90eXBlOiJncm91cCIsX3NlbGVjdGVkOmYucnVuK2YuZG9uZStmLmVycj09Zi5zZWwsX3J1bjpmLnJ1bixfZ3JvdXA6ZyxfZm9sZDohIWIudGFzay5mb2xkW2ddLF9kZXNjOnMoZyksX3Byb2dyZXNzOnEoZil9KSx4fSxbXSksYS5UYXNrcy5sZW5ndGg9MCxjLnJldmVyc2UoKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuVGFza3MucHVzaCh4KX0pLGIudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYS5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guX3NlbGVjdGVkJiZiLnRhc2suc2VsZWN0aW9uLnB1c2goeC5yZXBsaWNhdGlvbl9pZCl9KSx4JiYoYS5teS5yZWNhbGMoIiN0YXNrLWxpc3QiKSxhLm15LmNoZWNrKCIjdGFzay1jb2xzIiksYS5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGEubXkuY2hlY2soIiNidG4tc2VsZWN0LXRhc2tzIikpLGYucmVzb2x2ZShhLlRhc2tzKX1mdW5jdGlvbiBxKHgpe3ZhciBhPSIgdGFzay1yb3ctdGlwIjtyZXR1cm5beC5lcnI/ZS5hc3NpZ24oeC5lcnIsInJlZDEgYmctcmVkNiIrYSk6IiIseC5ydW4/ZS5hc3NpZ24oeC5ydW4sImdyYXkxIGJnLWdyYXk2IG84MCIrYSk6IiIseC5kb25lP2UuYXNzaWduKHguZG9uZSwiZ3JlZW4gYmctZ3JlZW42IithKToiIl0uY29tcGFjdCghMCkuam9pbigiICIpfWZ1bmN0aW9uIHIoeCl7cmV0dXJuL2NvbXBhY3Rpb24kLy50ZXN0KHgudHlwZSk/IuKAjURCIGNvbXBhY3Rpb27igI0iOiJpbmRleGVyIj09eC50eXBlPyLigI1JbmRleGVy4oCNIjp4LnBob3Rvbl90YXNrfHxhKHgudGFyZ2V0KXx8YSh4LnNvdXJjZSl8fCIiO2Z1bmN0aW9uIGEoeCl7aWYoIS9eaHR0cFtzXT86XC8vLnRlc3QoeCkpcmV0dXJuIiI7dmFyIGE9IiI7dHJ5eyJsb2NhbGhvc3QiIT0oYT1uZXcgVVJMKHgpLmhvc3RuYW1lKyIiKSYmIjEyNy4wLjAuMSIhPWF8fChhPSIiKX1jYXRjaCh4KXt9cmV0dXJuIGF9fWZ1bmN0aW9uIHMoeCl7cmV0dXJuKCgvXmh0dHBbc10/XDpcL1wvLy50ZXN0KHgpP3coeCk6eCkrIiIpLmVzY2FwZUhUTUwoKX1mdW5jdGlvbiB0KHgsYSl7dmFyIGI9YXx8MjA7aWYoIS9cLy8udGVzdCh4KSlyZXR1cm4gcygoeCsiIikudHJ1bmNhdGUoYiwibWlkZGxlIiwi4oCmIikpO3ZhciBjPXguc3BsaXQoIi8iKTtyZXR1cm4gY1swXS5sZW5ndGg+LjYqYj9zKGNbMF0udHJ1bmNhdGUoLjYqYnwwLCJtaWRkbGUiLCLigKYiKSkrIi8iK3MoYy5zbGljZSgxKS5qb2luKCIvIikpOnMoKHgrIiIpLnRydW5jYXRlKGIsIm1pZGRsZSIsIuKApiIpKX1mdW5jdGlvbiB1KHgsYSl7dmFyIGI9eC5kYXRhYmFzZXx8Ij8/IixjPXguZGVzaWduX2RvY3VtZW50fHwiIjtyZXR1cm4vc2hhcmRzXC9bMC05YS1mXXs4fS1bMC05YS1mXXs4fVwvLiskLy50ZXN0KGIpP3QoYi5zdWJzdHIoMjUpLnJlcGxhY2UoL1wuXGQrJC8sIiIpLGEpKyhjPyI6IF9kLyIrcyhjLnN1YnN0cig4KSk6IiIpK2QoYi5zdWJzdHIoNywxNykpOnQoYixhKSsoYz8iOiBfZC8iK3MoYy5zdWJzdHIoOCkpOiIiKTtmdW5jdGlvbiBkKHgpe3ZhciBhPXguc3BsaXQoIi0iKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHBhcnNlSW50KHgsMTYpfSksYj1NYXRoLnJvdW5kKGFbMV0tYVswXSsxKSxjPU1hdGgucm91bmQoYVswXS9iKzEpLGQ9TWF0aC5yb3VuZCg0Mjk0OTY3Mjk2L2IpO3JldHVybiBlLmFzc2lnbigiIFsiK2MrIi8iK2QrIl0iLCJmczk1IGdyYXkxIil9fWZ1bmN0aW9uIHYoeCl7aWYoIS9eaHR0cFtzXT86XC9cLy4rLy50ZXN0KHgpKXJldHVybiB4O3ZhciBhPW5ldyBVUkwoeCksYj0iMTI3LjAuMC4xIj09YS5ob3N0bmFtZXx8ImxvY2FsaG9zdCI9PWEuaG9zdG5hbWU/YS5wYXRobmFtZS5yZXBsYWNlKC9eXC98XC8kL2csIiIpOmEuaG9zdG5hbWUrYS5wYXRobmFtZS5yZXBsYWNlKC9cLyQvLCIiKTtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGIpfWZ1bmN0aW9uIHcoeCl7cmV0dXJuIHgucmVwbGFjZSgvXihodHRwW3NdP1w6XC9cL1teXDpAXC9dKzopW15AXSsoQC4rKSQvLCIkMeKAouKAouKAouKAouKAoiQyIil9fSxSZXN0YXJ0UG9sbDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5UYXNrTG9vcEludGVydmFsPXguUGhvKCJDZmciKS5sb29wQWN0aXZlVGFza3MseC5UYXNrTG9vcCYmKHguVGFza0xvb3AuY2FuY2VsKCkseC5HZXRUYXNrcyghMCkpLHguVGFza0xvb3A9eC5HZXRUYXNrcy5maWxsKCEwKS5ldmVyeSgxZTMqeC5UYXNrTG9vcEludGVydmFsKX0sUmVzdGFydFRhc2tzOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz10aGlzLGQ9Yy5kYXRhLGU9Yy5sYW5nLGY9JC5EZWZlcnJlZCgpLGc9KGF8fGMuZGF0YS50YXNrLnNlbGVjdGlvbikuZmlsdGVyKGMuTm9Hcm91cCkuc2xpY2UoMCksaD1jLlBobygiUmVwbGljYXRvckRCIiksaT1bXSxqPVtdLGs9Y3cubGliLmEybyhkLnRhc2subGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWR9KSk7Zz1nLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWtbeF19KTt2YXIgbD1jLlRhc2tzLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZy5pbmRleE9mKHgucmVwbGljYXRpb25faWQpPi0xJiZ4LmRvY19pZH0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5kb2NfaWR9KSxtPWMuVGFza3MuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBnLmluZGV4T2YoeC5yZXBsaWNhdGlvbl9pZCk+LTEmJiF4LmRvY19pZH0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm57Y2FuY2VsOiEwLHJlcGxpY2F0aW9uX2lkOngucmVwbGljYXRpb25faWR9fSksbj17d2lkdGg6MzAwLG1hbmlmZXN0OmMuUGhvKCJDb25maXJtIiksZGF0YTp7dGV4dDpbJzxkaXYgY2xhc3M9ImZzMTMwICcrKHg/InJlZCI6Im9yYW5nZSIpKycgbWI1Ij4nLGVbeD8iVFhUX1RBU0tfU1RPUF9USVRMRSI6IlRYVF9UQVNLX1JFU1lOQ19USVRMRSJdLCI8L2Rpdj4iLGVbeD8iVFhUX1RBU0tfU1RPUF9XQVJOIjoiVFhUX1RBU0tfUkVTWU5DX1dBUk4iXShsLmxlbmd0aCxtLmxlbmd0aCxoKV0uam9pbigiIikseWVzY3NzOng/InJlZCI6Im9yYW5nZSIseWVzOmUuQlROX1RBU0tfUFJPQ0VFRCxubzplLkJUTl9DQU5DRUwsY2FuY2VsOiIiLHVzZUJ1dHRvbnM6ITB9LGNzczoibGgxNjAgeGdyYXkgcDIwIHBiMjUiLGVzYzohMCxlbnRlcjohMSxzY3JlZW46ITAsZ2xvYmFsOiEwfTtyZXR1cm4oYSYmYS5sZW5ndGgmJmwubGVuZ3RoPyQuRGVmZXJyZWQoKS5yZXNvbHZlKHtjbWQ6InllcyJ9KTp4PyQubXkubW9kYWwobik6KGI9Yy5Nb2RhbHMudGFza3M9Yy5teS5maW5kKCIjYnRuLXJlc3luYyIpKS5tb2RhbCgkLmV4dGVuZChuLHtyb290OmMubXkuZmluZCgiI3JwYW5lbCIpLHNjcmVlbjohMSxnbG9iYWw6ITEsY3NzOiJsaDE2MCB4Z3JheSBwMTUgcGIyMCIsYWxpZ246InRvcDoxMDIlO2xlZnQ6MDsiLG5vc2U6InRvcCIsZm9jdXM6IiNidG4teWVzIn0pKSkudGhlbihmdW5jdGlvbih4KXtpZigieWVzIiE9eC5jbWQpcmV0dXJuIGYucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIik7bygpfSkuZmFpbChmdW5jdGlvbigpe2YucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIil9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy50YXNrcz09YiYmKGMuTW9kYWxzLnRhc2tzPW51bGwpfSksZi5wcm9taXNlKCk7ZnVuY3Rpb24gbygpe3ZhciBhO2Z1bmN0aW9uIGIoeCl7cmV0dXJuIGMuUmVxKHt1cmw6W2gsIl9idWxrX2RvY3MiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sZGF0YTpKU09OLnN0cmluZ2lmeSh7ZG9jczp4fSl9KX1sLmxlbmd0aCYmKGE9Yy5SZXEoe3VybDpbaCwiX2FsbF9kb2NzIix7aW5jbHVkZV9kb2NzOiEwLGF0dGFjaG1lbnRzOiEwfV0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7a2V5czpsfSl9KS50aGVuKGZ1bmN0aW9uKHgpe3gucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXguZG9jO2oucHVzaCh7X2lkOmEuX2lkLF9yZXY6YS5fcmV2LF9kZWxldGVkOiEwfSk7dmFyIGI9e19pZDphLl9pZH07YS5fYXR0YWNobWVudHMmJihiLl9hdHRhY2htZW50cz1hLl9hdHRhY2htZW50cyksJC5leHRlbmQoYixPYmplY3QucmVqZWN0KGEsL15fLykpLGkucHVzaChiKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBiKGopfSkudGhlbihmdW5jdGlvbihhKXtpZih4KXJldHVybiBhO2N3LmxpYi5ub3RlKGMubGFuZy5NU0dfVEFTS19SRVNZTkMpO3ZhciBkPSQuRGVmZXJyZWQoKTtyZXR1cm4gZnVuY3Rpb24oKXtiKGkpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9eC5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5vayYmIjEtIiE9KGEucmV2fHwiIikuc3Vic3RyKDAsMil8fHgucHVzaChhLmlkKSx4fSxbXSk7aWYoIWEubGVuZ3RoKXJldHVybiBkLnJlc29sdmUoeCk7dmFyIGM9Y3cubGliLmEybyhhKTtyZXR1cm4gYihpLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWNbeC5faWRdfSkpLnRoZW4oZnVuY3Rpb24oeCl7ZC5yZXNvbHZlKHgpfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtkLnJlamVjdCh4LGEsYil9KX0uZGVib3VuY2UoMWUzKSgpLGQucHJvbWlzZSgpfSkpLG0ubGVuZ3RoJiYobC5sZW5ndGg/YS50aGVuOmZ1bmN0aW9uKHgpe2E9eCgpfSkoZnVuY3Rpb24oKXt2YXIgeD0kLkRlZmVycmVkKCksYT1tLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gYy5SZXEoe3VybDpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh4KX0pfSk7cmV0dXJuIFEuYWxsU2V0dGxlZChhKS50aGVuKGZ1bmN0aW9uKGEpe3gucmVzb2x2ZSgpfSxmdW5jdGlvbigpe3gucmVzb2x2ZSgpfSkseC5wcm9taXNlKCl9KSxhLnRoZW4oZnVuY3Rpb24oKXtjdy5saWIubm90ZShlW3g/Ik1TR19UQVNLX1NUT1AiOiJNU0dfVEFTS19SRVNZTkNfT0siXSwib2siKSwkLm15LnJhZGlvKCJkYmxpc3QiLFtoXSkseHx8JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpoLGNtZDoid3JpdGUiLGRvY3M6aS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguX2lkfSl9KSxmLnJlc29sdmUoaSl9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtjdy5saWIubm90ZShlW3g/IkVSUl9UQVNLX1NUT1AiOiJFUlJfVEFTS19SRVNZTkMiXS5hc3NpZ24oYSsiOiAiK2IpLCJlcnJvciIpLGNvbnNvbGUubG9nKGEsYixjLCJVbnNhdmVkIHRhc2tzOiIsaSksZi5yZWplY3QoYSxiLGMpfSl9fSxUVGFzazpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGEsYj0nPGRpdiBjbGFzcz0iY2ItdGFzay1yb3cgZGliIHZhdCBmczkwIj57MX08L2Rpdj4nO3JldHVybiBiPSgiRXJyb3IiIT14LnBpZHx8eC5kb2NfaWQpJiZ4LnJlcGxpY2F0aW9uX2lkP2IuYXNzaWduKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InRhc2stc2VsZWN0aW9uIiBjbGFzcz0iY3Agcm93LXNlbCBtbDIiIHZhbHVlPSJ7cmVwbGljYXRpb25faWR9IiAnKyh4Ll9zZWxlY3RlZD8iY2hlY2tlZD4iOiI+IikpOmIuYXNzaWduKCImbmJzcDsiKSwoImdyb3VwIiE9eC5fdHlwZT9bJzxkaXYgY2xhc3M9InZpZXctcm93IHBsMjcgcHI4Ij4nLGIsJzxkaXYgY2xhc3M9InRhc2tsYWJlbCBjcCBkaWIgdzIwcCBlbGwgZnM5NSBwdDEgZ3JheSB2YXQiIHRpdGxlPSJ7X3BpZHNhZmV9Ij57X3BpZH08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkaWIgdzcwcCBlbGwgcHIxMCB2YXQiPntfdHlwZX0ge19kZXNjfTwvZGl2PicsIkRvbmUiPT14LnBpZD9bJzxkaXYgY2xhc3M9ImRpYiB3MTBwIHZhdCB0YXIgZ3JheSBmczkwIj4nLCc8ZGl2IGNsYXNzPSJidG4tZG9uZS1yZXN0YXJ0IHAwIGRpYiB2YXQgdGFjIGJnLWdyYXk2IGdyYXkxIGJyMiBjcCIgJywnZGF0YS1pZD0ie3JlcGxpY2F0aW9uX2lkfSIgc3R5bGU9Im1pbi13aWR0aDo2MCUiIHRpdGxlPSJSZXN0YXJ0IHN5bmMiPicsJzxzcGFuIGNsYXNzPSJmaS1wbGF5Ij48L3NwYW4+JywiPC9kaXY+PC9kaXY+Il0uam9pbigiIik6Wyc8ZGl2IGNsYXNzPSJkaWIgdzEwcCB2YXQgdGFyIGdyYXkgcHQxIGZzOTAiPntfcHJvZ3Jlc3N9PC9kaXY+J10uam9pbigiIiksIjwvZGl2PiJdLmpvaW4oIiIpOlsnPGRpdiBjbGFzcz0idmlldy1yb3cgcGwyNyBwcjgiPicsYiwnPGRpdiBjbGFzcz0iZGliIHc4MHAgZWxsIHByMTAgdmF0IG84MCB0YXNrLWZvbGRncm91cCBjcCIgJywnZGF0YS1ncm91cD0ieycrKHgucmVwbGljYXRpb25faWQ/InJlcGxpY2F0aW9uX2lkIjoiX2dyb3VwIikrJ30iPicsJzxzcGFuIGNsYXNzPSJib2xkZXIiPntfZGVzY308L3NwYW4+JywnPHNwYW4gY2xhc3M9IicrKGEudGFzay5mb2xkW3gucGhvdG9uX3Rhc2tdPyJhcmlnaHQiOiJhZG93biIpKyciPjwvc3Bhbj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdzIwcCB2YXQgdGFyIGdyYXkgYm9sZGVyIGZzOTAiPntfcHJvZ3Jlc3N9PC9kaXY+JywiPC9kaXY+Il0uam9pbigiIikpLmFzc2lnbih4KX0scGFyYW1zOntzdHJpY3Q6ITB9fSwkbG9nOntpZDoiY3cuUGhvdG9uLiRsb2ciLGxhbmc6e30sZGF0YTp7c3JjOiJjb3VjaCIsc2VhcmNoOiIiLHNpemU6IjEwIixvZmZzZXQ6IjAiLGxpbmVzOiIiLGRpcjoicmV2ZXJzZSJ9LFByZXY6W10saGFzaDpmdW5jdGlvbigpe3JldHVybiJsb2cifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJMb2dzIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfbG9nIiE9eFswXT9udWxsOnt0aXRsZToiTG9ncyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuICQuZXh0ZW5kKGIsYS5QaG8oIkxzIikoIkxvZ3MiKXx8e30pLGEuUHJldj1bYi5zaXplLGIub2Zmc2V0XSxhLkdldCghMSwhMCkudGhlbihmdW5jdGlvbihiKXt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSxhLm5pY2VTY3JvbGwoeC5maW5kKCIjcmVwb3J0IikpfSl9LHVpOnsiI2xzaXplIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5zaXplPWlzTmFOKGEpfHwhYT8iMTAiOigwfCthKS5jbGFtcCgxLDUwMCkrIiIsdGhpcy5teS5maW5kKCIjbG9mZnNldCIpLmF0dHIoInN0ZXAiLHguc2l6ZSkpLHguc2l6ZX19LCIjbG9mZnNldCI6Im9mZnNldCIsIiNsb2ctc2VhcmNoIjp7ZGVsYXk6MTUwLGJpbmQ6InNlYXJjaCIsY3NzOnsibXktc2VhcmNoIjovXi57Mix9JC99fSwiI2xvZ2RpciI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfRElSKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5kaXI9YSsiIikseC5kaXJ9fSwiI2xvZy1wcm94eSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztbeC5zaXplLHgub2Zmc2V0LHguZGlyXSsiIiE9Yi5QcmV2KyIiJiZiLkdldCgpLnRoZW4oZnVuY3Rpb24oKXtiLm15LnJlY2FsYygiI2xvZ3MiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2IuUHJldj1beC5zaXplLHgub2Zmc2V0LHguZGlyXSxiLlBobygiTHMiKSgiTG9ncyIse3NpemU6eC5zaXplfSl9KX0sd2F0Y2g6WyIjbHNpemUiLCIjbG9mZnNldCIsIiNsb2dkaXIiXX0sIiNsb2dzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiO3JldHVybiB4LnNlYXJjaC5sZW5ndGg+MT8oYj1uZXcgUmVnRXhwKCIoIitSZWdFeHAuZXNjYXBlKHguc2VhcmNoKSsiKSIsImkiKSx4LmxpbmVzLmxpbmVzKCkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIlsiIT1hWzBdJiZ4Lmxlbmd0aD94W3gubGVuZ3RoLTFdKz0iXG4iK2E6eC5wdXNoKGEpLHh9LFtdKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGIudGVzdCh4KX0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsYWNlKGIsIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJsb2ctZm91bmQiPicpLnJlcGxhY2UoIu+/sCIsIjwvc3Bhbj4iKX0pLmpvaW4oIlxuIikpOngubGluZXMuZXNjYXBlSFRNTCgpfSx3YXRjaDpbIiNsb2ctc2VhcmNoIl19LCIjYnRuLXJlbG9hZCI6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuR2V0KCkudGhlbihmdW5jdGlvbigpe2IubXkucmVjYWxjKCIjbG9ncyIpfSl9fSwiI2J0bi1sb2ctbWludXMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHgub2Zmc2V0PSgreC5vZmZzZXQtK3guc2l6ZSkuY2xhbXAoMCwxZTEwKSsiIil9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuISt4Lm9mZnNldH19LHdhdGNoOiIjbG9mZnNldCIscmVjYWxjOiIjbG9mZnNldCJ9LCIjYnRuLWxvZy1wbHVzIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih4Lm9mZnNldD0oK3gub2Zmc2V0KyAreC5zaXplKS5jbGFtcCgwLDFlMTApKyIiKX0sd2F0Y2g6IiNsb2Zmc2V0IixyZWNhbGM6IiNsb2Zmc2V0In19LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNyZXBvcnQiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LEhUTUw6JzxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcGwyMCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciB3MTUwIGZzOTUiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgeGdyYXkgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibG9nLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IHZhdCIgdGl0bGU9IntQTENfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTUwIGxoMTMwIHhncmF5IG1yMzAgZGliIHZhdCI+e1RYVF9USVRMRX08L3NwYW4+IDxkaXYgY2xhc3M9ImRpYiB2YXQiPjxzcGFuPntUWFRfU0laRX08L3NwYW4+IDxpbnB1dCBpZD0ibHNpemUiIHR5cGU9Im51bWJlciIgY2xhc3M9Inc3MCIgbWluPSIxIiBtYXg9IjUwMCIgc3RlcD0iMSI+IDxzcGFuPntUWFRfS0J9LCB7VFhUX09GRlNFVH08L3NwYW4+IDxpbnB1dCBpZD0ibG9mZnNldCIgdHlwZT0ibnVtYmVyIiBjbGFzcz0idzEwMCIgbWluPSIwIiBtYXg9IjEwMDAwMDAiIHN0ZXA9IjEwIj4gPHNwYW4+e1RYVF9LQn08L3NwYW4+IDwvZGl2PjxzcGFuIGNsYXNzPSJidXR0b25zIG1sMTAiPjxidXR0b24gaWQ9ImJ0bi1sb2ctbWludXMiIGNsYXNzPSJ3NDAgbXIyIHBsMCBwcjAiPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1sZWZ0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1sb2ctcGx1cyIgY2xhc3M9Inc0MCBtcjIgcGwwIHByMCI+PHNwYW4gY2xhc3M9ImZpLWFycm93LXJpZ2h0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjwvc3Bhbj48c3BhbiBpZD0ibG9nZGlyIiBjbGFzcz0ibWwyMCI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBhbmVsaGVpZ2h0LTQgZmVhdGhlciBtdDQiPjxkaXYgaWQ9InJlcG9ydCIgY2xhc3M9InBsMjAgcHIyMCBwYW5lbGhlaWdodC00IHByZSI+PGRpdiBpZD0ibG9ncyIgY2xhc3M9ImZzOTAgbGgxNDAgcGIxMiBwdDgiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxvZy1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2Picsc3R5bGU6eyIgcHJlIjoid2hpdGUtc3BhY2U6IHByZS13cmFwOyIsIiAubG9nLWZvdW5kIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzIsMTIxLDAuOTQpO2JvcmRlci1yYWRpdXM6MnB4OyJ9LEdldDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0xMDI0KnguZGF0YS5zaXplLGI9MTAyNCooeC5kYXRhLm9mZnNldHx8MCksYz1bIl9sb2ciLHtieXRlczphfSxiP3tvZmZzZXQ6Yn06bnVsbF0uY29tcGFjdCgpO3JldHVybiB4LlJlcSh7dXJsOmMsZGF0YVR5cGU6InRleHQifSkudGhlbihmdW5jdGlvbihhKXt2YXIgYj1hLmxpbmVzKCkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIlsiIT1hWzBdJiZ4Lmxlbmd0aD94W3gubGVuZ3RoLTFdKz0iXG4iK2E6eC5wdXNoKGEpLHh9LFtdKTsicmV2ZXJzZSI9PXguZGF0YS5kaXImJihiPWIucmV2ZXJzZSgpKSx4LmRhdGEubGluZXM9Yi5qb2luKCJcbiIpfSl9LHBhcmFtczp7c3RyaWN0OiEwfX0sJGRpZmY6e2lkOiJjdy5QaG90b24uJGRpZmYiLGxhbmc6e30scmVxdWlyZTpbeyJ3aW5kb3cuanNvbmRpZmZwYXRjaCI6ImxpYi9kaWZmLmpzIn1dLHBhcmFtczp7cmVzdHlsZToxMDAsc3RyaWN0OiEwfSxkYXRhOntpZDoiIixyZXY6WyIiLCIiXSxza2lwOlsiX3JldiIsImxvZyJdLGRvYzp7fSxjb25mbGljdHM6W10scmV2czpbXSxwYXJhbXM6W10sanNvbjpbe30se31dfSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuImRpZmYifSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YSxhPSJEaWZmICIrdGhpcy5kYXRhLmlkO3JldHVybiB4LnJldlswXSE9eC5yZXZbMV0mJihhKz0iLCB7MX1+ezJ9Ii5hc3NpZ24oeC5yZXZbMF0/eC5yZXZbMF0uc3BsaXQoIi0iKVswXToibGFzdCIseC5yZXZbMV0/eC5yZXZbMV0uc3BsaXQoIi0iKVswXToibGFzdCIpKSxhfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKCEoeC5sZW5ndGg8MykmJmEmJiJfZGlmZiI9PXhbMV0pcmV0dXJuIl9kZXNpZ24iPT14WzJdJiZ4WzNdJiYoeFszXT14WzJdKyIvIit4WzNdLHgucmVtb3ZlQXQoMikpLHt0aXRsZToiRGlmZiAiK3RoaXMudHJ1bmMoeFsyXSwyMCksYXBwRGF0YTp7aWQ6eFsyXSxyZXY6Wyh4WzNdfHwiIikucmVwbGFjZSgvXlxEKy8sIiIpLCh4WzRdfHwiIikucmVwbGFjZSgvXlxEKy8sIiIpXSxwYXRoOnh9fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3RyeXthLkRpZmY9anNvbmRpZmZwYXRjaC5jcmVhdGUoe29iamVjdEhhc2g6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNBcnJheSh4KSYmT2JqZWN0LmlzTnVtYmVyKHhbMF0pKXJldHVybiB4WzBdKyIiO2lmKE9iamVjdC5pc09iamVjdCh4KSl7aWYodm9pZCAwIT09eC5faWQpcmV0dXJuIHguX2lkKyIiO2lmKHZvaWQgMCE9PXguaWQpcmV0dXJuIHguaWQrIiI7aWYodm9pZCAwIT09eC5uYW1lKXJldHVybiB4Lm5hbWUrIiJ9cmV0dXJuIiQkaW5kZXg6IithfX0pfWNhdGNoKHgpe31yZXR1cm4gYi5wYXRoLmxlbmd0aD4zJiYoYi5yZXZbMF09KGIucGF0aFszXXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKSxiLnJldlsxXT0oYi5wYXRoWzRdfHwiIikucmVwbGFjZSgvXlxEKy8sIiIpKSx4LnRoZW4oZnVuY3Rpb24oYil7YS5uaWNlU2Nyb2xsKHguZmluZCgiI2RpZmYiKSl9KSxhLkdldERvYygpLnRoZW4oZnVuY3Rpb24oKXt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0pfSxSZXZzTGlzdDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5kYXRhO3guUGhvKCIkZG9jIikuUmV2c0xpc3QuY2FsbCh4LCIjZG9jLXJldjAiKSx4LlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoeCwiI2RvYy1yZXYxIil9LEdldFJldnM6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9W107cmV0dXJuIGEucmV2WzBdP2EuanNvblswXS5fcmV2JiZhLnJldlswXT09YS5qc29uWzBdLl9yZXZ8fGIucHVzaCh4LlJlcSh7dXJsOlthLnBhdGhbMF0sYS5pZCx7cmV2OmEucmV2WzBdfV19KS50aGVuKGZ1bmN0aW9uKHgpe2EuanNvblswXT14fSkpOmEuanNvblswXT0kLmV4dGVuZCghMCx7fSxhLmRvYyksYS5yZXZbMV0/YS5qc29uWzFdLl9yZXYmJmEucmV2WzFdPT1hLmpzb25bMV0uX3Jldnx8Yi5wdXNoKHguUmVxKHt1cmw6W2EucGF0aFswXSxhLmlkLHtyZXY6YS5yZXZbMV19XX0pLnRoZW4oZnVuY3Rpb24oeCl7YS5qc29uWzFdPXh9KSk6YS5qc29uWzFdPSQuZXh0ZW5kKCEwLHt9LGEuZG9jKSxRLmFsbFNldHRsZWQoYil9LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNkaWZmIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSx1aTp7IiNkb2MtaWQiOntiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMucDJ1LGI9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0iIHRpdGxlPSJ7M30iPnsyfTwvYT4nLmFzc2lnbihhKHgucGF0aFswXSksdGhpcy50cnVuYyh4LnBhdGhbMF0sMTUpLmVzY2FwZUhUTUwoKSx4LnBhdGhbMF0uZXNjYXBlSFRNTCgpKSxjPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oYSh4LnBhdGhbMF0pKyIvIithKHguaWQpKyh4LnJldlswXT8iL18iK3gucmV2WzBdOiIiKSx0aGlzLnRydW5jKHguaWQsMTUwKS5lc2NhcGVIVE1MKCkseC5pZC5lc2NhcGVIVE1MKCkpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTUwIGxoMTMwIHhncmF5IG10LTEgbzgwIj4nLCc8c3BhbiBjbGFzcz0ibzkwIj5EaWZmIDwvc3Bhbj4nLCc8c3BhbiBjbGFzcz0ibzgwIj57MX08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnsyfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGIsYyl9LHdhdGNoOlsiI2RvYy1yZXYwIl19LCIjcHJvcC1oaWRlIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2Euc2VsZWN0Mih4LHttdWx0aXBsZTohMCx0YWdzOlsiX3JldiIsImxvZyJdLHBsYWNlaG9sZGVyOmEubGFuZy5QTENfQkFOfSl9LGJpbmQ6InNraXAifSwiI2RvYy1yZXYwIjp7YmluZDoicmV2LjAiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoYSwiI2RvYy1yZXYwIil9fSwiI2RvYy1yZXYxIjp7YmluZDoicmV2LjEiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoYSwiI2RvYy1yZXYxIil9fSwnaW5wdXRbbmFtZT0ic2V0dGluZ3MiXSc6InBhcmFtcyIsIiNkaWZmIjp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGEsYixjLGQ9dGhpcyxlPXguanNvbixmPXguc2tpcC5zbGljZSgwKS5jb25jYXQoWyJfY29uZmxpY3RzIiwiX3JldnNfaW5mbyJdKTtyZXR1cm4iIj09eC5yZXZbMF0mJiIiPT14LnJldlsxXXx8eC5yZXZbMF09PXgucmV2WzFdPyc8ZGl2IGNsYXNzPSJ0YWMgcDUwIGZzMTUwIG9yYW5nZSI+ezF9PC9kaXY+Jy5hc3NpZ24oZC5sYW5nLlRYVF9TRUxFQ1QpOihiPU9iamVjdC5yZWplY3QoZVswXSxmKSxjPU9iamVjdC5yZWplY3QoZVsxXSxmKSxudWxsPT0oYT1kLkRpZmYuZGlmZihiLGMpKT8nPGRpdiBjbGFzcz0idGFjIHA1MCBmczEyMCBncmVlbiI+ezF9PC9kaXY+Jy5hc3NpZ24oZC5sYW5nLlRYVF9OT0RJRkYpOigtMT09eC5wYXJhbXMuaW5kZXhPZigidW5jaGFuZ2VkIik/anNvbmRpZmZwYXRjaC5mb3JtYXR0ZXJzLmh0bWwuaGlkZVVuY2hhbmdlZCgpOmpzb25kaWZmcGF0Y2guZm9ybWF0dGVycy5odG1sLnNob3dVbmNoYW5nZWQoKSxqc29uZGlmZnBhdGNoLmZvcm1hdHRlcnMuaHRtbC5mb3JtYXQoYSxiKSkpfSx3YXRjaDpbJ2lucHV0W25hbWU9InNldHRpbmdzIl0nLCIjcHJvcC1oaWRlIl19LCIjZGlmZi1wcm94eSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7KCIiIT14LnJldlswXXx8IiIhPXgucmV2WzFdfHx4Lmpzb25bMF0uX3JldikmJmEuR2V0UmV2cygpLnRoZW4oZnVuY3Rpb24oKXthLm15LmNoZWNrKCIjZGlmZiIpfSk7eC5wYXRoLnNsaWNlKDApO3gucGF0aFszXT09Il8iK3gucmV2WzBdJiZ4LnBhdGhbNF09PSJfIit4LnJldlsxXXx8KHgucGF0aFszXT0iXyIreC5yZXZbMF0seC5wYXRoWzRdPSJfIit4LnJldlsxXSwkLm15LnJhZGlvKCJwYXRoY2hhbmdlIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aCx0aXRsZTphLnRpdGxlKCl9KSl9LHdhdGNoOlsiI2RvYy1yZXYwIiwiI2RvYy1yZXYxIl19fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIxMCBsaDE2MCI+PGRpdiBpZD0iZG9jLWlkIiBjbGFzcz0iZGliIHZhdCBudyBvaCBlbGwgbXIxMCI+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCB3MTkwIG1yIj48aW5wdXQgaWQ9ImRvYy1yZXYwIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48ZGl2IGNsYXNzPSJkaWIgdmF0IG84MCB0YWMgdzMwIHB0MSI+dnM8L2Rpdj48ZGl2IGNsYXNzPSJkaWIgdmF0IHcxOTAiPjxpbnB1dCBpZD0iZG9jLXJldjEiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9ImZyIj48ZGl2IGNsYXNzPSJkaWIgdmF0IHcyNTAgbWwxMCBtcjgiPjxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwIHByNyB0YXIgcHQxIj57VFhUX0JBTn08L2Rpdj48ZGl2IGNsYXNzPSJ3MjAwIGRpYiB2YXQgZnM5MCI+PGlucHV0IGlkPSJwcm9wLWhpZGUiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjwvZGl2PjxsYWJlbCBjbGFzcz0idzEyMCBkaWIgdmF0IHB0MSBsaDEyMCIgc3R5bGU9ImNvbG9yOmluaGVyaXQ7Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNldHRpbmdzIiB2YWx1ZT0idW5jaGFuZ2VkIiBjbGFzcz0iZnMxMDUiLz48c3BhbiBjbGFzcz0iZGliIHZhdCBwdDEgcGw3Ij57TEJMX1NSQ308L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1wYW5lbHMiIGNsYXNzPSJ3MTAwcCBwYW5lbGhlaWdodCBmZWF0aGVyIHBsMjAiPjxkaXYgaWQ9ImRpZmYiIGNsYXNzPSJqc29uZGlmZiB3MTAwcCBwYW5lbGhlaWdodCBwcjIwIHB0MTAgcGIxNiBsaDEzMCI+PC9kaXY+PC9zZWN0aW9uPjxkaXYgaWQ9ImRpZmYtcHJveHkiPjwvZGl2Picsc3R5bGU6eyIgI2RvYy1pZCI6Im1heC13aWR0aDpjYWxjKDEwMCUgLSA4MTBweCk7IG1pbi13aWR0aDoxNTBweDsiLCIgcHJlIjp7IiI6ImZvbnQtc2l6ZTppbmhlcml0OyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBhdXRvOyB3b3JkLWJyZWFrOmF1dG87IiwiICI6ZnVuY3Rpb24oeCl7cmV0dXJuIm1heC13aWR0aDp7MX1weDsiLmFzc2lnbih4LndpZHRoKCktMjIwKX19LCIgLmpzb25kaWZmcGF0Y2gtZGVsdGEiOiJwYWRkaW5nLWxlZnQ6MDsgZm9udC1zaXplOmluaGVyaXQ7In0sR2V0RG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYyxkPXRoaXMsZT1kLmRhdGEsZj17Y29uZmxpY3RzOiEwLHJldnNfaW5mbzohMH07cmV0dXJuIGQuQnVzeS5kZWJvdW5jZSgyMCkoITApLGI9W2UucGF0aFswXSxlLmlkLGZdLChjPWQuUmVxKGIpLnRoZW4oZnVuY3Rpb24oYil7ZS5kb2M9YixnKGUuZG9jKSxhJiZkLlJldnNMaXN0KCksZC5teS50cmlnZ2VyKCIjc3RhdGUtcHJveHkiLCJyZXNldHRhYmhhc2gubXkiKSx4JiZkLm15LnJlZHJhdygpfSkpLmFsd2F5cyhmdW5jdGlvbigpe2QuQnVzeSghMSl9LmRlYm91bmNlKDUwKSksYztmdW5jdGlvbiBnKHgpe09iamVjdC5pc0FycmF5KHguX3JldnNfaW5mbykmJih4Ll9yZXZzX2luZm89eC5fcmV2c19pbmZvLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4iYXZhaWxhYmxlIj09eC5zdGF0dXN9KSksZS5jb25mbGljdHM9eC5fY29uZmxpY3RzfHxbXSxlLnJldnM9KHguX3JldnNfaW5mb3x8W10pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXZ9KX19fSwkc3RhdHM6e2lkOiJjdy5Db3VjaC5Nb25pdG9yIixDb25maWc6e3N0YXRzTWF4VGltZWZyYW1lOjE4MDAsc2VyaWVNYXhMZW5ndGg6NGUzfSxkYXRhOntwcmVzZXRNb3VudGVkOiExLGRvYzp7bmFtZToiU3RhdHMifX0saGFzaDpmdW5jdGlvbigpe3JldHVybiJfc3RhdHMifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJTdGF0cyJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGF8fDEhPXgubGVuZ3RofHwiX3N0YXRzIiE9eFswXT9udWxsOnt0aXRsZToiU3RhdHMifX0sdWk6eyIjbm9kZXMiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sbGlzdGVuOntwaG90b25fY2ZnX2NoYW5nZTpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5DZmcoKS5zdGF0c1JlZnJlc2ghPXguUGhvKCJDZmciKS5zdGF0c1JlZnJlc2gmJih4LkNmZygpLnN0YXRzUmVmcmVzaD14LlBobygiQ2ZnIikuc3RhdHNSZWZyZXNoLCQubXkucmFkaW8oImNvdWNoX21vbml0b3JfY2ZnX2NoYW5nZSIsT2JqZWN0LmNsb25lKHguQ2ZnKCkpKSl9LHVzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSwiI2VuY3J5cHQiOntpbml0OmZ1bmN0aW9uKCl7fSxiaW5kOiJkdW1teSJ9LCIjbW5hbWUiOntiaW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ob3N0fSxjc3M6eyJib2xkZXIgZnMxODAiOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGZzMTcwOmZ1bmN0aW9uKCl7cmV0dXJuITB9fX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLlRpbWVyLmNhbmNlbCgpO3ZhciBhPXguZmluZCgiI25vZGVzIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxzdHlsZTp7IiAubm9jd21pbiI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICNhcHAtc2VhcmNoIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsiLCIgI25vZGUtdGlsZXMiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LndpZHRoKCksYz0oYS5QaG8oIk1lbWJlcnNoaXAiKS5jbHVzdGVyX25vZGVzfHxbMV0pLmxlbmd0aCxkPSIiO3JldHVybiEhYS5kYXRhLnByZXNldE1vdW50ZWQmJih4LmZpbmQoImRpdiNwcmltZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnRyaWdnZXIoInJlY2FsYyIsITApfSkseC5maW5kKCJkaXYjeWF4aXMiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJyZWNhbGMiKX0pKSxhLkNmZygpLnN0YXRzU2NhbGVZPWM+KGI8PTE0MDA/Mjo0KT8xLjE6MS41LChjPjN8fGM+MSYmYj4xNDAwKSYmKGQ9eyIgLm5ub2RlIjoid2lkdGg6Y2FsYyg1MCUgLSAxNnB4KTsgZGlzcGxheTppbmxpbmUtYmxvY2s7In0pLGR9fSxBdXRvU2F2ZU5vZGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuTHMsYz0kLmV4dGVuZCghMCx7fSx4KSxkPWEuQ2ZnKCkuc2VyaWVNYXhMZW5ndGg7ZnVuY3Rpb24gZSh4KXtyZXR1cm4geC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIDA9PXg/IiI6eC50b1N0cmluZygzNil9KS5qb2luKCIgIil9YS5QaG8oIl9jb21waWxlZCIpJiYoWyJnYXVnZXMiLCJzZXJpZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWNbeF07YSYmYS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gucm93cz14LnJvd3MubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRvKGQpfSkubWFwKGUpLHgudGltZT1lKHgudGltZS50byh4LnJvd3MubGVuZ3RoPjE/ZDoxMCkpfSl9KSxiKCJTdGF0cy5ub2RlLiIrYy5uYW1lLE9iamVjdC5yZWplY3QoYyxbInVybCIsImNvdWNoIiwibmFtZXMiLCJjb2xvcnMiLCJ1bml0cyJdKSkpfSxNb3VudDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9KHh8fGEubXkucm9vdCgpKS53aWR0aCgpLGQ9ISFiLnByZXNldE1vdW50ZWQsZT1hLlBobygiQ291Y2giKS52ZXIsZj1hLmRlZmF1bHROb2Rlc1tlPj0iMDAyLiI/IjIueCI6IjEueCJdO2lmKE1hdGgubG9nMTA9TWF0aC5sb2cxMHx8ZnVuY3Rpb24oeCl7cmV0dXJuIE1hdGgubG9nKHgpKk1hdGguTE9HMTBFfSwhZCl7aWYoYS5DZmcoKS5zdGF0c1JlZnJlc2g9YS5QaG8oIkNmZyIpLnN0YXRzUmVmcmVzaCxlPj0iMDAyLiIpe2IuZG9jLm5vZGVzPShhLlBobygiTWVtYmVyc2hpcCIpLmNsdXN0ZXJfbm9kZXN8fFtdKS5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9T2JqZWN0LmNsb25lKGYsITApO3JldHVybiBhLm5hbWU9eCxhLnVybD0iL19ub2RlL3sxfS8iLmFzc2lnbihlbmNvZGVVUklDb21wb25lbnQoeCkpLGF9KTt2YXIgZz1iLmRvYy5ub2Rlcy5sZW5ndGg7YS5DZmcoKS5zdGF0c1NjYWxlWT1nPihjPD0xNDAwPzI6NCk/MS4xOjEuNX1lbHNlIGIuZG9jLm5vZGVzPVskLmV4dGVuZCghMCx7fSxmKV0sYS5DZmcoKS5zdGF0c1NjYWxlWT0xLjU7YS5Mcz1hLlBobygiTHMiKTt2YXIgaD1hLkNmZygpLnNlcmllTWF4TGVuZ3RoPTRlMy9iLmRvYy5ub2Rlcy5sZW5ndGh8MDthLlBobygiX2NvbXBpbGVkIikmJmIuZG9jLm5vZGVzLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9YS5McygiU3RhdHMubm9kZS4iK3gubmFtZSk7YiYmKFsiZ2F1Z2VzIiwic2VyaWVzIl0uZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT1iW3hdO2EmJmEuZm9yRWFjaChmdW5jdGlvbih4KXt4LnRpbWU9aSh4LnRpbWUpLnRvKGgpLHgucm93cz14LnJvd3MubWFwKGkpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50byhoKX0pfSl9KSwkLmV4dGVuZCghMCx4LGIpKX0pLGIucHJlc2V0TW91bnRlZD0hMH1yZXR1cm4gYi5kb2Mubm9kZXM7ZnVuY3Rpb24gaSh4KXtyZXR1cm4geC5zcGxpdCgiICIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gcGFyc2VJbnQoeHx8IjAiLDM2KX0pfX0scGFyYW1zOntzdHJpY3Q6ITB9fSxUYWI6e2lkOiJjdy5QaG90b24uVGFiIixsYW5nOnt9LGRhdGE6e2lkOiIiLG5hbWU6IiIsdHlwZToiIixoYXNoMDoiIixoYXNoMToiIixhY3RpdmU6ITEscGF0aDpbXSxlcnJvcjohMSxydW46ITF9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sdWk6eyIjbC10YWJuYW1lIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztyZXR1cm4gYy5teS5maW5kKCJhI2wtdGFibmFtZSIpLmF0dHIoImhyZWYiLCIjIitjLnAydSh4LnBhdGh8fFtdKS5qb2luKCIvIikpLmF0dHIoInRpdGxlIix4LnBhdGguam9pbigiLyIpKS50b2dnbGVDbGFzcygic3lzdGVtIiwheC5wYXRoWzBdfHwvXihfYWJvdXR8X3N0YXRzfF9jb25maWd8X2xvZykkLy50ZXN0KHgucGF0aFswXSkpLGMubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJhY3RpdmUiLCEheC5hY3RpdmUpLHgubmFtZS5lc2NhcGVIVE1MKCl9LGNzczp7c21hbGxlcjpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lLmxlbmd0aD4yMH19LGV2ZW50czoiY2xpY2subXkifSwiI2wtdGFic3RhdGUiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZXJyb3ImJnguaGFzaDA9PXguaGFzaDF9LHJlZDpmdW5jdGlvbih4KXtyZXR1cm4hIXguZXJyb3J9fSx3YXRjaDoiI2wtdGFibmFtZSJ9LCIjYnRuLXRhYmNsb3NlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2J0bi10YWJjbG9zZSIsInRhYmNsb3NlIix4LmlkKX0sZXZlbnRzOiJjbGljay5teSJ9LCIjdGFiLXByb3h5Ijp7YmluZDpmdW5jdGlvbigpe30sbGlzdGVuOnthcHBidXN5OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiZhLmlkPT14LmlkJiZ0aGlzLm15LnJvb3QoKS50b2dnbGVDbGFzcygidGFiLWJ1c3kiLCEhYS5idXN5KX0scGF0aGNoYW5nZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSl7dmFyIGI9dGhpcyxjPWEucGF0aC5zbGljZSgwKTtpZihhLmlkIT14LmlkKXtpZihjLmpvaW4oIu+/vSIpIT14LnBhdGguam9pbigi77+9IikpcmV0dXJuO3guaGFzaDA9PXguaGFzaDEmJmIuUGhvKCJDbG9zZSIpKHt0YWJpZDp4LmlkLGVuZm9yY2U6ITB9KX1lbHNlIHgucGF0aD1jLHgubmFtZT1hLnRpdGxlfHx4Lm5hbWUsYi5QaG8oIl9jb21waWxlZCIpJiZ4LmFjdGl2ZSYmd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoIiMiK2IucDJ1KGMpLmpvaW4oIi8iKSksYi5teS5jaGVjaygiI2wtdGFibmFtZSIpfX0scmVsb2FkOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpJiZhLmlkPT14LmlkKXt2YXIgYj10aGlzLGM9YS5wYXRoLnNsaWNlKDApLGQ9JCgiI2wtYXBwcz4jYXBwLSIrYS5pZCk7ZC5sZW5ndGgmJmQuaXMoIi5teS1mb3JtIikmJihkLm15KCJyZW1vdmUiKSxkLnJlbW92ZSgpLHgucnVuPSExLHguZXJyb3I9ITEseC5oYXNoMD14Lmhhc2gxPSIiLHguYWN0aXZlJiZiLlBobygiU3dpdGNoIikoYykpfX19fX0sSFRNTDonPGEgaHJlZj0iIiBpZD0ibC10YWJuYW1lIiBvbmF1eGNsaWNrPSIkKHRoaXMpLnBhcmVudCgpLmZpbmQoXCcjYnRuLXRhYmNsb3NlXCcpLmNsaWNrKCk7cmV0dXJuIGZhbHNlOyI+PC9hPjxkaXYgaWQ9ImwtdGFic3RhdGUiIGNsYXNzPSJsLXRhYm1hcmsiPuKAojwvZGl2PjxkaXYgaWQ9ImJ0bi10YWJjbG9zZSIgY2xhc3M9ImwtdGFibWFyayIgdGl0bGU9IntCVE5fQ0xPU0VUQUJ9Ij7inJU8L2Rpdj48ZGl2IGlkPSJ0YWItcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHBhcmFtczp7c3RyaWN0OiEwfX0sQ29uZmlybTp7aWQ6ImN3LlBob3Rvbi5Db25maXJtIixwYXJhbXM6e2RlbGF5OjUsc3RyaWN0OiEwfSxkYXRhOntjbWQ6IiIsdGV4dDoiIixjc3M6InhncmF5Iix5ZXM6IlllcyIsbm86Ik5vIixjYW5jZWw6IkNhbmNlbCIseWVzY3NzOiJncmVlbiIsbm9jc3M6IiIsdXNlQnV0dG9uczohMX0saW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMuZGF0YTt4LmZvcm1nZW4oWyc8ZGl2IGNsYXNzPSInK2IuY3NzKyciPicrYi50ZXh0KyI8L2Rpdj4iLHtsYWJlbDoiNzBweCIscm93OmEucGFyYW1zLndpZHRoKyJweCIscm93Q3NzOiJteS1yb3cgbXQxNSBwdDE1IG1iLTUgeGdyYXkgYnRkIn0sWyIiLCJzcG4jYnRuLXllcy5idXR0b24uIisoYi55ZXNjc3M/Yi55ZXNjc3MrIi4iOiIiKSsibXI1ICAiLHt0eHQ6Yi55ZXMrIiJ9LCJzcG4jYnRuLW5vLmJ1dHRvbi4iKyhiLm5vY3NzP2Iubm9jc3MrIi4iOiIiKSsibXI1LmhpZGUiLHt0eHQ6Yi5ubysiIn0sInNwbiNidG4tY2FuY2VsLmJ1dHRvbi5mci5oaWRlIix7dHh0OmIuY2FuY2VsKyIifV0ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBiLnVzZUJ1dHRvbnMmJiJzdHJpbmciPT10eXBlb2YgeCYmeD94LnJlcGxhY2UoL15zcG4jKC4rKSQvLCJidXQjJDEubWFya2ZvY3VzIik6eH0pXSl9LHVpOnsiI2J0bi15ZXMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiYoeC5jbWQ9InllcyIsYi50cmlnZ2VyKCJjb21taXQiKSl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgueWVzfX19LCIjYnRuLW5vIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHguY21kPSJubyIsYi50cmlnZ2VyKCJjb21taXQiKSl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgubm99fX0sIiNidG4tY2FuY2VsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHguY21kPSJjYW5jZWwiLGIudHJpZ2dlcigiY2FuY2VsIikpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmNhbmNlbH19fX0sc3R5bGU6eyIiOiJmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MjJweDsifX0sSW5kZXhFZDp7aWQ6ImN3LlBob3Rvbi5JbmRleEVkIixpbmhlcml0OlsiUlQiXSxwYXJhbXM6e3Jlc3R5bGU6NTAsc3RyaWN0OiEwfSxsYW5nOnt9LHJlcXVpcmU6W3sid2luZG93LkNvZGVNaXJyb3IiOiJsaWIvY29kZW1pcnJvci5qcyJ9XSxIVE1MOic8ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE2MCBwdDIgeGdyYXkgbncgb2ggZWxsIHhwYW5lbCI+PGRpdiBjbGFzcz0iZnM5MCBmciBwdDEgdGFyIj48c3BhbiBpZD0idmlldy1taS1tb2RlIiBjbGFzcz0ibXQwIj48L3NwYW4+PHNwYW4gaWQ9ImJ0bi12aWV3LW1pLWNsb3NlIiBjbGFzcz0icHI5IHBsOCBtbDYgcHNldWRvbGluayB0ZG4iIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpOyIgdGl0bGU9IntCVE5fUEFORUxfQ0xPU0V9Ij7inJU8L3NwYW4+PC9kaXY+PGRpdiBpZD0idmlldy1taS1uYW1lIiBjbGFzcz0iYm9sZGVyIHBsOCBvaCBudyBlbGwiPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJ2aWV3LW1pLXByb3h5IiBjbGFzcz0iYmJzIHBsMSBwcjEiPjx0ZXh0YXJlYSBpZD0idmlldy1taS1lZCIgY2xhc3M9IncxMDBwIj48L3RleHRhcmVhPjwvc2VjdGlvbj48c2VjdGlvbiBpZD0idmlldy1lZC1idXR0b25zIiBjbGFzcz0ibncgcDgiIHN0eWxlPSIiPjxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tdmlldy1taS1yZXZlcnQiIGNsYXNzPSJvcmFuZ2UgaGlkZSIgdGl0bGU9IntUSVBfUkVWRVJUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUkVWRVJUfcKgPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWktZGVsIiBjbGFzcz0icmVkIGhpZGUgbWwyIiB0aXRsZT0ie1RJUF9ERUx9Ij48c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fREVMfTwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pLXJ1biIgY2xhc3M9Im1yMiBncmVlbiIgZGlzYWJsZWQgdGl0bGU9IntUSVBfUlVOfSI+PHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUlVOfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pLXNhdmVhcyIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfU0FWRUFTfSI+PHNwYW4gY2xhc3M9ImZpLXNhdmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fU0FWRUFTfTwvYnV0dG9uPjwvc2VjdGlvbj4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sZGF0YTp7ZGRvYzoiIixuYW1lOiIiLHR5cGU6ImluZGV4Iixtb2RlOlsiamF2YXNjcmlwdCJdLHRleHQ6IiIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6MCxyZXY6IiJ9LHVpOnsiI3ZpZXctbWktZWQiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEubW9kZSsiIjtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmIsbGluZU51bWJlcnM6ITEsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Impzb24iPT1iLGV4dHJhS2V5czp7IkN0cmwtUiI6ZnVuY3Rpb24oKXthLlNhdmVJbmRleCgpfSwiQ21kLVIiOmZ1bmN0aW9uKCl7YS5TYXZlSW5kZXgoKX19fSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj14Lm1vZGUrIiI7cmV0dXJuIG51bGwhPWEmJiJqc29uIiE9YiYmKHgudGV4dD1hKSwianNvbiI9PWI/SlNPTi5zdHJpbmdpZnkoeC5qc29uLG51bGwsIlx0Iik6eC50ZXh0fX0sIiN2aWV3LW1pLXByb3h5Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGRlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPU9iamVjdC5pc09iamVjdCxkPU9iamVjdC5pc0FycmF5LGU9eC50ZXh0LGY9bnVsbDt4LmVycm9ycz1bXSxudWxsIT0oZj1iLlJUKCJqc2V2YWwiKSgiKCIrZSsiKSIpKSYmYyhmKT9jKGYuaW5kZXgpJiZkKGYuaW5kZXguZmllbGRzKT9mLnR5cGUmJiJqc29uIiE9PWYudHlwZSYmeC5lcnJvcnMucHVzaChiLmxhbmcuRVJSX05PX1RZUEUpOnguZXJyb3JzLnB1c2goYi5sYW5nLkVSUl9OT19JTkRFWCk6eC5lcnJvcnMucHVzaChiLmxhbmcuRVJSX05PX0pTT04pLHguanNvbj14LmVycm9ycy5sZW5ndGg/e306Zn0sd2F0Y2g6WyIjdmlldy1taS1lZCJdLGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH19fSwiI3ZpZXctbWktbW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfTU9ERSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIHgubW9kZTt4Lm1vZGU9YTt2YXIgYz1iLm15LmZpbmQoIiN2aWV3LW1pLWVkIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7cmV0dXJuIGMuc2V0T3B0aW9uKCJtb2RlIixhKyIiKSxjLnNldE9wdGlvbigicmVhZE9ubHkiLCJqc29uIj09YSsiIiksYi5teS5yZWNhbGMoIiN2aWV3LW1pLWVkIiksYX19LCIjdmlldy1taS1uYW1lIjp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlJUKCJkYXRhIik7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD94LmVycm9yc1swXS5lc2NhcGVIVE1MKCk6eC5kZG9jLnNwbGl0KCIvIilbMV0/Yi5sYW5nLlRYVF9USVRMRS5hc3NpZ24oeC5uYW1lLmVzY2FwZUhUTUwoKSwnPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfS97Mn0iPl9kL3szfTwvYT4nLmFzc2lnbihjLnBhdGhbMF0seC5kZG9jLHguZGRvYy5mcm9tKDgpLmVzY2FwZUhUTUwoKSkpOiJEZWZhdWx0IE1hbmdvIGluZGV4In0sY3NzOntyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfSxib2xkZXI6ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PXguZXJyb3JzLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctbWktcHJveHkiXX0sIiNidG4tdmlldy1taS1jbG9zZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLlJUO2IoImRhdGEiKS5lZGl0b3I9ITEsYigic3Rhc2hWaWV3U3RhdGUiKSgpLGIoIm15IikuY2hlY2soIiNidG4tdmlld2NvZGUiKSxiKCJteSIpLnJlc3R5bGUuZGVsYXkoNTApfX19LCIjYnRuLXZpZXctbWktcnVuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0iX2lkeC8iK3guZGRvYy5mcm9tKDgpKyLvv70iK3gubmFtZSxkPWIuUlQoWyJWaSIsYywidmlldyJdKXx8e3NvdXJjZTpiLlJUKCJEZWZhdWx0TWFuZ29JZHgiKS50ZXh0fSxlPWIubGFuZyxmPSc8c3BhbiBjbGFzcz0iZmktcGxheSBmczk1IG82MCI+PC9zcGFuPsKgJyxnPXgudGV4dCE9KGQuc291cmNlfHwiIik7cmV0dXJuIG51bGwhPWEmJmcmJiJfZGVzaWduLyIhPXguZGRvYyYmYi5TYXZlSW5kZXgoKSxmK2UuQlROX1JVTn0sZGVsYXk6NTAsY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigiX2Rlc2lnbi8iPT14LmRkb2N8fHguZXJyb3JzLmxlbmd0aHx8eC5qc29uLmRkb2MmJnguanNvbi5kZG9jIT14LmRkb2MuZnJvbSg4KXx8eC5qc29uLm5hbWUmJnguanNvbi5uYW1lIT14Lm5hbWUpcmV0dXJuITA7dmFyIGE9dGhpcyxiPSJfaWR4LyIreC5kZG9jLmZyb20oOCkrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7c291cmNlOmEuUlQoIkRlZmF1bHRNYW5nb0lkeCIpLnRleHR9O3JldHVybiB4LnRleHQ9PShjLnNvdXJjZXx8IiIpfX0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdfSwiI2J0bi12aWV3LW1pLXJldmVydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Il9pZHgvIit4LmRkb2MuZnJvbSg4KSsi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHtzb3VyY2U6Yi5SVCgiRGVmYXVsdE1hbmdvSWR4IikudGV4dH07bnVsbCE9YSYmKHgudGV4dD1kLnNvdXJjZSl9LGRlbGF5OjUwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSJfaWR4LyIreC5kZG9jLmZyb20oOCkrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7c291cmNlOmEuUlQoIkRlZmF1bHRNYW5nb0lkeCIpLnRleHR9O3JldHVybiB4LnRleHQ9PWMuc291cmNlfX0scmVjYWxjOlsiI3ZpZXctbWktZWQiXSx3YXRjaDpbIiN2aWV3LW1pLXByb3h5Il19LCIjYnRuLXZpZXctbWktZGVsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLmxhbmc7JC5teS5tb2RhbCh7ZGF0YTp7eWVzOmMuQlROX0RFTF9ZRVMseWVzY3NzOiJyZWQiLG5vOmMuQlROX0RFTF9OTyxjYW5jZWw6IiIsdGV4dDpjLk1TR19ERUxfVEVYVC5hc3NpZ24oeC5uYW1lLmVzY2FwZUhUTUwoKSx4LmRkb2MuZnJvbSg4KS5lc2NhcGVIVE1MKCkpfSxtYW5pZmVzdDpiLlBobygiQ29uZmlybSIpLGVzYzohMCxnbG9iYWw6ITAsc2NyZWVuOiEwfSkudGhlbihmdW5jdGlvbih4KXsieWVzIj09eC5jbWQmJmIuRGVsSW5kZXgoKX0pfX0sZGVsYXk6MjAsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtpZigheC5kZG9jLmZyb20oOCkpcmV0dXJuITB9fSx3YXRjaDpbIiN2aWV3LW1pLXByb3h5Il19LCIjYnRuLXZpZXctbWktc2F2ZWFzIjp7Y3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7aWYobnVsbCE9YSlyZXR1cm4gYi5kYXRhKCJtb2RhbCIpPyhiLm1vZGFsKCEwKSx2b2lkIDApOigkLm15Lm1vZGFsKHtkYXRhOiQuZXh0ZW5kKCEwLHt9LGMuUlQoWyJkYXRhIiwibWFuZ28iXSkpLG1hbmlmZXN0OntkYXRhOiQuZXh0ZW5kKCEwLHtfdmFsaWQ6ITAsZGRvYzoiIn0sIl9kZXNpZ24vIiE9eC5kZG9jP3g6T2JqZWN0LnJlamVjdCh4LFsiZGRvYyIsIm5hbWUiXSksT2JqZWN0LnNlbGVjdCh4Lmpzb24sWyJkZG9jIiwibmFtZSJdKSksTmFtZToiIixpbml0OmZ1bmN0aW9uKHgpe3RoaXMuZGF0YTt4Lmh0bWwoJC5teS5mb3JtZ2VuKFt7cm93OiIxMDAlIixsYWJlbDoiOTBweCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAgbzgwIixyb3dDc3M6Im15LXJvdyBwdDgifSwnPGRpdiBjbGFzcz0ibWI4Ij4nLCc8ZGl2IGlkPSJmdGl0bGUiIGNsYXNzPSJ4Z3JheSBtYi04Ij57VFhUX05FV308L2Rpdj4nLFsie0xCTF9ERE9DfSIsImlucCNtZGRvYy53MTAwcCIse3BsYzoie1BMQ19ERE9DfSJ9LCJtc2ciXSxbIntMQkxfTkVXfSIsImlucCNtdmlldy53MTAwcCIse3BsYzoie1BMQ19ORVd9In0sIm1zZyJdLCc8ZGl2IGlkPSJmd2FybiIgY2xhc3M9InhncmF5IHB0MTIgaGlkZSI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxNiBwdDcgYnRkIGZzOTUiPicsWyIiLCJidG4jYnRuLW5ldy1vay5ncmVlbi5tcjIiLHt2YWw6IntCVE5fTkVXX09LfSJ9LCJidG4jYnRuLW5ldy1jYW5jZWwiLHt2YWw6IntCVE5fTkVXX0NBTkNFTH0ifV0sIjwvZGl2PiJdKS5hc3NpZ24oYy5sYW5nKSl9LHVpOnsiI21kZG9jIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHguZGRvYzt4LmRkb2M9YX19LCIjbXZpZXciOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5uYW1lO3gubmFtZT1hfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhP2EuaW5kZXhPZigiLyIpPi0xP2MubGFuZy5FUlJfTkVXX1NMQVNIOnZvaWQgMDpjLmxhbmcuRVJSX05FV19SRVF9fSwiI2Z3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSJfZGVzaWduLyIreC5kZG9jLnJlcGxhY2UoL15fZGVzaWduXC8vLCIiKTtyZXR1cm4gYy5SVChbIkRkb2NzIixiXSk/Yy5SVChbIkRkb2NzIixiLCJ2aWV3cyIseC5uYW1lXSk/Yy5sYW5nLkVYUF9FWElTVDpjLmxhbmcuRVhQX05WSUVXOmMubGFuZy5FWFBfTkRET0N9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe2lmKHguX3ZhbGlkPXRoaXMubXkudmFsaWQoKSwheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LW9rIjp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjJweDsifX0sY3NzOiJwMTUiLGdsb2JhbDohMCxzY3JlZW46ITAsd2lkdGg6NDAwLGVzYzohMCxmb2N1czoiI212aWV3IixlbnRlcjohMCxib3VuZDowfSkudGhlbihmdW5jdGlvbihhKXtpZighYS5fdmFsaWQpcmV0dXJuIGN3LmxpYi5ub3RlKGMubGFuZy5FUlJfTk9fTkFNRSwiZXJyb3IiKSx2b2lkIDA7dmFyIGI9eC5qc29uO2EuZGRvYyYmKGIuZGRvYz1hLmRkb2MucmVwbGFjZSgvXl9kZXNpZ25cLy8sIiIpKSxiLmRkb2N8fChiLmRkb2M9ImluZGV4XyIrTnVtYmVyLnJhbmRvbSg0NjY1NiwxNjc5NjE1KS50b1N0cmluZygzNikpLGEubmFtZSYmKGIubmFtZT1hLm5hbWUpLGMuU2F2ZUluZGV4KGIpfSksdm9pZCAwKX0sZXZlbnRzOiJjbGljay5teSJ9fSxzdHlsZTp7IiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZTo4MCUhaW1wb3J0YW50O3BhZGRpbmc6MHB4O21pbi1oZWlnaHQ6MzAwcHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MzAwcHg7IiwiICN2aWV3LW1pLXByb3h5IjpmdW5jdGlvbih4KXtyZXR1cm4ibWF4LWhlaWdodDoiKyh4LnBhcmVudCgpLmhlaWdodCgpLTQ4LTMyKSsicHg7In0sIiAjdmlldy1taS1wcm94eS5yZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAjYnRuLXZpZXctbWktZGVsIjoiZGlzcGxheTpub25lOyIsIiAjYnRuLXZpZXctbWktcmV2ZXJ0LmhpZGUgKyAjYnRuLXZpZXctbWktZGVsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7In0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI3ZpZXctbWktcHJveHkiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LFNhdmVJbmRleDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD0oYXx8Yy5uYW1lLGIuUlQoWyJkYXRhIiwicGF0aCJdKSk7Yi5SVChbImRhdGEiLCJ0YWJpZCJdKTtpZihjLmVycm9ycy5sZW5ndGgpcmV0dXJuIGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfRVJSRE9DLmFzc2lnbihjLmVycm9yc1swXSksImVycm9yIiksJC5EZWZlcnJlZCgpLnJlamVjdChjLmVycm9yc1swXSk7dmFyIGU9JC5leHRlbmQoITAse30seHx8Yy5qc29uKTtyZXR1cm4gZS5kZG9jfHwoZS5kZG9jPWMuZGRvYy5mcm9tKDgpKSxlLm5hbWV8fChlLm5hbWU9Yy5uYW1lKSxlLmRkb2M/KGIuUlQoIkJ1c3kiKSghMCksYi5SZXEoe3VybDpbZFswXSwiX2luZGV4Il0sbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShlKSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfU0FWRUQuYXNzaWduKGUuZGRvYysiLiIrZS5uYW1lKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmRbMF0sY21kOiJ3cml0ZSIsZG9jczpbYy5kZG9jXX0pLGMuZGRvYy5mcm9tKDgpPT1lLmRkb2MmJmMubmFtZT09ZS5uYW1lPyhiLm15LmNoZWNrKCIjYnRuLXZpZXctbWktcmV2ZXJ0IiksYi5teS5jaGVjaygiI2J0bi12aWV3LW1pLXJ1biIpKTooYi5SVCgiZGF0YSIpLnZpZXc9Il9pZHgvIitlLmRkb2MrIu+/vSIrZS5uYW1lLGIuUlQoIm15IikudHJpZ2dlcigiI2J0bi1yZWxvYWQiLCJjbGljay5teSIpKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0ZBSUwuYXNzaWduKGUuZGRvYysiLiIrZS5uYW1lLHgsYSksImVycm9yIil9KS5hbHdheXMoYi5SVCgiQnVzeSIpLmZpbGwoITEpKSk6KGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfTk9fTkFNRV9SVU4sImVycm9yIiksJC5EZWZlcnJlZCgpLnJlamVjdChiLmxhbmcuRVJSX05PX05BTUVfUlVOKSl9LERlbEluZGV4OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPXh8fGMuZGRvYyxlPWF8fGMubmFtZSxmPWIuUlQoWyJkYXRhIiwicGF0aCJdKTtiLlJUKFsiZGF0YSIsInRhYmlkIl0pO3JldHVybiBiLlJUKCJCdXN5IikoITApLGIuUmVxKHt1cmw6W2ZbMF0sIl9pbmRleCIsZCwianNvbiIsZV0sbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfREVMX09LLmFzc2lnbihkKyIuIitlKSwib2siKSxiLlJUKCJkYXRhIikudmlldz0iIixiLlJUKCJkYXRhIikuZWRpdG9yPSExLGIuUlQoKS5Sb3dzPVtdLGIuUlQoIm15IikucmVjYWxjKCIjdmlldy1uYW1lIiksYi5SVCgibXkiKS5jaGVjaygiI3ZpZXctbmFtZSIpLGZ1bmN0aW9uKCl7JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpmWzBdLGNtZDoid3JpdGUiLGRvY3M6W2RdfSl9LmRlYm91bmNlKDEwMCkoKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9GQUlMLmFzc2lnbihkKyIuIitlLHgsYSksImVycm9yIil9KS5hbHdheXMoYi5SVCgiQnVzeSIpLmZpbGwoITEpKX19LFZpZXdFZDp7aWQ6ImN3LlBob3Rvbi5WaWV3RWQiLGluaGVyaXQ6WyJSVCJdLHBhcmFtczp7cmVzdHlsZTo1MCxzdHJpY3Q6ITB9LGxhbmc6e30scmVxdWlyZTpbeyJ3aW5kb3cuQ29kZU1pcnJvciI6ImxpYi9jb2RlbWlycm9yLmpzIn1dLEhUTUw6JzxkaXYgY2xhc3M9ImJnLXBncmF5IGxoMTYwIHB0MiB4Z3JheSBudyBvaCBlbGwgeHBhbmVsIj48ZGl2IGNsYXNzPSJmczkwIGZyIHB0MSB0YXIiPjxzcGFuIGlkPSJ2aWV3LW1yLW1vZGUiIGNsYXNzPSJtdDAiPjwvc3Bhbj48c3BhbiBpZD0iYnRuLXZpZXctbXItY2xvc2UiIGNsYXNzPSJwcjkgcGw4IG1sNiBwc2V1ZG9saW5rIHRkbiIgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7IiB0aXRsZT0ie0JUTl9QQU5FTF9DTE9TRX0iPuKclTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWV3LW1yLW5hbWUiIGNsYXNzPSJib2xkZXIgcGw4IG9oIG53IGVsbCI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctbXItcHJveHkiIGNsYXNzPSJiYnMgcGwxIHByMSI+PHRleHRhcmVhIGlkPSJ2aWV3LW1yLWVkIiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+PC9zZWN0aW9uPjxzZWN0aW9uIGlkPSJ2aWV3LWVkLWJ1dHRvbnMiIGNsYXNzPSJudyBwOCIgc3R5bGU9IiI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1yLXJldmVydCIgY2xhc3M9Im9yYW5nZSBoaWRlIiB0aXRsZT0ie1RJUF9SRVZFUlR9Ij48c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9SRVZFUlR9wqA8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tci1kZWwiIGNsYXNzPSJyZWQgaGlkZSBtbDIiIHRpdGxlPSJ7VElQX0RFTH0iPjxzcGFuIGNsYXNzPSJmaS10cmFzaCBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9ERUx9PC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbXItcnVuIiBjbGFzcz0ibXIyIGdyZWVuIiBkaXNhYmxlZCB0aXRsZT0ie1RJUF9SVU59Ij48c3BhbiBjbGFzcz0iZmktcGxheSBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9SVU59PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbXItc2F2ZWFzIiBjbGFzcz0ibXIyIiB0aXRsZT0ie1RJUF9TQVZFQVN9Ij48c3BhbiBjbGFzcz0iZmktc2F2ZSBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9TQVZFQVN9PC9idXR0b24+PC9zZWN0aW9uPicsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSxkYXRhOntkZG9jOiIiLG5hbWU6IiIsdHlwZToidmlldyIsbW9kZTpbIm1hcCJdLG1hcDoiIixyZWR1Y2U6IiIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6MCxyZXY6IiJ9LHVpOnsiI3ZpZXctbXItZWQiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1iLm1vZGUrIiI7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx7bW9kZToianNvbiI9PWM/YzpiLmxhbmd1YWdlfHwiamF2YXNjcmlwdCIsbGluZU51bWJlcnM6ITAsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiExLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Impzb24iPT1jLGV4dHJhS2V5czp7IkN0cmwtUiI6ZnVuY3Rpb24oKXthLlNhdmVEZG9jKCl9LCJDbWQtUiI6ZnVuY3Rpb24oKXthLlNhdmVEZG9jKCl9fX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9eC5tb2RlKyIiO3JldHVybiBudWxsIT1hJiYianNvbiIhPWImJih4W2JdPWEpLCJqc29uIj09Yj9KU09OLnN0cmluZ2lmeSh4Lmpzb24sbnVsbCwiXHQiKTp4W2JdfX0sIiN2aWV3LW1yLXByb3h5Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGRlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPU9iamVjdC5pc0Z1bmN0aW9uLGQ9T2JqZWN0LmlzU3RyaW5nKHgubGFuZ3VhZ2UpP3gubGFuZ3VhZ2U6ImphdmFzY3JpcHQiLGU9eC5tYXAsZj14LnJlZHVjZXx8IiIsZz1udWxsLGg9L14oJSVbXlxyXG5dKltcclxuXSspKltcclxuXHNcdF0qZnVuW1xyXG5cc1x0XSpcKFtcclxuXHNcdF0qXHs/LyxpPS9cLltcclxuXHNcdF0qJC8saj1bIl9zdW0iLCJfY291bnQiLCJfbWluIiwiX21heCIsIl9zdGF0cyIsIl9zdW1zcXIiXSxrPXguZXJyb3JzPVtdOyJqYXZhc2NyaXB0Ij09ZD8obnVsbCE9KGc9Yi5SVCgianNldmFsIikoIigiK2UrIikiKSkmJmMoZyl8fGsucHVzaChiLmxhbmcuRVJSX05PX01BUCksZiYmIl8iIT1mWzBdJiYoZz1udWxsLG51bGwhPShnPWIuUlQoImpzZXZhbCIpKCIoIitmKyIpIikpJiZjKGcpfHxrLnB1c2goYi5sYW5nLkVSUl9OT19SRURVQ0UpKSwiXyI9PWZbMF0mJi0xPT1qLmluZGV4T2YoZi50cmltKCkpJiZrLnB1c2goYi5sYW5nLkVSUl9GX0JVSUxUSU4pKToiZXJsYW5nIj09ZCYmKGgudGVzdChlKSYmaS50ZXN0KGUpfHxrLnB1c2goYi5sYW5nLkVSUl9OT19NQVApLCJfIj09ZlswXSYmLTE9PWouaW5kZXhPZihmLnRyaW0oKSk/ay5wdXNoKGIubGFuZy5FUlJfRl9CVUlMVElOKTohZnx8Il8iPT1mWzBdfHxoLnRlc3QoZikmJmkudGVzdChmKXx8ay5wdXNoKGIubGFuZy5FUlJfTk9fUkVEVUNFKSkseC5qc29uPXt9LHguZXJyb3JzLmxlbmd0aHx8KGUudHJpbSgpJiYoeC5qc29uLm1hcD1lKSxmLnRyaW0oKSYmKHguanNvbi5yZWR1Y2U9ZikpfSx3YXRjaDpbIiN2aWV3LW1yLWVkIl0sY3NzOntyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfX19LCIjdmlldy1tci1tb2RlIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19NT0RFKX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4geC5tb2RlO3gubW9kZT1hO3ZhciBjPWIubXkuZmluZCgiI3ZpZXctbXItZWQiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtyZXR1cm4gYy5zZXRPcHRpb24oIm1vZGUiLCJqc29uIj09YSsiIj8ianNvbiI6eC5sYW5ndWFnZSksYy5zZXRPcHRpb24oInJlYWRPbmx5IiwianNvbiI9PWErIiIpLGIubXkucmVjYWxjKCIjdmlldy1tci1lZCIpLGF9fSwiI3ZpZXctbXItbmFtZSI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuUlQoImRhdGEiKSxjPWEuZGF0YTt4Lm9uKCJjbGljay5teSIsImEiLGZ1bmN0aW9uKCl7dmFyIHg9YS5QaG8oIkVkIikuanNvbnRyZWUuTHMoKSxkPSJ2aWV3c3RhdGUuIitjdy5saWIuc2RibShiLnBhdGhbMF0rIi8iK2MuZGRvYyksZT0oeChkKXx8e3N0YXRlOltdfSkuc3RhdGV8fFtdO2U9ZS5jb25jYXQoW2N3LmxpYi5zZGJtKCJSb2904p2Admlld3MiKSxjdy5saWIuc2RibSgiUm9vdOKdgHZpZXdz4p2AIitjLm5hbWUpXSkudW5pcXVlKCkseChkLHtzdGFtcDpEYXRlLm5vdygpLHN0YXRlOmV9KX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuUlQoImRhdGEiKTtyZXR1cm4geC5lcnJvcnMubGVuZ3RoP3guZXJyb3JzWzBdLmVzY2FwZUhUTUwoKTpiLmxhbmcuVFhUX1RJVExFW3gubGFuZ3VhZ2VdLmFzc2lnbignPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfS97Mn0iPl9kL3szfTwvYT4nLmFzc2lnbihjLnBhdGhbMF0seC5kZG9jLHguZGRvYy5mcm9tKDgpLmVzY2FwZUhUTUwoKSkseC5uYW1lLmVzY2FwZUhUTUwoKSl9LGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH0sYm9sZGVyOmZ1bmN0aW9uKHgpe3JldHVybiAwPT14LmVycm9ycy5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItY2xvc2UiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcy5SVDtiKCJkYXRhIikuZWRpdG9yPSExLGIoInN0YXNoVmlld1N0YXRlIikoKSxiKCJteSIpLmNoZWNrKCIjYnRuLXZpZXdjb2RlIiksYigibXkiKS5yZXN0eWxlLmRlbGF5KDUwKX19fSwiI2J0bi12aWV3LW1yLXJ1biI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9eC5kZG9jKyLvv70iK3gubmFtZSxkPWIuUlQoWyJWaSIsYywidmlldyJdKXx8e30sZT1iLmxhbmcsZj0nPHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoCcsZz14Lm1hcCE9KGQubWFwfHwiIil8fHgucmVkdWNlIT0oZC5yZWR1Y2V8fCIiKTtyZXR1cm4gbnVsbCE9YSYmZz9iLlNhdmVEZG9jKCk6bnVsbCE9YSYmYi5SVCgiR2V0VmlldyIpKCEwKSxmK2UuQlROX1NBVkV9LGRlbGF5OjUwLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoeC5lcnJvcnMubGVuZ3RoKXJldHVybiEwO3ZhciBhPXRoaXMsYj14LmRkb2MrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7fTthLmxhbmc7cmV0dXJuISh4Lm1hcCE9KGMubWFwfHwiIil8fHgucmVkdWNlIT0oYy5yZWR1Y2V8fCIiKSl9LCJzZWxmOmdyZWVuIjpmdW5jdGlvbih4KXtpZih4LmVycm9ycy5sZW5ndGgpcmV0dXJuITE7dmFyIGE9dGhpcyxiPXguZGRvYysi77+9Iit4Lm5hbWUsYz1hLlJUKFsiVmkiLGIsInZpZXciXSl8fHt9O3JldHVybiB4Lm1hcCE9KGMubWFwfHwiIil8fHgucmVkdWNlIT0oYy5yZWR1Y2V8fCIiKX19LHdhdGNoOlsiI3ZpZXctbXItcHJveHkiXX0sIiNidG4tdmlldy1tci1yZXZlcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPXguZGRvYysi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHt9O251bGwhPWEmJih4Lm1hcD1kLm1hcHx8IiIseC5yZWR1Y2U9ZC5yZWR1Y2V8fCIiKX0sZGVsYXk6NTAsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC5kZG9jKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e307cmV0dXJuIHgubWFwPT0oYy5tYXB8fCIiKSYmeC5yZWR1Y2U9PShjLnJlZHVjZXx8IiIpfX0scmVjYWxjOlsiI3ZpZXctbXItZWQiXSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItZGVsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLmxhbmc7JC5teS5tb2RhbCh7ZGF0YTp7eWVzOmMuQlROX0RFTF9ZRVMseWVzY3NzOiJyZWQiLG5vOmMuQlROX0RFTF9OTyxjYW5jZWw6IiIsdGV4dDpjLk1TR19ERUxfVEVYVC5hc3NpZ24oeC5uYW1lLmVzY2FwZUhUTUwoKSx4LmRkb2MuZXNjYXBlSFRNTCgpKX0sbWFuaWZlc3Q6Yi5QaG8oIkNvbmZpcm0iKSxlc2M6ITAsZ2xvYmFsOiEwLHNjcmVlbjohMH0pLnRoZW4oZnVuY3Rpb24oeCl7InllcyI9PXguY21kJiZiLkRlbFZpZXcoKX0pfX0sZGVsYXk6MjAsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtpZigheC5kZG9jLmZyb20oOCkpcmV0dXJuITB9fSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItc2F2ZWFzIjp7Y3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD14O2lmKG51bGwhPWEpcmV0dXJuIGIuZGF0YSgibW9kYWwiKT8oYi5tb2RhbCghMCksdm9pZCAwKTooJC5teS5tb2RhbCh7ZGF0YTokLmV4dGVuZCghMCx7fSxjLlJUKFsiZGF0YSIsIm1hbmdvIl0pKSxtYW5pZmVzdDp7ZGF0YTokLmV4dGVuZCghMCx7X3ZhbGlkOiEwfSx4KSxOYW1lOiIiLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5kYXRhO3guaHRtbCgkLm15LmZvcm1nZW4oW3tyb3c6IjEwMCUiLGxhYmVsOiI5MHB4IixsYWJlbENzczoibXktbGFiZWwgZnM5MCBvODAiLHJvd0NzczoibXktcm93IHB0OCJ9LCc8ZGl2IGNsYXNzPSJtYjgiPicsJzxkaXYgaWQ9ImZ0aXRsZSIgY2xhc3M9InhncmF5IG1iLTgiPntUWFRfTkVXfTwvZGl2PicsWyJ7TEJMX0RET0N9IiwiaW5wI21kZG9jLncxMDBwIix7cGxjOiJ7UExDX0RET0N9In0sIm1zZyJdLFsie0xCTF9ORVd9IiwiaW5wI212aWV3LncxMDBwIix7cGxjOiJ7UExDX05FV30ifSwibXNnIl0sJzxkaXYgaWQ9ImZ3YXJuIiBjbGFzcz0ieGdyYXkgcHQxMiBoaWRlIj48L2Rpdj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJtdDE2IHB0NyBidGQgZnM5NSI+JyxbIiIsImJ0biNidG4tbmV3LW9rLmdyZWVuLm1yMiIse3ZhbDoie0JUTl9ORVdfT0t9In0sImJ0biNidG4tbmV3LWNhbmNlbCIse3ZhbDoie0JUTl9ORVdfQ0FOQ0VMfSJ9XSwiPC9kaXY+Il0pLmFzc2lnbihjLmxhbmcpKX0sdWk6eyIjbWRkb2MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5kZG9jO3guZGRvYz1hfX0sIiNtdmlldyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4Lm5hbWU7eC5uYW1lPWF9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGE/YS5pbmRleE9mKCIvIik+LTE/Yy5sYW5nLkVSUl9ORVdfU0xBU0g6dm9pZCAwOmMubGFuZy5FUlJfTkVXX1JFUX19LCIjZndhcm4iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9Il9kZXNpZ24vIiE9eC5kZG9jLnRvKDgpPyJfZGVzaWduLyIreC5kZG9jOnguZGRvYztyZXR1cm4gYy5SVChbIkRkb2NzIixiXSk/Yy5SVChbIkRkb2NzIixiLCJ2aWV3cyIseC5uYW1lXSk/Yy5sYW5nLkVYUF9FWElTVDpjLmxhbmcuRVhQX05WSUVXOmMubGFuZy5FWFBfTkRET0N9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe2lmKHguX3ZhbGlkPXRoaXMubXkudmFsaWQoKSwheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LW9rIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjJweDsifX0sY3NzOiJwMTUiLGdsb2JhbDohMCxzY3JlZW46ITAsd2lkdGg6NDAwLGVzYzohMCxmb2N1czoiI212aWV3IixlbnRlcjohMCxib3VuZDowfSkudGhlbihmdW5jdGlvbihhKXtpZighYS5fdmFsaWQpcmV0dXJuIGN3LmxpYi5ub3RlKGMubGFuZy5FUlJfTk9fTkFNRSwiZXJyb3IiKSx2b2lkIDA7YS5kZG9jPSJfZGVzaWduLyIhPWEuZGRvYy50byg4KT8iX2Rlc2lnbi8iK2EuZGRvYzphLmRkb2M7dmFyIGI9Yy5SVChbIkRkb2NzIixhLmRkb2NdKTtifHwoYj17X2lkOmEuZGRvYyxsYW5ndWFnZTp4Lmxhbmd1YWdlLHZpZXdzOnt9fSksYy5TYXZlRGRvYyhiLGEubmFtZSkudGhlbihmdW5jdGlvbigpe3ZhciB4O2MuUlQoImRhdGEiKS52aWV3PWEuZGRvYysi77+9IithLm5hbWUsZC5kZG9jPT1hLmRkb2MmJmQubmFtZT09YS5uYW1lfHwoeD1jLlJUKFsiVmkiLGQuZGRvYysi77+9IitkLm5hbWUsInZpZXciXSl8fHt9LGQubWFwPXgubWFwfHwiIixkLnJlZHVjZT14LnJlZHVjZXx8IiIpLGMuUlQoIm15IikudHJpZ2dlcigiI2J0bi1yZWxvYWQiLCJjbGljay5teSIpfSl9KSx2b2lkIDApfSxldmVudHM6ImNsaWNrLm15In19LHN0eWxlOnsiIC5Db2RlTWlycm9yIjoiZm9udC1zaXplOjgwJSFpbXBvcnRhbnQ7cGFkZGluZzowcHg7bWluLWhlaWdodDozMDBweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDozMDBweDsiLCIgI3ZpZXctbXItcHJveHkiOmZ1bmN0aW9uKHgpe3JldHVybiJtYXgtaGVpZ2h0OiIrKHgucGFyZW50KCkuaGVpZ2h0KCktNDgtMzEpKyJweDsifSwiICN2aWV3LW1yLXByb3h5LnJlZCAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiICNidG4tdmlldy1tci1kZWwiOiJkaXNwbGF5Om5vbmU7IiwiICNidG4tdmlldy1tci1yZXZlcnQuaGlkZSArICNidG4tdmlldy1tci1kZWwiOiJkaXNwbGF5OmlubGluZS1ibG9jazsifSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjdmlldy1tci1wcm94eSIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sU2F2ZURkb2M6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9YXx8Yy5uYW1lLGU9Yi5SVChbImRhdGEiLCJwYXRoIl0pO2IuUlQoWyJkYXRhIiwidGFiaWQiXSk7aWYoYy5lcnJvcnMubGVuZ3RoKXJldHVybiBjdy5saWIubm90ZShiLmxhbmcuRVJSX0VSUkRPQy5hc3NpZ24oYy5lcnJvcnNbMF0pLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYy5lcnJvcnNbMF0pO2IuUlQoIkJ1c3kiKSghMCk7dmFyIGY9JC5leHRlbmQoITAse30seHx8Yi5SVChbIkRkb2NzIixjLmRkb2NdKSk7cmV0dXJuIGMubWFwLnRyaW0oKT9jdy5saWIudW5tYXNrKGYsW2MubWFwXSxbWyJ2aWV3cyIsZCwibWFwIl1dKTpjdy5saWIuZ2V0cmVmKGYsWyJ2aWV3cyIsZCwibWFwIl0pJiYoZi52aWV3c1tkXS5tYXA9dm9pZCAwKSxjLnJlZHVjZS50cmltKCk/Y3cubGliLnVubWFzayhmLFtjLnJlZHVjZV0sW1sidmlld3MiLGQsInJlZHVjZSJdXSk6Y3cubGliLmdldHJlZihmLFsidmlld3MiLGQsInJlZHVjZSJdKSYmKGYudmlld3NbZF0ucmVkdWNlPXZvaWQgMCksYi5SZXEoe3VybDpbZVswXSxmLl9pZF0sbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KGYpLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oeCl7Yy5yZXY9eC5yZXYsY3cubGliLm5vdGUoYi5sYW5nLk1TR19TQVZFRC5hc3NpZ24oZi5faWQpLCJvayIpLCQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6ZVswXSxjbWQ6IndyaXRlIixkb2NzOltmLl9pZF19KSxiLm15LmNoZWNrKCIjYnRuLXZpZXctbXItcmV2ZXJ0IiksYi5teS5jaGVjaygiI2J0bi12aWV3LW1yLXJ1biIpfSkuZmFpbChmdW5jdGlvbih4LGEpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfRkFJTC5hc3NpZ24oZi5faWQseCxhKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2IuUlQoIkJ1c3kiKSghMSl9KX0sRGVsVmlldzpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD1hfHxjLm5hbWUsZT1iLlJUKFsiZGF0YSIsInBhdGgiXSk7Yi5SVChbImRhdGEiLCJ0YWJpZCJdKTtpZihjLmVycm9ycy5sZW5ndGgpcmV0dXJuIGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfRVJSRE9DLmFzc2lnbihjLmVycm9yc1swXSksImVycm9yIiksJC5EZWZlcnJlZCgpLnJlamVjdChjLmVycm9yc1swXSk7dmFyIGY9JC5leHRlbmQoITAse30seHx8Yi5SVChbIkRkb2NzIixjLmRkb2NdKSk7cmV0dXJuIGN3LmxpYi5nZXRyZWYoZixbInZpZXdzIixkXSkmJmRlbGV0ZSBmLnZpZXdzW2RdLGIuUmVxKHt1cmw6W2VbMF0sZi5faWRdLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShmKSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2MucmV2PXgucmV2LGN3LmxpYi5ub3RlKGIubGFuZy5NU0dfREVMX09LLmFzc2lnbihmLl9pZCsiLiIrZCksIm9rIiksYi5SVCgiZGF0YSIpLnZpZXc9IiIsYi5SVCgiZGF0YSIpLmVkaXRvcj0hMSxiLlJUKCkuUm93cz1bXSxiLlJUKCJteSIpLnJlY2FsYygiI3ZpZXctbmFtZSIpLGIuUlQoIm15IikuY2hlY2soIiN2aWV3LW5hbWUiKSxmdW5jdGlvbigpeyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6ZVswXSxjbWQ6IndyaXRlIixkb2NzOltmLl9pZF19KX0uZGVib3VuY2UoMTAwKSgpfSkuZmFpbChmdW5jdGlvbih4LGEpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfREVMX0ZBSUwuYXNzaWduKGYuX2lkKyIuIitkLHgsYSksImVycm9yIil9KS5hbHdheXMoYi5SVCgiQnVzeSIpLmZpbGwoITEpKX19LE1hbmdvRWQ6e2lkOiJjdy5QaG90b24uTWFuZ29FZCIsaW5oZXJpdDpbIlJUIl0scGFyYW1zOntyZXN0eWxlOjUwLHN0cmljdDohMH0sbGFuZzp7fSxyZXF1aXJlOlt7IndpbmRvdy5Db2RlTWlycm9yIjoibGliL2NvZGVtaXJyb3IuanMifV0sSFRNTDonPGRpdiBjbGFzcz0iYmctcGdyYXkgbGgxNjAgcHQyIHhncmF5IG53IG9oIGVsbCB4cGFuZWwiPjxkaXYgY2xhc3M9ImZzOTAgdGFyIGZyIHB0MSI+PHNwYW4gaWQ9InZpZXctbWFuZ28tbW9kZSIgY2xhc3M9Im10MCI+PC9zcGFuPjxzcGFuIGlkPSJidG4tdmlldy1tYW5nby1jbG9zZSIgY2xhc3M9InByOSBwbDggbWw2IHBzZXVkb2xpbmsgdGRuIiBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTsiIHRpdGxlPSJ7QlROX1BBTkVMX0NMT1NFfSI+4pyVPC9zcGFuPjwvZGl2PjxkaXYgaWQ9InZpZXctbWFuZ28tbmFtZSIgY2xhc3M9ImJvbGRlciBwbDggb2ggbncgZWxsIj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1tYW5nby1wcm94eSIgY2xhc3M9ImJicyBwbDEgcHIxIj48dGV4dGFyZWEgaWQ9InZpZXctbWFuZ28tZWQiIGNsYXNzPSJ3MTAwcCI+PC90ZXh0YXJlYT48L3NlY3Rpb24+PHNlY3Rpb24gaWQ9InZpZXctbWFuZ28tYnV0dG9ucyIgY2xhc3M9Im53IHA4IiBzdHlsZT0iIj48ZGl2IGNsYXNzPSJmciI+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWFuZ28tcmV2ZXJ0IiBjbGFzcz0iaGlkZSIgdGl0bGU9IntUSVBfUkVTRVR9Ij48c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9SRVNFVH3CoDwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLWRlbCIgY2xhc3M9ImhpZGUgcmVkIiB0aXRsZT0ie1RJUF9ERUx9Ij48c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fREVMfTwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLXJ1biIgY2xhc3M9Im1yMiBncmVlbiIgdGl0bGU9IntUSVBfUlVOfSI+PHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUlVOfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLXN0YXNoIiBjbGFzcz0ibXIyIiB0aXRsZT0ie1RJUF9TQVZFfSI+PHNwYW4gY2xhc3M9ImZpLXNhdmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fU0FWRX08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1leHBsYWluIiBjbGFzcz0ibXIyIiB0aXRsZT0ie1RJUF9FWFBMfSI+PHNwYW4gY2xhc3M9ImZpLW1lZ2FwaG9uZSBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9FWFBMfTwvYnV0dG9uPjwvc2VjdGlvbj4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSxhLlRleHQ9YS5kYXRhLnRleHQsYS5WYWxpZGF0ZT1hLlZhbGlkYXRlKCksYS5NYW5nb0tleXM9Y3cubGliLmEybyhhLk1hbmdvS2V5cy5zcGxpdCgiICIpKX0sZGF0YTp7bmFtZToiVW50aXRsZWQgcXVlcnkiLHR5cGU6Im1hbmdvIix0ZXh0OiIoe1xuXHQvLyBXcml0ZSB5b3VyIG1hbmdvIHF1ZXJ5LCBKUyBzeW50YXggYWxsb3dlZFxufSkiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjB9LE1vZGU6WyJqYXZhc2NyaXB0Il0sVGV4dDoiIix1aTp7IiN2aWV3LW1hbmdvLWVkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5Nb2RlKyIiO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6YixsaW5lTnVtYmVyczohMSx2aWV3cG9ydE1hcmdpbjoxMDAsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seToianNvbiI9PWIsZXh0cmFLZXlzOnsiQ3RybC1SIjpmdW5jdGlvbigpe2EuUlQoIkdldFZpZXciKSghMCl9LCJDbWQtUiI6ZnVuY3Rpb24oKXthLlJUKCJHZXRWaWV3IikoITApfX19KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMuTW9kZSsiIjtyZXR1cm4gbnVsbCE9YSYmImpzb24iIT1iJiYoeC50ZXh0PWEpLCJqc29uIj09Yj9KU09OLnN0cmluZ2lmeSh4Lmpzb24sbnVsbCwiXHQiKTp4LnRleHR9fSwiI3ZpZXctbWFuZ28tcHJveHkiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sZGVsYXk6MjAwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLlZhbGlkYXRlKHgudGV4dCk7T2JqZWN0LmlzT2JqZWN0KGIpP3guZXJyb3JzPVtdOnguZXJyb3JzPWIseC5qc29uPXguZXJyb3JzLmxlbmd0aD97fTpifSx3YXRjaDpbIiN2aWV3LW1hbmdvLWVkIl0sY3NzOntyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfX19LCIjYnRuLXZpZXctbWFuZ28tcnVuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbCE9YSl7dmFyIGM9Yi5SVCxkPWMoImRhdGEiKS5ncmlkLGU9YygiZGF0YSIpLmNvbHVtbnMsZj1lLnNsaWNlKDApLGc9KGMoImpzZXZhbCIpKCIoIit4LnRleHQrIikiKXx8e2ZpZWxkczpbXX0pLmZpZWxkc3x8W10saD0oYygianNldmFsIikoIigiK2IuVGV4dCsiKSIpfHx7ZmllbGRzOltdfSkuZmllbGRzfHxbXSxpPWcuc3VidHJhY3QoaCkuc3VidHJhY3QoaC5zdWJ0cmFjdChmKSksaj1mKyIiPT0iLnZhbHVlIiYmZy5sZW5ndGg/Zy50byg4KTpmLmNvbmNhdChpLnN1YnRyYWN0KGYpKS50byg4KTtlKyIiIT1qKyIiJiYoYygiZGF0YSIpLmNvbHVtbnM9ai5zbGljZSgwKSxkJiZjKCJidWlsZEdyaWRDb2x1bW5zIikoKSksYi5UZXh0PXgudGV4dCxjKCJHZXRWaWV3IikoITApLnRoZW4oZnVuY3Rpb24oKXtkJiYoYygibXkiKS5yZWNhbGMoIiN2aWV3LWdyaWQtY29scyIpLGMoIm15IikuY2hlY2soIiN2aWV3LWdyaWQtY29scyIpKX0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB8fHRoaXMuVGV4dD09eC50ZXh0fX0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI2J0bi12aWV3LW1hbmdvLWV4cGxhaW4iOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO2lmKG51bGwhPWEpe3ZhciBkPWMubXkuZmluZCgiI3ZpZXctbWFuZ28tcHJveHkiKSxlPWQub3V0ZXJIZWlnaHQoKS0zLGY9ZC5vdXRlcldpZHRoKCktMzI7aWYoYi5kYXRhKCJtb2RhbCIpKXJldHVybiBiLm1vZGFsKCEwKSx2b2lkIDA7Yi5tb2RhbCh7Y3NzOiJwMTUgcHQwIixhbGlnbjoiYm90dG9tOjE0MCUiLG5vc2U6ImJvdHRvbSIsZGF0YTp7aGVpZ2h0OmUrInB4IixkcmFnOiEwLHJlcTp7dXJsOltjLlJUKCJkYXRhIikucGF0aFswXSwiX2V4cGxhaW4iXSxtZXRob2Q6InBvc3QiLGRhdGE6SlNPTi5zdHJpbmdpZnkoeC5qc29uKX19LHdpZHRoOmYsZHJhZzoiI2RyYWdnZXIiLGJvdW5kOiIwIixyb290OiIiLG1hbmlmZXN0OmMuUGhvKCJSZXFKU09OIil9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuITEseC5lcnJvcnMubGVuZ3RoPjB9fSx3YXRjaDpbIiN2aWV3LW1hbmdvLXByb3h5Il19LCIjdmlldy1tYW5nby1tb2RlIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19NT0RFKX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4gYi5Nb2RlO2IuTW9kZT1hO3ZhciBjPWIubXkuZmluZCgiI3ZpZXctbWFuZ28tZWQiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtyZXR1cm4gYy5zZXRPcHRpb24oIm1vZGUiLGErIiIpLGMuc2V0T3B0aW9uKCJyZWFkT25seSIsImpzb24iPT1hKyIiKSxiLm15LnJlY2FsYygiI3ZpZXctbWFuZ28tZWQiKSxhfX0sIiN2aWV3LW1hbmdvLW5hbWUiOntkZWxheToyNTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlJUKCJkYXRhIik7aWYoYi5QaG8oIkxzIikoIk1hbmdvLiIrYy5wYXRoWzBdLGMubWFuZ28pLCF4LmVycm9ycy5sZW5ndGgpe3ZhciBkPXgubmFtZSsiIjtyZXR1cm4iRGVmYXVsdCBxdWVyeSI9PWQ/Yi5sYW5nLlRYVF9USVRMRTA6Yi5sYW5nLlRYVF9USVRMRS5hc3NpZ24oZC5lc2NhcGVIVE1MKCkpfXJldHVybiB4LmVycm9yc1swXS5lc2NhcGVIVE1MKCl9LGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH0sYm9sZGVyOmZ1bmN0aW9uKHgpe3JldHVybiAwPT14LmVycm9ycy5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LW1hbmdvLXByb3h5Il19LCIjYnRuLXZpZXctbWFuZ28tY2xvc2UiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcy5SVDtiKCJkYXRhIikuZWRpdG9yPSExLGIoInN0YXNoVmlld1N0YXRlIikoKSxiKCJteSIpLmNoZWNrKCIjYnRuLXZpZXdjb2RlIiksYigibXkiKS5yZXN0eWxlLmRlbGF5KDUwKX19fSwiI2J0bi12aWV3LW1hbmdvLWRlbCI6e2Nzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oKXtyZXR1cm4iRGVmYXVsdCBxdWVyeSI9PXRoaXMuUlQoWyJkYXRhIiwibWFuZ28iLCJhY3RpdmUiXSl9fSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcyxjPWIuUlQoWyJkYXRhIiwibWFuZ28iXSk7Yy5hY3RpdmU9IkRlZmF1bHQgcXVlcnkiLGMucXVlcnkucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLm5hbWU9PXgubmFtZX0pLGIuUlQoImRhdGEiKS52aWV3PSJfZmluZO+/vURlZmF1bHQgcXVlcnkiLGIuUlQoIkdldFZpZXdzIikoITAsITEsITApLGIuUlQoIm15IikucmVkcmF3LmRlYm91bmNlKDUwKSgpfX19LCIjYnRuLXZpZXctbWFuZ28tcmV2ZXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7bnVsbCE9YSYmKHgudGV4dD1iLlJUKCJEZWZhdWx0TWFuZ29RcnkiKS50ZXh0KX0sZGVsYXk6MTAwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIkRlZmF1bHQgcXVlcnkiIT14Lm5hbWV9LCI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7cmV0dXJuIHgudGV4dD09YS5SVCgiRGVmYXVsdE1hbmdvUXJ5IikudGV4dH19LHJlY2FsYzpbIiN2aWV3LW1hbmdvLWVkIl0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI2J0bi12aWV3LW1hbmdvLXN0YXNoIjp7Y3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiJEZWZhdWx0IHF1ZXJ5IiE9eC5uYW1lP3RoaXMuVGV4dD09eC50ZXh0OngudGV4dD09dGhpcy5SVCgiRGVmYXVsdE1hbmdvUXJ5IikudGV4dH19LHdhdGNoOlsiI3ZpZXctbWFuZ28tcHJveHkiXSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9KGMuUlQoWyJkYXRhIiwibWFuZ28iLCJhY3RpdmUiXSksJzxzcGFuIGNsYXNzPSJmaS1zYXZlIGZzOTUgbzYwIj48L3NwYW4+wqAnK2MubGFuZy5CVE5fU0FWRSk7cmV0dXJuIG51bGw9PWE/ZDpiLmRhdGEoIm1vZGFsIik/KGIubW9kYWwoITApLGQpOihjLm15Lm1vZGFsKCIjYnRuLXZpZXctbWFuZ28tc3Rhc2giLHtkYXRhOiQuZXh0ZW5kKCEwLHtfbmV3Ont9fSxjLlJUKFsiZGF0YSIsIm1hbmdvIl0pKSxtYW5pZmVzdDp7ZGF0YTp7fSxOYW1lOiIiLFFyeTpbXSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5Rcnk9T2JqZWN0LmNsb25lKGIucXVlcnksITApLHguaHRtbCgkLm15LmZvcm1nZW4oWyc8ZGl2IGNsYXNzPSJtYjgiPicsJzxkaXYgaWQ9ImZ0aXRsZSIgY2xhc3M9InhncmF5Ij57VFhUX1NUQVNIfTwvZGl2PicsWyIiLCJpbnAjbXRpdGxlLncxMDBwIix7cGxjOiJ7UExDX1NUQVNIfSJ9LCJtc2ciXSwiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxNSBwdDE1IGJ0ZCBmczk1Ij4nLFsiIiwiYnRuI2J0bi1zdGFzaC1vay5ncmVlbi5tcjIiLHt2YWw6IntCVE5fU1RBU0hfT0t9In1dLCI8L2Rpdj4iXSkuYXNzaWduKGMubGFuZykpfSx1aTp7IiNtdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsPT1hKXJldHVybiBiLk5hbWU7aWYoYi5OYW1lPWEuY29tcGFjdCgpLGIuTmFtZS5sZW5ndGg+MiYmYi5OYW1lLmxlbmd0aDwzMSl7dmFyIGM9T2JqZWN0LmNsb25lKHgucXVlcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT14LmFjdGl2ZX0pLCEwKTtjLm5hbWU9Yi5OYW1lLGMuc3RhbXA9RGF0ZS5ub3coKSx4Ll9uZXc9Y31yZXR1cm4gYX0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5jb21wYWN0KCk/YS5jb21wYWN0KCkubGVuZ3RoPDN8fGEubGVuZ3RoPjMwP2MubGFuZy5FUlJfU1RBU0hfTEVOOnRoaXMuUXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09YX0pP2MubGFuZy5FUlJfU1RBU0hfRVhJU1Q6dm9pZCAwOmMubGFuZy5FUlJfU1RBU0hfUkVRfX0sIiNidG4tc3Rhc2gtb2siOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jb21taXQoKX0sd2F0Y2g6WyIjbXRpdGxlIl0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLm15LnZhbGlkKCl9fX19LHN0eWxlOnt9fSxjc3M6InAxNSIsZ2xvYmFsOiEwLHNjcmVlbjohMCx3aWR0aDo0MDAsZXNjOiEwLGVudGVyOiEwLGJvdW5kOjIwfSkudGhlbihmdW5jdGlvbih4KXt4LnF1ZXJ5LnB1c2goeC5fbmV3KSx4LmFjdGl2ZT14Ll9uZXcubmFtZSwkLmV4dGVuZChjLlJUKCJkYXRhIikubWFuZ28sT2JqZWN0LnJlamVjdCh4LCJfbmV3IikpLGMuUlQoImRhdGEiKS52aWV3PSJfZmluZO+/vSIreC5hY3RpdmUsYy5SVCgiR2V0Vmlld3MiKSghMCwhMSwhMCksYy5SVCgibXkiKS5yZWRyYXcoKX0pLGQpfSxldmVudHM6ImNsaWNrLm15In19LHN0eWxlOnsiIC5Db2RlTWlycm9yIjoiZm9udC1zaXplOjEzcHghaW1wb3J0YW50OyBwYWRkaW5nOjRweDsgbWluLWhlaWdodDozMDBweDsiLCIgI3ZpZXctbWFuZ28tcHJveHkiOmZ1bmN0aW9uKHgpe3JldHVybiJtYXgtaGVpZ2h0OiIrKHgucGFyZW50KCkuaGVpZ2h0KCktNDgtMzIpKyJweDsifSwiICN2aWV3LW1hbmdvLXByb3h5LnJlZCAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7In0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI3ZpZXctbWFuZ28tcHJveHkiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LE1hbmdvS2V5czoic2VsZWN0b3IgbGltaXQgc2tpcCBzb3J0IGZpZWxkcyB1c2VfaW5kZXggY29uZmxpY3RzIHIgYm9va21hcmsgdXBkYXRlIHN0YWJsZSBzdGFsZSBleGVjdXRpb25fc3RhdHMiLFZhbGlkYXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEseC5sYW5nKSxiPU9iamVjdC5pc0FycmF5LGM9T2JqZWN0LmlzT2JqZWN0LGQ9T2JqZWN0LmlzU3RyaW5nLGU9T2JqZWN0LnNpemUsZj1jdy5saWIuYTJvLGc9ZihbIiRhbGwiLCIkYWxsTWF0Y2giLCIkYW5kIiwiJGVsZW1NYXRjaCIsIiRleGlzdHMiLCIkaW4iLCIka2V5TWFwTWF0Y2giLCIkbW9kIiwiJG5pbiIsIiRub3IiLCIkbm90IiwiJG9yIiwiJHJlZ2V4IiwiJHNpemUiLCIkdHlwZSJdKSxoPWYoWyIkaW4iLCIkbmluIiwiJG1vZCIsIiRhbGwiXSksaT1mKFsiJGVxIiwiJG5lIiwiJGd0IiwiJGd0ZSIsIiRsdCIsIiRsdGUiXSksaj1mKFsibnVsbCIsImJvb2xlYW4iLCJudW1iZXIiLCJzdHJpbmciLCJhcnJheSIsIm9iamVjdCJdKTtyZXR1cm4gaztmdW5jdGlvbiBrKGQpe3ZhciBmPVtdLGc9eC5SVCgianNldmFsIikoIigiK2QrIikiKXx8bnVsbDtpZihudWxsIT1nJiZjKGcpKWlmKGMoZy5zZWxlY3RvcikmJmUoZy5zZWxlY3RvcikpaWYoYihnLmZpZWxkcykpaWYoZy5maWVsZHMubGVuZ3RoKXRyeXtsKGcuc2VsZWN0b3IsITApfWNhdGNoKHgpe2YucHVzaCh4Lm1lc3NhZ2UrIiIpfWVsc2UgZi5wdXNoKGEuRVJSX0VNUFRZX0ZJRUxEUyk7ZWxzZSBmLnB1c2goYS5FUlJfTk9fRklFTERTKTtlbHNlIGYucHVzaChhLkVSUl9OT19TRUxFQ1RPUik7ZWxzZSBmLnB1c2goYS5FUlJfTk9fSlNPTik7cmV0dXJuIWYubGVuZ3RoJiZlKGcpPjImJk9iamVjdC5rZXlzKGcpLmZvckVhY2goZnVuY3Rpb24oYil7eC5NYW5nb0tleXNbYl18fGYucHVzaChhLkVSUl9NQU5HT19LRVlTLmFzc2lnbigiLiIrYikpfSksZi5sZW5ndGg/ZjpnfWZ1bmN0aW9uIGwoeCxkKXtpZihiKHgpKWZvcih2YXIgZT0wO2U8eC5sZW5ndGg7ZSsrKWs9eFtlXSwoYihrKXx8YyhrKSkmJmwoayxkKTtlbHNle3ZhciBmPU9iamVjdC5rZXlzKHgpO2ZvcihlPTA7ZTxmLmxlbmd0aDtlKyspe3ZhciBqPWZbZV0saz14W2pdO2lmKCIkIj09alswXSYmIWdbal0mJiFoW2pdJiYhaVtqXSl0aHJvdyBuZXcgRXJyb3IoYS5FUlJfSU5WQUxJRF9PUEVSQVRPUi5hc3NpZ24oaikpO2dbal0mJm0oaixrLGQpLGlbal18fChoW2pdfHwoYihrKXx8YyhrKSkmJmwoayxkKSl9fX1mdW5jdGlvbiBtKHgsZSxmKXt2YXIgZz0iIjtpZihbIiRpbiIsIiRuaW4iLCIkb3IiLCIkYW5kIiwiJG1vZCIsIiRub3IiLCIkYWxsIl0uZmluZCh4KSYmKGIoZSl8fChnPWEuRVJSX1ZfQVJSLmFzc2lnbih4KSkpLFsiJG5vdCIsIiRlbGVtTWF0Y2giLCIkYWxsTWF0Y2giLCIka2V5TWFwTWF0Y2giXS5maW5kKHgpJiYoYyhlKXx8KGc9YS5FUlJfVl9PQkouYXNzaWduKHgpKSksIWcpe2lmKCIkbW9kIj09eCYmYihlKSlpZigyIT1lLmxlbmd0aClnPWEuRVJSX1ZfTU9EMTtlbHNle3ZhciBoPWVbMF0saT1lWzFdOzA9PT1oJiYoZz1hLkVSUl9WX01PRDApLCJudW1iZXIiPT10eXBlb2YgaCYmcGFyc2VJbnQoaCwxMCk9PT1ofHwoZz1hLkVSUl9WX01PREQpLHBhcnNlSW50KGksMTApIT1pJiYoZz1hLkVSUl9WX01PRFIpfSIkZXhpc3RzIj09eCYmImJvb2xlYW4iIT10eXBlb2YgZSYmKGc9YS5FUlJfVl9FWElTVCksIiR0eXBlIj09eCYmKGQoZSk/altlXXx8KGc9YS5FUlJfVl9UWVBFMSk6Zz1hLkVSUl9WX1RZUEUwKSwiJHNpemUiPT14JiZwYXJzZUludChlLDEwKSE9PWUmJihnPWEuRVJSX1ZfU0laRSksIiRyZWdleCI9PXgmJihkKGUpfHwoZz1hLkVSUl9WX1JFR0VYKSl9aWYoZyl0aHJvdyBuZXcgRXJyb3IoZyl9fX0sVXNlckRvYzp7aWQ6ImN3LlBob3Rvbi5Vc2VyRG9jIixsYW5nOnt9LGRhdGE6e19pZDoib3JnLmNvdWNoZGIudXNlcjoiLHR5cGU6InVzZXIiLG5hbWU6IiIscGFzc3dvcmQ6IiIscm9sZXM6W119LFJvbGVzOltdLFNlYzp7fSxVc2Vyczp7fSxJczp7YTp7fSxtOnt9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1hLlBobygiQWxsIiksZD1iLl9pZC5zcGxpdCgiOiIpWzFdO2EuU2VjPU9iamVjdC5rZXlzKGMpLnJlZHVjZShmdW5jdGlvbih4LGIpe3ZhciBlPWNbYl0uc2VjdXJpdHksZj0oZS5hZG1pbnN8fHt9KS5yb2xlc3x8W10sZz0oZS5tZW1iZXJzfHx7fSkucm9sZXN8fFtdLGg9KGUuYWRtaW5zfHx7fSkubmFtZXN8fFtdLGk9KGUubWVtYmVyc3x8e30pLm5hbWVzfHxbXTtyZXR1cm4gaC5pbmRleE9mKGQpPi0xJiYoYS5Jcy5hW2JdPSEwKSxpLmluZGV4T2YoZCk+LTEmJihhLklzLm1bYl09ITApLGYuZm9yRWFjaChmdW5jdGlvbihhKXt4W2FdfHwoeFthXT17YTp7fSxtOnt9fSkseFthXS5hW2JdPSEwfSksZy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3hbYV18fCh4W2FdPXthOnt9LG06e319KSx4W2FdLm1bYl09ITB9KSx4fSx7fSksYS5Sb2xlcz1PYmplY3Qua2V5cyhhLlNlYykucmVtb3ZlKC9eXy8pLnNvcnQoKSxiLl9yZXYmJihhLmxhbmcuVFhUX1RJVExFPWEubGFuZy5UWFRfVElUTEVfRUQsYS5sYW5nLlBMQ19QPWEubGFuZy5QTENfUF9FRCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxhLlBobygiR2V0VXNlcnMiKSgpLnRoZW4oZnVuY3Rpb24oeCl7YS5Vc2Vycz1jdy5saWIuYTJvKHgpfSkseC50aGVuKGZ1bmN0aW9uKCl7YS5TZWwyU2Nyb2xsKHgsITApfSl9LHNhdmVVc2VyOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14fHxhLmRhdGEsYz1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfTtyZXR1cm4gYS5SZXEoe3VybDpbIl91c2VycyIsYi5faWRdLG1ldGhvZDoiUFVUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShiKX0pLnRoZW4oZnVuY3Rpb24oKXtjdy5saWIubm90ZShhLmxhbmcuTVNHX09LLmFzc2lnbihjKGIubmFtZSkpLCJvayIpLCQubXkucmFkaW8oImRidXBkYXRlIiwiX3VzZXJzIil9KS5mYWlsKGZ1bmN0aW9uKHgsZCl7Y3cubGliLm5vdGUoYS5sYW5nLk1TR19GQUlMLmFzc2lnbihjKGIubmFtZSkseCxjKGQpKSwiZXJyb3IiKX0pfSx1aTp7IiN1bmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgubmFtZT1hLHguX2lkPSJvcmcuY291Y2hkYi51c2VyOiIrYSkseC5uYW1lfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmhhcygiOiIpfHwvXl8vLnRlc3QoYSk/dGhpcy5sYW5nLkVSUl9OOnRoaXMuVXNlcnNbYV0mJiF4Ll9yZXY/dGhpcy5sYW5nLkVSUl9OWDp2b2lkIDB9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4Ll9yZXZ9LCJzZWxmOnhncmF5IjpmdW5jdGlvbih4KXtyZXR1cm4hIXguX3Jldn19fSwiI3VwYXNzIjoicGFzc3dvcmQiLCIjdXJvbGVzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdXJvbGVzIix0aGlzLlJvbGVzLCJQTENfUiIpfSxiaW5kOiJyb2xlcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtpZihhLmZpbmQoL15fLykpcmV0dXJuIHRoaXMubGFuZy5FUlJfUn19LCIjdWFjY2VzcyI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuU2VjLGQ9e30sZT1bXSxmPXt9LGc9W10saD1bXSxpPSc8c3BhbiBjbGFzcz0iZnc1MDAiPnsxfSA8L3NwYW4+IHsyfSc7cmV0dXJuIHgucm9sZXMuZm9yRWFjaChmdW5jdGlvbih4KXtjW3hdJiYoJC5leHRlbmQoZCxjW3hdLmEpLCQuZXh0ZW5kKGYsY1t4XS5tKSl9KSwkLmV4dGVuZChkLGIuSXMuYSksJC5leHRlbmQoZixiLklzLm0pLGU9T2JqZWN0LmtleXMoZCkuc29ydCgpLGc9T2JqZWN0LmtleXMoZikuc3VidHJhY3QoZSkuc29ydCgpLGUubGVuZ3RoJiYoZS5sZW5ndGg+MjA/aC5wdXNoKGkuYXNzaWduKCJBZG1pbiIsIm9mICIrZS5sZW5ndGgrIiBEQnMiKSk6aC5wdXNoKGkuYXNzaWduKCJBZG1pbjoiLGUubWFwKHg9PngudHJ1bmNhdGUoMjAsIm1pZGRsZSIsIuKApiIpKS5qb2luKCIsICIpKSkpLGcubGVuZ3RoJiYoZy5sZW5ndGg+MjA/aC5wdXNoKGkuYXNzaWduKCJNZW1iZXIiLCJvZiAiK2cubGVuZ3RoKyIgREJzIikpOmgucHVzaChpLmFzc2lnbigiTWVtYmVyOiIsZy5tYXAoeD0+eC50cnVuY2F0ZSgyMCwibWlkZGxlIiwi4oCmIikpLmpvaW4oIiwgIikpKSksbnVsbD09YSYmYi5teS50cmlnZ2VyKCIjdWFjY2VzcyIsImxheW91dCIpLGguam9pbigiPGJyPiIpfSx3YXRjaDoiI3Vyb2xlcyIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LnJvbGVzLmxlbmd0aH19fSwiI2J0bi1zdGFydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2lmKHguX3Jldil7dmFyIGM9Y3cubGliLmRyeShPYmplY3QuY2xvbmUoeCwhMCkpO2MucGFzc3dvcmQ/KGRlbGV0ZSBjLmRlcml2ZWRfa2V5LGRlbGV0ZSBjLml0ZXJhdGlvbnMsZGVsZXRlIGMucGFzc3dvcmRfc2NoZW1lKTpkZWxldGUgYy5wYXNzd29yZCxiLnNhdmVVc2VyKGMpLnRoZW4oZnVuY3Rpb24oKXtiLm15LmNhbmNlbCgpfSl9ZWxzZSBiLnNhdmVVc2VyKCkudGhlbihmdW5jdGlvbigpe2IubXkuY2FuY2VsKCl9KX19LHdhdGNoOlsiI3VuYW1lIiwiI3Vyb2xlcyIsIiN1cGFzcyJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5teS52YWxpZCgpfHwheC5uYW1lfHwheC5wYXNzd29yZCYmIXguX3Jldn19fSwiI2J0bi1vdGhlcmRvYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuISF4Ll9yZXZ8fCEheC5uYW1lfHwhIXgucGFzc3dvcmR8fHgucm9sZXMubGVuZ3RoPjB9fSx3YXRjaDpbIiN1bmFtZSIsIiN1cGFzcyIsIiN1cm9sZXMiXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5TZWwyU2Nyb2xsKHgsITEpLFsiI3VhY2Nlc3MiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXguZmluZChhKTsiZnVuY3Rpb24iPT10eXBlb2YgYi5nZXROaWNlU2Nyb2xsJiZiLmdldE5pY2VTY3JvbGwoKS5yZW1vdmUoKX0pfSxTMjpmdW5jdGlvbih4LGEsYil7dGhpcy5zZWxlY3QyKHRoaXMubXkuZmluZCh4KSx7dGFnczphLHBsYWNlaG9sZGVyOnRoaXMubGFuZ1tiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMix0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdfSl9LEhUTUw6Wyc8ZGl2IGlkPSJjdGl0bGUiIGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIj57VFhUX1RJVExFfTwvZGl2Picse3JvdzoiMTAwJSIsbGFiZWw6Ijc1cHgiLHJvd0NzczoibXktcm93IHB0MyBwYjMiLGxhYmVsQ3NzOiJteS1sYWJlbCJ9LFsie0xCTF9OfSIsImlucCN1bmFtZS5mczExMCIse3BsYzoie1BMQ19OfSJ9LCJtc2ciXSxbIntMQkxfUH0iLCJpbnAjdXBhc3MuZnMxMTAiLHtwbGM6IntQTENfUH0ifSwibXNnIl0se3Jvd0NzczoibXktcm93IHB0NyBwYjMiLGxhYmVsQ3NzOiJteS1sYWJlbCB2YXQgcHQ2In0sWyJ7TEJMX1J9IiwiaW5wI3Vyb2xlcy5mczEwNSIsIm1zZyJdLCc8ZGl2IGlkPSJ1YWNjZXNzIiBjbGFzcz0iaGlkZSBlbGwgdzEwMHAgZnM5MCBncmF5IGxoMTMwIG10NCBtYi00IHBsNzUiPjwvZGl2PicsJzxkaXYgY2xhc3M9Im10MTIgcHQxNSBidGQiPicsJzxidXR0b24gaWQ9ImJ0bi1zdGFydCIgY2xhc3M9ImdyZWVuIG1yMiI+e0JUTl9TQVZFfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsJzxkaXYgY2xhc3M9ImZyIj4nLCc8YSBocmVmPSIjX3VzZXJzL19uZXciIGlkPSJidG4tb3RoZXJkb2MiIGNsYXNzPSJidXR0b24gdGRuIGRpYiB2YXQiPicsJzxzcGFuIGNsYXNzPSIiPntCVE5fRE9DfTwvc3Bhbj4nLCI8L2E+IiwiPC9kaXY+IiwiPC9kaXY+Il0sc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjE2MHB4OyIsIiAjdWFjY2VzcyI6Im1heC1oZWlnaHQ6MzAwcHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxMb2dpbjp7aWQ6ImN3LlBob3Rvbi5Mb2dpbiIscGFyYW1zOntyZXN0eWxlOjM1MCxzdHJpY3Q6ITB9LGxhbmc6e30sZGF0YTp7bmFtZToiIixwYXNzd29yZDoiIn0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpLHguZmluZCgiI3Vwd2QiKS5vbigia2V5dXAubXkiLGZ1bmN0aW9uKGEpe3ZhciBiPWEua2V5Q29kZTsxMyE9YiYmMTAhPWJ8fHguZmluZCgiI2J0bi1zZW5kIikudHJpZ2dlcigiY2xpY2siKX0pLHguZmluZCgiI3VuYW1lIikub24oImtleXVwLm15IixmdW5jdGlvbihhKXt2YXIgYj1hLmtleUNvZGU7MTMhPWImJjEwIT1ifHx4LmZpbmQoIiN1cHdkIikuZm9jdXMoKX0pfSx1aTp7IiN1bmFtZSI6Im5hbWUiLCIjdXB3ZCI6InBhc3N3b3JkIiwiI2J0bi1zZW5kIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5kb0xvZ2luKCkudGhlbihmdW5jdGlvbigpe2IubXkuY2FuY2VsKCl9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5uYW1lfHwheC5wYXNzd29yZH19LHdhdGNoOlsiI3VuYW1lIiwiI3Vwd2QiXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxIVE1MOic8ZGl2IGNsYXNzPSJmczE1MCBsaDE0MCBmdzUwMCBtYjgiPntUWFRfTE9HSU59PC9kaXY+PGlucHV0IGNsYXNzPSJ3MTAwcCBmczEyMCBtYjE1IiBpZD0idW5hbWUiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ7UExDX1VOQU1FfSIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIj48aW5wdXQgY2xhc3M9IncxMDBwIGZzMTIwIG1iMTUiIGlkPSJ1cHdkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IntQTENfUFdEfSIgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+PGRpdiBjbGFzcz0icHQxNSBidGQiPjxidXR0b24gaWQ9ImJ0bi1zZW5kIiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9MT0dJTn08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj48L2Rpdj4nLGRvTG9naW46ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oIl9jb21waWxlZCIpLGI9JC5leHRlbmQoITAse30seC5kYXRhKSxjPXgubGFuZztyZXR1cm4geC5teS5yb290KCkucGFyZW50KCkuYWRkQ2xhc3MoIm1vZGFsLWJ1c3kiKSx4LlJlcSh7dXJsOlsiX3Nlc3Npb24iXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShiKX0pLnRoZW4oZnVuY3Rpb24oZCl7dmFyIGU9e25hbWU6ZC5uYW1lfHxiLm5hbWUscm9sZXM6ZC5yb2xlc30sZj0kLkRlZmVycmVkKCk7cmV0dXJuIGEmJiQuZXh0ZW5kKCEwLHdpbmRvdy5ERE9DLl9tZSxlKSx4LlBobygiR2V0TGlzdCIpKCkuYWx3YXlzKGZ1bmN0aW9uKCl7JC5teS5yYWRpbygidXNlckN0eCIsZSksY3cubGliLm5vdGUoYy5NU0dfQVVUSF9PSy5hc3NpZ24oKGIubmFtZXx8IiIpLmVzY2FwZUhUTUwoKSksIm9rIiksZi5yZXNvbHZlKCl9KSxmLnByb21pc2UoKX0pLmZhaWwoZnVuY3Rpb24oZCxlKXthJiYkLmV4dGVuZCh3aW5kb3cuRERPQy5fbWUse25hbWU6IiIscm9sZXM6W119KSwkLm15LnJhZGlvKCJ1c2VyQ3R4Iix7bmFtZTpudWxsLHJvbGVzOltdfSkseC5QaG8oIm15IikuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpLGN3LmxpYi5ub3RlKGMuTVNHX0FVVEhfRkFJTC5hc3NpZ24oKGIubmFtZXx8IiIpLmVzY2FwZUhUTUwoKSxkLGUuZXNjYXBlSFRNTCgpKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe3gubXkucm9vdCgpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJtb2RhbC1idXN5Iil9KX0sc3R5bGU6eyIiOiJmb250LXNpemU6MTdweDsgbGluZS1oZWlnaHQ6MS43ZW07In19LExvZ291dDp7aWQ6ImN3LlBob3Rvbi5Mb2dvdXQiLHBhcmFtczp7cmVzdHlsZTozNTAsc3RyaWN0OiEwfSxsYW5nOnt9LGRhdGE6e30saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSxIVE1MOic8ZGl2IGlkPSJsdGl0bGUiIGNsYXNzPSJtYjYgbGgxNDAiPjwvZGl2PjxkaXYgY2xhc3M9ImdyYXkgcGwxIj48ZGl2IGlkPSJ4cHJvZmlsZSI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIj48L3NwYW4+IDxhIGlkPSJidG4tcHJvZmlsZSIgaHJlZj0iIiBjbGFzcz0icHNldWRvbGluayB0ZG4iPntUWFRfUFJPRklMRX08L2E+PC9kaXY+PGRpdj48c3BhbiBjbGFzcz0iZmktcG93ZXIiPjwvc3Bhbj4gPHNwYW4gaWQ9ImJ0bi1sb2dvdXQiIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiI+e1RYVF9MT0dPVVR9PC9zcGFuPjwvZGl2PjwvZGl2PicsdWk6eyIjbHRpdGxlIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSc8ZGl2IGNsYXNzPSJmczEzMCB4Z3JheSBsaDEyMCB3MTAwcCBvaCBlbGwiPnsxfTwvZGl2PicuYXNzaWduKGN3Lm1lKCkuZXNjYXBlSFRNTCgpKSxjPWN3Lm1lKCJyb2xlcyIpfHxbXTtyZXR1cm4gYy5sZW5ndGgmJihiKz0nPGRpdiBjbGFzcz0iZ3JheSBmczkwIj57MX08L2Rpdj4nLmFzc2lnbihjLm1hcChmdW5jdGlvbih4KXtyZXR1cm4iPG5vYnI+Iit4LmVzY2FwZUhUTUwoKSsiPC9ub2JyPiJ9KS5qb2luKCIsICIpKSksYn19LCIjYnRuLXByb2ZpbGUiOntkZWxheTozMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtiLmF0dHIoImhyZWYiLCIjX3VzZXJzL29yZy5jb3VjaGRiLnVzZXI6Iitjdy5tZSgpKSxudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sIiNidG4tbG9nb3V0Ijp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHRoaXMuZG9Mb2dvdXQoKSx0aGlzLm15LmNhbmNlbCgpKX19fSxkb0xvZ291dDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmxhbmcsYj1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfTtjdy5saWIubm90ZShhLk1TR19MT0dPVVRfU1RBUlQsIiIsMWUzKSx4LlJlcSh7dXJsOlsiX3Nlc3Npb24iXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7bmFtZToiMCIscGFzc3dvcmQ6IjAifSl9KS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGEuTVNHX0xPR09VVF9GQUlMLmFzc2lnbig5OTksIlNlcnZlciByZXR1cm5lZCBpbnZhbGlkIHJlc3BvbnNlIiksImVycm9yIil9KS5mYWlsKGZ1bmN0aW9uKGMsZCxlKXs0MDEhPWMmJjQwMyE9Yz8oY3cubGliLm5vdGUoYS5NU0dfTE9HT1VUX0ZBSUwuYXNzaWduKGMsYihkKSksImVycm9yIikseC5QaG8oIm15IikuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpKTpjdy5saWIubm90ZShhLk1TR19MT0dPVVRfT0ssIm9rIil9KX19LENvbXBhY3Q6e2lkOiJjdy5QaG90b24uQ29tcGFjdCIsbGFuZzp7fSxkYXRhOntzZWxlY3Rpb246W10sb3BzOlsiZG9jcyJdLGRkb2NzOltdLGRzZWxlY3Rpb246W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtiLkFsbD1hLlBobygiQWxsIiksYi5hbGw9T2JqZWN0LmtleXMoYi5BbGwpLnNvcnQoKSx4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSx4LnRoZW4oZnVuY3Rpb24oKXthLlNlbDJTY3JvbGwoeCwhMCl9LmRlYm91bmNlKDE1KSl9LENCOntkb2NzOmZ1bmN0aW9uKCl7fSxkZG9jczpmdW5jdGlvbigpe30sdmlld3M6ZnVuY3Rpb24oKXt9fSx1aTp7IiNjdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LnNlbGVjdGlvbi5sZW5ndGg/dGhpcy5sYW5nLlRYVF9USVRMRTE6dGhpcy5sYW5nLlRYVF9USVRMRX0sd2F0Y2g6WyIjZGJzIl19LCIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7ZGF0YTp0aGlzLmRhdGEuYWxsLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITAscGxhY2Vob2xkZXI6dGhpcy5sYW5nLlBMQ19EQlMsbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9LCEwKX0sYmluZDoic2VsZWN0aW9uIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aD8iIjp0aGlzLmxhbmcuRVJSX0RCU30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5kZG9jcy5sZW5ndGg+MH19fSwiI2Rib3BzIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3Moe3RhZ3M6dGhpcy5sYW5nLlRBR19PUC50byh0aGlzLmRhdGEuZGRvY3MubGVuZ3RoPzM6Mil9KX0sYmluZDoib3BzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aD8iIjp0aGlzLmxhbmcuRVJSX09QfX0sIiNkZG9jcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse2RhdGE6dGhpcy5kYXRhLmRkb2NzLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0OiJfZGVzaWduLyIreH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjp0aGlzLmxhbmcuUExDX0RET0NTLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImRzZWxlY3Rpb24iLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIWEubGVuZ3RoJiZ4Lm9wcy5pbmRleE9mKCJkZG9jcyIpPi0xP3RoaXMubGFuZy5FUlJfRERPQ1M6IiJ9LGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybi0xPT14Lm9wcy5pbmRleE9mKCJkZG9jcyIpfHwxIT14LnNlbGVjdGlvbi5sZW5ndGh9fSx3YXRjaDpbIiNkYm9wcyIsIiNkYnMiXX0sIiNidG4tc3RhcnQiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dHJ5e3RoaXMuZG9Db21wYWN0KCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jYW5jZWwoKX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5zZWxlY3Rpb24ubGVuZ3RofHwheC5vcHMubGVuZ3RofHwhdGhpcy5teS52YWxpZCgpfX0sd2F0Y2g6WyIjZGJzIiwiI2Rib3BzIiwiI2Rkb2NzIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sZG9Db21wYWN0OmZ1bmN0aW9uKCl7dmFyIHgsYSxiPXRoaXMsYz0kLmV4dGVuZCghMCx7fSxiLmRhdGEpLGQ9KGIuUGhvKCJfY29tcGlsZWQiKSxiLmxhbmcpLGU9Yy5zZWxlY3Rpb24ubGVuZ3RoO2Z1bmN0aW9uIGYoKXsoZS09MSk+MHx8WzcwMCwyNTAwLDc1MDAsMTVlM10uZm9yRWFjaChmdW5jdGlvbih4KXtnLmRlYm91bmNlKHgpKCl9KX1mdW5jdGlvbiBnKCl7JC5teS5yYWRpbygiZGJsaXN0IixjLnNlbGVjdGlvbil9Yy5vcHMubGVuZ3RoJiZlJiZPYmplY3Qua2V5cyhjLkFsbCkuaW50ZXJzZWN0KGMuc2VsZWN0aW9uKS5sZW5ndGgmJmMuc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGc9W107Yy5vcHMuZmluZCgiZG9jcyIpJiZnLnB1c2goYi5SZXEoe3VybDpbZSwiX2NvbXBhY3QiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2NvbnNvbGUubG9nKCJFcnJvciBzdGFydGluZyBkYXRhIGNvbXBhY3Rpb24gb2YgIitlLHgsYSxiKX0pKSxjLm9wcy5maW5kKCJ2aWV3cyIpJiZnLnB1c2goYi5SZXEoe3VybDpbZSwiX3ZpZXdfY2xlYW51cCJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y29uc29sZS5sb2coIkVycm9yIHN0YXJ0aW5nIHB1cmdpbmcgb2xkIHZpZXdzIG9mICIrZSx4LGEsYil9KSksYy5vcHMuZmluZCgiZGRvY3MiKSYmKHg9Yy5kc2VsZWN0aW9uLmNvbXBhY3QoITApLGE9ZnVuY3Rpb24oKXtiLkNCLmRkb2NzKHgpfS5kZWJvdW5jZSg1KS5hZnRlcih4Lmxlbmd0aCkseC5mb3JFYWNoKGZ1bmN0aW9uKHgpe2cucHVzaChiLlJlcSh7dXJsOltlLCJfY29tcGFjdCIseF0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiJ9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtjb25zb2xlLmxvZygiRXJyb3Igc3RhcnRpbmcgdmlldyBjb21wYWN0aW9uIG9mICIrZSsiL19kZXNpZ24vIit4LGEsYixjKX0pLmFsd2F5cyhmdW5jdGlvbigpe2EoKX0pKX0pKSxRLmFsbChnKS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGQuTVNHX0NPTVBBQ1RfU1RBUlQuYXNzaWduKGUpKSxmKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjdy5saWIubm90ZShkLk1TR19DT01QQUNUX0ZBSUxfU09NRSwiZXJyb3IiKSxmKCl9KX0ubGF6eShiLlBobygiQ2ZnIikuYmF0Y2hDb21wYWN0RGVsYXkpKX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKX0sSFRNTDonPGRpdiBpZD0iY3RpdGxlIiBjbGFzcz0iZnMxMzAgbWIxMCBib2xkZXIiPntUWFRfVElUTEV9PC9kaXY+PGRpdiBjbGFzcz0ibWIxMCBmczEwNSI+PGlucHV0IGlkPSJkYnMiIGNsYXNzPSJ3MTAwcCI+PC9kaXY+PGRpdiBjbGFzcz0ibWIxMCI+PHNwYW4gaWQ9ImRib3BzIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibWIxMCBmczEwNSBoaWRlIj48aW5wdXQgaWQ9ImRkb2NzIiBjbGFzcz0idzEwMHAiPjwvZGl2PjxkaXYgY2xhc3M9Im10MTAgcHQxMCBidGQiPjxidXR0b24gaWQ9ImJ0bi1zdGFydCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+PC9kaXY+JyxzdHlsZTp7IiBpbnB1dCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyIsIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MjE0cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxOZXdEQjp7aWQ6ImN3LlBob3Rvbi5OZXdEQiIsbGFuZzp7fSxkYXRhOntkYnM6W10sYWxsOltdLGFsbG86e30sdXNlcnM6W10scm9sZXM6W10sYWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119LHE6MCxuOjAscGFydGl0aW9uZWQ6ITF9LFVzZXJzOltdLFMyOmZ1bmN0aW9uKHgsYSxiKXt0aGlzLnNlbGVjdDIodGhpcy5teS5maW5kKHgpLHt0YWdzOmEscGxhY2Vob2xkZXI6dGhpcy5sYW5nW2JdLHRva2VuU2VwYXJhdG9yczpbIiAiLCIsIl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpO2Z1bmN0aW9uIGQoKXt4LnBhcmVudCgpLmNzcygiaGVpZ2h0IiwiYXV0byIpfWIuYWxsPU9iamVjdC5rZXlzKGMpLGIuYWxsbz1jdy5saWIuYTJvKGIuYWxsKSx4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpLGIucm9sZXM9T2JqZWN0LmtleXMoT2JqZWN0LmtleXMoYykucmVkdWNlKGZ1bmN0aW9uKHgsYSl7dmFyIGI9Y1thXS5zZWN1cml0eTtyZXR1cm5bXS5hZGQoYi5hZG1pbnMucm9sZXMpLmFkZChiLm1lbWJlcnMucm9sZXMpLmZvckVhY2goZnVuY3Rpb24oYSl7eFthXT0hMH0pLHh9LHt9KSkuYWRkKCJfYWRtaW4iKS51bmlxdWUoKS5zb3J0KCksYi5xPWEuUGhvKCJDb3VjaCIpLnEsYi5uPWEuUGhvKCJDb3VjaCIpLm4seC5wYXJlbnQoKS5vbigiZHJhZ3N0b3AiLGQpLHgudGhlbihmdW5jdGlvbigpe2QoKX0pLFEuYWxsKFthLlBobygiR2V0VXNlcnMiKSgpLnRoZW4oZnVuY3Rpb24oeCl7Yi51c2Vycz14fSkseF0pLnRoZW4oZnVuY3Rpb24oKXthLlMyKCIjdWFkbSIsYS5kYXRhLnVzZXJzLCJQTENfVUFETSIpLGEuUzIoIiN1bWVtIixhLmRhdGEudXNlcnMsIlBMQ19VTUVNIiksYS5TZWwyU2Nyb2xsKHgsITApfSl9LHVpOnsiI2N0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PXguZGJzLmxlbmd0aD90aGlzLmxhbmcuVFhUX1RJVExFMTp0aGlzLmxhbmcuVFhUX1RJVExFfSx3YXRjaDpbIiNkYnMiXX0sIiNkYnMiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHt0YWdzOltdLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLHRva2VuU2VwYXJhdG9yczpbIiAiLCIsIl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0sYmluZDoiZGJzIixjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPVtdLGM9W10sZD1bXTtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3guYWxsb1thXSYmYi5wdXNoKGEpLC9eW2EtejAtOV8kXChcKVwrXC1cL10rJC8udGVzdChhKXx8Yy5wdXNoKGEpLC9eW2Etel0vLnRlc3QoYSl8fGQucHVzaChhKX0pLGIubGVuZ3RoP3RoaXMubGFuZy5FUlJfREJfRVhJU1QuYXNzaWduKGIuam9pbigiLCAiKS5lc2NhcGVIVE1MKCkpOmMubGVuZ3RoP3RoaXMubGFuZy5FUlJfREJfTkFNRTpkLmxlbmd0aD90aGlzLmxhbmcuRVJSX0RCX1VORDp2b2lkIDB9fSwiI3VhZG0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiN1YWRtIix0aGlzLmRhdGEudXNlcnMsIlBMQ19VQURNIil9LGJpbmQ6ImFkbWlucy5uYW1lcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pc1VuYW1lcyhhKX19LCIjZ2FkbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI2dhZG0iLHRoaXMuZGF0YS5yb2xlcywiUExDX0dBRE0iKX0sYmluZDoiYWRtaW5zLnJvbGVzIn0sIiN1bWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdW1lbSIsdGhpcy5kYXRhLnVzZXJzLCJQTENfVU1FTSIpfSxiaW5kOiJtZW1iZXJzLm5hbWVzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlzVW5hbWVzKGEpfX0sIiNnbWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjZ21lbSIsdGhpcy5kYXRhLnJvbGVzLCJQTENfR01FTSIpfSxiaW5kOiJtZW1iZXJzLnJvbGVzIn0sIiNxc2hhcmRzIjoicSIsIiNxc2hhcmRzdHh0Ijp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sYW5nLlRYVF9TSEFSRFMoeC5xKX0sd2F0Y2g6WyIjcXNoYXJkcyJdfSwiI25jb3BpZXMiOiJuIiwiI25jb3BpZXN0eHQiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxhbmcuVFhUX0NPUElFUyh4Lm4pfSx3YXRjaDpbIiNuY29waWVzIl19LCdpbnB1dFtuYW1lPSJwYXJ0aXRpb25lZCJdJzp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5wYXJ0aXRpb25lZD1hLmxlbmd0aD4wKSx4LnBhcnRpdGlvbmVkP1sicGFydGl0aW9uZWQiXTpbXX0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLlBobygiQ291Y2giKS52ZXI8IjAwMy4ifHx4LnE8Mn19LHdhdGNoOlsiI3FzaGFyZHMiXX0sIiNjbHVzdGVyaW5nIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGhvKCJDb3VjaCIpLnZlcjwiMDAyLiJ9fX0sIiNidG4tc3RhcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4gdGhpcy5sYW5nWyJCVE5fU1RBUlQiKyh4Lm1lbWJlcnMubmFtZXMreC5tZW1iZXJzLnJvbGVzPyIiOiJfUFVCTElDIildO3RyeXt0aGlzLmRvQ3JlYXRlKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jYW5jZWwoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmRicy5sZW5ndGh8fCF0aGlzLm15LnZhbGlkKCl9LCJzZWxmOm9yYW5nZSI6ZnVuY3Rpb24oeCl7cmV0dXJuISh4Lm1lbWJlcnMubmFtZXMreC5tZW1iZXJzLnJvbGVzKX0sInNlbGY6Z3JlZW4iOmZ1bmN0aW9uKHgpe3JldHVybiEhKHgubWVtYmVycy5uYW1lcyt4Lm1lbWJlcnMucm9sZXMpfX0sd2F0Y2g6WyIjZGJzIiwiI3VtZW0iLCIjZ21lbSJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LGRvQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguUGhvKCJDb3VjaCIpLGM9Yi52ZXIsZD17bmFtZToiIixzZWN1cml0eTpPYmplY3Quc2VsZWN0KGEsWyJhZG1pbnMiLCJtZW1iZXJzIl0pfTtjPiIwMDIuIiYmK2IucT4wJiYkLmV4dGVuZChkLHtxOithLnEsbjorYS5ufSksYz4iMDAzLiImJmEucGFydGl0aW9uZWQmJithLnE+MSYmKGQucGFydGl0aW9uZWQ9ITApO3ZhciBlPWEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gJC5leHRlbmQoITAse30sZCx7bmFtZTp4fSl9KTtyZXR1cm4geC5QaG8oIkNyZWF0ZURCcyIpKGUsITEpfSxpc1VuYW1lczpmdW5jdGlvbih4KXt2YXIgYT0iIixiPXRoaXM7cmV0dXJuIHguZm9yRWFjaChmdW5jdGlvbih4KXsiX2FkbWluIiE9eCYmKHguaGFzKCI6Iil8fC9eXy8udGVzdCh4KSkmJihhPWIubGFuZy5FUlJfVU5BTUUpfSksYX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTMwIG1iMiBsaDE2MCBib2xkZXIgY20iPicsJzxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiAnLCc8c3BhbiBpZD0iY3RpdGxlIj57VFhUX1RJVExFfTwvc3Bhbj4nLCI8L2Rpdj4iLHtyb3c6IjEwMCUiLGxhYmVsOiI2MHB4Iixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIixsYWJlbENzczoibXktbGFiZWwifSxbIntMQkxfREJTfSIsImlucCNkYnMuZnMxMDUubGgxNjAiLCJtc2ciXSwnPHNlY3Rpb24gaWQ9ImNsdXN0ZXJpbmciPicsWyJ7TEJMX0NMVVNURVJ9IiwnPHNwYW4gY2xhc3M9ImZzOTUiPicsIm51bSNxc2hhcmRzLnc1MC5tcjUiLHttaW46MSxtYXg6MzJ9LCJzcGFuI3FzaGFyZHN0eHQuZGliLnc3MCIsIm51bSNuY29waWVzLnc1MC5tcjUiLHttaW46MSxtYXg6MTZ9LCJzcGFuI25jb3BpZXN0eHQuZGliLnc5MCIsJzxzcGFuIGNsYXNzPSJoaWRlIj48bGFiZWwgY2xhc3M9ImRpYiB4Z3JheSBjcCI+JywnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJwYXJ0aXRpb25lZCIgY2xhc3M9ImZzMTEwIHZhbSBtcjMgY3AiIHZhbHVlPSJwYXJ0aXRpb25lZCI+IHtUWFRfUEFSVElUSU9OU30nLCI8L2xhYmVsPjwvc3Bhbj4iLCI8L3NwYW4+Il0sIjwvc2VjdGlvbj4iLCc8ZGl2IGNsYXNzPSJmczEyMCBtdDEwIG1iMiI+e1RYVF9BRE19PC9kaXY+JyxbIntMQkxfVUFETX0iLCJpbnAjdWFkbS5mczEwNS5saDE2MCIsIm1zZyJdLFsie0xCTF9HQURNfSIsImlucCNnYWRtLmZzMTA1LmxoMTYwIiwibXNnIl0sJzxkaXYgY2xhc3M9ImZzMTIwIG10MTAgbWIyIj57VFhUX01FTX08L2Rpdj4nLFsie0xCTF9VQURNfSIsImlucCN1bWVtLmZzMTA1LmxoMTYwIiwibXNnIl0sWyJ7TEJMX0dBRE19IiwiaW5wI2dtZW0uZnMxMDUubGgxNjAiLCJtc2ciXSwnPGRpdiBjbGFzcz0ibXQxMiBwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9TVEFSVH08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxzdHlsZTp7IiBpbnB1dCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyIsIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6NTZweDsifSxwYXJhbXM6e3N0cmljdDohMH19LERlbERCOntpZDoiY3cuUGhvdG9uLkRlbERCIixsYW5nOnt9LGRhdGE6e2RiczpbXSxhbGw6W10sYWxsbzp7fSxyZW5ldzohMSxyZW5ld2FjbDohMCxyZW5ld3FucDohMCxoYXNhY2w6ITAsaGFzcW5wOiEwLHJlc29yZTpbXX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpO2IuZGJzLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9Y1t4XTthLmNsdXN0ZXImJmEuY2x1c3Rlci5xfHwoYi5oYXNxbnA9ITEpLGEuc2VjdXJpdHkmJmEuc2VjdXJpdHkuc3RhbXB8fChiLmhhc2FjbD0hMSl9KSxiLmFsbD1iLmRicy5zbGljZSgwKSxiLmFsbG89Y3cubGliLmEybyhiLmFsbCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSx4LnRoZW4oZnVuY3Rpb24oKXthLlNlbDJTY3JvbGwoeCwhMCl9LmRlYm91bmNlKDE1KSl9LHVpOnsiI2N0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PXguZGJzLmxlbmd0aD90aGlzLmxhbmcuVFhUX1RJVExFMTp0aGlzLmxhbmcuVFhUX1RJVExFfSx3YXRjaDpbIiNkYnMiXX0sIiNkYnMiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuZGF0YS5hbGw7dGhpcy5zZWxlY3QyKHgse2RhdGE6YS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLHJlYWRPbmx5OjE9PWEubGVuZ3RoLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImRicyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9EQlN9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PXguYWxsLmxlbmd0aH19fSwiI2RlbHdhcm4iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPXtzaXplOjAsY291bnQ6MCxkaXNrOjAsYmFzZToobmV3IFVSTChiLlBobygiQmFzZSIpKS5ob3N0bmFtZSsiIikudHJ1bmNhdGUoNDUsIm1pZGRsZSIpLmVzY2FwZUhUTUwoKX0sZD1iLlBobygiQWxsIik7cmV0dXJuIHguZGJzLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9ZFt4XTthJiYoYy5zaXplKz0rYS5kYXRhX3NpemV8fDAsYy5kaXNrKz0rYS5kaXNrX3NpemV8fDApfSksYy5jb3VudD14LmRicy5sZW5ndGgseC5kYnMubGVuZ3RoP2IubGFuZy5UWFRfV0FSTihjKToiIn0sd2F0Y2g6IiNkYnMifSwiI2RlbG5ldyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmVuZXc9ISFhLmxlbmd0aCkseC5yZW5ldz9bIm9rIl06W119fSwiI2RlbG5ldzEiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJlbmV3YWNsPSEhYS5sZW5ndGgpLHgucmVuZXdhY2w/WyJvayJdOltdfSx3YXRjaDpbIiNkZWxuZXciXSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguaGFzYWNsfSwiOmRpc2FibGVkIG84MCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgucmVuZXd9fX0sIiNkZWxuZXcyIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZW5ld3FucD0hIWEubGVuZ3RoKSx4LnJlbmV3cW5wP1sib2siXTpbXX0sd2F0Y2g6WyIjZGVsbmV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lmhhc3FucHx8dGhpcy5QaG8oIkNvdWNoIikudmVyPCIwMDIuIn0sIjpkaXNhYmxlZCBvODAiOmZ1bmN0aW9uKHgpe3JldHVybiF4LnJlbmV3fX19LCIjYnRuLXN0YXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHRoaXMubGFuZy5CVE5fU1RBUlQoeC5kYnMubGVuZ3RoKTt0cnl7dGhpcy5kb0RlbGV0ZVooKX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX10aGlzLm15LmNvbW1pdCgpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXguZGJzLmxlbmd0aHx8IXRoaXMubXkudmFsaWQoKX19LHdhdGNoOlsiI2RicyJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LGRvRGVsZXRlWjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0kLmV4dGVuZCghMCx7fSx4LmRhdGEpLGI9KHguUGhvKCJfY29tcGlsZWQiKSx4LlBobygiQ2ZnIikuYmF0Y2hDcmVhdGVEZWxheSksYz1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfSxkPXgubGFuZyxlPWEuZGJzLGY9ZS5sZW5ndGgsZz1bXSxoPVtdO2lmKGYpe3ZhciBpPXguUGhvKCJBbGwiKTthLnJlbmV3JiZlLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9aVt4XTtpZihiKXt2YXIgYz17Y3JlYXRlOiEwLG5hbWU6eCxzZWN1cml0eTpudWxsfTtiLnNlY3VyaXR5JiZiLnNlY3VyaXR5LnN0YW1wJiZhLnJlbmV3YWNsJiYoYy5zZWN1cml0eT0kLmV4dGVuZCghMCx7fSxPYmplY3Quc2VsZWN0KGIuc2VjdXJpdHksWyJhZG1pbnMiLCJtZW1iZXJzIl0pKSksYi5jbHVzdGVyJiZiLmNsdXN0ZXIucSYmYS5yZW5ld3FucCYmKGMucT1iLmNsdXN0ZXIucSxjLm49Yi5jbHVzdGVyLm4sYy5wYXJ0aXRpb25lZD0hIWIucHJvcHMmJiEhYi5wcm9wcy5wYXJ0aXRpb25lZCksZy5wdXNoKGMpfX0pLFEuYWxsU2V0dGxlZChlLm1hcChmdW5jdGlvbihlLGYpe3ZhciBnPSQuRGVmZXJyZWQoKTtyZXR1cm4gZnVuY3Rpb24oKXt4LlJlcSh7dXJsOltlXSxtZXRob2Q6IkRFTEVURSJ9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZC5NU0dfT0suYXNzaWduKGUpLCJvayIpLGEucmVuZXd8fCQubXkucmFkaW8oImRiZGVsZXRlZCIsZSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtoLnB1c2goZSksY3cubGliLm5vdGUoZC5NU0dfRkFJTC5hc3NpZ24oZSx4LGMoYSkpLCJlcnJvciIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zy5yZXNvbHZlKCl9KX0uZGVsYXkoZipiKSxnLnByb21pc2UoKX0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuICQubXkucmFkaW8oImRibGlzdCIsW10pLGEucmVuZXc/eC5QaG8oIkNyZWF0ZURCcyIpKGcuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiFoLmZpbmQoeC5uYW1lKX0pLCExKS50aGVuKGZ1bmN0aW9uKCl7JC5teS5yYWRpbygiZGJsaXN0IixnLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkuc3VidHJhY3QoaCkpfSk6YS5kYnN9KX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6Wyc8ZGl2IGlkPSJjdGl0bGUiIGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIHJlZCI+e1RYVF9USVRMRX08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtYjEwIGZzMTA1Ij48aW5wdXQgaWQ9ImRicyIgY2xhc3M9IncxMDBwIj48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtYjEwIj48c3BhbiBpZD0iZGVsd2FybiI+PC9zcGFuPjwvZGl2PicsJzxkaXYgY2xhc3M9Im1iOCI+JywnPGxhYmVsIGNsYXNzPSJ4Z3JheSBsaDEzMCI+JywnPHNwYW4gY2xhc3M9IncyMCBkaWIiPjxpbnB1dCBpZD0iZGVsbmV3IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9Im9rIj4gPC9zcGFuPntMQkxfTkVXfScsIjwvbGFiZWw+IiwnPGRpdj48bGFiZWwgY2xhc3M9InhncmF5IGxoMTMwIHBsMjAiPjxpbnB1dCBpZD0iZGVsbmV3MSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJvayI+Jm5ic3A7IHtMQkxfTkVXX0FDTH08L2xhYmVsPjwvZGl2PicsJzxkaXY+PGxhYmVsIGNsYXNzPSJ4Z3JheSBsaDEzMCBwbDIwIj48aW5wdXQgaWQ9ImRlbG5ldzIiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ib2siPiZuYnNwOyB7TEJMX05FV19RTlB9PC9sYWJlbD48L2Rpdj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJtdDEyIHB0MTUgYnRkIj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJyZWQgbWFya2ZvY3VzIG1yMiI+e0JUTl9TVEFSVH08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4IiwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDoyMTRweDsifSxwYXJhbXM6e3N0cmljdDohMH19LFNlY09iajp7aWQ6ImN3LlBob3Rvbi5TZWNPYmoiLGxhbmc6e30sZGF0YTp7ZGJzOltdLGFsbDpbXSxhbGxvOnt9LHVzZXJzOltdLHJvbGVzOltdLGFkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfX0sVXNlcnM6W10sUzI6ZnVuY3Rpb24oeCxhLGIsYyl7dGhpcy5zZWxlY3QyKHRoaXMubXkuZmluZCh4KSx7dGFnczphLHBsYWNlaG9sZGVyOnRoaXMubGFuZ1tiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0sISFjKX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpO2IuYWxsPU9iamVjdC5rZXlzKGMpLnNvcnQoKSxiLmFsbG89Y3cubGliLmEybyhiLmFsbCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxiLnJvbGVzPU9iamVjdC5rZXlzKE9iamVjdC5rZXlzKGMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3ZhciBiPWNbYV0uc2VjdXJpdHk7cmV0dXJuW10uYWRkKGIuYWRtaW5zLnJvbGVzKS5hZGQoYi5tZW1iZXJzLnJvbGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3hbYV09ITB9KSx4fSx7fSkpLmFkZCgiX2FkbWluIikudW5pcXVlKCkuc29ydCgpLFEuYWxsKFthLlBobygiR2V0VXNlcnMiKSgpLnRoZW4oZnVuY3Rpb24oeCl7Yi51c2Vycz14fSkseF0pLnRoZW4oZnVuY3Rpb24oKXthLlMyKCIjdWFkbSIsYS5kYXRhLnVzZXJzLCJQTENfVUFETSIpLGEuUzIoIiN1bWVtIixhLmRhdGEudXNlcnMsIlBMQ19VTUVNIikseC50cmlnZ2VyKCJsYXlvdXQiKSxhLlNlbDJTY3JvbGwoeCwhMCl9KX0sdWk6eyIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7dGFnczp0aGlzLmRhdGEuYWxsLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITAscGxhY2Vob2xkZXI6dGhpcy5sYW5nLlBMQ19EQlMsbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9LCEwKX0sYmluZDoiZGJzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aD8iIjp0aGlzLmxhbmcuRVJSX0RCU319LCIjdWFkbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI3VhZG0iLHRoaXMuZGF0YS51c2VycywiUExDX1VBRE0iLCEwKX0sYmluZDoiYWRtaW5zLm5hbWVzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlzVW5hbWVzKGEpfX0sIiNnYWRtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjZ2FkbSIsdGhpcy5kYXRhLnJvbGVzLCJQTENfR0FETSIpfSxiaW5kOiJhZG1pbnMucm9sZXMifSwiI3VtZW0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiN1bWVtIix0aGlzLmRhdGEudXNlcnMsIlBMQ19VTUVNIiwhMCl9LGJpbmQ6Im1lbWJlcnMubmFtZXMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuaXNVbmFtZXMoYSl9fSwiI2dtZW0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiNnbWVtIix0aGlzLmRhdGEucm9sZXMsIlBMQ19HTUVNIil9LGJpbmQ6Im1lbWJlcnMucm9sZXMifSwiI2J0bi1zdGFydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB0aGlzLmxhbmcuQlROX1NUQVJUO3RyeXt0aGlzLmRvU2VjVXBkYXRlKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jYW5jZWwoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmRicy5sZW5ndGh8fCF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiNkYnMiLCIjdW1lbSIsIiNnbWVtIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfSwiI2xheXByb3h5Ijp7ZGVsYXk6MTUwLHdhdGNoOlsiI2RicyIsIiN1YWRtIiwiI2dhZG0iLCIjdW1lbSIsIiNnbWVtIl0sYmluZDpmdW5jdGlvbigpe3RoaXMubXkudHJpZ2dlcigiI2xheXByb3h5IiwibGF5b3V0Iil9fX0saXNVbmFtZXM6ZnVuY3Rpb24oeCl7dmFyIGE9IiIsYj10aGlzO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7Il9hZG1pbiIhPXgmJih4LmhhcygiOiIpfHwvXl8vLnRlc3QoeCkpJiYoYT1iLmxhbmcuRVJSX1VOQU1FKX0pLGF9LGRvU2VjVXBkYXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSQuZXh0ZW5kKCEwLHt9LHguZGF0YSksYj0oeC5QaG8oIl9jb21waWxlZCIpLGZ1bmN0aW9uKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9KSxjPXgubGFuZyxkPWEuZGJzLmxlbmd0aCxlPU9iamVjdC5zZWxlY3QoYSxbImFkbWlucyIsIm1lbWJlcnMiXSksZj0oZS5tZW1iZXJzLm5hbWVzLGUubWVtYmVycy5yb2xlcyxlLmFkbWlucy5uYW1lcyxlLmFkbWlucy5yb2xlcyxlLm1lbWJlcnMubmFtZXMsZS5tZW1iZXJzLnJvbGVzLGEuZGJzKTtkJiZmLmZvckVhY2goZnVuY3Rpb24oYSxnKXt4LlJlcSh7dXJsOlthLCJfc2VjdXJpdHkiXSxtZXRob2Q6IlBVVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoZSl9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoYy5NU0dfT0suYXNzaWduKGEpLCJvayIpfSkuZmFpbChmdW5jdGlvbih4LGQsZSl7Y3cubGliLm5vdGUoYy5NU0dfRkFJTC5hc3NpZ24oYSx4LGIoZCkpLCJlcnJvciIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zz09ZC0xJiYkLm15LnJhZGlvKCJkYmxpc3QiLGYpfSl9LmxhenkoeC5QaG8oIkNmZyIpLmJhdGNoQ3JlYXRlRGVsYXkpKX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTMwIG1iMiBsaDE2MCBib2xkZXIiPntUWFRfVElUTEV9PC9kaXY+Jyx7cm93OiIxMDAlIixsYWJlbDoiNjBweCIscm93Q3NzOiJteS1yb3cgcHQzIHBiMyIsbGFiZWxDc3M6Im15LWxhYmVsIn0sWyJ7TEJMX0RCU30iLCJpbnAjZGJzLmZzMTA1IiwibXNnIl0sJzxkaXYgY2xhc3M9ImZzMTIwIG10MTAgbWIyIj57VFhUX0FETX08L2Rpdj4nLFsie0xCTF9VQURNfSIsImlucCN1YWRtLmZzMTA1IiwibXNnIl0sWyJ7TEJMX0dBRE19IiwiaW5wI2dhZG0uZnMxMDUiLCJtc2ciXSwnPGRpdiBjbGFzcz0iZnMxMjAgbXQxMCBtYjIiPntUWFRfTUVNfTwvZGl2PicsWyJ7TEJMX1VBRE19IiwiaW5wI3VtZW0uZnMxMDUiLCJtc2ciXSxbIntMQkxfR0FETX0iLCJpbnAjZ21lbS5mczEwNSIsIm1zZyJdLCc8ZGl2IGNsYXNzPSJtdDEyIHB0MTUgYnRkIj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJtYXJrZm9jdXMgZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiIGNsYXNzPSJtYXJrZm9jdXMiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsIjwvZGl2PiIsJzxkaXYgaWQ9ImxheXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+J10sc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjU2cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxSZXFKU09OOntpZDoiY3cuUGhvdG9uLlJlcUpTT04iLHBhcmFtczp7cmVzdHlsZToxMDAsc3RyaWN0OiEwfSxkYXRhOnt0ZXh0OiJMb2FkaW5nLi4uIixkcmFnOiExLGhlaWdodDoibm9uZSIscmVxOnt1cmw6W10saGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6ImdldCJ9LGNtOnttb2RlOiJqYXZhc2NyaXB0IixsaW5lTnVtYmVyczohMSxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiEwfX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2Z1bmN0aW9uIGMoeCl7Yi50ZXh0PUpTT04uc3RyaW5naWZ5KHgsbnVsbCwiICAiKSxhLm15LnJlY2FsYygiI3RyZXN1bHQiKX14Lmh0bWwoW2IuZHJhZz8nPGRpdiBpZD0iZHJhZ2dlciI+PC9kaXY+JzoiIiwnPHRleHRhcmVhIGlkPSJ0cmVzdWx0IiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+J10uam9pbigiIikpLHgudGhlbihmdW5jdGlvbigpe2EuUmVxKGIucmVxKS50aGVuKGZ1bmN0aW9uKHgpe2MoeCl9LmRlYm91bmNlKDUwKSkuZmFpbChmdW5jdGlvbih4LGEsYil7YyhhKX0pLmFsd2F5cyhmdW5jdGlvbigpe3gudHJpZ2dlcigibGF5b3V0Iil9LmRlYm91bmNlKDUwKSl9KX0sdWk6eyIjdHJlc3VsdCI6e2JpbmQ6InRleHQiLGluaXQ6ZnVuY3Rpb24oeCl7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx0aGlzLmRhdGEuY20pfX19LHN0eWxlOnsiICNkcmFnZ2VyIjoid2lkdGg6MTAwJTtoZWlnaHQ6MTVweDtjdXJzb3I6bW92ZTsiLCIgLkNvZGVNaXJyb3IiOmZ1bmN0aW9uKCl7cmV0dXJuInBhZGRpbmc6MHB4OyBoZWlnaHQ6Iit0aGlzLmRhdGEuaGVpZ2h0KyIhaW1wb3J0YW50OyJ9LCIgLkNvZGVNaXJyb3ItbGluZSI6ImZvbnQtc2l6ZToxM3B4OyAiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpub25lIWltcG9ydGFudDsifX0sZmlsZXM6eyJmYXZpY29uLnBuZyI6e2RpZ2VzdDoibWQ1LW9DM3FJSTBZS2ZYTDBnWlFsN1NtL2c9PSIsY29udGVudF90eXBlOiJpbWFnZS9wbmciLGRhdGE6ImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEOEFBQUJBQ0FZQUFBQ3RLNi9MQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUQ1cEpSRUZVZU5yY1d3MTRWRlY2L3M2OWR5WXprOHhNUW42QWhFQVNDRCtXQnl4ZFZza3VLaUtpZG9rc3JWYTJXQzF0bi9xRHN1dUR1MHRiYmYzWjdkYjFXVnQzVVhaclFaRHFzMXBSMGE0cmlxS3VLTHBhUUFSYWtCOURRZ2lFWkNiSi9ONTdUci8zM3R3d2lVbElNTUhFNytGd1p5YjNudk8rNTN6bis3djNpaFUvdklkNkZDRklUNlhJTkRUU1RJMEkvendhUlZvdHFqdWc2SStxQkxVMEVlbTZvQlFwOHZBSmJhazA1ZmgxSWtuVTBpWW9KMGVSdExnckE3OUovbG1ScnBSUFNpMmJLTzBuOHNRMVRiWlpRaVEwRWp5QVJzcTBTT1BUVzFzRkJiTWx3ekFvSHBlVWxjVlg4UFZlUHMreUZBWHppRDdjcHFoNGdxQndqazR5TGUxeHBTSEpNQ1ZaWGkrUlVqM1NNMmdRaFhrd1FicUJzVjdGdEM3Z1k0RmdMQmFhTk52UE1ra1hHdWJaYml3bmxhRHRmUHdOWDcrT2oyMkRoVy9BeVd0Q0ZQSGhKN3hBTjNxOWxtaHRUVkFpZ1piaXlSRHAzTnhRVTA1MmRpSVVDcExYbDBXcFJKTGlzUmkxdHJYNW1wdWplVktxQXAvUCs4Yytudzl0RlNsTjhhU3Q1WWxaeWYwMkRFbnl2R2dMK2JEQm80dnNVNmVpdkRWYTFLaWlvdHFMTHFvS3pQakQ2WGxsNDBySjR6RThmRTVSYi8yazB5WWRQbEpESC8zUHpxWnQ3MzRRTzNyc1dIRTRHRndhekFrdTVRM0dHMGt0NGRPZUh4TGtlVVVXODM5cnJWUTZxNmJ1QkkwcXptKzQ5ayt1RHMyWjh3MmZiaGdsL2UyUEo0Z3FKNVNqNWYzWk5RdnpMTk9rTjk1NEo3SHA1VmVpTlRYMVJjWEZoYzk1dk42a0VPb3YrZlNuempsNTJCQmV3eklseGRzcEt6WG15T0hqTkdQNnBPWWZyTGd0WjNUeHlLS0JWRTJlUUxwczNzVSt0R04xeDgzSDFxeHYvV2puLythT0t4MzVwSkxlQnd5UG1zMTREcDg3OHBMK3RmSThjZnVlUGJWaTdOZ3hrVlVQLzhoZlBIcGtMZzJ5OE1RYWQvM0RuYmwxeDQ2bkh2cjVMK043OWg0ZFUzbGV5Y0dtcUhxWS8vemRmbXR0UDEyZExneHRSeUlSbjhxcjBMcnM5ci9KbmozckFpSGF6ZlM1Rk1VcjhQYnZ0cXRmclBwVmZIVHg2SURQNTkrdFRIayt1enFycjY1TzY0ZEZ5ek04V21OZGJkMVVuNUVWZVdUVmcxa1hWVjM0cFJCMzFrV2ppMmJQRW8rcytwa0hlSUFMK0lDeno1NnBUd01wbXFaN3RLUDdEaHdLejUxN1NlcSsrLzh1cHlBL3owTkRRSUFEZUlBTCtJQVRlQWVFdkJKaW5LRWI3MzJ5Ny84Q2YvR2RhODNyLy93YXcrdjE2RFNFQkhpQUMvaUFFM2lCKzh3R3J5ZXRWZmJHQ21oWjN0MTc5KzczMy9LM1M4MzVsMS9DTVl6UWFBaUtybXZhMWRYenllZkxNbGYvNm5IL2xDbVZ1NlVsUi9LZllqMXhORlJLOXRDWlRrS1hCdy9zUDV6em5jV0xVdk12djlqN1plM3Z2dHNCb1RGT0xkb1NUVDN6eklzNTQ4ZVhIbFNXTnNxeXJCN1VYampoV1RmdE40Mm5ta2ZPdW5CR2JOSENiM21HNklKM2F3aUJ0MnJXakRiZ0I0K2VPR3JDVGlveW1xTWpTMHd6ZmFVcHJjak5OeS8xR29ZdWFCZ0o4TjU4MDFKdm12R0RCL2lBVjFldVdxVGxPTG10T1ZwUHlyRDN6NXFEaDQ2b2YxeTVJc2Z2OHhrMERJV1RJczgvTVg3d0FCL0ZKanJTMGtEUjFoTWRyY3ZLQ3hpNmpVM05VYytDNnNzVFplVmpkUnJHQXZ6Z0FUNU1iQ1A0ZFZwNUdEWTBUYk4vQ0hIYStlMVlXeXl5WlBHMVB2b0tDSGlBanlhMGJ6djhOSEk1NjNralJ0T3BVeEZxT05GSWxSV1QvN3V4c2JGaThYVUxhZEtrQ1lNWHhMZ2hwNjFwR1o4SHhRVnlqcDN0b3c4Ly9OaklIMUgwOVIyN2RxMXZibzR5NTJZeVhEZmd5OHJ5S3lIbnh1S3B5THg1bDRiUGVyVFdWcUthR3FMang0a2FHb2hIY1g1TEpPd3lsdDFxYTRtcXE0a1dMQ0I2NlNXaVRadUlTa3JzMG8vZGZLeDBPVGxFSTBadzlzOUo0a2gyMTZXbHptOW5JY3pIdDM3RHN4RkYxbHp3VEtWU2Nkc3dYbmI1bFhaRVk1cm12ZlZIYTloTlhPVmgxZTk3ejU5K1NyUnZuM01FMGJZMklrNkdLSms4M1Rnbjc2aFRjWXBLUjQ0UXpaN3RYTi9VNUZ3Zmp6dm5RUlBzbkpuUFE5SE9iVWhTc3JPZENSay9ubWp5Wk9mWXAzS2FvSVZYWCtIWnV2VjNWUFhOaSs0MURPTk8rRHFqdnJhbVBVVE0rdDdKRTAxVXZXQitnSG92dFJEdDJrWDArOThUSFR2R0pqUkNGSTBTdGJRNDVEd2VCemhXRUo4QlhOTTZGZmJzODBIR0daZ29qM09SM0Z4SEsxeHh0UVFUQ2EzQnhHQnNUTXpPblVTaEVGR1lGWFQwYUtLdmZZMW8yalJudkI2a3V2ckt3SDg5czRrQzJkbmZTNldTZDlvcjcxaEFNWmxYWGg4L1lleEpqcE1MdWw1bzdkaEJXbUVoQ2FqbWd3OFNIVGpnckRBRTVEQm9RVUhuL1p6NVdYYUpJcnY3N3JZdUZWQzcvNHdVMnhaTUNMUU1rdyt0ZWY5OW9na1RpRmF1Sk1WYlNwNDRRZnI1NTNmcUtzdnJJZkNMSjlJRmJQUW1LNlgyYVo0c0R4bGU0Nlk0cTkxbGw4M0p6Z3p0NVR2dlVQcWVlMGd0VzBacTJ6Ym5EL3YzTzZzTTlVTUxCQnp5TG5oWGJYdkpvL3R0SE4zbWpvSHhNSzZMQVhpQUM2Y3pUdUFGYnVEUFJBRis0QW0rNEEzRFQ0Ym11U0VhYmFGdnpQcTZ2Mk9TV2MzTUgvK1k2TmxuN2RtMEd0b0xweE1uT25zUGhqS1Q3TG10Wkp5ZURPQUFIdUNDbGpKTzRBVnU0QWNQVjhBUFBNRVh2TFdjWUQ2cUlybCt2eithNWN0UU1WekU2bVB2S1c2Q2paUk5jZWJNN2xYM3l4SVhCK01DUHVCME1kdjRNOGlESDNpQ0wzaHIvS0Vrellha3ZLejAxT2YyRzFRTG5mUE15amZmSklIUGMrY1M5K0M0TDllQzk2WDFzeVRjNXdZY3dNTzRnQTg0YlUwQVZ1RFhPaWRrNEFtKzRLMUZJaWVtSnhKSnFxd2NIK3lsV2tEaTVFbXl0bTkzdm4vLyswN0hVQzlZYmxqaE16VjNtd2p4T1VEMmQvenVxbkZmK3NPNEdCODRnQWNxei9pQXM4T1RkQ1BnQ2I3Z3pmbVBtc2FXbmlyS3gvWmVmZVVnUTkxOU44a1hYeVN0ckl6b3JydUlmdnRib2s4K2NTeHZaclNXYWVrejl5Zk9nVCt2cXp1dHJqamlPd1FyaUhQZHlYQTFKbE56M0hGZzZCQXJYSEVGQi9GbEpOa2RBcDhkRFBVaTRQbjZHMjhUZUxORDlwU2tMVW41K2ZsNnIvdUtWVWtkUGt6eWpqdUlIbmpBbVlDYmJuSWlPUVFxN3NwMU5VcVpFd0ZTQ0hvMmJIQW1BWUxqeFJkekVMN0VjV3R1SDVuRU04bWpEL1NIMkFDUkgrQ3g2a3RlZllWSkJLNWU3QkY0Z2k5NEc0S3NvT0l2UG45blZaRmRMVGc2TEM4bnRYVXJ5ZHR1STFxNGtNUWxsemdBMmtGMGN3dXJlNWsweVFsOW9lS3dJWXNYTytyYlF6V3RSK0VBUzIzWlltdWp3cGFzcUhENjdDM1ZaWjdnQzk0SXhmS1VzbmpzUHNUTjZCZ1R3QkdXdVhzM2FTKzg0TVRrYm4zYzNjL3RyVlBaQzMvSDlXeUZOU1lyc0VKMjNsbEdpbFZXcmwzckJDMmNiWFdzTkYranVnWkI3amdJZEJEUWZQd3hpWFpjWnlJT0FVL3daY25yc1ZDaDlXU2hBUUN1andkWDJPOEljN3VxZThkSDFYbXZBakEzdVhjdkdmZmVTNElUR0JBM3NWZC8vV3RuRWpOdk5IVEYwRlg5MlVZSWhNVzRwcCt1VjJxYVpQS3lTUWlkWXJGV3lnMEgreDVrdUNGdGY5d1l6b1ZoMnJpUjFJd1pKSzY3anRUeno5dmZCWUlVWkhQOUNaak9JcG9FVC9EbGl5S0dJcjFGNkJvbDRzbnVPeC9vS0k2Tm1vQ2ZyYTkzaHVBanZ0dkdEcG94TUZYTTA3aTdTSng1Z3ErUTFNSXJuNjcxOEpmR3hsTldSVVdaM21sL3M4OVVVQzlqQU10NDZBdVpZTEo5c3ZtbzhCMWVJeU1hKzhLQ3Z0eTRJVVBBay9reVQ2dldzSlRZeGZrdEhUejBXZlBNbVRQeU13TWJEM3k1WVRoR2FDQ0Y0d0pSVmVWVVdxcXJTY1AyZ2Q4ZVNBRnBURUNYZ09jUTgyUysrVGJ2Y0xod0o2a0dUb28rYllFYnpLai9rT0k5T1ZnMWE5bSs2alJsQ2dsdWc1TC9kT051d2RQbnk4b0hiODdudFZvUEc2OURoMnM2VGIzaS9YZjB4aHNkZDJVTVF2VzZxeHNjYU9GVmg3Y3BmZnh4RWhtckQ1NkZoZmtvMXRZYXJTMk5xTncyYzU2Ym0rU1kxODNzOERqSVNYWS9TQmFHK20ycTdoMkJzdTFWOFdPUGNmN3VrQWMvNWhsaTRzM2diVWl5MkM1WTYwS2g0UEozM24wL2Z1bWMyWFpPcjdIYVovRStGTERPdlNRS1E1WTg0aERlVmxxR3ZRSS81dWszWlhxZGJYdlR5VFJXZGpYbnVjdGZlKzJOTnBjOFZOSEN4VzVrTnR5RTNhZUU2OHpZVXVESFBQMW15bHdOelRCczlWQnFuOWViWlgxNjRMT0NaQ3B0MTd1VW0xM0JZbXJhOENQZmp0dU5Nc0VML01hV2xWcXBWSEtmdmZLalNrcmQwdlZEQlcxdEt6WnRlamwyelo5V0J6Ulc5VkVyVjNKQW9BOVA4bXlyRkd1czFyNWx3YXVnY0VRZ2xKZjNrR0ViY0VIaTBua0wydDI2MXo5OTJ2UllUYzJ4eUJQclZvWDdWYnNmOHZPZzZQb2JibzJVbG80Tzc5eTFNK0RldE9pNFY1ZElKdU5DYVZ2OGZtLzQxVmRmVDlCWFNNREg3L2VGQmVsYndOUGxMRzVldHJ6RE5VZ3BRK0hjd2toZFRYMWt6WC84VzhqcjlRejc1VStsMG1ycFh5MlBGbzhaRlk1R0cxbWp0YWpydWpYY3EwT1QyQ05LUmxsRm5ndGtCOElibm5yNks3SDY0QUUrVXNubkhINlNYTTZvM3RMcGhrSUJMY3JMRGFWZjNMVFpkL2pRWjlad0pnNzg0QUUrVEd5UjQ5bE84OVhDd1pIa3R0elFLQkltM0xwY1dsRStUdHp6encrMnhoTUpjemdTQjI3Z0J3L3dFYnlNNFdBUmhYSUtPMXFYbGNkN0VMWmYzR0FZbnBjTlRROC8rdWlhbEdsYWFqZ1JCMTdnQm43d0FCL3c2c3BWYzU2MzY3WmRsVDhpOS9pNzczMFUyUGo4UzJtY1BEeGlla25BQzl6QUR4NDljVFNFdC9zQXhxN2VLbEV4b2JMcytKTlBiY3dKaFVMbS9IbEQ5eUhFZG84bFg5bjhwbVM4M2lsVEtsdE5TMVlRWHRUUXU0ZmM4OG83YVdkTUpsTlRwMHlhRUYvOXl6WEdDNXRla2J4L2hxUUtBQmZ3UGNJNGdSZTRnYjhqc2UrbW5YRVZoVkpIVE11OGNNcWtpYkgxVHo1dFBQR2Z6NWpzTzRlVUZ3QWU0QUsrUDVnOE1RYTh3SDNHaWxxZjFFblFMaXN0eDB5ZVVINW95NWF0NGIyNzkwWHUvTUh0Z2FIdzVQWEp4cWIwVC8vbDRWamQ4Zm93NDR1WUtWbXVkR3JxeTdWOTM3K0ttc3kwekM4dUtkNmRNSlBoVzI1ZGtYeHIyM3RLS2ZWbDdXL0MrTGZjZWtjYWVJQUwrSUN6cjMzb1ZkK2MwMnVwU1VQMHgwbU9rTGhuUmtyVHhhT3RNUzJ2ZUZSNDl1WlgzaEx2ZjdBak1uWHFaQzBZekRsbkR5emlOWlA3N3Y5WjYydXZ2dW1ycUJocnRNYjBoLzArN1dvbG5WczhlQnRONDJSR25hSHdlbGFXbSszOWQvZnZVUlhublZkeU5KMU9ocGZkL3ZmZSsrNy9hVE5lQUJwTTB1Z2Y0MkE4akl2eDkrK1JGY0J6TnYyZFZXVVNlWUdacHNNOGFDa0hFa3NtVm81N3JQRlVKSGY1SFhmYnI1WlZYem5mZmJYc2kxdnhqRmZMNnVzYThXcFpMbytYTkZQcHYrYnhONWpwczM5KzhRdWpZMVhiZ0FoS3ovSXNLaDlYc3Q2VVZ0SFR6NzVBLzc1dWd4cFZXRlJYVlRVejg2WENQbFNmTWw0cTNQWkJyUDVFUTNFNEorZ0xCb00rN3IvTkpHbS9WTWpqZnVHSkhiQ2FOSHVFalhobzJiSlUwWWdSb1ovazVZVnY1TXlwNUsyM3R0SG16YTkvN25WU2Z5RFEwK3VrSHAvUGk2ZW04emdIenlzckhhT0VVR3RqQ2ZsRFE2TUdSUU5uWUkxQnNNSjRiR3NwWTF3YUk1a2Q5QWV2RHdRQzM5SjAvUUpXa3dLMlNVVnAwNkpFVTRUYzJ3bzZSMkErdjUrS2NZOWVhQ2M1a3RxdUtmMmxGa28rRVZSNkcrNDh5RUh3S29QNkxMMUZDazhxcm1hU3ExVjdwSVdqTHNnbk5LUDlGWElqcmduWnhsRlRRblhjWWxIdTlZUHFOZjVmZ0FFQXY0TVhNRjYzNXdrQUFBQUFTVVZPUks1Q1lJST0ifX0sc3RhbXA6MTY1MDA2MjY1NTY0Mn0sImN3LlBob3Rvbi5TeW5jVGFzayI6e2lkOiJjdy5QaG90b24uU3luY1Rhc2siLGJ1aWxkOjI3LGxhbmc6e30sZGF0YTp7dGFzazoiTXVsdGkiLGRvYzoiIixtb2RlOlsib25jZSJdLHNyYzp7dXJsOiIiLGRiczpbXSx1c2VyOiIiLHB3ZDoiIix1Y3R4OltdLHVucHJlZml4OiIiLGZpbHRlcjpbXSxmbjoiIixpZHM6W10scXVlcnk6e30semlwOiExLG9wdHM6W119LHRndDp7dXJsOiIiLHVzZXI6IiIscHdkOiIiLHByZWZpeDoiIixjcmVhdGU6ITEscToiIixuOiIiLGFjbDohMSx6aXBmaWxlOiIiLG9wdHM6WyJjcmVhdGUiXX0sdGFza3M6W119LERCczpbXSxpc0NvdWNoMjohMSxjYW5aaXA6bnVsbCxjYW5TdHJlYW06ITAsaXNTdHJlYW1pbmc6ITEsVW56aXBUbzpbXSxVbnppcERCbWFwOm51bGwsZG9jc1RvU2F2ZTpbXSxVbnppcFN0cmVhbTp7fSxVbnppcE9wdHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRndC5vcHRzfSx1aTp7IiNydGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMubGFuZztpZih4Lm1vZGUrIiI9PSJ6aXAiKXtpZih4LnNyYy56aXApcmV0dXJuIGEuVFhUX1RJVExFX0RVTVB9ZWxzZSBpZih4LnNyYy51cmx8fHguc3JjLmRicy5sZW5ndGgpcmV0dXJuIGEuVFhUX1RJVExFX1NZTkM7cmV0dXJuIGEuVFhUX1RJVExFfSx3YXRjaDpbIiNybW9kZSIsIiNyemlwZHVtcCIsIiNyc291cmNlIiwiI3Jzb3VyY2VzIl19LCIjcm1vZGUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmdbIkNvcHkiPT10aGlzLmRhdGEudGFzaz8iVEFHX01PREVfQ09QWSI6IlRBR19NT0RFIl0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsIT1hJiYoeC5tb2RlPWEubGVuZ3RoJiYiZG9jIiE9YT9hOlsib25jZSJdLmNvbmNhdChhKSkseC5tb2RlLmluZGV4T2YoInppcCIpPi0xKXt4Lm1vZGU7ITA9PT1iLmNhblppcD94Lm1vZGUubGVuZ3RoPjEmJih4Lm1vZGU9WyJ6aXAiXSk6ITE9PT1iLmNhblppcD9jKCk6bnVsbD09PWIuY2FuWmlwJiZkKCkudGhlbihmdW5jdGlvbih4KXtiLlBobygpLmNhblppcD14LGIuY2FuWmlwPXgseHx8KGMoKSxiLm15LnJlY2FsYygiI3Jtb2RlIikpfSl9cmV0dXJuInppcCI9PXgubW9kZVswXT8oeC50Z3QuemlwZmlsZT14LnRndC56aXBmaWxlfHwiZHVtcC0iK0RhdGUubm93KCkudG9TdHJpbmcoMzYpKyIuemlwIixiLm15LnJvb3QoKS5hZGRDbGFzcygiaGFzemlwIikpOmIubXkucm9vdCgpLnJlbW92ZUNsYXNzKCJoYXN6aXAiKSx4Lm1vZGU7ZnVuY3Rpb24gYygpe3gubW9kZT1bIm9uY2UiXSxjdy5saWIubm90ZShiLmxhbmcuRVJSX05PWklQLCJlcnJvciIpfWZ1bmN0aW9uIGQoKXt2YXIgeD0kLkRlZmVycmVkKCksYT1iLm15LmZpbmQoIiN6aXAtdGVzdGVyIik7cmV0dXJuIGEubXkoYi5aaXBUZXN0ZXIse30pLnRoZW4oZnVuY3Rpb24oYil7eC5yZXNvbHZlKCEwKSxmdW5jdGlvbigpe2EubXkoInJlbW92ZSIpfS5kZWxheSgyMDApfSkuZmFpbChmdW5jdGlvbihhKXt4LnJlc29sdmUoITEpfSkseC5wcm9taXNlKCl9fX0sIiN4c3NoaW0iOntjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hMX19fSwiI3Jkb2NpZCI6e2JpbmQ6ImRvYyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtpZih4Lm1vZGUuZmluZCgiZG9jIikpcmV0dXJuIGE/Il8iPT1hWzBdP3RoaXMubGFuZy5FUlJfSURfVU5EOnZvaWQgMDp0aGlzLmxhbmcuRVJSX0lEfSxjc3M6e3NoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lm1vZGUuZmluZCgiZG9jIil9fSx3YXRjaDpbIiNybW9kZSJdfSwiI2J0bi1zdGFydCI6e2RlbGF5OjYwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpaWYoInppcCI9PXgubW9kZSl7dmFyIGM9Yi5teS5yb290KCkucGFyZW50cygiI2wtYm9hcmQiKS5lcSgwKSxkPWMuZmluZCgiI2wtcGl2b3QtcmIiKTtpZihkLmRhdGEoIm1vZGFsIikpY3cubGliLm5vdGUoYi5sYW5nLk1TR19aSVBfUlVOTklORyk7ZWxzZSBpZih4LnNyYy56aXApe3RyeXtiLnJ1blVuZHVtcChkLGMpLmFsd2F5cyhmdW5jdGlvbigpe2IuY2xlYW5EYXRhKHgpfSl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9Yi5Eb250U3RvcFVuemlwPSEwLGIubXkuY2FuY2VsKCl9ZWxzZSBiLnJ1blppcChkLGMpLnRoZW4oZnVuY3Rpb24oKXtiLmNsZWFuRGF0YSh4KX0pLGIubXkuY2FuY2VsKCl9ZWxzZSBiLnJ1blRhc2tzKCkudGhlbihmdW5jdGlvbihhKXt2YXIgYz0hMDthLmZvckVhY2goZnVuY3Rpb24oeCl7InJlamVjdGVkIj09eC5zdGF0ZSYmKGM9ITEpfSksYyYmYi5jbGVhbkRhdGEoeCksT2JqZWN0LmlzRnVuY3Rpb24oYi5SZXN0YXJ0UG9sbCkmJmIuUmVzdGFydFBvbGwuZGVib3VuY2UoYi5pc0NvdWNoMj8xZTM6MTAwKSgpfSksYi5teS5jYW5jZWwoKTtyZXR1cm4gdGhpcy5sYW5nWyJ6aXAiPT14Lm1vZGUmJiJDb3B5IiE9eC50YXNrP3guc3JjLnppcD8iQlROX1NUQVJUX1VOWklQIjoiQlROX1NUQVJUX1pJUCI6eC5tb2RlLmZpbmQoImRvYyIpPyJCVE5fU1RBUlRfRE9DIjoiQlROX1NUQVJUIl0oKHguc3JjLmRicy5sZW5ndGh8fDEpKih4Lm1vZGUuZmluZCgiMndheSIpPzI6MSkseC5zcmMuaWRzLmxlbmd0aCx4Lm1vZGUpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMubXkudmFsaWQoKXx8KCEoeC5zcmMudXJsfHx4LnNyYy5kYnMubGVuZ3RofHx4LnNyYy56aXApfHwoInppcCI9PXgubW9kZT94LnNyYy5maWx0ZXIuZmluZCgiaWRzIikmJiF4LnNyYy5pZHMubGVuZ3RofHwheC50Z3QuemlwZmlsZSYmIXguc3JjLnppcDoheC50Z3QudXJsKSl9fSx3YXRjaDpbIiNyZG9jaWQiLCIjcnNvdXJjZSIsIiNyc291cmNlcyIsIiNyc2xvZ2luIiwiI3JzcGFzcyIsIiNyZm4iLCIjcmRvY3MiLCIjcnF1ZXJ5IiwiI3J0YXJnZXQiLCIjcnRsb2dpbiIsIiNydHBhc3MiLCIjcnR6aXBmaWxlIiwiI3J0dW56aXBkYnMiXX0sIiNidG4tY2xlYXIiOntkZWxheTo2MCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHRoaXMuY2xlYW5EYXRhKHgpLHRoaXMubXkucmVkcmF3KCkpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiJDb3B5Ij09eC50YXNrfX19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYodGhpcy5jbGVhbkRhdGEoeCksdGhpcy5teS5jYW5jZWwoKSl9LCIjeHNvdXJjZSI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iU3luYyIhPXgudGFza3x8InppcCI9PXgubW9kZSYmeC5zcmMuemlwfX0sd2F0Y2g6WyIjcnppcGR1bXAiXX0sIiNyc291cmNlIjp7ZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2Z1bmN0aW9uIGIoYixjKXthLm15LmNoZWNrKCIjcnNvdXJjZSIpLGEuZml4SGVpZ2h0LmRlYm91bmNlKDEwMCkoeCl9IlN5bmMiPT1hLmRhdGEudGFzayYmeC5hdXRvY29tcGxldGUoe2RlbGF5OjAsc291cmNlOnRoaXMuREJzLGNsb3NlOmZ1bmN0aW9uKHgsYil7YS5teS5jaGVjaygiI2J0bi1mb2xkc3JjIil9LmRlYm91bmNlKDEwKSxzZWxlY3Q6Yi5kZWJvdW5jZSgxMCksYXBwZW5kVG86YS5teS5yb290KCksbWluTGVuZ3RoOjFlNH0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zcmMudXJsO3ZhciBiPWEucmVwbGFjZSgvW1xyXG5cdFxzXS9nLCIiKSxjPWIubWF0Y2goL1wvXC8oW15cLzpcc10rKTooW15cLzpAXHNdKylALisvKTtyZXR1cm4gYyYmMz09Yy5sZW5ndGg/KHguc3JjLnVzZXI9Y1sxXSx4LnNyYy5wd2Q9Y1syXSx4LnNyYy51cmw9Yi5yZXBsYWNlKGNbMV0rIjoiK2NbMl0rIkAiLCIiKSk6eC5zcmMudXJsPWIseC5zcmMudXJsfSxjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSl7dmFyIGM9dGhpcy5sYW5nO3JldHVybiBiLmlzVVJMKGEpJiYhYi5pc1ZhbGlkVVJMKGEpP2IubGFuZy5FUlJfRlJPTV9VUkw6IlN5bmMiIT14LnRhc2t8fGIuUGhvKFsiQWxsIixhXSl8fGIuaXNCdWNrZXRVUkwoYSk/dm9pZCAwOmMuRVJSX0ZST019fSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjcnNvdXJjZSIpfS5kZWJvdW5jZSgyMDApKCksITB9fX0sIiNyemlwZHVtcCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEmJmEpe3ZhciBjPXRoaXMsZD1iWzBdLmZpbGVzWzBdO2lmKGQmJiFjLmlzU3RyZWFtaW5nKXt2YXIgZT0hIWQuc3RyZWFtO3guc3JjLnppcD1kLm5hbWUuc3BsaXQoIi8iKS5sYXN0KCk7dHJ5eyhlP2Muc3RhcnRVbnppcFN0cmVhbShkKTpjLnN0YXJ0VW56aXBTeW5jKGQpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5mbzskLmV4dGVuZChjLlVuemlwU3RyZWFtLE9iamVjdC5yZWplY3QoYSxbImluZm8iXSkpLGMuVW56aXBUbz1iLmRicyxjLm15LnJlY2FsYygiI3J0dW56aXBkYnMiKSxiLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VjdXJpdHk/MTowfSkuc3VtKCkmJmZ1bmN0aW9uKCl7eC50Z3Qub3B0cz14LnRndC5vcHRzLmFkZCgiYWNsIikuc2xpY2UoMCksYy5teS5yZWNhbGMoIiNydHVuemlwb3B0cyIpfS5kZWxheSg1MCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y29uc29sZS5sb2coIkZhaWwgc3RhcnRpbmcgdW56aXAgc3RyZWFtIix4LGEpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZSYmKGIudmFsKG51bGwpLGIudHJpZ2dlcigiY2hlY2siKSl9KX1jYXRjaCh4KXtjdy5saWIubm90ZSgiRXJyb3IgdW56aXBwaW5nLCBzZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLCJlcnJvciIpLGNvbnNvbGUubG9nKHgpfX19fSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHguc3JjLmRicy5sZW5ndGh8fHguc3JjLnVybC5sZW5ndGh8fHgubW9kZSsiIiE9InppcCJ8fCJNdWx0aSI9PXgudGFza319LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2UiXX0sIiNyemlwZHVtcGluZm8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguc3JjLnppcD8nPHNwYW4gY2xhc3M9ImZpLWNoZWNrIGdyZWVuIGZzOTAgcHI1Ij48L3NwYW4+Jyt4LnNyYy56aXAudHJ1bmNhdGUoNjAsIm1pZGRsZSIsIi4uLiIpOnRoaXMubGFuZy5QTENfWklQRFVNUH0sd2F0Y2g6WyIjcnppcGR1bXAiXSxjc3M6eyJzZWxmOnRyYW5zIjpmdW5jdGlvbih4KXtyZXR1cm4heC5zcmMuemlwfX19LCIjYnRuLWZvbGRzcmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5teS5maW5kKCIjcnNvdXJjZSIpLGM9IlN5bmMiPT14LnRhc2smJmIuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGM/Yi5hdXRvY29tcGxldGUoImNsb3NlIik6Yi5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGM9IWMpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGM/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaXNVUkwoeC5zcmMudXJsKX19LHdhdGNoOlsiI3Jzb3VyY2UiXX0sIiNyc291cmNlcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczsiTXVsdGkiPT1hLmRhdGEudGFzayYmYS5zZWxlY3QyKHgse3RhZ3M6YS5EQnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjphLmxhbmcuUExDX0ZST00sdG9rZW5TZXBhcmF0b3JzOlsiICIsIiwiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0sITApfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aHx8Ik11bHRpIiE9eC50YXNrPyIiOnRoaXMubGFuZy5FUlJfRlJPTX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYic3RyaW5nIiE9dHlwZW9mIGEmJih4LnNyYy5kYnM9YSkseC5zcmMuZGJzfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfX19LCIjeHNjcmVkcyI6e2Nzczp7c2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnNyYy56aXB8fCEoeC5tb2RlLmZpbmQoImRvYyIpfHx0aGlzLmlzVVJMKHguc3JjLnVybCl8fHgubW9kZS5maW5kKCJsaXZlIikmJnRoaXMuaXNDb3VjaDIpfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSJdfSwiI3JzbG9naW4iOntiaW5kOiJzcmMudXNlciIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5zcmMudWN0eC5sZW5ndGh9fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiJfIj09KGF8fCIiKVswXT90aGlzLmxhbmcuRVJSX1VOT186IiJ9LHdhdGNoOlsnaW5wdXRbbmFtZT0icnVzZXJDdHgiXScsIiNybW9kZSIsIiNyc291cmNlIl19LCIjcnNwYXNzIjp7YmluZDoic3JjLnB3ZCIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5zcmMudWN0eC5sZW5ndGh9fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB4LnNyYy51c2VyJiYhYT90aGlzLmxhbmcuRVJSX05PUFdEOiIifSx3YXRjaDpbJ2lucHV0W25hbWU9InJ1c2VyQ3R4Il0nLCIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyc2xvZ2luIl19LCdpbnB1dFtuYW1lPSJydXNlckN0eCJdJzp7YmluZDoic3JjLnVjdHgiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pc0NvdWNoMnx8IXgubW9kZS5maW5kKCJkb2MiKXx8dGhpcy5pc1VSTCh4LnNyYy51cmwpfHx4LnNyYy51c2VyfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyc2xvZ2luIl19LCIjcnVucHJlZml4Ijp7YmluZDoic3JjLnVucHJlZml4Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfHwiemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcm1vZGUiXX0sIiNyZmlsdGVyIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19GSUxURVIpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnNyYy5maWx0ZXI9YS5maW5kKC9eeC8pP2EuZmlsdGVyKC9eeC8pOmEpLHguc3JjLmZpbHRlcn0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJDb3B5Ij09eC50YXNrfHwiemlwIj09eC5tb2RlJiYheC5zcmMudXJsJiYiTXVsdGkiIT14LnRhc2t9fSx3YXRjaDpbIiNyemlwZHVtcCIsIiNyc291cmNlIl19LCIjcmRvY3MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zcmMuaWRzLmxlbmd0aD9jdy5saWIuanNvbih4LnNyYy5pZHMsIiAgIik6IiI7aWYoIiI9PWEpcmV0dXJuIHguc3JjLmlkcz1bXSxhO3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoYSl9Y2F0Y2goeCl7fXJldHVybiBPYmplY3QuaXNBcnJheShiKSYmYi5sZW5ndGgmJiFiLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4fSl8fChiPVtdKSx4LnNyYy5pZHM9YixhfSxjaGVjazpmdW5jdGlvbih4LGEpe2lmKGEpe3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoYSl9Y2F0Y2goeCl7fXJldHVybiBPYmplY3QuaXNBcnJheShiKSYmYi5sZW5ndGgmJiFiLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4fSk/dm9pZCAwOnRoaXMubGFuZy5FUlJfRE9DU319LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iaWRzIiE9eC5zcmMuZmlsdGVyfX0sd2F0Y2g6WyIjcmZpbHRlciIsIiNybW9kZSJdfSwiI3JmbiI6e2JpbmQ6InNyYy5mbiIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJmbiIhPXguc3JjLmZpbHRlcnx8InppcCI9PXgubW9kZX19LHdhdGNoOlsiI3JmaWx0ZXIiLCIjcm1vZGUiXX0sIiNycXVlcnkiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuImZuIiE9eC5zcmMuZmlsdGVyfHwheC5zcmMuZm58fCJ6aXAiPT14Lm1vZGV9fSx3YXRjaDpbIiNyZmlsdGVyIiwiI3JmbiIsIiNybW9kZSJdfSwiI3J6aXBvcHRzIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9T2JqZWN0LmNsb25lKGEubGFuZy5UQUdfWklQT1BULCEwKTthLlBobygiQ291Y2giKS52ZXI8IjAwMi4iJiZiLnRhZ3MucmVtb3ZlKGZ1bmN0aW9uKHgpe3JldHVybiJxbnAiPT14LnZhbHVlfSkseC50YWdzKGIpfSxiaW5kOiJzcmMub3B0cyIsY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IkNvcHkiPT14LnRhc2t8fHguc3JjLnppcHx8IXguc3JjLnVybCYmIXguc3JjLmRicy5sZW5ndGh9fSx3YXRjaDpbIiNybW9kZSIsIiNyc291cmNlcyIsIiNyc291cmNlIiwiI3J6aXBkdW1wIl19LCIjYnRuLXppcGR1bXAtY2xlYXIiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLmNsZWFuVW56aXAoKSxiLm15LmNoZWNrKCIjcm1vZGUiKX19LGV2ZW50czpbImNsaWNrLm15Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LnNyYy56aXB8fCJ6aXAiIT14Lm1vZGV9fSx3YXRjaDpbIiNyemlwZHVtcCJdfSwiI3J0YXJnZXQiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7ZnVuY3Rpb24gYyhiLGMpe2EubXkuY2hlY2soIiNydGFyZ2V0IiksYS5maXhIZWlnaHQuZGVib3VuY2UoMTAwKSh4KX0vXihTeW5jfENvcHkpJC8udGVzdChiLnRhc2spJiZ4LmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6YS5EQnMsY2xvc2U6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjYnRuLWZvbGR0Z3QiKX0uZGVib3VuY2UoMTApLHNlbGVjdDpjLmRlYm91bmNlKDEwKSxhcHBlbmRUbzphLm15LnJvb3QoKSxtaW5MZW5ndGg6MWU0fSl9LGJpbmQ6InRndC51cmwiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7aWYoYSlpZih0aGlzLmlzVVJMKGEpKXtpZighdGhpcy5pc1ZhbGlkVVJMKGEpKXJldHVybiB0aGlzLmxhbmcuRVJSX1RPX1VSTDtpZigiTXVsdGkiIT14LnRhc2smJiF0aGlzLmlzQnVja2V0VVJMKGEpKXJldHVybiB0aGlzLmxhbmcuRVJSX1RPfWVsc2UgaWYoIXgudGd0LmNyZWF0ZSYmIXRoaXMuUGhvKFsiQWxsIixhXSkpcmV0dXJuIHRoaXMubGFuZy5FUlJfVE9fTUlTU30sd2F0Y2g6WydpbnB1dFtuYW1lPSJydGNyZWF0ZWRiIl0nXSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjcnRhcmdldCIpfS5kZWJvdW5jZSgyMDApKCksITB9fX0sIiNidG4tZm9sZHRndCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLm15LmZpbmQoIiNydGFyZ2V0IiksYz0iTXVsdGkiIT14LnRhc2smJmIuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGM/Yi5hdXRvY29tcGxldGUoImNsb3NlIik6Yi5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGM9IWMpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGM/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIS9eKFN5bmN8Q29weSkkLy50ZXN0KHgudGFzayl9fX0sIiN4dGNyZWRzIjp7Y3NzOntzaGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iTXVsdGkiIT14LnRhc2smJigiQ29weSI9PXgudGFzayYmIXRoaXMuaXNVUkwoeC50Z3QudXJsKXx8ISh4LnRndC5jcmVhdGUmJiF0aGlzLkRCcy5maW5kKHgudGd0LnVybCkmJih0aGlzLmlzQ291Y2gyfHx4Lm1vZGUuZmluZCgiZG9jIikpKSYmISh4Lm1vZGUuZmluZCgiZG9jIil8fHRoaXMuaXNVUkwoeC50Z3QudXJsKXx8eC5tb2RlLmZpbmQoImxpdmUiKSYmdGhpcy5pc0NvdWNoMikpfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnRhcmdldCJdfSwiI3J0bG9naW4iOntiaW5kOiJ0Z3QudXNlciIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hYSYmeC50Z3QuY3JlYXRlJiYodGhpcy5pc1VSTCh4LnRndC51cmwpfHwhdGhpcy5EQnMuZmluZCh4LnRndC51cmwpJiYodGhpcy5pc0NvdWNoMiYmIXgubW9kZS5maW5kKCJvbmNlIil8fHgubW9kZS5maW5kKCJkb2MiKSkpP3RoaXMubGFuZy5FUlJfVVJFUV9DVDoiXyI9PShhfHwiIilbMF0/dGhpcy5sYW5nLkVSUl9VTk9fOiIifSx3YXRjaDpbIiNybW9kZSIsJ2lucHV0W25hbWU9InJ0Y3JlYXRlZGIiXScsIiNydGFyZ2V0Il19LCIjcnRwYXNzIjp7YmluZDoidGd0LnB3ZCIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC50Z3QudXNlciYmIWE/dGhpcy5sYW5nLkVSUl9OT1BXRDoiIn0sd2F0Y2g6WyIjcnRsb2dpbiJdfSwiI3JwcmVmaXgiOntiaW5kOiJ0Z3QucHJlZml4Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfX19LCdpbnB1dFtuYW1lPSJydGNyZWF0ZWRiIl0nOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuKHgudGd0LmNyZWF0ZT1udWxsIT1hPyEhYS5sZW5ndGg6eC50Z3QuY3JlYXRlKT9bImNyZWF0ZSJdOltdfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudGd0LnVybHx8ISF0aGlzLkRCcy5maW5kKHgudGd0LnVybCl9fSx3YXRjaDpbIiNydGFyZ2V0Il19LCIjeHRub256aXAiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcm1vZGUiXX0sIiNydHppcGZpbGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubW9kZSsiIiE9InppcCImJih4LnRndC56aXBmaWxlPSIiKSxudWxsPT1hP3gudGd0LnppcGZpbGU6KHgudGd0LnppcGZpbGU9YS5jb21wYWN0KCksYSl9LGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiJ6aXAiIT14Lm1vZGV8fCF4LnNyYy51cmwmJiF4LnNyYy5kYnMubGVuZ3RofHwhIXguc3JjLnppcH19LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2UiLCIjcnppcGZpbGUiXX0sIiNydHVuemlwb3B0cyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfVU5aSVBPUFQpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC50Z3Qub3B0czt2YXIgYj14LnRndC5vcHRzO3JldHVybiB4LnRndC5vcHRzPWEsYi5maW5kKCJjcmVhdGUiKSE9YS5maW5kKCJjcmVhdGUiKSYmKHRoaXMuVW56aXBUbz10aGlzLlVuemlwVG8uY2xvbmUoITApLHRoaXMubXkuZmluZCgiI3J0dW56aXBkYnMiKS5maW5kKCJpbnB1dCN1bnppcC10Z3QiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJibHVyIil9KSkseC50Z3Qub3B0c30sY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IkNvcHkiPT14LnRhc2t8fCF4LnNyYy56aXB9fSx3YXRjaDpbIiNybW9kZSIsIiNyemlwZHVtcCJdfSwiI3J0dW56aXBkYnMiOntiaW5kOiJ0aGlzLlVuemlwVG8iLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJ3MTAwcCBmczkwIG10MyBjYiI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5VbnppcERCUm93fSxjaGVjazohMCxtZXJnZTohMSxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lKyIgIit0aGlzLmRhdGEudGd0Lm9wdHN9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5jcmMyKHgsdGhpcy5kYXRhLnRndC5vcHRzKX19LCIjeHJ0dW56aXBkYnMiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuInppcCIhPXgubW9kZXx8IXRoaXMuVW56aXBUby5sZW5ndGh9fSx3YXRjaDpbIiNydHVuemlwZGJzIiwiI3Jtb2RlIl19LCIjcnR6aXB3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMubGFuZyxlPVtkLk1TR19aSVBfV0FSTl07cmV0dXJuInppcCIhPXgubW9kZT9iLnBhcmVudCgpLmFkZENsYXNzKCJoaWRlIik6Yi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGlkZSIpLGMuY2FuU3RyZWFtfHxlLnB1c2goZC5NU0dfWklQX0JMT0IpLGUubWFwKGZ1bmN0aW9uKHgpe3JldHVybic8ZGl2IGNsYXNzPSJtdDIgbWI0Ij4nK3grIjwvZGl2PiJ9KX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyemlwZmlsZSJdfX0saXNCdWNrZXRVUkw6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYT8vXmh0dHBbc10/OlwvXC9bXlwvOlxzXSs6W15cLzpAXHNdK0BbXlwvXHNdezIsfShcL1teXC9cc10rKStbXC9dPyQvLnRlc3QoeCk6L15odHRwW3NdPzpcL1wvW15cL1xzXXsyLH0oXC9bXlwvXHNdKykrW1wvXT8kLy50ZXN0KHgpfSxpc0xvY2FsREI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QaG8oIkNvdWNoIikucG9ydCxiPSIiO3JldHVybiB0aGlzLmlzVVJMKHgpPyh4LmluZGV4T2YoImxvY2FsaG9zdDoiK2ErIi8iKT4tMXx8eC5pbmRleE9mKCIxMjcuMC4wLjE6IithKyIvIik+LTEpJiYoYj14LnNwbGl0KCI/IilbMF0uc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCkpOmI9eCxifSxpc1VSTDpmdW5jdGlvbih4KXtyZXR1cm4vXmh0dHBbc10/OlwvXC8vLnRlc3QoeCl9LGlzVmFsaWRVUkw6ZnVuY3Rpb24oeCl7dmFyIGE9ITE7dHJ5e2E9bmV3IFVSTCh4KX1jYXRjaCh4KXt9cmV0dXJuIGF9LGZpeEhlaWdodDpmdW5jdGlvbih4KXt4LmhlaWdodCgwKS5oZWlnaHQoKHhbMF0uc2Nyb2xsSGVpZ2h0LTEwKS5jbGFtcCgxOCwxMDApKX0sY2xlYW5EYXRhOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7JC5leHRlbmQoeCx7ZG9jOiIiLG1vZGU6WyJvbmNlIl19KSwkLmV4dGVuZCh4LnNyYyx7dXJsOiIiLGRiczpbXSx1c2VyOiIiLHB3ZDoiIix1Y3R4OltdLGZpbHRlcjpbXSxmbjoiIixpZHM6W10scXVlcnk6e30sdW5wcmVmaXg6IiIsemlwOiExLG9wdHM6W119KSwkLmV4dGVuZCh4LnRndCx7dXJsOiIiLHVzZXI6IiIscHdkOiIiLGNyZWF0ZTohMSxwcmVmaXg6IiIscToiIixuOiIiLGFjbDohMSx6aXBmaWxlOiIiLG9wdHM6WyJjcmVhdGUiXX0pLGEubXkuZmluZCgiI3J0emlwZmlsZSIpLnZhbChudWxsKSxhLlVuemlwVG89W10sIWEuRG9udFN0b3BVbnppcCYmYS5VbnppcFN0cmVhbS5hYm9ydCYmKGEuVW56aXBTdHJlYW0uYWJvcnQoKSxhLlVuemlwU3RyZWFtPXt9KX0sY2xlYW5VbnppcDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5kYXRhLnNyYy56aXA9ITEseC5teS5maW5kKCIjcnR6aXBmaWxlIikudmFsKG51bGwpLHguVW56aXBUbz1bXSx4LlVuemlwREJtYXA9e30seC5VbnppcFN0cmVhbS5hYm9ydCgpLHguVW56aXBTdHJlYW09e319LGRpZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuU2VsMlNjcm9sbCh4LCEwKSwiU3luYyI9PWEuZGF0YS50YXNrJiZ4LmZpbmQoIiNyc291cmNlIikuYXV0b2NvbXBsZXRlKCJkZXN0cm95IiksIk11bHRpIiE9YS5kYXRhLnRhc2smJnguZmluZCgiI3J0YXJnZXQiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKSwhYS5Eb250U3RvcFVuemlwJiZhLlVuemlwU3RyZWFtLmFib3J0JiZhLlVuemlwU3RyZWFtLmFib3J0KCl9LHN0eWxlOnsiIHRleHRhcmVhIjoicmVzaXplOm5vbmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5teS1lcnJvci10aXAiOiJwYWRkaW5nOjAuMWVtIDAgMC4yZW0gMDsiLCIgLnVpLXdpZGdldCI6ImZvbnQtc2l6ZToxMDAlIiwiIC51aS1hdXRvY29tcGxldGUiOiJsaW5lLWhlaWdodDoxLjNlbTsgbWF4LWhlaWdodDoxOXZoOyBvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC53MTAwcC0yMCI6IndpZHRoOmNhbGMoMTAwJSAtIDIwcHgpOyIsIiAuYmZvbGQiOnsiIjpbIndpZHRoOjIwcHghaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyAiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsiLCJtYXJnaW4tbGVmdDotMjFweDsgei1pbmRleDorMTsiXSwiIGRpdiI6ImZvbnQtc2l6ZTo2MCU7IG9wYWNpdHk6MC41O3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjMuMmVtO3dpZHRoOjEwMCU7In0sIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MTA5cHg7IiwiLmhhc3ppcCAubm96aXAiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAuemlwb25seSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiLmhhc3ppcCAuemlwb25seSI6ImRpc3BsYXk6aW5saW5lIWltcG9ydGFudDsiLCIgLm15LXJvdywgLm15LWdyb3VwIjoidHJhbnNpdGlvbjogaGVpZ2h0IDAuMXMsIG1pbi1oZWlnaHQgMC4xcywgcGFkZGluZyAwLjA1czsgbWluLWhlaWdodDogMTVweDsgaGVpZ2h0OmF1dG87IiwiIC5zaGlkZSI6Im92ZXJmbG93OmhpZGRlbjsgbWluLWhlaWdodDowOyBoZWlnaHQ6MHB4OyBwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDsiLCIgdWwiOnsiLnVpLWF1dG9jb21wbGV0ZSI6Im1heC13aWR0aDpjYWxjKDEwMCUgLSAxMTVweCk7IiwiIGxpLnVpLW1lbnUtaXRlbSI6IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsifX0sWmlwVGVzdGVyOntyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxpbml0OlsnPGRpdiBpZD0ieC1kdW1teSI+PC9kaXY+J10sdWk6eyIjeC1kdW1teSI6ZnVuY3Rpb24oKXt9fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2Z1bmN0aW9uIGMoKXt4LnBhcmVudCgpLmNzcygiaGVpZ2h0IiwiYXV0byIpfWEubGFuZ1tiLnRhc2tdJiYkLmV4dGVuZChhLmxhbmcsYS5sYW5nW2IudGFza10pLGEuREJzPU9iamVjdC5rZXlzKGEuUGhvKCJBbGwiKSkuc29ydCgpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKS5hc3NpZ24oe19yZXBsaWNhdG9yOmEuUGhvKCJSZXBsaWNhdG9yREIiKX0pKSxhLmlzQ291Y2gyPWEuUGhvKCJDb3VjaCIpLnZlcj49IjAwMi4iLGEuY2FuWmlwPW51bGwhPT1hLlBobygiY2FuWmlwIik/YS5QaG8oImNhblppcCIpOiJmZXRjaCJpbiB3aW5kb3cmJiJVaW50OEFycmF5ImluIHdpbmRvdyYmIkJsb2IiaW4gd2luZG93JiYiTWFwImluIHdpbmRvdyYmbnVsbCxhLmNhblN0cmVhbT0hd2luZG93LnNhZmFyaSYmInNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yLCJDb3B5IiE9Yi50YXNrJiZiLnNyYy5vcHRzLnB1c2goImFjbCIpLHguZmluZCgidGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4Lm9uKCJpbnB1dC5teSxrZXl1cC5teSIsZnVuY3Rpb24oKXthLmZpeEhlaWdodCh4KX0pfSkseC5wYXJlbnQoKS5vbigiZHJhZ3N0b3AiLGMpLHgudGhlbihmdW5jdGlvbigpe3guZmluZCgidGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJpbnB1dCIpfSksYS5TZWwyU2Nyb2xsKHgsITApLCJTeW5jIj09Yi50YXNrJiZmdW5jdGlvbigpe3guZmluZCgiI3Jzb3VyY2UiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsIm1pbkxlbmd0aCIsMCl9LmRlYm91bmNlKDEwMCkoKSwvXihTeW5jfENvcHkpJC8udGVzdChiLnRhc2spJiZmdW5jdGlvbigpe3guZmluZCgiI3J0YXJnZXQiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsIm1pbkxlbmd0aCIsMCl9LmRlYm91bmNlKDEwMCkoKX0uZGVib3VuY2UoMjApKS50aGVuKGZ1bmN0aW9uKCl7eC5wYXJlbnQoKS50cmlnZ2VyKCJsYXlvdXQiKSxjKCl9LmRlYm91bmNlKDE1MCkpfSxIVE1MOlt7cm93OiIxMDAlIixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIGZzMTAwIixsYWJlbDoiMTE1cHgiLGxhYmVsQ3NzOiJteS1sYWJlbCBkaWIgdmF0IG10OSJ9LCc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIGNtIj4nLCc8c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gPHNwYW4gaWQ9InJ0aXRsZSI+e1RYVF9USVRMRX08L3NwYW4+JywiPC9kaXY+IiwnPGZvcm0gaWQ9InhyY3JlYXRlIiBhdXRvY29tcGxldGU9Im9mZiI+JyxbIntMQkxfTU9ERX0iLCJkaXYjcm1vZGUuZGliLnZhdC5mczEwNS5saDE4MCJdLFsie0xCTF9JRH0iLCJpbnAjcmRvY2lkLncxMDBwIix7cGxjOiJ7UExDX0lEfSJ9LCJtc2ciXSwnPGRpdiBpZD0ieHNvdXJjZSIgY2xhc3M9Im15LWdyb3VwIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9GUk9NfTwvc3Bhbj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHcxMDBwIj4nLCJ0eHQjcnNvdXJjZS53MTAwcC5mczEwMC5saDEzMCIse3BsYzoie1BMQ19GUk9NfSJ9LCJtc2ciLCI8L2Rpdj4iLCJzcG4jYnRuLWZvbGRzcmMucHNldWRvbGluay50ZG4uYmZvbGQuZGliLnZhdCIse3R4dDoiPGRpdj7ilrw8L2Rpdj4ifV0sIjwvZGl2PiIsJzxkaXYgaWQ9Inh6aXBkdW1wIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9aSVBEVU1QfTwvc3Bhbj4nLCc8aW5wdXQgaWQ9InJ6aXBkdW1wIiB0eXBlPSJmaWxlIiBhY2NlcHQ9Ii56aXAsIGFwcGxpY2F0aW9uL3ppcCIgY2xhc3M9IncxMDBwIGNwIG8wIiBzdHlsZT0iaGVpZ2h0OjIuMWVtOyIgcGxhY2Vob2xkZXI9IntQTENfWklQRFVNUH0iPicsJzxkaXYgaWQ9InJ6aXBkdW1waW5mbyIgY2xhc3M9ImRiIHcxMDBwIGJnLWdyYXk0IGJyMiBwbDUgcHQzIHRyYW5zIiBzdHlsZT0ibWFyZ2luLXRvcDotMi4xZW07IGhlaWdodDoyLjFlbTsiPntQTENfWklQRFVNUH08L2Rpdj4nLCc8ZGl2IGlkPSJidG4temlwZHVtcC1jbGVhciIgY2xhc3M9InBhYmMgbGgxMDAgcDcgY3AgbzUwIiBzdHlsZT0idG9wOjRweDtyaWdodDowOyI+4pyVPC9kaXY+J10sIjwvZGl2PiIsJzxkaXYgaWQ9Inhzc2hpbSIgY2xhc3M9ImhpZGUiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX0ZST019PC9zcGFuPicsImlucCNyc291cmNlcy53MTAwcC5mczExMC5saDE2MCIsIm1zZyJdLCc8ZGl2IGlkPSJ4c2NyZWRzIiBjbGFzcz0ibXktZ3JvdXAgc2hpZGUiPicsWyJ7TEJMX1NSQ19DUkVEU30iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAgcHI2Ij4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yLTIwIHppMSB0YWMgdzIwIHB0MyBwbDIgbzMwIj48c3BhbiBjbGFzcz0iZmktdG9yc28iPjwvc3Bhbj48L2Rpdj4nLCJpbnAjcnNsb2dpbi53MTAwcC5mczk1LmxoMTMwLnBsMjAiLHtwbGM6IntQTENfVU5BTUV9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIiwiPC9kaXY+IiwnPGRpdiBjbGFzcz0iZGliIHZhdCB3NTBwIj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yLTIwIHppMSB0YWMgdzIwIHB0MyBwbDIgbzQwIj48c3BhbiBjbGFzcz0iZmkta2V5Ij48L3NwYW4+PC9kaXY+JywicHdkI3JzcGFzcy53MTAwcC5mczk1LmxoMTMwLnBsMjAiLHtwbGM6IntQTENfVVBXRH0iLGF1dG9jb21wbGV0ZToibmV3LXBhc3N3b3JkIn0sIm1zZyIsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPjxsYWJlbCBjbGFzcz0iZGliIG10MyB2YXQgY3AgZ3JheTEgbGgxNTAgbWIzIHcxMDBwIGZzOTUiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icnVzZXJDdHgiIHZhbHVlPSJfYWRtaW4iIGNsYXNzPSJtcjYgZnMxMTAgbGgxMDAiPicsIntUWFRfVUNUWH0iLCI8L2xhYmVsPjwvZGl2PiJdLCI8L2Rpdj4iLFsie0xCTF9VTlBSRUZJWH0iLCJpbnAjcnVucHJlZml4Lnc3NXAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19VTlBSRUZJWH0iLHRpdGxlOiJ7VElQX1VOUFJFRklYfSJ9XSxbIntMQkxfRklMVEVSfSIsImRpdiNyZmlsdGVyLmRpYi52YXQubGgxNjAucHQyLnBiMiJdLFsie0xCTF9ET0NTfSIsInR4dCNyZG9jcy53MTAwcC5mczk1LmxoMTMwIix7cGxjOiJ7UExDX0RPQ1N9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIl0sWyJ7TEJMX0ZOfSIsImlucCNyZm4udzEwMHAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19GTn0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciXSxbIntMQkxfUVJZfSIsInR4dCNycXVlcnkudzEwMHAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19RUll9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIl0sJzxkaXYgY2xhc3M9IncxMDBwIGgxMCBtdDEwIG9oIGJ0ZCI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBpZD0ieHRub256aXAiIGNsYXNzPSJ3MTAwcCI+JyxbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfVE99PC9zcGFuPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPicsInR4dCNydGFyZ2V0LncxMDBwLmZzMTAwLmxoMTMwIix7cGxjOiJ7UExDX1RPfSJ9LCJtc2ciLCI8L2Rpdj4iLCJzcG4jYnRuLWZvbGR0Z3QucHNldWRvbGluay50ZG4uYmZvbGQuZGliLnZhdCIse3R4dDoiPGRpdj7ilrw8L2Rpdj4ifV0sJzxkaXYgaWQ9Inh0Y3JlZHMiIGNsYXNzPSJteS1ncm91cCBzaGlkZSI+JyxbIntMQkxfVEdUX0NSRURTfSIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwcCBwcjYiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvMzAiPjxzcGFuIGNsYXNzPSJmaS10b3JzbyI+PC9zcGFuPjwvZGl2PicsImlucCNydGxvZ2luLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VTkFNRX0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvNDAiPjxzcGFuIGNsYXNzPSJmaS1rZXkiPjwvc3Bhbj48L2Rpdj4nLCJwd2QjcnRwYXNzLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VUFdEfSIsYXV0b2NvbXBsZXRlOiJuZXctcGFzc3dvcmQifSwibXNnIiwiPC9kaXY+Il0sIjwvZGl2PiIsWyJ7TEJMX1BSRUZJWH0iLCJpbnAjcnByZWZpeC53NzVwLmZzOTUubGgxMzAiLHtwbGM6IntQTENfUFJFRklYfSJ9XSxbIiAiLCc8bGFiZWwgY2xhc3M9ImRpYiBjcCBncmF5MSBsaDEyMCBmczk1IHc1MHAiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icnRjcmVhdGVkYiIgdmFsdWU9ImNyZWF0ZSIgY2xhc3M9Im1yNiBmczExMCI+Jywie1RYVF9ORVdUR1R9IiwiPC9sYWJlbD4iXSwiPC9kaXY+IixbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfWklQRklMRX08L3NwYW4+JywiaW5wI3J0emlwZmlsZS53MTAwcC5mczEwMC5saDEzMCIse3BsYzoie1BMQ19aSVBGSUxFfSJ9XSxbIntMQkxfWklQT1BUfSIsImRpdiNyemlwb3B0cy5kaWIudmF0LmxoMTYwLnB0Mi5wYjIiXSwnPGRpdiBpZD0ieHJ0dW56aXBkYnMiIGNsYXNzPSJtdC01IGhpZGUiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX1VOWklQREJTfTwvc3Bhbj4nLCc8ZGl2IGlkPSJydHVuemlwZGJzImNsYXNzPSJkaWIgdmF0IHcxMDBwIHBiNSBtYi01IiBzdHlsZT0ibWF4LWhlaWdodDoyMGVtOyI+PC9kaXY+J10sWyJ7TEJMX1VOWklQT1BUfSIsImRpdiNydHVuemlwb3B0cy5kaWIudmF0LmxoMTYwLnB0NS5wYjIiXSwiPC9kaXY+IixbIiAiLCc8ZGl2IGlkPSJydHppcHdhcm4iIGNsYXNzPSJkaWIgdmF0IHcxMDBwIGZzODUgbGgxMzAgbzgwIj48L2Rpdj4nXSwiPC9mb3JtPiIsJzxkaXYgY2xhc3M9Im10MTAgcHQxMyBidGQiPicsJzxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tY2xlYXIiPntCVE5fQ0xFQVJ9PC9idXR0b24+PC9kaXY+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0iZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsIjwvZGl2PiIsJzxkaXYgaWQ9InppcC10ZXN0ZXIiIGNsYXNzPSJoaWRlIj48L2Rpdj4nXSxVbnppcERCUm93OntpZDoiY3cuUGhvdG9uLlN5bmNUYXNrLlVuemlwREJSb3ciLGluaGVyaXQ6WyJEQnMiLCJQaG8iLCJVbnppcE9wdHMiXSxkYXRhOntuYW1lOiIiLHRhcmdldDoiIixkb2NfY291bnQ6MCxyYXdfc2l6ZTowLHNlY3VyaXR5Om51bGx9LGluaXQ6ZnVuY3Rpb24oeCl7eC5odG1sKHRoaXMuSFRNTCksdGhpcy5kYXRhLnRhcmdldD10aGlzLmRhdGEubmFtZSx0aGlzLkRCcz1jdy5saWIuYTJvKHRoaXMuREJzKX0sdWk6eyIjYnRuLXJlbW92ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoMT09dGhpcy5teS5wYXJlbnQoKS5VbnppcFRvLmxlbmd0aD90aGlzLm15LnBhcmVudCgpLm15LmZpbmQoIiNidG4tY2FuY2VsIikudHJpZ2dlcigiY2xpY2subXkiKTp0aGlzLm15LnJlbW92ZSgpKX0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiN1bnppcC1zcmMiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5VbnppcE9wdHMoKS5maW5kKCJjcmVhdGUiKSxjPXRoaXMuUGhvKFsiQWxsIix4LnRhcmdldF0pO3JldHVybic8c3BhbiBjbGFzcz0iZnMxMTUgYm9sZGVyIj57MX08L3NwYW4+IDxzcGFuIGNsYXNzPSJvNDAgZmktYXJyb3ctcmlnaHQgcGwyIj48L3NwYW4+IHsyfScuYXNzaWduKHgubmFtZS50cnVuY2F0ZSg0MCwibWlkZGxlIiwiLi4uIikuZXNjYXBlSFRNTCgpLGM/IiI6Yj8nPHNwYW4gY2xhc3M9InBsNCBwcjUgcHQxIHBiMiBiZy1ncmVlbjIgZnM5MCB3aGl0ZSBmdzYwMCBicjIiPk5ldzwvc3Bhbj4nOic8c3BhbiBjbGFzcz0icGw0IHByNSBwdDEgcGIyIGJnLXJlZDIgZnM5MCB3aGl0ZSBmdzYwMCBicjIiPk5vIERCPC9zcGFuPicpfSx3YXRjaDpbIiN1bnppcC10Z3QiXX0sIiN1bnppcC10Z3QiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnRhcmdldD1hKSx4LnRhcmdldH0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4vXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QoYSk/L15bYS16XS8udGVzdChhKT90aGlzLlVuemlwT3B0cygpLmZpbmQoImNyZWF0ZSIpfHx0aGlzLlBobyhbIkFsbCIsYV0pP3ZvaWQgMDoiREIgZG9lc27igJl0IGV4aXN0IjoiTXVzdCBzdGFydCB3aXRoIGEteiI6Ik9ubHkgbG93ZXJjYXNlIGEteiwgMC05IGFuZCAgXyQoKSstIGFsbG93ZWQifSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjdW56aXAtdGd0Iil9LmRlYm91bmNlKDIwMCkoKSwhMH19fSwiI3VuemlwLWluZm8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyOltdLGM9Yi5sZW5ndGg/Yi5sZW5ndGg6eC5kb2NfY291bnQrKHguZG9jX2RlbF9jb3VudHx8MCksZD0iIixlPSIiO2lmKGQ9Yi5sZW5ndGg/IlBhcnRpYWwgZHVtcDogezF9IGRvY3syfSIuYXNzaWduKGIubGVuZ3RoLGIubGVuZ3RoPjE/InMiOiIiKToiezF9IGRvY3syfSwgezN9IHJhdyIuYXNzaWduKGM+MWUzP2MuYWJicigxKS5yZXBsYWNlKCJtIiwiTSIpOmMsYz4xPyJzIjoiIix4LnJhd19zaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKSxudWxsIT14LnNlY3VyaXR5KXt2YXIgZj0kLmV4dGVuZCghMCx7YWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119fSx4LnNlY3VyaXR5KSxnPVtmLmFkbWlucy5uYW1lcyxmLmFkbWlucy5yb2xlcyxmLm1lbWJlcnMubmFtZXMsZi5tZW1iZXJzLnJvbGVzXS5mbGF0dGVuKCkubGVuZ3RoO2U9JzxzcGFuIGNsYXNzPSJ7MX0iPjwvc3Bhbj4gezJ9IEFDTC4gJy5hc3NpZ24oZz8iZmktbG9jayBncmVlbjEiOiJmaS11bmxvY2sgb3JhbmdlMSIsZz8iSGFzIjoiRW1wdHkiKX1yZXR1cm4gZStkfX19LEhUTUw6JzxkaXYgaWQ9ImJ0bi1yZW1vdmUiIGNsYXNzPSJmciBwNSBjcCByZWQxIGxoMTAwIiB0aXRsZT0iRG8gbm90IHJlc3RvcmUgdGhpcyBEQiI+4pyVPC9kaXY+PGRpdiBjbGFzcz0idzQwcCBmciI+PGlucHV0IGlkPSJ1bnppcC10Z3QiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBtdDMiIHBsYWNlaG9sZGVyPSJUYXJnZXQgREIgbmFtZSI+PC9kaXY+PGRpdiBpZD0idW56aXAtc3JjIiBjbGFzcz0idzU1cCBsaDEzMCBwdDMgbWIzIHdiYSI+PC9kaXY+PGRpdiBpZD0idW56aXAtaW5mbyIgY2xhc3M9IncxMDBwIG1iMiBmczkwIGxoMTIwIG83MCI+PC9kaXY+J30scnVuWmlwOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPSJNdWx0aSI9PWMudGFzayxlPWIuRHVtcFppcCxmPShjLnRndC56aXBmaWxlLHtkYnM6KGQ/Yy5zcmMuZGJzLnVuaXF1ZSgpOltjLnNyYy51cmxdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue3VybDp4LGRyb3A6T2JqZWN0LnNlbGVjdChjLnNyYyxbImZpbHRlciIsImZuIiwiaWRzIiwicXVlcnkiXSl9fSksbmFtZTpjLnRndC56aXBmaWxlLnJlcGxhY2UoL1wuemlwJC9pLCIiKXx8ImR1bXAiLG9wdHM6Yy5zcmMub3B0c30pO3JldHVybiB4Lm1vZGFsKHtyb290OmEsZGF0YTpmLG1hbmlmZXN0OmUsZ2xvYmFsOiExLGNsb3NlOiExLGVzYzohMSxhbGlnbjoiYm90dG9tOjEycHg7cmlnaHQ6MjBweDsiLGNzczoicDEwIHhncmF5IixkcmFnOiIuY20iLHdpZHRoOjQ1MH0pLnRoZW4oZnVuY3Rpb24oKXt9KS5mYWlsKGZ1bmN0aW9uKHgpe2NvbnNvbGUubG9nKHgpLGN3LmxpYi5ub3RlKCJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtaW5nIGpvYi4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiwiZXJyb3IiKX0pfSxydW5VbmR1bXA6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9Ik11bHRpIj09Yy50YXNrLGU9JC5leHRlbmQoITAse30sYi5VbmR1bXApO2MudGd0LnppcGZpbGUsZD9jLnNyYy5kYnMudW5pcXVlKCk6Yy5zcmMudXJsO2IuVW56aXBEQm1hcD17fSxiLlVuemlwVG8uZm9yRWFjaChmdW5jdGlvbih4KXtiLlVuemlwREJtYXBbeC5uYW1lXT14LnRhcmdldH0pLCQuZXh0ZW5kKGUsT2JqZWN0LnNlbGVjdChiLFsiVW56aXBTdHJlYW0iLCJVbnppcERCbWFwIl0pKTt2YXIgZj17ZG9jc1RvU2F2ZTpiLmRvY3NUb1NhdmUsZGJzOmIuVW56aXBUby5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue3NyYzp4Lm5hbWUsbmFtZTp4LnRhcmdldCxmaWx0ZXI6eC5maWx0ZXIsdG90YWxTaXplOngucmF3X3NpemUsdG90YWxEb2NzOnguZG9jX2NvdW50Kyh4LmRvY19kZWxfY291bnR8fDApLHNlY3VyaXR5Onguc2VjdXJpdHksY2x1c3Rlcjp4LmNsdXN0ZXJ8fG51bGwscHJvcHM6eC5wcm9wc3x8bnVsbCxkb25lRG9jczowfX0pLG9wdHM6Yy50Z3Qub3B0c307cmV0dXJuIHgubW9kYWwoe3Jvb3Q6YSxkYXRhOmYsbWFuaWZlc3Q6ZSxnbG9iYWw6ITEsY2xvc2U6ITEsZXNjOiExLGFsaWduOiJib3R0b206MTJweDtyaWdodDoyMHB4OyIsY3NzOiJwMTAgeGdyYXkiLGRyYWc6Ii5jbSIsd2lkdGg6NDUwfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT14LnN0YXR1cztyZXR1cm4iYWJvcnRlZCI9PWE/Y3cubGliLm5vdGUoYi5sYW5nLkVSUl9VTlpJUF9BQlJULCJlcnJvciIsOGUzKToiZG9uZSI9PWE/Y3cubGliLm5vdGUoYi5sYW5nLk1TR19VTlpJUF9PSywib2siLDhlMyk6dm9pZCAwfSkuZmFpbChmdW5jdGlvbih4KXtiLlVuemlwU3RyZWFtLmFib3J0KCksY29uc29sZS5sb2coeCxmKSxjdy5saWIubm90ZShiLmxhbmcuRVJSX1VOWklQX0ZBSUwsImVycm9yIiw1ZTMpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5kb2NzVG9TYXZlPVtdfSl9LHN0YXJ0VW56aXBTdHJlYW06ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9Yi5kYXRhLGQ9JC5EZWZlcnJlZCgpLGU9ITEsZj0hMSxnPSExLGg9ITEsaT1bXSxqPW5ldyBVaW50OEFycmF5KCd7Im5ld19lZGl0cyI6ZmFsc2UsImRvY3MiOlsnLmNvZGVzKCkpLGs9bmV3IFVpbnQ4QXJyYXkoJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6Jy5jb2RlcygpKSxsPW5ldyBVaW50OEFycmF5KCJdfSIuY29kZXMoKSksbT1uZXcgVWludDhBcnJheSgifSIuY29kZXMoKSksbj1uZXcgZmZsYXRlLlVuemlwKEUpO24ucmVnaXN0ZXIoZmZsYXRlLkFzeW5jVW56aXBJbmZsYXRlKTt2YXIgbz14LnN0cmVhbSgpLHA9W10scT1vLmdldFJlYWRlcigpLHI9Yi5kb2NzVG9TYXZlLHM9MSx0PTAsdT0wLHY9ITE7Yi5pc1N0cmVhbWluZz0hMCxjLnNyYy56aXA9eC5uYW1lO3ZhciB3PSExLHk9c2V0SW50ZXJ2YWwoQywxNyksej1zZXRJbnRlcnZhbChBLDMpO3JldHVybiBkLnByb21pc2UoKTtmdW5jdGlvbiBBKCl7IWYmJnAubGVuZ3RoJiZwLnNoaWZ0KCkuc3RhcnQoKX1mdW5jdGlvbiBCKCl7dHJ5e2NsZWFySW50ZXJ2YWwoeil9Y2F0Y2goeCl7fX1mdW5jdGlvbiBDKCl7Znx8ZXx8d3x8KHc9ITAscS5yZWFkKCkudGhlbihGKSl9ZnVuY3Rpb24gRCgpe3RyeXtjbGVhckludGVydmFsKHkpfWNhdGNoKHgpe319ZnVuY3Rpb24gRSh4KXtpZihmKXJldHVybiB4LnRlcm1pbmF0ZSgpO3ZhciBjPXgubmFtZSxuPS9cL19jb25mbGljdHNcLy8udGVzdChjKSxvPUwoYy5zcGxpdCgiLyIpWzBdKSxxPShiLlVuemlwREJtYXB8fHt9KVtvXSx3PVtdLHk9Il9pbmZvLmpzb24iPT1jO2lmKHl8fGMhPW8mJihudWxsPT09Yi5VbnppcERCbWFwfHxxKSYmL15bYS16MC05XyRcKFwpXCtcLVwvXStcLy4rXC5qc29uJC8udGVzdChMKGMpKSl7dy5wdXNoKG4/azpqKTt2YXIgej17bmFtZTpjLHNyY2RiOm8sZGVzdGRiOnEsc2l6ZTowLHJlYWR5OiExLHNhdmVkOiExLGVycm9yczpbXSxyZXE6bnVsbH07cys9MSx5fHwodCs9MSkseC5vbmRhdGE9ZnVuY3Rpb24oYSxiLGMpe2lmKGYpcmV0dXJuIHgudGVybWluYXRlKCk7YT9JKCJGYWlsZWQgdW56aXBwaW5nOiAiKygoYXx8InVua25vd24gZXJyb3IiKSsiIikudHJ1bmNhdGUoMTAwKSk6KGImJih3LnB1c2goYiksei5zaXplKz1iLmxlbmd0aCksYyYmQSgpKX0scC5wdXNoKHgpfWVsc2UgeC5vbmRhdGE9ZnVuY3Rpb24oYSxiLGMpe2lmKGYpcmV0dXJuIHgudGVybWluYXRlKCl9LHAucHVzaCh4KSx1Kz0xO2Z1bmN0aW9uIEEoKXtyZXR1cm4gZj94LnRlcm1pbmF0ZSgpOihzLT0xLHoucmVhZHk9ITAsdy5wdXNoKG4/bTpsKSx5JiYhdj8oSigpLHY9ITAsYT17aW5mbzpKU09OLnBhcnNlKEcodykpLmRvY3NbMF0scGF1c2U6SixhYm9ydDpJLGNvbnRpbnVlOkssbm90aWZ5OmZ1bmN0aW9uKHgpe2kucHVzaCh4KX0sZ2V0U3RhdHM6ZnVuY3Rpb24oKXtyZXR1cm57aXNaaXBSZWFkOmgsZmlsZXM6dCxkcm9wOnV9fSxpc1BhdXNlZDpmdW5jdGlvbigpe3JldHVybiBlfSxpc0Fib3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnx8Z30saXNEb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGlzQWxsUmVhZDpmdW5jdGlvbigpe3JldHVybiBofX0sdz12b2lkIDAsZC5yZXNvbHZlKGEpKTooei5yZXE9e3VybDoiIixwcm9jZXNzRGF0YTohMSxtZXRob2Q6InBvc3QiLGRhdGE6bmV3IEJsb2IodyksaGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSxyLnB1c2goeiksSCgiZG9jIix6LnNpemUpLDA9PXMmJihiLmlzU3RyZWFtaW5nPSExLGc9ITAsRCgpLEIoKSxyLnB1c2gobnVsbCksSCgiZW5kZWQiKSxkLnJlamVjdCgpKSx2b2lkIDApKX19ZnVuY3Rpb24gRih4KXt2YXIgYT14LmRvbmUsYj14LnZhbHVlO2E/KG4ucHVzaChifHxuZXcgVWludDhBcnJheSwhMCkscy09MSxoPSEwLEQoKSxjb25zb2xlLmxvZygiWmlwIGZpbGUgZW5kZWQsIHsxfSBmaWxlcyBwaXBlZCwgezJ9IGZpbGVzIGRyb3BwZWQiLmFzc2lnbih0LHUpKSk6bi5wdXNoKGIpLHc9ITF9ZnVuY3Rpb24gRyh4KXt2YXIgYT1uZXcgVWludDhBcnJheSh4Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5sZW5ndGh9KS5zdW0oKSksYj0wO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9eC5sZW5ndGg7YS5zZXQoeCxiKSxiKz1jfSksZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYSkpKX1mdW5jdGlvbiBIKHgsYil7YSYmaS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXRyeXthKHgsYil9Y2F0Y2goeCl7Y29uc29sZS5sb2coIkVycm9yIG5vdGlmeWluZyB1bnppcHBlZCBkb2MgcHVtcHMiLHgpfX0pfWZ1bmN0aW9uIEkoeCl7Zj0hMCxnPSEwLGIuaXNTdHJlYW1pbmc9ITEsYi5kb2NzVG9TYXZlLmxlbmd0aD0wLEQoKSxCKCkscS5jYW5jZWwoKS50aGVuKGZ1bmN0aW9uKCl7cS5yZWxlYXNlTG9jaygpO3RyeXtvLmNhbmNlbCgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfX0pLGNvbnNvbGUubG9nKCJcblJlYWRlciBjYW5jZWxsZWRcbiIrKHh8fCIiKSkseCYmY3cubGliLm5vdGUoeCwiIiw2ZTMpfWZ1bmN0aW9uIEooKXtlPSEwLGNvbnNvbGUubG9nKCJcblJlYWRlciBwYXVzZWQsIHsxfSBmaWxlcyBpbiB0aGUgYnVmZmVyXG4iLmFzc2lnbihyLmxlbmd0aCkpfWZ1bmN0aW9uIEsoKXtlPSExLGNvbnNvbGUubG9nKCJcblJlYWRlciByZXN0YXJ0ZWRcbiIpfWZ1bmN0aW9uIEwoeCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh4KX19LHN0YXJ0VW56aXBTeW5jOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPShiLmRhdGEsYi5kb2NzVG9TYXZlKSxkPSQuRGVmZXJyZWQoKSxlPVtdLGY9ITEsZz0hMSxoPSExO3JldHVybiB4LmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbih4KXtmZmxhdGUudW56aXAobmV3IFVpbnQ4QXJyYXkoeCksZnVuY3Rpb24oeCxqKXt4P2NvbnNvbGUubG9nKHgpOk9iamVjdC5rZXlzKGopLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGQ9aSh4LnNwbGl0KCIvIilbMF0pLGs9Il9pbmZvLmpzb24iPT14O2lmKGt8fGkoeCkhPWQmJi9eW2EtejAtOV8kXChcKVwrXC1cL10rXC8uK1wuanNvbiQvLnRlc3QoaSh4KSkpcmV0dXJuIGs/KGE9e2luZm86SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxqW3hdKSkpKSxwYXVzZTpmdW5jdGlvbigpe30sYWJvcnQ6ZnVuY3Rpb24oKXtnPSEwLGg9ITAsYi5pc1N0cmVhbWluZz0hMSxiLmRvY3NUb1NhdmUubGVuZ3RoPTB9LGNvbnRpbnVlOmZ1bmN0aW9uKCl7fSxub3RpZnk6ZnVuY3Rpb24oeCl7ZS5wdXNoKHgpfSxnZXRTdGF0czpmdW5jdGlvbigpe3JldHVybntpc1ppcFJlYWQ6ITAsZmlsZXM6T2JqZWN0LnNpemUoaiksZHJvcDowfX0saXNQYXVzZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGd8fGh9LGlzRG9uZTpmdW5jdGlvbigpe3JldHVybiBofSxpc0FsbFJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHZvaWQgMCk6KGMucHVzaCh7bmFtZTp4LHNyY2RiOmQsZGVzdGRiOm51bGwsc2l6ZTpqW3hdLmxlbmd0aCxyZWFkeTohMSxzYXZlZDohMSxlcnJvcnM6W10scmVxOnt1cmw6IiIscHJvY2Vzc0RhdGE6ITEsbWV0aG9kOiJwb3N0IixkYXRhOi9cL19jb25mbGljdHNcLy8udGVzdCh4KT9uZXcgQmxvYihbJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6JyxqW3hdLCJ9Il0pOm5ldyBCbG9iKFsneyJuZXdfZWRpdHMiOmZhbHNlLCJkb2NzIjpbJyxqW3hdLCJdfSJdKSxoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19fSksdm9pZCAwKX0pLGMucHVzaChudWxsKSxhP2QucmVzb2x2ZShhKTpkLnJlamVjdCh4fHwiTm8gc3RyZWFtIil9KX0pLGQucHJvbWlzZSgpO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh4KX19LHJ1blRhc2tzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPSJodHRwOi8vbG9jYWxob3N0OiIreC5QaG8oIkNvdWNoIikucG9ydCsiLyIsYz0iTXVsdGkiPT1hLnRhc2ssZD0hIWEubW9kZS5maW5kKCJkb2MiKSxlPShhLm1vZGUuZmluZCgiMndheSIpLCEhYS5tb2RlLmZpbmQoImxpdmUiKSksZj14LmlzQ291Y2gyJiYoZXx8ZCksZz0heC5pc0NvdWNoMiYmISFhLnNyYy51Y3R4Lmxlbmd0aCxoPVtdLGk9e30saj17ZG9jOiIiLG1vZGU6W10sc3JjOntkYjoiIix1cmw6IiIsdWN0eDpbXSxmaWx0ZXI6W10sZm46IiIscXVlcnk6e30saWRzOltdfSx0Z3Q6e3VybDoiIixjcmVhdGU6ITEsYWNsOiExfX07Yz9hLnNyYy5kYnMudW5pcXVlKCkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYj0kLmV4dGVuZCghMCx7fSxqLE9iamVjdC5yZWplY3QoYSwidGFza3MiKSksYz1hLnRndC5wcmVmaXgrKHguc3RhcnRzV2l0aChhLnNyYy51bnByZWZpeCk/eC5yZXBsYWNlKGEuc3JjLnVucHJlZml4LCIiKTp4KTtiLnNyYy5kYj14LGIuc3JjLnVybD1mP2woeCxiLnNyYy51c2VyLGIuc3JjLnB3ZCk6eCxnJiYoYi51c2VyX2N0eD17bmFtZTpjdy5tZSgpLHJvbGVzOmEuc3JjLnVjdHguc2xpY2UoMCl9KSxiLnRndC51cmw9bChiLnRndC51cmwrKCIvIj09Yi50Z3QudXJsLnN1YnN0cigtMSk/IiI6Ii8iKSttKGMpLGIudGd0LnVzZXIsYi50Z3QucHdkKSxoLnB1c2goYil9KTooaT0kLmV4dGVuZCghMCx7fSxqLE9iamVjdC5yZWplY3QoYSwidGFza3MiKSksZyYmIXguaXNVUkwoYS5zcmMudXJsKSYmKGkudXNlcl9jdHg9e25hbWU6Y3cubWUoKSxyb2xlczphLnNyYy51Y3R4LnNsaWNlKDApfSksKGZ8fHguaXNVUkwoaS5zcmMudXJsKSkmJihpLnNyYy51cmw9bChpLnNyYy51cmwsaS5zcmMudXNlcixpLnNyYy5wd2QpKSwoZnx8eC5pc1VSTChpLnRndC51cmwpfHxpLnRndC51c2VyJiZpLnRndC5wd2QpJiYoaS50Z3QudXJsPWwoaS50Z3QudXJsLGkudGd0LnVzZXIsaS50Z3QucHdkKSksaD1baV0pLGMmJmN3LmxpYi5ub3RlKHgubGFuZy5NU0dfU1RBUlRJTkcpO3ZhciBrPVtdO3JldHVybiBoLmZvckVhY2goZnVuY3Rpb24oYSxiKXtrLnB1c2goUS5kZWxheSgxKzEwMCpiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHgucnVuVGFza0NoYWluKGEpfSkpfSksUS5hbGxTZXR0bGVkKGspO2Z1bmN0aW9uIGwoYSxjLGUpe3ZhciBmO2lmKHguaXNVUkwoYSkpZj1uZXcgVVJMKGEpO2Vsc2V7aWYoIShkfHxjfHx4LmlzQ291Y2gyKSlyZXR1cm4gYTtmPW5ldyBVUkwoYittKGEpKX1yZXR1cm4gYyYmKGYudXNlcm5hbWU9YyxmLnBhc3N3b3JkPWUpLGYrIiJ9ZnVuY3Rpb24gbSh4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfX0scnVuVGFza0NoYWluOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmxhbmcsYz1iLkVSUl9KT0IsZD1PYmplY3QsZT1hLlBobygiUmVwbGljYXRvckRCIiksZj1jdy5saWIubm90ZSxnPWQubWVyZ2Uoe2RvYzoiIixtb2RlOltdLHNyYzp7ZGI6IiIsdXJsOiIiLHVjdHg6W10sZmlsdGVyOltdLGZuOiIiLHF1ZXJ5Ont9LGlkczpbXX0sdGd0Ont1cmw6IiIsY3JlYXRlOiExLGFjbDohMX19LHgsITApLGg9YS5pc0xvY2FsREIoZy5zcmMudXJsKSxpPWgsaj0oYS5pc0xvY2FsREIoZy50Z3QudXJsKSwhIWcubW9kZS5maW5kKCJkb2MiKSksaz0hIWcubW9kZS5maW5kKCJsaXZlIiksbD0hIWcubW9kZS5maW5kKCIyd2F5IiksbT0iIixuPVtdLG89JC5EZWZlcnJlZCgpLHA9JC5EZWZlcnJlZCgpO3JldHVybiBvLnRoZW4ocSkudGhlbihyKS50aGVuKHMpLnRoZW4odCkudGhlbih1KS5mYWlsKGZ1bmN0aW9uKCl7ZihtLmVzY2FwZUhUTUwoKSwiZXJyb3IiLDVlMykscC5yZWplY3QoNDk5LG0pfSkuYWx3YXlzKGZ1bmN0aW9uKCl7cC5yZXNvbHZlKCl9KSxvLnJlc29sdmUuZGVib3VuY2UoMSkoKSxwLnByb21pc2UoKTtmdW5jdGlvbiBxKCl7aWYoaCl7dmFyIHg9JC5EZWZlcnJlZCgpO3JldHVybiBhLlJlcSh2KHt1cmw6W2ksIl9hbGxfZG9jcyIse3N0YXJ0a2V5OiJfZGVzaWduLyIsZW5ka2V5OiJfZGVzaWduMCJ9XSxtZXRob2Q6IkdFVCJ9KSkudGhlbihmdW5jdGlvbihhKXthLnJvd3MuZm9yRWFjaChmdW5jdGlvbih4KXtuLnB1c2goeC5pZCl9KSx4LnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oYSxiKXttPWMuVC5hc3NpZ24oYy5HRVQsaSxhLGIpLHgucmVqZWN0KGEsbSl9KSx4LnByb21pc2UoKX19ZnVuY3Rpb24gcigpe2lmKGgmJmcuc3JjLmZpbHRlci5maW5kKC9eeChkZWx8ZGRvY3xjb25mbGljdCkkLykpe3ZhciB4PSQuRGVmZXJyZWQoKSxiPWQuY2xvbmUoYS5EZG9jLCEwKTtyZXR1cm4gbi5maW5kKGIuX2lkKT9hLlJlcSh2KHt1cmw6W2ksYi5faWRdLG1ldGhvZDoiR0VUIn0pKS50aGVuKGZ1bmN0aW9uKGEpe2EudmVyc2lvbj09Yi52ZXJzaW9uP3gucmVzb2x2ZSgpOihiLl9yZXY9YS5fcmV2LGUoKSl9KS5mYWlsKGYpOmUoKSx4LnByb21pc2UoKX1mdW5jdGlvbiBlKCl7YS5SZXEodih7dXJsOltpLGIuX2lkXSxtZXRob2Q6IlBVVCIsZGF0YTpjdy5saWIuanNvbigkLmV4dGVuZChiLHtzdGFtcDpEYXRlLm5vdygpfSkpLGRhdGFUeXBlOiJ0ZXh0In0pKS50aGVuKGZ1bmN0aW9uKCl7eC5yZXNvbHZlKCl9KS5mYWlsKGYpfWZ1bmN0aW9uIGYoYSxiKXttPWMuVC5hc3NpZ24oYy5VVElMUyxpLGEsYikseC5yZWplY3QoYSxtKX19ZnVuY3Rpb24gcygpe2lmKGcubW9kZS5maW5kKCIyd2F5IikmJmgmJmcuc3JjLmZpbHRlci5maW5kKC9eKGZufHhkZWx8eGRkb2N8eGNvbmZsaWN0KSQvKSl7dmFyIHg9YS5EZG9jLl9pZDtpZihnLnNyYy5maWx0ZXIuZmluZCgiZm4iKSl7aWYoIWcuc3JjLmZuKXJldHVybjt4PSJfZGVzaWduLyIrZy5zcmMuZm4uc3BsaXQoIi8iKVswXX12YXIgYj0kLkRlZmVycmVkKCk7cmV0dXJuIGEuUmVxKHYoe3VybDpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6IlBPU1QiLHRpbWVvdXQ6NmU0LGRhdGFUeXBlOiJ0ZXh0IixkYXRhOkpTT04uc3RyaW5naWZ5KHtzb3VyY2U6Zy5zcmMudXJsLHRhcmdldDpnLnRndC51cmwsY29udGludW91czohMSxjcmVhdGVfdGFyZ2V0OiEhZy50Z3QuY3JlYXRlLGRvY19pZHM6W3hdfSl9KSkudGhlbihmdW5jdGlvbigpe2IucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbih4LGEpe2YoYy5ULmFzc2lnbihjLkZERE9DLGkseCxhKStjLkMsIndhcm5pbmciKSxiLnJlc29sdmUoKX0pLGIucHJvbWlzZSgpfX1mdW5jdGlvbiB0KCl7fWZ1bmN0aW9uIHUoKXt2YXIgeCxuPVtdLG89e3NvdXJjZTpnLnNyYy51cmwsdGFyZ2V0OmcudGd0LnVybCxjb250aW51b3VzOiEhZy5tb2RlLmZpbmQoImxpdmUiKSxjcmVhdGVfdGFyZ2V0OiEhZy50Z3QuY3JlYXRlfTtnLnNyYy5maWx0ZXIuZmluZCgiZm4iKSYmZy5zcmMuZm4/KG8uZmlsdGVyPWcuc3JjLmZuLGQuc2l6ZShnLnNyYy5xdWVyeSkmJihvLnF1ZXJ5X3BhcmFtcz1kLmNsb25lKGcuc3JjLnF1ZXJ5LCEwKSkpOmcuc3JjLmZpbHRlci5maW5kKCJpZHMiKT9vLmRvY19pZHM9ZC5jbG9uZShnLnNyYy5pZHMsITApOihuPWcuc3JjLmZpbHRlci5maW5kQWxsKC9eeChkZWx8ZGRvY3xjb25mbGljdCkkLykpLmxlbmd0aCYmKG8uZmlsdGVyPWEuRGRvYy5faWQuc3BsaXQoIi8iKVsxXSsiL2V4Y2x1ZGUiLG8ucXVlcnlfcGFyYW1zPW4ucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09IlQiLHh9LHt9KSksaiYmKG8uX2lkPWcuZG9jKyhoPyIsICIraSsiID0+IjpsPyIsIG91dGJvdW5kIjoiIiksby5vd25lcj1jdy5tZSgpLG8ucGhvdG9uX3Rhc2s9Zy5kb2MrIiIsZy51c2VyX2N0eCYmKG8udXNlcl9jdHg9T2JqZWN0LmNsb25lKGcudXNlcl9jdHgsITApKSk7dmFyIHA9Zy5zcmMudXJsLnNwbGl0KCIvIikuY29tcGFjdCghMCkubGFzdCgpLmVzY2FwZUhUTUwoKSxxPSQuRGVmZXJyZWQoKTtyZXR1cm4ganx8a3x8ZihiLk1TR19TVEFSVC5hc3NpZ24ocCkpLGwmJih4PSQuZXh0ZW5kKCEwLHt9LG8se3NvdXJjZTpnLnRndC51cmwsdGFyZ2V0Omcuc3JjLnVybCxjcmVhdGVfdGFyZ2V0OiExfSksaiYmKHguX2lkPWcuZG9jKyhoPyIsICIraSsiIDw9IjoiLCBpbmJvdW5kIikpKSxyKG8pLnRoZW4oZnVuY3Rpb24oKXt2YXIgeD1iW2o/Ik1TR19PS19ET0MiOms/Ik1TR19PS19MSVZFIjoiTVNHX09LX09OQ0UiXTtmKHguYXNzaWduKHApLCJvayIpLHQoZy50Z3QudXJsKSxsP1EuZGVsYXkoby5jcmVhdGVfdGFyZ2V0PzVlMzpqPzJlMzoxMDApLnRoZW4oZnVuY3Rpb24oKXtzKCkuYWx3YXlzKGZ1bmN0aW9uKCl7cS5yZXNvbHZlKCl9KX0pOnEucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbih4LGEpe209Yy5ULmFzc2lnbihjLlRPLGkseCxhKSxxLnJlamVjdCh4LG0pfSkscS5wcm9taXNlKCk7ZnVuY3Rpb24gcih4KXt2YXIgYj14Ll9pZCxjPXt1cmw6Yj9bZSxiXTpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6Yj8iUFVUIjoiUE9TVCIsZGF0YVR5cGU6InRleHQiLGRhdGE6SlNPTi5zdHJpbmdpZnkoeCksdGltZW91dDpifHx4LmNvbnRpbnVvdXM/MWU0OjNlNX07cmV0dXJuIGEuUmVxKHYoYykpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gcih4KS50aGVuKGZ1bmN0aW9uKCl7dmFyIHg9Ylsoaj8iTVNHX09LX0RPQyI6az8iTVNHX09LX0xJVkUiOiJNU0dfT0tfT05DRSIpKyJfQkFDSyJdO2YoeC5hc3NpZ24ocCksIm9rIiksdChnLnNyYy51cmwpfSkuZmFpbChmdW5jdGlvbih4LGEpe2YoYy5ULmFzc2lnbihjLkZST00saSx4LGEpK2MuQywid2FybmluZyIpfSl9ZnVuY3Rpb24gdCh4KXt2YXIgYj1hLmlzTG9jYWxEQih4KTshayYmYiYmJC5teS5yYWRpbygiZGJsaXN0IixbYl0pLGomJiQubXkucmFkaW8oImRibGlzdCIsW2VdKX19ZnVuY3Rpb24gdih4KXtyZXR1cm4gJC5leHRlbmQoITAse3VybDpbXSxtZXRob2Q6IiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGFUeXBlOiJqc29uIix0aW1lb3V0OjFlNH0seCl9fSxEZG9jOntfaWQ6Il9kZXNpZ24vcGhvdG9uLXN5bmMiLGxhbmd1YWdlOiJqYXZhc2NyaXB0IixuYW1lOiJQaG90b24gc3luYyB1dGlscyIsdmVyc2lvbjoiMDEuMDEiLHN0YW1wOjAsb3B0aW9uczp7Y29uZmxpY3RzOiEwfSxmaWx0ZXJzOntleGNsdWRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9YS5xdWVyeXx8e30sYz14Ll9pZDtyZXR1cm4hKGIueGRlbCYmeC5fZGVsZXRlZHx8Yi54ZGRvYyYmIl9kZXNpZ24vIj09Yy5zdWJzdHIoMCw4KSl9fX0sRHVtcFppcDp7aWQ6ImN3LlBob3Rvbi5EdW1wWmlwIixwYXJhbXM6e3Jlc3R5bGU6MjAwfSxEYXRhVXJsczpbXSxyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuc3RyZWFtU2F2ZXIiOiJsaWIvc3RyZWFtc2F2ZXIuanMiLCJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxkYXRhOntkYnM6W10sbmFtZToiZHVtcCIsemlwOm51bGwsdXJsOiIiLG9wdHM6W10sYnl0ZXM6MCx6Ynl0ZXM6MCxkb25lOiExLHN0YXR1czoicmVhZHkiLG1heFJlYWRTdHJlYW1zOjQsbWF4RmVlZENodW5rOjIwOTcxNTIsbWluRmVlZERvY3M6MTUsbWF4RmVlZERvY3M6MTAwLG1heFJlc3RhcnRzOjN9LERCczp7fSxTdGFtcDowLERvY0xpc3Q6W10sREJzUmVhZEN0cjowLFN0cmVhbTp7YWJvcnQ6ZnVuY3Rpb24oKXt9fSxJbmZvRG9jOnt9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtyZXR1cm4geC5odG1sKGEuSFRNTCkseC50aGVuKGZ1bmN0aW9uKCl7YS5TdHJlYW09YS5TdHJlYW1Eb2NzKCksYi5zdGF0dXM9InN0cmVhbWluZyJ9LmRlYm91bmNlKDUwKSksYS5SZWFkREJzSW5mbygpLnRoZW4oZnVuY3Rpb24oKXthLlN0YW1wPURhdGUubm93KCl9KX0sdWk6eyIjZGItcm93cyI6e2JpbmQ6ImRicyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLm5pY2VTY3JvbGwoeCl9LGxpc3Q6JzxkaXYgY2xhc3M9Im10NSBwdDUgcGI1IGJiZCI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5EQlJvd30saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHgudXJsfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC50b3RhbERvY3MrIiIseC50b3RhbFNpemUrIiJdKX19LCIjYnl0ZXMiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguYnl0ZXM/dGhpcy5CeXRlc1QuYXNzaWduKHguYnl0ZXMuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIikseC5kb25lPyJmaS1jaGVjayBvNzAgZ3JlZW4gZnM4MCI6ImZpLWFycm93LXJpZ2h0IG81MCB4Z3JheSBmczgwIix4LnpieXRlcy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKSk6IiJ9LCIjc3RyZWFtLXNwZWVkIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPShEYXRlLm5vdygpLXRoaXMuU3RhbXArMSkvMWUzLGM9KDgqeC5ieXRlcy9ifDApLmNsYW1wKDAsMWU5KTtyZXR1cm4gYz9jLmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYml0L3MiKToiIn0sd2F0Y2g6WyIjYnl0ZXMiXX0sIiNidG4tc3RvcCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLlN0cmVhbS5hYm9ydCgpfX19LHN0eWxlOnsiICI6ZnVuY3Rpb24oeCl7cmV0dXJuInN0cmVhbWluZyI9PXRoaXMuZGF0YS5zdGF0dXMmJngudHJpZ2dlcigibGF5b3V0IiksImZvbnQtc2l6ZToxNXB4OyBsaW5lLWhlaWdodDoxLjRlbTsifX0sSFRNTDonPGRpdiBjbGFzcz0iZnMxMzAgZnc0MDAgY20iPjxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiBEdW1wIHRvIHppcDwvZGl2PjxkaXYgaWQ9ImRiLXJvd3MiIGNsYXNzPSJtdDEwIGJ0ZCBtYjEwIiBzdHlsZT0ibWF4LWhlaWdodDo1MDBweDsiPjwvZGl2PjxkaXY+PGRpdiBpZD0ic3RyZWFtLXNwZWVkIiBjbGFzcz0idzI1cCBvNTAgZnIgdGFyIG10NSI+PC9kaXY+PGRpdiBpZD0iYnl0ZXMiIGNsYXNzPSJmciB3NDVwIG10NSBvNzAiPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1zdG9wIiBjbGFzcz0ibXI1Ij5BYm9ydCB6aXA8L2J1dHRvbj48L2Rpdj4nLEJ5dGVzVDonPHNwYW4gY2xhc3M9ImRpYiB3NDVwIHRhciI+ezF9PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWIgdzEwcCB0YWMgezJ9Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImRpYiB3NDVwIHRhbCI+ezN9PC9zcGFuPicsZGllOmZ1bmN0aW9uKHgpe3RoaXMuRGF0YVVybHMuZm9yRWFjaChmdW5jdGlvbih4KXtVUkwucmV2b2tlT2JqZWN0VVJMKHgpfSl9LFJlYWREQnNJbmZvOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPWEub3B0c3x8W107cmV0dXJuIHguREJzUmVhZEN0cj1hLmRicy5sZW5ndGgsUS5hbGwoYS5kYnMubWFwKGZ1bmN0aW9uKGEpe3ZhciBkPS9eKGh0dHBbc10/OlwvXC98XC8pLy50ZXN0KGEudXJsKT9hLnVybC5zcGxpdCgiLyIpLmNvbXBhY3QoITApLmxhc3QoKTphLnVybCxlPWEuZHJvcC5maWx0ZXJ8fFtdLGY9ZS5maW5kKCJpZHMiKSYmYS5kcm9wLmlkc3x8W10sZz0vXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdChhLnVybCk/YS51cmw6Ii8iK2MoYS51cmwpLGg9ISFlLmZpbmQoInhkZWwiKTtyZXR1cm4geC5SZXEoZykudGhlbihmdW5jdGlvbihjKXt2YXIgZT0oYy5kb2NfY291bnR8fDApKyhoPzA6Yy5kb2NfZGVsX2NvdW50fHwwKSxnPShjLnNpemVzP2Muc2l6ZXMuYWN0aXZlOmMuZGF0YV9zaXplKXx8MDthLnRvdGFsU2l6ZT1nLGEudG90YWxEb2NzPWUsYS5tYXhTZXE9Yy51cGRhdGVfc2VxPysoYy51cGRhdGVfc2VxKyIiKS5zcGxpdCgiLSIpWzBdOi0xO3ZhciBpPVsiZG9jX2NvdW50Il07aHx8aS5wdXNoKCJkb2NfZGVsX2NvdW50IiksYi5maW5kKCJxbnAiKSYmaS5wdXNoKCJwcm9wcyIsImNsdXN0ZXIiKSx4LkluZm9Eb2NbZF09JC5leHRlbmQoITAse25hbWU6ZCxmaWx0ZXI6Zi5sZW5ndGg/ZjpudWxsLHN0YXJ0X3NlcTowLG1heF9zZXE6YS5tYXhTZXEsdHM6RGF0ZS5ub3coKSxzZWN1cml0eTpudWxsLHJhd19zaXplOmcsZG9jX2NvdW50OjAsZG9jX2RlbF9jb3VudDowfSxPYmplY3Quc2VsZWN0KGMsaSkpfSkudGhlbihmdW5jdGlvbigpe2lmKGIuZmluZCgiYWNsIikpe3ZhciBhPSQuRGVmZXJyZWQoKTtyZXR1cm4geC5SZXEoZysiL19zZWN1cml0eSIpLnRoZW4oZnVuY3Rpb24oYil7T2JqZWN0LmlzT2JqZWN0KGIpJiYoeC5JbmZvRG9jW2RdLnNlY3VyaXR5PWIpLGEucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbigpe2EucmVzb2x2ZSgpfSksYS5wcm9taXNlKCl9fSkuZmFpbChmdW5jdGlvbigpe2N3LmxpYi5ub3RlKCdGYWlsZWQgcmVhZGluZyA8c3BhbiBjbGFzcz0iZnc0MDAiPnsxfTwvc3Bhbj4gREIuIER1bXAgYWJvcnRlZC4nLmFzc2lnbihkKSwiZXJyb3IiKX0pfSkpO2Z1bmN0aW9uIGMoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX19LFN0cmVhbURvY3M6ZnVuY3Rpb24oKXt2YXIgeCxhLGI9dGhpcyxjPWIuZGF0YSxkPXt9LGU9e30sZj1bXSxnPVtdLGg9Yy5tYXhSZWFkU3RyZWFtcyxpPWMubWF4UmVzdGFydHN8fDMsaj0hMCxrPSExLGw9QS50aHJvdHRsZSgyNTApLG09InsxfS97Mn0/cmV2PXszfSZhdHRhY2htZW50cz10cnVlIixuPSJ7MX0vezJ9P2F0dGFjaG1lbnRzPXRydWUiLG89InsxfS97Mn0/b3Blbl9yZXZzPXszfSZhdHRhY2htZW50cz10cnVlIjsiVGV4dEVuY29kZXIiaW4gd2luZG93Pyh4PW5ldyBUZXh0RW5jb2RlcixhPWZ1bmN0aW9uKGEpe3JldHVybiB4LmVuY29kZShhKX0pOmE9ZnVuY3Rpb24oeCl7cmV0dXJuIGZmbGF0ZS5zdHJUb1U4KHgpfTt2YXIgcCxxPW5ldyBmZmxhdGUuWmlwLHI9c3RyZWFtU2F2ZXIuY3JlYXRlV3JpdGVTdHJlYW0oYy5uYW1lKyIuemlwIix7cGF0aG5hbWU6Ii9fc3RyZWFtLyIrYy5uYW1lKyIuemlwIixzaWduYWw6c30pLmdldFdyaXRlcigpO3JldHVybiBxLm9uZGF0YT1mdW5jdGlvbih4LGEsYil7eD9DKCJGYWlsZWQgemlwcGluZzogIisoKHh8fCJ1bmtub3duIGVycm9yIikrIiIpLnRydW5jYXRlKDEwMCkpOihhJiZhLmxlbmd0aCYmKHIud3JpdGUoYSksYy56Ynl0ZXMrPWEubGVuZ3RoKSxiJiYoaz9DKCJBYm9ydGVkIik6QigpKSl9LHA9Yi5QaG8sdCgiX2luZm8uanNvbiIsYShKU09OLnN0cmluZ2lmeSh7dXNlcjpjdy5tZSgpLGRhdGU6KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQrLywiIikscGhvdG9uOnAoIlZlcnNpb24iKSsiLiIrcCgiYnVpbGQiKSxjb3VjaDpwKFsiQ291Y2giLCJ2ZXJzaW9uIl0pLGhvc3Q6Y3cubGliLmNyYzIod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSxkYnM6T2JqZWN0LnZhbHVlcyhiLkluZm9Eb2MpfSxudWxsLCIgICIpKSksYy5kYnMuZm9yRWFjaChmdW5jdGlvbih4KXtiLkRCc1t4LnVybF09eCxPYmplY3QuaXNBcnJheSh4LmRyb3AuaWRzKSYmeC5kcm9wLmlkcy5sZW5ndGg/KHguZHJvcC5pZHMuZm9yRWFjaChmdW5jdGlvbihhKXt1KHgudXJsLHtpZDphLGRvYzpudWxsLHJldnM6W119KX0pLGIuREJzUmVhZEN0ci09MSxnLnB1c2gobnVsbCkpOmIuUHJlcGFyZURvY0xpc3QoeCx1KS50aGVuKGZ1bmN0aW9uKGEpe0QoIkRCOiB7MX0sIGRvY3M6IHtkb2NzfSwgc2VxOiB7c2VxfSIuYXNzaWduKGEpLmFzc2lnbih4LnVybC5zcGxpdCgiLyIpLmxhc3QoKSkpLGIuREJzUmVhZEN0cnx8Zy5wdXNoKG51bGwpLHkoKX0pLmZhaWwoZnVuY3Rpb24oKXtDKCJGYWlsZWQgcmVhZGluZyBkb2MgbGlzdCIpfSl9KSx7YWJvcnQ6ZnVuY3Rpb24oeCl7az0hMCxDKHh8fCJUZXJtaW5hdGVkIGJ5IHVzZXIiKX19O2Z1bmN0aW9uIHMoeCl7InVzZXIgYWJvcnRlZCI9PXgmJkMoIlVzZXIgYWJvcnRlZCIpfWZ1bmN0aW9uIHQoeCxhKXt2YXIgYixjPWEuYnl0ZUxlbmd0aDtiPWM8NTEyP25ldyBmZmxhdGUuWmlwUGFzc1Rocm91Z2goeCk6YzwzMjc2OD9uZXcgZmZsYXRlLlppcERlZmxhdGUoeCk6bmV3IGZmbGF0ZS5Bc3luY1ppcERlZmxhdGUoeCkscS5hZGQoYiksYi5wdXNoKGEsITApfWZ1bmN0aW9uIHUoeCxhKXt2YXIgYj0vXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdCh4KSxjPWEuaWQsZD1hLnJldjtyZXR1cm4gYS5yZXZzLmxlbmd0aCYmZy5wdXNoKHtkYjp4LGlkOmMsbmFtZTpbdyhiP3guc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCk6eCkrIi8iLCJfY29uZmxpY3RzLyIsdyhjLCEwKSsiLmpzb24iXS5qb2luKCIiKSx1cmw6by5hc3NpZ24oYj94OiIvIit2KHgpLHYoYyksdihKU09OLnN0cmluZ2lmeShhLnJldnMpKSksb3B0czp7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19LGlzUmV2czohMH0pLGcucHVzaCh7ZGI6eCxpZDpjLG5hbWU6W3coYj94LnNwbGl0KCIvIikuY29tcGFjdCghMCkubGFzdCgpOngpKyIvIixhLmRlbD8iX2RlbGV0ZWQvIjoiIix3KGMsYS5kZWwpKyIuanNvbiJdLmpvaW4oIiIpLGRvYzphLmRvYyx1cmw6KGQ/bTpuKS5hc3NpZ24oYj94OiIvIit2KHgpLHYoYyksZCksb3B0czp7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19fSkseSgpLGt9ZnVuY3Rpb24gdih4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfWZ1bmN0aW9uIHcoeCxhKXt2YXIgYj0hYSYmL15fZGVzaWduXC8vLnRlc3QoeCk7cmV0dXJuKGI/Il9kZXNpZ24vIjoiIikrKGI/eC5zdWJzdHIoOCk6eCkucmVwbGFjZSgvWyJcLzolPD5cP1xcXHxdL2csdikucmVwbGFjZSgvXCovZywiJTJBIil9ZnVuY3Rpb24geSgpe2lmKCFrKWZvcih2YXIgeD17fTtPYmplY3Quc2l6ZShkKTxoJiZnLmxlbmd0aCYmbnVsbCE9PXg7KW51bGw9PT0oeD1nLnNoaWZ0KCkpPzA9PU9iamVjdC5zaXplKGQpP3EuZW5kKCk6Zy5wdXNoKG51bGwpOmRbeC5uYW1lXT16KHgpfWZ1bmN0aW9uIHooeCl7aWYoaylyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCgpO3ZhciBoPSQuRGVmZXJyZWQoKTtyZXR1cm4gbnVsbCE9eC5kb2M/bS5kZWxheSgwLHguZG9jKTpmZXRjaCh4LnVybCx4Lm9wdHMpLnRoZW4oZnVuY3Rpb24oYSl7aWYoYS5vaylyZXR1cm4geC5pc1JldnM/YS5qc29uKCk6YS5hcnJheUJ1ZmZlcigpOzQwND09YS5zdGF0dXM/KGIuREJzW3guZGJdLmRvbmVEb2NzKz0xLGYucHVzaCh4LnVybCksZnVuY3Rpb24oKXtoLnJlc29sdmUoKX0uZGVib3VuY2UoNTApKCkpOihlW3gudXJsXT0oZVt4LnVybF18fFtdKS5wdXNoKFthLnN0YXR1cyxEYXRlLm5vdygpXS5qb2luKCIgIikpLGVbeC51cmxdLmxlbmd0aDxpP251bGw9PT1nLmxhc3QoKT8oZy5wb3AoKSxnLnB1c2goeCxudWxsKSk6Zy5wdXNoKHgsbnVsbCk6aj9DKCJGYXRhbCBmYWlsdXJlIHJlYWRpbmcgIit4LnVybC5lc2NhcGVIVE1MKCkrIiwgZHVtcCBhYm9ydGVkLiIpOihiLkRCc1t4LmRiXS5kb25lRG9jcys9MSxmdW5jdGlvbigpe2gucmVzb2x2ZSgpfS5kZWJvdW5jZSg1MCkoKSkpfSkudGhlbihtKS5jYXRjaChmdW5jdGlvbigpe0QoIkZhaWxlZCByZWFkaW5nICIreC5pZCksaC5yZWplY3QoIkZhaWxlZCByZWFkaW5nICIreC5pZCl9KSxoLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBkW3gubmFtZV0seSgpfSksaC5wcm9taXNlKCk7ZnVuY3Rpb24gbShkKXt2YXIgZj0hMDtpZihkIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpYy5ieXRlcys9ZC5ieXRlTGVuZ3RoLHQoeC5uYW1lLG5ldyBVaW50OEFycmF5KGQpKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZCl7dmFyIGc9YShkKTtjLmJ5dGVzKz1nLmJ5dGVMZW5ndGgsdCh4Lm5hbWUsZyl9ZWxzZSBPYmplY3QuaXNBcnJheShkKSYmKGY9ITEsdCh4Lm5hbWUsYSgiW1xuIitkLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeC5vayl9KS5qb2luKCIsXG4iKSsiXG5dIikpKTtEKCJEb25lICIreC5kYisiLyIreC5uYW1lKSxoLnJlc29sdmUoKSxmJiYoYi5EQnNbeC5kYl0uZG9uZURvY3MrPTEpLGRlbGV0ZSBlW3gudXJsXSxsKCl9fWZ1bmN0aW9uIEEoKXtiLm15LmNoZWNrKCIjYnl0ZXMiKSwkLm15LnJhZGlvKCJkYlN0cmVhbVVwZGF0ZSIse30pfWZ1bmN0aW9uIEIoKXtEKCJEb25lIiksYy5kb25lPSEwLHIuY2xvc2UoKSxBKCksY3cubGliLm5vdGUoJzxzcGFuIGNsYXNzPSJmdzQwMCI+WklQIGR1bXAgd2FzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLjwvc3Bhbj4nLCJvayIsNWUzKSxmdW5jdGlvbigpe2IubXkuY29tbWl0KCl9LmRlbGF5KDNlMyl9ZnVuY3Rpb24gQyh4KXtpZihjLmRvbmUpcmV0dXJuIGIubXkuY29tbWl0KCk7az0hMCxjdy5saWIubm90ZSh4LCJlcnJvciIsNmUzKSxyLmFib3J0KCkscS50ZXJtaW5hdGUoKSxjLmVycm9yPXgsYi5teS5jb21taXQoKX1mdW5jdGlvbiBEKHgsYSxjKXtiLl9kZWJ1ZyYmY29uc29sZS5sb2coeCxhLGMpfX0sUHJlcGFyZURvY0xpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj0kLkRlZmVycmVkKCksYz10aGlzLGQ9Yy5kYXRhLGU9ZC5tYXhGZWVkQ2h1bmssZj14LnRvdGFsU2l6ZSYmeC50b3RhbERvY3M/eC50b3RhbFNpemUveC50b3RhbERvY3N8MDowLGc9IShmJiYhKGY+ZS9kLm1pbkZlZWREb2NzKSksaD0oZz9kLm1heEZlZWREb2NzOk1hdGguY2VpbChlL2YpKS5jbGFtcChkLm1pbkZlZWREb2NzLGQubWF4RmVlZERvY3MpLGk9ZC5tYXhSZXN0YXJ0c3x8MyxqPXguc2luY2V8fDAsaz0hISh4LmRyb3AuZmlsdGVyfHxbXSkuZmluZCgieGRkb2MiKSxsPSEhKHguZHJvcC5maWx0ZXJ8fFtdKS5maW5kKCJ4ZGVsIiksbT0hISh4LmRyb3AuZmlsdGVyfHxbXSkuZmluZCgieHJldnMiKSxuPVsvXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdCh4LnVybCk/eC51cmw6Ii8iK3EoeC51cmwpLCIvX2NoYW5nZXM/c2luY2U9ezF9IixtPyIiOiImc3R5bGU9YWxsX2RvY3MiLGc/IiI6IiZpbmNsdWRlX2RvY3M9dHJ1ZSZhdHRhY2htZW50cz10cnVlIiwiJmxpbWl0PSIraF0uam9pbigiIiksbz1zLmRlYm91bmNlKDFlMykscD0wO3JldHVybiByKCksYi5wcm9taXNlKCk7ZnVuY3Rpb24gcSh4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfWZ1bmN0aW9uIHIoKXtjLlJlcShuLmFzc2lnbihqKSkudGhlbihmdW5jdGlvbihkKXtqPWQubGFzdF9zZXE7dmFyIGU9KGQucmVzdWx0c3x8W10pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hdChhLnNlcSx4Lm1heFNlcSl9KSxmPSExO2lmKCFlLmxlbmd0aClyZXR1cm4gYy5EQnNSZWFkQ3RyLT0xLGIucmVzb2x2ZSh7ZG9jczpwLHNlcTpqfSk7Zm9yKHZhciBoPWUuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiEobCYmeC5kZWxldGVkfHxrJiYvXl9kZXNpZ25cLy8udGVzdCh4LmlkKSl9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOnguaWQscmV2OnguY2hhbmdlc1swXS5yZXYsZGVsOiEheC5kZWxldGVkLGRvYzpnfHwheC5kb2M/bnVsbDpKU09OLnN0cmluZ2lmeSh4LmRvYykscmV2czptP1tdOnguY2hhbmdlcy5zbGljZSgxKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fSksaT0wO2k8aC5sZW5ndGgmJiFmO2krKylmPWEoeC51cmwsaFtpXSkscCs9MTtmP2IucmVqZWN0KHtlcnJvcjoiYWJvcnRlZCIsZG9jczpwLHNlcTpqfSk6cigpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y29uc29sZS5sb2coeCxhLGIpLG8oKX0pfWZ1bmN0aW9uIHMoKXtpZigoaS09MSk8MSlyZXR1cm4gYi5yZWplY3QoIkF0dGVtcHRzIHRvIHJlYWQgZG9jcyBsaXN0IGZhaWxlZCIpO3IoKX1mdW5jdGlvbiB0KHgsYSl7aWYoLTE9PWEpcmV0dXJuITE7dmFyIGI9eCsiLSI7cmV0dXJuK2Iuc3Vic3RyKDAsYi5pbmRleE9mKCItIikpPmF9fSxEQlJvdzp7aWQ6ImN3LlBob3Rvbi5EdW1wWmlwLkRCUm93Iixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3guaHRtbChhLkhUTUwpfSxkYXRhOnt1cmw6IiIsc2luY2U6MCxkcm9wOntmaWx0ZXI6W10sZm46IiIsaWRzOltdLHF1ZXJ5Ont9fSxtb2RlOiJqc29uIix0b3RhbFNpemU6MCx0b3RhbERvY3M6MCxkb25lRG9jczowLG1heFNlcTowfSx1aTp7IiNudW0tdG90YWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYoIXgudG90YWxEb2NzKXJldHVybiIiO3ZhciBiPXguZHJvcC5pZHMubGVuZ3RofHx4LnRvdGFsRG9jcztyZXR1cm4gTWF0aC5mbG9vcih4LmRvbmVEb2NzL2IqMTAwKS5jbGFtcCgwLDEwMCkrIiUifSxsaXN0ZW46e2RiU3RyZWFtVXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybiBudWxsfX19LCIjbnVtLWJnIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9eC5kcm9wLmlkcy5sZW5ndGh8fHgudG90YWxEb2NzO2M/Yi5jc3Moe2hlaWdodDooeC5kb25lRG9jcy9jKjIuNSkuY2xhbXAoMCwyLjUpKyJlbSJ9KTpiLmNzcyh7aGVpZ2h0OiIwcHgifSl9LGxpc3Rlbjp7ZGJTdHJlYW1VcGRhdGU6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNPYmplY3QoYSkpcmV0dXJuIG51bGx9fX0sIiNkYi1uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoL15odHRwW3NdPzpcL1wvLy50ZXN0KHgudXJsKXx8Ii8iPT14LnVybFswXT94LnVybC5zcGxpdCgiLyIpLmxhc3QoKTp4LnVybCkudHJ1bmNhdGUoMzUsIm1pZGRsZSIsIi4uLiIpLmVzY2FwZUhUTUwoKX19LCIjZGItdG90YWxzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXguZHJvcC5pZHMubGVuZ3RoO2J8fHgudG90YWxEb2NzO3JldHVybiBiPyJ7MX0gZG9jezJ9IG9mIHszfSIuYXNzaWduKGIsYj4xPyJzIjoiIix4LnRvdGFsRG9jcyk6InsxfSBkb2NzLCB7Mn0gcmF3Ii5hc3NpZ24oeC50b3RhbERvY3MseC50b3RhbFNpemUuYnl0ZXMoMikucmVwbGFjZSgvQiQvLCJiIikpfX19LEhUTUw6JzxkaXYgY2xhc3M9Im51bS1jb250IGRpYiB2YXQiPjxkaXYgaWQ9Im51bS1iZyIgY2xhc3M9IncxMDBwIj48L2Rpdj48ZGl2IGlkPSJudW0tdG90YWwiIGNsYXNzPSJ3MTAwcCB0YWMgZnMxMTAgZnczMDAgbzcwIGxoMjAwIHB0MSI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZGItaW5mbyBkaWIgdmF0Ij48ZGl2IGlkPSJkYi1uYW1lIiBjbGFzcz0idzEwMHAgZnMxMjAgZnc0MDAgbncgb2ggZWxsIj48L2Rpdj48ZGl2IGlkPSJkYi10b3RhbHMiIGNsYXNzPSJ3MTAwcCBmczkwIG84MCBudyBvaCBlbGwiPjwvZGl2PjwvZGl2Picsc3R5bGU6eyIgLm51bS1jb250Ijp7IiI6IndpZHRoOjNlbTsgaGVpZ2h0OjIuNWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItcmFkaXVzOiAycHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQtY29sb3I6I2YyZjVmODsiLCIgI251bS1iZyI6InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MDsgbGVmdDogMDsgYmFja2dyb3VuZC1jb2xvcjojYzNlZTk0OyB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yczsifSwiIC5kYi1pbmZvIjp7IiI6IndpZHRoOiBjYWxjKDEwMCUgLSAzZW0pOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nLWxlZnQ6IDFlbTsifX19fSxVbmR1bXA6e2lkOiJjdy5QaG90b24uVW5kdW1wIixwYXJhbXM6e3Jlc3R5bGU6MjAwfSxEYXRhVXJsczpbXSxyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxkYXRhOntkYnM6W10sZG9jc1RvU2F2ZTpbXSxvcHRzOltdLGJ5dGVzOjAsemJ5dGVzOjAsZG9uZTohMSxzdGF0dXM6IiIsbWF4QnVmZmVyOjJlOCxtYXhXcml0ZVN0cmVhbXM6NixtYXhSZXN0YXJ0czozfSxVbnppcERCbWFwOm51bGwsVW56aXBTdHJlYW06e30saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3guaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2Iuc3RhdHVzPSJzdHJlYW1pbmciLGEuUHJlcGFyZURCcygpLnRoZW4oZnVuY3Rpb24oKXthLlNhdmVyPWEuU2F2ZURvY3MoKX0pfS5kZWJvdW5jZSg1MCkpLGEuU3RhbXA9RGF0ZS5ub3coKX0sdWk6eyIjZGItcm93cyI6e2JpbmQ6ImRicyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLm5pY2VTY3JvbGwoeCl9LGxpc3Q6JzxkaXYgY2xhc3M9Im10NSBwdDUgcGI1IGJiZCI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5EQlJvd30saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHgudXJsfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC50b3RhbERvY3MrIiIseC50b3RhbFNpemUrIiJdKX19LCIjYnl0ZXMiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguYnl0ZXM/JzxzcGFuIGNsYXNzPSJmaS11cGxvYWQtY2xvdWQgbzUwIHhncmF5IGZzODAiPjwvc3Bhbj4gJyt4LmJ5dGVzLmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYiIpOiIifSwiI3N0cmVhbS1zcGVlZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0oRGF0ZS5ub3coKS10aGlzLlN0YW1wKzEpLzFlMyxjPSg4KnguYnl0ZXMvYnwwKS5jbGFtcCgwLDFlOSk7cmV0dXJuIGM/Yy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImJpdC9zIik6IiJ9LHdhdGNoOlsiI2J5dGVzIl19LCIjYnRuLXN0b3AiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHRoaXMuQWJvcnQoKSx0aGlzLm15LmNvbW1pdCgpKX19fSxTYXZlcjpudWxsLEFib3J0OmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YTt0cnl7eC5TYXZlci5hYm9ydCgpfWNhdGNoKHgpe310cnl7eC5VbnppcFN0cmVhbS5hYm9ydCgpfWNhdGNoKHgpe30kLm15LnJhZGlvKCJkYmxpc3QiLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkpLGEuc3RhdHVzPSJhYm9ydGVkIn0sSFRNTDonPGRpdiBjbGFzcz0iZnMxMzAgZnc0MDAgY20iPjxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiBSZXN0b3JlIGZyb20gWklQIGR1bXA8L2Rpdj48ZGl2IGlkPSJkYi1yb3dzIiBjbGFzcz0ibXQxMCBidGQgbWIxMCIgc3R5bGU9Im1heC1oZWlnaHQ6NDUwcHg7Ij48L2Rpdj48ZGl2PjxkaXYgaWQ9InN0cmVhbS1zcGVlZCIgY2xhc3M9IncyNXAgbzUwIGZyIHRhciBtdDUiPjwvZGl2PjxkaXYgaWQ9ImJ5dGVzIiBjbGFzcz0iZnIgdzI1cCBtdDUgbzcwIj48L2Rpdj48YnV0dG9uIGlkPSJidG4tc3RvcCIgY2xhc3M9Im1yNSI+QWJvcnQgcmVzdG9yZTwvYnV0dG9uPjwvZGl2Picsc3R5bGU6eyIgIjpmdW5jdGlvbih4KXtyZXR1cm4ic3RyZWFtaW5nIj09dGhpcy5kYXRhLnN0YXR1cyYmeC50cmlnZ2VyKCJsYXlvdXQiKSwiZm9udC1zaXplOjE1cHg7IGxpbmUtaGVpZ2h0OjEuNGVtOyJ9fSxQcmVwYXJlREJzOmZ1bmN0aW9uKCl7dmFyIHgsYT10aGlzLGI9YS5kYXRhLGM9KGEuVW56aXBEQm1hcCxhLlBobygiQWxsIikpLGQ9YS5QaG8oIkNvdWNoIiksZT1PYmplY3QuaXNPYmplY3QsZj1bXTtpZihiLm9wdHMuZmluZCgiY3JlYXRlIikpe3ZhciBnPWIuZGJzLnJlZHVjZShmdW5jdGlvbih4LGEpe2lmKGNbYS5uYW1lXSlyZXR1cm4geDtmLnB1c2goYS5uYW1lKTt2YXIgZz0kLmV4dGVuZCh7bmFtZTphLm5hbWUsc2VjdXJpdHk6Yi5vcHRzLmZpbmQoImFjbCIpJiZlKGEuc2VjdXJpdHkpP2Euc2VjdXJpdHk6bnVsbCxwYXJ0aXRpb25lZDplKGEucHJvcHMpJiYhIWEucHJvcHMucGFydGl0aW9uZWR9LGQudmVyPiIwMDIuIiYmZShhLmNsdXN0ZXIpP3txOithLmNsdXN0ZXIucT4wPythLmNsdXN0ZXIucTorZC5xfHwyLG46KCthLmNsdXN0ZXIubnx8MSkuY2xhbXAoMSxkLm58fDEpfTp7fSk7cmV0dXJuIHgucHVzaChnKSx4fSxbXSk7eD1nLmxlbmd0aD9hLlBobygiQ3JlYXRlREJzIikoZywhMSk6JC5EZWZlcnJlZCgpLnJlc29sdmUoW10pfWVsc2UgeD0kLkRlZmVycmVkKCkucmVzb2x2ZSgpO3JldHVybiB4LnRoZW4oZnVuY3Rpb24oKXtpZighYi5vcHRzLmZpbmQoImFjbCIpKXJldHVybiEwO3ZhciB4PWN3LmxpYi5hMm8oZiksYz1iLmRicy5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4geFtiLm5hbWVdfHxudWxsPT1iLnNlY3VyaXR5P2E6KGEucHVzaCh7Y3JlYXRlOiExLG5hbWU6Yi5uYW1lLHNlY3VyaXR5OmUoYi5zZWN1cml0eSk/Yi5zZWN1cml0eTpudWxsfSksYSl9LFtdKTtyZXR1cm4hYy5sZW5ndGh8fGEuUGhvKCJDcmVhdGVEQnMiKShjLCExKX0pLmZhaWwoZnVuY3Rpb24oKXthLkFib3J0KCksYS5teS5jb21taXQoKX0pfSxTYXZlRG9jczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj17fSxjPTAsZD1hLmRvY3NUb1NhdmUsZT1hLm1heEJ1ZmZlcixmPWEubWF4V3JpdGVTdHJlYW1zLGc9YS5tYXhSZXN0YXJ0c3x8MyxoPSExLGk9ITEsaj14LlVuemlwREJtYXAsaz0xLGw9MCxtPTAsbj0wLG89NTAwLHA9MWUzL28qNSxxPU9iamVjdC5zaXplLHI9QS5kZWJvdW5jZShvKSxzPUUudGhyb3R0bGUoMjUwKSx0PSEhYS5vcHRzLmZpbmQoInhkZWwiKSx1PSEhYS5vcHRzLmZpbmQoInhyZXZzIik7ZC5mb3JFYWNoKGZ1bmN0aW9uKHgpe251bGwhPT14JiYoays9MSxjKz14LnNpemUpfSk7dmFyIHY9eC5VbnppcFN0cmVhbTtyZXR1cm4gdi5ub3RpZnkodyksdi5pc0RvbmUoKXx8di5jb250aW51ZSgpLHkoKSxyKCksRi5kZWxheSgxZTMpLHthYm9ydDpmdW5jdGlvbigpe2QuZm9yRWFjaChmdW5jdGlvbih4KXtudWxsIT14JiZ4LnJlcSYmKHgucmVxLmRhdGE9dm9pZCAwKX0pLGQubGVuZ3RoPTAsaT0hMH19O2Z1bmN0aW9uIHcoeCxhKXsiZG9jIj09eD8oays9MSwhKChjKz1hKT5lfHxkLmxlbmd0aD4xNTApfHx2LmlzUGF1c2VkKCl8fHYuaXNBbGxSZWFkKCl8fHYucGF1c2UoKSx5LmRlbGF5KDIpKToiZW5kZWQiPT14JiZ5LmRlbGF5KDUwKX1mdW5jdGlvbiB5KCl7aWYoIWkmJiFoKWZvcih2YXIgeCxhPXt9O3EoYik8ZiYmZC5sZW5ndGgmJm51bGwhPT1hOyludWxsPT0oYT1kLnNoaWZ0KCkpPzA9PXEoYik/ay09MTpkLnB1c2gobnVsbCk6IWpbYS5zcmNkYl18fHQmJi9cL19kZWxldGVkXC8vLnRlc3QoYS5uYW1lKXx8dSYmL1wvX2NvbmZsaWN0c1wvLy50ZXN0KGEubmFtZSk/KGstPTEsYy09YS5zaXplLGEucmVxLmRhdGE9dm9pZCAwLG0rPTEpOih4PXooYSkpJiYoYlthLm5hbWVdPXgpfWZ1bmN0aW9uIHooZSl7aWYoaSlyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCgpO3ZhciBmLGg9altlLnNyY2RiXSxtPWEuZGJzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3JjPT1lLnNyY2RifSk7aWYoIW0pcmV0dXJuIHkuZGVib3VuY2UoMTApKCksdm9pZCAwO3tyZXR1cm4gZS5yZXEudXJsPSIvezF9L19idWxrX2RvY3MiLmFzc2lnbihIKGgpKSxlLmVycm9ycy5sZW5ndGg/KGY9JC5EZWZlcnJlZCgpLGZ1bmN0aW9uKCl7eC5SZXEoZS5yZXEpLnRoZW4oZnVuY3Rpb24oeCl7Zi5yZXNvbHZlKHgpfSxmdW5jdGlvbih4LGEsYil7Zi5yZWplY3QoeCxhLGIpfSl9LmRlYm91bmNlKDFlMypbMSwzLDEwLDMwXVtlLmVycm9ycy5sZW5ndGguY2xhbXAoMCwzKV0pKCkpOmY9eC5SZXEoZS5yZXEpLGYudGhlbihmdW5jdGlvbih4KXt4Lmxlbmd0aCYmeFswXS5lcnJvcj9vKHhbMF0uZXJyb3IrIiAiK3hbMF0ucmVhc29uKTooay09MSxtLmRvbmVEb2NzKz0xLGMtPWUuc2l6ZSxlLnNhdmVkPSEwLGUucmVxLmRhdGE9dm9pZCAwLGwrPTEpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7byh4KyI6ICIrYSsiICIrYil9KS5hbHdheXMoZnVuY3Rpb24oKXtuPTAsZGVsZXRlIGJbZS5uYW1lXSxhLmJ5dGVzKz1lLnNpemUscygpLEQoKSx5LmRlbGF5KDEpfSk7ZnVuY3Rpb24gbyhhKXtpZihlLmVycm9ycy5wdXNoKGEpLGUuZXJyb3JzLmxlbmd0aDxnKW51bGw9PT1kLmxhc3QoKT8oZC5wb3AoKSxkLnB1c2goZSksZC5wdXNoKG51bGwpKTpkLnB1c2goZSk7ZWxzZXt2YXIgYj1tLm5hbWUrIi8iK2RlY29kZVVSSUNvbXBvbmVudChlLm5hbWUuZnJvbShlLnNyY2RiLmxlbmd0aCsxKS5yZXBsYWNlKC9cLmpzb24kLywiIikpO0MoIkZhaWxlZCBzYXZpbmcgZG9jIHsxfS4gIi5hc3NpZ24oYikpLHgubXkuZmluZCgiI2J0bi1zdG9wIikudHJpZ2dlcigiY2xpY2subXkiKX19fX1mdW5jdGlvbiBBKCl7aXx8aHx8KGs+MD8oeSgpLHIoKSxkLmxlbmd0aHx8MSE9a3x8cShiKXx8RygpfHwobis9MSk+PXAmJihkLnB1c2gobnVsbCksY29uc29sZS5sb2coIlB1bXAgc3RhbGxlZCwgZW5mb3JjZSBwdW1wIGFib3J0IikpKTpCKCkpfWZ1bmN0aW9uIEIoKXtoPSEwLHMoKSx2LmlzQWxsUmVhZCgpPyQubXkucmFkaW8oImRibGlzdCIsYS5kYnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWV9KSk6KHguU2F2ZXIuYWJvcnQ9ZnVuY3Rpb24oKXt9LHguQWJvcnQoKSksYS5zdGF0dXM9ImRvbmUiLHgubXkuY29tbWl0KCksY29uc29sZS5sb2coIkRvbmUgcmVzdG9yZSwgezF9IGRvY3Mgc2F2ZWQuIi5hc3NpZ24obCkpfWZ1bmN0aW9uIEMoeCl7Y3cubGliLm5vdGUoInsxfVJlc3RvcmUgYWJvcnRlZCwgezJ9IG9mIHszfSBkb2NzIHNhdmVkLiIuYXNzaWduKHh8fCIiLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5kb25lRG9jc30pLnN1bSgpLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50b3RhbERvY3N9KS5zdW0oKSksImVycm9yIiw4ZTMpfWZ1bmN0aW9uIEQoKXshdi5pc0RvbmUoKSYmdi5pc1BhdXNlZCgpJiZjPGUvMiYmZC5sZW5ndGg8NTEyJiZ2LmNvbnRpbnVlKCkscigpfWZ1bmN0aW9uIEUoKXt4Lm15LmNoZWNrKCIjYnl0ZXMiKSwkLm15LnJhZGlvKCJ1bmR1bXBXcml0ZVVwZGF0ZSIse30pfWZ1bmN0aW9uIEYoKXtpfHxofHwoJC5teS5yYWRpbygiZGJsaXN0IixPYmplY3QudmFsdWVzKGopKSxGLmRlbGF5KDVlMykpfWZ1bmN0aW9uIEcoKXt2YXIgeD12LmdldFN0YXRzKCksYT14LmlzWmlwUmVhZCxiPXguZmlsZXM7eC5kcm9wO3JldHVybiFhfHxiPmwrbX1mdW5jdGlvbiBIKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9fSxEQlJvdzp7aWQ6ImN3LlBob3Rvbi5VbmR1bXAuREJSb3ciLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7eC5odG1sKGEuSFRNTCl9LGRhdGE6e25hbWU6IiIsdGFyZ2V0OiIiLHRvdGFsU2l6ZTowLHRvdGFsRG9jczowLGRvbmVEb2NzOjB9LHVpOnsiI251bS10b3RhbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj1PYmplY3QuaXNBcnJheSh4LmZpbHRlcik/eC5maWx0ZXIubGVuZ3RoOngudG90YWxEb2NzO3JldHVybiBiP01hdGguZmxvb3IoeC5kb25lRG9jcy9iKjEwMCkuY2xhbXAoMCwxMDApKyIlIjoiIn0sbGlzdGVuOnt1bmR1bXBXcml0ZVVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSlyZXR1cm4gbnVsbH19fSwiI251bS1iZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPU9iamVjdC5pc0FycmF5KHguZmlsdGVyKT94LmZpbHRlci5sZW5ndGg6eC50b3RhbERvY3M7Yz9iLmNzcyh7aGVpZ2h0Oih4LmRvbmVEb2NzL2MqMi41KS5jbGFtcCgwLDIuNSkrImVtIn0pOmIuY3NzKHtoZWlnaHQ6IjBweCJ9KX0sbGlzdGVuOnt1bmR1bXBXcml0ZVVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSlyZXR1cm4gbnVsbH19fSwiI2RiLW5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubmFtZS50cnVuY2F0ZSg0MCwibWlkZGxlIiwiLi4uIikuZXNjYXBlSFRNTCgpfX0sIiNkYi10b3RhbHMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyOltdLGM9Yi5sZW5ndGg/Yi5sZW5ndGg6eC50b3RhbERvY3M7cmV0dXJuIGIubGVuZ3RoPyJ7MX0gZG9jezJ9Ii5hc3NpZ24oYi5sZW5ndGgsYi5sZW5ndGg+MT8icyI6IiIpOiJ7MX0gZG9jezJ9LCB7M30gcmF3Ii5hc3NpZ24oYyxjPjE/InMiOiIiLHgudG90YWxTaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKX19fSxIVE1MOic8ZGl2IGNsYXNzPSJkYi1pbmZvIGRpYiB2YXQiPjxkaXYgaWQ9ImRiLW5hbWUiIGNsYXNzPSJ3MTAwcCBmczEyMCBmdzQwMCBudyBvaCBlbGwiPjwvZGl2PjxkaXYgaWQ9ImRiLXRvdGFscyIgY2xhc3M9IncxMDBwIGZzOTAgbzgwIG53IG9oIGVsbCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibnVtLWNvbnQgZGliIHZhdCI+PGRpdiBpZD0ibnVtLWJnIiBjbGFzcz0idzEwMHAiPjwvZGl2PjxkaXYgaWQ9Im51bS10b3RhbCIgY2xhc3M9IncxMDBwIHRhYyBmczExMCBmdzMwMCBvNzAgbGgyMDAgcHQxIj48L2Rpdj48L2Rpdj4nLHN0eWxlOnsiIC5udW0tY29udCI6eyIiOiJ3aWR0aDozZW07IGhlaWdodDoyLjVlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyLXJhZGl1czogMnB4OyBvdmVyZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmMmY1Zjg7IiwiICNudW0tYmciOiJwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjA7IGxlZnQ6IDA7IGJhY2tncm91bmQtY29sb3I6IzkzZWVkZTsgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7In0sIiAuZGItaW5mbyI6eyIiOiJ3aWR0aDogY2FsYygxMDAlIC0gM2VtKTsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZy1sZWZ0OiByaWdodGVtOyJ9fX19LHN0YW1wOjE2NTAwNTg3MzQ4OTAscGFyYW1zOntzdHJpY3Q6ITB9fSwiY3cuU3lzLkpTT04iOntpZDoiY3cuU3lzLkpTT04iLGJ1aWxkOjQwLFZlcnNpb246IjIuOSIsZGF0YTp7ZG9jOnt9LG1heERlcHRoOjE1MCxsYWJlbFdpZHRoOjEzMCx0cmVlOnt9LGNtZDoiIix0aXRsZToiVW50aXRsZWQgSlNPTiIscmF3OiIiLHZpZXdzdGF0ZTp7fSxzZWFyY2g6IiIsZm91bmQ6e319LFJUOmZ1bmN0aW9uKHgpe3JldHVybiB4P3RoaXNbeF06dGhpc30sTVJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5teS5yb290KCl9LHBhcmFtczp7cmVzdHlsZToxMDAsZGVsYXk6MCxzdHJpY3Q6ITB9LExpYjp7cmVsaXN0OmZ1bmN0aW9uKHgsYSl7YS5MaXN0PWEuTWFrZUxpc3QoYS5kYXRhKSx4LmZpbmQoIj4uaXZhbHVlPi5pbGlzdCIpLnRyaWdnZXIoInJlY2FsYyIpLHguZmluZCgiPi5pbmF2Pi5pZGVzYyIpLnRyaWdnZXIoImNoZWNrIil9LGtpY2s6ZnVuY3Rpb24oeCxhKXtmb3IodmFyIGIgaW4geClkZWxldGUgeFtiXTtPYmplY3QubWVyZ2UoeCxhKSxPYmplY3QuaXNBcnJheSh4KSYmKHgubGVuZ3RoPWEubGVuZ3RoKX0sa2V5QmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLmxhYmVsV2lkdGgvM3wwO3JldHVybiA0Jnguc3RhdGUmJnRoaXMuUlQoIlNlYXJjaFJlIik/Yz14LmtleS5yZXBsYWNlKHRoaXMuUlQoIlNlYXJjaFJlIiksIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJqdmFsLWZvdW5kLWtleSI+JykucmVwbGFjZSgi77+wIiwiPC9zcGFuPiIpOih4LmtleS5sZW5ndGg+ZCYmYi5hdHRyKCJ0aXRsZSIseC5rZXkuZXNjYXBlSFRNTCgpKSxjPS9eKHxccyspJC8udGVzdCh4LmtleSk/JyInK3gua2V5LmVzY2FwZUhUTUwoKSsnIic6eC5rZXkudHJ1bmNhdGUoZCwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCkpLGN9LGNvbW1vbkluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTt4LmFkZENsYXNzKCJlZC1ub2RlLSIrYS5QYXRoU2lnKGIucGF0aCxiLmtleSkpLHguaHRtbChhLkhUTUwpfX0sTWVtU3RhdGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5kYXRhO2Eudmlld3N0YXRlfHwoYS52aWV3c3RhdGU9e30pO3ZhciBiPXRoaXMuUGF0aFNpZyh4LnBhdGgseC5rZXkpO2Eudmlld3N0YXRlW2JdIT14LnN0YXRlJiYoYS52aWV3c3RhdGVbYl09eC5zdGF0ZSxhLl9pZCYmdGhpcy5NZW1TdGF0ZVNhdmUoKSl9LE1lbVN0YXRlU2F2ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YTtpZih4Ll9pZCYmT2JqZWN0LnNpemUoeC52aWV3c3RhdGUpKXt2YXIgYT1PYmplY3Qua2V5cyh4LnZpZXdzdGF0ZSkucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIDI9PXgudmlld3N0YXRlW2JdJiZhLnB1c2goYiksYX0sW10pO3RoaXMuTHMoInZpZXdzdGF0ZS4iK2N3LmxpYi5zZGJtKCh4LmRibmFtZXx8IiIpKyIvIit4Ll9pZCkse3N0YW1wOkRhdGUubm93KCksc3RhdGU6YX0pfX0sTWVtU3RhdGVSZXN0b3JlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhO2lmKHguX2lkKXt2YXIgYT10aGlzLkxzKCJ2aWV3c3RhdGUuIitjdy5saWIuc2RibSgoeC5kYm5hbWV8fCIiKSsiLyIreC5faWQpKTtpZighT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybjt4LnZpZXdzdGF0ZT1hLnN0YXRlLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPTIseH0se30pfX0sUGF0aFNpZzpmdW5jdGlvbih4LGEpe3JldHVybiBjdy5saWIuc2RibShbeCxhXS5jb21wYWN0KCkuZmxhdCgpLmpvaW4oIuKdgCIpKX0sUmVqb2luOmZ1bmN0aW9uKHgsYSl7Zm9yKHZhciBiLGM9dGhpcy5JbmRleCxkPTA7ZDxhLmxlbmd0aDtkKyspYj1hW2RdLC9eKG9ifGFyKS8udGVzdChiLnR5cGUpfHwoeC52YWx1ZVtiLmtleV09Yi52YWx1ZSksYy5kaXJ0eT0hMH0sTm9kZVVwZGF0ZWQ6ZnVuY3Rpb24oeCxhLGIpe30sRWRpdG9ySW52b2tlZDpmdW5jdGlvbih4LGEpe30sSGVscDpmdW5jdGlvbih4KXtyZXR1cm57dGlwOiIiLHVybDoiIn19LFNlYXJjaFJlOiExLGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9YS5kYXRhLGQ9KERhdGUubm93KCksT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKHgpe3JldHVybi9eXCRbYS16XS8udGVzdCh4KT94LmZyb20oMSk6IiJ9KS5jb21wYWN0KCEwKSksZT1PYmplY3QuaXNBcnJheSxmPU9iamVjdC5pc09iamVjdDtiLkxzPWIuTHMoIiIpLE9iamVjdC5pc0Z1bmN0aW9uKGIuRGIpJiYoYi5EYj1iLkRiKHgpKSx4Lmh0bWwoYi5IVE1MLk1haW4pLGIuTWVtU3RhdGVTYXZlPWIuTWVtU3RhdGVTYXZlLmRlYm91bmNlKDcwMCk7dmFyIGc9IlJUIFJvb3QgSW5saW5lQ00gTWFrZUxpc3QgTm9kZVVwZGF0ZWQgSGVscCBQYXRoU2lnIi5zcGxpdCgiICIpO2lmKGQuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT1iWyIkIit4XTthLmxhYmVsV2lkdGg9Yy5sYWJlbFdpZHRoLGcuZm9yRWFjaChmdW5jdGlvbih4KXthW3hdPWJbeF19KSwibXVsdGkiPT14P2EuSFRNTD1iLkhUTUwuSXRlbUNvbXBsZXg6KGEuSFRNTHx8KGEuSFRNTD1iLkhUTUwuSXRlbVNpbXBsZSksYS5pbml0fHwoYS5pbml0PWIuTGliLmNvbW1vbkluaXQpLGEudWlbIi5pa2V5Il0uYmluZHx8KGEudWlbIi5pa2V5Il0uYmluZD1iLkxpYi5rZXlCaW5kKSksYS5wYXJhbXN8fChhLnBhcmFtcz17fSksYS5wYXJhbXMuc3RyaWN0PSEwfSksJC5leHRlbmQoYi5Eb2Mse3N0YXRlOjIsbGV2ZWw6MCxwYXRoOltdLHR5cGU6Im9iamVjdCIsa2V5OiJSb290Iix2YWx1ZTphLmRhdGEuZG9jfSksYy5faWQ9Yy5faWR8fGMuZG9jLl9pZHx8IiIsbnVsbD09PWMuZG9jLl9yZXYmJmRlbGV0ZSBjLmRvYy5fcmV2LFsiYWRkIiwidGFrZW91dCJdLmZvckVhY2goZnVuY3Rpb24oYSl7eC5vbigiY2xpY2subXkiLCIuYnRuLSIrYSxiLkV2ZW50W2FdLmZpbGwodm9pZCAwLHZvaWQgMCxiLGIuTVJvb3QoKSkpfSkseC5vbigiY2xpY2subXkiLCIuaWRlc2MiLGZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGE9JCh0aGlzKS5teSgpLnJvb3QsYj1hLm15KCJkYXRhIikubWFuaWZlc3Q7cmV0dXJuL15cJChtdWx0aXxmaWxlcykvLnRlc3QoYnx8IiRtdWx0aSIpJiZhLmZpbmQoIj4uaWFjdD4uYnRuLWpzb24iKS50cmlnZ2VyKCJjbGljayIpLCExfSkseC5vbigiY2xpY2subXkiLCIuaWtleSIsZnVuY3Rpb24oeCl7dmFyIGE9JCh4LmN1cnJlbnRUYXJnZXQpLGI9YS5teSgpLnJvb3QsYz1hLm15KCkuZGF0YTtlKGMudmFsdWUpfHxmKGMudmFsdWUpPzE2JmMuc3RhdGUmJmIudHJpZ2dlcigiZWRpdG9yY2FuY2VsLm15Iik6Yi50cmlnZ2VyKCJlZGl0b3JjYW5jZWwubXkiKX0pLHgub24oImNsaWNrLm15IiwiI2RvYz4uaWFjdD4uYnRuLWRlbCIsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSx4LnRyaWdnZXIoImNhbmNlbCIpfSksYi5vbkluaXQubGVuZ3RoJiZ4LnRoZW4oZnVuY3Rpb24oKXtiLm9uSW5pdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjKXRyeXtjLmNhbGwoYix4LGEpfWNhdGNoKHgpe319KX0pLGIuTWVtU3RhdGVSZXN0b3JlJiZiLk1lbVN0YXRlUmVzdG9yZSgpLCJjcmVhdGUiIT1jLmNtZCYmYi5kYiYmYi5hcHAmJmIuYXBwLmxvY2FsKXJldHVybiBjdy5saWIuc2Nyb2xsWSYmY3cubGliLnNjcm9sbFkoeCksYi5kYi5nZXQoYy5kb2MuX2lkLHthdHRhY2htZW50czohMCxyZXZzX2luZm86ITAsY29uZmxpY3RzOiEwfSkudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZChjLmRvYyxPYmplY3Quc2VsZWN0KHgsWyJfYXR0YWNobWVudHMiXSkpLHguX2NvbmZsaWN0cyYmeC5fY29uZmxpY3RzLmxlbmd0aCYmKGMuZG9jLl9jb25mbGljdHM9eC5fY29uZmxpY3RzLnNsaWNlKDApKSxjLmRvYy5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIm1pc3NpbmciIT14LnN0YXR1c30pfSl9LG9uSW5pdDpbXSxkaWU6ZnVuY3Rpb24oKXt2YXIgeCxhPXRoaXMuQmxvYnM7Zm9yKHggaW4gYSlVUkwucmV2b2tlT2JqZWN0VVJMKGFbeF0pfSxCbG9iczp7fSxEb2M6e30sSW5kZXg6e2RpcnR5OiEwLGlkeDpbXX0sdWk6eyIjYnRuLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO251bGwhPWEmJmMuZGIuc2F2ZSh4LmRvYykudGhlbihmdW5jdGlvbihhKXt2YXIgZD17ZG9jOmF9O2MuTGliLmtpY2soeC5kb2MsYSk7dmFyIGU9Yy5Mcygidmlld3N0YXRlLiIrYS5faWQpO2UmJihlLnN0YW1wPmQuc3RhbXB8fCFPYmplY3Quc2l6ZSh4LnZpZXdzdGF0ZSkpJiYoeC52aWV3c3RhdGU9ZS5zdGF0ZSkseC5faWQ9YS5faWR8fCIiLGEuX3JldiYmKHguX3Jldj1hLl9yZXYpLCQuZXh0ZW5kKGMuRG9jLHtzdGF0ZToyLGxldmVsOjAscGF0aDpbXSx0eXBlOiJvYmplY3QiLGtleToiUm9vdCIsdmFsdWU6eC5kb2N9KSxiLm15KCJmaW5kIiwiI2RvYyAuaWtleXRyZWU6ZXEoMCkiKS50cmlnZ2VyKCJjbGljayIpfSxmdW5jdGlvbih4LGEpe2N3LmxpYi5ub3RlKCJTYXZlIGZhaWxlZCwgc2VlIGNvbnNvbGUiLCJlcnJvciIpLGNvbnNvbGUubG9nKGEseCl9KX19LCIjZG9jdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiB4Ll9pZD14LmRvYy5faWR8fHguX2lkLHguX3Jldj14LmRvYy5fcmV2LHgudGl0bGU9KHguZG9jLl9kYnx8KHRoaXMuZGJ8fHtuYW1lOiJOb0RCIn0pLm5hbWUpKyLigIkv4oCJIisoeC5kb2MuX2lkfHwiIikseC50aXRsZX0sd2F0Y2g6WyIjZG9jIl0sZGVsYXk6MzB9LCIjanNvbi1zZWFyY2giOntkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHguc2VhcmNoO3ZhciBiPXRoaXMsYz14LnNlYXJjaDtyZXR1cm4geC5zZWFyY2g9YS5sZW5ndGg8Mz8iIjphLHguc2VhcmNoPyhiLlNlYXJjaFJlPW5ldyBSZWdFeHAoIigiK1JlZ0V4cC5lc2NhcGUoYS5jb21wYWN0KCkpKyIpIiwiaSIpLGIuU2VhcmNoKCksYi5teS50cmlnZ2VyKCIjZG9jIC5pa2V5OmVxKDApIiwiY2xpY2subXkiKSxhKTooYi5TZWFyY2hSZT0hMSx4LmZvdW5kPXt9LGMmJmIubXkudHJpZ2dlcigiI2RvYyAuaWtleTplcSgwKSIsImNsaWNrLm15IiksYSl9LGNzczp7Im15LXNlYXJjaCI6L14uezMsfSQvfSxldmVudHM6ImlucHV0Lm15IGNoZWNrLm15In0sIiNkb2MiOntkZWxheToyMCxiaW5kOiJ0aGlzLkRvYyIsY2hlY2s6ITF9fSxqMmg6ZnVuY3Rpb24oeCxhLGIsYyxkKXt2YXIgZT1ifHxbXSxmPWN3LmxpYi5hMm8oZSksZz0hIWQsaD1bXTtyZXR1cm4gbChqKHgsYSwwKSksaDtmdW5jdGlvbiBpKHgsYSxiKXt2YXIgZCxmLGgsaSxrPXtrZXk6bnVsbCx2YWw6bnVsbCxlbXB0eTohMSxzaXplOjIsbGVmdDoieyIscmlnaHQ6In0iLHRyaW06MCx0eXBlOiJvYmplY3QiLHJvd3M6W119LGw9MCxtPXt9LG49T2JqZWN0LmtleXMoeCk7aWYoIW4ubGVuZ3RoKXJldHVybiBrLmVtcHR5PSEwLGsuc2l6ZT0yLGsudmFsPSIiLGs7aWYoYj49Y3x8bi5sZW5ndGg+NTApcmV0dXJuIGsudHJpbT1uLmxlbmd0aCxrLnNpemU9MixrO3ZhciBvPSgxLjUqYS9uLmxlbmd0aHwwKS5jbGFtcCgxMCwuOSphfDApLHA9MDttPXt9O2ZvcihkPTA7ZDxlLmxlbmd0aCYmbDxhLW8vMztkKyspbnVsbCE9eFtoPWVbZF1dJiYobVtoXT0hMCxpPWgudHJ1bmNhdGUoKG8vKGc/MToyKSkuY2xhbXAoMTIsMTAwKSwicmlnaHQiLCLigKYiKSwhL1xzLy50ZXN0KGkpJiZpfHwoaT0nIicraSsnIicpLChmPWooeFtoXSxvLGIrMSkpLmtleT1pLGwrPWkubGVuZ3RoKyhnPzA6Zi5zaXplKSxwKz0xLGsucm93cy5wdXNoKGYpKTtmb3IoZD0wO2Q8bi5sZW5ndGgmJmw8YS1vLzM7ZCsrKW1baD1uW2RdXXx8KGk9aC50cnVuY2F0ZSgoby8oZz8xOjIpKS5jbGFtcCgxMiwxMDApLCJyaWdodCIsIuKApiIpLCEvXHMvLnRlc3QoaSkmJml8fChpPSciJytpKyciJyksKGY9aih4W2hdLG8sYisxKSkua2V5PWksbCs9aS5sZW5ndGgrKGc/MDpmLnNpemUpLHArPTEsay5yb3dzLnB1c2goZikpO3JldHVybiBrLnRyaW09bi5sZW5ndGgtcCxrLnNpemU9bCxrfWZ1bmN0aW9uIGooeCxhLGIpe3ZhciBkLGUsZj17a2V5Om51bGwsdmFsOm51bGwsZW1wdHk6ITEsc2l6ZTowLGxlZnQ6IiIscmlnaHQ6IiIsdHJpbTowLHR5cGU6IiIscm93czpbXX0sZz0wLGg9MCxrPTAsbD10eXBlb2YgeDtpZihudWxsPT09eHx8Im9iamVjdCIhPWwpcmV0dXJuInVuZGVmaW5lZCI9PWw/KGYudHlwZT0idW5kZWZpbmVkIixlPXgrIiIpOiJzdHJpbmciIT1sPyhmLnR5cGU9Im51bWJlciIhPWw/InNpbXBsZSI6bCxlPXgrIiIpOihmLnR5cGU9InN0cmluZyIsKGg9eC5sZW5ndGgpPD1hLTE/ZT14OihlPXguc3Vic3RyKDAsYSksZi50cmltPWgtYSksZS5sZW5ndGgmJiItIiE9ZVswXSYmIS9ccy8udGVzdChlKXx8KGYubGVmdD1mLnJpZ2h0PSciJyxnKz0yKSksZys9ZS5sZW5ndGgsZi5zaXplPWcsZi5lbXB0eT0hZS5sZW5ndGgsZi52YWw9ZSxmO2lmKCFPYmplY3QuaXNBcnJheSh4KSlyZXR1cm4gaSh4LGEsYik7aWYoZi50eXBlPSJhcnJheSIsZi5sZWZ0PSJbIixmLnJpZ2h0PSJdIixnKz0yLHgubGVuZ3RoKWlmKGI8YyYmeC5sZW5ndGg8NTAmJmEveC5sZW5ndGg+NSl7az0oMS41KmEveC5sZW5ndGh8MCkuY2xhbXAoMTAsLjkqYXwwKSxoPTA7dmFyIG09MDtmb3IoZD0wO2Q8eC5sZW5ndGgmJmg8YS1rLzM7ZCsrKWcrPShlPWooeFtkXSxrLGIrMSkpLnNpemUsaCs9ZS5zaXplLG0rPTEsZi5yb3dzLnB1c2goZSk7Zi50cmltPXgubGVuZ3RoLW19ZWxzZSBmLnRyaW09eC5sZW5ndGg7ZWxzZSBmLmVtcHR5PSEwLGc9MixmLnZhbD0iIjtyZXR1cm4gZi5zaXplPWcsZn1mdW5jdGlvbiBrKHgsYSl7aC5wdXNoKFt4LGFdKX1mdW5jdGlvbiBsKHgpe2lmKG51bGwhPXgua2V5JiYoaygia2V5Iix4LmtleSksZ3x8aygiIiwiOiAiKSkseC5lbXB0eSlyZXR1cm4gaygiZW1wdHkiLHgubGVmdCsoeC52YWx8fCIiKSt4LnJpZ2h0KSx2b2lkIDA7dmFyIGI9eC50eXBlLGM9ITE7aWYobnVsbCE9eC52YWwpe2lmKHgubGVmdCYmaygiYnJhY2tldCIseC5sZWZ0KSx4LnZhbC5sZW5ndGg8YS81JiZmW3gua2V5XSYmKGM9ITApLCghZ3x8YykmJihnJiZjJiZrKCIiLCI6ICIpLGsoYix4LnZhbC5lc2NhcGVIVE1MKCkpLHgudHJpbSkpe3ZhciBkPSIrIjtrKCJ0cmltIiwib2JqZWN0Ij09Ynx8ImFycmF5Ij09Yj9kK3gudHJpbToi4oCmIil9eC5yaWdodCYmaygiYnJhY2tldCIseC5yaWdodCksY3x8IWd8fHgucmlnaHR8fCJzaW1wbGUiPT1ifHwibnVtYmVyIj09Ynx8aygiYnJhY2tldCIsInN0cmluZyI9PWI/JyIiJzoib2JqZWN0Ij09Yj8ie30iOiJbXSIpfWVsc2UgaWYoeC5yb3dzLmxlbmd0aCl7eC5sZWZ0JiZrKCJicmFja2V0Iix4LmxlZnQpO3ZhciBlLGg9eC5yb3dzLmxlbmd0aDtmb3IoZT0wO2U8aDtlKyspbCh4LnJvd3NbZV0pLChlIT1oLTF8fHgudHJpbSkmJmsoIiIsIiwgIik7aWYoeC50cmltKXtkPSIrIjtrKCJ0cmltIiwib2JqZWN0Ij09Ynx8ImFycmF5Ij09Yj9kK3gudHJpbToi4oCmIil9eC5yaWdodCYmaygiYnJhY2tldCIseC5yaWdodCl9ZWxzZSB4LnRyaW0mJigib2JqZWN0Ij09Yj9rKCJzaG9ydCIsInsiK3gudHJpbSsifSIpOiJhcnJheSI9PWImJmsoInNob3J0IiwiWyIreC50cmltKyJdIikpfX0sSW5saW5lQ006ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPWEuZGF0YSxkPSQudHlwZShjLnZhbHVlKSxlPS9eKG9ifGFyKS8udGVzdChkKSxmPWEuUlQoIk1FZGl0IikucGFyc2VTdHJpbmcsZz1hLlJUKCJMaWIiKS5raWNrLGg9YS5SVCgiJG51bWJlciIpLkYuQ2FsYztmdW5jdGlvbiBpKHgpe3JldHVybiBhLm15LnJvb3QoKS5maW5kKHgpfWZ1bmN0aW9uIGooeCxiKXtpZihjLmhhc2g9Y3cubGliLnNkYm0oW2MuaWQsYy52YWx1ZV0pLGkoIj4uaW5hdj4uaWVkaXRvciIpLm15KCJyZW1vdmUiKSxpKCI+LmluYXYiKS5yZW1vdmVDbGFzcygiaXNlZGl0b3IiKSxlKXtjLnN0YXRlPXg/MjM5JmMuc3RhdGU6MjM3JmMuc3RhdGV8MSwxJmMuc3RhdGU/YS5MaXN0PVtdOmEuTGlzdD1hLk1ha2VMaXN0KGMpO3ZhciBkPWkoIj4uaW5hdj4uaWRlc2MiKSxmPWkoIj4uaXZhbHVlPi5pbGlzdCIpLGc9aSgiPi5pbmF2Pi5pa2V5Iik7ZC5yZW1vdmVDbGFzcygiaGlkZSIpLGJ8fChmLnRyaWdnZXIoInJlY2FsYyIpLGYudHJpZ2dlcigiY2hlY2siKSksZC50cmlnZ2VyKCJjaGVjayIpLGcudHJpZ2dlcigiY2hlY2siKX1lbHNlIGMuc3RhdGU9MSxpKCI+LmluYXY+Lml2YWx1ZSIpLnJlbW92ZUNsYXNzKCJoaWRlIil9eC5vbigiY2xpY2subXkiLGZ1bmN0aW9uKGIpe3ZhciBkPSQoYi50YXJnZXQpO2lmKCFkLmlzKCJhIikmJiFkLmlzKCJpbWciKSYmKCFlfHwxNiZjLnN0YXRlKSl7dmFyIGY9aSgiPi5pbmF2Iik7aWYoIWYuaGFzQ2xhc3MoImlzZWRpdG9yIikpe3ZhciBnPWEuUlQoIkxpYiIpLmlzU3lzdGVtLmNhbGwoYSxjKTtnJiZjdy5saWIubm90ZShPYmplY3QuaXNTdHJpbmcoZyk/ZzoiVGhpcyBwcm9wIGlzIHJlYWQtb25seS4iLCJ3YXJuaW5nIiksYy5zdGF0ZT1lPzE2fGMuc3RhdGU6MixmLmFkZENsYXNzKCJpc2VkaXRvciIpLGkoZT8iPi5pbmF2Pi5pZGVzYyI6Ij4uaW5hdj4uaXZhbHVlIikuYWRkQ2xhc3MoImhpZGUiKSxpKCI+LmluYXY+LmllZGl0b3IiKS5teShhLlJUKCJNRWRpdCIpLHt0ZXh0OmU/IigiK0pTT04uc3RyaW5naWZ5KGMudmFsdWUsbnVsbCwiICAiKSsiKSI6Yy52YWx1ZSsiIixtb2RlOmEuQ018fCJhdXRvIixyZWFkb25seTpnLGV4cGVjdDokLnR5cGUoYy52YWx1ZSl9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGI9YS5SVCgiRWRpdG9ySW52b2tlZCIpOyJmdW5jdGlvbiI9PXR5cGVvZiBiJiZiKHgsYSl9KX19fS5kZWJvdW5jZSgxNSkpLGEubXkucm9vdCgpLm9uKCJlZGl0b3Jjb21taXQubXkiLGZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGM9aSgiPi5pbmF2Iiksaz1hLmRhdGEsbD0iIjtpZihjLmhhc0NsYXNzKCJpc2VkaXRvciIpKXt2YXIgbSxuLG89ay52YWx1ZSxwPU9iamVjdC5jbG9uZShvLCEwKSxxPWkoIj4uaW5hdj4uaWVkaXRvciIpLm15KCJkYXRhIikudGV4dDtlPyhtPWYocSksJC50eXBlKG8pPT0kLnR5cGUobSk/KGcoay52YWx1ZSxtKSxhLm15LnJlZHJhdygpKTooKG49YS5teS5wYXJlbnQoKSkuZGF0YS52YWx1ZVtrLmtleV09bSxrLnZhbHVlPW4uZGF0YS52YWx1ZVtrLmtleV0sYS5SVCgiTGliIikucmVsaXN0KG4ubXkucm9vdCgpLG4pKSk6Im51bWJlciI9PWQ/bnVsbCE9aChxLG51bGwpP2sudmFsdWU9aChxLG51bGwpOmw9IkV4cHJlc3Npb24gbXVzdCByZXR1cm4gYSBudW1iZXIiOmsudmFsdWU9cSxsP2N3LmxpYi5ub3RlKGwsImVycm9yIiwzZTMpOihhLk5vZGVVcGRhdGVkKFtrLnBhdGgsay5rZXldLHAsay52YWx1ZSksZnVuY3Rpb24oKXtqKCEwKSwiZnVuY3Rpb24iPT10eXBlb2YgYj9iKGsudmFsdWUsbyk6ZXx8aSgiPi5pbmF2Pi5pdmFsdWUiKS50cmlnZ2VyKCJjaGVjayIpfS5kZWxheSgxMCkpfX0pLm9uKCJlZGl0b3JjYW5jZWwubXkiLGZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCksaihlLCEwKX0pfSxNdXRhdGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWIuZG9jLGQ9Yi52aWV3c3RhdGUsZT1PYmplY3QuaXNPYmplY3QsZj1PYmplY3QuaXNBcnJheSxnPWEuUGF0aFNpZztKU09OLnN0cmluZ2lmeTtpZighZSh4KSlyZXR1cm57ZXJyb3I6IkludmFsaWQgcGFyYW1zIn07dmFyIGg9JC5leHRlbmQoe3BhdGg6bnVsbCxjdHg6bnVsbCxvcDoidXBkIix2YWw6dm9pZCAwLGV4cGFuZDohMSxibGluazohMSxlZGl0OiExfSx4KTtpZighZihoLnBhdGgpKXJldHVybntlcnJvcjoiSW52YWxpZCBwYXRoIn07dmFyIGk9WyJSb290Il0uY29uY2F0KGgucGF0aC5mbGF0KCkpLGo9aS5wb3AoKSxrPWkuc2xpY2UoMSksbD0vXihub3B8aW5zfGRlbHx1cGQpJC8udGVzdChoLm9wKT9oLm9wOm51bGw7aWYobnVsbD09bClyZXR1cm57ZXJyb3I6IkludmFsaWQgb3AifTtpZigvXihpbnN8dXBkKSQvLnRlc3QobCkmJnZvaWQgMD09PWgudmFsKXJldHVybntlcnJvcjoiTm8gdmFsdWUifTt2YXIgbSxuLG8scCxxPXt9LHI9MDtpZigibm9wIiE9PWwpe2lmKG51bGw9PShtPXooYyxrKSkpcmV0dXJue2Vycm9yOiJOb2RlIGlzIHVucmVhY2hlYWJsZSJ9O2lmKGYobSkpe2lmKGo9K2osaXNOYU4oail8fGo8MHx8aiE9KDB8aikpcmV0dXJue2Vycm9yOiJJbnZhbGlkIG5vZGUgaW5kZXgifTtpZigiaW5zIj09bCYmaj5tLmxlbmd0aCYmKGo9bS5sZW5ndGgpLC9eKGRlbHx1cGQpJC8udGVzdChsKSYmaj5tLmxlbmd0aC0xKXJldHVybntlcnJvcjoiTm9kZSBpbmRleCBpcyBvdXQgb2YgYXJyYXkifX19ZShtKSYmIW0uaGFzT3duUHJvcGVydHkoaikmJmguY3R4JiYobD0iaW5zIiksInVwZCI9PWw/bVtqXT1oLnZhbDoiZGVsIj09bD9mKG0pP20ucmVtb3ZlQXQoaik6ZGVsZXRlIG1bal06ImlucyI9PWwmJihmKG0pP20uaW5zZXJ0KGYoaC52YWwpP1toLnZhbF06aC52YWwsaik6IShvPWguY3R4KXx8IWYobyl8fG8ubGVuZ3RoPDI/bVtqXT1oLnZhbDooKHA9KG49T2JqZWN0LmtleXMobSkpLmluZGV4T2Yob1swXSkpPi0xP3I9cCsxOihwPW4uaW5kZXhPZihvWzFdKSk+LTEmJihyPXAuY2xhbXAoMCwxZTYpKSxuLnNsaWNlKHIpLmZvckVhY2goZnVuY3Rpb24oeCl7cVt4XT1tW3hdLGRlbGV0ZSBtW3hdfSksbVtqXT1oLnZhbCxuLnNsaWNlKHIpLmZvckVhY2goZnVuY3Rpb24oeCl7bVt4XT1xW3hdLGRlbGV0ZSBxW3hdfSkpKTt2YXIgcyx0LHU9ZyhpLGopLHY9W10sdz0iIjtpZigodj1pLm1hcChmdW5jdGlvbih4LGEpe3JldHVybiBnKGkudG8oYSsxKSl9KS5zbGljZSgxKSkuZm9yRWFjaChmdW5jdGlvbih4KXt3PXd8fDI9PWRbeF0/dzp4fSksd3x8KHc9di5sYXN0KCl8fGN3LmxpYi5zZGJtKCJSb290IikpLHM9YS5teS5maW5kKCIuZWQtbm9kZS0iK3cpLm15KCJtYW5pZmVzdCIpLGguZXhwYW5kJiYodi5mb3JFYWNoKGZ1bmN0aW9uKHgpe2RbeF09Mn0pLGRbdV09ZihoLnZhbCl8fGUoaC52YWwpPzI6MSxzLmRhdGEuc3RhdGU9MiksMj09cy5kYXRhLnN0YXRlJiYocy5MaXN0PXMuTWFrZUxpc3Qocy5kYXRhKSksdD1hLm15LmZpbmQoIi5lZC1ub2RlLSIrdSksInVwZCI9PWwmJnQubGVuZ3RoJiYkLnR5cGUodC5teSgiZGF0YSIpLnZhbHVlKT09JC50eXBlKGgudmFsKSl7dmFyIHk9dC5teSgiZGF0YSIpO3kudmFsdWU9aC52YWwsIiRtdWx0aSI9PXkubWFuaWZlc3QmJjImeS5zdGF0ZSYmKHQubXkoIm1hbmlmZXN0IikuTGlzdD10Lm15KCJtYW5pZmVzdCIpLk1ha2VMaXN0KHkpKSx0Lm15KCJyZWRyYXciKX1lbHNlIDI9PXMuZGF0YS5zdGF0ZSYmKHMuTGlzdD1zLk1ha2VMaXN0KHMuZGF0YSkpLHMubXkucmVkcmF3KCk7cmV0dXJuIGguZXhwYW5kJiZhLk1lbVN0YXRlU2F2ZSgpLGguZXhwYW5kJiZoLmJsaW5rJiZmdW5jdGlvbigpe3ZhciB4PWEubXkuZmluZCgiLmVkLW5vZGUtIisoImRlbCIhPWw/dTp2Lmxhc3QoKSkpLGI9T2JqZWN0LmlzU3RyaW5nKGguYmxpbmspP2guYmxpbms6Im9yYW5nZSI7eC5hZGRDbGFzcyhiKSxmdW5jdGlvbigpe3gucmVtb3ZlQ2xhc3MoYil9LmRlbGF5KDUwMCl9LmRlbGF5KDEwMCkse29rOiEwLGV4cGFuZGVkOnZ9O2Z1bmN0aW9uIHooeCxhKXtmb3IodmFyIGI9eCxjPWEubGVuZ3RoLGQ9MDtkPGMmJm51bGwhPWI7ZCsrKWI9YlthW2RdXSxlKGIpfHxmKGIpfHwoYj1udWxsKTtyZXR1cm4gYn19LFNlYXJjaDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9e30sYz1hLlNlYXJjaFJlfHx4O2lmKCFjKXJldHVybiBhLmRhdGEuZm91bmQ9e307YS5JbmRleC5kaXJ0eSYmKGEuSW5kZXguaWR4PWsoYS5Eb2MudmFsdWUpLGEuSW5kZXguZGlydHk9ITEpO2Zvcih2YXIgZCxlPWN3LmxpYi5zZGJtLGY9MCxnPWEuSW5kZXguaWR4LGg9MCxpPTA7aDxnLmxlbmd0aDtoKyspaWYoZj0wLGk9KGQ9Z1toXSkucC5sZW5ndGgsYy50ZXN0KGQuaykmJihmfD00KSxkLnYmJmMudGVzdChkLnYpJiYoZnw9OCksZilmb3IodmFyIGo9MTtqPGk7aisrKWJbZShkLnAuc2xpY2UoMCxqKS5qb2luKCLinYAiKSsi4p2AIitkLnBbal0pXT1qPT1pLTE/ZjozO3JldHVybiBhLmRhdGEuZm91bmQ9YjtmdW5jdGlvbiBrKHgpe3ZhciBhPVsiUm9vdCJdLGI9W107ZnVuY3Rpb24gYyh4KXtPYmplY3Qua2V5cyh4KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPSQudHlwZSh4W2RdKTsib2JqZWN0Ij09ZXx8ImFycmF5Ij09ZT8oYS5wdXNoKGQpLGMoeFtkXSksYi5wdXNoKHtrOmQudG9Mb3dlckNhc2UoKSxwOmEuc2xpY2UoMCksdjohMX0pLGEucG9wKCkpOiJzdHJpbmciPT1lP2IucHVzaCh7azpkLnRvTG93ZXJDYXNlKCkscDphLnNsaWNlKDApLmFkZChkKSx2OnhbZF0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXHJcblx0XHNdKy9nLCIgIil9KTpiLnB1c2goe2s6ZC50b0xvd2VyQ2FzZSgpLHA6YS5zbGljZSgwKS5hZGQoZCksdjp4W2RdKyIifSl9KX1yZXR1cm4gYyh4KSxifX0sRXZlbnQ6e2FkZDpmdW5jdGlvbih4LGEsYixjKXt4LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBkPSQodGhpcyksZT1kLnBhcmVudHMoIi5teS1mb3JtIikuZXEoMCksZj1lLmRhdGEoIm15IikuZGF0YSxnPWUuZGF0YSgibXkiKS5tYW5pZmVzdCxoPSQudHlwZShmLnZhbHVlKSxpPSJhcnJheSI9PWgsaj0oZS5teSgiZGF0YSIpLmtleSxiLkxzKCJDbGlwIil8fHt0eXBlOiIifSksaz17b2JqZWN0Ont9LGFycmF5OltdLHN0cmluZzoiIixib29sZWFuOiEwLG51bWJlcjowfTtkLnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGUuYWRkQ2xhc3MoImhvdmVyIiksJCh0aGlzKS5tb2RhbCh7bWFuaWZlc3Q6Yi5NQWRkLGRhdGE6e2NtZDoicHJlcGVuZCIsdGV4dDpbIk5ldyAiLGk/Im1lbWJlciI6InByb3BlcnR5IiwnIGluJm5ic3A7PHNwYW4gY2xhc3M9ImJvbGRlciBudyI+JyxmLmtleS50cnVuY2F0ZSgyNSwibWlkZGxlIiwi4oCmIikuZXNjYXBlSFRNTCgpLGk/IjpbXSI6Ijp7fSIsIjwvc3Bhbj4iXS5qb2luKCIiKSxwcmVwZW5kOmk/Ikluc2VydCI6IlByZXBlbmQiLGFwcGVuZDppPyIiOiJBcHBlbmQiLGlzYXJyYXk6aSxrZXk6aT8iMCI6IiIsY2xpcDpqLGtleXM6aT97fTpPYmplY3Qua2V5cyhmLnZhbHVlKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthXT0hMCx4fSx7fSksZmlsZTp7fX0sd2lkdGg6MzEwLGFsaWduOiJ0b3A6MTAzJTtyaWdodDotMTE0cHg7Iixyb290OmMsYm91bmQ6MSxub3NlOiJ0b3AiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsY2xvc2U6ITEsZXNjOiEwLGVudGVyOiEwfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYSxjLGQ9eC5jbWQsaj0hMCxsPVtdLG09W107aWYoeC5jbGlwLnR5cGUmJiJjbGlwIj09eC50eXBlJiYoay5jbGlwPXguY2xpcC52YWx1ZSksYz1PYmplY3QuY2xvbmUoImZpbGUiPT14LnR5cGU/eC5maWxlOmtbeC50eXBlXSwhMCkseC5pc2FycmF5fHwoInN0cmluZyI9PXgudHlwZSYmeC5maWxlLmRhdGE/Yz0iZGF0YToiK3guZmlsZS5jb250ZW50X3R5cGUrIjtiYXNlNjQsIit4LmZpbGUuZGF0YTpkZWxldGUgYy5uYW1lKSwxPT1mLmxldmVsJiYvXihfaWR8X3JldikkLy50ZXN0KHgua2V5KSlyZXR1cm4gY3cubGliLm5vdGUoIkNhbuKAmXQgY2hhbmdlIHN5c3RlbSBwcm9wZXJ0aWVzLiIsImVycm9yIiksdm9pZCAwO2lmKC9eKG9iKS8udGVzdChoKSlpZigiYXBwZW5kIj09ZHx8bnVsbCE9Zi52YWx1ZVt4LmtleV0pZi52YWx1ZVt4LmtleV09YyxuKCk7ZWxzZSBpZigicHJlcGVuZCI9PWQpe2ZvcihhIGluIGw9T2JqZWN0LmtleXMoZi52YWx1ZSkpbS5wdXNoKGYudmFsdWVbbFthXV0pLGRlbGV0ZSBmLnZhbHVlW2xbYV1dO2ZvcihhIGluIGYudmFsdWVbeC5rZXldPWMsbClsW2FdIT09eC5rZXkmJihmLnZhbHVlW2xbYV1dPW1bYV0pO209bD1udWxsLG4oKX1lbHNlIGo9ITE7ZWxzZSBpPyh4LmtleT0oK3gua2V5fHwwKS5jbGFtcCgwLGYudmFsdWUubGVuZ3RoKSsiIixmLnZhbHVlLmluc2VydChPYmplY3QuaXNBcnJheShjKT9bY106Yyx4LmtleSksbigpKTpqPSExO2Z1bmN0aW9uIG4oKXtiLk5vZGVVcGRhdGVkKFtmLnBhdGgsZi5rZXkseC5rZXldLHZvaWQgMCxjKX1qJiYoZy5MaXN0PWIuTWFrZUxpc3QoZiksZi5zdGF0ZT0yLGUuZmluZCgiLmlkZXNjOmVxKDApIikudHJpZ2dlcigiY2hlY2siKSxlLmZpbmQoIi5pbGlzdDplcSgwKSIpLnRyaWdnZXIoInJlY2FsYyIpKX0pLmFsd2F5cyhmdW5jdGlvbigpe2QucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIiksZS5yZW1vdmVDbGFzcygiaG92ZXIiKX0pfSx0YWtlb3V0OmZ1bmN0aW9uKHgsYSxiLGMpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKSxlPWQucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxmPWUuZGF0YSgibXkiKS5kYXRhLGc9ZS5kYXRhKCJteSIpLm1hbmlmZXN0LGg9T2JqZWN0LGk9KGguc2l6ZSxoLmNsb25lKSxqPWgubWVyZ2U7ZC5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxlLmFkZENsYXNzKCJob3ZlciIpLGQubW9kYWwoe21hbmlmZXN0OmIuTVRha2VvdXQsZGF0YTp7anNvbjpKU09OLnN0cmluZ2lmeShmLnZhbHVlLG51bGwsIiAgIikscGF0aDpmLnBhdGgsa2V5OmYua2V5LHJlcGxhY2U6aC5zaXplKGYudmFsdWUpPyJSZXBsYWNlIjoiU2F2ZSIsZXh0ZW5kOmguc2l6ZShmLnZhbHVlKT8iRXh0ZW5kIjoiIn0sd2lkdGg6KGUud2lkdGgoKS0xNjApLmNsYW1wKDUwMCwxZTMpLGFsaWduOiJ0b3A6MTAzJTtyaWdodDotNzZweDsiLHJvb3Q6Yy5maW5kKCJzZWN0aW9uI2VkaXRvciIpLmVxKDApLG5vc2U6InRvcCIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixjbG9zZTohMCxlc2M6ITAsZW50ZXI6ITAsYm91bmQ6Mn0pLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGEsYyxkLGs9ITA7ZnVuY3Rpb24gbCgpe2IuTm9kZVVwZGF0ZWQoW2YucGF0aCxmLmtleV0sYyxmLnZhbHVlKX1hPWIubXkucGFyZW50KCkmJmIubXkucGFyZW50KCkuZGF0YS5pc05ldz94Lm5vZGU6MD09Zi5sZXZlbD9oLnJlamVjdCh4Lm5vZGUsL14oX2lkfF9yZXYpJC8pOngubm9kZSwiZXh0ZW5kIj09eC5jbWQ/KGM9aShmLnZhbHVlLCEwKSxqKGYudmFsdWUsYSwhMCkpOiJyZXBsYWNlIj09eC5jbWQ/KGM9aShmLnZhbHVlLCEwKSxkPXt9LDA9PWYubGV2ZWwmJmYudmFsdWUuX3JldiYmKGQ9aC5zZWxlY3QoZi52YWx1ZSwvXihfaWR8X3JldikkLykpLGIuUlQoIkxpYiIpLmtpY2soZi52YWx1ZSxhKSwwPT1mLmxldmVsJiZqKGYudmFsdWUsZCkpOms9ITEsayYmKGYuc3RhdGU9MixsKCksYi5SVCgiTGliIikucmVsaXN0KGUsZykpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKSxlLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9fSxIVE1MOntNYWluOic8c2VjdGlvbiBzdHlsZT0iIj48c2VjdGlvbiBpZD0iZWRpdG9yIiBjbGFzcz0iZGliIHcxMDBwIj48ZGl2IGNsYXNzPSJwYjUgZnMxMzAgbm9jd21pbiI+PGRpdiBpZD0iZG9jdGl0bGUiIGNsYXNzPSJmczExMCB3NjBwIHB0NCBib2xkZXIgZGliIHZhdCB4Z3JheSBudyBvaCBlbGwgcHIxMCIgPjwvZGl2PjxkaXYgY2xhc3M9IncyMHAgZnM5MCBkaWIgdmF0Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Impzb24tc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJTZWFyY2giIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykudHJpZ2dlcihcJ2NoZWNrLm15XCcpIj48L3NwYW4+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIG1yMCBmciB3MTUwIGZzOTAiIGlkPSJidG4tc2F2ZSI+U2F2ZTwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImRvYyIgY2xhc3M9Imlyb3dcdHhncmF5Ij48L2Rpdj48L3NlY3Rpb24+PC9zZWN0aW9uPicsSXRlbVNpbXBsZTonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5c2ltcGxlIj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUiPjwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIiB0aXRsZT0iRGVsIHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS10cmFzaCI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+JyxJdGVtQ29tcGxleDonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5dHJlZSI+PC9kaXY+PHNlY3Rpb24gY2xhc3M9ImlkZXNjIGNwIj7igJM8L3NlY3Rpb24+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gY2xhc3M9Iml2YWx1ZSBpbXVsdGkgaGlkZSI+PGRpdiBjbGFzcz0iaWxpc3QiPjwvZGl2Pjwvc2VjdGlvbj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWpzb24gaGlkZSI+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIiAgdGl0bGU9IkRlbCBub2RlIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS10cmFzaCI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+J30sc3R5bGU6eyIgIjoiZm9udC1zaXplOjE1cHg7Zm9udC1mYW1pbHk6ICctYXBwbGUtc3lzdGVtJywnQmxpbmtNYWNTeXN0ZW1Gb250JywnSGVsdmV0aWNhIE5ldWUnLCdTZWdvZSBVSScsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLFNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6MzAwO21pbi1oZWlnaHQ6NTAwcHg7bWF4LXdpZHRoOjE5MDBweDsiLCIgLmJvbGRlciI6ImZvbnQtd2VpZ2h0OmJvbGRlcjsiLCIgI2RvY3RpdGxlIjpmdW5jdGlvbih4LGEsYil7cmV0dXJuIndpZHRoOiIrKHgud2lkdGgoKS5jbGFtcCgwLDE1MDApLTIyMC0yMC0xNDQpKyJweCJ9LCIgIC5pcm93IjpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YS5sYWJlbFdpZHRoO3JldHVybnsiIC5pa2V5Ijoid2lkdGg6Iit4KyJweDsiLCIgLmluYXYiOiJwYWRkaW5nLWxlZnQ6Iit4KyJweDsiLCIgLmluYXY+LmlrZXkiOiJtYXJnaW4tbGVmdDotIit4KyJweDsifX0sIiAuanZhbC1icmFja2V0IjoiZm9udC13ZWlnaHQ6aW5oZXJpdDtjb2xvcjogcmdiYSgwLDE4MSwxNjEsMC43Mik7IiwiIC5qdmFsLXRyaW0iOiJkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjBweCAycHggMXB4IDJweDtsaW5lLWhlaWdodDoxLjFlbTtjb2xvcjpyZ2JhKDIxMywgNDgsIDg5LCAwLjYzKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNDMsMTA3LDE5MiwwLjA3KTsiLCIgLmp2YWwtc2hvcnQiOiJjb2xvcjpyZ2JhKDg4LDEwMSwxMjMsMC42Myk7IiwiIC5qdmFsLWVtcHR5IjoiY29sb3I6cmdiYSg4OCwxMDEsMTIzLDAuNjMpOyIsIiAuanZhbC1rZXkiOiJmb250LXdlaWdodDppbmhlcml0O21hcmdpbi1sZWZ0OjNweDsiLCIgLmp2YWwtYnJhY2tldCsuanZhbC1rZXkiOiJtYXJnaW4tbGVmdDoxcHg7IiwiIC5qdmFsLXNpbXBsZSI6ImNvbG9yOnJnYmEoMjU1LDk3LDAsMC44Nyk7IiwiIC5qdmFsLXVuZGVmaW5lZCI6ImNvbG9yOnJnYmEoMjIwLDIyNywyMzAsMC44Nyk7IiwiIC5qdmFsLW51bWJlciI6ImNvbG9yOnJnYmEoNTIsMTQzLDI3LDAuOCkiLCIgLmp2YWwtbnVsbCI6ImNvbG9yOnJnYmEoMjE0LDAsMjYsMC44KSIsIiAuanZhbC1zdHJpbmciOiJjb2xvcjpyZ2JhKDMwLDY1LDE2NCwwLjgpOyIsIiAuanZhbC1mdW5jdGlvbiI6ImNvbG9yOnJnYmEoMTQzLDM2LDE1OCwwLjgpOyIsIiAuanZhbC1mb3VuZC1rZXkiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIyMSwwLDAuNyk7cGFkZGluZy1sZWZ0OjFweDtwYWRkaW5nLXJpZ2h0OjFweDtib3JkZXItcmFkaXVzOjJweDsiLCIgLmlyb290Pi5pZWRpdG9yIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDEyMHB4KTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93LXk6c2Nyb2xsOyIsIiI6eyIgdGV4dGFyZWEiOiJmb250LWZhbWlseTpDb3VzaW5lLCdQVCBNb25vJyxNb25hY28sJ0x1Y2lkYSBDb25zb2xlJyxtb25vc3BhY2U7IiwiIC5pcm93Ijoid2lkdGg6Y2FsYygxMDAlIC0gMXB4KTtkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBwYWRkaW5nOjBweCAwcHggMHB4IDI1cHg7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDcwLDEwNSwxMzUsMC4yNSk7IGxpbmUtaGVpZ2h0OjEuM2VtOyBtYXJnaW4tbGVmdDoxcHg7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXM7IiwiIC5pcm93OmJlZm9yZSI6J2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE1cHg7bGVmdDowO3dpZHRoOjE4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSg3MCwxMDUsMTM1LDAuMjUpOycsIiAuaXJvdzpsYXN0LWNoaWxkIjoiYm9yZGVyOm5vbmU7IiwiIC5pcm93Omxhc3QtY2hpbGQ6YWZ0ZXIiOidjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTVweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSg3MCwxMDUsMTM1LDAuMjUpOycsIiAuaXJvdzpob3ZlciwuaXJvdy5ob3ZlciI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyMDYsIDIxNCwgMjI2LCAwLjIpOyIsIiAuaWtleSI6InBhZGRpbmctcmlnaHQ6MTBweDtkaXNwbGF5OmlubGluZS1ibG9jazsgd29yZC1icmVhazpicmVhay1hbGw7Zm9udC1zaXplOjk1JTsgbGluZS1oZWlnaHQ6MS4yZW07b3BhY2l0eTowLjg7IG92ZXJmbG93OmhpZGRlbjt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luOjAuMjVlbSAwIDAuM2VtIDBweDsiLCIgLmlrZXl0cmVlIjoiY3Vyc29yOiBwb2ludGVyOyIsIiAuaWxhYmVsIjoiZm9udC1zaXplOjgwJTtwYWRkaW5nOjAgNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMDUpOyBib3JkZXItcmFkaXVzOjJweDtvcGFjaXR5OjAuOTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjotMXB4IDVweCAwIDBweDsiLCIgLmFkb3duLCAuYXJpZ2h0IjoiZm9udC1zaXplOjUwJTsgbGluZS1oZWlnaHQ6MWVtOyBmb250LXdlaWdodDo0MDAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjAgMCAxcHggM3B4OyBvcGFjaXR5OjAuMzsiLCIgLmFyaWdodDphZnRlciI6J2NvbnRlbnQ6IuKWtu+4jiI7JywiIC5hZG93bjphZnRlciI6J2NvbnRlbnQ6IuKWvCI7JywiIC5pdmFsdWUsIC5pbGlzdCI6IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsiLCIgLml2YWx1ZSI6ImxpbmUtaGVpZ2h0OiAxLjZlbTtjdXJzb3I6cG9pbnRlcjsiLCIgLmlkZXNjIjoibGluZS1oZWlnaHQ6IDEuNWVtOyIsIiAuaXZhbHVlLCAuaWxpc3QsIC5pZGVzYyI6IndpZHRoOjEwMCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IiwiIC5pZGVzYyAuaW1vZGUiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBmb250LXNpemU6OTUlOyBsaW5lLWhlaWdodDoxLjVlbTsgbWFyZ2luLWxlZnQ6MjBweDsiLCIgLmltb2RlID4gc3BhbiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjBlbSAwLjVlbTsgbWFyZ2luLXJpZ2h0OjAuMGVtOyBib3JkZXItcmFkaXVzOjJweDsgYm9yZGVyOiAxcHggc29saWQgIzQzNGU1ZDAwOyBjb2xvcjojNDM0ZTVkOTA7IiwiIC5pbW9kZS5tb2RlLXRyZWUgLm1vZGUtdHJlZSwgLmltb2RlLm1vZGUtanNvbiAubW9kZS1qc29uLCAuaW1vZGUubW9kZS1qcyAubW9kZS1qcywgLmltb2RlLm1vZGUtZGlmZiAubW9kZS1kaWZmIjoiY29sb3I6IzQzNGU1ZGMwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM0ZTVkMWE7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IiwiIC5pbXVsdGkuaXZhbHVlIjoiY3Vyc29yOmluaGVyaXQ7IiwiIC5pc2VkaXRvciAuaXZhbHVlIjoid29yZC13cmFwOiBicmVhay13b3JkOyB3aGl0ZS1zcGFjZTpwcmU7IHBhZGRpbmc6MC4yZW0gMC4zZW0gMC4yZW0gMC40ZW07IGZvbnQtZmFtaWx5OkNvdXNpbmUsJ1BUIE1vbm8nLE1vbmFjbywnTHVjaWRhIENvbnNvbGUnLG1vbm9zcGFjZTsgbWF4LWhlaWdodDo0MDBweDsgb3ZlcmZsb3c6YXV0bztvdmVyZmxvdzpvdmVybGF5OyBvdXRsaW5lOm5vbmU7IGJvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpOyBmb250LXNpemU6OTAlOyBib3JkZXItcmFkaXVzOjJweDttYXJnaW46LTFweCAwIC0xcHggMDsgdGFiLXNpemU6MjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjQwLDAuOCk7IGN1cnNvcjp0ZXh0OyIsIiAuaXNlZGl0b3J+Lml2YWx1ZSI6ImRpc3BsYXk6bm9uZTsiLCIgLmlib29sZWFuLXRhZyI6InBhZGRpbmc6MCA5cHggMXB4IDlweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgYm9yZGVyLXJhZGl1czoxMDBweDsiLCIgLmlzZWRpdG9yIC5pZWR0eXBlIjoicG9zaXRpb246YWJzb2x1dGU7IHRvcDo2cHg7IHJpZ2h0Ojg2cHg7IGZvbnQtc2l6ZTogMC44ZW07IGxpbmUtaGVpZ2h0OiAxLjJlbTsgYm9yZGVyLXJhZGl1czoyMHB4OyBwYWRkaW5nOiAwIDVweCAxcHggNXB4OyIsIiAuaW5hdiI6Im1hcmdpbjoycHggMDsiLCIgLmluYXYgLmllZGl0b3IiOiJ3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZTt3b3JkLWJyZWFrOm5vcm1hbDsiLCIgLmluYXYgLml2YWx1ZS5oaWRlfi5pZWRpdG9yIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5pbmF2IC5pZGVzYy5oaWRlfi5pZWRpdG9yIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5pbmF2IC5pZWRpdG9yIC5pY21mcmFtZSI6Im92ZXJmbG93OmhpZGRlbjsgYm9yZGVyOjFweCBzb2xpZCAjZDFkZmU5OyBib3JkZXItcmFkaXVzOjJweDsiLCIgLmluYXYgLmllZGl0b3IgLmJ1dHRvbiI6InBhZGRpbmc6IDAuMjVlbSAwLjdlbSAwLjE1ZW0gMC43ZW07bWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMDsiLCIgLkNvZGVNaXJyb3IiOiJmb250LXNpemU6MTMuMnB4OyBmb250LWZhbWlseTpDb3VzaW5lLCdQVCBNb25vJyxNb25hY28sbW9ub3NwYWNlOyBsaW5lLWhlaWdodDoxLjRlbTsgY29sb3I6ICM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpjYWxjKDIwICogMTZweCArIDZweCk7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIiAuZWQtZXJyb3IgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5Db2RlTWlycm9yIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsiLCIgLkNvZGVNaXJyb3IucmVhZG9ubHkiOiJiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7IG9wYWNpdHk6IDAuODsiLCIgLm15LW1vZGFsLWZvcm0gLkNvZGVNaXJyb3IiOiJtaW4taGVpZ2h0OjE1MHB4OyBoZWlnaHQ6YXV0bzsiLCIgLm15LW1vZGFsLWZvcm0gLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDsiLCIgLmluYXYgLmllZGl0b3IgLkNvZGVNaXJyb3IiOiJtaW4taGVpZ2h0OjI1cHg7IGhlaWdodDphdXRvOyIsIiAuaWFjdCI6InBvc2l0aW9uOmFic29sdXRlOyB0b3A6M3B4OyByaWdodDozcHg7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzO2JvcmRlci1yYWRpdXM6M3B4OyIsIiAuaWFjdDpob3ZlciwgLmlhY3QuaG92ZXIiOiJkaXNwbGF5OmJsb2NrO29wYWNpdHk6MSFpbXBvcnRhbnQ7IiwiIC5pbmF2OmhvdmVyfi5pYWN0IjoiZGlzcGxheTpibG9jaztvcGFjaXR5OjAuNzsiLCIgLmlhY3QgLmJ1dHRvbiI6InBhZGRpbmc6MC4yNWVtIDAgMC4xNWVtIDA7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDozNnB4O3doaXRlLXNwYWNlOm5vd3JhcDsiLCIgLmluYXYuaXNlZGl0b3J+LmlhY3QiOiJkaXNwbGF5Om5vbmU7IiwiICNkb2MiOiJwYWRkaW5nOjA7IGJvcmRlcjpub25lO292ZXJmbG93OnZpc2libGU7IiwiICNkb2M6YmVmb3JlLCAjZG9jOmFmdGVyIjoiZGlzcGxheTpub25lOyIsIiAjZG9jOmhvdmVyIjoiYmFja2dyb3VuZDp3aGl0ZTsiLCIgI2RvYz4uaW5hdiI6InBhZGRpbmctbGVmdDoxMjBweDsiLCIgI2RvYz4uaW5hdiAuaWtleSI6ImZvbnQtc2l6ZToxMDUlO2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luOjAgMCAwIC0xMjBweDt3aWR0aDoxMjBweDsiLCIgI2RvYz4uaWFjdCI6Im9wYWNpdHk6MC4zO3RvcDowO3JpZ2h0OjA7IiwiIC50YWcuYWN0aXZlIjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzUsIDIxMiwgMCwgMC4xNykhaW1wb3J0YW50O2NvbG9yOiByZ2IoNjUsIDEzMiwgMCkhaW1wb3J0YW50OyIsIiAuYnV0dG9ucyBidXR0b24iOiJib3JkZXItcmFkaXVzOjA7bWFyZ2luLXJpZ2h0OjJweDsgcGFkZGluZzowLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTt3aWR0aDozNnB4O2ZvbnQtc2l6ZTo5MCU7IiwiIC5idXR0b25zIGJ1dHRvbjpsYXN0LWNoaWxkIjoiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7IG1hcmdpbi1yaWdodDowOyIsIiAuYnV0dG9ucyBidXR0b246Zmlyc3QtY2hpbGQiOiJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHg7IiwiIC5idXR0b25zIC5idXR0b24iOiJib3JkZXItcmFkaXVzOjA7bWFyZ2luLXJpZ2h0OjJweDsiLCIgLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIjoiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7IG1hcmdpbi1yaWdodDowOyIsIiAuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIjoiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4OyIsIiBhLmJhc2U2NGltYWdlIGltZyI6ImJhY2tncm91bmQ6IHdoaXRlOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkIWltcG9ydGFudDsgcGFkZGluZzogM3B4OyBtYXgtd2lkdGg6IDEwJTsgbWluLXdpZHRoOiAyJTsgbWF4LWhlaWdodDogNjBweDsiLCIgLmJhc2U2NGltYWdlfmRpdiI6IndpZHRoOjg3JTsiLCIgLmJhc2U2NGljb35kaXYiOiJ3aWR0aDo4NyU7IiwiIC53NTUiOiJ3aWR0aDo1NXB4OyIsIiAuaDU1IjoiaGVpZ2h0OjU1cHg7In19LE1UYWtlb3V0Ontpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztiLlN0YXJ0SGFzaD0kLm15LmYuc2RibUNvZGUoYS5kYXRhLmpzb24pLGIuZGF0YS5qc29uPSIoIitiLmRhdGEuanNvbisiKSIseC5odG1sKGIuSFRNTCl9LEhUTUw6JzxkaXYgaWQ9InRpdGxlIiBjbGFzcz0ibWI1IGZzMTA1IGJvbGRlciI+PC9kaXY+PGRpdiBjbGFzcz0ibmVlZHNjbGljayIgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgbWFyZ2luOjJweCAwIDhweCAwO2JvcmRlci1yYWRpdXM6MnB4Ij48dGV4dGFyZWEgaWQ9Impzb24iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9ImZyIGdyYXkgcHQ1IiBpZD0iaW5mbyI+PC9kaXY+PGRpdiBjbGFzcz0iYnV0dG9ucyBkaWIgdmF0IGZzMTEwIG10NCI+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHc5MCIgaWQ9ImJ0bi1yZXBsYWNlIj5SZXBsYWNlPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHc5MCIgaWQ9ImJ0bi1leHRlbmQiPkV4dGVuZDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ1dHRvbiB3OTAiIGlkPSJidG4tY2FuY2VsIj5DYW5jZWw8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJsZ3JheSBwbDMwIGRpYiB2YXQgcHQ1IiBpZD0iaW5mbyI+SlNPTiBvciBqcyBleHByZXNzaW9uIOKHoTwvZGl2PjxkaXYgY2xhc3M9InBsMzAgZGliIHZhdCBwdDUgbzcwIj48c3BhbiBjbGFzcz0icHNldWRvbGluayB0ZG4iIGlkPSJidG4tc3RyaXAiIHRpdGxlPSJSZW1vdmVzIGFsbCBfKiBzeXN0ZW0gZmllbGRzIGV4Y2VwdCBfaWQgYW5kIF9hdHRhY2htZW50cyI+U3RyaXAgXyBrZXlzPC9zcGFuPjwvZGl2PjwvZGl2PicsdWk6eyIjdGl0bGUiOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4iSlNPTiBmb3IgIit4LnBhdGguc2xpY2UoMCkuYWRkKHgua2V5KS5qb2luKCIvIikudHJ1bmNhdGUoNzAsIm1pZGRsZSIsIuKApiIpfSwiI2pzb24iOntkZWxheToyMCxiaW5kOiJqc29uIixpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5kYXRhLmpzb24ubGVuZ3RoPDVlNTtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmI/ImphdmFzY3JpcHQiOiJ0ZXh0IixsaW5lTnVtYmVyczpiLHZpZXdwb3J0TWFyZ2luOjEwMCxpbmRlbnRXaXRoVGFiczohMCxpbmRlbnRVbml0OjIsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixhdXRvZm9jdXM6ITB9KX19LCIjYnRuLXJlcGxhY2UiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHgubm9kZT10aGlzLlBhcnNlZCx4LmNtZD0icmVwbGFjZSIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5yZXBsYWNlfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuRGlydHl8fCF0aGlzLlBhcnNlZH0sInNlbGY6b3JhbmdlIjpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLkRpcnR5JiYhIXRoaXMuUGFyc2VkfX0sd2F0Y2g6IiNpbmZvIn0sIiNidG4tZXh0ZW5kIjp7YmluZDpmdW5jdGlvbih4LGEsYil7cmV0dXJuIG51bGwhPWEmJih4Lm5vZGU9dGhpcy5QYXJzZWQseC5jbWQ9ImV4dGVuZCIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5leHRlbmR9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5EaXJ0eXx8IXRoaXMuUGFyc2VkfSwic2VsZjpvcmFuZ2UiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuRGlydHkmJiEhdGhpcy5QYXJzZWR9LCJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmV4dGVuZH19LHdhdGNoOiIjaW5mbyJ9LCIjYnRuLWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJmIudHJpZ2dlcigiY2FuY2VsIil9fSwiI2J0bi1zdHJpcCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXMuUGFyc2VkLGQ9WyJfaWQiLCJfYXR0YWNobWVudHMiXS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gdm9pZCAwIT09Y1thXSYmKHhbYV09Y1thXSkseH0se30pO3RoaXMuUGFyc2VkPSQuZXh0ZW5kKGQsT2JqZWN0LnJlamVjdCh0aGlzLlBhcnNlZCwvXl8vKSkseC5qc29uPSIoIitKU09OLnN0cmluZ2lmeSh0aGlzLlBhcnNlZCxudWxsLCIgICIpKyIpIix0aGlzLm15LnJlY2FsYygiI2pzb24iKX19LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5QYXJzZWR8fCFPYmplY3Qua2V5cyh0aGlzLlBhcnNlZCkuZmluZEFsbCgvXl8vKS5yZW1vdmUoIl9pZCIpLnJlbW92ZSgiX2F0dGFjaG1lbnRzIikubGVuZ3RofX0sd2F0Y2g6IiNpbmZvIn0sIiNpbmZvIjp7ZGVsYXk6NDAwLGJpbmQ6ZnVuY3Rpb24oZCx2LCRvKXt2YXIgcGFyc2Uscz11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZC5qc29uKSkubGVuZ3RoO3RyeXtwYXJzZT1ldmFsKCIoIitkLmpzb24rIikiKSxwYXJzZT1PYmplY3QuaXNPYmplY3QocGFyc2UpfHxPYmplY3QuaXNBcnJheShwYXJzZSk/SlNPTi5wYXJzZSgkLm15LnRvanNvbihwYXJzZSkpOm51bGx9Y2F0Y2goeCl7fXJldHVybiB0aGlzLlBhcnNlZD1wYXJzZXx8bnVsbCwkby5teSgpLnJvb3QudG9nZ2xlQ2xhc3MoImVkLWVycm9yIiwhcGFyc2UpLHRoaXMuSGFzaD0kLm15LmYuc2RibUNvZGUoZC5qc29uKSx0aGlzLkRpcnR5PXRoaXMuU3RhcnRIYXNoIT10aGlzLkhhc2gscy5tZXRyaWMoMikrImIifSx3YXRjaDoiI2pzb24ifX0sc3R5bGU6eyIgI2pzb24iOiJib3JkZXI6IG5vbmU7IHdpZHRoOiAxMDAlO2Rpc3BsYXk6IGJsb2NrO2hlaWdodDogMzAwcHg7Zm9udC1zaXplOiAwLjdlbTt3b3JkLXdyYXA6IG5vcm1hbDsgb3ZlcmZsb3cteDogaGlkZGVuOyIsIiAuQ29kZU1pcnJvciI6eyIiOiJtaW4taGVpZ2h0OjE1MHB4O2hlaWdodDphdXRvO2ZvbnQtc2l6ZToxM3B4IWltcG9ydGFudDsiLCIgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4IWltcG9ydGFudDsiLCIgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyJ9fX0sTUFkZDp7aW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7eC5mb3JtZ2VuKGIuSFRNTCksYS5kYXRhLmlzYXJyYXkmJnguZmluZCgiI25rZXkiKS5hdHRyKCJ0eXBlIiwibnVtYmVyIil9LGRhdGE6e2NtZDoiIixrZXk6IiIsdHlwZToic3RyaW5nIixpc2FycmF5OiExLHRleHQ6IkNyZWF0ZSBuZXcgcHJvcGVydHkiLHByZXBlbmQ6IlByZXBlbmQiLGFwcGVuZDoiQXBwZW5kIix1cGxvYWQ6JzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIGRpYiB3MTAwcCB2YXQgdGFjIj5TZWxlY3QgZmlsZS4uLjwvc3Bhbj4nLGtleXM6e30sZmlsZTp7fX0sdWk6eyIjbnRleHQiOiJ0ZXh0IiwiI25rZXkiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmlzYXJyYXk/eC5rZXk9YS5yZXBsYWNlKC9cRC9nLCIiKTp4LmtleT1hKSx4LmtleX0sd2F0Y2g6IiNudHlwZSJ9LCIjbnR5cGUiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHgudHlwZT1hLCJDbGlwIiE9YXx8eC5rZXl8fHguaXNhcnJheXx8KHgua2V5PXguY2xpcC5rZXkpKSx4LnR5cGV9LGluaXQ6ZnVuY3Rpb24oeCxhKXt4LnRhZ3Moe3RhZ3M6W1t7IntPYmp9Ijoib2JqZWN0In0seyJbQXJyXSI6ImFycmF5In0se051bToibnVtYmVyIn0se0Jvb2w6ImJvb2xlYW4ifSx7RmlsZToiZmlsZSJ9XV0sZW1wdHk6eyciU3RyIic6InN0cmluZyJ9LHRhZ2NzczoidGFnIGJsdWUgY3AgcGw1IHByNSIsdGFnc2hpbToiIixncm91cHNoaW06IiJ9KX0scmVjYWxjOiIjbmtleXR5cGUifSwiI25rZXl0eXBlIjpmdW5jdGlvbih4KXtyZXR1cm4geC5pc2FycmF5PyJJbmRleCI6IktleSJ9LCIjeHVwbG9hZCI6e3dhdGNoOiIjbnR5cGUiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iZmlsZSIhPXgudHlwZX19fSwiI3VwbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQsZT17fTtudWxsIT1hJiZhJiYoKGM9YlswXS5maWxlc1swXSkuc2l6ZT54LmxpbWl0Pyhjdy5ub3RlKCJNYXggdXBsb2FkIGZpbGUgc2l6ZSBpcyAiKygxKngubGltaXQpLmFiYnIoMSkrImIiLCJlcnJvciIpLGIud3JhcCgiPGZvcm0+IikuY2xvc2VzdCgiZm9ybSIpLmdldCgwKS5yZXNldCgpKTpjJiZmdW5jdGlvbigpe2UubmFtZT1jLm5hbWUsZS5jb250ZW50X3R5cGU9Yy50eXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt2YXIgYSxmPW5ldyBGaWxlUmVhZGVyLGc9W107Zi5vbmxvYWQ9ZnVuY3Rpb24oZil7YT1uZXcgVWludDhBcnJheShmLnRhcmdldC5yZXN1bHQpO2Zvcih2YXIgaD0wO2g8YS5sZW5ndGg7aCsrKWcucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGFbaF0pKTtkPXdpbmRvdy5idG9hKGcuam9pbigiIikpLGUuZGF0YT1kLGUubGVuZ3RoPWcubGVuZ3RoLCQuZXh0ZW5kKHguZmlsZSxlKSx4LmtleXx8eC5pc2FycmF5fHwoeC5rZXk9Yy5uYW1lKSwheC5rZXkmJnguaXNhcnJheSxiLndyYXAoIjxmb3JtPiIpLmNsb3Nlc3QoImZvcm0iKS5nZXQoMCkucmVzZXQoKSxiLm15KCJmaW5kIiwiLmN3LWF0dC11cGxvYWQ+c3BhbiIpLnRleHQoYy5uYW1lLnRydW5jYXRlKDE1LCJtaWRkbGUiLCLigKYiKSsiICIrZS5sZW5ndGgubWV0cmljKDIsITEpKyJiIikseC5rZXk9PWMubmFtZSYmYi5teSgiZmluZCIsIiNua2V5IikudmFsKHgua2V5KS50cmlnZ2VyKCJibHVyIil9LGYucmVhZEFzQXJyYXlCdWZmZXIoYyl9KCkpfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudXBsb2FkfX19LCIuY3ctYXR0LXVwbG9hZCI6InVwbG9hZCIsIiNidG4tdG8wIjp7YmluZDpmdW5jdGlvbih4LGEsYil7cmV0dXJuIG51bGwhPWEmJih4LmNtZD0icHJlcGVuZCIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5rZXlzW3gua2V5XSYmIXguaXNhcnJheT8iUmVwbGFjZSI6eC5wcmVwZW5kfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmtleX0sInNlbGY6cmVkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5rZXlzW3gua2V5XSYmIXguaXNhcnJheX19LHdhdGNoOiIjbmtleSJ9LCIjYnRuLXRvMSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBudWxsIT1hJiYoeC5jbWQ9ImFwcGVuZCIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5hcHBlbmR9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgua2V5fSwic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4heC5hcHBlbmR8fC9eXGQrJC8udGVzdCh4LmtleSl8fHgua2V5c1t4LmtleV19fSx3YXRjaDoiI25rZXkifSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiZiLnRyaWdnZXIoImNhbmNlbCIpfX0sSFRNTDpbJzxkaXYgaWQ9Im50ZXh0Ij48L2Rpdj4nLHtsYWJlbDoiNTBweCIscm93OiIxMDAlIixyb3dDc3M6Im15LXJvdyBwdDUgcGI1IixsYWJlbENzczoibXktbGFiZWwgZ3JheSBmczkwIn0sWyc8c3BhbiBpZD0ibmtleXR5cGUiPktleTwvc3Bhbj4nLCJpbnAjbmtleS53MTAwcCIsIm1zZy5tdDIubWItMiJdLFsiVHlwZSIsInNwbiNudHlwZS5kaXYudmF0LmZzOTUiXSwnPGRpdiBpZD0ieHVwbG9hZCIgY2xhc3M9InBsNjAgbXQ1IG1iMTAgaGlkZSI+JywnPHNwYW4gY2xhc3M9ImN3LWF0dC11cGxvYWQgYnV0dG9uIHcxMDBwIj48L3NwYW4+JywnPGlucHV0IGlkPSJ1cGxvYWQiIGNsYXNzPSJwbDYwIiB0eXBlPSJmaWxlIiAvPicsIjwvZGl2PiIse3Jvd0NzczoibXktcm93IHB0NSBwYjIgYnV0dG9ucyBwbDUwIn0sWyIiLCJidXQjYnRuLXRvMC5idXR0b24uZ3JlZW4udzk1Iix7dHh0OiJQcmVwZW5kIn0sImJ1dCNidG4tdG8xLmJ1dHRvbi5ncmVlbi53ODUiLHt0eHQ6IkFwcGVuZCJ9LCJidXQjYnRuLWNhbmNlbC5idXR0b24udzc1Lm1yMCIse3R4dDoiQ2FuY2VsIn1dXSxzdHlsZTp7IiAuY3ctYXR0LWl0ZW0iOiJ3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowLjJlbSAwIDAuMmVtIDA7IGxpbmUtaGVpZ2h0OjEuNGVtOyIsIiBpbnB1dFt0eXBlPWZpbGVdIjoid2lkdGg6MjQwcHg7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTowOyBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjYwcHg7aGVpZ2h0OjM1cHg7In19LE1FZGl0OntkYXRhOnt0ZXh0OiIiLG1vZGU6ImF1dG8iLHJlYWRvbmx5OiExLGNvbW1pdEtleXM6W10sY29tbWl0VHlwZUtleXM6e30sY2FuY2VsS2V5czpbXSxjYW5jZWxUeXBlS2V5czp7fSxleHBlY3Q6InN0cmluZyIsdHlwZToic3RyaW5nIn0saW5pdDonPGRpdiBzdHlsZT0id2lkdGg6Y2FsYygxMDAlIC0gODBweCk7IiBjbGFzcz0iaWNtZnJhbWUgZGliIHZhdCBtdC0xIG1iLTEiPjx0ZXh0YXJlYSBpZD0iaWVkIiBzdHlsZSA9IndpZHRoOjEwMCU7eG1heC1oZWlnaHQ6MzAwcHg7IiBjbGFzcz0ieGdyYXkiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBpZD0iaWVkdHlwZSIgY2xhc3M9ImllZHR5cGUgaGlkZSB3aGl0ZSBib2xkIiBzdHlsZT0iIj5hcnJheTwvZGl2PjxkaXYgY2xhc3M9ImJ1dHRvbnMgdzgwIGRpYiB2YXQgdGFyIG8xMDAgcHIzIHB0MCI+PGJ1dHRvbiBpZD0iYnRuLWNoYW5nZSIgY2xhc3M9ImJ1dHRvbiBncmVlbiB3MzYiIHRpdGxlPSJBcHBseSBjaGFuZ2VzIj48c3BhbiBjbGFzcz0iZmktY2hlY2siPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tZGlzY2FyZCIgY2xhc3M9ImJ1dHRvbiB3MzYiIHRpdGxlPSJEaXNjYXJkIGNoYW5nZXMiPjxzcGFuIGNsYXNzPSJmaS14Ij48L3NwYW4+PC9idXR0b24+PC9kaXY+Jyx1aTp7IiNpZWQiOntiaW5kOiJ0ZXh0Iixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YSxkPWMudGV4dCxlPWMubW9kZSxmPSJudW1iZXIiPT1lLGc9ITA7aWYoImF1dG8iPT1lKWlmKCgoYT1kLnN1YnN0cigwLDgwMCkpLm1hdGNoKC8odmFyXHN8Y29uc3Rcc3xmdW5jdGlvbltcc1woXXxyZXR1cm5cc3xbXHNcdF1pZlxzKS9nKXx8W10pLmxlbmd0aD4yKXtlPSJ0ZXh0L2phdmFzY3JpcHQiO3ZhciBoPTA7ZC5saW5lcygpLmZvckVhY2goZnVuY3Rpb24oeCxhKXthPjIwMHx8eC5sZW5ndGg+aCYmKGg9eC5sZW5ndGgpfSksaD4xNTAmJmg8MWUzJiYhMH1lbHNlLzxcLyhkaXZ8c3BhbnxwfGF8c2NyaXB0fGhlYWR8dGl0bGV8c3ZnfHBhdGgpLy50ZXN0KGEpfHwvPChzdmd8cGF0aHxncm91cClccy8udGVzdChhKT8oZT0idGV4dC9odG1sIiwhMCk6Q29kZU1pcnJvci5tb2Rlcy5lcmxhbmcmJi9eKCUlW15cclxuXSpbXHJcbl0rKSpbXHJcblxzXHRdKmZ1bltcclxuXHNcdF0qXChbXHJcblxzXHRdKlx7Py8udGVzdChhKT8oZT0iZXJsYW5nIiwhMCk6KGU9InRleHQiLC9bXHJcbl0vLnRlc3QoYSl8fCghMCxkLmxlbmd0aDw4MDAmJihnPSExKSkpO2Z1bmN0aW9uIGkoKXtiLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3Jjb21taXQubXkiKX1mdW5jdGlvbiBqKCl7Yi5teS50cmlnZ2VyKCIjaWVkIiwiZWRpdG9yY2FuY2VsLm15Iil9Im51bWJlciI9PWU/KGU9InRleHQvamF2YXNjcmlwdCIsZz0hMSk6ImI2NCI9PWUmJihlPSJ0ZXh0L3BsYWluIiwhMCxnPSExKSxDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmUsdmlld3BvcnRNYXJnaW46MTAwLGxpbmVOdW1iZXJzOmcsaW5kZW50V2l0aFRhYnM6ITAsaW5kZW50VW5pdDoyLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Yy5yZWFkb25seSxhdXRvZm9jdXM6ITAsbGluZVdyYXBwaW5nOiEwLGV4dHJhS2V5czokLmV4dGVuZCh7RXNjOmosIkN0cmwtRW50ZXIiOmkuZGVib3VuY2UoMjApLCJDbWQtRW50ZXIiOmkuZGVib3VuY2UoMjApfSxmP3tFbnRlcjppfTp7fSxjLmNvbW1pdEtleXMuY29uY2F0KGMuY29tbWl0VHlwZUtleXNbYy5tb2RlXT9jLmNvbW1pdFR5cGVLZXlzW2MubW9kZV06W10pLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPWkseH0se30pLGMuY2FuY2VsS2V5cy5jb25jYXQoYy5jYW5jZWxUeXBlS2V5c1tjLm1vZGVdP2MuY2FuY2VsVHlwZUtleXNbYy5tb2RlXTpbXSkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09aix4fSx7fSksYy5jb21taXRUeXBlS2V5c1tjLm1vZGVdP2MuY29tbWl0VHlwZUtleXNbYy5tb2RlXTpbXSl9KSxjLnJlYWRvbmx5JiZ4Lm5leHQoKS5hZGRDbGFzcygicmVhZG9ubHkiKX19LCIjYnRuLWNoYW5nZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3Jjb21taXQubXkiKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hIXgucmVhZG9ubHl9fX0sIiNidG4tZGlzY2FyZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3JjYW5jZWwubXkiKX19LCIjaWVkdHlwZSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIm9iamVjdCIhPXguZXhwZWN0JiYiYXJyYXkiIT14LmV4cGVjdHx8KHgudHlwZT0kLnR5cGUodGhpcy5wYXJzZVN0cmluZyh4LnRleHQpKSkseC50eXBlfSxjc3M6eyJiZy1yZWQxIjpmdW5jdGlvbih4KXtyZXR1cm4geC50eXBlIT14LmV4cGVjdH0sImJnLWdyYXkyIjpmdW5jdGlvbih4KXtyZXR1cm4geC50eXBlPT14LmV4cGVjdH0saGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hKCJvYmplY3QiPT14LmV4cGVjdHx8ImFycmF5Ij09eC5leHBlY3QpfX0sd2F0Y2g6WyIjaWVkIl19fSxwYXJzZVN0cmluZzpmdW5jdGlvbiBfcGFyc2VTdHJpbmcodmFsKXt2YXIgbyxlcnI7dHJ5e289SlNPTi5wYXJzZSh2YWwpfWNhdGNoKHgpe2Vycj0hMH1pZihlcnIpe3RyeXtvPWV2YWwoIigiK3ZhbCsiKSIpLGVycj0hMX1jYXRjaCh4KXtlcnI9ITB9IWVyciYmL14ob2J8YXIpLy50ZXN0KCQudHlwZShvKSkmJihvPUpTT04ucGFyc2UoY3cubGliLmpzb24obykpKX1yZXR1cm4gZXJyfHx2b2lkIDA9PT1vP3ZhbDpvfX0sJG11bHRpOntpZDoiU3lzLkpTT04uT2JqZWN0IixwYXJhbXM6e25vcm1hbGl6ZWQ6ITB9LGRhdGE6e30sTGlzdDpbXSxDTToidGV4dC9qYXZhc2NyaXB0IixGOnt9LFR4dDp7b2JqZWN0OlsiT2JqZWN0IHsiLCJ9Il0sYXJyYXk6WyJBcnJheSBbIiwiXSJdfSxpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YTt4LmFkZENsYXNzKCJlZC1ub2RlLSIrYi5QYXRoU2lnKGMucGF0aCxjLmtleSkpLHguaHRtbChiLkhUTUwpLGMuc3RhdGU+MSYmKGIuTGlzdD1iLk1ha2VMaXN0KGIuZGF0YSkpLHgudGhlbihmdW5jdGlvbigpe3gub24oImNsaWNrLm15IiwiLmlsaXN0OmVxKDApIC5idG4tZGVsIixmdW5jdGlvbihjKXtjLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBkPSQodGhpcykucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxlPWQucGFyZW50KCkuZGF0YSgibXkiKS5kYXRhLGY9Yi5SVCgiTGliIikuaXNTeXN0ZW0uY2FsbChkLm15KCJtYW5pZmVzdCIpLGQubXkoImRhdGEiKSksZz0kLnR5cGUoZS52YWx1ZSksaD1kLm15KCJkYXRhIikua2V5LGk9bnVsbDtpZihmKWN3LmxpYi5ub3RlKCJEZWxldGlvbiBpcyBub3QgYWxsb3dlZCIsImVycm9yIik7ZWxzZXtpZigib2JqZWN0Ij09Zyl7dmFyIGo9T2JqZWN0LmtleXMoZS52YWx1ZSksaz1qLmluZGV4T2YoaCk7aT1bbnVsbCxudWxsXSxrPjAmJihpWzBdPWpbay0xXSksazxqLmxlbmd0aC0xJiYoaVsxXT1qW2srMV0pfWIuTm9kZVVwZGF0ZWQoW2UucGF0aCxlLmtleSxoXSxlLnZhbHVlW2hdLHZvaWQgMCxpKSwib2JqZWN0Ij09Zz9kZWxldGUgZS52YWx1ZVtoXToiYXJyYXkiPT1nJiZlLnZhbHVlLnJlbW92ZUF0KGgpLGIuUlQoIkxpYiIpLnJlbGlzdCh4LGIsYSl9fSl9KX0sdWk6eyIuaXZhbHVlIjp7ZGVsYXk6MCxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5MaXN0Lmxlbmd0aH19fSwiLmJ0bi1qc29uIjp7ZGVsYXk6LjAxLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLklubGluZUNNKHgsYSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3guc3RhdGU9MTZ8eC5zdGF0ZX19LHJlY2FsYzpbIi5pa2V5IiwiLmlkZXNjIl19LCIuaWtleSI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQ9dGhpcyxlPWQubGFiZWxXaWR0aC8zfDAsZj0iJG11bHRpIj09eC5tYW5pZmVzdCxnPSEhKDE2Jnguc3RhdGUpLGg9T2JqZWN0LnNpemUoeC52YWx1ZSk7cmV0dXJuIG51bGw9PWF8fGd8fChoPD1kLlJUKCJkYXRhIikubWF4RGVwdGg/KHguc3RhdGU9MSZ4LnN0YXRlJiYoIWZ8fGgpfHwheC5sZXZlbD8yNTQmeC5zdGF0ZXwyOjI1MyZ4LnN0YXRlfDEsMiZ4LnN0YXRlP2QuTGlzdD1kLk1ha2VMaXN0KHgpOihkLkxpc3Q9W10sZC5TaG93SXRlbXM9bnVsbCkpOihkLkxpc3Q9W10sZC5TaG93SXRlbXM9bnVsbCx4LnN0YXRlPTI1MyZ4LnN0YXRlfDEsZC5teS5maW5kKCIuaWRlc2MiKS50cmlnZ2VyKCJjbGljay5teSIpKSxkLlJUKCJNZW1TdGF0ZSIpKHgpKSw0Jnguc3RhdGUmJmQuUlQoIlNlYXJjaFJlIik/Yz14LmtleS5yZXBsYWNlKGQuUlQoIlNlYXJjaFJlIiksIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJqdmFsLWZvdW5kLWtleSI+JykucmVwbGFjZSgi77+wIiwiPC9zcGFuPiIpOih4LmtleS5sZW5ndGg+ZSYmYi5hdHRyKCJ0aXRsZSIseC5rZXkuZXNjYXBlSFRNTCgpKSxjPS9eKHxccyspJC8udGVzdCh4LmtleSk/JyInK3gua2V5LmVzY2FwZUhUTUwoKSsnIic6eC5rZXkudHJ1bmNhdGUoZSwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCksMTgmeC5zdGF0ZT8oYz0nPHNwYW4gY2xhc3M9ImZ3NTAwIj4nK2MrIjwvc3Bhbj4iLDE2Jnguc3RhdGV8fCFofHwoYys9JzxzcGFuIGNsYXNzPSJhZG93biI+PC9zcGFuPicpKTpoJiYoYys9JzxzcGFuIGNsYXNzPSJhcmlnaHQiPjwvc3Bhbj4nKSksY30sZXZlbnRzOiJjbGljay5teSIscmVjYWxjOlsiLml2YWx1ZSIsIi5pZGVzYyIsIi5pbGlzdCJdfSwiLmlkZXNjIjp7ZGVsYXk6MCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9KGMuTGlzdCxjLlR4dFt4LnR5cGVdLE9iamVjdC5zaXplKHgudmFsdWUpKSxlPSh4Lm1hbmlmZXN0LCIiKTtpZihudWxsPT1hKXtpZigxNiZ4LnN0YXRlKWU9IiI7ZWxzZSBpZihjLkxpc3QubGVuZ3RoKWU9Im9iamVjdCI9PXgudHlwZT8iT2JqZWN0IHsiK2QrIn0iOiJBcnJheSBbIitkKyJdIjtlbHNlIGlmKCFjLlJUKCJTZWFyY2hSZSIpfHx4LnBhdGgubGVuZ3RoKXt2YXIgZj1jLlJUKCJqMmgiKSh4LnZhbHVlLDUwLFsiaWQiLCJuYW1lIiwibGVuZ3RoIiwic3RhdHVzIl0sImFycmF5IiE9eC50eXBlPzE6MiwiYXJyYXkiIT14LnR5cGUpOzE9PWYubGVuZ3RoJiYic2hvcnQiPT1mWzBdWzBdJiYoInsiPT1mWzBdWzFdWzBdP2ZbMF1bMV09Ik9iamVjdCAiK2ZbMF1bMV06IlsiPT1mWzBdWzFdWzBdJiYoZlswXVsxXT0iQXJyYXkgIitmWzBdWzFdKSksZSs9Zi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19KS5qb2luKCIiKX1lbHNlIGU9JzxzcGFuIGNsYXNzPSJsaDExNSBkaWIgdmF0Ij5Gb3VuZCBubyBub2RlcyBjb250YWluaW5nIDxzcGFuIGNsYXNzPSJib2xkZXIiPnsxfTwvc3Bhbj48L3NwYW4+Jy5hc3NpZ24oYy5SVCgiZGF0YSIpLnNlYXJjaC5lc2NhcGVIVE1MKCkpO2IuaHRtbChlKX19LHJlY2FsYzpbIi5pdmFsdWUiLCIuaWtleSIsIi5pbGlzdCJdfSwiLmlsaXN0Ijp7ZGVsYXk6MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5vbigiY2hhbmdlLm15IixmdW5jdGlvbigpe2EuUlQoIlJlam9pbiIpKGEuZGF0YSxhLkxpc3QpfS5kZWJvdW5jZSgzMDApKX0sYmluZDoidGhpcy5MaXN0IixsaXN0Oic8ZGl2IGNsYXNzPSJpcm93Ij48L2Rpdj4nLGlkOmZ1bmN0aW9uKHgpe3JldHVybiJYIit4LmlkfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiJYIit4Lmhhc2h9LG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7cmV0dXJuIGEuUlQoeC5tYW5pZmVzdCl8fGEuUlQoIiRzdHJpbmciKX19fX0sJHN0cmluZzp7aWQ6IlN5cy5KU09OLlN0cmluZyIsQ006ImF1dG8iLEY6e30sdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2EuSW5saW5lQ00oeCxhKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiAyIT14LnN0YXRlP2IoeC52YWx1ZSk6KG51bGwhPWEmJih4LnZhbHVlPWEpLGIoeC52YWx1ZSkpO2Z1bmN0aW9uIGIoeCl7dmFyIGE9JzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGI9JzxzcGFuIGNsYXNzPSJvMzAiPuKAicK24oCJPC9zcGFuPic7cmV0dXJuIHgubGVuZ3RoPjE0MD9hKz14LnRydW5jYXRlKDE0MCkuZXNjYXBlSFRNTCgpLnJlcGxhY2UoL1xuL2csYikrJyZxdW90OyA8c3BhbiBjbGFzcz0iaWxhYmVsIj4nK3gubGVuZ3RoKyIgY2hhcnM8L3NwYW4+IjphKz14LmVzY2FwZUhUTUwoKS5yZXBsYWNlKC9cbi9nLGIpKyc8c3BhbiBjbGFzcz0ianZhbC1icmFja2V0Ij4mcXVvdDs8L3NwYW4+JyxhfX0sZXZlbnRzOiJpbnB1dC5teSJ9fX0sJGZvdW5kOntpZDoiU3lzLkpTT04uRm91bmQiLENNOiJhdXRvIixGOnt9LHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLklubGluZUNNKHgsYSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt0aGlzLmxhYmVsV2lkdGg7dmFyIGIsYz14LnZhbHVlO3JldHVybiA4Jnguc3RhdGUmJnRoaXMuUlQoIlNlYXJjaFJlIik/Wyc8c3BhbiBjbGFzcz0ianZhbC1icmFja2V0Ij4mcXVvdDs8L3NwYW4+JywoYj1jLnJlcGxhY2UodGhpcy5SVCgiU2VhcmNoUmUiKSwi77+xJDHvv7EiKS5zcGxpdCgi77+xIikpWzBdLnRydW5jYXRlKDE0MCwibGVmdCIsIuKApiIpLmVzY2FwZUhUTUwoKSwnPHNwYW4gY2xhc3M9Imp2YWwtZm91bmQta2V5Ij4nK2JbMV0uZXNjYXBlSFRNTCgpKyI8L3NwYW4+IixiWzJdLnRydW5jYXRlKDE0MCwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCksJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGMubGVuZ3RoPjI4MD8nPHNwYW4gY2xhc3M9ImlsYWJlbCI+JytjLmxlbmd0aCsiIGNoYXJzPC9zcGFuPiI6IiJdLmpvaW4oIiIpOjIhPXguc3RhdGU/ZCh4LnZhbHVlKToobnVsbCE9YSYmKHgudmFsdWU9YSksZCh4LnZhbHVlKSk7ZnVuY3Rpb24gZCh4KXt2YXIgYT0nPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPic7cmV0dXJuIHgubGVuZ3RoPjE0MD9hKz14LnRydW5jYXRlKDE0MCkuZXNjYXBlSFRNTCgpKycmcXVvdDsgPHNwYW4gY2xhc3M9ImlsYWJlbCI+Jyt4Lmxlbmd0aCsiIGNoYXJzPC9zcGFuPiI6YSs9eC5lc2NhcGVIVE1MKCkrJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGF9fSxldmVudHM6ImlucHV0Lm15In19fSwkZnVuY3Rpb246e2lkOiJTeXMuSlNPTi5GdW5jdGlvbiIsQ006InRleHQvamF2YXNjcmlwdCIsRjp7fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2IuZGF0YTtiLklubGluZUNNKHgsYil9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZigyIT14LnN0YXRlKXt2YXIgYj0iIixjPS9eW1xzXHJcblx0XSpcKD9bXHNcclxuXHRdKmZ1bmN0aW9uLyxkPS9bXHNcclxuXHRdKlwpW1xzXHJcblx0XSokLztpZih4LnZhbHVlLmxlbmd0aD4xMDApe3ZhciBlPXgudmFsdWUuc3BsaXQoIikiLDEpWzBdO2IrPVsnPHNwYW4gY2xhc3M9Imp2YWwtZnVuY3Rpb24iPmZ1bmN0aW9uIDwvc3Bhbj4gJyxlLnJlcGxhY2UoYywiIikuc3BsaXQoIigiKVswXS50cmltKCksIigiLGUuc3BsaXQoIigiKVsxXSsiKSB7IiwnIDxzcGFuIGNsYXNzPSJpbGFiZWwgbGgxNDAiPicsKHgudmFsdWUubWF0Y2goL1tcclxuXSsvZyl8fCIiKS5sZW5ndGgrMSsiIExPQywgIix4LnZhbHVlLmxlbmd0aCsiIGNoYXJzIiwiPC9zcGFuPiAiLCJ9Il0uam9pbigiIil9ZWxzZSBiPSc8c3BhbiBjbGFzcz0ianZhbC1mdW5jdGlvbiI+ZnVuY3Rpb248L3NwYW4+Jyt4LnZhbHVlLnJlcGxhY2UoYywiIikucmVwbGFjZShkLCIiKS5lc2NhcGVIVE1MKCk7cmV0dXJuIGJ9cmV0dXJuIG51bGwhPWEmJih4LnZhbHVlPWEpLHgudmFsdWV9LGV2ZW50czoiaW5wdXQubXkifX19LCRiYXNlNjQ6e2lkOiJTeXMuSlNPTi5CYXNlNjQiLENNOiJiNjQiLEY6e30sdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztiLmRhdGE7Yi5JbmxpbmVDTSh4LGIpfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz0iIixkPXRoaXMuUlQoIkJsb2JzIiksZT0vXmltYWdlXC8vLnRlc3QoeC5taW1lKyIiKSYmeC52YWx1ZS5sZW5ndGg8NWU1P2RbeC5oYXNoXTpudWxsLGY9IiI7aWYoMiE9eC5zdGF0ZSl7dmFyIGc9Yi53aWR0aCgpO2U/KGMrPVsnPGEgaHJlZj0iJytlKyciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYmFzZTY0aW1hZ2UiPicsJzxpbWcgc3JjPSInK2UrJyIgY2xhc3M9ImZsIG1yMTAiLz4nLCI8L2E+Il0uam9pbigiIiksZy09ODApOngubWltZSYmeC5mbmFtZSYmKGY9eC5mbmFtZXx8InVudGl0bGVkLmJpbiIsYys9JzxhIGhyZWY9IicrZFt4Lmhhc2hdKyciICBjbGFzcz0iYmFzZTY0aWNvIHc1NSBoNTUgdGFjIGRpYiB2YXQgbXIxMCBsZ3JheSBmczIwMCBiZy1sZ3JheSBicjIiIGRvd25sb2FkPSInK2YrJyIgIHRpdGxlPSJEb3dubG9hZCAnK2YrJyIgIHN0eWxlPSJsaW5lLWhlaWdodDo1NXB4Ij48c3BhbiBjbGFzcz0iJysoeC5pY298fCJmaS1hcmNoaXZlIikrJyI+PC9zcGFuPjwvYT4nLGctPTgwKTt2YXIgaD0oZy8xMCoyLjV8MCkuY2xhbXAoMTQwLDYwMCk7cmV0dXJuIGMrPSc8ZGl2IGNsYXNzPSJkaWIgdmF0IGJhc2U2NHN0cmluZyI+JyxjKz0nIicseC52YWx1ZS5sZW5ndGg+aD9jKz14LnZhbHVlLnRydW5jYXRlKGgpKyciJm5ic3A7PGEgaHJlZj0iJytkW3guaGFzaF0rJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJpbGFiZWwgdGRuIj4nKyhlPyJPcGVuIjoiRG93bmxvYWQiKSsiJm5ic3A7Iit4LnNpemUubWV0cmljKDIpKyJiPC9hPiI6Yys9eC52YWx1ZSsnIicsZSYmKGMrPSI8L2Rpdj4iKSxjfXJldHVybiBudWxsIT1hJiYoeC52YWx1ZT1hKSx4LnZhbHVlfSxldmVudHM6WyJpbnB1dC5teSJdfX0sTWltZTp7ImFwcGxpY2F0aW9uL3gtY29tcHJlc3NlZCI6L1wuemlwJC9pLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwiOi9cLnhsc3g/JC9pLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iOi9cLihjZHJ8ZGF0fHJhcikkL2ksImFwcGxpY2F0aW9uL2pzb24iOi9cLihqc258anNvbikkL2ksImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiOi9cLmpzJC9pLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCI6L1wuZG9jeCQvaSwiYXBwbGljYXRpb24vbXN3b3JkIjovXC5kb2M/JC9pLCJhcHBsaWNhdGlvbi9wZGYiOi9cLnBkZiQvaSwidGV4dC9wbGFpbiI6L1wudHh0JC9pLCJ0ZXh0L2h0bWwiOi9cLihbeF0/aHRtW2xdPykkL2ksInRleHQveG1sIjovXC4oeG1sfHhzZHx4c2Z8eHNsfHhzbHQpJC9pLCJpbWFnZS9wbmciOi9cLnBuZyQvaSwiaW1hZ2UvanBlZyI6L1wuanBlP2ckL2ksImltYWdlL2dpZiI6L1wuZ2lmJC9pLCJpbWFnZS9zdmcreG1sIjovXC5zdmckL2l9LEljbzp7ImZpLXBob3RvIjovXC4ocG5nfGpwW2VdP2d8Z2lmfHRpZltmXT98Ym1wfHN2ZykkL2ksImZpLXNvY2lhbC1hZG9iZSI6L1wuKHBkZnxhaXxwc2QpJC9pLCJmaS1wYWdlLWRvYyI6L1wuKGRvY1t4XT98dHh0fHJ0ZikkL2ksImZpLWdyYXBoLXBpZSI6L1wuKHhsc1t4XT98Y3N2KSQvaSwiZmktYXJjaGl2ZSI6L1wuKHppcHxyYXJ8N3p8N3ppcCkkL2ksImZpLWh0bWw1IHBsMiI6L1wuKGh0bVtsXXxwaHApJC9pLCJmaS1jc3MzIHBsMiI6L1wuY3NzJC9pLCJmaS13aWRnZXQiOi9cLihqc1tvbl0/fHBocHxhc3B8amFyfGN8ZXJsKSQvaSwiZmktc291bmQiOi9cLih3YXZ8YWlmZnxtcDN8b2dnfG1wZWczKSQvaX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYSxiPXRoaXMsYz1iLmRhdGE7aWYoeC5hZGRDbGFzcygiZWQtbm9kZS0iK2IuUGF0aFNpZyhjLnBhdGgsYy5rZXkpKSx4Lmh0bWwoYi5IVE1MKSwhYy5zaWcpe3ZhciBkPS9eZGF0YTppbWFnZVwvKGpwZWd8cG5nfGdpZnxzdmdcK3htbCk7YmFzZTY0LC8sZT1kLnRlc3QoYy52YWx1ZSksZj1lP2MudmFsdWUucmVwbGFjZShkLCIiKTpjLnZhbHVlO2lmKGMuc2l6ZT0oZi5sZW5ndGgvNCozKS5mbG9vcigpLGMuc2lnPWE9d2luZG93LmF0b2IoZi50byg0MDApKSxlKWMubWltZT1jLnZhbHVlLnRvKDMwKS5zcGxpdCgiO2Jhc2U2NCIpWzBdLnNwbGl0KCI6IilbMV07ZWxzZSBpZigiw7/DmMO/w6AiPT09YS50byg0KT9jLm1pbWU9ImltYWdlL2pwZWciOiLCiVBORyI9PT1hLnRvKDQpP2MubWltZT0iaW1hZ2UvcG5nIjovXjxcP3htbC8udGVzdChhKSYmLzxzdmdcc3ZlcnNpb25ccyo9XHMqIjFcLlxkIi8udGVzdChhKSYmKGMubWltZT0iaW1hZ2Uvc3ZnK3htbCIpLCFjLm1pbWUmJjM9PWMucGF0aC5sZW5ndGgmJiJfYXR0YWNobWVudHMiPT1jLnBhdGhbMV0pe3ZhciBnLGg9ImZpLXBhcGVyY2xpcCIsaT0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixqPWMucGF0aFsyXTtmb3IoZyBpbiBiLk1pbWUpYi5NaW1lW2ddLnRlc3QoaikmJihpPWcpO2ZvcihnIGluIGIuSWNvKWIuSWNvW2ddLnRlc3QoaikmJihoPWcpO2MubWltZT1pLGMuaWNvPWgsYy5mbmFtZT1qfWMubWltZT1jLm1pbWV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLGIuUlQoIkJsb2JzIilbYy5oYXNoXT1VUkwuY3JlYXRlT2JqZWN0VVJMKCQubXkuZi5iYXNlNjQyYmxvYihjLnZhbHVlLnJlcGxhY2UoL15kYXRhOmltYWdlXC8oanBlZ3xwbmd8Z2lmfHN2Z1wreG1sKTtiYXNlNjQsLywiIiksbnVsbCxjLm1pbWUpKX19fSwkbnVtYmVyOntpZDoiU3lzLkpTT04uTnVtYmVyIixDTToibnVtYmVyIixGOntOMlM6ZnVuY3Rpb24oeCl7dmFyIGE9JzxzcGFuIGNsYXNzPSJqdmFsLW51bWJlciI+Jyt4LnRvU3RyaW5nKCkrIjwvc3Bhbj4iO3JldHVybiB4PDFlMTMmJng+OGUxMSYmeD09PSgreCkuZmxvb3IoKSYmKGErPScgPHNwYW4gY2xhc3M9ImlsYWJlbCB4Z3JheSBsaDE0MCB2YXQgbXQ0Ij48c3BhbiBjbGFzcz0iZmktY2xvY2siPjwvc3Bhbj4gJytEYXRlLmNyZWF0ZSh4KS5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0sIHtIfTp7bW19Ontzc30sIExvY2FsIikrIjwvc3Bhbj4iKSxhfSxDYWxjOmZ1bmN0aW9uKHMscHJldil7aWYoIWlzTmFOKHMpKXJldHVybitzO3ZhciBuPW51bGw7dHJ5e249ZXZhbCgiKCIrcysiKSIpfWNhdGNoKHgpe31yZXR1cm4gbnVsbD09PW58fGlzTmFOKG4pP3ByZXY6K259fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO2IuSW5saW5lQ00oeCxiLGZ1bmN0aW9uKGEsZCl7Yy52YWx1ZT1iLkYuQ2FsYyhhLGQpLHgudHJpZ2dlcigiY2hlY2siKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz14LnZhbHVlKyIiO3JldHVybiA4Jnguc3RhdGUmJnRoaXMuUlQoIlNlYXJjaFJlIik/WyhiPWMucmVwbGFjZSh0aGlzLlJUKCJTZWFyY2hSZSIpLCLvv7EkMe+/sSIpLnNwbGl0KCLvv7EiKSlbMF0udHJ1bmNhdGUoMTQwLCJsZWZ0Iiwi4oCmIikuZXNjYXBlSFRNTCgpLCc8c3BhbiBjbGFzcz0ianZhbC1mb3VuZC1rZXkiPicrYlsxXS5lc2NhcGVIVE1MKCkrIjwvc3Bhbj4iLGJbMl0udHJ1bmNhdGUoMTQwLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKV0uam9pbigiIik6MT09eC5zdGF0ZXx8ND09eC5zdGF0ZT90aGlzLkYuTjJTKHgudmFsdWUpOihudWxsIT1hJiYoeC52YWx1ZT10aGlzLkYuQ2FsYyhhLHgudmFsdWUpKSx0aGlzLkYuTjJTKHgudmFsdWUpKX0sZXZlbnRzOiJpbnB1dC5teSJ9fX0sJGJvb2xlYW46e2lkOiJTeXMuSlNPTi5Cb29sZWFuIix1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgudmFsdWU9IXgudmFsdWUsdGhpcy5Ob2RlVXBkYXRlZChbeC5wYXRoLHgua2V5XSwheC52YWx1ZSx4LnZhbHVlKSksdGhpcy5WW3gudmFsdWU/MTowXX0sZXZlbnRzOiJjbGljay5teSJ9fSxWOlsnPHNwYW4gY2xhc3M9Imlib29sZWFuLXRhZyBncmF5IG1sLTkiPnRydWU8L3NwYW4+PHNwYW4gY2xhc3M9Imlib29sZWFuLXRhZyB5ZWxsb3ctMSBiZy15ZWxsb3c1Ij5mYWxzZTwvc3Bhbj4nLCc8c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIGJsdWUtMSBiZy1ibHVlNCBvODAgbWwtOSI+dHJ1ZTwvc3Bhbj48c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIGdyYXkiPmZhbHNlPC9zcGFuPiddfSwkbnVsbDp7aWQ6IlN5cy5KU09OLk51bGwiLHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybic8c3BhbiBjbGFzcz0icmVkIG84MCI+bnVsbDwvc3Bhbj4nfX19fSxzdGFtcDoxNjQyODYwNjE5MTc1fSwiY3cuQ291Y2guTW9uaXRvciI6e2lkOiJjdy5Db3VjaC5Nb25pdG9yIixidWlsZDo2NCxWZXJzaW9uOiIyLjEiLHBhcmFtczp7cmVzdHlsZTo0MCxzdHJpY3Q6ITB9LGRhdGE6e3NlYXJjaDoiIixjbWQ6IiIsZG9jOntuYW1lOiJVbm5hbWVkIG1lc2giLHR5cGU6ImNvdWNoc3RhdHMiLGNyeXB0bzoiLSIsbm9kZXM6W10sbG9nOltdfX0sQ29uZmlnOntzdGF0c1NjYWxlWToxLjUsc3RhdHNNYXhHcmFwaHM6NCxzdGF0c01heFRpbWVmcmFtZTo5MDAsc3RhdHNSZWZyZXNoOjEwLHNlcmllTWF4TGVuZ3RoOjFlNH0sQ2ZnOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQ29uZmlnfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5kYXRhLGEuZGF0YS5kb2MpO2lmKGEuTW91bnQoeCksYi5ub2Rlcy5sZW5ndGh8fGIubm9kZXMucHVzaCgkLmV4dGVuZCghMCx7fSxhLmRlZmF1bHROb2Rlc1siMS54Il0pKSxiLm5vZGVzLmZvckVhY2goYS5BcHBseVByZXNldHMpLFsiTm9kZSIsIlNlcmllIiwiR2F1Z2UiXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe1sic2VsZWN0MiIsIlJlcSJdLmZvckVhY2goZnVuY3Rpb24oYil7YVt4XVtiXT1hW2JdfSl9KSx4Lmh0bWwoYS5IVE1MKSx4LnRoZW4oZnVuY3Rpb24oKXthLlRpbWVyPWZ1bmN0aW9uKCl7JC5teS5yYWRpbygiY291Y2hfbW9uaXRvcl90aW1lciIsRGF0ZS5ub3coKSl9LmV2ZXJ5KDJlMyl9LmRlYm91bmNlKDEwMCkpLGN3LmxpYi5zY3JvbGxZJiZjdy5saWIuc2Nyb2xsWSh4KSwhY3cubWUoKSlyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCg0MDEsIllvdSBuZWVkIHRvIGxvZyBpbiB0byBzZWUgc3RhdHMiLHtvazohMSxyZWFzb246ImNvbmZpZyJ9KS5wcm9taXNlKCl9LHVpOnsiI21uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybih4LmRvYy5uYW1lfHwiVW50aXRsZWQgbW9uaXRvcmluZyBncm91cCIpLmVzY2FwZUhUTUwoKX19LCIjbm9kZXMiOntiaW5kOiJkb2Mubm9kZXMiLGxpc3Q6JzxkaXYgY2xhc3M9Im5ub2RlIj48L2Rpdj4nLGlkOlsibmFtZSJdLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLk5vZGV9LGNzczp7bm90aXRsZTpmdW5jdGlvbih4KXtyZXR1cm4geC5kb2Mubm9kZXMubGVuZ3RoPDJ9fX0sIiNidG4tdXBkYXRlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJiQubXkucmFkaW8oImNvdWNoX21vbml0b3JfcmVmcmVzaCIsITApfX19LGRpZTpmdW5jdGlvbigpe3RoaXMuVGltZXIuY2FuY2VsKCl9LHNlbGVjdDI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5zZWxlY3QyKGEpfSxBdXRvU2F2ZU5vZGU6ZnVuY3Rpb24oKXt9LExzOmZ1bmN0aW9uKCl7fSxNb3VudDpmdW5jdGlvbigpe30sSFRNTDonPGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgeGdyYXkgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxMnAgZnM5NSBtbDYgaGlkZSI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJTZWFyY2giIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7IiBvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi11cGRhdGUiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0iVXBkYXRlIj48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1uYW1lIiBjbGFzcz0iZGliIGZzMTgwIGxoMTIwIG10LTIgYm9sZGVyIHZhdCBudyBvaCBlbGwgcHI2IHBsNiIgc3R5bGU9IndpZHRoOmNhbGMoMzUlIC0gNDJweCk7Ij48L2Rpdj48ZGl2IGlkPSJtY29udHJvbHMiIGNsYXNzPSJmciBub2N3bWluIHRhciIgc3R5bGU9IndpZHRoOmNhbGMoNTMlIC0gNnB4KTsiPjxkaXYgY2xhc3M9ImZsIj48YnV0dG9uIGlkPSJidG4tYWRkIiBjbGFzcz0idGVhbCBtcjEwIHRhYyI+PHNwYW4gY2xhc3M9ImZpLXBsdXMgbzUwIj48L3NwYW4+IEFkZC4uLjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzYwcCB0YWwiIHN0eWxlPSJtYXgtd2lkdGg6MjUwcHg7Ij48aW5wdXQgaWQ9ImVuY3J5cHQiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQgcHIyIj48L2Rpdj48YnV0dG9uIGlkPSJidG4tc2F2ZSIgY2xhc3M9ImdyZWVuIG1yMiB0YWMiPsKgU2F2ZcKgPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNsb3NlIiBjbGFzcz0idGFjIj7CoENsb3NlwqA8L2J1dHRvbj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0ibm9kZS10aWxlcyIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgZmVhdGhlciB3MTAwcCI+PGRpdiBpZD0ibm9kZXMiIGNsYXNzPSJubm9kZXMgeGdyYXkgdzEwMHAgcGFuZWxoZWlnaHQiPjwvZGl2Pjwvc2VjdGlvbj4nLFByZXNldHM6e1JQUzp7bmFtZToiUmVxdWVzdCByYXRlIixtb2RlOiJzdW0iLG5hbWVzOlsiUmVxdWVzdCByYXRlIiwiMjBYIiwiNDBYIiwiNTAwIl0sdW5pdHM6WyJyZXEvcyIsInJlcSIsInJlcSIsInJlcSJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg1MCwyMDksMCwwLjY5KSIsIiByZ2JhKDI1NSwxMjMsMCwwLjY5KSIsIiByZ2JhKDIyOSwwLDIzNSwwLjY5KSJdLGZpZWxkczpbWyIyMDAiLCIyMDEiLCIyMDIiLCI0MDAiLCI0MDEiLCI0MDMiLCI0MDQiLCI0MDkiLCI1MDAiXSxbIjIwMCIsIjIwMSIsIjIwMiJdLFsiNDAwIiwiNDAxIiwiNDAzIiwiNDA0IiwiNDA5Il0sWyI1MDAiXV0scm93czpbWzBdLFswXSxbMF0sWzBdXSx0aW1lOlsxMF19LERCUlc6e25hbWU6IkRCcyByZWFkcy93cml0ZXMgcmF0ZSIsbW9kZToic3VtIixuYW1lczpbIlJXIHJhdGUiLCJSZWFkcyIsIldyaXRlcyIsIlZpZXcgcmVhZHMiXSx1bml0czpbIkRCIG9wcy9zIiwib3BzIiwib3BzIiwib3BzIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDM1LDEzNywyNTUsMC41OCkiLCIgcmdiYSgyNTUsMzgsMTE3LDAuNTgpIiwiIHJnYmEoMjU1LDE5NSwwLDAuOCkiXSxmaWVsZHM6W1siZGF0YWJhc2VfcmVhZHMiLCJkYXRhYmFzZV93cml0ZXMiXSxbImRhdGFiYXNlX3JlYWRzIl0sWyJkYXRhYmFzZV93cml0ZXMiXSxbInZpZXdfcmVhZHMiXV0scm93czpbWzBdLFswXSxbMF1dLHRpbWU6WzEwXX0sQVVUSDp7bmFtZToiQXV0aCBoaXRzIGFuZCBtaXNzZXMiLG1vZGU6InN1bSIsbmFtZXM6WyJBdXRoIGhpdHMvbWlzc2VzIHJwcyIsIkhpdHMiLCJNaXNzZXMiXSx1bml0czpbImF1dGggcnBzIiwicmVxIiwicmVxIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDIwLDIzMiwwLDAuNjkpIiwiIHJnYmEoMjU1LDM4LDM4LDAuNjkpIl0sZmllbGRzOltbImF1dGhfY2FjaGVfaGl0cyIsImF1dGhfY2FjaGVfbWlzc2VzIl0sWyJhdXRoX2NhY2hlX2hpdHMiXSxbImF1dGhfY2FjaGVfbWlzc2VzIl1dLHJvd3M6W1swXSxbMF0sWzBdXSx0aW1lOlsxMF19LEZFRURTOntuYW1lOiJOdW1iZXIgb2YgY29udGludW91cyBfY2hhbmdlcyBmZWVkcyBhY3RpdmUiLG5hbWVzOlsiQ29udGludW91cyBfY2hhbmdlcyBmZWVkcyIsIkZlZWRzIl0sdW5pdHM6WyJzeW5jIGZlZWRzIiwiIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDg2LDEyMywxNzIsMC42MikiXSxmaWVsZHM6W1siY2xpZW50c19yZXF1ZXN0aW5nX2NoYW5nZXMiXSxbImNsaWVudHNfcmVxdWVzdGluZ19jaGFuZ2VzIl1dLHJvd3M6W1swXSxbMF1dLHRpbWU6WzEwXSxtb2RlOiJjdXJyZW50In0sRklMRVM6e25hbWU6Ik9wZW4gT1MgZmlsZXMiLG5hbWVzOlsiRmlsZXMiLCJGaWxlcyJdLHVuaXRzOlsib3BlbiBmaWxlcyIsIiJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg4NiwxMjMsMTcyLDAuNjIpIl0sZmllbGRzOltbIm9wZW5fb3NfZmlsZXMiXSxbIm9wZW5fb3NfZmlsZXMiXV0scm93czpbWzBdLFswXV0sdGltZTpbMTBdLG1vZGU6ImN1cnJlbnQifSxSQU06e25hbWU6IlJBTSIsbmFtZXM6WyJSQU0sIE1iIiwiTm9kZSBSQU0sIE1iIl0sdW5pdHM6WyJNYiBSQU0iLCJNYiJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg2MywxNjksMTU4LDAuNjIpIl0sZGVub21pbmF0b3I6MTA0ODU3NixmaWVsZHM6W1siYXRvbSIsImJpbmFyeSIsImNvZGUiLCJldHMiLCJvdGhlciIsInByb2Nlc3NlcyJdLFsiYXRvbSIsImJpbmFyeSIsImNvZGUiLCJldHMiLCJvdGhlciIsInByb2Nlc3NlcyJdXSxyb3dzOltbMF0sWzBdXSx0aW1lOlsxMF0sbW9kZToiY3VycmVudCJ9LFVQVElNRTp7bmFtZToiVXB0aW1lIixuYW1lczpbIlVwdGltZSwgZGF5cyIsIkRheXMiXSx1bml0czpbImRheXMgdXB0aW1lIiwiZGF5cyJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg2MywxNjksMTU4LDAuNjIpIl0sZGVub21pbmF0b3I6ODY0MDAsZmllbGRzOltbInVwdGltZSJdLFsidXB0aW1lIl1dLHJvd3M6W1swXSxbMF1dLHRpbWU6WzEwXSxtb2RlOiJjdXJyZW50In19LGRlZmF1bHROb2Rlczp7IjEueCI6e25hbWU6Ik5vZGUgMSIsY291Y2g6IjEueCIsdXJsOiIvIixoZWFsdGg6IiIsZ2F1Z2VzOlt7bmFtZToiT3BlbiBmaWxlcyIscHJlc2V0OiJGSUxFUyJ9LHtuYW1lOiJBY3RpdmUgX2NoYW5nZXMgZmVlZHMiLHByZXNldDoiRkVFRFMifV0sc2VyaWVzOlt7bmFtZToiUmVxdWVzdCByYXRlIixwcmVzZXQ6IlJQUyJ9LHtuYW1lOiJEQnMgUi9XIHJhdGUiLHByZXNldDoiREJSVyJ9XX0sIjIueCI6e25hbWU6Ik5vZGUgMSIsY291Y2g6IjIueCIsdXJsOiIvIixoZWFsdGg6IiIsZ2F1Z2VzOlt7bmFtZToiT3BlbiBmaWxlcyIscHJlc2V0OiJGSUxFUyJ9LHtuYW1lOiJBY3RpdmUgX2NoYW5nZXMgZmVlZHMiLHByZXNldDoiRkVFRFMifSx7bmFtZToiVXB0aW1lIixwcmVzZXQ6IlVQVElNRSJ9XSxzZXJpZXM6W3tuYW1lOiJSZXF1ZXN0IHJhdGUiLHByZXNldDoiUlBTIn0se25hbWU6IkRCcyBSL1cgcmF0ZSIscHJlc2V0OiJEQlJXIn0se25hbWU6IlJBTSIscHJlc2V0OiJSQU0ifV19fSxSZXE6ZnVuY3Rpb24oeCl7dmFyIGE9JC5leHRlbmQoITAse30seCk7cmV0dXJuICQuYWpheChhKX0sQXBwbHlQcmVzZXRzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuUHJlc2V0cyxiPU9iamVjdC5pc0FycmF5O3JldHVybih4LnNlcmllc3x8W10pLmZvckVhY2goYyksKHguZ2F1Z2VzfHxbXSkuZm9yRWFjaChjKSx4O2Z1bmN0aW9uIGMoYyl7aWYoYy5wcmVzZXQmJmFbYy5wcmVzZXRdKXt2YXIgZD1hW2MucHJlc2V0XSxlPU9iamVjdC5zZWxlY3QoYyxbInJvd3MiLCJ0aW1lIl0pO3JldHVybiAkLmV4dGVuZChjLE9iamVjdC5jbG9uZShkLCEwKSxlKSxiKGMucm93cykmJmIoYy50aW1lKXx8KGMucm93cz1PYmplY3QuY2xvbmUoZC5yb3dzLCEwKSxjLnRpbWU9WzEwXSksYy5yb3dzLmxlbmd0aDxjLmZpZWxkcy5sZW5ndGgmJihjLnJvd3M9Yy5yb3dzLmFkZChPYmplY3QuY2xvbmUoZC5yb3dzLCEwKSkudG8oYy5maWVsZHMubGVuZ3RoKSkseH19fSxHZW5BeGlzOmZ1bmN0aW9uKHgpe3ZhciBhPXguQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsYj02MCp4LkNmZygpLnN0YXRzU2NhbGVZLGM9eC5ULlBpdm90WCxkPXguVC5QaXZvdFksZT14LlQuUGl2b3RUZXh0LGY9W10sZz1bXTtyZXR1cm4geC5BeGlzLmg2MD09Yj94LkF4aXM6KDcuLnRpbWVzKGZ1bmN0aW9uKHgpe2YudW5zaGlmdChjLmFzc2lnbigiTTAsezJ9IEx7MX0sezJ9ICIuYXNzaWduKGErMjAwLHgqKGIvNikrLjUpLCIgcmdiYSgxNTgsMTc0LDE5MiwiKyh4PzY9PXg/IjAuNCkiOiIwLjE1KSI6IjAuMjUpIikpKX0pLChhLzYwKS50aW1lcyhmdW5jdGlvbih4KXt2YXIgYT14KzE7Zy51bnNoaWZ0KGQuYXNzaWduKCJNezF9LDAgTHsxfSx7Mn0gIi5hc3NpZ24oNjAqYSxiKSwiIHJnYmEoMTU4LDE3NCwxOTIsMC4zNSkiKStlLmFzc2lnbig2MCphKzIsIuKIkiIrYSsibWluIikpfSkseC5BeGlzPXtoNjA6YixheGlzeDpmWzBdLHBpdm90c3g6Zi5zbGljZSgxKS5qb2luKCIiKSxwaXZvdHN5Omcuam9pbigiIil9KX0sR2VuR3JhcGhzOmZ1bmN0aW9uKHgpe3ZhciBhPXguZGF0YSxiPXguaEJhcixjPXguQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsZD14LkNmZygpLnN0YXRzTWF4R3JhcGhzLGU9eC5DZmcoKS5zdGF0c1NjYWxlWSxmPTYwKmUsZz1hLmZpZWxkcy5sZW5ndGgsaD1hLnJvd3Muc2xpY2UoMCksaT1hLnRpbWUuc2xpY2UoMSksaj1hLmNvbG9ycyxrPWEubmFtZXMsbD1hLnVuaXRzLG09YS5kZW5vbWluYXRvcnx8MSxuPWEudGltZVswXS8xMCxvPXguQXhpcyxwPW8uYXhpc3gscT1vLnBpdm90c3gscj1vLnBpdm90c3kscz14LlQuQmFyLHQ9eC5ULkdyYXBoLHU9eC5ULkxpbmUsdj14LlQuQmFyVGlwLHc9W107RSgpLGkubGVuZ3RoLnRpbWVzKGZ1bmN0aW9uKHgpe3ZhciBqPWlbeF0vMTAsbz0xLHA9W107aWYobi09aixqPmMpe2lmKHcubGVuZ3RoPj1kKXJldHVybjt2YXIgcT1FKG4saik7bz1xL2osaj1xfWcudGltZXMoZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGc9aFtkXVt4KzFdfHwwLGk9d1swXS5saW5lc1tkXSxrPXdbMF0uZHQsbD13WzBdLmR4O2lmKHAucHVzaChnKSwhKGwraz4yKmMrMjAwKSl7dmFyIG49ImN1cnJlbnQiPT1hLm1vZGU/ZisuNS1iKGcqby9tLDEpKmU6ZisxLWIoZypvL20saikqZSouOTkxODtpKz1pPyJMezF9LHszfSBMezJ9LHszfSAiLmFzc2lnbihEKGwraysoai8zKS5jbGFtcCgwLDMpKSxEKGwraytqKSxuKToiTXsxfSx7M30gTHsyfSx7M30gIi5hc3NpZ24oRChsKSxEKGwraytqKSxuKSx3WzBdLmxpbmVzW2RdPWl9fX0pLHdbMF0uZHQrPWosd1swXS5jb3ZlcnMrPXMuYXNzaWduKCIiLGosdi5hc3NpZ24oe3RpbWU6RGF0ZS5jcmVhdGUoMWUzKihuK2opKS5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0sIHtISH06e21tfTp7c3N9IiksZHVyOiJEdXJhdGlvbjogIitqLnJvdW5kKDEpKyJzIixyb3dzOnAubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGtbYSsxXSsiOiAiKyhvKngvbSkucm91bmQoMSkrIiAiK2xbYSsxXX0pLmpvaW4oIlxuIil9KSl9KSx3LnJldmVyc2UoKTt2YXIgeT14Lm15LnJvb3QoKS53aWR0aCgpfHwwLHo9KHk+MD8oeS0xMDAtNDEpLmNsYW1wKDMwMCwzZTMpOnguUHJldldpZHRoKXx8MzAwLEE9Ryh3WzBdLmR0KSxCPXdbMV0/d1sxXS5kdDowLEM9d1syXT93WzJdLmR0OjA7cmV0dXJuIHguUHJldldpZHRoPXosd1swXS53aWR0aD16LHo8NDUwP3cubGVuZ3RoPTE6ejw3MjA/Qj8oQj1CLmNsYW1wKDE1MCx6LzMpLHdbMF0ud2lkdGg9QT0oei1CKS5jbGFtcCgzMDAsMWU2KSx3WzFdLndpZHRoPXotQS0zMSx3Lmxlbmd0aD0yKTp3Lmxlbmd0aD0xOkImJiFDPyhCPUcoQi5jbGFtcCgxMjAsei8zKSksd1swXS53aWR0aD1BPSh6LUIpLmNsYW1wKDMwMCwxZTYpLHdbMV0ud2lkdGg9ei1BLTMxLHcubGVuZ3RoPTIpOkM/KHdbMV0ud2lkdGg9Qj1CLmNsYW1wKDEyMCx6LzMuNS0zMSksd1syXS53aWR0aD1DPUMuY2xhbXAoMTIwLHovMS44LUItNjEpLHdbMF0ud2lkdGg9ei1CLUMtNjEsdy5sZW5ndGg9Myk6dy5sZW5ndGg9MSx3LmZvckVhY2goRiksdztmdW5jdGlvbiBEKHgpe3JldHVybiB4LmNsYW1wKC1jLTIwMCxjKzIwMCkucm91bmQoMil9ZnVuY3Rpb24gRSh4LGEpe3ZhciBiPXtlbmQ6IiIsd2lkdGg6MCxkeDowLGR0OjAsbGluZXM6WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiXS50byhnKSxjb3ZlcnM6IiIsc3ZnOiIifSxjPTA7aWYoeCl7dmFyIGQ9RGF0ZS5jcmVhdGUoTWF0aC5yb3VuZCgxZTMqeCkpLmNsb25lKCEwKS5jbG9uZSghMCk7ZC5zZXRNaWxsaXNlY29uZHMoMCksZC5zZXRTZWNvbmRzKDApLGQuYWRkTWludXRlcygxKSxNYXRoLmFicyh4LWQudmFsdWVPZigpLzFlMyk8NSYmZC5hZGRNaW51dGVzKDEpLGM9TWF0aC5yb3VuZChkLnZhbHVlT2YoKS8xMDApLzEwLXgsYi5lbmQ9ZC5mb3JtYXQoJ3tISH06e21tfTxicj48c3BhbiBjbGFzcz0iZnM4MCBvNzAiPnt5eXl5fcK3e01NfcK3e2RkfTwvc3Bhbj4nKX1yZXR1cm4gdy51bnNoaWZ0KGIpLGN8fGF9ZnVuY3Rpb24gRih4LGEpe3guc3ZnPXQuYXNzaWduKHgud2lkdGgtMSxmKzEscSsoYT9yOiIiKSt4LmxpbmVzLm1hcChmdW5jdGlvbih4LGEpe3JldHVybiBhP3UuYXNzaWduKHgsalthXSk6IiJ9KS5qb2luKCIiKStwKX1mdW5jdGlvbiBHKHgpe3JldHVybiA2MCooTWF0aC5mbG9vcih4LzYwKSsxKX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjEuNGVtOyIsIiAjbm9kZS10aWxlcyI6IiIsIiAudzEycCI6IndpZHRoOjEyJTsiLCIgLncxOHAiOiJ3aWR0aDoxOCU7IiwiIC5ubm9kZXMiOnsiIjoicGFkZGluZzoxNnB4IDRweCAwcHggMHB4OyIsIiAubm5vZGUiOnsiIjpbImJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMjE5LDIzNCwwKTsgYm9yZGVyLXJhZGl1czogM3B4OyAiLCJwYWRkaW5nOjJweCAxNXB4IDEwcHggMTVweDsgbWFyZ2luOiAwcHggMTZweCAxNnB4IDA7YmFja2dyb3VuZDojZjRmOGZhOyJdLCIgLm5zZXJpZXMiOiJ3aWR0aDogY2FsYygxMDAlIC0gMTEwcHgpOyIsIiAubnRpdGxlIjoiYm9yZGVyLWJvdHRvbToxcHggZG90dGVkIHJnYmEoMTYwLDE3NiwxOTIsMC41Nik7IiwiIC5wYWxlYmciOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIiAuZ3VuaXRzIjoiZm9udC1zaXplOjEwNSU7IGxpbmUtaGVpZ2h0OjEuMmVtOyIsIiAuZ3ZhbCI6ImZvbnQtc2l6ZToxODAlOyBsaW5lLWhlaWdodDoxZW07IiwiIC5nbmFtZXMiOnsiIjoib3BhY2l0eTogMC4zOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IGZvbnQtc2l6ZTowLjdlbTsgbGluZS1oZWlnaHQ6MS4xNWVtOyBmb250LXdlaWdodDo1MDA7IiwiPnNwYW4iOiIgd2hpdGUtc3BhY2U6IG5vd3JhcDsifSwiLnJlZDEiOnsiIC5yaGlzdG8gLnJzaGltIjoiYm9yZGVyLWJvdHRvbToxcHggZG90dGVkICNmZjcxODA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTI3LDEyOSwwLjIpOyIsIiAucmhpc3RvIC5yc2hpbT5kaXYiOiJib3JkZXItdG9wOjFweCBkb3R0ZWQgcmdiYSgyNTUsMTI3LDEyOSwwLjcpOyJ9fSwiLm5vdGl0bGUiOnsiIC5udGl0bGUiOiJkaXNwbGF5Om5vbmU7IiwiIC5ubm9kZSI6InBhZGRpbmctdG9wOjhweDsifX0sIiAucmdhdWdlIjpmdW5jdGlvbigpe3ZhciB4PTYwKnRoaXMuQ2ZnKCkuc3RhdHNTY2FsZVk7cmV0dXJueyIiOiJkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLXRvcDogNXB4OyBoZWlnaHQ6ezF9cHg7ICIuYXNzaWduKHgrMTYpLCI6YWZ0ZXIiOlsnY29udGVudDoiIjsgaGVpZ2h0OnsxfXB4OyB3aWR0aDoxcHg7IHRvcDo4cHg7IHJpZ2h0OjBweDsnLmFzc2lnbih4KzQpLCJwb3NpdGlvbjphYnNvbHV0ZTsgYm9yZGVyLXJpZ2h0OjFweCBkb3R0ZWQgcmdiYSgxNjAsMTc2LDE5MiwwLjU2KTsgIl19fSwiIC5yc2VyaWUiOnsiIjpmdW5jdGlvbigpe3ZhciB4PTYwKnRoaXMuQ2ZnKCkuc3RhdHNTY2FsZVk7cmV0dXJuImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IHBhZGRpbmctdG9wOiA1cHg7IGhlaWdodDp7MX1weDsgb3ZlcmZsb3c6aGlkZGVuOyIuYXNzaWduKHgrMTYpfSwiOmhvdmVyIjp7IiAuZ25hbWVzIjoib3BhY2l0eToxOyIsIiAucGFsZWJnIjoiYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyJ9LCIgLnJoaXN0byI6ZnVuY3Rpb24oKXt2YXIgeD02MCp0aGlzLkNmZygpLnN0YXRzU2NhbGVZfDA7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoeyIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAxMDBweCk7IHBhZGRpbmctdG9wOjVweDsgZm9udC13ZWlnaHQ6NDAwOyIsIiAucnNjYWxlIjp7IiI6IndpZHRoOjQwcHg7IGhlaWdodDp7aDYxfXB4OyBmb250LXdlaWdodDo0MDA7IGNvbG9yOiAjODA5MGEwOyIsIj5kaXYiOiJ3aWR0aDoxMDAlOyBoZWlnaHQ6e2gxMH1weDsgZm9udC1zaXplOjlweDsgbGluZS1oZWlnaHQ6Ny4ycHg7IHBhZGRpbmctcmlnaHQ6NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBvdmVyZmxvdzpoaWRkZW47IiwiPmRpdjpmaXJzdC1jaGlsZCI6Im1hcmdpbi10b3A6LTJweDsiLCI+ZGl2OmFmdGVyIjonY29udGVudDoiICI7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyByaWdodDowOyB3aWR0aDoycHg7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXRvcDoxcHggc29saWQgI2EwYjBjMDsnfSwiIC5yc2hpbSI6eyIiOiJoZWlnaHQ6e2g2MX1weDsgd2lkdGg6MDsgYm9yZGVyLWJvdHRvbToxcHggZG90dGVkICNhMGIwYzA7IG92ZXJmbG93OmhpZGRlbjsiLCI+ZGl2IjoiaGVpZ2h0OntoMTB9cHg7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDE2MCwxNzYsMTkyLDAuMzcpOyJ9LCIgLnJ2YWx1ZXMiOnsiIjoieHdpZHRoOmNhbGMoMTAwJSAtIDQxcHgpOyB3aWR0aDphdXRvOyBoZWlnaHQ6e2g2MX1weDtvdmVyZmxvdzpoaWRkZW47IGNvbG9yOiAjODA5MGEwOyIsIiAucmJhcnMiOnsiPi5yYmFyIjp7IiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OntoNjB9cHg7IiwiPmRpdiI6InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MDsgbGVmdDowOyB3aWR0aDoxMDAlOyJ9LCIgLnJjb3ZlciI6eyIiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgei1pbmRleDorMjsiLCI+LnJiYXIiOnsiIjpbImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG92ZXJmbG93OmhpZGRlbjsiLCJoZWlnaHQ6e2g2MX1weDsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMTkzLDM5LDApOyJdLCI6aG92ZXIiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwxOTMsMzksMC40Myk7In19fSwiIC54cnN2ZyI6eyIiOiJib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDE2MCwxNzYsMTkyLDAuMzcpOyJ9LCIgLnJ0aW1lIjoicG9zaXRpb246YWJzb2x1dGU7IHRvcDotMXB4OyBsZWZ0OjJweDsgZm9udC1zaXplOjEwcHg7IGxpbmUtaGVpZ2h0OjE1cHg7IGNvbG9yOnJnYmEoMTYwLDE3NiwxOTIsMC44MSk7In0sIiAucmJvdW5kcyI6ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE2MCwxNzYsMTkyLDAuNCk7IGJvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgxNjAsMTc2LDE5MiwwLjQpOyIsIiB0c3BhbiI6ImZpbGw6cmdiYSgxNjAsMTc2LDE5MiwwLjgxKTsiLCIgI3RhaWwgLnJncmFwaCI6Im1heC13aWR0aDo2MDBweDsgb3ZlcmZsb3c6aGlkZGVuOyIsIiAjeWF4aXMiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgei1pbmRleDorMTsifSkuYXNzaWduKHtoMTA6eC82LGg2MDp4LGg2MTp4KzEsaDYyOngrMixoNjM6eCszfSkpfX0sIiAuYXBwLWhlYWQiOnsiIjoiZGlzcGxheTogYmxvY2s7IGhlaWdodDogNTJweDsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7In19LE5vZGU6e2lkOiJjdy5Db3VjaC5Nb25pdG9yLk5vZGUiLHBhcmFtczp7cmVzdHlsZTo1MH0saW5oZXJpdDpbIlNlcmllIiwiR2F1Z2UiLCJDZmciLCJHZW5HcmFwaHMiLCJHZW5BeGlzIiwiQXV0b1NhdmVOb2RlIl0sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sZGF0YTp7bmFtZToiTm9kZSIsaGVhbHRoOiIiLHVybDoiLyIsc2VyaWVzOltdLGdhdWdlczpbXX0sUGVuZGluZzpudWxsLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLmRhdGEsYS5DZmcoKS5zdGF0c1JlZnJlc2gpO3JldHVybiB4Lmh0bWwoYS5IVE1MKSx4LnRoZW4oZnVuY3Rpb24oKXthLkdldFN0YXRzLmRlYm91bmNlKDFlMykoKSxhLkdldFN0YXRzLmRlYm91bmNlKDFlMypiLzMpKCksYS5UaW1lcj1mdW5jdGlvbigpe2EuR2V0U3RhdHMoKX0uZXZlcnkoMWUzKmIpfS5kZWJvdW5jZSgxKSksYS5HZXRTdGF0cyghMCl9LHVpOnsiI25uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiB4Lm5hbWUuc3BsaXQoIkAiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZXNjYXBlSFRNTCgpfSkuam9pbignPHNwYW4gY2xhc3M9Im82MCBwbDIgcHIyIj5APC9zcGFuPicpfSxjc3M6e3JlZDpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLm15LnJvb3QoKS50b2dnbGVDbGFzcygicmVkMSIsISF4LmhlYWx0aCksITF9fX0sIiNuc2VyaWVzIjp7YmluZDoic2VyaWVzIixoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC5yb3dzLHgudGltZV0pfSxsaXN0Oic8ZGl2IGNsYXNzPSJyc2VyaWUiPjwvZGl2PicsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuU2VyaWV9fSwiI25nYXVnZXMiOntiaW5kOiJnYXVnZXMiLGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LnJvd3MseC50aW1lXSl9LGxpc3Q6JzxkaXYgY2xhc3M9InJnYXVnZSI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5HYXVnZX19LCIjbnByb3h5Ijp7YmluZDpmdW5jdGlvbigpe30sbGlzdGVuOntjb3VjaF9tb25pdG9yX3JlZnJlc2g6ZnVuY3Rpb24oeCxhKXt0aGlzLkdldFN0YXRzKCl9LGNvdWNoX21vbml0b3JfY2ZnX2NoYW5nZTpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7Yi5UaW1lci5jYW5jZWwoKSxiLlRpbWVyPWZ1bmN0aW9uKCl7Yi5HZXRTdGF0cygpfS5ldmVyeSgxZTMqYi5DZmcoKS5zdGF0c1JlZnJlc2gpLGIuR2V0U3RhdHMoKX19fX0sZGllOmZ1bmN0aW9uKCl7dGhpcy5UaW1lci5jYW5jZWwoKX0sSFRNTDonPGRpdiBjbGFzcz0ibnRpdGxlIHBiNSBtYjUiPjxkaXYgaWQ9Im5uYW1lIiBjbGFzcz0ibm5hbWUgZnMxNjAgbGgxNDAgcHQyIGJvbGRlciI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmdhdWdlcyIgY2xhc3M9Im5nYXVnZXMgdzExMCBkaWIgdmF0Ij48L2Rpdj48ZGl2IGlkPSJuc2VyaWVzIiBjbGFzcz0ibnNlcmllcyBkaWIgdmF0Ij48L2Rpdj48ZGl2IGlkPSJucHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLEdldFN0YXRzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1jdy5saWIubWFzayxkPSQuRGVmZXJyZWQoKSxlPU9iamVjdC5pc09iamVjdCxmPU9iamVjdC5pc051bWJlcixnPXt9O2lmKGEuUGVuZGluZylyZXR1cm4gYS5QZW5kaW5nO3ZhciBoPVtdLGk9IiIsaj05MDAqYS5DZmcoKS5zdGF0c1JlZnJlc2gsaz1iLmNvdWNoPCIyLiI/WyJfc3RhdHMiXTpbIl9zdGF0cyIsIl9zeXN0ZW0iXTtyZXR1cm4gYi5jb3VjaD49IjIuIiYmIS9cL19ub2RlLy50ZXN0KGIudXJsKSYmKGk9Il9ub2RlL19sb2NhbC8iKSxiLmhlYWx0aD0iIixrLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9O2IuYmFzaWMmJihjLkF1dGhvcml6YXRpb249IkJhc2ljICIrYi5iYXNpYyksaC5wdXNoKGEuUmVxKHt1cmw6Yi51cmwrKCIvIiE9Yi51cmwuc3Vic3RyKC0xKT8iLyI6IiIpK2kreCxtZXRob2Q6ImdldCIsZGF0YVR5cGU6Impzb24iLGhlYWRlcnM6Yyx0aW1lb3V0Omp9KS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKGcsbCh4KSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxjKXtiLmhlYWx0aD1jKyIifSkpfSksYS5QZW5kaW5nPVEuYWxsU2V0dGxlZChoKS50aGVuKGZ1bmN0aW9uKCl7Yi5oZWFsdGh8fG0oZykseHx8KGEubXkuZmluZCgiI25zZXJpZXMiKS50cmlnZ2VyKCJyZWNhbGMiKSxhLm15LmZpbmQoIiNuZ2F1Z2VzIikudHJpZ2dlcigicmVjYWxjIikpO3RyeXthLkF1dG9TYXZlTm9kZShiKX1jYXRjaCh4KXt9fSkuZmluYWxseShmdW5jdGlvbigpe2EuUGVuZGluZz1udWxsLHh8fGEubXkuZmluZCgiI25uYW1lIikudHJpZ2dlcigiY2hlY2siKSxkLnJlc29sdmUoKX0pLGEuUGVuZGluZztmdW5jdGlvbiBsKHgpe3ZhciBhPXt9O3JldHVybiB4Lm1lbW9yeSYmeC51cHRpbWU/SlNPTi5zdHJpbmdpZnkoeCxmdW5jdGlvbih4LGIpe3JldHVybiBmKGIpJiYoYVt4XT1iKSxifSk6SlNPTi5zdHJpbmdpZnkoeCxmdW5jdGlvbih4LGIpe3JldHVybiBlKGIpJiYoZihiLnN1bSl8fGYoYi52YWx1ZSkpJiYoYVt4XT1iLnN1bXx8Yi52YWx1ZXx8MCksYn0pLGF9ZnVuY3Rpb24gbSh4KXt2YXIgZD1hLkNmZygpLnNlcmllTWF4TGVuZ3RoO2Z1bmN0aW9uIGUoYSxiKXt2YXIgZT1NYXRoLnJvdW5kKERhdGUubm93KCkvMTAwKTthLnRpbWVbMF09ZS1hLnRpbWVbMF0sYS50aW1lLnVuc2hpZnQoZSksYS5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihiLGQpe3ZhciBlPWMoeCxiKS5zdW0oKXx8MDsiY3VycmVudCIhPWEubW9kZSYmKGEucm93c1tkXVswXT1lLWEucm93c1tkXVswXSksYS5yb3dzW2RdLnVuc2hpZnQoZSksMj09YS50aW1lLmxlbmd0aCYmKGEucm93c1tkXVsxXT0wKX0pLGEucm93c1swXS5sZW5ndGg+MTAmJihhLnJvd3NbMF0ubGVuZ3RoPTEwKSwyPT1hLnRpbWUubGVuZ3RoPyhhLnRpbWVbMV09MzAsYS5maWVsZHMuZm9yRWFjaChmdW5jdGlvbih4LGIpe2Eucm93c1tiXVsxXT0wfSkpOmEudGltZS5sZW5ndGg+ZCYmKGEudGltZS5sZW5ndGg9ZCxhLnJvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3gubGVuZ3RoPmQmJih4Lmxlbmd0aD1kKX0pKX1iLnNlcmllcy5mb3JFYWNoKGUpLGIuZ2F1Z2VzLmZvckVhY2goZSl9fX0sU2VyaWU6e2lkOiJjdy5Db3VjaC5Nb25pdG9yLlNlcmllIixwYXJhbXM6e3Jlc3R5bGU6NjB9LGluaGVyaXQ6WyJDZmciLCJHZW5HcmFwaHMiLCJHZW5BeGlzIl0sZGF0YTp7bmFtZToiUm93IixkZW5vbWluYXRvcjoxLG5hbWVzOltdLGNvbG9yczpbXSxmaWVsZHM6W10scm93czpbXSx0aW1lOltdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2EuR2VuQXhpcyhhKSx4Lmh0bWwoYS5IVE1MKX0sdWk6eyIuZ3ZhbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0wO3JldHVybiBiPSJjdXJyZW50Ij09eC5tb2RlPyt4LnJvd3NbMF1bMF18fDA6eC50aW1lWzFdPzEwKigreC5yb3dzWzBdWzFdfHwwKS94LnRpbWVbMV06MCwoYi89eC5kZW5vbWluYXRvcnx8MSk8MT9iLnJvdW5kKDIpKyIiOmI+OTkmJmI8MWU0PygwfGIpKyIiOmIucm91bmQoMSkubWV0cmljKDMsMykucmVwbGFjZSgvKFxkXGRcZD9cLlxkKVxkezEsMn0vLCIkMSIpfSx3YXRjaDoiI3ByaW1lIn0sIi5ndW5pdHMiOntiaW5kOiJ1bml0cy4wIn0sIi5yc2hpbSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEpe3ZhciBjPU1hdGgucm91bmQoRGF0ZS5ub3coKS8xZTMteC50aW1lWzBdLzEwKTtiLmNzcyh7d2lkdGg6YysicHgifSl9fSxsaXN0ZW46e2NvdWNoX21vbml0b3JfdGltZXI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hMH19fSwiI3lheGlzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLkdlbkF4aXMoYik7aWYobnVsbD09YSlyZXR1cm4gYi5ULkdyYXBoLmFzc2lnbihiLkNmZygpLnN0YXRzTWF4VGltZWZyYW1lLDYwKmIuQ2ZnKCkuc3RhdHNTY2FsZVksYy5waXZvdHN5KX0sd2F0Y2g6IiNwcmltZSJ9LCIuZ25hbWVzIjpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lcy5zbGljZSgxKS5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4nPHNwYW4gc3R5bGU9ImNvbG9yOnsyfSI+ezF9PC9zcGFuPicuYXNzaWduKGEseC5jb2xvcnNbYisxXSl9KS5qb2luKCIgIil9LCIjcHJpbWUiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpcyxjPShiLkdlbkF4aXMoYiksYi5HZW5HcmFwaHMoYikpLGQ9Yi5ULlRhaWxHcmFwaCxlPWIuQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsZj0nezF9PGRpdiBjbGFzcz0icmNvdmVyIj57Mn08L2Rpdj4nO3JldHVybiBiLm15LmZpbmQoIiN0YWlsIikuaHRtbChjLnNsaWNlKDEpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gZC5hc3NpZ24oZi5hc3NpZ24oeC5zdmcseC5jb3ZlcnMpLHguZW5kKX0pLmpvaW4oIiIpKSxiLm15LmZpbmQoIiN0aWNraW5nIikuY3NzKHt3aWR0aDpjWzBdLndpZHRoLmNsYW1wKDMwMSxlKzEpKyJweCJ9KSxmLmFzc2lnbihjWzBdLnN2ZyxjWzBdLmNvdmVycyl9fX19LGhCYXI6ZnVuY3Rpb24oeCxhKXt2YXIgYj0oK3h8fDApLmNsYW1wKDAsMWU1MyksYz0oK2F8fDApLmNsYW1wKDEsMWU1Myk7cmV0dXJuKDEwKk1hdGgubG9nMTAoMSsxMCpiL2MpKS5jbGFtcCgwLDYxKS5yb3VuZCgxKX0sSFRNTDonPGRpdiBjbGFzcz0iZ2Jsb2NrIGRpYiB2YXQgdzEwMCI+PGRpdiBjbGFzcz0iZ3ZhbCB0YXIgbzgwIG10LTEiPjwvZGl2PjxkaXYgY2xhc3M9Imd1bml0cyB0YXIgbzkwIj48L2Rpdj48ZGl2IGNsYXNzPSJnbmFtZXMgdGFyIG10MiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icmhpc3RvIGRpYiB2YXQgbncgb2giPjxkaXYgY2xhc3M9InJzY2FsZSBkaWIgdmF0Ij48ZGl2PjEwMEs8L2Rpdj48ZGl2PjEwSzwvZGl2PjxkaXY+MTAwMDwvZGl2PjxkaXY+MTAwPC9kaXY+PGRpdj4xMDwvZGl2PjxkaXY+MTwvZGl2PjwvZGl2PjxkaXYgaWQ9InRpY2tpbmciIGNsYXNzPSJydmFsdWVzIGRpYiB2YXQgbncgcmJvdW5kcyI+PGRpdiBpZD0ieWF4aXMiIGNsYXNzPSJ5YXhpcyI+PC9kaXY+PGRpdiBjbGFzcz0icnNoaW0gZGliIHZhdCBwYWxlYmciPjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9InByaW1lIiBjbGFzcz0icmJhcnMgZGliIHZhdCBudyBwYWxlYmciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InJ2YWx1ZXMgZGliIHZhdCI+PGRpdiBpZD0idGFpbCIgY2xhc3M9InJiYXJzIGRpYiB2YXQgbnciPjwvZGl2PjwvZGl2PjwvZGl2PicsQXhpczp7cGl2b3RzeDoiIixwaXZvdHN5OiIiLGF4aXN4OiIifSxUOntCYXI6JzxkaXYgY2xhc3M9InJiYXIiIHN0eWxlPSJ3aWR0aDp7Mn1weDsiIHRpdGxlPSJ7M30iPnsxfTwvZGl2PicsQmFyVGlwOiJ7dGltZX1cbntkdXJ9XG57cm93c30iLEdyYXBoOic8c3ZnIGNsYXNzPSJyc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHN0eWxlPSJ3aWR0aDp7MX1weDtoZWlnaHQ6ezJ9cHg7IiB4PSIwIiB5PSIwIiB3aWR0aD0iezF9IiBoZWlnaHQ9InsyfSIgdmlld0JveD0iMCwgMCwgezF9LCB7Mn0iPnszfTwvc3ZnPicsVGFpbEdyYXBoOic8ZGl2IGNsYXNzPSJkaWIgdmF0IG1sMzAgcmJvdW5kcyByZ3JhcGggcGFsZWJnIj48ZGl2IGNsYXNzPSJydGltZSI+ezJ9PC9kaXY+ezF9PGRpdiBjbGFzcz0icmNvdmVyIj48L2Rpdj48L2Rpdj4nLExpbmU6JzxwYXRoIGQ9InsxfSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9InsyfSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPicsUGl2b3RYOic8cGF0aCBkPSJ7MX0iIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJ7Mn0iIHN0cm9rZS13aWR0aD0iMSIvPicsUGl2b3RZOic8cGF0aCBkPSJ7MX0iIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJ7Mn0iIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWRhc2hhcnJheT0iMSwxIi8+JyxQaXZvdFRleHQ6Jzx0ZXh0Pjx0c3BhbiB4PSJ7MX0iIHk9IjEwIiBmb250LXNpemU9IjEwIiB4ZmlsbD0iIzVFNUQ1MyI+ezJ9PC90c3Bhbj48L3RleHQ+J319LEdhdWdlOntpZDoiY3cuQ291Y2guTW9uaXRvci5HYXVnZSIscGFyYW1zOntyZXN0eWxlOjYwfSxpbmhlcml0OlsiQ2ZnIl0sZGF0YTp7bmFtZToiUm93Iixtb2RlOiIiLG5hbWVzOltdLGNvbG9yczpbXSxmaWVsZHM6W10scm93czpbXSx0aW1lOltdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7Yi5maWVsZHMubGVuZ3RoPTEsYi5yb3dzLmxlbmd0aD0xLHguaHRtbChhLkhUTUwpfSx1aTp7Ii5ndmFsIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPTA7cmV0dXJuIGI9ImN1cnJlbnQiPT14Lm1vZGU/K3gucm93c1swXVswXXx8MDp4LnRpbWVbMV0/MTAqKCt4LnJvd3NbMF1bMV18fDApL3gudGltZVsxXTowLChiLz14LmRlbm9taW5hdG9yfHwxKTwxP2Iucm91bmQoMikrIiI6Yj45OSYmYjwxZTQ/KDB8YikrIiI6Yi5yb3VuZCgxKS5tZXRyaWMoMywzKS5yZXBsYWNlKC8oXGRcZFxkP1wuXGQpXGR7MSwyfS8sIiQxIil9fSwiLmd1bml0cyI6e2JpbmQ6InVuaXRzLjAifX0sSFRNTDonPGRpdiBjbGFzcz0iZ2Jsb2NrIHByMTAgdzExMCBkaWIgdmF0Ij48ZGl2IGNsYXNzPSJndmFsIG84MCBtdC0xIj48L2Rpdj48ZGl2IGNsYXNzPSJndW5pdHMgbzkwIj48L2Rpdj48L2Rpdj4nfSxzdGFtcDoxNjQ2ODczMDg1MzIwfX0pLCQoZnVuY3Rpb24oKXt2YXIgeD1uZXcgVVJMKGxvY2F0aW9uLmhyZWYpLGE9eC5wYXRobmFtZS5yZXBsYWNlKC9eXC8vLCIiKS5zcGxpdCgiLyIpLnJldmVyc2UoKS5tYXAobSksYj0iX2Rlc2lnbiI9PWFbMl0sYz0iX3Bob3RvbiI9PWFbMV0sZD1hLmZyb20oYj80OjMpLnJldmVyc2UoKSxlPXtiYXNlOngub3JpZ2luKyIvIisoZC5sZW5ndGg/ZC5tYXAobCkuam9pbigiLyIpKyIvIjoiIiksZGI6YVtjPzE6Yj8zOjJdLGRvYzpjPyJfZGVzaWduL3Bob3RvbiI6Yj8iX2Rlc2lnbi8iK2FbMV06YVsxXX07JC5teS5tb2RhbC5wYXJlbnQoIiNjdy1ib2R5IiksJCh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7JCgiLm15LW1vZGFsIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigibGF5b3V0Iil9KX0uZGVib3VuY2UoMzApKSx3aW5kb3cuY3cubWU9ZnVuY3Rpb24oeCl7dmFyIGE9KHdpbmRvdy5ERE9DfHx7fSkuX21lfHx7bmFtZToiIixyb2xlczpbXSxsb2NhbGU6ImVuIn07cmV0dXJuIG51bGw9PT14P2E6dm9pZCAwPT09eD9hLm5hbWU6YVt4XX07dmFyIGY9d2luZG93LkRET0M9JC5leHRlbmQod2luZG93LkRET0Mse19iYXNlOmUuYmFzZSxfZGI6ZS5kYixfZG9jOmUuZG9jfSk7cmV0dXJuIGcoKS50aGVuKGgpLnRoZW4oaSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y29uc29sZS5sb2coeCxhLGIpLGN3LmxpYi5ub3RlKCJQaG90b24gMS4yMCBmYWlsZWQgdG8gc3RhcnQsIHNlZSBjb25zb2xlIGZvciBkZXRhaWxzIiwiZXJyb3IiLDNlNCl9KSxPYmplY3Qua2V5cyhmLmFwcHN8fHt9KS5mb3JFYWNoKGZ1bmN0aW9uKHgpeyQubXkuY2FjaGUoZi5hcHBzW3hdKX0pLGsoe2N0cmxfejpmdW5jdGlvbih4LGEpe2lmKCJCT0RZIj09eC50YXJnZXQubm9kZU5hbWUpe3ZhciBiPSQoIiNsLWFwcHM+LmwtYXBwOm5vdCguaGlkZSkiKS5teSgibWFuaWZlc3QiKS5jbWRVbmRvO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiKXt4LnByZXZlbnREZWZhdWx0KCk7dHJ5e2IoKX1jYXRjaCh4KXt9cmV0dXJuITF9fX0sY3RybF9zOmZ1bmN0aW9uKHgsYSl7aWYoIkJPRFkiPT14LnRhcmdldC5ub2RlTmFtZSl7dmFyIGI9JCgiI2wtYXBwcz4ubC1hcHA6bm90KC5oaWRlKSIpLm15KCJtYW5pZmVzdCIpLmNtZFNhdmU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIpe3gucHJldmVudERlZmF1bHQoKTt0cnl7YigpfWNhdGNoKHgpe31yZXR1cm4hMX19fX0pLHZvaWQgMDtmdW5jdGlvbiBnKCl7cmV0dXJuIFEuYWxsKFtqKGUuYmFzZSsoZS5kYj9sKGUuZGIpKyIvIjoiIikrZS5kb2MpLnRoZW4oZnVuY3Rpb24oeCl7JC5leHRlbmQoITAsZixPYmplY3Quc2VsZWN0KHgsIl9pZCBfcmV2IG5hbWUgc3RhbXAgc2V0dGluZ3MgdmVyc2lvbiB2ZXJzaW9ucyIuc3BsaXQoIiAiKSkpfSksaihlLmJhc2UrIl9zZXNzaW9uIikudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZCghMCxmLl9tZSx4LnVzZXJDdHh8fHt9KX0pXSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT1mLl9tZTtyZXR1cm4gYS5uYW1lPWEubmFtZXx8IiIsYS5yb2xlcy5mb3JFYWNoKGZ1bmN0aW9uKHgpey9ebGFuZ1wtW2Etel17Mn0kLy50ZXN0KHgpJiYoYS5sb2NhbGU9eC5zcGxpdCgiLSIpWzFdLCQubXkubG9jYWxlKGEubG9jYWxlKSl9KSxmfSl9ZnVuY3Rpb24gaCgpe3RyeXt2YXIgeD1KU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiY3cuUGhvdG9uLkNmZyIpfHwie30iKS50aGVtZXx8IiI7ImF1dG8iPT14JiZ3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtZGFyayIpOngmJiQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtIit4KX1jYXRjaCh4KXt9fWZ1bmN0aW9uIGkoKXt2YXIgeD1mLnJ1bixhPVtdO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmNvbnRhaW5lcik7YS5wdXNoKGIubXkoeC5tYW5pZmVzdCx4LmRhdGF8fHt9KSl9KSxRLmFsbChhKX1mdW5jdGlvbiBqKHgpe3JldHVybiAkLmFqYXgoJC5leHRlbmQoe21ldGhvZDoiZ2V0IixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7YWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn0sY2FjaGU6ITF9LHt1cmw6eH0pKX1mdW5jdGlvbiBrKHgpe2lmKCExPT09eClyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGEpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixhKTt4PXh8fHt9O2Z1bmN0aW9uIGEoYSl7dmFyIGI9W2Euc2hpZnRLZXk/InNoaWZ0IjoiIixhLmN0cmxLZXl8fGEubWV0YUtleT8iY3RybCI6IiIsYS5hbHRLZXk/ImFsdCI6IiIsU3RyaW5nLmZyb21DaGFyQ29kZShhLmtleUNvZGUpLnRvTG93ZXJDYXNlKCldLmNvbXBhY3QoITApLmpvaW4oIl8iKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeFtiXSlyZXR1cm4geFtiXShhLGIpfX1mdW5jdGlvbiBsKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9ZnVuY3Rpb24gbSh4KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHgpfX0pOw==" + "data": "LypQaG90b24gMS4yMCBhcHBzIGFuZCBib290c3RyYXAgY29kZSwgKGMpIDIwMjIgZXJtb3V0aCovCiQuZXh0ZW5kKHdpbmRvdy5ERE9DLmFwcHMseyJjdy5QaG90b24iOntpZDoiY3cuUGhvdG9uIixidWlsZDo3LFZlcnNpb246IjEuMjAiLENmZzp7cm9vdFJlcG86Imh0dHBzOi8vY2RuLmNsb3Vkd2FsbC5tZS9waG90b24vIix1cGRhdGU6InJlbWluZCIscm9sZXM6W10sbWF4V2lkdGg6IjIwMDAiLG1heFRhYnM6MTUsc2Nyb2xsU3BlZWQ6IjAiLGZvbnQ6ImF1dG8iLGZvbnRXZWlnaHQ6IjQwMCIsZm9udENvZGU6ImF1dG8iLGljb246IiIsbGlzdENvbHM6WyJpbmZvIiwic2VjdXJpdHkiXSxiYXRjaERiSW5mb0RlbGF5OjUsYmF0Y2hDb21wYWN0RGVsYXk6NTAwLGJhdGNoQ3JlYXRlRGVsYXk6MTUwLGJhdGNoVXBkYXRlQ2ZnOjEwMCxsb29wQWN0aXZlVGFza3M6NSx0YXNrc1JlYWRSZXBsaWNhdG9yOiEwLHN0YXRzUmVmcmVzaDo1LHBpbmdTZXNzaW9uOjAsdGFiQmFyOiJhdXRvIix0aGVtZToiIixncm91cGluZzpbIm5vcm1hbCIsImF1dG8iXX0sbGFuZzp7ZW46e1RJUF9MT0dJTjoiTG9nIGluIixUSVBfUFJPRklMRToiRWRpdCB1c2VyIFxucHJvZmlsZSBkb2MiLFRJUF9DT05GSUc6IkNvdWNoREIgY29uZmlnIixUSVBfU0hBUkU6IlBob3RvbiBjb25maWciLFRJUF9ST09UOiJTaW5nbGUgY2xpY2s6IGxpc3Qgb2YgREJzIFxuRG91YmxlIGNsaWNrOiBjbG9zZSBhbGwgdGFicyIsQlROX1hBTEw6IuKclSBDbG9zZSBhbGzCoCIsRVJSX1JFUV9JTlZBTElEQ0FMTDoiSW52YWxpZCByZXF1ZXN0IHBhcmFtcywgcHJvYmFibHkgaW52YWxpZCBjb21tYW5kLCBvciB0aGVyZeKAmXMgYSBidWciLEVSUl9SRVFfQVVUSFJFUToiWW91IG5lZWQgdG8gbG9nIGluIHRvIHVzZSBQaG90b24iLEVSUl9SRVFfUk9MRVJFUToiSW5zdWZmaWNpZW50IHByaXZpbGVnZXMgdG8gcnVuIFBob3RvbiIsRVJSX1JFUTp7MDoiT2ZmbGluZSIsNDAwOiJCYWQgcmVxdWVzdCIsNDAxOiJVbmF1dGhvcml6ZWQiLDQwMzoiRm9yYmlkZGVuIiw0MDQ6Ik5vdCBmb3VuZCIsNDA1OiJOb3QgYWxsb3dlZCIsNDA4OiJUaW1lb3V0Iiw0MDk6IkNvbmZsaWN0Iiw0MTI6IlByZWNvbmRpdGlvbiBmYWlsZWQiLDQyOToiVG9vIG1hbnkgcmVxdWVzdHMiLDUwMDoiSW50ZXJuYWwgZXJyb3IiLDUwMToiTm90IGltcGxlbWVudGVkIiw1MDM6IlNlcnZpY2UgdW5hdmFpbGFibGUiLDUwNDoiR2F0ZXdheSB0aW1lb3V0Iiw1MDk6IkJhbmR3aWR0aCBxdW90YSIsOTk5OiJVbmtub3duIGVycm9yIn0sRkFJTF9UT09fTUFOWV9UQUJTOiJ7MX0gdGFicyBtYXhpbXVtLCBwbGVhc2UsIGNsb3NlIHNvbWV0aGluZyBvciBkb3VibGUtY2xpY2sgdGhlIGxvZ28gdG8gY2xvc2UgYWxsIHRhYnMuIixGQUlMX1RBQl9BUFA6IkZhaWxlZCBzdGFydGluZyB0YWIgYXBwLiBTZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLERMR19VTkxPQUQ6IlRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMuIFJlbG9hZD8iLERMR19VTlNBVkVEOiJUaGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzLiBQcm9jZWVkPyIsVVBEX09MRDoiWW91ciB2ZXJzaW9uIG9mIFBob3RvbiBpcyBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IG9sZC4gIixVUERfTU9OVEg6IllvdSB1cGRhdGVkIFBob3RvbiBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IGFnby4gIixVUERfVEFJTDonVG8gdXBkYXRlIGNsaWNrIDxzcGFuIGNsYXNzPSJmaS13cmVuY2ggbzgwIj48L3NwYW4+IGljb24gYXQgbmF2YmFyLCBhbmQgdGhlbiBjbGljayDigJhDaGVjayBmb3IgdXBkYXRlc+KAmSBidXR0b24uJyxNU0dfTkVXREJfT0s6IkNyZWF0ZWQgbmV3IERCIOKAmHsxfeKAmSIsTVNHX05FV0RCX0ZBSUw6IkZhaWxlZCBjcmVhdGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkiLE1TR19ORVdEQl9OT0FDTDoiREIg4oCYezF94oCZIGNyZWF0ZWQgYnV0IHNlY3VyaXR5IGNvbmZpZyBmYWlsZWQsIHdoaWNoIG1lYW5zIERCIGlzIHB1YmxpYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkiLE1TR19TRUNEQl9PSzoiVXBkYXRlZCBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmSIsTVNHX1NFQ0RCX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M30iLEluZGV4RWQ6e1RYVF9USVRMRToiTWFuZ28gaW5kZXggezF9wqBpbsKgezJ9IixUWFRfVElUTEUwOiJEZWZhdWx0IE1hbmdvIGluZGV4IixCVE5fUEFORUxfQ0xPU0U6IkNsb3NlIGVkaXRvciIsVEFHX01PREU6e3RhZ3M6W3tKU09OOiJqc29uIn1dLGVtcHR5OntTb3VyY2U6ImphdmFzY3JpcHQifX0sRVJSX05PX0lOREVYOiJNdXN0IGhhdmUgLmluZGV4LmZpZWxkcyBhcnJheSIsRVJSX05PX1RZUEU6J1Byb3BlcnR5IC50eXBlIHNob3VsZCBiZSAianNvbiInLEVSUl9OT19KU09OOiJDYW7igJl0IGNvbnZlcnQgdG8gSlNPTiIsQlROX1JVTjoiU2F2ZSBhbmQgcnVuIixCVE5fUlVOMDoiQ3JlYXRlIG5ldyBhbmQgcnVuIixUSVBfUlVOOiJTYXZlcyBpbmRleCBhbmQgc2hvd3MgaW5kZXggZW50cmllcyIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIGluZGV4IGVudHJpZXMiLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIGluZGV4IHVuZGVyIGRpZmZlcmVudCBuYW1lIGFuZCBzaG93cyBpbmRleCBlbnRyaWVzIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyBNYW5nbyBpbmRleCIsQlROX1JFVkVSVDoiUmV2ZXJ0IixUSVBfUkVWRVJUOiJSZXZlcnRzIGVkaXRvciB0byBzYXZlZCBpbmRleCBjb2RlIixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyBpbmRleDwvaDM+PHA+U2F2ZXMgaW5kZXggaW50byBleGlzdGluZyBvciBuZXcgZGVzaWduIGRvY3VtZW50LjwvcD4iLExCTF9ERE9DOiJEZG9jIG5hbWUiLFBMQ19ERE9DOiJTaG9ydCBvZiBmdWxsIGZvcm0iLExCTF9ORVc6IkluZGV4IG5hbWUiLFBMQ19ORVc6IktleSBuYW1lIGluIC52aWV3cyBwcm9wIG9mIGRkb2MiLEVSUl9ORVdfUkVROiJJbmRleCBuYW1lIHJlcXVpcmVkIixFWFBfRVhJU1Q6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IEluZGV4IGFscmVhZHkgZXhpc3RzIGFuZCB3aWxsIGJlIHJlcGxhY2VkLicsRVhQX05ERE9DOiJUYXJnZXQgZGVzaWduIGRvYyBkb2VzbuKAmXQgZXhpc3QgYW5kIHdpbGwgYmUgY3JlYXRlZC4iLEVYUF9OVklFVzoiTmV3IGluZGV4IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgaW5kZXgiLEJUTl9ORVdfQ0FOQ0VMOiJDYW5jZWwiLEVSUl9OT19OQU1FOiJJbnZhbGlkIGRkb2Mgb3IgaW5kZXggbmFtZSwgY2Fu4oCZdCBjcmVhdGUgaW5kZXgiLEVSUl9OT19OQU1FX1JVTjoiWW91IGNhbuKAmXQgcnVuIGRlZmF1bHQgaW5kZXgsIHBsZWFzZSB1c2UgU2F2ZSBhcyBidXR0b24iLEVSUl9FUlJET0M6IkNhbuKAmXQgc2F2ZSBpbnZhbGlkIGluZGV4LiB7MX0uIixNU0dfREVMX1RFWFQ6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IERlbGV0ZSBNYW5nbyBpbmRleCB7MX0gZnJvbSB7Mn0/JyxCVE5fREVMX1lFUzoiRGVsZXRlIixCVE5fREVMX05POiJDYW5jZWwiLE1TR19ERUxfT0s6IkluZGV4IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sVmlld0VkOntUWFRfVElUTEU6e2phdmFzY3JpcHQ6IkpTIHZpZXcgezF94oCJL+KAiXsyfSIsZXJsYW5nOiJFcmxhbmcgdmlldyB7MX3igIkv4oCJezJ9In0sVEFHX01PREU6e3RhZ3M6W1t7UmVkdWNlOiJyZWR1Y2UifSx7SlNPTjoianNvbiJ9XV0sZW1wdHk6e01hcDoibWFwIn19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fTUFQOiJNYXAgaXMgbm90IGEgZnVuY3Rpb24iLEVSUl9OT19SRURVQ0U6IlJlZHVjZSBpcyBub3QgYSBmdW5jdGlvbiIsRVJSX0ZfQlVJTFRJTjoiVW5rbm93biBidWlsdC1pbiByZWR1Y2VyIixFUlJfRVJSRE9DOiJDYW7igJl0IHNhdmUgaW52YWxpZCBkZXNpZ24gZG9jLiB7MX0uIixCVE5fUlVOOiJSdW4gdmlldyIsVElQX1JVTjoiUnVucyBzYXZlZCB2aWV3IGluZGV4IHF1ZXJ5IixCVE5fU0FWRToiU2F2ZSBhbmQgcnVuIixUSVBfU0FWRToiU2F2ZXMgdmlldyBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIHZpZXciLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIHZpZXcgdW5kZXIgZGlmZmVyZW50IG5hbWUgYW5kIHNob3dzIHRoZSByZXN1bHQiLEJUTl9SRVZFUlQ6IlJldmVydCIsVElQX1JFVkVSVDoiUmV2ZXJ0cyBlZGl0b3IgdG8gc2F2ZWQgdmlldyBjb2RlIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyB2aWV3IGluZGV4IixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyB2aWV3PC9oMz48cD5TYXZlcyB2aWV3IGludG8gZXhpc3Rpbmcgb3IgbmV3IGRlc2lnbiBkb2N1bWVudC48L3A+IixMQkxfRERPQzoiRGRvYyBfaWQiLFBMQ19ERE9DOiJGdWxsZm9ybSwgbGlrZSBfZGVzaWduL2Rkb2NOYW1lIixFUlJfRERPQzoiVmFsaWQgX2lkLXMgYXJlIGxpa2UgX2Rlc2lnbi9kZG9jTmFtZSIsTEJMX05FVzoiVmlldyBuYW1lIixQTENfTkVXOiJLZXkgbmFtZSBpbiAudmlld3MgcHJvcCBvZiBkZG9jIixFUlJfTkVXX1JFUToiVmlldyBuYW1lIHJlcXVpcmVkIixFUlJfTkVXX1NMQVNIOiJTbGFzaGVzIGFyZSBub3QgYWxsb3dlZCBpbiB2aWV3IG5hbWUiLEVYUF9FWElTVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gVmlldyBhbHJlYWR5IGV4aXN0cyBhbmQgd2lsbCBiZSByZXBsYWNlZC4nLEVYUF9ORERPQzoiVGFyZ2V0IGRlc2lnbiBkb2MgZG9lc27igJl0IGV4aXN0IGFuZCB3aWxsIGJlIGNyZWF0ZWQuIixFWFBfTlZJRVc6Ik5ldyB2aWV3IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgdmlldyIsQlROX05FV19DQU5DRUw6IkNhbmNlbCIsRVJSX05PX05BTUU6IkludmFsaWQgZGRvYyBvciB2aWV3IG5hbWUsIGNhbuKAmXQgY3JlYXRlIHZpZXciLE1TR19ERUxfVEVYVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gRGVsZXRlIHZpZXcgaW5kZXggezF9IGZyb20gezJ9PycsQlROX0RFTF9ZRVM6IkRlbGV0ZSIsQlROX0RFTF9OTzoiQ2FuY2VsIixNU0dfREVMX09LOiJWaWV3IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sTWFuZ29FZDp7VFhUX1RJVExFOiJNYW5nbyBxcnkgezF9IixUWFRfVElUTEUwOiJVbnRpdGxlZCBNYW5nbyBxcnkiLFRBR19NT0RFOnt0YWdzOlt7SlNPTjoianNvbiJ9XSxlbXB0eTp7U291cmNlOiJqYXZhc2NyaXB0In19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fU0VMRUNUT1I6Ik5vIC5zZWxlY3RvciBwcm9wZXJ0eSIsRVJSX05PX0ZJRUxEUzoiTm8gLmZpZWxkcyBhcnJheSIsRVJSX0VNUFRZX0ZJRUxEUzoiRW1wdHkgLmZpZWxkcyBhcnJheSIsRVJSX05PX0pTT046IkNhbuKAmXQgY29udmVydCB0byBKU09OIixFUlJfTUFOR09fS0VZUzoiVW5rbm93biBrZXkgezF9IixFUlJfSU5WQUxJRF9PUEVSQVRPUjoiSW52YWxpZCBvcGVyYXRvciB7MX0iLEVSUl9WX01PRDA6IiRtb2QgZGl2aXNvciBpcyAwIixFUlJfVl9NT0QxOiIkbW9kIG11c3QgYmUgW2Rpdmlzb3IsIHJlbWFpbmRlcl0iLEVSUl9WX01PREQ6IiRtb2QgZGl2aXNvciBtdXN0IGJlIGFuIGludGVnZXIiLEVSUl9WX01PRFI6IiRtb2QgcmVtYWluZGVyIG11c3QgYmUgYW4gaW50ZWdlciIsRVJSX1ZfRVhJU1Q6IiRleGlzdHMgbXVzdCBiZSBhIGJvb2wiLEVSUl9WX1RZUEUwOiIkdHlwZSBtdXN0IGJlIGEgc3RyaW5nIixFUlJfVl9UWVBFMToiSW52YWxpZCAkdHlwZSIsRVJSX1ZfU0laRToiJHNpemUgbXVzdCBiZSBhbiBpbnRlZ2VyIixFUlJfVl9SRUdFWDoiJHJlZ2V4IG11c3QgYmUgYSBzdHJpbmciLEVSUl9WX0FSUjoiezF9IG11c3QgYmUgYW4gYXJyYXkiLEVSUl9WX09CSjoiezF9IG11c3QgYmUgYW4gb2JqZWN0IixCVE5fUlVOOiJSdW4gcXJ5IixUSVBfUlVOOiJFeGVjdXRlcyBxdWVyeSBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsQlROX0VYUEw6IkV4cGxhaW4iLFRJUF9FWFBMOiJFeHBsYWlucyBxdWVyeSwgYWxsIGhpZGRlbiBwYXJhbXMgYW5kIGluZGV4ZXMgaW52b2x2ZWQiLEJUTl9TQVZFOiJTYXZlIGFzLi4uIixCVE5fUkVOQU1FOiJSZW5hbWUuLi4iLFRJUF9TQVZFOiJTYXZlcyBNYW5nbyBxdWVyeSB0byBsb2NhbFN0b3JhZ2UgZm9yIGxhdGVyIHJlLXVzZSIsQlROX0RFTDoiRGVsIixUSVBfREVMOiJEZWxldGVzIHRoaXMgTWFuZ28gcXVlcnkgZnJvbSBsb2NhbFN0b3JhZ2UgYW5kIHN3aXRjaGVzIHRvIERlZmF1bHQgcXVlcnkiLEJUTl9SRVNFVDoiUmVzZXQiLFRJUF9SRVNFVDoiUmVzZXRzIHRvIGluaXRpYWwgZGVmYXVsdCBxdWVyeSIsVFhUX1NUQVNIOiI8aDM+TWVtb2l6ZSBxdWVyeTwvaDM+PHA+U2F2ZXMgTWFuZ28gcXVlcnkgdG8gbG9jYWxTdG9yYWdlIGZvciBsYXRlciByZS11c2UuPC9wPiIsUExDX1NUQVNIOiJRdWVyeSB0aXRsZSwgMy4uLjMwIGNoYXJzIixFUlJfU1RBU0hfUkVROiJUaXRsZSByZXF1aXJlZCIsRVJSX1NUQVNIX0xFTjoiMy4uLjMwIGNoYXJhY3RlcnMiLEVSUl9TVEFTSF9FWElTVDoiQWxyZWFkeSBleGlzdHMiLEJUTl9TVEFTSF9PSzoiU2F2ZSBxdWVyeSIsQlROX1NUQVNIX09LMToiU2F2ZSAmIHN3aXRjaCB0byBuZXciLEJUTl9TVEFTSF9DQU5DRUw6IkNhbmNlbCJ9LFVzZXJEb2M6e1RYVF9USVRMRToiQ3JlYXRlIG5ldyB1c2VyIixUWFRfVElUTEVfRUQ6IkNoYW5nZSBwYXNzd29yZCBvciByb2xlcyIsTEJMX046Ik5hbWUiLFBMQ19OOiJVc2VyIGxvZ2luIixFUlJfTjoiQ2Fu4oCZdCBzdGFydCB3aXRoIF8gb3IgY29udGFpbiA6IixFUlJfTlg6IlVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIixMQkxfUDoiUGFzc3dvcmQiLFBMQ19QOiJVc2VyIHBhc3Nzd29yZCIsUExDX1BfRUQ6IkNoYW5nZSB1c2VyIHBhc3Nzd29yZCIsRVJSX1A6IlJlcXVpcmVkIixMQkxfUjoiUm9sZXMiLFBMQ19SOiJBZGQgcm9sZXMiLEVSUl9SOiJSb2xlcyBjYW7igJl0IHN0YXJ0IHdpdGggXyIsQlROX1NBVkU6IlNhdmUgdXNlciIsQlROX0RPQzoiQ3JlYXRlIGVtcHR5IEpTT04uLi4iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX09LOiJVc2VyIHsxfSBzdWNjZXNzZnVsbHkgc2F2ZWQiLE1TR19GQUlMOiJGYWlsZWQgc2F2aW5nIHVzZXIgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSJ9LERlbERCOntUWFRfVElUTEU6IkRlbGV0ZSBEQnMiLFRYVF9USVRMRTE6IkRlbGV0ZSBEQiIsUExDX0RCUzoiU2VsZWN0IERCcyB0byBkZWxldGUiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLExCTF9ORVc6IlJlLWNyZWF0ZSBEQnMgYWZ0ZXIgZGVsZXRpb24iLExCTF9ORVdfQUNMOiJBcHBseSBvcmlnaW5hbCBzZWN1cml0eSBvYmplY3RzIixMQkxfTkVXX1FOUDoiUmVzdG9yZSBzaGFyZGluZyBzZXR0aW5ncyIsVFhUX1dBUk46ZnVuY3Rpb24oeCl7dmFyIGE9T2JqZWN0LmNsb25lKHgpO3JldHVybiBhLnNjb3VudD1hLmNvdW50PDI/IiI6InMiLGEuc2l6ZT0oK2Euc2l6ZSkuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIiksYS5kaXNrPSgrYS5kaXNrKS5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKSxbIllvdSBhcmUgZGVsZXRpbmcge2NvdW50fSBEQntzY291bnR9IGNvbnRhaW5pbmcge3NpemV9IG9mIGRhdGEuIiwiRGVsZXRpb24gd2lsbCBmcmVlIH57ZGlza30gb2YgZGlzayBzcGFjZSBhdCA8bm9icj57YmFzZX08L25vYnI+LiJdLmpvaW4oIiAiKS5hc3NpZ24oYSl9LEJUTl9TVEFSVDpmdW5jdGlvbih4KXtyZXR1cm4geD8iRGVsZXRlICIreCsiIERCIisoeD4xPyJzIjoiIik6Ik5vdGhpbmcgdG8gZGVsZXRlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIOKAmHsxfeKAmSBEQiIsTVNHX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkifSxTZWNPYmo6e1RYVF9USVRMRToiQWNjZXNzIGNvbnRyb2wiLExCTF9EQlM6IkRCcyIsUExDX0RCUzoiU2VsZWN0IERCIG5hbWVzIHRvIHNldCBBQ0wiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLFRYVF9BRE06IkFkbWluaXN0cmF0b3JzIixMQkxfVUFETToiVXNlcnMiLFBMQ19VQURNOiJVc2VyIG5hbWVzIixMQkxfR0FETToiUm9sZXMiLFBMQ19HQURNOiJSb2xlcyB3aXRoIGFkbWluIGFjY2VzcyIsRVJSX0FETToiSW52YWxpZCBuYW1lIixFUlJfVU5BTUU6Ik5hbWVzIGNhbuKAmXQgc3RhcnQgd2l0aCBfIG9yIGNvbnRhaW4gOiIsVFhUX01FTToiTWVtYmVycyIsUExDX1VNRU06IlVzZXIgbmFtZXMiLFBMQ19HTUVNOiJSb2xlcyB3aXRoIG1lbWJlciBhY2Nlc3MiLEJUTl9TVEFSVDoiU2V0IHNlY3VyaXR5IixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19PSzoiU2VjdXJpdHkgb2JqZWN0IGZvciBEQiDigJh7MX3igJkgdXBkYXRlZCIsTVNHX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIERCIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LExvZ2luOntUWFRfTE9HSU46IkxvZyBpbiIsUExDX1VOQU1FOiJVc2VybmFtZSIsUExDX1BXRDoiUGFzc3dvcmQiLEJUTl9MT0dJTjoiQ3JlYXRlIHNlc3Npb24iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX0FVVEhfT0s6IkF1dGhvcml6ZWQgYXMgezF9IixNU0dfQVVUSF9GQUlMOiJBdXRob3JpemF0aW9uIGFzIHsxfSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezJ9OsKgezN9In0sTG9nb3V0OntUWFRfTE9HT1VUOiJMb2cgb3V0IixUWFRfUFJPRklMRToiUHJvZmlsZSIsTVNHX0xPR09VVF9TVEFSVDoiTG9nZ2luZyBvdXQuLi4iLE1TR19MT0dPVVRfT0s6IllvdSB3YXMgbG9nZ2VkIG91dCBzdWNjZXNzZnVsbHkiLE1TR19MT0dPVVRfRkFJTDoiTG9nIG91dCBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9In0sVGFiOntCVE5fQ0xPU0VUQUI6IkNsb3NlIHRhYiJ9LE5ld0RCOntUWFRfVElUTEU6IkNyZWF0ZSBEQnMiLFRYVF9USVRMRTE6IkNyZWF0ZSBEQiIsTEJMX0RCUzoiTmFtZXMiLFBMQ19EQlM6IkRCcyB0byBjcmVhdGUiLEVSUl9EQl9FWElTVDoiREIgezF9IGFscmVhZHkgZXhpc3RzIixFUlJfREJfTkFNRToiTG93ZXJjYXNlIGEteiwgMC05IGFuZCBfJCgpKy0vIGFyZSBvbmx5IGFsbG93ZWQgaW4gREIgbmFtZXMiLEVSUl9EQl9VTkQ6IkRCIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBsb3dlcmNhc2UgYS16IixUWFRfQURNOiJBZG1pbmlzdHJhdG9ycyIsTEJMX1VBRE06IlVzZXJzIixQTENfVUFETToiVXNlciBuYW1lcyIsTEJMX0dBRE06IlJvbGVzIixQTENfR0FETToiUm9sZXMgd2l0aCBhZG1pbiBhY2Nlc3MiLEVSUl9BRE06IkludmFsaWQgbmFtZSIsRVJSX1VOQU1FOiJOYW1lcyBjYW7igJl0IHN0YXJ0IHdpdGggXyBvciBjb250YWluIDoiLFRYVF9NRU06Ik1lbWJlcnMiLFBMQ19VTUVNOiJVc2VyIG5hbWVzIixQTENfR01FTToiUm9sZXMgd2l0aCBtZW1iZXIgYWNjZXNzIixMQkxfQ0xVU1RFUjoiU3RvcmFnZSIsVFhUX1NIQVJEUzpmdW5jdGlvbih4KXtyZXR1cm4ic2hhcmQiKyh4PjE/InMiOiIiKX0sVFhUX0NPUElFUzpmdW5jdGlvbih4KXtyZXR1cm4iZGF0YSBjb3AiKyh4PDI/InkiOiJpZXMiKX0sVFhUX1BBUlRJVElPTlM6InBhcnRpdGlvbmVkIixCVE5fU1RBUlQ6IkNyZWF0ZSBEQnMiLEJUTl9TVEFSVF9QVUJMSUM6IkNyZWF0ZSBwdWJsaWMgREJzIixCVE5fQ0FOQ0VMOiJDYW5jZWwifSxDb21wYWN0OntUWFRfVElUTEU6IkNvbXBhY3QgREJzIixUWFRfVElUTEUxOiJDb21wYWN0IERCIixUWFRfREJMSVNUOmZ1bmN0aW9uKHgpe3ZhciBhPXgubGVuZ3RoO3JldHVybiJZb3UgYXJlIGdvaW5nIHRvIGNvbXBhY3QgezF9IGJ1Y2tldHsyfTogIi5hc3NpZ24oYSxhPDI/IiI6InMiKSt4Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVIVE1MKCl9KS5qb2luKCIsICIpfSxQTENfREJTOiJTZWxlY3QgREJzIHRvIGNvbXBhY3QiLFBMQ19ERE9DUzoiU2VsZWN0IGRkb2NzIGZvciB2aWV3IGNvbXBhY3Rpb24iLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLEVSUl9ERE9DUzoiU2VsZWN0IGF0IGxlYXN0IG9uZSBkZXNpZ24gZG9jIixUQUdfT1A6W3siU3RyaXAgb2xkIHJldnMiOiJkb2NzIn0seyJTdHJpcCBvbGQgdmlld3MiOiJ2aWV3cyJ9LHsiQ29tcGFjdCB2aWV3cyI6ImRkb2NzIn1dLEVSUl9PUDoiU2VsZWN0IGF0IGxlYXN0IG9uZSBhY3Rpb24iLEVSUl9WQzoiVmlldyBjb21wYWN0aW9uIHJlcXVpcmVzIHNlbGVjdGluZyBkZG9jcywgc28gaXTigJlzIHVuYXZhaWxhYmxlIGZvciBtdWx0aXBsZSBEQnMgc2VsZWN0ZWQiLEJUTl9TVEFSVDoiU3RhcnQgY29tcGFjdGlvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfQ09NUEFDVF9TVEFSVDoiU3RhcnRlZCBjb21wYWN0aW9uIG9mIOKAmHsxfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIGNvbXBhY3Rpb24gb2Yg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTF9TT01FOiJFcnJvcnMgb2NjdXJlZCBkdXJpbmcgYXQgbGVhc3Qgb25lIGNvbXBhY3Rpb24gdGFza3MsIGNoZWNrIGNvbnNvbGUgZm9yIGRldGFpbHMifSxTeW5jVGFzazp7VFhUX1RJVExFOiJOZXcgcmVwbGljYXRpb24vZHVtcCIsVFhUX1RJVExFX1NZTkM6Ik5ldyByZXBsaWNhdGlvbiIsVFhUX1RJVExFX1pJUDoiRHVtcCB0byBaSVAiLFRYVF9USVRMRV9EVU1QOiJSZXN0b3JlIGZyb20gWklQIGR1bXAiLExCTF9NT0RFOiJNb2RlIixUQUdfTU9ERTp7dGFnczpbW3tPbmNlOiJvbmNlIn0se0xpdmU6ImxpdmUifSx7WklQOiJ6aXAifV0sW3tuYW1lOiJVc2UgX3JlcGxpY2F0b3IgZG9jIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxUQUdfTU9ERV9DT1BZOnt0YWdzOltbeyJSZXBsaWNhdGUgZG9jcyI6Im9uY2UifSx7IkR1bXAgZG9jcyB0byBaSVAiOiJ6aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IlN5bmMgbmFtZSIsUExDX0lEOiJEb2MgX2lkIGZvciB7X3JlcGxpY2F0b3J9IERCIixFUlJfSUQ6IlJlcXVpcmVkIixFUlJfSURfVU5EOiJDYW7igJl0IHN0YXJ0IHdpdGggdW5kZXJzY29yZSIsRVJSX1VOWklQX0ZBSUw6IlVuemlwIGZhaWxlZC4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIixFUlJfVU5aSVBfQUJSVDoiVW56aXAgYW5kIHNhdmUgYWJvcnRlZC4iLE1TR19VTlpJUF9PSzoiRHVtcCByZXN0b3JlIGNvbXBsZXRlZC4iLExCTF9GUk9NOiJTb3VyY2UgREIiLFBMQ19GUk9NOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9GUk9NOiJFeGlzdGluZyBEQiBuYW1lIG9yIHZhbGlkIFVSTCIsRVJSX0ZST01fVVJMOiJJbnZhbGlkIFVSTCIsRVJSX1BXRDoiUGxlYXNlIHByb3ZpZGUgY3JlZGVudGlhbHMiLExCTF9aSVBEVU1QOiJTcmMgemlwIGR1bXAiLFBMQ19aSVBEVU1QOiJTZWxlY3Qgb3IgZHJhZyAuemlwIERCIGR1bXAgaGVyZSIsRVJSX1pJUERVTVA6IkludmFsaWQgemlwIixMQkxfU1JDX0NSRURTOiJTb3VyY2UgY3JlZHMiLFBMQ19VTkFNRToiVXNlcm5hbWUiLEVSUl9VTk9fOiJDYW7igJl0IHN0YXJ0IHdpdGggXyIsUExDX1VQV0Q6IlBhc3N3b3JkIixFUlJfTk9QV0Q6IlBhc3N3b3JkIHJlcXVpcmVkIixUWFRfVUNUWDoiVXNlIC51c2VyQ3R4IHByb3Agd2l0aCBfYWRtaW4gcm9sZSIsTEJMX0ZJTFRFUjoiRmlsdGVyIixUQUdfRklMVEVSOnt0YWdzOltbe25hbWU6IkJ5IF9pZHMiLHZhbHVlOiJpZHMifSx7bmFtZToiRnVuY3Rpb24iLHZhbHVlOiJmbiIsY3NzOiJub3ppcCJ9LHtuYW1lOiJTa2lwIF9kZWxldGVkIix2YWx1ZToieGRlbCJ9XSx7bmFtZToiU2tpcCBkZG9jcyIsdmFsdWU6InhkZG9jIn0se25hbWU6IlNraXAgY29uZmxpY3RzIix2YWx1ZToieHJldnMiLGNzczoiemlwb25seSJ9XSxlbXB0eTp7Tm86IiJ9LHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfRE9DUzoiRG9jcyB0byBzeW5jIixQTENfRE9DUzoiSlNPTiBbXSBvZiBkb2MgX2lkLXMgdG8gcmVwbGljYXRlIixFUlJfRE9DUzoiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixMQkxfRk46IkZpbHRlciBmbiIsUExDX0ZOOiJkZG9jTmFtZS9maWx0ZXJGbk5hbWUsIGZpbHRlciBmdW5jdGlvbiIsRVJSX0ZOX0RFU0lHTjoiTm8gX2Rlc2lnbiBwcmVmaXgsIG9ubHkgZGRvY05hbWUvZmlsdGVyIixFUlJfRk46IlZhbGlkIGZvcm1hdCBpcyBkZG9jTmFtZS9maWx0ZXIiLExCTF9RUlk6IlFyeSBwYXJhbXMiLFBMQ19RUlk6IlF1ZXJ5IHBhcmFtcyBmb3IgZmlsdGVyIGZuLCBKU09OIG9iamVjdCIsRVJSX1FSWToiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBvYmplY3QiLExCTF9aSVBPUFQ6IlN0b3JlIERCIG1ldGEiLFRBR19aSVBPUFQ6e3RhZ3M6W3tuYW1lOiJTZWN1cml0eSBvYmplY3RzIix2YWx1ZToiYWNsIn0se25hbWU6IlNoYXJkaW5nIHNldHRpbmdzIix2YWx1ZToicW5wIn1dLHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfVE86IlRhcmdldCBEQiIsUExDX1RPOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9UTzoiSW52YWxpZCBEQiBVUkwiLEVSUl9UT19VUkw6Ik1hbGZvcm1lZCBVUkwiLEVSUl9UT19NSVNTOiJNaXNzaW5nIGxvY2FsIHRhcmdldCBEQiIsRVJSX0RVUDoiU291cmNlIGFuZCBUYXJnZXQgbXVzdCBiZSBkaWZmZXJlbnQiLEVSUl9DUkVEUzoiQ3JlZGVudGlhbHMgcmVxdWlyZWQsIGxpa2UgaHR0cDovL3VzZXI6cHdkQGFiYy54eXovLi4uIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLEVSUl9VUkVRX0NUOiJSZXF1aXJlZCB3aXRoIENyZWF0ZSB0YXJnZXQiLFRYVF9ORVdUR1Q6IkNyZWF0ZSB0YXJnZXQiLFRJUF9UR1RfUToiTnVtYmVyIG9mIHNoYXJkcywgZm9yIG5ld2x5IGNyZWF0ZWQgREJzIG9ubHkiLFRJUF9UR1RfTjoiTnVtYmVyIG9mIGRhdGEgY29waWVzIHN0b3JlZCBpbiBhIGNsdXN0ZXIsIGZvciBuZXdseSBjcmVhdGVkIERCcyBvbmx5IixUWFRfQ09QWUFDTDoiQ29weSBzb3VyY2UgREIgc2VjdXJpdHkgIGRlc2NyaXB0b3JzIixMQkxfWklQRklMRToiVGFyZ2V0IGZpbGUiLFBMQ19aSVBGSUxFOiJUYXJnZXQgLnppcCBhcmNoaXZlIGZpbGUgbmFtZSIsRVJSX05PWklQOiJZb3VyIGJyb3dzZXIgZG9lc27igJl0IGhhdmUgYWxsIGZlYXR1cmVzIHJlcXVpcmVkIHRvIGNyZWF0ZSBaSVAgZmlsZSBvbiB0aGUgZmx5LCBzb3JyeS4gVXNlIENMSSB0b29scyB0byBkdW1wIHlvdXIgZGF0YS4iLE1TR19aSVBfQkxPQjonPHNwYW4gY2xhc3M9ImRpYiB3MjAgdGFjIG1sLTIwIGZpLWFsZXJ0IHJlZDEiPjwvc3Bhbj5Zb3VyIGJyb3dzZXIgZG9lc27igJl0IGFsbG93IGNsaWVudC1zaWRlIHN0cmVhbWluZyB0byBhIGZpbGUuIEl0IG1lYW5zIGFsbCBkYXRhIHNob3VsZCBmaXQgaW4gbWVtb3J5LCBzbyBkb2504oCZdCBkdW1wIG1vcmUgdGhhbiBzZXZlcmFsIGh1bmRyZWRzIG9mIG1lZ2FiYXl0ZXMuICcsTVNHX1pJUF9XQVJOOiJUaGlzIGZlYXR1cmUgaXMgZXhwZXJpbWVudGFsLCBpdCB3b3JrcyB3ZWxsIGZvciBEQnMgdXAgdG8gc2V2ZXJhbCBHYiBpZiBib3RoIG5ldHdvcmsgYW5kIERCIGFyZSBoZWFsdGh5LiBDb25zaWRlciB1c2luZyBwcm92ZW4gQ0xJIHNvbHV0aW9ucyBmb3IgbGFyZ2VyIERCcyBvciBmbGFreSBuZXR3b3Jrcy4iLExCTF9VTlpJUE9QVDoiVW56aXAgb3B0aW9ucyIsVEFHX1VOWklQT1BUOnt0YWdzOlt7bmFtZToiQ3JlYXRlIERCcyIsdmFsdWU6ImNyZWF0ZSJ9LHtuYW1lOiJQdXQgQUNMIix2YWx1ZToiYWNsIn0se25hbWU6IlNraXAgZGVsZXRlZCIsdmFsdWU6InhkZWwifSx7bmFtZToiU2tpcCBjb25mbGljdHMiLHZhbHVlOiJ4cmV2cyJ9XSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1VOWklQREJTOiJSZXN0b3JlIERCcyIsQlROX1NUQVJUOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCB7MX0gcmVwbGljYXRpb257Mn0iLmFzc2lnbigxPT14PyIiOngseD4xPyJzIjoiIil9LEJUTl9TVEFSVF9ET0M6ZnVuY3Rpb24oeCl7cmV0dXJuIkNyZWF0ZSB7MX0gZG9jezJ9IGFuZCBzdGFydCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1pJUDpmdW5jdGlvbih4KXtyZXR1cm4iRHVtcCB7MX0gREJ7Mn0gdG8gLnppcCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1VOWklQOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCByZXN0b3JlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xFQVI6IkNsZWFyIixNU0dfU1RBUlQ6IlN0YXJ0aW5nIHsxfSBzeW5jIHRhc2suLi4iLE1TR19PS19PTkNFOiJSZXBsaWNhdGlvbiBmcm9tIHsxfSBmaW5pc2hlZCIsTVNHX09LX0RPQzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfTElWRToiQ3JlYXRlZCBhIHRhc2sgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfT05DRV9CQUNLOiJSZXBsaWNhdGlvbiB0byB7MX0gZmluaXNoZWQiLE1TR19PS19ET0NfQkFDSzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBpbmJvdW5kIHN5bmMiLE1TR19PS19MSVZFX0JBQ0s6IkNyZWF0ZWQgYSB0YXNrIGZvciB7MX0gaW5ib3VuZCBzeW5jIixNU0dfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIHsxfSBzeW5jLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1pJUF9SVU5OSU5HOiJDYW7igJl0IHN0YXJ0IG5ldyBkdW1wIHdoaWxlIGFub3RoZXIgZHVtcCB0YXNrIGlzIHJ1bm5pbmcuIFJldHJ5IHdoZW4gaXQgZmluaXNoZXMuIixFUlJfSk9COntUOiJGYWlsZWQgezF9IGZvciB7Mn0gREIuIFNlcnZlciByZXNwb25kZWQg4oCYezN9OsKgezR94oCZIixDOiIgQ29udGludWluZyB0YXNrLiIsR0VUOiJyZWFkaW5nIGRkb2NzIixVVElMUzoiY3JlYXRpbmcgdXRpbCBkZG9jIixGRERPQzoicmVwbGljYXRpbmcgZmlsdGVyaW5nIGRkb2MgdG8gdGFyZ2V0IixBQ0w6ImNsb25pbmcgc2VjdXJpdHkgb2JqZWN0IHRvIHRhcmdldCIsVE86ImNyZWF0aW5nIG91dGJvdW5kIHN5bmMiLEZST006ImNyZWF0aW5nIGluYm91bmQgc3luYyJ9LE11bHRpOntUWFRfVElUTEU6Ik5ldyBiYWNrdXAvcmVzdG9yZSBqb2IiLFRBR19NT0RFOnt0YWdzOltbe09uY2U6Im9uY2UifSx7TGl2ZToibGl2ZSJ9LHtaSVA6InppcCJ9XSxbe25hbWU6IlVzZSBfcmVwbGljYXRvciBkb2NzIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IkRvY3MgcHJlZml4IixQTENfSUQ6IlByZWZpeCBmb3Ige19yZXBsaWNhdG9yfSBkb2NzIixFUlJfSURfVU5EOiJEb2MgbmFtZXMgY2Fu4oCZdCBzdGFydCB3aXRoIHVuZGVyc2NvcmUiLExCTF9GUk9NOiJTb3VyY2UgREJzIixQTENfRlJPTToiU2VsZWN0IERCcyB0byBiYWNrdXAvcmVzdG9yZSIsRVJSX0ZST006IkF0IGxlYXN0IG9uZSBEQiByZXF1aXJlZCIsTEJMX1VOUFJFRklYOiJVbnByZWZpeCBEQnMiLFBMQ19VTlBSRUZJWDoiUHJlZml4IHRvIHJlbW92ZSBmcm9tIERCIG5hbWVzIixUSVBfVU5QUkVGSVg6IkRCIG5hbWVzIG5vdCBzdGFydGluZyB3aXRoIHByZWZpeCBhcmUga2VwdCBpbnRhY3QiLExCTF9GSUxURVI6IkZpbHRlciIsVEFHX0ZJTFRFUjp7dGFnczpbe25hbWU6IlNraXAgX2RlbGV0ZWQiLHZhbHVlOiJ4ZGVsIn0se25hbWU6IlNraXAgZGRvY3MiLHZhbHVlOiJ4ZGRvYyJ9LHtuYW1lOiJTa2lwIGNvbmZsaWN0cyIsdmFsdWU6InhyZXZzIixjc3M6InppcG9ubHkifV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1RPOiJUYXJnZXQgQ291Y2giLFBMQ19UTzoiVGFyZ2V0IENvdWNoREIgcm9vdCBVUkwiLEVSUl9UTzoiUGxlYXNlIHByb3ZpZGUgdmFsaWQgVVJMIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLExCTF9QUkVGSVg6IkFkZCBwcmVmaXgiLFBMQ19QUkVGSVg6IlN0cmluZyB0byBwcmVwZW5kIHRvIHRhcmdldCBEQiBuYW1lcyIsVFhUX05FV1RHVDoiQ3JlYXRlIHRhcmdldCBEQnMiLFRYVF9DT1BZQUNMOiJDb3B5IHNlY3VyaXR5ICBkZXNjcmlwdG9ycyBmcm9tIHNvdXJjZSBEQnMiLE1TR19TVEFSVElORzoiQ3JlYXRpbmcgc3luYyB0YXNrcy4uLiIsTVNHX1NUQVJUOiJTdGFydGluZyB7MX0gc3luYy4uLiIsTVNHX0ZBSUw6IkZhaWxlZCBzdGFydGluZyB7MX0gc3luYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkifSxDb3B5OntUWFRfVElUTEU6IlJlcGxpY2F0ZS9kdW1wIGRvY3MiLEJUTl9TVEFSVDpmdW5jdGlvbih4LGEsYil7cmV0dXJuInppcCI9PWI/IkR1bXAgezF9IGRvY3syfSIuYXNzaWduKDE9PWE/IiI6YSxhPjE/InMiOiIiKToiUmVwbGljYXRlIHsxfSBkb2N7Mn0iLmFzc2lnbigxPT1hPyIiOmEsYT4xPyJzIjoiIil9fX0sJHN0YXRzOnt9LCRsb2c6e1RYVF9USVRMRToiTG9ncyIsVFhUX0tCOiJrYiIsVFhUX1NJWkU6IlNob3ciLFRYVF9PRkZTRVQ6Im9mZnNldCIsUExDX1NFQVJDSDoiU2VhcmNoIGluIGxvZ3MiLFBMQ19SRUxPQUQ6IlJlbG9hZCIsVEFHX0RJUjp7dGFnczpbeyLigKZhdCB0aGUgYm90dG9tIjoiZm9yd2FyZCJ9XSxlbXB0eTp7IkxhdGVzdCBhdCB0aGUgdG9wIjoicmV2ZXJzZSJ9fX0sJGRpZmY6e1RYVF9CQU46IlNraXAiLFBMQ19CQU46Ik5vZGVzIHRvIGV4Y2x1ZGUiLExCTF9TUkM6IlNob3cgc291cmNlIixUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TUkM6IlNvdXJjZSByZXZpc2lvbi4uLiIsUExDX1RHVDoiVGFyZ2V0IHJldmlzaW9uLi4uIixUWFRfTk9ESUZGOiJObyBkaWZmZXJlbmNlIixUWFRfU0VMRUNUOiJTZWxlY3QgZGlmZmVyZW50IHJldmlzaW9ucyJ9LCRjb25maWc6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixFUlJfUkVMT0FEOiJFcnJvciByZWxvYWRpbmcgY29uZmlnLiBTZXJ2ZXIgcmVzcG9uZGVkIHsxfTogezJ9IixCVE5fU0FWRToiU2F2ZSBjaGFuZ2VzICZuYnNwOyIsQlROX1JFVkVSVDoiUmV2ZXJ0IHRvIHNhdmVkICIsQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xPU0U6IkNsb3NlIixUWFRfSElTVF9USVRMRToiQ29uZmlnIGNoYW5nZXMiLFRYVF9ISVNUX0VNUFRZOiJObyB1bnNhdmVkIGNoYW5nZXMiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLEVSUl9WQUw6e0NIQVJTOiJGb3JiaWRkZW4gY2hhcnMgaW4gYSBrZXksIG9ubHkgYS16LCAwLTkgYW5kIF8tISBhbGxvd2VkIixWQUxTVFJJTkc6IlZhbHVlIGNhbuKAmXQgYmUgbnVsbCwgYXJyYXkgb3Igb2JqZWN0In0sTVNHX1NBVkVfT0s6IlN1Y2Nlc3NmdWxseSB1cGRhdGVkIGNvbmZpZyIsTVNHX1NBVkVfRkFJTDoiRmFpbGVkIHVwZGF0aW5nIHNvbWUga2V5cywgc2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiLE1TR19DTFVTVEVSOiJZb3UgYXJlIG9wZXJhdGluZyBhIGNsdXN0ZXIuIFByb3BhZ2F0ZSBjb25maWcgY2hhbmdlcyB0byBhbGwgbm9kZXM/IixCVE5fU0FWRUNMVVNURVI6IlNhdmUgdG8gYWxsIG5vZGVzIixCVE5fU0FWRU5PREU6IlNhdmUgdG8gezF9IG9ubHkiLEJBTl9IVFRQOiJLZXkgY2Fu4oCZdCBiZSBjaGFuZ2VkIHRocm91Z2ggSFRUUCwgZWRpdCBsb2NhbC5pbmkgc2VydmVyc2lkZS4gUmVhc29uIGlzIENWRS0yMDE3LTEyNjM2LiIsQkFOX0NMVVNURVI6IktleSBjYW7igJl0IGJlIGNoYW5nZWQgdXNpbmcgYWRtaW4gcGFuZWwuIixNU0dfVU5LTk9XTl9LRVk6IlVua25vd24gY29uZmlnIGtleSIsSEVMUDp7T0JKX1BBVEhTOntWMToiaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuLzEuNi4xL2NvbmZpZy8iLFYyOiJodHRwczovL2RvY3MuY291Y2hkYi5vcmcvZW4vMi4zLjEvY29uZmlnLyIsVjM6Imh0dHBzOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi8zLjIuMC9jb25maWcvIixDQjoiaHR0cHM6Ly9naXRsYWIuY29tL0NvdWNoYm94L2NvdWNoYm94In0sVFhUX0RPQ1M6Ik9mZmljaWFsIGRvY3VtZW50YXRpb24iLFRYVF9OT0RPQ1M6Ik5vIG9mZmljaWFsIGRvY3VtZW50YXRpb24iLGFkbWluczp7X186IntWMn1hdXRoLmh0bWwjc2VydmVyLWFkbWluaXN0cmF0b3JzIiwiIjoiQ291Y2hEQiBub2RlIGFkbWluaXN0cmF0b3JzLCB1c2VycyBoYXZpbmcgYF9hZG1pbmAgcm9sZSIsIioiOiJLZXkgaXMgdXNlciBuYW1lLCB2YWx1ZSBpcyBwYXNzd29yZCBoYXNoLCBvciBuZXcgcGFzc3dvcmQgZm9yIHRoZSB1c2VyIn0sYXR0YWNobWVudHM6e19fOiJ7VjJ9bWlzYy5odG1sI3trZXl9IiwiIjoiQ29uZmlndXJhdGlvbiBvZiBhdHRhY2htZW50IGZpbGUgc3RvcmFnZSIsY29tcHJlc3NpYmxlX3R5cGVzOiJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb21wcmVzc2libGUgTUlNRSB0eXBlcyBsaWtlIGB0ZXh0LyosIGFwcGxpY2F0aW9uL2phdmFzY3JpcHRgIixjb21wcmVzc2lvbl9sZXZlbDoiWmxpYiBjb21wcmVzc2lvbiBsZXZlbCwgbnVtYmVyIDDigJM5In0sY2h0dHBkOntfXzoie1YzfWh0dHAuaHRtbCN7a2V5fSIsIiI6IkhUVFAgc2VydmVyIG9wdGlvbnMiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGJhY2tsb2c6Ik1vY2hpV2ViIHBhcmFtLCBzb2NrZXQgYmFja2xvZyBzaXplLCBieXRlcyIsbWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxOiJNYXggbnVtYmVyIG9mIERCcyBhbGxvd2VkIGZvciBgL19kYnNfaW5mb2AgcmVxdWVzdCIscG9ydDoiQ291Y2hEQiBwb3J0LCBudW1iZXIgMeKAkzY1NTM1IixwcmVmZXJfbWluaW1hbDoiU2VuZHMgbWluaW1hbCBzZXQgb2YgaGVhZGVycyIscmVxdWlyZV92YWxpZF91c2VyOiJXaGVuIGB0cnVlYCwgbm8gcmVxdWVzdHMgYXJlIGFsbG93ZWQgZnJvbSBhbm9ueW1vdXMgdXNlcnMiLHNvY2tldF9vcHRpb25zOiJUaGUgc29ja2V0IG9wdGlvbnMgZm9yIHRoZSBsaXN0ZW5pbmcgc29ja2V0IGluIENvdWNoREIiLGFkbWluX29ubHlfYWxsX2RiczpbIldoZW4gYHRydWVgIHByZXZlbnRzIG5vbi1hZG1pbnMgZnJvbSBhY2Nlc3NpbmcgYC9fYWxsX2Ric2AiLCIiXX0sY2h0dHBkX2F1dGg6e19fOiJ7VjN9YXV0aC5odG1sI3trZXl9IiwiIjoiQXV0aGVudGljYXRpb24gY29uZmlnIixwYXNzd29yZF9yZWdleHA6IlJlZ0V4cCByZXN0cmljdGluZyBwYXNzd29yZCB2YWx1ZSJ9LGNsdXN0ZXI6e19fOiJ7VjJ9Y2x1c3Rlci5odG1sI3trZXl9IiwiIjoiQ2x1c3RlciBvcHRpb25zIixuOiJOdW1iZXIgb2YgcmVwbGljYXMgb2YgZWFjaCBkb2N1bWVudCBpbiBhIGNsdXN0ZXIsIG51bWJlciAxKyIscGxhY2VtZW50OiJTZXRzIHRoZSBjbHVzdGVyLXdpZGUgcmVwbGljYSBwbGFjZW1lbnQgcG9saWN5IGZvciBuZXcgZGF0YWJhc2VzIixxOiJEZWZhdWx0IG51bWJlciBvZiBzaGFyZHMgZm9yIG5ld2x5IGNyZWF0ZWQgZGF0YWJhc2VzLCBudW1iZXIgMSsiLHNlZWRsaXN0OiJMaXN0IG9mIG5vZGVzIHRvIGNvbnRhY3QgaW4gb3JkZXIgdG8gam9pbiBhIGNsdXN0ZXIifSxjb21wYWN0aW9uX2RhZW1vbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJDb21wYWN0aW9uIGRhZW1vbiBjb25maWciLGNoZWNrX2ludGVydmFsOiJEZWxheSBiZWZvcmUgYXV0by1jb21wYWN0aW9uIGRhZW1vbiBjaGVja3MgYSBEQiwgc2Vjb25kcyIsbWluX2ZpbGVfc2l6ZToiTWluaW1hbCBEQiBmaWxlIHNpemUgZm9yIGNvbXBhY3Rpb24gZGFlbW9uIHRvIHRyaWdnZXIgY2hlY2siLHNub296ZV9wZXJpb2RfbXM6Ik1pbmltdW0gZ2FwIGJldHdlZW4gc3Vic2VxdWVudCBkYWVtb24gYWN0aXZhdGlvbnMsIG1pbGxpc2Vjb25kcyJ9LGNvbXBhY3Rpb25zOntfXzoie1YyfWNvbXBhY3Rpb24uaHRtbCN7a2V5fSIsIiI6IkEgbGlzdCBvZiBydWxlcyB0byBkZXRlcm1pbmUgd2hlbiB0byBydW4gYXV0b21hdGljIGNvbXBhY3Rpb24iLCIqIjonS2V5IGlzIERCIG5hbWUsIHZhbHVlIGlzIGxpa2VgW3tkYl9mcmFnbWVudGF0aW9uLCI3MCUifSwge3ZpZXdfZnJhZ21lbnRhdGlvbiwiNjAlIn0sIHtmcm9tLCIyMzowMCJ9LHt0bywiMDQ6MDAifV1gJ30sY29yczp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJDcm9zcy1vcmlnaW4gcmVzb3VyY2Ugc2hhcmluZyBjb25maWciLGNyZWRlbnRpYWxzOiJJZiBzZXQgYHRydWVgLCBDb3VjaCBzZW5kcyBhdXRoIGNvb2tpZXMgZm9yIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyIsaGVhZGVyczoiSGVhZGVycyBhY2NlcHRlZCBmb3IgQ09SUyByZXF1ZXN0cywgZ29vZCBkZWZhdWx0IGlzIGBhY2NlcHQsIGF1dGhvcml6YXRpb24sIGNvbnRlbnQtdHlwZSwgb3JpZ2luYCIsbWF4X2FnZToiU2V0cyBtYXggYWdlIGhlYWRlciBmb3IgT1BUSU9OUyByZXNwb25zZSwgc2Vjb25kcyIsbWV0aG9kczoiTGlzdCBvZiBhbGxvd2VkIG1ldGhvZHMsIGxpa2UgYEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIE9QVElPTlMsIEhFQURgIixvcmlnaW5zOiJMaXN0IG9mIG9yaWdpbnMgc2VwYXJhdGVkIGJ5IGEgY29tbWEsIGxpa2UgYGh0dHA6Ly9kb21haW4wLmNvbSwgaHR0cHM6Ly9kb21haW4xLmNvbTo0NDNgIn0sY291Y2hfaHR0cGRfYXV0aDp7X186IntWMn1hdXRoLmh0bWwje2tleX0iLCIiOiJBdXRoZW50aWNhdGlvbiBjb25maWciLGFsbG93X3BlcnNpc3RlbnRfY29va2llczoiV2hlbiBgdHJ1ZWAsIENvdWNoIGF1dG8tcmVmcmVzaGVzIHNlc3Npb24gY29va2llcyB0aW1lIHRvIHRpbWUiLGF1dGhfY2FjaGVfc2l6ZToiSG93IG1hbnkgdXNlcnMgYXJlIGNhY2hlZCBpbiBtZW1vcnksIG51bWJlciIsYXV0aGVudGljYXRpb25fcmVkaXJlY3Q6IlJlZGlyZWN0aW9uIG9uIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gaWYgdGhlIGNsaWVudCBhY2NlcHRzIGB0ZXh0L2h0bWxgIixjb29raWVfZG9tYWluOiJDb25maWd1cmVzIHRoZSBkb21haW4gYXR0cmlidXRlIG9mIHRoZSBgQXV0aFNlc3Npb25gIGNvb2tpZSIsaXRlcmF0aW9uczoiUGFzc3dvcmQgaGFzaGluZyBpdGVyYXRpb25zIGNvdW50IixtYXhfaXRlcmF0aW9uczoiTWF4aW11bSBQQktERjIgaXRlcmF0aW9ucyBjb3VudCIsbWluX2l0ZXJhdGlvbnM6Ik1pbmltdW0gUEJLREYyIGl0ZXJhdGlvbnMgY291bnQiLHByb3h5X3VzZV9zZWNyZXQ6IkZvcmNlIHByb3h5IGF1dGggdG8gdXNlIHNlY3JldCB0b2tlbiwgYGZhbHNlYCBtYWtlcyBDb3VjaCB2ZXJ5IHVucHJvdGVjdGVkIixwdWJsaWNfZmllbGRzOiJMaXN0IG9mIHB1YmxpYyBmaWVsZHMgaW4gYF91c2Vyc2AgZG9jdW1lbnRzIHRoYXQgYXJlIHVzZXIgcHJvZmlsZXMiLHJlcXVpcmVfdmFsaWRfdXNlcjoiV2hlbiBgdHJ1ZWAsIG5vIHJlcXVlc3RzIGFyZSBhbGxvd2VkIGZyb20gYW5vbnltb3VzIHVzZXJzIixzZWNyZXQ6IlNlY3JldCB0b2tlbiB1c2VkIGZvciBQcm94eSBhbmQgQ29va2llIGF1dGhlbnRpY2F0aW9uIixzYW1lX3NpdGU6IlNhbWVTaXRlIGF0dHJpYnV0ZSBmb3IgYXV0aCBjb29raWUsIGBub25lYCwgYGxheGAgb3IgYHN0cmljdGAgIix0aW1lb3V0OiJOdW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZXF1ZXN0IGJlZm9yZSBzZXNzaW9uIGV4cGlyZXMiLHVzZXJzX2RiX3B1YmxpYzoiQWxsb3cgYWxsIHVzZXJzIHRvIHZpZXcgdXNlciBkb2N1bWVudHMiLHhfYXV0aF9yb2xlczoiUHJveHkgQXV0aCByb2xlcyBoZWFkZXIgbmFtZSwgZGVmYXVsdCBpcyBgWC1BdXRoLUNvdWNoREItUm9sZXNgIix4X2F1dGhfdG9rZW46IlByb3h5IEF1dGggdG9rZW4gaGVhZGVyIG5hbWUsIGRlZmF1bHQgaXMgYFgtQXV0aC1Db3VjaERCLVRva2VuYCIseF9hdXRoX3VzZXJuYW1lOiJQcm94eSBBdXRoIHVzZXJuYW1lIGhlYWRlciBuYW1lLCBkZWZhdWx0IGlzIGBYLUF1dGgtQ291Y2hEQi1Vc2VyTmFtZWAifSxjb3VjaF9odHRwZF9vYXV0aDp7X186IntWMX1hdXRoLmh0bWwje2tleX0iLCIiOiJIVFRQIE9BdXRoIENvbmZpZ3VyYXRpb24iLHVzZV91c2Vyc19kYjoiSWYgYHRydWVgIE9BdXRoIHRva2VuIGFuZCBjb25zdW1lciBzZWNyZXRzIGFyZSBsb29rZWQgdXAgaW4gYF91c2Vyc2AgZG9jcyJ9LGNvdWNoX3BlcnVzZXI6e19fOiJ7VjJ9Y291Y2gtcGVydXNlci5odG1sI3trZXl9IiwiIjoiR2VuZXJhdGVzIGEgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtYmVyIixkZWxldGVfZGJzOiJEZWxldGUgYSB1c2VyIERCIG9uIGBfdXNlcnNgIGRvYyBkZWxldGlvbiIsZW5hYmxlOiJJZiBgdHJ1ZWAgYXV0by1jcmVhdGVzIGB1c2VyLXtoZXhuYW1lfWAgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtZWJlciJ9LGNvdWNoZGI6e19fOiJ7VjJ9Y291Y2hkYi5odG1sI3trZXl9IiwiIjoiQmFzZSBDb3VjaERCIG9wdGlvbnMiLGF0dGFjaG1lbnRfc3RyZWFtX2J1ZmZlcl9zaXplOiJCdWZmZXIgdXNlZCB3aGlsZSBzdHJlYW1pbmcgYW4gYXR0YWNobWVudCwgYnl0ZXMiLGRhdGFiYXNlX2RpcjoiRGF0YWJhc2VzIGxvY2F0aW9uIGRpcmVjdG9yeSIsZGVmYXVsdF9zZWN1cml0eToiRGVmYXVsdCBzZWN1cml0eSBvYmplY3QgZm9yIERCcywgYGV2ZXJ5b25lYCBhbmQgYGFkbWluX2xvY2FsYCBtYWtlIERCIHB1YmxpYywgYGFkbWluX29ubHlgIHByb3RlY3RzIixkZWxheWVkX2NvbW1pdHM6IklmIGB0cnVlYCBDb3VjaCBndWFyYW50ZWVzIGNoYW5nZXMgYXJlIHdyaXR0ZW4gdG8gZGlzayBiZWZvcmUgYDIweGAgcmVzcG9uc2UgaXMgc2VudCIsZmlsZV9jb21wcmVzc2lvbjoiQ29tcHJlc3Npb24gbWV0aG9kIGZvciBkb2N1bWVudHMsIGBub25lYCwgYHNuYXBweWAgb3IgYGRlZmxhdGVfTmAiLGZzeW5jX29wdGlvbnM6IkZzeW5jIG9wdGlvbnMiLG1haW50ZW5hbmNlX21vZGU6IklmIHNldCBgdHJ1ZWAsIG5vZGUgaXMgbm90IGluIGNsdXN0ZXIsIGFuZCBgL191cGAgcmV0dXJucyBgNDA0YCIsbWF4X2Ric19vcGVuOiJMaW1pdCBvZiBzaW11bHRhbmVvdXNseSBvcGVuZWQgZGF0YWJhc2VzLCBudW1iZXIiLG1heF9kb2N1bWVudF9zaXplOiJMaW1pdCBtYXhpbXVtIGRvY3VtZW50IGJvZHkgc2l6ZSwgYnl0ZXMiLG9zX3Byb2Nlc3NfdGltZW91dDoiRXh0ZXJuYWwgcHJvY2Vzc2VzIHRpbWUgbGltaXQsIG1pbGxpc2Vjb25kcyIsdXJpX2ZpbGU6IkRpc2NvdmVyeSBDb3VjaERCIGhlbHAgZmlsZSIsdXNlcnNfZGJfc3VmZml4OiJTcGVjaWZpZXMgdGhlIHN1ZmZpeCBvZiB0aGUgc3lzdGVtIGRhdGFiYXNlIG9mIHVzZXJzIix1dGlsX2RyaXZlcl9kaXI6IlNwZWNpZmllcyBsb2NhdGlvbiBvZiBiaW5hcnkgZHJpdmVycyIsdXVpZDoiVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgQ291Y2hEQiBzZXJ2ZXIgaW5zdGFuY2UiLHZpZXdfaW5kZXhfZGlyOiJWaWV3IGluZGV4ZXMgbG9jYXRpb24gZGlyZWN0b3J5Iix1c2Vyc19kYl9zZWN1cml0eV9lZGl0YWJsZTpbIkFsbG93IGVkaXRzIG9uIHRoZSBgX3NlY3VyaXR5YCBvYmplY3QgaW4gdGhlIHVzZXIgZGIiLCIiXX0sY3NwOntfXzoie1YzfW1pc2MuaHRtbCN7a2V5fSIsIiI6IkNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHNldHRpbmdzIixlbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBGYXV4dG9uIixoZWFkZXJfdmFsdWU6IkRlZmF1bHQgRmF1eHRvbiBDU1AgaGVhZGVyIHZhbHVlIixhdHRhY2htZW50c19lbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBkb2MgYXR0YWNobWVudHMiLGF0dGFjaG1lbnRzX2hlYWRlcl92YWx1ZToiRGVmYXVsdCBDU1AgaGVhZGVyIHZhbHVlIGZvciBkb2MgYXR0YWNobWVudHMiLHNob3dsaXN0X2VuYWJsZToiSWYgYHRydWVgIGVuYWJsZXMgQ1NQIGhlYWRlcnMgZm9yIG5vbi1KU09OIHNob3cvbGlzdCByZXN1bHRzIixzaG93bGlzdF9oZWFkZXJfdmFsdWU6IkRlZmF1bHQgQ1NQIGhlYWRlciB2YWx1ZSBmb3Igbm9uLUpTT04gc2hvdy9saXN0IHJlc3VsdHMifSxkYWVtb25zOntfXzoie1YyfXNlcnZpY2VzLmh0bWwje2tleX0iLCIiOiJDb3VjaERCIERhZW1vbml6ZWQgTWluaSBBcHBzIixhdXRoX2NhY2hlOiJBdXRoZW50aWNhdGlvbiBjYWNoaW5nIGxvY2F0b3IiLGNvbXBhY3Rpb25fZGFlbW9uOiJDb21wYWN0aW9uIGRhZW1vbiBsb2NhdG9yIixleHRlcm5hbF9tYW5hZ2VyOiJFeHRlcm5hbCBwcm9jZXNzZXMgbWFuYWdlciBsb2NhdG9yIixodHRwZDoiTm9kZSBIVFRQIHNlcnZlciBkYWVtb24gbG9jYXRvciIsaW5kZXhfc2VydmVyOiJDb3VjaERCIGluZGV4IHNlcnZlciBsb2NhdG9yIixxdWVyeV9zZXJ2ZXJzOiJRdWVyeSBzZXJ2ZXJzIG1hbmFnZXIgbG9jYXRvciIscmVwbGljYXRvcl9tYW5hZ2VyOiJDb3VjaCByZXBsaWNhdG9yIG1hbmFnZXIgbG9jYXRvciIsc3RhdHNfYWdncmVnYXRvcjoiQ291Y2ggc3RhdHMgYWdncmVnYXRvciBkYWVtb24gbG9jYXRvciIsc3RhdHNfY29sbGVjdG9yOiJDb3VjaCBzdGF0cyBjb2xsZWN0b3IgZGFlbW9uIGxvY2F0b3IiLHV1aWRzOiJVVUlEcyBnZW5lcmF0b3IgZGFlbW9uIGxvY2F0b3IiLHZob3N0czoiTWFuYWdlciBvZiBgdmhvc3RzYCBjb25uZWN0aW9ucyBsb2NhdG9yIn0sZGF0YWJhc2VfY29tcGFjdGlvbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJEYXRhYmFzZSBjb21wYWN0aW9uIG9wdGlvbnMiLGNoZWNrcG9pbnRfYWZ0ZXI6IlRyaWdnZXJzIGEgY2hlY2twb2ludCBhZnRlciB0aGUgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyB3ZXJlIGNvcGllZCIsZG9jX2J1ZmZlcl9zaXplOiJUaGUgY29weSBidWZmZXLigJlzIG1heGltdW0gc2l6ZSwgYnl0ZXMifSxkcmV5ZnVzOntfXzoie1YzfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IkRyZXlmdXMgc2VhcmNoIHN1YnN5c3RlbSBjb25maWd1cmF0aW9uIixsaW1pdDoiRGVmYXVsdCByZXN1bHQgc2V0IGxpbWl0IGZvciBnbG9iYWwgc2VhcmNoIixsaW1pdF9wYXJ0aXRpb25zOiJEZWZhdWx0IHJlc3VsdCBzZXQgbGltaXQgZm9yIHBhcnRpdGlvbmVkIERCcyIsbWF4X2xpbWl0OiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIGdsb2JhbCBzZWFyY2giLG1heF9saW1pdF9wYXJ0aXRpb25zOiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIHBhcnRpdGlvbmVkIHNlYXJjaCIsbmFtZToiQ2xvdXNlYXUgSlZNIG5vZGUgbmFtZSBhbmQgbG9jYXRpb24iLHJldHJ5X2xpbWl0OiJNYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9uIHJldHJpZXMifSxodHRwZDp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJIVFRQIHNlcnZlciBjb25maWcsIGZvciAyLnggb25seSBmb3IgbG9jYWwgNTk4NiBwb3J0IiwiV1dXLUF1dGhlbnRpY2F0ZSI6IklmIGB0cnVlYCB0cmlnZ2VyIGJhc2ljLWF1dGggcG9wLXVwIG9uIHVuYXV0aG9yaXplZCByZXF1ZXN0cyIsYWxsb3dfanNvbnA6IklmIGB0cnVlYCBlbmFibGVzIEpTT05QIHN1cHBvcnQsIGBmYWxzZWAgcmVjb21tZW5kZWQiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGNoYW5nZXNfdGltZW91dDoiQ2hhbmdlcyBmZWVkIHRpbWVvdXQsIG1pbGxpc2Vjb25kcyIsY29uZmlnX3doaXRlbGlzdDoiT25seSB3aGl0ZWxpc3RlZCB2YWx1ZXMgbWF5IGJlIGNoYW5nZWQgdmlhIHRoZSBgL19jb25maWdgIEhUVFAgZW5kcG9pbnRzIixkZWZhdWx0X2hhbmRsZXI6IkRlZmF1bHQgcmVxdWVzdCBoYW5kbGVyIGxvY2F0b3IiLGVuYWJsZV9jb3JzOiJJZiBgdHJ1ZWAgYWxsb3dzIENPUlMiLGVuYWJsZV94ZnJhbWVfb3B0aW9uczoiQ29udHJvbHMgWC1GcmFtZS1PcHRpb25zIGhlYWRlciIsbG9nX21heF9jaHVua19zaXplOiJNYXggcmVzcG9uc2Ugc2l6ZSBmb3IgYC9fbG9nYCByZXF1ZXN0IixtYXhfaHR0cF9yZXF1ZXN0X3NpemU6IkxpbWl0IHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIEhUVFAgcmVxdWVzdCBib2R5LCBieXRlcyIscG9ydDoiTGlzdGVuIHBvcnQiLHJlZGlyZWN0X3Zob3N0X2hhbmRsZXI6IkN1c3RvbWl6ZXMgdGhlIGRlZmF1bHQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHJlcXVlc3RzIHRvIHZpcnR1YWwgaG9zdHMiLHNlY3VyZV9yZXdyaXRlczoiQWxsb3dzIGBfcmV3cml0ZWAgcnVsZXMgcG9pbnRpbmcgdG8gZGlmZmVyZW50IERCIixzZXJ2ZXJfb3B0aW9uczoiTW9jaGlXZWIgd2ViIHNlcnZlciBvcHRpb25zIixzb2NrZXRfb3B0aW9uczoiVGhlIHNvY2tldCBvcHRpb25zIGZvciB0aGUgbGlzdGVuaW5nIHNvY2tldCBpbiBDb3VjaERCIix2aG9zdF9nbG9iYWxfaGFuZGxlcnM6Ikxpc3Qgb2YgZ2xvYmFsIGhhbmRsZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdmlydHVhbCBob3N0cyIseF9mb3J3YXJkZWRfaG9zdDoiWC1Gb3J3YXJkZXItSG9zdCIseF9mb3J3YXJkZWRfcHJvdG86IlgtRm9yd2FyZGVyLVByb3RvIix4X2ZvcndhcmRlZF9zc2w6IlgtRm9yd2FyZGVyLVNzbCJ9LGh0dHBkX2RiX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZXZlcnkgQ291Y2hEQiBkYXRhYmFzZSIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZGVzaWduX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZGVzaWduIGRvY3VtZW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZ2xvYmFsX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6Ikdsb2JhbCBIVFRQIGVuZHBvaW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saW9xOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiSU8gcXVldWUgcHJpb3JpdGl6YXRpb24gb3B0aW9ucyIsY29uY3VycmVuY3k6Ik51bWJlciBvZiBjb25jdXJyZW50IGluLWZsaWdodCBJTyByZXF1ZXN0cyB0aGF0IHRoZSBxdWV1ZWluZyBzeXN0ZW0gd2lsbCBzdWJtaXQiLHJhdGlvOiJCYWNrZ3JvdW5kIElPIHJlcXVlc3RzIHF1b3RhIHJhdGlvIn0sImlvcS5ieXBhc3MiOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiTGlzdCBvZiBvcGVyYXRpb25zIHRoYXQgY2FuIGJ5cGFzcyBJTyBxdWV1ZSIsIioiOiJLZXkgaXMgdGhlIG9wZXJhdGlvbiwgdmFsdWUgaXMgYnlwYXNzIHN0YXR1cyBmb3IgaXQifSxrZW46e19fOiJ7VjN9aW5kZXhidWlsZHMuaHRtbCN7a2V5fSIsIiI6IkJhY2tncm91bmQgaW5kZXggYnVpbGRzIixiYXRjaF9jaGFubmVsczoiQ29udHJvbHMgdGhlIG51bWJlciBvZiBiYWNrZ3JvdW5kIHZpZXcgYnVpbGRzIHRoYXQgY2FuIGJlIHJ1bm5pbmcgaW4gcGFyYWxsZWwiLGluY3JlbWVudGFsX2NoYW5uZWxzOiJBZGRpdGlvbmFsIHNsb3RzIGZvciBzaG9ydCBqb2JzIixtYXhfaW5jcmVtZW50YWxfdXBkYXRlczoiVGhyZXNob2xkIGRlZmluaW5nIGEgam9iIGFzIHNob3J0In0sImtlbi5pZ25vcmUiOntfXzoie1YzfWluZGV4YnVpbGRzLmh0bWwje2tleX0iLCIiOiJBdXRvLWluZGV4aW5nIGJsYWNrbGlzdCIsIioiOiJLZXkgaXMgYSBzaGFyZCBuYW1lIHRvIHNraXAgd2hpbGUgYXV0by1pbmRleGluZywgdmFsdWUgc2hvdWxkIGJlIGB0cnVlYCJ9LGxvZzp7X186IntWMn1sb2dnaW5nLmh0bWwje2tleX0iLCIiOiJMb2dnaW5nIG9wdGlvbnMiLHdyaXRlcjoiU2V0IHRoZSBsb2cgd3JpdGVyIHRvIHVzZTogYHN0ZGVycmAsIGBmaWxlYCwgYHN5c2xvZ2AiLGZpbGU6IkxvZ2dpbmcgZmlsZSBwYXRoIixpbmNsdWRlX3Nhc2w6IklmIGB0cnVlYCBwdXRzIFNBU0wgaW5mbyBpbnRvIGxvZ3MiLGxldmVsOiJMb2dnaW5nIHZlcmJvc2l0eTogYGRlYnVnYCwgYGluZm9gLCBgbm90aWNlYCwgYHdhcm5gLCBgZXJyYCwgYG5vbmVgIixzeXNsb2dfYXBwaWQ6IlNwZWNpZmllcyBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgYHN5c2xvZ2Agd3JpdGVyIixzeXNsb2dfZmFjaWxpdHk6IlNwZWNpZmllcyB0aGUgc3lzbG9nIGZhY2lsaXR5IHRvIHVzZSB3aXRoIHRoZSBgc3lzbG9nYCB3cml0ZXIiLHN5c2xvZ19ob3N0OiJTcGVjaWZpZXMgdGhlIGhvc3QgdG8gc2VuZCBsb2dzIHRvIGJ5IGBzeXNsb2dgIHdyaXRlciIsc3lzbG9nX3BvcnQ6IlNwZWNpZmllcyB0aGUgcG9ydCB0byBzZW5kIGxvZ3MgdG8gYnkgYHN5c2xvZ2Agd3JpdGVyIix3cml0ZV9idWZmZXI6IkJ1ZmZlciBmb3IgYGZpbGVgIGxvZyB3cml0ZXIsIGJ5dGVzIix3cml0ZV9kZWxheToiRGVsYXkgZm9yIGBmaWxlYCBsb2cgd3JpdGVyLCBtaWxsaXNlY29uZHMifSxuYXRpdmVfcXVlcnlfc2VydmVyczp7X186IntWMn1xdWVyeS1zZXJ2ZXJzLmh0bWwje2tleX0iLCIiOiJOYXRpdmUgRXJsYW5nIHF1ZXJ5IHNlcnZlciIsZW5hYmxlX2VybGFuZ19xdWVyeV9zZXJ2ZXI6IklmIGB0cnVlYCwgRXJsYW5nIFFTIGlzIGVuYWJsZWQgaW4gMi54Iixlcmxhbmc6IkVybGFuZyBRUyBsb2NhdG9yIGZvciBDb3VjaCAxLngifSxwdXJnZTp7X186IntWM31taXNjLmh0bWwje2tleX0iLCIiOiJDb25maWd1cmF0aW9uIG9mIGRhdGFiYXNlIHB1cmdlIixtYXhfZG9jdW1lbnRfaWRfbnVtYmVyOiJNYXggbnVtYmVyIG9mIGRvY3MgYWxsb3dlZCBpbiBhIHNpbmdsZSBwdXJnZSByZXF1ZXN0IixtYXhfcmV2aXNpb25zX251bWJlcjoiTWF4IG51bWJlciBvZiBhY2N1bXVsYXRlZCByZXZpc2lvbnMgaW4gYSBzaW5nbGUgcHVyZ2UgcmVxdWVzdCIsaW5kZXhfbGFnX3dhcm5fc2Vjb25kczoiTWF4IGR1cmF0aW9uIGZvciB1cGRhdGluZyBpbmRleCB0byBjb21wbHkgbG9jYWwgcHVyZ2UgY2hlY2twb2ludCJ9LHNtb29zaDp7X186IntWM31jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJBdXRvY29tcGFjdGlvbiBkYWVtb24gc2V0dGluZ3MiLGRiX2NoYW5uZWxzOiJMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBkYiBjb21wYWN0aW9uIGNoYW5uZWwgbmFtZXMiLHZpZXdfY2hhbm5lbHM6Ikxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIHZpZXcgaW5kZXggY29tcGFjdGlvbiBjaGFubmVsIG5hbWVzIn0sInNtb29zaC5yYXRpb19kYnMiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgZGJzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LCJzbW9vc2gucmF0aW9fdmlld3MiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgdmlldyBpbmRpY2VzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LHF1ZXJ5X3NlcnZlcnM6e19fOiJ7VjJ9cXVlcnktc2VydmVycy5odG1sI3trZXl9IiwiIjoiUXVlcnkgc2VydmVycyBsaXN0IiwiKiI6IktleSBpcyBsYW5ndWFnZSwgdmFsdWUgaXMgcGF0aCB0byBwcm9jZXNzb3IifSxxdWVyeV9zZXJ2ZXJfY29uZmlnOntfXzoie1YyfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IlF1ZXJ5IHNlcnZlcnMgY29uZmlndXJhdGlvbiIsY29tbWl0X2ZyZXE6IkRlbGF5IGluIHNlY29uZHMgYmVmb3JlIHZpZXcgaW5kZXggY2hhbmdlcyBhcmUgY29tbWl0dGVkIHRvIGRpc2siLGxpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixvc19wcm9jZXNzX2xpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixyZWR1Y2VfbGltaXQ6IkNvbnRyb2xzIGlmIHJlZHVjZSB0aHJvd3MgZXJyb3Igb24gYSBzdGVwIHdoaWNoIGlzIG1vcmUgdGhhbiB0d2ljZSBhcyBsYXJnZSBhcyBpbnB1dCIsc29mdF9saW1pdDoiU29mdCBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIE9TIHByb2Nlc3NlcyB1c2FibGUgYnkgUXVlcnkgU2VydmVycyIsb3NfcHJvY2Vzc19zb2Z0X2xpbWl0OiJTb2Z0IGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIn0scmVwbGljYXRvcjp7X186IntWMn1yZXBsaWNhdG9yLmh0bWwje2tleX0iLCIiOiJSZXBsaWNhdG9yIERCIGNvbmZpZyIsYXV0aF9wbHVnaW5zOiJMaXN0IG9mIHJlcGxpY2F0b3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uIHBsdWdpbnMiLGNlcnRfZmlsZToiUGF0aCB0byBhIGZpbGUgY29udGFpbmluZyB0aGUgdXNlcuKAmXMgY2VydGlmaWNhdGUiLGNoZWNrcG9pbnRfaW50ZXJ2YWw6IlJlcGxpY2F0aW9uIGNoZWNrcG9pbnQgaW50ZXJ2YWwsIG1pbGxpc2Vjb25kcyIsY29ubmVjdGlvbl90aW1lb3V0OiJIVFRQIGNvbm5lY3Rpb24gdGltZW91dCBwZXIgcmVwbGljYXRpb24gaW4gbWlsbGlzZWNvbmRzLCBkaXZpZGVkIGJ5IDMgZm9yIHB1bGwgc3luYyIsaHR0cF9jb25uZWN0aW9uczoiTWF4IG51bWJlciBvZiBIVFRQIGNvbm5lY3Rpb25zIHBlciByZXBsaWNhdGlvbiIsaW50ZXJ2YWw6IlNjaGVkdWxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIixrZXlfZmlsZToiUGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgdXNlcuKAmXMgcHJpdmF0ZSBQRU0gZW5jb2RlZCBrZXkiLG1heF9jaHVybjoiTWF4IG51bWJlciBvZiByZXBsaWNhdGlvbiBqb2JzIHRvIHN0YXJ0L3N0b3AgZHVyaW5nIHJlc2NoZWR1bGluZyIsbWF4X2pvYnM6Ik1heCBudW1iZXIgb2YgYWN0aXZlbHkgcnVubmluZyByZXBsaWNhdGlvbnMiLHBhc3N3b3JkOiJVc2Vy4oCZcyBwYXNzd29yZCwgaWYgdGhlIHByaXZhdGUga2V5IGZpbGUgaXMgcGFzc3dvcmQgcHJvdGVjdGVkIixyZXRyaWVzX3Blcl9yZXF1ZXN0OiJJZiBhIHJlcXVlc3QgZmFpbHMsIHRoZSByZXBsaWNhdG9yIHdpbGwgcmV0cnkgaXQgdXAgdG8gTiB0aW1lcyIsc29ja2V0X29wdGlvbnM6IkZpbmUgdHVuZSByZXBsaWNhdGlvbiBzb2NrZXQgb3B0aW9ucyIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIixzc2xfdHJ1c3RlZF9jZXJ0aWZpY2F0ZXNfZmlsZToiRmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiBwZWVyIHRydXN0ZWQgY2VydGlmaWNhdGVzIGluIHRoZSBQRU0gZm9ybWF0Iix1cGRhdGVfZG9jczoiSWYgYHRydWVgIENvdWNoIHVwZGF0ZXMgX3JlcGxpY2F0b3IgZG9jcyBvbiB0YXNrIGVycm9yIGFuZCBzdGFydCIsdXNlX2NoZWNrcG9pbnRzOiJJZiBgdHJ1ZWAgQ291Y2hEQiBtYWtlcyBjaGVja3BvaW50cyBkdXJpbmcgYW5kIGF0IHRoZSBjb21wbGV0aW9uIG9mIHJlcGxpY2F0aW9uIix2ZXJpZnlfc3NsX2NlcnRpZmljYXRlczoiSWYgYGZhbHNlYCBpbnZhbGlkIGNlcnRpZmljYXRlcyBkbyBub3QgcHJldmVudCByZXBsaWNhdGlvbiIsd29ya2VyX2JhdGNoX3NpemU6Ik51bWJlciBvZiBkb2NzIHRvIHJlYWQgaW4gYmF0Y2ggZHVyaW5nIHN5bmMiLHdvcmtlcl9wcm9jZXNzZXM6Ik51bWJlciBvZiBhIHJlcGxpY2F0aW9uIHN1Yi1wcm9jZXNzZXMgdG8gcnVuIHNpbXVsdGFuZW91c2x5In0scmVzaGFyZGluZzp7X186IntWMn1yZXNoYXJkaW5nLmh0bWwje2tleX0iLCIiOiJSZXNoYXJkaW5nIGNvbmZpZ3VyYXRpb24iLGRlbGV0ZV9zb3VyY2U6ImlmIGB0cnVlYCBzb3VyY2Ugc2hhcmQgc2hvdWxkIGJlIGRlbGV0ZWQgYWZ0ZXIgcmVzaGFyZGluZyIsbWF4X2pvYnM6Ik1heGltdW0gbnVtYmVyIG9mIHJlc2hhcmRpbmcgam9icyBwZXIgY2x1c3RlciBub2RlIixtYXhfcmV0cmllczoiSG93IG1hbnkgdGltZXMgdG8gcmV0cnkgc2hhcmQgc3BsaXR0aW5nIHN0ZXBzIGlmIHRoZXkgZmFpbCIscmV0cnlfaW50ZXJ2YWxfc2VjOiJIb3cgbG9uZyB0byB3YWl0IGJldHdlZW4gc3Vic2VxdWVudCByZXRyaWVzLCBzZWNvbmRzIixzb3VyY2VfY2xvc2VfdGltZW91dF9zZWM6IkhvdyBtYW55IHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHNvdXJjZSBzaGFyZCB0byBjbG9zZSIsdXBkYXRlX3NoYXJkX21hcF90aW1lb3V0X3NlYzoiSG93IG1hbnkgc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgc2hhcmQgbWFwIHVwZGF0ZSBvcGVyYXRpb24gdG8gY29tcGxldGUifSxzc2w6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiSFRUUFMgb3B0aW9ucyIsY2FjZXJ0X2ZpbGU6IkNBIENlcnRpZmljYXRlIGZpbGUgcGF0aCIsY2VydF9maWxlOiJDZXJ0aWZpY2F0ZSBmaWxlIHBhdGgiLGNpcGhlcnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBjaXBoZXIgbGlzdCwgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixmYWlsX2lmX25vX3BlZXJfY2VydDoiUmVxdWlyZSBwcmVzZW5jZSBvZiBjbGllbnQgY2VydGlmaWNhdGUgaWYgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQiLGtleV9maWxlOiJDZXJ0aWZpY2F0ZSBrZXkgZmlsZSBwYXRoIixwYXNzd29yZDoiQ2VydGlmaWNhdGUga2V5IHBhc3N3b3JkIixzZWN1cmVfcmVuZWdvdGlhdGU6IkVuYWJsZSBzZWN1cmUgcmVuZWdvdGlhdGlvbiIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIix0bHNfdmVyc2lvbnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBTU0wvVExTIHByb3RvY29sIHZlcnNpb25zIix2ZXJpZnlfZnVuOiJTU0wgdmVyaWZpY2F0aW9uIGZ1bmN0aW9uIGxvY2F0b3IiLHZlcmlmeV9zc2xfY2VydGlmaWNhdGVzOiJJZiBgdHJ1ZWAgZW5hYmxlcyBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24ifSxzdGF0czp7X186IntWMn1taXNjLmh0bWwje2tleX0iLCIiOiJTdGF0aXN0aWMgY2FsY3VsYXRpb24iLHJhdGU6IlJhdGUgb2Ygc3RhdGlzdGljcyBnYXRoZXJpbmcgaW4gbWlsbGlzZWNvbmRzIixzYW1wbGVzOiJJbnRlcnZhbHMgZm9yIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiwgc2Vjb25kcyJ9LHV1aWRzOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlVVSURzIGNvbmZpZyIsYWxnb3JpdGhtOiJHZW5lcmF0aW9uIGFsZ29yaXRobSwgYHJhbmRvbWAsIGBzZXF1ZW50aWFsYCwgYHV0Y19yYW5kb21gLCBgdXRjX2lkYCIsbWF4X2NvdW50OiJQZXItcmVxdWVzdCBVVUlEIGxpbWl0LCBudW1iZXIiLHV0Y19pZF9zdWZmaXg6IlN1ZmZpeCB0byBhcHBlbmQgd2hlbiBgdXRjX2lkYCBVVUlEIGdlbmVyYXRvciBpcyB1c2VkIn0sdmVuZG9yOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlZlbmRvciBpbmZvcm1hdGlvbiIsIioiOiJLZXkgaXMgYSBrZXkgZm9yIGBHRVQgL2AgcmVzcG9uc2UsIHZhbHVlIGlzIHJldHVybmVkIHVuZGVyIHRoZSBrZXkifSx2aG9zdHM6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiVmlydHVhbCBob3N0cyBsaXN0IiwiKiI6IktleSBpcyBsaWtlIGBkb21haW4ubmFtZTo1OTg0YCwgdmFsdWUgaXMgYC9kYm5hbWUvZG9jLy4uLmAifSx2aWV3X2NvbXBhY3Rpb246e19fOiJ7VjJ9Y29tcGFjdGlvbi5odG1sI3trZXl9IiwiIjoiVmlld3MgY29tcGFjdGlvbiBvcHRpb25zIixrZXl2YWx1ZV9idWZmZXJfc2l6ZToiS2V5LVZhbHVlcyBidWZmZXIgc2l6ZSwgYnl0ZXMifSxjb3VjaGJveDp7X186IntDQn0jY291Y2hib3gtMSIsIiI6IkNvdWNoYm94IGNvbmZpZyIsZGVidWc6IlR1cm5zIG9uIGRlYnVnIG1vZGUgKG1vcmUgaW5mb3JtYXRpdmUgbWVzc2FnZXMpIixub2RlbmFtZToiU2hvcnRjdXQgbmFtZSBvZiBjdXJyZW50IG5vZGUiLG5vZGVzOiJMaXN0IG9mIG5vZGVzLCBKU09OOyBub2RlbmFtZXMgYXJlIGtleXMsIFVSTHMgYXJlIHZhbHVlcyIsbWF4X3BhcmFsbGVsX2NoYW5nZXM6Ik1heGltdW0gY2hhbmdlcyB0aWNrcyBwcm9jZXNzZWQgc2ltdWx0YW5lb3VzbHkiLGNvbGRfc3RhcnQ6IkRlZmluZXMgaWYgZmlyc3QgcnVuIHN0YXJ0cyBmcm9tIGN1cnJlbnQgc2VxdWVuY2VzIG9yIERCIGZpcnN0IHNlcSAoJ25vcm1hbCcpIixhcGk6IkNvbmZpZ3VyZXMgUkVTVCBBUEksIEpTT04iLHByb3h5OiJQcm94eSBzZXR0aW5ncywgSlNPTi4gRGVmYXVsdCBpcyBhIG1hc2sgYSBwYXRoIHJld3JpdGVzIGludG8iLHNvY2tldDoiU29ja2V0LmlvIGNvbmZpZyIsbWFpbDoiRW1lcmdlbmN5IG5vdGlmaWNhdGlvbnMgZW1haWxzIixyZWRpc19pcDoiUmVkaXMgZG9tYWluIG9yIElQIGFkZHJlc3MiLHJlZGlzX3BvcnQ6IlJlZGlzIHBvcnQiLHJlZGlzX3Bhc3N3b3JkOiJSZWRpcyBwYXNzd29yZCwgaWYgYW55IixyZWRpc19jb21tYW5kZXI6IlJlZGlzIGNvbW1hbmRlciBjb25maWcsIEpTT04ifSxjb3VjaGJveF9hcGk6e19fOiJ7Q0J9I3Jlc3QtYXBpIiwiIjoiTGlzdCBvZiBlbmRwb2ludHMgYW5kIGRkb2NzIGF0dGFjaGVkIHRvIHRoZW0iLCIqIjoiS2V5IGlzIGVuZHBvaW50IHdpdGggYWxsIGAvYCByZXBsYWNlZCB3aXRoIGAhYCwgdmFsdWUgaXMgYGRiL2Rkb2MgcGx1Z2luMSBwbHVnaW4yIC4uLmAifSxjb3VjaGJveF9ob29rczp7X186IntDQn0jaG9va3MtY29uZmlndXJhdGlvbiIsIiI6Ikxpc3Qgb2YgZGVzaWduIGRvY3VtZW50cyB3aXRoIGhvb2tzIGFuZCBwbHVnaW5zIHRoZXkgY2FuIHVzZSIsIioiOiJLZXkgaXMgcGF0aCBvZiBkZG9jLCB2YWx1ZSBpcyBhIGxpc3Qgb2YgcGx1Z2lucyBhdmFpbGFibGUgZm9yIHRoZSBkZG9j4oCZcyBob29rcyJ9LGNvdWNoYm94X3BsdWdpbnM6e19fOiJ7Q0J9I2NvdWNoYm94LXBsdWdpbnMiLCIiOiJDb3VjaGJveCBwbHVnaW5zIGNvbmZpZyIsIioiOiJLZXlzIGlzIGEgcGx1Z2luIG5hbWUsIHZhbHVlIGlzIEpTT04gcGx1Z2luIGNvbmZpZyJ9fX0sJGFib3V0OntMX1BITzoiUGhvdG9uIHZlcnNpb24iLExfUEhPQUREOiJQaG90b24gYWRkb25zIixMX1BIT0xJQlM6IlBob3RvbiBsaWJzIixMX1BIT0ZPTlRTOiJGb250cyB1c2VkIixMX1ZFUjoiQ291Y2hEQiB2ZXJzaW9uIixMX1ZFTkRPUjoiVmVuZG9yIixMX1VSTDoiTm9kZSBVUkwiLExfQ09VQ0g6IldlbGNvbWUgbXNnIixMX0ZFQVQ6IkF1eCBmZWF0dXJlcyIsTF9DTFVTVEVSOiJDbHVzdGVyIixUWFRfQ0xVU1RFUjpmdW5jdGlvbih4KXtyZXR1cm4geCsoeCUxMD09MSYmeCUxMDAhPTExPyIgbm9kZSI6IiBub2RlcyIpfSxMX1BFUkY6IlBlcmZvcm1hbmNlIixMX1BFUkZURVNUOiJSdW4gdGVzdC4uLiIsTF9HSVRIVUI6IlBob3RvbiBhdCBHaXRodWIiLExfU09VUkNFUzoiU291cmNlIGNvZGUiLExfREw6IkRvd25sb2FkIFBob3RvbiBhcHAganNvbi4uLiIsTF9ETF9MSU5LOiJDbGljayB0byBkb3dubG9hZCIsTF9ETFBSRVA6IlByZXBhcmluZyBqc29uLi4uIixMX0NIRUNLX1VQREFURVM6IkNoZWNrIGZvciB1cGRhdGVzIixUWFRfVVBEOidOZXcgdmVyc2lvbiBmb3VuZC4gTG9jYWwgdmVyc2lvbiBpcyA8bm9iciBjbGFzcz0iYm9sZGVyIj57MX08L25vYnI+LCBsYXRlc3QgaXMgPG5vYnIgY2xhc3M9ImJvbGRlciI+ezJ9PC9ub2JyPi4gezN9ICcsVFhUX1VQRF9GRUFUVVJFUzonPHVsIGNsYXNzPSJmczkwIG10OCBtYjEyIiBzdHlsZT0ibWF4LWhlaWdodDozNTBweDtvdmVyZmxvdy15OnNjcm9sbDsiPnsxfTwvdWw+JyxNU0dfVVBEX05PTkVFRDoiTm8gdXBkYXRlIG5lZWRlZCIsQlROX1VQREFURToiVXBkYXRlIFBob3RvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixFUlJfVVBEQVRFX0NIRUNLOiJGYWlsZWQgcmVhZGluZyBuZXcgdmVyc2lvbiwgc29ycnkiLEVSUl9VUERBVEU6IkZhaWxlZCB1cGRhdGluZyBQaG90b24uIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9IixNU0dfVVBEQVRFX09LOiJQaG90b24gd2FzIHVwZGF0ZWQsIHBsZWFzZSByZWxvYWQgdGhlIHBhZ2UiLFNfVElUTEU6IkN1c3RvbWl6ZSBQaG90b24iLFNfUkVQTzoiVXBkYXRlIHJlcG8gVVJMIixTX1VQRDoiVXBkYXRlIHJlbWluZGVyIixUQUdfVVBEOnt0YWdzOltbe05ldmVyOiJubyJ9XV0sZW1wdHk6eyJUaW1lIHRvIHRpbWUiOiJyZW1pbmQifX0sU19QSU5HOiJQaW5nIC9fc2Vzc2lvbiIsVEFHX1BJTkc6e3RhZ3M6W1t7IkV2ZXJ5IG1pbiI6IjEifSx7IkV2ZXJ5IDXigIltaW4iOiI1In1dXSxlbXB0eTp7TmV2ZXI6IjAifX0sU19TQ1JPTEw6IlNjcm9sbGJhcnMiLFRBR19TQ1JPTEw6e3RhZ3M6W1t7IkhvdmVyIHNsaW0iOiIzIn0seyJTbGltICYgYnJpc2siOiI0In1dXSxlbXB0eTp7TmF0aXZlOiIwIn19LFNfRkZBTUlMWToiVUkgZm9udCBmYW1pbHkiLFNfRldFSUdIVDoiRm9udCB3ZWlnaHQiLFRBR19GV0VJR0hUOnt0YWdzOlt7VGhpbjoiMzAwIn1dLGVtcHR5OntOb3JtYWw6IjQwMCJ9fSxTX0ZDRkFNSUxZOiI8Y29kZT5Db2RlPC9jb2RlPiBmb250IGZhbWlseSIsU19QT0xMOiJUYXNrIHBvbGwgaW50ZXJ2YWwiLFNfU1RBVFNfUE9MTDoiU3RhdHMgcG9sbCBpbnRlcnZhbCIsU19JQ09OOiJCcm93c2VyIHRhYiBpY29uIixTX0NPTFM6IkRCIGxpc3QgY29sdW1ucyIsVEFHX0NPTFM6W3siREIgc2l6ZSI6ImluZm8ifSx7IkFDTCBpbmZvIjoic2VjdXJpdHkifV0sU19USEVNRToiVUkgdGhlbWUiLFRBR19USEVNRTp7dGFnczpbW3tEYXJrOiJkYXJrIn0seyJNYXRjaCBicm93c2VyIjoiYXV0byJ9XV0sZW1wdHk6e0xpZ2h0OiIifX0sU19HUk9VUDoiREIgZ3JvdXBzIixUQUdfR1JPVVA6e3RhZ3M6W1t7MTA6InRpbnkifSx7MzA6InNtYWxsIn0sezEwMDoibm9ybWFsIn0sezI1MDoibGFyZ2UifV0sW3tQcmVmaXhlZDoiYXV0byJ9XV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCKIn0sQlROX0lDT046IlVwbG9hZCBuZXcgaWNvbuKApiIsQlROX0lDT05fUkVTRVQ6IlJlc2V0IGljb24iLEJUTl9BUFBMWToiQXBwbHkifSwkdmlldzp7TVNHX0xPQURJTkc6IkxvYWRpbmcuLi4iLE9QVF9BTExET0NTOiJBbGwgZG9jdW1lbnRzIixPUFRfRERPQ1M6IkRlc2lnbiBkb2N1bWVudHMiLE9QVF9DSEFOR0VTOiJDaGFuZ2VzIGZlZWQiLE9QVF9MT0NBTDoiTG9jYWwgZG9jdW1lbnRzIixPUFRfTVFSSUVTOiJMb2NhbCBNYW5nbyBxdWVyaWVzIixPUFRfTUlORElDRVM6Ik1hbmdvIGluZGljZXMiLFRYVF9GUk9NOiJmcm9tIixQTENfU1RBUlRLRVk6IlN0YXJ0IGtleSBvciBfc2tpcCIsVElQX1NISUZUX01JTlVTOiJTaGlmdCBmcmFtZSBiYWNrd2FyZCIsVElQX1NISUZUX1BMVVM6IlNoaWZ0IGZyYW1lIGZvcndhcmQiLFRJUF9DTEVBUl9GSUxURVI6IkNsZWFyIHN0YXJ0a2V5IixUSVBfVVA6Ik9wZW4gezF9IGRvYyBsaXN0XG5pbiBuZXcgdGFiIixUSVBfUkVMT0FEOiJSZWxvYWQiLEJUTl9ORVdET0M6Ik5ldyBkb2PCoCIsQlROX05FV0RPQ19QT1BVUDoiTmV3IGRvYy4uLiIsQlROX05FV1VTRVJfRExHOiJOZXcgdXNlci4uLiIsQlROX0NPUFlET0NTOiJDb3B5L2R1bXAuLi4iLEJUTl9ERUwwOiJEZWwuLi4iLEJUTl9ERUxET0NTOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jczwvc3Bhbj4uLi4nLEJUTl9ERUwxRE9DOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jPC9zcGFuPi4uLicsQlROX0FDTDoiQUNMLi4uIixCVE5fQ09NUEFDVDoiQ29tcGFjdOKApiIsQlROX0NBTkNFTDoiQ2FuY2VsIixUSVBfQ0xPU0VKU09OOiJDbG9zZSBKU09OIixUSVBfQUREQ09MOiJBZGQgY29sdW1uIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9ERFNUQVRTOic8c3Bhbj5JbmRleCBkYXRhOsKgezJ9PC9zcGFuPiA8c3BhbiBjbGFzcz0ibWwxNSI+SW5kZXggZGlzayBzaXplOsKgezF9PC9zcGFuPicsRVJSX0dFVFZJRVdTOiJGYWlsZWQgcmVhZGluZyBsaXN0IG9mIHZpZXcgZnVuY3Rpb25zIGZvciB7MX0gREIuIixFUlJfR0VUQUNMOiJGYWlsZWQgcmVhZGluZyBzZWN1cml0eSBvYmplY3QiLFRYVF9NQVBWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14fHxhPyJ7MX0gb2YgezJ9IHJvdyIuYXNzaWduKHgsYSkrKDEhPWE/InMiOiIiKToiTm8gcm93cyI7cmV0dXJuIHgmJmEmJm51bGwhPWImJihjPSdGb3VuZCA8c3BhbiBjbGFzcz0idmlldy1mb3VuZCBwbDMgcHIzIj4nK2IrIjwvc3Bhbj4gcm93IisoMSE9Yj8icyI6IiIpKSxjfSxCVE5fVklFV0NPREU6IkNvZGUiLEJUTl9WSUVXQ09ERV9HTTonPHNwYW4gY2xhc3M9ImZpLXBlbmNpbCBmczk1Ij48L3NwYW4+JyxUSVBfVklFV0NPREU6IkVkaXQgdmlldyBzb3VyY2UgY29kZSIsTVNHX1NUQVJUX0NIQU5HRToiU3RhcnRpbmcgZnJvbSBrZXkgezF9IixFUlJfTk9UQVVTRVI6Ik5vdCBhIHVzZXIiLFRYVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9VTlNFTEVDVDoiVW5zZWxlY3QgezF9IixUWFRfVU5TRUxFQ1RfT0Y6IlVuc2VsZWN0IHsxfSBvZiB7Mn0iLFRYVF9TRUxFQ1RfQUxMOiJhbGwiLFRYVF9TRUxFQ1RfRklMVEVSOiJmaWx0ZXJlZCIsVElQX0FOQ0hPUjoiT3BlbiBhcyBhIEpTT04gaW4gbmV3IGJyb3dzZXIgdGFiIixUQUdfUkVEVUNFOnt0YWdzOltbeyJHcm91cCBub25lIjoiMCJ9LHsi4oCJTDHigIkiOiIxIn0seyLigIlMMuKAiSI6IjIifSx7IuKAiUwz4oCJIjoiMyJ9LHsi4oCJTDTigIkiOiI0In0seyLigIlMNeKAiSI6IjUifSx7RXhhY3Q6Ijk5In1dXSxlbXB0eTp7Ik5vIHJlZHVjZSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUQUdfV0lUSERPQ1M6e3RhZ3M6W3siSW5jbHVkZSBkb2NzIjoiZG9jcyJ9XSxlbXB0eTp7IlJldnMgb25seSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUWFRfREVMX1RJVExFOiJCdWxrIGRlbGV0ZSBkb2NzIixUWFRfREVMX1dBUk46ZnVuY3Rpb24oeCxhKXtyZXR1cm4iWW91IGFyZSBnb2luZyB0byBkZWxldGUgIit4KyIgZG9jIisoeD4xPyJzIjoiIikrIiBmcm9tIHRoZSDigJgiK2ErIuKAmSBEQi4ifSxUWFRfREVMX1dBUk5fSElEREVOOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIk9ubHkgIithKyIgZG9jIisoYT4xPyJzIjoiIikrIiBvZiAiK3grIiBzZWxlY3RlZCAiKygxPT1hPyJpcyI6ImFyZSIpKyIgdmlzaWJsZSBpbiBjdXJyZW50IHNjb3BlLCBiZSBjYXJlZnVsLiJ9LEJUTl9ERUxfU1RBUlQ6IlByb2NlZWQiLExCTF9ERUxfQUxMOiJEZWwgZG9jcyBhbmQgdGhlaXIgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jcyBhcyBkZWxldGVkLCBidXQgcmV0YWluIGNvbnRlbnQiLExCTF9ERUxfUFVSR0U6IlB1cmdlIGRvY3MgY29tcGxldGVseSIsTVNHX0RFTF9PSzpmdW5jdGlvbih4LGEsYixjKXt2YXIgZD0iIGZyb20gdGhlIOKAmCIrYisi4oCZIERCIjtyZXR1cm4gYT09eD9kPSJTdWNjZXNzZnVsbHkgIisoInB1cmdlIiE9Yz8iZGVsZXRlZCAiOiJwdXJnZWQgIikrYSsiIGRvYyIrKGE+MT8icyI6IiIpK2Q6KGQ9IkRlbGV0ZWQgIithKyIgZG9jIisoYT4xPyJzIjoiIikrZCsiLCBidXQgZmFpbGVkIHRvIGRlbGV0ZSAiKyh4LWEpKyIgZG9jIisoeC1hPjE/InMiOiIiKSsiLiAiLGQrPSJQb3NzaWJseSwgZGVsZXRpb24gd2FzIGRlbmllZCBieSB2YWxpZGF0ZSBmdW5jdGlvbiwgb3IgZG9jIisoeC1hPjE/InMgd2VyZSI6IiB3YXMiKSsiIGFscmVhZHkgZGVsZXRlZC4gIixkKz0iU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiksZH0sTVNHX0RFTF9GQUlMOiJGYWlsZWQgZGVsZXRpbmcgZG9jc+KAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7MX06IHsyfeKAmSJ9LCRkYnM6e1RJUF9SRUxPQUQ6IlJlbG9hZCBEQiBsaXN0IixCVE5fTkVXREI6Ik5ldyBEQi4uLiIsQlROX0NPTVBBQ1Q6IkNvbXBhY3QuLi4iLEJUTl9ERUxEQjoiRGVsZXRlLi4uIixCVE5fTE9HUzoiTG9nc+KAiSIsQlROX1NUQVRTOiJTdGF0c+KAiSIsQlROX0NBTkNFTDoiQ2FuY2VsIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9EQlNWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz0iIjtyZXR1cm4gYz14fHxhP3g9PWE/eCsiIERCIisoYT4xPyJzIjoiIik6eD4xZTR8fGE+MWU0PyJ7MX0gLyB7Mn0iLmFzc2lnbih4LGEpOng+OTkmJmE+OTl8fHg+OTk5fHxhPjk5OT8iezF9IG9mIHsyfSIuYXNzaWduKHgsYSk6InsxfSBvZiB7Mn0gREIiLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gREJzIixiJiYoYys9IiAiK2IpLGN9LFRYVF9UQVNLVklFVzpmdW5jdGlvbih4LGEpe3JldHVybiB4fHxhPyh4PT1hPyJ7MX0gdGFzayI6InsxfSBvZiB7Mn0gdGFzayIpLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gdGFza3MifSxUSVBfREJTSVpFOiJEYXRhOiB7MX1cbkRpc2s6IHsyfSIsTVNHX05FV0RCX1NUQVJUOiJDcmVhdGVkIG5ldyBEQiDigJh7MX3igJkiLE1TR19ORVdEQl9GQUlMOiJGYWlsZWQgY3JlYXRpbmcgREIg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfTkVXREJfTk9BQ0w6IkRCIOKAmHsxfeKAmSBjcmVhdGVkLCBidXQgc2V0dGluZyBzZWN1cml0eSBjb25maWcgZmFpbGVkLCBzbyBEQiBpcyBwdWJsaWMuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIixUWFRfU0VMRUNUOiJTZWxlY3QgezF9IixUWFRfVU5TRUxFQ1Q6IlVuc2VsZWN0IHsxfSIsVFhUX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1NFTEVDVF9GSUxURVI6ImZpbHRlcmVkIixIX0RPQ1M6IkRvY3MiLEhfREVMRE9DUzoiRGVsZXRlZCIsSF9TRVE6IlNlcSIsSF9TSVpFOiJEaXNrIixUSVBfRE9DX0lORk86IlNob3cgREIgaW5mbyIsVElQX0JUTl9BQ0w6IkVkaXQgREIgYWNjZXNzIGNvbnRyb2wgbGlzdCIsVElQX0JUTl9TVEFSOiJBZGQvcmVtb3ZlIHRvIGZhdm9yaXRlcywgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgbGlzdCIsVElQX0JUTl9JTkZPOiJTaG93IERCIGluZm8gSlNPTiIsVElQX0NMT1NFSlNPTjoiQ2xvc2UgSlNPTiIsVFhUX0RCSU5GT19MT0FEOiJMb2FkaW5nLi4uIixFUlJfREJJTkZPOiJFcnJvciByZWFkaW5nIERCIGluZm8iLFRYVF9UQVNLX1RJVExFOiJUYXNrcyIsVEFHU19UQVNLX1RZUEU6e3RhZ3M6W1t7QWN0aXZlOiJhY3RpdmUifV0sW3tTeW5jOiJyZXBsaWNhdGlvbiJ9LHtDb21wYWN0aW9uOiJjb21wYWN0aW9uIn1dXSxlbXB0eTp7IuKAiUFsbOKAiSI6IiJ9fSxUSVBfVEFTS19SRUxPQUQ6IlJlbG9hZCB0YXNrcyIsQlROX1RBU0tfTkVXU1lOQzoiU3luYy9kdW1wLi4uIixCVE5fVEFTS19CQUNLVVA6IlN5bmMvZHVtcC4uLiIsQlROX1RBU0tfUkVTWU5DOiJSZXN0YXJ0Li4uIixUWFRfVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9UX1VOU0VMRUNUOiJVbnNlbGVjdCB7MX0iLFRYVF9UX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1RfU0VMRUNUX0ZJTFRFUjoiZmlsdGVyZWQiLFRYVF9UQVNLX1JFU1lOQ19USVRMRToiUmVzdGFydCByZXBsaWNhdGlvbnMiLFRYVF9UQVNLX1JFU1lOQ19XQVJOOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4nWW91IGFyZSBnb2luZyB0byByZXN0YXJ0IDxzcGFuIGNsYXNzPSJib2xkZXIiPicreCsiPC9zcGFuPiBzeW5jIHRhc2siKyh4PjE/InMiOiIiKSsiLiBUYXNrIGRvYyIrKHg+MT8icyI6IiIpKyIgaW4gIitiKyIgREIgd2lsbCBiZSBkZWxldGVkLCBhbmQgdGhlbiByZS1jcmVhdGVkLiJ9LEJUTl9UQVNLX1BST0NFRUQ6IlByb2NlZWQiLE1TR19UQVNLX1JFU1lOQzoiU3luYyBkb2NzIGRlbGV0ZWQsIHRhc2tzIHN0b3BwZWQuIFRyeWluZyB0byByZXN0YXJ0IHN5bmMgdGFza3MuLi4iLE1TR19UQVNLX1JFU1lOQ19PSzoiU3luYyB0YXNrcyByZXN0YXJ0ZWQiLEVSUl9UQVNLX1JFU1lOQzoiRXJyb3IgcmVzdGFydGluZyBzeW5jIHRhc2tzLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsQlROX1RBU0tfU1RPUDoiUmVtb3ZlLi4uIixUWFRfVEFTS19TVE9QX1RJVExFOiJTdG9wL3JlbW92ZSByZXBsaWNhdGlvbiB0YXNrcyIsVFhUX1RBU0tfU1RPUF9XQVJOOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14K2EsZD0nWW91IGFyZSBnb2luZyB0byBzdG9wIGFuZCByZW1vdmUgPHNwYW4gY2xhc3M9ImJvbGRlciI+JytjKyI8L3NwYW4+IHN5bmMgdGFzayIrKGM+MT8icyI6IiIpKyIuICI7cmV0dXJuIHg+MCYmKGQ9ZCsiVGFzayBkb2MiKyh4PjE/InMiOiIiKSsiIGluICIrYisiIERCIHdpbGwgYmUgZGVsZXRlZC4iKSxkfSxNU0dfVEFTS19TVE9QOiJTeW5jIGRvY3MgZGVsZXRlZCwgdGFza3Mgc3RvcHBlZCIsRVJSX1RBU0tfU1RPUDoiRXJyb3Igc3RvcHBpbmcgdGFza3MsIHNlcnZlciByZXNwb25kZWQgezF9In0sJGZpbGU6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiU2F2ZSBmaWxlICIsQlROX1NBVkVBUzoiU2F2ZSBhcy4uLiIsQlROX0RFTDoiRGVsZXRlLi4uIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19TQVZFOiJGaWxlIHsxfSB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkIGludG8gezJ9IixFUlJfU0FWRToiRXJyb3Igc2F2aW5nIGZpbGUgezF9IGludG8gaXRzIGRvYywgc2VydmVyIHJlc3BvbmRlZCB7Mn0ifSwkZG9jOntUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiwqBTYXZlwqAiLEJUTl9TQVZFQVM6IkNsb25lLi4uIixCVE5fREVMOiJEZWwuLi4iLEJUTl9ESUZGOiJEaWZm4oCJIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLFRYVF9ISVNUX1RJVExFOiJIaXN0b3J5IixUWFRfSElTVF9FTVBUWToiQ2hhbmdlcyBoaXN0b3J5IGlzIGVtcHR5IixCVE5fSElTVF9DTEVBUjoiQ2xlYXIiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLE1TR19TQVZFOiJEb2MgezF9IHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQgd2l0aCByZXZpc2lvbiB7Mn0iLEVSUl9TQVZFOiJFcnJvciBzYXZpbmcgZG9jLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsRVJSX1NBVkVMT0FEOiJEb2Mgd2FzIHNhdmVkLCBob3dldmVyIGxvYWRpbmcgaXQgYWZ0ZXIgc2F2ZSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9IixNU0dfRURTOiJUaGVyZSBhcmUgYWN0aXZlIGVkaXRvcnMgY29udGFpbmluZyBub3QgeWV0IGFwcGxpZWQgY2hhbmdlcy4iLEJUTl9FRFNfWUVTOiJBcHBseSBjaGFuZ2VzIGFuZCBzYXZlwqAiLEJUTl9FRFNfTk86IkRpc2NhcmQgYW5kIHNhdmXCoCIsTVNHX0NPTkZMSUNUOic8ZGl2IGNsYXNzPSJmczEzMCBsaDE1MCBtYjIgYm9sZGVyIG9yYW5nZSI+Q29uZmxpY3Q8L2Rpdj5Db25mbGljdCBzYXZpbmcgZG9jIOKAmHsxfeKAmSA8YnI+PHNwYW4gY2xhc3M9ImRpYiB3MTQwIj5Zb3VyIHJldjogPC9zcGFuPjxub2JyPnsyfTwvbm9icj4gPGJyPjxzcGFuIGNsYXNzPSJkaWIgdzE0MCI+REIgcmV2OiAgIDwvc3Bhbj48bm9icj57M308L25vYnI+LicsQlROX0NPTkZMSUNUX1lFUzoiT3ZlcndyaXRlIERCIGRvYyIsQlROX0NPTkZMSUNUX05POiJDYW5jZWwgc2F2ZSIsTVNHX0NPTkZMSUNUX0NBTkNFTExFRDoiQ2FuY2VsbGVkLCBkb2Mgd2FzIG5vdCBzYXZlZCIsTVNHX0NPTkZMSUNUX0xPQURGQUlMOiJGYWlsZWQgbG9hZGluZyBjb25mbGljdGluZyByZXZpc2lvbiwgZG9jIGNhbiBub3QgYmUgc2F2ZWQiLFRYVF9ERUxfVElUTEU6IkRlbGV0ZSBkb2MiLFRYVF9ERUxfVElUTEVfQ09ORkxJQ1Q6IkRlbGV0ZSBkb2MgY29uZmxpY3QiLFRYVF9ERUxfV0FSTjoiWW91IGFyZSBnb2luZyB0byBkZWxldGUgZG9jIDxub2JyPuKAmHsxfeKAmTwvbm9icj4gZnJvbSB0aGUg4oCYezJ94oCZIERCLiIsQlROX0RFTF9TVEFSVDoiUHJvY2VlZCIsVFhUX0RFTF9OT0RFTDoiTm90ZSwgdGhhdCB0aGUgZG9jIGhhcyBjb25mbGljdCByZXZpc2lvbnMsIGFuZCBvbmUgb2YgdGhlbSBwcm9iYWJseSBiZWNvbWUgYWN0aXZlIGFmdGVyIGRlbGV0aW9uLiIsVFhUX0RFTF9DT05GTElDVDoiTm90ZSwgdGhhdCB5b3UgYXJlIGRlbGV0aW5nIGNvbmZsaWN0IHJldmlzaW9uLCBpdCB3aWxsIG5vdCBhZmZlY3QgYWN0aXZlIHZlcnNpb24gb2YgdGhlIGRvYy4iLExCTF9ERUxfQUxMOiJEZWwgZG9jIGFuZCBpdHMgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jIGFzIGRlbGV0ZWQsIGJ1dCByZXRhaW4gY29udGVudCIsTEJMX0RFTF9QVVJHRToiUHVyZ2UgZG9jIGNvbXBsZXRlbHkiLE1TR19ERUxfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIGRvYyDigJh7MX3igJkgZnJvbSB0aGUg4oCYezJ94oCZIERCIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBkb2Mg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfREVMX1JFTE9BRDoiVXBkYXRlZCBsYXRlc3QgYWN0aXZlIHJldmlzaW9uIG9mIHRoZSBkb2MiLE1TR19ERUxfUkVMT0FEX0ZBSUw6IkZhaWxlZCByZWFkaW5nIGFjdGl2ZSByZXYgb2YgZG9jIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LCRlcnJvcjp7VFhUX0VSUjonPGRpdiBjbGFzcz0icmVkIHRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+RXJyb3Igc3dpdGNoaW5nIDxpPnsxfTwvaT48YnI+PHNwYW4gY2xhc3M9ImJvbGRlciI+ezJ9PC9zcGFuPjwvZGl2PicsQlROX1JFVFJZOic8c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBvNjAiPjwvc3Bhbj7CoFRyeSBhZ2FpbsKgJyxCVE5fQVVUSDonPHNwYW4gY2xhc3M9ImZpLXRvcnNvIG82MCI+PC9zcGFuPiBMb2cgaW4gJyxUWFRfQzNfQUxMX0RCU180MDE6JzxkaXYgY2xhc3M9InRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+U29ycnksIENvdWNoREIgMyBoaWRlcyBmdWxsIGxpc3Qgb2YgREJzIGZyb20gbm9uLWFkbWluIHVzZXJzLiBUbyBuYXZpZ2F0ZSB0aHJvdWdoIERCcyBzZWxlY3QgYSBEQiB5b3UgdmlzaXRlZCByZWNlbnRseSAoaWYgYW55KSwgb3IgZW50ZXIga25vd24gREIgbmFtZS48L2Rpdj4nLFBMQ19EQk5BTUU6IkVudGVyIGV4aXN0aW5nIERCIG5hbWUiLEJUTl9HTzoiT3BlbiBEQiJ9fX0sQmFzZToiIixBbGw6e30sR3JvdXBzOnt9LFRhYnM6W10sVHlwZXM6W10sSGlzdG9yeTpbXSxEb3dubG9hZFVSTDohMSxSZXBsaWNhdG9yREI6IiIsaXNDbHVzdGVyOiEwLGlzSUU6ITEsaU9TOiExLGlzV2ViS2l0OiExLGlzTWFjOiEwLGNhblppcDpudWxsLENvdWNoOnt2ZXJzaW9uOiIiLHE6MCxuOjAscG9ydDo1OTg0fSxVc2Vyczp7X3NlcTowfSxNZW1iZXJzaGlwOnt9LFBhbmVsSGVpZ2h0OjAsaXNCYXI6ITEsZGF0YTp7cGF0aDpbXSxuYW1lOiIifSxwYXJhbXM6e3Jlc3R5bGU6MTYsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5kYXRhLGEuQ2ZnKSxjPSQuRGVmZXJyZWQoKSxkPXdpbmRvdy5ERE9DLGU9d2luZG93LmxvY2F0aW9uLGY9d2luZG93Lm5hdmlnYXRvcixnPU9iamVjdC5rZXlzKGEpLmZpbHRlcigvXlwkLyk7YS5fY29tcGlsZWQ9YS5fY29tcGlsZWR8fCEoY3cuQ1d8fCJib29sZWFuIj09dHlwZW9mIGN3LmRlYnVnKSxPYmplY3Qua2V5cyhhLkYpLmZvckVhY2goeD0+YVt4XT1hW3hdfHxhLkZbeF0uYmluZChhKSksYS5TZXNzaW9uPWEuU2Vzc2lvbi5kZWJvdW5jZSgxZTMpLGEuVHlwZXM9Zy5zbGljZSgwKSxhLmlzSUU9ISFmLnVzZXJBZ2VudC5tYXRjaCgvRWRnZXxUcmlkZW50LyksYS5pc01hYz0vTWFjLy50ZXN0KGYucGxhdGZvcm0rIiIpLGEuaU9TPS9eKGlQYWR8aVBob25lKSQvLnRlc3QoZi5wbGF0Zm9ybSsiIil8fGEuaXNNYWMmJmYubWF4VG91Y2hQb2ludHM+MSxhLmlzV2ViS2l0PSFhLmlzSUUmJi9BcHBsZVdlYktpdC8udGVzdChmLnVzZXJBZ2VudCsiIiksYS5Mcz1hLkxzKCksYS5McygiVGFza3MuU3RhcnMiKSYmKGEuTHMoIkRCcy5TdGFycyIsYS5McygiVGFza3MuU3RhcnMiKSksYS5McygiVGFza3MuU3RhcnMiLG51bGwpKSxhLkJhc2V8fChhLkJhc2U9ZD9kLl9iYXNlOltlLnByb3RvY29sLCIiLGUuaG9zdCwiIl0uY29tcGFjdCgpLmpvaW4oIi8iKSksYS5fY29tcGlsZWQmJi9eV2luLy50ZXN0KGYucGxhdGZvcm0rIiIpJiYkKCIjc2Nyb2xsYmFyLXR3ZWFrIikudGV4dChbIiB7d2lkdGg6NHB4OyBoZWlnaHQ6NHB4O30iLCItdGh1bWIge2JhY2tncm91bmQ6cmdiYSg5MCw5MCw5MCwwLjIpOyBib3JkZXItcmFkaXVzOjJweDt9IiwiLXRyYWNrIHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Il0ubWFwKHg9PiI6Oi13ZWJraXQtc2Nyb2xsYmFyIit4KS5qb2luKCJcbiIpKSx4Lmh0bWwoYS5IVE1MKSxPYmplY3Qua2V5cyhhLkVkKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuRWRbeF0uaWQmJihhLkVkW3hdPSQuZXh0ZW5kKCEwLCQubXkuY2FjaGUoYS5FZFt4XS5pZCl8fHt9LGEuRWRbeF0se1BobzphLlBob30pKX0pO3ZhciBoPWEuRWQuanNvbnRyZWU7JC5leHRlbmQoITAsaC4kZmlsZXMudWkseyIuaWtleSI6aC4kbXVsdGkudWlbIi5pa2V5Il0sIi5idG4tanNvbiI6aC4kbXVsdGkudWlbIi5idG4tanNvbiJdfSksWyJIaXN0b3J5IiwiSFRNTC5IaXN0b3J5Um93IiwiRXh0RWQuTm9kZVVwZGF0ZWQiLCJFeHRFZC5FZGl0b3JJbnZva2VkIiwic3R5bGUuICIsImNtZFVuZG8iLCJ1aS4jZG9jLWhpc3RvcnkiLCJ1aS4jc3R5bGUtaGlzdG9yeSIsInVpLiNlbXB0eS1oaXN0b3J5IiwidWkuI2J0bi1oaXN0b3J5LXVuZG8iLCJzdHlsZS4gI2RvYy1oaXN0b3J5Il0uZm9yRWFjaChmdW5jdGlvbih4KXtjdy5saWIudW5tYXNrKGEuJGNvbmZpZyxjdy5saWIuZ2V0cmVmKGEuJGRvYyx4KSx4KX0pLGEuJHN0YXRzPSQuZXh0ZW5kKCEwLHt9LCQubXkuY2FjaGUoYS4kc3RhdHMuaWQpfHx7fSxhLiRzdGF0cyk7dmFyIGk9WyJUYWIiLCJMb2dpbiIsIkxvZ291dCIsIlJlcUpTT04iLCJDb21wYWN0IiwiTmV3REIiLCJEZWxEQiIsIlNlY09iaiIsIlVzZXJEb2MiLCJNYW5nb0VkIiwiVmlld0VkIiwiSW5kZXhFZCIsIlN5bmNUYXNrIiwiU3luY1Rhc2suRHVtcFppcCIsIlN5bmNUYXNrLlVuZHVtcCJdLmFkZChnKSxqPVsiaXNJRSIsImlPUyIsImlzV2ViS2l0IiwiUGhvIiwiUmVxIiwidHJ1bmMiLCJwMnUiLCJTZWwyU2Nyb2xsIiwibmljZVNjcm9sbCIsInNlbGVjdDIiXTtpZihpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9Y3cubGliLmdldHJlZihhLHgpO2ImJihiLmxhbmcmJiQuZXh0ZW5kKGIubGFuZyxhLmxhbmdbeF18fHt9KSxqLmZvckVhY2goZnVuY3Rpb24oeCl7Ylt4XT1hW3hdfSksYi5CdXN5PWEuRi5CdXN5KX0pLGEuajJoPWEuRWQuanNvbnRyZWUuajJoLHgub24oInRhYmNsb3NlLm15IiwoeCxiKT0+YS5DbG9zZShiKSksYS5fY29tcGlsZWQpe3ZhciBrPWEuTHMoIlRhYkNsb3NlSGlzdG9yeSIpO2lmKGsmJmsubGVuZ3RoKWlmKERhdGUubm93KCkta1swXS5zdGFtcDwzZTQpYS5UYWJzPU9iamVjdC5jbG9uZShrWzBdLnRhYnMsITApO2Vsc2V7dmFyIGw9W107ay5mb3JFYWNoKGZ1bmN0aW9uKHgpe0RhdGUubm93KCkteC5zdGFtcD4xNTU1MmU2fHxsLmxlbmd0aDx4LnRhYnMubGVuZ3RoJiYobD14LnRhYnMpfSksbC5sZW5ndGgmJihhLlRhYnM9T2JqZWN0LmNsb25lKGtbMF0udGFicywhMCkpfXZhciBtPWEuTHMoIkNmZyIpO209T2JqZWN0LmlzT2JqZWN0KG0pP206e30sJC5leHRlbmQoITAsYS5DZmcsbSksJC5leHRlbmQoYS5DZmcsT2JqZWN0LnNlbGVjdChtfHx7fSxbImxpc3RDb2xzIiwiZ3JvdXBpbmciXSkpLCInUFQgTW9ubyciPT1hLkNmZy5mb250Q29kZSYmKGEuQ2ZnLmZvbnRDb2RlPSJDb3VzaW5lIiksIidQVCBNb25vJyI9PWEuQ2ZnLmZvbnQmJihhLkNmZy5mb250PSJDb3VzaW5lIiksYS5DZmcudGFiQmFyPSJhdXRvIiwkLm5pY2VzY3JvbGwub3B0aW9ucy5tb3VzZXNjcm9sbHN0ZXA9MjUqYS5DZmcuc2Nyb2xsU3BlZWQtNSwkLmV4dGVuZChhLkNmZyxkJiZkLnNldHRpbmdzP2Quc2V0dGluZ3M6e30pfXJldHVybiBiPWEuQ2ZnLHgudGhlbihmdW5jdGlvbigpe2EuX2NvbXBpbGVkfHwoY3cubG9nKCJQaG90b24gc3RhcnRlZCBpbiBDbG91ZFdhbGwiKSx4Lm9uKCJjbGljay5teSIsImEiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5hdHRyKCJocmVmIik7aWYoIiMiPT1iWzBdKXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9eIytcLz8vLCIiKSkuc3BsaXQoIi8iKS5jb21wYWN0KCEwKTtyZXR1cm4gYS5Td2l0Y2goYyksITF9fSkpLGEuX2NvbXBpbGVkJiYoIWZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGIoKXt2YXIgeD0oZS5oYXNoKyIiKS5yZXBsYWNlKC9eIysvLCIiKS5zcGxpdCgiLyIpLm1hcChkZWNvZGVVUklDb21wb25lbnQpOyJfZGVzaWduIj09eFsxXSYmKHhbMl09Il9kZXNpZ24vIit4WzJdLHgucmVtb3ZlQXQoMSkpLGEuU3dpdGNoKHgpfSQod2luZG93KS5vbigiaGFzaGNoYW5nZS5waG8iLGIuZGVib3VuY2UoMWUzLzYwKzMpKSxudWxsIT14JiYoZS5oYXNoPXgrIiIpLCQod2luZG93KS50cmlnZ2VyKCJoYXNoY2hhbmdlIil9KCksJCgnbGlua1tyZWw9Imljb24iXScpLmF0dHIoImhyZWYiLGIuaWNvbnx8YS5maWxlc1siZmF2aWNvbi5wbmciXS51cmwpLHdpbmRvdy5vbmJlZm9yZXVubG9hZD1mdW5jdGlvbih4KXtpZihhLlRhYnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNoMCE9eC5oYXNoMX0pKXt2YXIgYj1hLmxhbmcuRExHX1VOTE9BRDt4LnJldHVyblZhbHVlPWJ9cmV0dXJuIGJ9LCQod2luZG93KS5vbigidW5sb2FkIixmdW5jdGlvbigpe3ZhciB4PU9iamVjdC5jbG9uZShhLlRhYnMsITApLGI9YS5McygiVGFiQ2xvc2VIaXN0b3J5Iil8fFtdO2IudW5zaGlmdCh7c3RhbXA6RGF0ZS5ub3coKSx0YWJzOngubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJ1bj0hMSx4LmVycm9yPSExLHguaGFzaDA9eC5oYXNoMT0iIix4fSl9KSxhLkxzKCJUYWJDbG9zZUhpc3RvcnkiLGIudG8oMykpfSksYS5VcGRhdGVyLmRlYm91bmNlKDFlMykoKSxhLnBpbmdTZXNzaW9uLmV2ZXJ5KDFlNCkpLGEubXkucmVzdHlsZSgpfS5kZWJvdW5jZSgxMCkpLGEuR2V0TGlzdCgpLmFsd2F5cyhmdW5jdGlvbigpe2MucmVzb2x2ZSgpfSksYy5wcm9taXNlKCl9LHVpOnsiI2wtcm9vdCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4LmF0dHIoInRpdGxlIixhLmxhbmcuVElQX1JPT1QpLHgub24oImRibGNsaWNrLm15IixmdW5jdGlvbigpe3JldHVybiBhLkNsb3NlQWxsLmRlbGF5KDUwKSwhMX0pfSxiaW5kOmZ1bmN0aW9uKHgpe3JldHVyblt0aGlzLlNWRy5sb2dvLCc8c3BhbiBjbGFzcz0ibm9iYXIgcGw4IGZzMTE1IHcyMjAgbncgb2ggZWxsIGxoMTgwIj4nLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiPC9zcGFuPiJdLmpvaW4oIiIpfX0sIiNidG4tYXNpZGUtYXV0aCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jdy5tZSgpLGU9Yy5pc0JhcixmPSIiO2lmKGIuYXR0cigidGl0bGUiLGQ/Yy5sYW5nLlRJUF9QUk9GSUxFOmMubGFuZy5USVBfTE9HSU4pLGY9JzxzcGFuIGlkPSJidG4tYXV0aC1wb3B1cCI+ezF9PC9zcGFuPicuYXNzaWduKGQ/Yy5TVkcudXNlcjpjLlNWRy5sb2dpbiksbnVsbD09YSlyZXR1cm4gZjtpZihiLmRhdGEoIm1vZGFsIikpYi5tb2RhbCghMCk7ZWxzZSBpZihkKXsoY3cubWUoInJvbGVzIil8fFtdKS5sZW5ndGg7dmFyIGc9Yy5pc0Jhcj8yNTA6Yy5teS5maW5kKCIjbC1oZWFkZXIiKS53aWR0aCgpLTQyO2MubXkubW9kYWwoIiNidG4tYXNpZGUtYXV0aCIse2JvdW5kOjUsbWFuaWZlc3Q6Yy5Mb2dvdXQsd2lkdGg6Zyxub3NlOmU/InRvcCI6ImJvdHRvbSIsYWxpZ246InsxfTtyaWdodDotNDRweDsiLmFzc2lnbihlPyJ0b3A6ODclIjoiYm90dG9tOjExNyUiKSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiExLHo6MTk5Nn0pfWVsc2UgYy5teS5tb2RhbCgiI2J0bi1hc2lkZS1hdXRoIix7bWFuaWZlc3Q6Yy5Mb2dpbixib3VuZDoyLHdpZHRoOjMyMCxjbG9zZTohMSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiEwLGdsb2JhbDohMCx6OjNlMyxjc3M6InAyMCBwdDE1IHhncmF5In0pO3JldHVybiBmfSxldmVudHM6ImNsaWNrLm15IixsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJnRoaXMubXkuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpfX19LCIjYnRuLWFzaWRlLWNvbmZpZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX0NPTkZJRyksJzxhIGhyZWY9IiNfY29uZmlnIj4nK3RoaXMuU1ZHLmNvbmZpZysiPC9hPiJ9fSwiI2J0bi1hc2lkZS1zaGFyZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX1NIQVJFKSwnPGEgaHJlZj0iI19hYm91dCI+Jyt0aGlzLlNWRy5zaGFyZSsiPC9hPiJ9LGV2ZW50czoiY2xpY2subXkifSwiI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuZmluZCgiI2wtYXBwdGFicyAubC10YWIuYWN0aXZlICNidG4tdGFiY2xvc2UiKS50cmlnZ2VyKCJjbGljay5teSIpfSxldmVudHM6ImNsaWNrLm15In0sIiNidG4tY2xvc2UtYWxsLXRhYnMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJnRoaXMuQ2xvc2VBbGwuZGVsYXkoNTAsITApLHRoaXMubGFuZy5CVE5fWEFMTH0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiNsLWFwcHRhYnMiOntpbml0OmZ1bmN0aW9uKHgpe3guc29ydGFibGUoe2Rpc3RhbmNlOjV9KX0sZGVsYXk6MSxtZXJnZTohMSxpZDpbImlkIl0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gubmFtZSx4LmFjdGl2ZSx4LmVycm9yLHguaGFzaDAseC5oYXNoMV0pfSxsaXN0Oic8ZGl2IGNsYXNzPSJsLXRhYiI+PC9kaXY+JyxiaW5kOiJ0aGlzLlRhYnMiLG1hbmlmZXN0OiJ0aGlzLlRhYiJ9fSxzdHlsZTp7IiAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxkPWEuQ2ZnLGU9YjwoYz8xMzgwOjE1MTApPzE1OjE2LGY9ZS0xLjgsZz1kLmZvbnRXZWlnaHQsaD0iJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxVYnVudHUsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLHNhbnMtc2VyaWYiOyJhdXRvIiE9ZC5mb250JiYoaD1kLmZvbnQrIixzYW5zLXNlcmlmIik7dmFyIGk9IkNvdXNpbmUsdWktbW9ub3NwYWNlLE1vbmFjbyxDb25zb2xhcyxtb25vc3BhY2UiOyJhdXRvIiE9ZC5mb250Q29kZSYmKGk9ZC5mb250Q29kZSsiLHVpLW1vbm9zcGFjZSxtb25vc3BhY2UiKTt2YXIgaj0iZm9udC1mYW1pbHk6ICIraCsiO2ZvbnQtd2VpZ2h0OnsyfTsiLGs9aisiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiO2EuX2NvbXBpbGVkJiYoJCgiYm9keSIpLmNzcyh7ImZvbnQtZmFtaWx5IjpoLCJmb250LXdlaWdodCI6Z30pLCQoIiNjdy1ib2R5IikuY3NzKHsiZm9udC1mYW1pbHkiOmgsImZvbnQtd2VpZ2h0IjpnfSkpO3ZhciBsPSJmb250LXdlaWdodDp7MX0haW1wb3J0YW50OyIuYXNzaWduKCgrZysxMDApLmNsYW1wKDQwMCw2MDApKTtyZXR1cm4gYS5fY29tcGlsZWQmJiQoIiNjdy1ub3RlcyIpLmNzcyh7dG9wOmM/IjUwcHgiOiIxOHB4In0pLHsiIjprLmFzc2lnbihlLGcpKyJsaW5lLWhlaWdodDoxLjZlbTsiLCIgLnBsc2hpbSI6Yj4oYz8xMjcwOjE2MDApPyJwYWRkaW5nLWxlZnQ6MTZweDsiOiIiLCIgYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEiOmouYXNzaWduKCItIixnKSwiIC5Db2RlTWlycm9yLCAucHJlIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsgZm9udC1mYW1pbHk6ezJ9IWltcG9ydGFudDsiLmFzc2lnbihmLGkpLCIgY29kZSI6ImZvbnQtZmFtaWx5OnsxfSFpbXBvcnRhbnQ7Ii5hc3NpZ24oaSksIiAuanNvbmRpZmZwYXRjaC1kZWx0YSwgLmpzb25kaWZmcGF0Y2gtZGVsdGEgcHJlIjoiZm9udC1mYW1pbHk6ezF9IWltcG9ydGFudDsiLmFzc2lnbihpKSwiICNkaWZmLmpzb25kaWZmIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiLmFzc2lnbihmKSwiIC5ib2xkZXIsIC5sLXRhYi5hY3RpdmUgYSI6bCwiICN2aWV3LXBhbmVsIC5qdmFsLWtleSwgI3ZpZXctcGFuZWwgLmp2YWwtYnJhY2tldCI6bCwiICN2aWV3LXJlc3VsdHMgaW5wdXQ6Y2hlY2tlZCtkaXYsICNkYi1saXN0IGlucHV0OmNoZWNrZWQrZGl2IjpsLCIgI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7IiI6Yz8iZGlzcGxheTpub25lIjoicmlnaHQ6MDt0b3A6MDt6LWluZGV4OjE5OTY7IiwiICI6ImNvbG9yOnJnYmEoMTU4LDE4NCwyMzAsMC4zKTsgdHJhbnNpdGlvbjogY29sb3IgMC42czsgZm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OjI0cHg7IHdpZHRoOjI0cHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwiOmhvdmVyIjoiY29sb3I6cmdiYSgyNTUsMzAsNjQsMC41KTsifX19LCIgLnhwYW5lbCI6eyIiOiJib3JkZXItcmFkaXVzOjJweCAycHggMCAwOyBoZWlnaHQ6MzFweDsiLCIgLnhidXR0b24iOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7IGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjJweDsiLCIgLm15LXRhZ3MiOnsiIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWFyZ2luLXRvcDogMnB4OyBsaW5lLWhlaWdodDoyMHB4OyAiLCIgLnRhZyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyAiLCIgLnRhZy5hY3RpdmUiOiJiYWNrZ3JvdW5kLWNvbG9yOiNkM2RhZTA7Y29sb3I6ICM0ZDVhNmE7In19LCIgLmJnLXBncmF5IjoiYmFja2dyb3VuZC1jb2xvcjojZTNlOWVjOyIsIiBidXR0b24sIC5idXR0b24iOiJwYWRkaW5nOjAuM2VtIDAuNmVtIDAuNGVtIDAuNmVtIiwiIC5ub2N3bWluIjoiZGlzcGxheTpub25lIWltcG9ydGFudCIsIiAubm90YXAiOiItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7IiwiIC5teS1tb2RhbC1vdmVybGF5IjoiYm94LXNoYWRvdzogMnB4IDNweCAyMnB4IC03cHggcmdiYSgxMCwgMjAsIDI5LCAwLjgpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7IiwiIC5kaWYiOiJkaXNwbGF5OmlubGluZS1mbGV4OyIsIiAudzExcCI6IndpZHRoOjExJTsiLCIgLncxMnAiOiJ3aWR0aDoxMiU7IiwiIC53MThwIjoid2lkdGg6MTglOyIsIiAudzAiOiJ3aWR0aDowcHg7IiwiIC53NDIiOiJ3aWR0aDo0MnB4OyIsIiAudzJlbSI6IndpZHRoOjJlbTsiLCIgLm13MTAwcCI6Im1heC13aWR0aDoxMDAlOyIsIiAubXc5NXAiOiJtYXgtd2lkdGg6OTUlOyIsIiAuYm9sZGVyIjoiZm9udC13ZWlnaHQ6Ym9sZGVyOyIsIiAubGlnaHRlciI6ImZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IiwiIC5saDE0MGkiOiJsaW5lLWhlaWdodDoxLjRlbSFpbXBvcnRhbnQ7IiwiIC50cmFucyI6InBvaW50ZXItZXZlbnRzOm5vbmU7IiwiIC5wYWJjIjoicG9zaXRpb246YWJzb2x1dGU7IiwiIC5wcmVsIjoicG9zaXRpb246cmVsYXRpdmU7IiwiIC53YmEiOiJ3b3JkLWJyZWFrOmJyZWFrLWFsbDsiLCIgLnduIjoid2hpdGUtc3BhY2U6bm9ybWFsOyB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzOyIsIiAub3hoIjoib3ZlcmZsb3cteDpoaWRkZW47IiwiIC50dzEwMCI6InRyYW5zaXRpb246d2lkdGggMC4xcyIsIiAudHc1MDAiOiJ0cmFuc2l0aW9uOndpZHRoIDAuNXMiLCIgLmJ4dG9wIjoiYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4OyIsIiAuYnh0b3AtMzEiOnsiOmFmdGVyIjonYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O3RvcDozMXB4OyBsZWZ0OjA7IHdpZHRoOmNhbGMoMTAwJSAtIDJweCk7IGhlaWdodDpjYWxjKDEwMCUgLSAzMnB4KTtwb2ludGVyLWV2ZW50czpub25lOyB6LWluZGV4OjM7IGNvbnRlbnQ6IiAiOyBwb3NpdGlvbjphYnNvbHV0ZTsgJ30sIiBzZWN0aW9uIjoib3V0bGluZTogbm9uZTsiLCIgLmFkb3duLCAuYXJpZ2h0IjpbImZvbnQtc2l6ZTo1MCU7IGxpbmUtaGVpZ2h0OjFlbTsgZm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDsgIiwidmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsiLCJwYWRkaW5nOjAgMCAxcHggM3B4OyBvcGFjaXR5OjAuMzsgIl0sIiAuYXJpZ2h0OmFmdGVyIjonY29udGVudDoi4pa277iOIjsnLCIgLmFkb3duOmFmdGVyIjonY29udGVudDoi4pa8IjsnLCIgLm15LXRhZ3MuYnV0dG9ucyI6eyIgLnRhZyI6ImJvcmRlci1yYWRpdXM6MDsgYm9yZGVyOiAxcHggc29saWQgI2UzZTVlNzsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnM7bWFyZ2luLWxlZnQ6LTFweDtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmhvdmVyIjoiY29sb3I6IzI3YTsiLCIgLnRhZy5hY3RpdmUiOiJib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6I2UzZTVlNztjb2xvcjp3aGl0ZTtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmZpcnN0LWNoaWxkIjoiYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTNlNWU3OyIsIiAudGFnOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwOyIsIiAudGFnOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjNweDsifSwiIGRpdi5teS1tb2RhbCI6ImJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjgsIDIzMiwgMC41NSk7IiwiIC5teS1tb2RhbC5tb2RhbC1idXN5Ijp7IjphZnRlciI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6LTFweDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDo1O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjYpOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIC03cHg7JywiLm5vc2UtdG9wOmJlZm9yZSI6InotaW5kZXg6NjsifSwiIC5wcmUiOiJ3aGl0ZS1zcGFjZTpwcmUtd3JhcDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3ciOiJib3JkZXItcmFkaXVzOjA7IiwiICNsLWJvYXJkIjp7IiAiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LndpZHRoKCksYz14LnBhcmVudCgpLmhhc0NsYXNzKCJteS1tb2RhbC1mb3JtIiksZD0od2luZG93LmlubmVySGVpZ2h0LyhjPzEuMzoxKXwwKSsicHgiLGU9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxmPWU/MDoxMjYrYi8xMHwwO3JldHVybnsiIjplP1sid2lkdGg6MTAwJTsgcGFkZGluZzowOyBvdmVyZmxvdzpoaWRkZW47IixhLl9jb21waWxlZD8iaGVpZ2h0OmNhbGMoIitkKyIgLSAzMnB4KTsiOiJoZWlnaHQ6Y2FsYygiK2QrIiAtIDcwcHgpOyJdLmpvaW4oIiIpOlsiZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6Y2FsYygxMDAlIC0gezF9cHgpOyIuYXNzaWduKGYpLGEuX2NvbXBpbGVkPyJoZWlnaHQ6IitkKyI7IjoiaGVpZ2h0OmNhbGMoIitkKyIgLSAzOHB4KTsiXS5qb2luKCIiKSwiICNsLXBpdm90LXJiIjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyByaWdodDowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IiwiIC53MTI4MHBsdXMiOmItZjwxMjgwPyJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyI6IiIsIiAudzEyMDBwbHVzIjpiLWY8MTIwMD8iZGlzcGxheTpub25lIWltcG9ydGFudDsiOiIifX19LCIgI2wtYXBwcyI6eyIiOiJtaW4td2lkdGg6MTAyMHB4OyBtYXJnaW46MCBhdXRvOyBtYXgtd2lkdGg6MTAwJTsiLCIgLmwtYXBwIjp7IiI6Im9wYWNpdHk6MTsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IiwiICI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSEoeC53aWR0aCgpPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxjPWEuX2NvbXBpbGVkLGQ9eC5wYXJlbnQoKS5oYXNDbGFzcygibXktbW9kYWwtZm9ybSIpLGU9KHdpbmRvdy5pbm5lckhlaWdodC8oZD8xLjM6MSl8MCktKGM/MDozMikrKGI/MDozMiksZj0iaGVpZ2h0OmNhbGMoIisoZSsicHgiKSsiIC0gIjtyZXR1cm4gYS5QYW5lbEhlaWdodD1lLTg0LGEuaXNCYXI9Yix7IiAuYXBwaGVpZ2h0IjpmKyIzMnB4KTsiLCIgLnBhbmVsaGVpZ2h0IjpmKyI4NHB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQiOmYrIjg4cHgpOyIsIiAucGFuZWxoZWlnaHQtOCI6ZisiOTJweCk7IiwiIC5wYW5lbGhlaWdodC0xNiI6ZisiMTAwcHgpOyIsIiAucGFuZWxoZWlnaHQtMzIiOmYrIjExNnB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQ4IjpmKyIxMzJweCk7IiwiIC5wYW5lbGhlaWdodC02MyI6ZisiMTQ3cHgpOyIsIiAucGFuZWxoZWlnaHQtNjQiOmYrIjE0OHB4KTsifX0sIiAuYXBwLWhlYWQiOnsiIjoiZGlzcGxheTpibG9jaztoZWlnaHQ6NTJweDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTsiLCIgYnV0dG9uLCAuYnV0dG9uLCAudGFnLmJ0biI6ImhlaWdodDoyZW07cGFkZGluZy10b3A6MC4yZW07cGFkZGluZy1ib3R0b206NHB4O2xpbmUtaGVpZ2h0OjE5cHg7dGV4dC1hbGlnbjpjZW50ZXI7In0sIi5hcHAtYnVzeSI6Im9wYWNpdHk6MC41O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyIsIiAuZmVhdGhlciI6eyI6YmVmb3JlIjp7IiI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTtoZWlnaHQ6MTVweDsgcG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDEpLCByZ2JhKDI1NSwyNTUsMjU1LDApKTt6LWluZGV4OjE5OTA7J30sIjphZnRlciI6eyIiOidjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6Y2FsYygxMDAlIC0gMTJweCk7aGVpZ2h0OjE1cHg7YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyNTUsMjU1LDI1NSwxKSwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7ei1pbmRleDoxOTkwOyd9fX0sIiAuYXBwLWJ1c3k6YWZ0ZXIiOidjb250ZW50OiIgIjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6KzE5OTM7IHdpZHRoOjEwMCU7IGhlaWdodDoxMTAlOyB0b3A6MDsgbGVmdDowOyd9LCIgLmNvbC1qc29uIjp7IiI6InBhZGRpbmc6MCAwIDAgNnB4IWltcG9ydGFudDt3b3JkLXdyYXA6bm9ybWFsOyIsIiAuQ29kZU1pcnJvciI6ImJhY2tncm91bmQ6bm9uZTtmb250LXNpemU6OTUlIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjNlbSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtdHJpbSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtZWQiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsiLCI+ZGl2LmNvbC1lZC1jbG9zZSI6eyIiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246cmlnaHQ7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowOyByaWdodDo1cHg7IHdpZHRoOjk1JSFpbXBvcnRhbnQ7IGhlaWdodDoyMXB4OyB6LWluZGV4OjU7dHJhbnNpdGlvbjpjb2xvciAwLjVzOyBjb2xvcjpyZ2JhKDQxLDEwOSwxNjYsMC43NSk7IiwiOmhvdmVyIjoiY29sb3I6IzEyYTVkYzsifX0sIiAuanZhbC10cmltIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzoxcHggMnB4O2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOnJnYmEoMjEzLCA0OCwgODksIDAuNjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MywgMTA3LCAxOTIsIDAuMDcpOyIsIiAuanZhbC1zaG9ydCI6ImNvbG9yOnJnYmEoODgsMTAxLDEyMywwLjYzKTsiLCIgLmp2YWwta2V5IjoibWFyZ2luLWxlZnQ6MnB4OyBjb2xvcjojNGQ1YTZhOyIsIiAuanZhbC1icmFja2V0Ky5qdmFsLWtleSI6Im1hcmdpbi1sZWZ0OjBweDsiLCIgLmp2YWwtYnJhY2tldCI6ImNvbG9yOiAjODE5NWM1OyIsIiAuanZhbC1zaW1wbGUiOiJjb2xvcjpyZ2JhKDUyLCAxNDMsIDI3LCAwLjc4KTsiLCIgLmp2YWwtdW5kZWZpbmVkIjoiY29sb3I6cmdiYSgxMTcsMTI4LDEzOCwwLjQxKTsiLCIgLmp2YWwtc3RyaW5nIjoiY29sb3I6IzNiNWU4NTsiLCIgLmp2YWwtbnVtYmVyIjoiY29sb3I6IzViOTgwOCIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVyIjoid2hpdGUtc3BhY2U6bm93cmFwOyIsIiAuQ29kZU1pcnJvci1ndXR0ZXJzIjoiYmFja2dyb3VuZDp3aGl0ZTt4Ym9yZGVyLXJpZ2h0Om5vbmU7IiwiIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5Db2RlTWlycm9yIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsiLCIgLkNvZGVNaXJyb3IgLmNtLW1hdGNoaGlnaGxpZ2h0IjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MiwyNTUsMiwwLjM3KTsgYm94LXNoYWRvdzpub25lOyBib3JkZXItcmFkaXVzOiAxcHg7IiwiIC5Db2RlTWlycm9yIC5jbS1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDIzMiwxMjEsMC43NSkhaW1wb3J0YW50OyBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNTUsMjMyLDEyMSwwLjc1KSFpbXBvcnRhbnQ7IiwiICAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9ImJvb2xlYW4iPT10eXBlb2YgYS5pc0ZGP2EuaXNGRjphLmlzRkY9L0ZpcmVmb3gvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR8fCIiKSxkPWEuQ2ZnLGU9ZC50YWJCYXIsZj0hKGI+PTE0MjAmJiJ0b3AiIT1lKSxnPWQudGhlbWUsaD0iZGFyayI9PWd8fCJhdXRvIj09ZyYmd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyxpPXgucGFyZW50KCkuaGFzQ2xhc3MoIm15LW1vZGFsLWZvcm0iKSxqPSh3aW5kb3cuaW5uZXJIZWlnaHQvKGk/MS4zOjEpfDApLShhLl9jb21waWxlZD8wOjMyKSxrPXtoZWlnaHQ6YS5fY29tcGlsZWQ/IjEwMHZoIjpqKyJweCIsaHRhYjpmPzMyOmo8NjUwPzM0Omo8NzAwPzM2Omo8ODAwPzM4OjQwLHd0YWI6Zj8wOjEyNitiLzEwfDB9LGw9KC41NSooYi1rLnd0YWIpfDApLTQwLTItMzM4O3JldHVybnsiICNkYi1saXN0IC52aWV3LXJvdyI6YyYmIWEuaXNNYWM/IndpZHRoOnsxfXB4OyIuYXNzaWduKGwrMzM4KTpudWxsLCIgI2RiLXBhbmVsIjp7IiAjZGItbGlzdCAudmlldy1yb3ciOnt9fSwiICNsLWhlYWRlciI6eyIiOmY/WyJ3aWR0aDoxMDAlO2hlaWdodDozMnB4O292ZXJmbG93OmhpZGRlbjsiLCJiYWNrZ3JvdW5kLXNpemU6IDJweCAzMnB4O2JhY2tncm91bmQtcG9zaXRpb246MCAwOyIsaCYmYS5fY29tcGlsZWQ/ImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkNmRjZTgsICNmMmY4ZmYpOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2E1YWJiMTsiOiJiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMGMxOTMyLCAjNGI2MjdjKTsiXS5qb2luKCIiKTpbImJhY2tncm91bmQtY29sb3I6ICMxZTM1NTM7IHdpZHRoOnt3dGFifXB4OyBoZWlnaHQ6e2hlaWdodH07Iiwib3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyJdLmpvaW4oIiIpLmFzc2lnbihrKSwiICNsLXRhYnMgIjoibWF4LXdpZHRoOjEwMCU7IiwiIC5ub2JhciI6Zj8iZGlzcGxheTpub25lOyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IiwiICNsLXRhYnMiOnsiIjpmPyJtaW4td2lkdGg6MTAyMHB4OyBtYXJnaW46MCBhdXRvOyI6IndpZHRoOjEwMCU7IGhlaWdodDp7aGVpZ2h0fTsiLmFzc2lnbihrKSwiIC51aS1zb3J0YWJsZS1oZWxwZXIiOmY/ImJhY2tncm91bmQtY29sb3I6cmdiYSgxMDIsMTIwLDE1MiwwLjgpO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWVhNmIwOyI6eyI6YmVmb3JlIjpbJ2NvbnRlbnQ6IiAiO2Rpc3BsYXk6YmxvY2s7IHdpZHRoOnsyfXB4OyBoZWlnaHQ6ezF9cHg7Jy5hc3NpZ24oay5odGFiLGsud3RhYi0xMCksImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQyLDI0NiwyNTUsMC4yKTsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowcHg7IGxlZnQ6NXB4OyIsImJvcmRlci1yYWRpdXM6IDNweDsiXS5qb2luKCIiKX0sIiAudWktc29ydGFibGUtcGxhY2Vob2xkZXIrLmwtdGFiIjpmPyJib3JkZXItbGVmdDoxcHggc29saWQgIzllYTZiMDsiOiIiLCIgLnRhYi1idXN5OmFmdGVyIjpmP1snY29udGVudDoiICI7IGJhY2tncm91bmQtaW1hZ2U6IHVybChpL2xvYWRlci1iYXIyLmdpZik7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAtMnB4OycsInBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MnB4OyBib3R0b206MDsgbGVmdDowOyB6LWluZGV4OisxOTgwOyBvdmVyZmxvdzpoaWRkZW47Il0uam9pbigiIik6Wydjb250ZW50OiIgIjsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGkvbG9hZGVyLWJhcjIuZ2lmKTsgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IC0xcHg7JywicG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOnsxfXB4OyBoZWlnaHQ6MnB4OyB0b3A6M3B4OyBsZWZ0OjJweDsgei1pbmRleDorMTk4MDsgb3ZlcmZsb3c6aGlkZGVuOyIuYXNzaWduKGsuaHRhYi02KSwidHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7IGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOyJdLmpvaW4oIiIpfSwiICNsLXJvb3R0YWIiOnsiIjpmPyJ3aWR0aDogNzJweDsiOiJ3aWR0aDoge3d0YWJ9cHg7IGhlaWdodDo1OHB4O2xpbmUtaGVpZ2h0OjM3cHg7b3ZlcmZsb3c6aGlkZGVuOyIuYXNzaWduKGspLCIgI2wtcm9vdCI6ImRpc3BsYXk6YmxvY2s7IisoZj8id2lkdGg6IDcycHg7IHBhZGRpbmc6M3B4IDEwcHggMCAyMHB4OyAiOiJ3aWR0aDoge3d0YWJ9cHg7IHBhZGRpbmc6MTNweCAwIDAgMTBweDsgaGVpZ2h0OjU4cHg7Ii5hc3NpZ24oaykpLCIubC10YWIiOmY/IiI6ImJvcmRlci10b3A6bm9uZTsiLCIubC10YWI6YmVmb3JlIjpmPyIiOiJkaXNwbGF5Om5vbmU7In0sIiAjbC1hcHB0YWJzIjpmPyJ3aWR0aDpjYWxjKDEwMCUgLSA3MnB4IC0gOTZweCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyI6IndpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICM0ZjY0ODE7IHBhZGRpbmctdG9wOjVweDsgaGVpZ2h0OnsxfXB4OyIuYXNzaWduKGotOTQpLCIgLmwtdGFiIjp7IiI6Zj9bImxpbmUtaGVpZ2h0OjI5cHg7IGhlaWdodDozMnB4OyBtaW4td2lkdGg6NzJweDsgbWF4LXdpZHRoOjMwMHB4OyB0cmFuc2l0aW9uOndpZHRoIDAuMnM7IiwiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOWVhNmIwOyBib3JkZXItbGVmdDoxcHggc29saWQgdHJhbnNwYXJlbnQ7IiwiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgb3ZlcmZsb3c6aGlkZGVuIDsiXS5qb2luKCIiKTpbImxpbmUtaGVpZ2h0OnsyfXB4OyBoZWlnaHQ6ezF9cHg7Ii5hc3NpZ24oay5odGFiLGsuaHRhYi0zKSwiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiXS5qb2luKCIiKSwiICI6Zj8id2lkdGg6Y2FsYygxMDAlIC8gIisoYS5UYWJzLmxlbmd0aHx8MSkrIik7Ijoid2lkdGg6MTAwJTsiLCIgI2J0bi10YWJjbG9zZSI6ImN1cnNvcjpwb2ludGVyOyBkaXNwbGF5Om5vbmU7IisoZj8iY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsiOiJjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyIpLCIgI2wtdGFic3RhdGUiOnsiIjoiY29sb3I6cmdiYSgxMzEsMTk4LDI1NSwwLjYyKTsiLCIuaGlkZSsjYnRuLXRhYmNsb3NlIjoiZGlzcGxheTpibG9jazsifSwiIC5sLXRhYm1hcmsiOnsiIjpbIndpZHRoOjE2cHg7cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiLCJ0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIGNvbG9yIDAuM3M7IixmPyJyaWdodDowOyB0b3A6MDsiOiJyaWdodDo2cHg7IHRvcDp7MX1weDsiLmFzc2lnbigoay5odGFiLTI2KS8yKV0uam9pbigiIil9LCI6aG92ZXIgIjp7IiAjbC10YWJzdGF0ZSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICNidG4tdGFiY2xvc2UiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjYpOyJ9LCIgI2J0bi10YWJjbG9zZTpob3ZlciI6ImNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC45KTsiLCIgYSI6InRleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgY29sb3I6d2hpdGU7IG9wYWNpdHk6MC44IWltcG9ydGFudDsiLCIgYS5zeXN0ZW0iOiJjb2xvcjojZDhmZmE0OyIsIjpob3ZlciBhIjoib3BhY2l0eToxIWltcG9ydGFudDsiLCIgI2wtdGFibmFtZSI6eyIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KTtkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTpub3dyYXA7IisoZj8icGFkZGluZzowIDAgNHB4IDZweDsiOiJwYWRkaW5nOjAgMCA0cHggMTFweDsiKSwiLnNtYWxsZXIiOiJmb250LXNpemU6MC45NWVtOyJ9LCI6YmVmb3JlIjpmPyIiOnsiIjpbJ2NvbnRlbnQ6IiAiO2Rpc3BsYXk6YmxvY2s7IHdpZHRoOnsxfXB4OyBoZWlnaHQ6MXB4OycuYXNzaWduKGsud3RhYi0yMCksImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQyLDI0NSwyNTUsMC4xKTsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowcHg7IGxlZnQ6MTBweDsiLCJib3JkZXItcmFkaXVzOiAwcHg7IHRyYW5zaXRpb246IHdpZHRoIDAuMXMsIGhlaWdodCAwLjA2cywgYm9yZGVyLXJhZGl1cyAwLjFzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGxlZnQgMC4xczsiXS5qb2luKCIiKX0sIi5hY3RpdmUiOnsiIGEiOiJjb2xvcjojMDIwZTFlIWltcG9ydGFudDtvcGFjaXR5OjAuOCFpbXBvcnRhbnQ7IHhmb250LXdlaWdodDpib2xkZXI7IiwiOmhvdmVyIGEiOiJvcGFjaXR5OjAuOTUhaW1wb3J0YW50OyIsIiI6Zj9bImJhY2tncm91bmQtc2l6ZTogMnB4IDMycHg7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyIsImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNhM2I1Y2QsICNkMmRlZWUpOyJdLmpvaW4oIiIpOnsiOmJlZm9yZSI6Wydjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrOyB3aWR0aDp7Mn1weDsgaGVpZ2h0OnsxfXB4OycuYXNzaWduKGsuaHRhYixrLnd0YWItMTApLCJiYWNrZ3JvdW5kLWNvbG9yOiAjYzhkMWRlIWltcG9ydGFudDsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowcHg7IGxlZnQ6NXB4OyIsImJvcmRlci1yYWRpdXM6IDNweDsiXS5qb2luKCIiKX0sIiAjbC10YWJzdGF0ZSI6ImNvbG9yOnJnYmEoMzcsMTM3LDIxNSwwLjgpOyIsIiAjYnRuLXRhYmNsb3NlIjpmPyJjb2xvcjpyZ2JhKDAsMTgsNDAsMC4zKTsiOiJjb2xvcjpyZ2JhKDAsMTcsNDAsMCk7IiwiOmhvdmVyICNidG4tdGFiY2xvc2UiOiJjb2xvcjpyZ2JhKDAsMTgsNDAsMC42KTsiLCIgI2J0bi10YWJjbG9zZTpob3ZlciI6ImNvbG9yOnJnYmEoMCwxOCw0MCwwLjgpOyJ9fSwiICNsLWFzaWRlIjp7IiI6InBvc2l0aW9uOmFic29sdXRlOyB7Mn06MDsgcmlnaHQ6MDsgd2lkdGg6ezF9cHg7Ii5hc3NpZ24oZj85NjprLnd0YWIsZj8idG9wIjoiYm90dG9tIikrKGY/ImJvcmRlci1yaWdodDoxcHggc29saWQgIzllYTZiMDsiOiJib3JkZXItdG9wOjFweCBzb2xpZCAjNGY2NDgxOyIpKyJ3aGl0ZS1zcGFjZTpub3dyYXA7IHotaW5kZXg6MjsiLCIgLmFzaWRlLWJ0biI6WyJ3aWR0aDp7MX1weDsgaGVpZ2h0OnsyfXB4OyBjdXJzb3I6cG9pbnRlcjsiLmFzc2lnbihmPzMyOmsud3RhYi81LGY/MzI6MzUpLGY/IiI6InBhZGRpbmc6MXB4IDAgMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsiLGY/ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWVhNmIwOyI6ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjNGY2NDgxOyIsImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG92ZXJmbG93OmhpZGRlbjsiLCJ0cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBvcGFjaXR5IDAuM3M7IGNvbG9yOndoaXRlIWltcG9ydGFudDsiLCJvcGFjaXR5OjAuNyFpbXBvcnRhbnQ7Il0uam9pbigiIiksIiAuYXNpZGUtYnRuOmhvdmVyIjoib3BhY2l0eToxIWltcG9ydGFudDsiLCIgI2J0bi1jbG9zZS1hbGwtdGFicyI6eyIiOiJvcGFjaXR5OjAuNjsgY29sb3I6d2hpdGU7IHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgd2lkdGg6Y2FsYygxMDAlIC0gMyAqIHsxfXB4KTsiLmFzc2lnbihrLnd0YWIvNSksIjpob3ZlciI6Im9wYWNpdHk6MTsifSwiIGEiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6d2hpdGU7IiwiIGE6aG92ZXIiOiJjb2xvcjp3aGl0ZTsifX19fX0sUGhvOmZ1bmN0aW9uKHgpe3JldHVybiBudWxsPT14P3RoaXM6T2JqZWN0LmlzQXJyYXkoeCk/Y3cubGliLmdldHJlZih0aGlzLHgpOnRoaXNbeF19LFNldFRpdGxlOmZ1bmN0aW9uKHgpe3RoaXMuX2NvbXBpbGVkJiYkKCJoZWFkIHRpdGxlIikudGV4dCh4KyIiKX0scDJ1OmZ1bmN0aW9uKHgsYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB4P2IoeCwxKTp4Lm1hcChiKTtmdW5jdGlvbiBiKHgsYil7dmFyIGM9ZW5jb2RlVVJJQ29tcG9uZW50O2lmKGF8fDE9PWJ8fDI9PWIpe2lmKC9eX2Rlc2lnblwvLiskLy50ZXN0KHgpKXJldHVybiJfZGVzaWduLyIrYyh4LmZyb20oOCkpO2lmKC9eX2xvY2FsXC8uKyQvLnRlc3QoeCkpcmV0dXJuIl9sb2NhbC8iK2MoeC5mcm9tKDcpKX1yZXR1cm4gYyh4KX19LGoyaDpmdW5jdGlvbigpe30sbmljZVNjcm9sbDpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlPU3x8dGhpcy5pc01hY3x8dGhpcy5pc1dlYktpdHx8IjAiPT10aGlzLkNmZy5zY3JvbGxTcGVlZD94LmNzcyh7Im92ZXJmbG93LXkiOnRoaXMuaXNXZWJLaXQ/Im92ZXJsYXkiOiJhdXRvIiwiLW1zLW92ZXJmbG93LXN0eWxlIjoiLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyIiwiLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmciOiJ0b3VjaCIsInNjcm9sbGJhci13aWR0aCI6InRoaW4iLCJvdmVyZmxvdy14IjoiaGlkZGVuIn0pOngubmljZVNjcm9sbChhfHx7Y3Vyc29yY29sb3I6IiMyMzQiLGN1cnNvcm9wYWNpdHltaW46LjA3LGN1cnNvcm9wYWNpdHltYXg6LjQsemluZGV4OjN9KSx4fSxzZWxlY3QyOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9eC5zZWxlY3QyKGEpO3JldHVybiBjLmlPUyYmKCEoYXx8e30pLm11bHRpcGxlJiYhKGF8fHt9KS50YWdzfHxiKSYmKGQub24oInNlbGVjdDItb3BlbiIsYy5zZWxlY3QyaU9TYmx1ciksZC5vbigic2VsZWN0Mi1jbG9zZSIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGMuc2VsZWN0MmlPU2JsdXIsNTApfSkpLGR9LHNlbGVjdDJpT1NibHVyOmZ1bmN0aW9uKCl7JCgiLnNlbGVjdDItc2VhcmNoIGlucHV0LCA6Zm9jdXMsIGlucHV0IikucHJvcCgiZm9jdXMiLCExKS5ibHVyKCl9LHRydW5jOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubGVuZ3RoPmErMT94LnRydW5jYXRlKGEsIm1pZGRsZSIsIuKApiIpOnh9LGRpZTpmdW5jdGlvbih4KXskKHdpbmRvdykub2ZmKCIucGhvIikseC5maW5kKCIjbC1hcHBzPmRpdiIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm15KCJyZW1vdmUiKX0pfSxwaW5nU2Vzc2lvbjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14Lmxhc3RQaW5nfHwwLGI9RGF0ZS5ub3coKSxjPSgreC5DZmcucGluZ1Nlc3Npb258fDApLmNsYW1wKDAsMWUzKTshY3x8KGItYSkvNmU0PGN8fCh4Lmxhc3RQaW5nPWIseC5TZXNzaW9uKCkpfSxkYlR5cGU6e3N5bmNzdGF0ZToiIixzdGFtcDowLGNvbW1pdHRlZF91cGRhdGVfc2VxOi0xLGNvbXBhY3RfcnVubmluZzohMSxkYXRhX3NpemU6IiIsZGlza19zaXplOjAsc2l6ZXNhZmU6IiIsc2l6ZXRpcDoiIixkYl9uYW1lOiIiLGRpc2tfZm9ybWF0X3ZlcnNpb246IiIsZG9jX2NvdW50OiIiLGRvY19kZWxfY291bnQ6IiIsaW5zdGFuY2Vfc3RhcnRfdGltZToiIixwdXJnZV9zZXE6IiIsdXBkYXRlX3NlcToiIix1cGRhdGVfc2VxX3NhZmU6IiIsc2VjdXJpdHk6e3N0YW1wOjAsc2VxOi0xLGFkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfX0scHJvdGVjdGVkOiIiLHN0YXI6IiIsZ3JvdXA6IiIsdGFza3M6e3N0YW1wOjAscGlkczpbXX0sc3luY3M6e3N0YW1wOjAsZG9jczpbXX19LExpYnNVc2VkOntqUXVlcnk6Imh0dHBzOi8vanF1ZXJ5LmNvbS8iLCIkLnVpIjoiaHR0cHM6Ly9qcXVlcnl1aS5jb20vIiwiJC5teSI6Imh0dHA6Ly9qcXVlcnlteS5jb20vIiwiJC50YWdzIjoiIiwiJC5saXN0IjoiIixzZWxlY3QyOiJodHRwczovL3NlbGVjdDIuZ2l0aHViLmlvL3NlbGVjdDIvIixDb2RlTWlycm9yOiJodHRwczovL2NvZGVtaXJyb3IubmV0LyIsbmljZVNjcm9sbDoiaHR0cHM6Ly9naXRodWIuY29tL2ludXlha3NhL2pxdWVyeS5uaWNlc2Nyb2xsIixKQ3JvcDoiaHR0cHM6Ly9naXRodWIuY29tL3RhcG1vZG8vSmNyb3AiLFN1Z2FyOiJodHRwczovL3N1Z2FyanMuY29tIixROiJodHRwczovL2dpdGh1Yi5jb20va3Jpc2tvd2FsL3EiLFVSTHBvbHlmaWxsOiJodHRwczovL2dpdGh1Yi5jb20vd2ViY29tcG9uZW50cy9VUkwiLCJ3ZWItc3RyZWFtcy1wb2x5ZmlsbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9NYXR0aWFzQnVlbGVucy93ZWItc3RyZWFtcy1wb2x5ZmlsbCIsU3RyZWFtU2F2ZXI6Imh0dHBzOi8vZ2l0aHViLmNvbS9qaW1teXdhcnRpbmcvU3RyZWFtU2F2ZXIuanMiLGZmbGF0ZToiaHR0cHM6Ly9naXRodWIuY29tLzEwMWFycm93ei9mZmxhdGUiLGpzb25kaWZmOiJodHRwczovL2dpdGh1Yi5jb20vYmVuamFtaW5lL2pzb25kaWZmcGF0Y2giLCJjdy5saWIiOiJodHRwczovL2Nsb3Vkd2FsbC5tZS9hcGkvY3dfbGliIn0sRm9udHNVc2VkOntDb3VzaW5lOiJodHRwczovL3d3dy5mb250c3F1aXJyZWwuY29tL2ZvbnRzL2NvdXNpbmUiLCJGb3VuZGF0aW9uIEljb25zIjoiaHR0cHM6Ly96dXJiLmNvbS9wbGF5Z3JvdW5kL2ZvdW5kYXRpb24taWNvbi1mb250cy0zIn0sSFRNTDonPGRpdiBpZD0iYnRuLWNsb3NlLWFjdGl2ZS10YWIiIGNsYXNzPSJjcCBub2JhciBwYWJjIGZ3MjAwIiB0aXRsZT0iQ2xvc2UgdGFiIj7inJU8L2Rpdj48ZGl2IGlkPSJsLWhlYWRlciI+PGRpdiBpZD0ibC10YWJzIj48ZGl2IGlkPSJsLXJvb3R0YWIiIGNsYXNzPSJsLXRhYiI+PGEgaWQ9Imwtcm9vdCIgaHJlZj0iIyIgY2xhc3M9IiI+UGhvdG9uPC9hPjwvZGl2PjxkaXYgaWQ9ImwtYXBwdGFicyIgY2xhc3M9ImRpYiB2YXQgb2giPjwvZGl2PjxkaXYgaWQ9ImwtYXNpZGUiPjxkaXYgaWQ9ImJ0bi1jbG9zZS1hbGwtdGFicyIgY2xhc3M9Im5vYmFyIGZ3MjAwIGZzOTAgdGFjIGxoMjQwIGNwIj48L2Rpdj48ZGl2IGlkPSJidG4tYXNpZGUtYXV0aCIgY2xhc3M9ImFzaWRlLWJ0biI+PC9kaXY+PGRpdiBpZD0iYnRuLWFzaWRlLWNvbmZpZyIgY2xhc3M9ImFzaWRlLWJ0biI+PC9kaXY+PGRpdiBpZD0iYnRuLWFzaWRlLXNoYXJlIiBjbGFzcz0iYXNpZGUtYnRuIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJsLWJvYXJkIj48ZGl2IGlkPSJsLWFwcHMiPjwvZGl2PjxkaXYgaWQ9ImwtcGl2b3QtcmIiPjwvZGl2PjwvZGl2PicsU1ZHOntsb2dvOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMxIiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwLCAwLCAzMSwgMTYiPlxuICA8ZyBpZD0iUGhvdG9uTG9nbyI+XG4gICAgIDxwYXRoIGQ9Ik0xNS41LDAgQzIwLjMsMC4wIDI0LjIsMC42IDI3LjgsMS45IEwyOC4wLDEuOSBDMjkuNiwyLjUgMjkuMiwyLjQgMjkuNCwyLjQgTDMxLDMuMSBMMzEsMTYgTDAsMTYgTDAsMy4xIEMxLjcsMi40IDEuMywyLjUgMi40LDIuMSBMMi45LDEuOSBDNi43LDAuNiAxMC42LDAuMCAxNS4xLDAuMCB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGRkZGRkYiIGZpbGwtb3BhY2l0eT0iMSIvPlxuICAgICA8cGF0aCBkPSJNMzAsMTIgTDMwLDE1IEwxLDE1IEwxLDEyIEwzMCwxMiB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNkNzFkMmYiLz5cbiAgICAgPHBhdGggZD0iTTMuMCwzLjAgQzMuMSwzLjcgMy4yLDQuMyAzLjIsNC42IEMzLjQsNS43IDMuOSw2LjYgNC43LDcuMiBDNS40LDcuNyA2LjIsOC4wIDcuMCw4LjAgQzguMCw3LjkgMTEuNiw4LjAgMTMuMSw4LjAgQzE0LjAsOC4wIDE0LjYsOC42IDE1LDkuNSBMMTUsMTEgTDEsMTEgTDEsMy44IEMyLjYsMy4xIDEuOSwzLjQgMy4wLDMuMCB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGQTQ4NDgiLz5cbiAgICAgPHBhdGggZD0iTTE1LDEgTDE1LDcuNyBDMTQuNiw3LjEgMTQuMCw2LjkgMTMuNCw2LjggQzkuNSw2LjggOC42LDYuOCA3LjYsNi44IEM3LjQsNi44IDcuMyw2LjggNy4zLDYuOCBDNS44LDYuOCA0LjQsNS43IDQuMSw0LjAgTDQsMi44IEM3LjUsMS41IDExLjMsMS4wIDE1LDEgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkY2NzY3Ii8+XG4gICAgIDxwYXRoIGQ9Ik0yNy45LDMuMCBDMjcuOCwzLjcgMjcuNyw0LjMgMjcuNyw0LjYgQzI3LjUsNS43IDI3LjAsNi42IDI2LjIsNy4yIEMyNS41LDcuNyAyNC43LDguMCAyMy45LDguMCBDMjIuOSw3LjkgMTkuMyw4LjAgMTcuOCw4LjAgQzE2LjksOC4wIDE2LjMsOC42IDE2LDkuNSBMMTYsMTEgTDMwLDExIEwzMCwzLjggQzI4LjMsMy4xIDI5LjAsMy40IDI3LjksMy4wIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI0ZBNDg0OCIvPlxuICAgICA8cGF0aCBkPSJNMTYsMSBMMTYsNy43IEMxNi4zLDcuMSAxNi45LDYuOSAxNy41LDYuOCBDMjEuNCw2LjggMjIuMyw2LjggMjMuMyw2LjggQzIzLjUsNi44IDIzLjYsNi44IDIzLjYsNi44IEMyNS4xLDYuOCAyNi41LDUuNyAyNi44LDQuMCBMMjcsMi44IEMyMy40LDEuNSAxOS42LDEuMCAxNiwxIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI0ZGNjc2NyIvPlxuICA8L2c+XG48L3N2Zz4nLHVzZXI6JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAsIDAsIDMyLCAzMiI+XG5cdDxnIGlkPSJidG4tdXNlci1zdmciPjxnPlxuICAgIDxwYXRoIGlkPSJzdmctYXV0aCIgZD0iTTI2LjI1LDIwLjY1IEwyMy41NSwyMy4zNSBMMjEuNzUsMjEuNTUgTTI0LDE3LjUgQzIxLjUxLDE3LjUgMTkuNSwxOS41MSAxOS41LDIyIEMxOS41LDI0LjQ4IDIxLjUxLDI2LjUgMjQsMjYuNSBDMjYuNDgsMjYuNSAyOC41LDI0LjQ4IDI4LjUsMjIgQzI4LjUsMTkuNTEgMjYuNDgsMTcuNSAyNCwxNy41IHoiIGZpbGwtb3BhY2l0eT0iMCIgXG4gICAgICBzdHJva2U9IiM5YmQwODkiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gICAgPHBhdGggZD0iTTE4Ljk5LDE4LjQ0IEwxNiwxNy4zNiBMMTYsMTUuMzIgTTE3LDIyLjUgTDYuNSwyMi41IEw2LjUsMjEuMDEgQzYuNSwyMC4wMSA3LjExLDE5LjExIDguMDUsMTguNzcgTDEyLDE3LjM2IEwxMiwxNS4zMiBNMTcuOTQsMTEuMjMgQzE3Ljk0LDguNjIgMTYuMTgsNi41IDE0LDYuNSBDMTEuODEsNi41IDEwLjA1LDguNjIgMTAuMDUsMTEuMjMgQzEwLjA1LDEzLjg1IDExLjgxLDE1Ljk3IDE0LDE1Ljk3IEMxNi4xNywxNS45NyAxNy45NCwxMy44NSAxNy45NCwxMS4yMyB6IE0xMC4wOSwxMC40NyBDMTAuNTcsMTAuNzIgMTEuMDUsMTAuODQgMTEuNjIsMTAuODQgQzEyLjc2LDEwLjg0IDE0LjE0LDEwLjE3IDE0LjU5LDkuMzEgQzE1LjMzLDEwLjYxIDE2LjE5LDExLjEwIDE3LjU0LDEwLjg0IEMxNy42NywxMC44MSAxNy43OCwxMC44MiAxNy45MSwxMC44MSIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICAgIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+PC9nPlxuPC9zdmc+Jyxsb2dpbjonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCwgMCwgMzIsIDMyIj5cbiAgPGcgaWQ9ImxvZ29fbG9naW4iPlxuICAgIDxnPlxuICAgICAgPHBhdGggZD0iTTE2LjUsMTkuNSBMNC41LDE5LjUgTDQuNSwxMC41IEwyNy41LDEwLjUgTDI3LjUsMTYuNTIgTTguNSwxNyBMOC41LDEzIE02LjgyLDE2LjA5IEwxMC4xNywxMy45MCBNNi44MywxMy44OSBMMTAuMTYsMTYuMTEgTTE0LjUsMTcgTDE0LjUsMTMgTTEyLjgyLDE2LjA5IEwxNi4xNywxMy45MCBNMTIuODMsMTMuODkgTDE2LjE2LDE2LjExIiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gICAgICA8cGF0aCBpZD0ic3ZnLXVuYXV0aCIgZD0iTTE4LjUsMTkuODMgTDI3LjUsMTkuODMgTDI3LjUsMjYuNTAgTDE4LjUsMjYuNTAgeiBNMjIuOTcsMjIuNTcgTDIyLjk3LDI0LjI0IE0yNS42NywxOS44MyBMMjUuNjcsMTkuMDAgQzI1LjY3LDE3LjYyIDI0LjQ2LDE2LjUwIDIyLjk3LDE2LjUwIEMyMS40OCwxNi41MCAyMC4yNywxNy42MiAyMC4yNywxOS4wMCBMMjAuMjcsMTkuODMgTTIzLjQyLDIyLjE1IEMyMy40MiwyMS45MiAyMy4yMiwyMS43NCAyMi45NywyMS43NCBDMjIuNzIsMjEuNzQgMjIuNTIsMjEuOTIgMjIuNTIsMjIuMTUgQzIyLjUyLDIyLjM4IDIyLjcyLDIyLjU3IDIyLjk3LDIyLjU3IEMyMy4yMiwyMi41NyAyMy40MiwyMi4zOCAyMy40MiwyMi4xNSB6IiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgICAgc3Ryb2tlPSIjRkZDMzAwOyIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgICA8L2c+XG4gIDwvZz5cbjwvc3ZnPicsY29uZmlnOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwLCAwLCAzMiwgMzIiPlxuICA8ZyBpZD0ibG9nb19jZmciPlxuICAgIDxwYXRoIGQ9Ik0xNi40OCwxOC41IEwxNi40OCwxMS41IE0yMi41MSwxNi41IEwyMi41MSwxOC41IE0xMC40OCw3LjUgTDEwLjQ4LDEyLjUgTTEwLjQ4LDE0LjUgTDEwLjQ4LDE4LjUgTTIyLjUxLDcuNSBMMjIuNTEsMTQuNSBNMTYuNDgsNy41IEwxNi40OCw5LjUgTTIwLjUxLDE2LjUgTDI0LjUxLDE2LjUgTDI0LjUxLDE0LjUgTDIwLjUxLDE0LjUgeiBNMTQuNDgsMTEuNSBMMTguNDgsMTEuNSBMMTguNDgsOS41IEwxNC40OCw5LjUgeiBNOC40OCwxNC41IEwxMi40OCwxNC41IEwxMi40OCwxMi41IEw4LjQ4LDEyLjUgeiBNMjIuNTIsMjEuNSBDMjEuNjksMjEuNSAyMS4wMiwyMi4xNyAyMS4wMiwyMyBDMjEuMDIsMjMuODIgMjEuNjksMjQuNSAyMi41MiwyNC41IEMyMy4zNSwyNC41IDI0LjAyLDIzLjgyIDI0LjAyLDIzIEMyNC4wMiwyMi4xNyAyMy4zNSwyMS41IDIyLjUyLDIxLjUgeiBNMTYuNDgsMjEuNSBDMTUuNjUsMjEuNSAxNC45OCwyMi4xNyAxNC45OCwyMyBDMTQuOTgsMjMuODIgMTUuNjUsMjQuNSAxNi40OCwyNC41IEMxNy4zMSwyNC41IDE3Ljk4LDIzLjgyIDE3Ljk4LDIzIEMxNy45OCwyMi4xNyAxNy4zMSwyMS41IDE2LjQ4LDIxLjUgeiBNMTAuNDgsMjEuNSBDOS42NSwyMS41IDguOTgsMjIuMTcgOC45OCwyMyBDOC45OCwyMy44MiA5LjY1LDI0LjUgMTAuNDgsMjQuNSBDMTEuMzEsMjQuNSAxMS45OCwyMy44MiAxMS45OCwyMyBDMTEuOTgsMjIuMTcgMTEuMzEsMjEuNSAxMC40OCwyMS41IHoiIGZpbGwtb3BhY2l0eT0iMCIgXG4gICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPicsc2hhcmU6JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjEsIDAsIDMzLCAzMiI+XG4gIDxnIGlkPSJsb2dvX3NldHRpbmdzIj5cbiAgICA8cGF0aCBkPSJNMjMuNTg5LDE2Ljg0NyBDMjUuNDY3LDE0Ljk2OCAyNS44MywxMi4xNDIgMjQuNjgxLDkuODk5IEwyMS42NDEsMTIuNzk5IEwxOS4yMDEsMTIuNzk5IEwxOS4yMDEsMTAuNTAzIEwyMi4xNiw3LjMxIEMxOS45MTgsNi4xNjMgMTcuMDYyLDYuNTI2IDE1LjE4NCw4LjQwMyBDMTMuMzA3LDEwLjI4IDEyLjkyNSwxMy4wOTcgMTQuMDczLDE1LjM0MSBMNi44ODQsMjIuNTIyIEM2LjE2NywyMy4yMzkgNi4xNjEsMjQuNDAxIDYuODc5LDI1LjExOSBDNy41OTcsMjUuODM3IDguNzU3LDI1LjgzNyA5LjQ3NCwyNS4xMTkgTDE2LjY1MywxNy45MzkgQzE4Ljg5NiwxOS4wODcgMjEuNzEyLDE4LjcyMyAyMy41ODksMTYuODQ3IHogTTIzLjMzNCwxNy4yMTkgTDE5LjIwMSwxMi43OTkgTTE2LjkwNSwxMi43OTkgTDE1LjUyNywxNC4xNzYgTTE4LjA1MywxMy45NDcgTDE2LjY3NiwxNS4zMjQgTTE5LjIwMSwxNS4wOTUgTDE3LjgyNCwxNi40NzIiIFxuICAgICAgICAgIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz4nfSxGOntNZXRyaWM6ZnVuY3Rpb24oeCxhKXtpZigiIj09eClyZXR1cm4geDthPWF8fDY7dmFyIGI9K3h8fDA7aWYoIWIpcmV0dXJuIDA7dmFyIGM9K2IudG9FeHBvbmVudGlhbCgpLnNwbGl0KCJlIilbMV07aWYoYjwrKCIxZSIrYSkpcmV0dXJuIGIrIiI7dmFyIGQ9Yz43PzM6MixlPWMmJmMlMyE9Mj9jJTM9PTA/MjoxOjA7cmV0dXJuIGIubWV0cmljKGUsZCl9LEJ5dGVzOmZ1bmN0aW9uKHgpe2lmKCIiPT14KXJldHVybiB4O3ZhciBhPSt4fHwwO2lmKCFhKXJldHVybiIiO3ZhciBiPSthLnRvRXhwb25lbnRpYWwoKS5zcGxpdCgiZSIpWzFdO3JldHVybiBhLmJ5dGVzKGIlMz09MCYmYj8xOjApfSxQb2tlQnVja2V0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLlJlcShbeF0pfSxTZXRUaGVtZTpmdW5jdGlvbih4KXtmdW5jdGlvbiBhKCl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKCh4LGEpPT4oYS5tYXRjaCgvKF58XHMpdGhlbWUtXFMrL2cpfHxbXSkuam9pbigiICIpKX10aGlzLl9jb21waWxlZCYmKCJhdXRvIj09eCYmd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8oYSgpLCQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtZGFyayIpKTp4PyhhKCksJCgiYm9keSIpLmFkZENsYXNzKCJ0aGVtZS0iK3gpKTphKCksJCgiYm9keSIpLnRyaWdnZXIoInJlc2l6ZSIpKX0sU2VsMlNjcm9sbDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7YT94LmZpbmQoIi5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIikuZWFjaChmdW5jdGlvbigpe2IubmljZVNjcm9sbCgkKHRoaXMpLHtib3VuY2VzY3JvbGw6ITAsY3Vyc29yY29sb3I6IiMyMzQiLGN1cnNvcm9wYWNpdHltaW46LjEsY3Vyc29yb3BhY2l0eW1heDouNCxyYWlscGFkZGluZzp7cmlnaHQ6MX19KX0pOnguZmluZCgiLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiB4JiZ4KCkucmVtb3ZlKCl9KX0sU2Vzc2lvbjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT10aGlzLmlzSUU7eC5QaG8oIl9jb21waWxlZCIpJiZ3aW5kb3cuRERPQyYmJC5hamF4KHt1cmw6eC5CYXNlLnJlcGxhY2UoL1wvKyQvLCIiKSsiL19zZXNzaW9uIixtZXRob2Q6ImdldCIsZGF0YVR5cGU6Impzb24iLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9LGNhY2hlOiFhfSkudGhlbihmdW5jdGlvbih4KXtpZihPYmplY3QuaXNPYmplY3QoeCkmJngudXNlckN0eCl7dmFyIGE9eC51c2VyQ3R4LGI9e25hbWU6YS5uYW1lfHwiIixyb2xlczphLnJvbGVzfHxbXX07YS5uYW1lfHwoJC5leHRlbmQod2luZG93LkRET0MuX21lLGIpLCQubXkucmFkaW8oInVzZXJDdHgiLGIpKX19KX0sQ2xvc2VBbGw6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuVGFicy5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4oeD9iLmFjdGl2ZTohYi5wYXRoLmxlbmd0aCl8fGIuaGFzaDAhPWIuaGFzaDE/YTooYS5wdXNoKHt0YWJpZDpiLmlkLGVuZm9yY2U6ITAsc2lsZW50OiEwfSksYSl9LFtdKTtiLmxhc3QoKS5zaWxlbnQ9ITEsYi5tYXAoZnVuY3Rpb24oeCl7YS5DbG9zZSh4KX0ubGF6eSgzMCkpfSxCdXN5OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5teS5yb290KCkudG9nZ2xlQ2xhc3MoImFwcC1idXN5Iix4KSwkLm15LnJhZGlvKCJhcHBidXN5Iix7aWQ6Yi50YWJpZCxidXN5Onh9KX0sUmVxOmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzU3RyaW5nO3ZhciBiPU9iamVjdC5pc09iamVjdCxjPU9iamVjdC5pc0FycmF5LGQ9dGhpcy5pc0lFLGU9ZnVuY3Rpb24oeCl7cmV0dXJuIl9ub2RlL19sb2NhbC9fbm9kZXMiIT14P3dpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoeCk6eH0sZj10aGlzLGc9KGYuZGF0YSxmLkNmZyksaD1mLmxhbmcsaT0kLkRlZmVycmVkKCksaj0kLmV4dGVuZCghMCx7bWV0aG9kOiJHRVQiLGRhdGFUeXBlOiJqc29uIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifSxjYWNoZTohZH0sYih4KT94OmMoeCk/e3VybDp4fTp7dXJsOngrIiJ9KSxrPW0oai51cmwsZi5CYXNlKTtyZXR1cm4gYT9rOihrfHxsKDQwMCxoLkVSUl9SRVFfSU5WQUxJRENBTEwpLGYuX2NvbXBpbGVkJiYhL1wvX3Nlc3Npb24kLy50ZXN0KGspJiZrIT1mLkJhc2UmJmcucm9sZXMubGVuZ3RoJiYtMT09Y3cubWUoInJvbGVzIikuaW5kZXhPZigiX2FkbWluIikmJjA9PWN3Lm1lKCJyb2xlcyIpLmludGVyc2VjdChnLnJvbGVzKS5sZW5ndGg/KGN3Lm1lKCk/bCg0MDMsaC5FUlJfUkVRX1JPTEVSRVEse29rOiExLHJlYXNvbjoiY29uZmlnIn0pOmwoNDAxLGguRVJSX1JFUV9BVVRIUkVRLHtvazohMSxyZWFzb246ImNvbmZpZyJ9KSxpLnByb21pc2UoKSk6KGoudXJsPWssJC5hamF4KGopLnRoZW4oZnVuY3Rpb24oeCxhLGIpe2kucmVzb2x2ZSh4LGIpfSkuZmFpbChmdW5jdGlvbih4LGEpe3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoeC5yZXNwb25zZVRleHQpfWNhdGNoKHgpe31PYmplY3QuaXNPYmplY3QoYil8fChiPXtyZXNwb25zZTp4LnJlc3BvbnNlVGV4dH0pLGIub2s9ITE7dmFyIGM9eC5zdGF0dXM7bChjLGIucmVhc29ufHxiLm1lc3NhZ2V8fCIiLGIpLGYuX2NvbXBpbGVkJiZjdy5tZSgibmFtZSIpJiYoNDAxPT1jfHw0MDM9PWMpJiZmLlNlc3Npb24oKX0pLGkucHJvbWlzZSgpKSk7ZnVuY3Rpb24gbCh4LGEsYil7dmFyIGM9aXNOYU4oeCk/NTAwOit4LGQ9aXNOYU4oeCkmJiFhP3g6YTtkfHwoZD1oLkVSUl9SRVFbY118fGguRVJSX1JFUVs5OTldKSxkKz0iIixpLnJlamVjdChjLGQsYil9ZnVuY3Rpb24gbSh4LGEpe3ZhciBiPVtdLGM9e30sZD1bXSxmPSIiLGc9YT8oYSsiIikucmVwbGFjZSgvXC8rJC8sIiIpKyIvIjoiIixoPXtzdGFydGtleToxLGVuZGtleToxLHN0YXJ0X2tleToxLGVuZF9rZXk6MSxrZXk6MX0saT0vXl9kZXNpZ25cLy87cmV0dXJuInN0cmluZyI9PXR5cGVvZiB4P2Y9L15odHRwW3NdPzovLnRlc3QoeCk/eDpnK3gucmVwbGFjZSgvXlwvKy8sIiIpOk9iamVjdC5pc0FycmF5KHgpJiYoeC5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7aWYoIiIhPT14JiZudWxsIT14KWlmKE9iamVjdC5pc09iamVjdCh4KSkkLmV4dGVuZCghMCxjLHgpO2Vsc2UgaWYoaS50ZXN0KHgrIiIpKXt2YXIgZD0oeCsiIikuc3BsaXQoIi8iKTtiLmFkZChbZFswXSxkLmZyb20oMSkuam9pbigiLyIpXSl9ZWxzZSBiLnB1c2goZSh4KyIiKSl9KSxkPU9iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbih4KXt2YXIgYT1jW3hdO3JldHVybihoW3hdfHwic3RyaW5nIiE9dHlwZW9mIGEpJiYoYT1KU09OLnN0cmluZ2lmeShhKSksZSh4KSsiPSIrZShhKX0pLGY9ZytiLmpvaW4oIi8iKSsoZC5sZW5ndGg/Ij8iK2Quam9pbigiJiIpOiIiKSksZn19LFN3aXRjaDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPXMsZT1jLmRhdGEsZj1jLlRhYnMuZmluZEluZGV4KGZ1bmN0aW9uKHgpe3JldHVybiB4LmFjdGl2ZX0pfHwwLGc9T2JqZWN0LmlzU3RyaW5nKHgpP3gucmVwbGFjZSgvXiMvLCIiKS5zcGxpdCgiLyIpLmNvbXBhY3QoITApOk9iamVjdC5pc0FycmF5KHgpP3guc2xpY2UoMCkuY29tcGFjdCghMCk6W107Zy5sZW5ndGg+MiYmZy5qb2luKCIvIikuc3RhcnRzV2l0aCgiX25vZGUvX2xvY2FsL19ub2RlcyIpJiYoKGc9Zy5mcm9tKDIpKVswXT0iX25vZGUvX2xvY2FsL19ub2RlcyIpLFsxLDIsM10uZm9yRWFjaChmdW5jdGlvbih4KXsvXl8oZGVzaWdufGxvY2FsKSQvLnRlc3QoZ1t4XSkmJihnW3grMV0mJihnW3grMV09Z1t4XSsiLyIrZ1t4KzFdKSxnLnJlbW92ZUF0KHgpKX0pO3ZhciBoLGk9Zy5qb2luKCJcZmZmZCIpLGo9W107aWYoYy5UYWJzLmZvckVhY2goeD0+eC5wYXRoLmpvaW4oIlxmZmZkIik9PWk/ai5wdXNoKHgpOjApLGoubGVuZ3RoPjEmJmEmJihqWzBdPWouZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5pZD09YX0pfHxqWzBdKSwoaD1qWzBdKSYmaC5hY3RpdmUmJmgucnVuKXJldHVybiExO3ZhciBrLGw9L14oX25vZGVcL19sb2NhbFwvX25vZGVzfF91c2Vyc3xfcmVwbGljYXRvcnxfZGJzfF9ub2Rlc3xfZ2xvYmFsX2NoYW5nZXMpJC8udGVzdChnWzBdKXx8L15bYS16QS1aMC05JFwoXClcK1wtXVthLXpBLVowLTkkXChcKVwrXC1cL19cLl0qJC8udGVzdChnWzBdKSxtPSJlcnJvciIsbj0iRXJyb3IiLG89Yy5UeXBlcy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtpZih4Lm9rfHwhY1thXS5tYXRjaClyZXR1cm4geDt2YXIgYj1jW2FdLm1hdGNoLmNhbGwoYyxnLnNsaWNlKDApLGwpO3JldHVybiBiJiYkLmV4dGVuZCh4LHtvazohMCx0eXBlOmEuc3Vic3RyKDEpfSxiKSx4fSx7b2s6ITEsdGl0bGU6IkVycm9yIix0eXBlOiJlcnJvciIscGF0aDpnfSk7aWYobT1vLnR5cGUsbj1vLnRpdGxlLGs9by5hcHBEYXRhLGc9by5wYXRoLCJlcnJvciI9PW0mJihrPXtlcnJvcjoiVW5yZWNvZ25pemVkIGNvbW1hbmQifSksIWgpe2lmKGMuVGFicy5sZW5ndGg+PWMuQ2ZnLm1heFRhYnMmJmcubGVuZ3RoKXt2YXIgcD1jLlRhYnMubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgudHM9eC50c3x8IjAwMDAwMCIrKDk5LWEpLnRvU3RyaW5nKDM2KSx4fSkuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiF4LmVycm9yJiYheC5hY3RpdmUmJnguaGFzaDA9PXguaGFzaDF9KS5zb3J0QnkoInRzIilbMF07aWYoIXApcmV0dXJuIGN3LmxpYi5ub3RlKGMubGFuZy5GQUlMX1RPT19NQU5ZX1RBQlMuYXNzaWduKGMuQ2ZnLm1heFRhYnMrIiIpLCJlcnJvciIpLCExO2MuQ2xvc2Uoe3RhYmlkOnAuaWQsc2lsZW50OiEwfSl9ITAsaD17aWQ6Y3cubGliLnNkYm0oRGF0ZS5ub3coKStnKSx0eXBlOm0saGFzaDA6IiIsaGFzaDE6IiIsYWN0aXZlOiEwLG5hbWU6bixwYXRoOmcuc2xpY2UoMCksZXJyb3I6ImVycm9yIj09bSxydW46ITEsdHM6RGF0ZS5ub3coKS50b1N0cmluZygzNil9LC9eKGRic3xjb25maWd8YWJvdXR8c3RhdHN8bG9nKSQvLnRlc3QobSk/Yy5UYWJzLmluc2VydChoLGMuVGFicy5sZW5ndGgmJiFjLlRhYnNbMF0ucGF0aC5sZW5ndGg/MTowKToxPT1nLmxlbmd0aCYmYy5UYWJzW2ZdLnBhdGhbMF09PWdbMF0/Yy5UYWJzLmluc2VydChoLGYpOmMuVGFicy5pbnNlcnQoaCxmKzEpfWlmKGMuVGFicy5mb3JFYWNoKHg9PnghPT1oP3guYWN0aXZlPSExOjApLGguYWN0aXZlPSEwLGgudHM9RGF0ZS5ub3coKS50b1N0cmluZygzNiksYy5IaXN0b3J5LnJlbW92ZShoLmlkKSxjLkhpc3RvcnkucHVzaChoLmlkKSxjLl9jb21waWxlZCl7dmFyIHE9aC5wYXRoLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfSkuam9pbigiLyIpO2xvY2F0aW9uLmhhc2gucmVwbGFjZSgvXiMvLCIiKSE9cSYmKGxvY2F0aW9uLmhhc2g9IiMiK3EpfWMuU2V0VGl0bGUoaC5uYW1lKSxkKCksYy5teS5yZXN0eWxlKCk7dmFyIHI9dChtLGcsaC5pZCxrKTtmdW5jdGlvbiBzKCl7Yy5teS5yZWNhbGMoIiNsLWFwcHRhYnMiKSxlLnBhdGg9T2JqZWN0LmNsb25lKGcsITApfWZ1bmN0aW9uIHQoeCxhLGQsZSl7dmFyIGYsZz1jWyIkIit4XSxoPWMubXkuZmluZCgiI2wtYXBwcz4jYXBwLSIrZCk7cmV0dXJuIWgubGVuZ3RofHwhaC5pcygiLm15LWZvcm0iKSYmImVycm9yIj09eD8oaC5sZW5ndGh8fChoPSQoJzxkaXYgY2xhc3M9ImwtYXBwIiBpZD0iYXBwLScrZCsnIj48L2Rpdj4nKSxjLm15LmZpbmQoIiNsLWFwcHMiKS5hcHBlbmQoaCkpLGMubXkuZmluZCgiI2wtYXBwcz4ubC1hcHAiKS5hZGRDbGFzcygiaGlkZSIpLGgucmVtb3ZlQ2xhc3MoImhpZGUiKSxmPWgubXkoZywkLmV4dGVuZCh7cGF0aDphLHRhYmlkOmR9LGV8fHt9LCJlcnJvciI9PXg/e306Ynx8e30pKSk6Yy5teS5maW5kKCIjbC1hcHBzPi5sLWFwcCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpO3guaXMoaCk/eC5yZW1vdmVDbGFzcygiaGlkZSIpOnguYWRkQ2xhc3MoImhpZGUiKX0pLGZ8fGh9ci50aGVuJiZyLnRoZW4oZnVuY3Rpb24oKXt2YXIgeD0hMTtoLnJ1bj0hMCxoLmhhc2gwPWguaGFzaDE9ci5teSgibWFuaWZlc3QiKS5oYXNoKCksaC5uYW1lPXIubXkoIm1hbmlmZXN0IikudGl0bGUoKSxjLlNldFRpdGxlKGgubmFtZSksci5vbigiY2hhbmdlLm15IixmdW5jdGlvbigpe2guaGFzaDE9ci5teSgibWFuaWZlc3QiKS5oYXNoKCk7dmFyIGE9ci5teSgibWFuaWZlc3QiKS50aXRsZSgpO2guaGFzaDAhPWguaGFzaDF8fGEhPWgubmFtZT8oaC5uYW1lPWEseD0hMCxkKCkpOngmJmQoKSxoLmFjdGl2ZSYmYy5TZXRUaXRsZShoLm5hbWUpfS5kZWJvdW5jZSg1MDApKSxyLm9uKCJyZXNldHRhYmhhc2gubXkiLGZ1bmN0aW9uKCl7aC5oYXNoMD1oLmhhc2gxPXIubXkoIm1hbmlmZXN0IikuaGFzaCgpLGgubmFtZT1yLm15KCJtYW5pZmVzdCIpLnRpdGxlKCksZCgpfS5kZWJvdW5jZSgxMDApKSxkKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYil7Yy5QaG8oIkNvdWNoIikudmVyPj0iMDAzLiImJmN3Lm1lKCkmJiFnLmxlbmd0aHx8Y3cubGliLm5vdGUoYy5sYW5nLkZBSUxfVEFCX0FQUCwiZXJyb3IiKSxjLm15LmZpbmQoIiNsLWFwcHM+I2FwcC0iK2EpLnJlbW92ZSgpLGguZXJyb3I9ITAsY29uc29sZS5sb2coeCxiKSxoLmhhc2gxPWguaGFzaDA9ImVycm9yIix0KCJlcnJvciIsZyxoLmlkLHtlcnJvcjpPYmplY3QuaXNTdHJpbmcoeCkmJk9iamVjdC5pc1N0cmluZyhiKT94KyIgIitiOnh9KX0uZGVib3VuY2UoMTApKX0sQ2xvc2U6ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9ITE7aWYoT2JqZWN0LmlzT2JqZWN0KHgpPyhhPXgudGFiaWR8fCIiLHguZW5mb3JjZXx8ITEsYz14LnNpbGVudHx8ITEpOmE9eCsiIiwhKGIuVGFicy5sZW5ndGg8MikmJmEpe3ZhciBkPWIuVGFicy5maW5kKHg9PnguaWQ9PWEpO2lmKGQpe3ZhciBlPWIubXkuZmluZCgiI2wtYXBwcz4jYXBwLSIrYSk7ZS5sZW5ndGgmJmUuaXMoIi5teS1mb3JtIik/KGQuaGFzaDE9ZS5teSgibWFuaWZlc3QiKS5oYXNoKCksZC5oYXNoMT09ZC5oYXNoMD9mKGUsZCk6JC5teS5tb2RhbCh7bWFuaWZlc3Q6Yi5Db25maXJtLGRhdGE6e3llczoiQ2xvc2UgdGFiJm5ic3A7IixubzoiQ2FuY2VsIGNsb3NlIixjYW5jZWw6IiIsdGV4dDpiLmxhbmcuRExHX1VOU0FWRUQsdXNlQnV0dG9uczohMH0sd2lkdGg6MzAwLGNsb3NlOiEwLGVzYzohMCxlbnRlcjohMSxjc3M6ImxoMTcwIHhncmF5IHAyMCBwYjI1Iixmb2N1czoiI2J0bi15ZXMifSkudGhlbihmdW5jdGlvbih4KXsieWVzIj09eC5jbWQmJmYoZSxkKX0pKTpnKCFkLmFjdGl2ZSl9fWZ1bmN0aW9uIGYoeCxhKXt4Lm15KCJyZW1vdmUiKSx4LnJlbW92ZSgpLGcoIWEuYWN0aXZlKX1mdW5jdGlvbiBnKHgpe2lmKGIuSGlzdG9yeS5yZW1vdmUoYSksYi5UYWJzLnJlbW92ZShkKSx4KWN8fGIubXkucmVjYWxjKCIjbC1hcHB0YWJzIik7ZWxzZSBpZihiLkhpc3RvcnkubGVuZ3RoKXtmb3IodmFyIGUsZjtiLkhpc3RvcnkubGVuZ3RoJiYhZTspZj1iLkhpc3RvcnkucG9wKCksZT1iLlRhYnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5pZD09Zn0pO2V8fChlPWIuVGFic1swXSksYi5Td2l0Y2goZS5wYXRoLGUuaWQpfWVsc2UgYi5teS5yZWNhbGMoIiNsLWFwcHRhYnMiKSxiLl9jb21waWxlZCYmd2luZG93Lmhpc3RvcnkuYmFjaygpO2N8fGIubXkucmVzdHlsZSgpfX0sR2V0TGlzdDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0oeC5kYXRhLCQuRGVmZXJyZWQoKSksYj1lbmNvZGVVUklDb21wb25lbnQsYz0iIixkPVtdLGU9Il9ub2RlL19sb2NhbC9fbm9kZXMiLGY9W3guUmVxKFsiX2FsbF9kYnMiXSkudGhlbihmdW5jdGlvbihhKXt2YXIgYz1PYmplY3Qua2V5cyh4LkFsbCksZD1hLnNsaWNlKDApO2Muc3VidHJhY3QoZCkuZm9yRWFjaChmdW5jdGlvbihhKXthIT1lJiZkZWxldGUgeC5BbGxbYV19KSxkLmZvckVhY2goZnVuY3Rpb24oYSl7aWYoIXguQWxsW2FdKXt2YXIgYz1hLmVzY2FwZUhUTUwoKSxkPWcoYSksZT1jLGY9YS5sZW5ndGgsaD0wO2Y+MTUmJihoPWYtKDE1K2YlMyksZT1hLnRvKGYtaCkrYS5mcm9tKGYtaCkucmVwbGFjZSgvKC57M30pL2csIiQxPHdicj4iKSk7dmFyIGk9JC5leHRlbmQoITAse25hbWU6YSxuYW1lc2FmZTpjLGhuYW1lOmUsdG9vbHRpcDpkLGhyZWY6YihhKX0seC5kYlR5cGUpO3guQWxsW2FdPSQuZXh0ZW5kKCEwLGkseC5BbGxbYV18fHt9KX19KSx4Lkdyb3VwREJzKCl9KS50aGVuKGZ1bmN0aW9uKCl7eC5QaG8oIkNvdWNoIikudmVyPCIwMDMuInx8IWN3Lm1lKCJyb2xlcyIpLmZpbmQoIl9hZG1pbiIpfHwoeC5BbGxbZV09eC5BbGxbZV18fCQuZXh0ZW5kKCEwLHtuYW1lOmUsbmFtZXNhZmU6ZSxobmFtZTplLHRvb2x0aXA6ZSxocmVmOmIoZSl9LHguZGJUeXBlKSl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtjb25zb2xlLmxvZyh4LGIsYyksYS5yZWplY3QoeCxiLGMpfSldO3JldHVybiBmLnB1c2goaCgpKSxRLmFsbFNldHRsZWQoZikudGhlbihmdW5jdGlvbigpe3guQWxsW2NdP3guUmVwbGljYXRvckRCPWM6eC5SZXBsaWNhdG9yREI9eC5SZXBsaWNhdG9yREJ8fCJfcmVwbGljYXRvciIsYS5yZXNvbHZlKHguQWxsKX0pLGEucHJvbWlzZSgpO2Z1bmN0aW9uIGcoeCl7aWYoIS9edXNlcmRiLShbMC05YS1oXXsyfSl7MSx9JC8udGVzdCh4KSlyZXR1cm4geC5sZW5ndGg+MjA/eDoiIjt2YXIgYT14LmZyb20oNyksYj0iIjt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYS5yZXBsYWNlKC8oLi4pL2csIiUkMSIpKX1jYXRjaCh4KXt9cmV0dXJuIGI/IlVzZXIgREIgZm9yICIrYjp4Lmxlbmd0aD4yMD94OiIifWZ1bmN0aW9uIGgoKXt2YXIgYT1bXTtyZXR1cm4geC5Db3VjaC52ZXJzaW9ufHwoYS5wdXNoKHguUmVxKHt1cmw6W10sZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbihhKXt4LkNvdWNoLnZlcnNpb258fCQuZXh0ZW5kKHguQ291Y2gsYSksbCgpfSkpLHguUGhvKCJfY29tcGlsZWQiKSYmIXdpbmRvdy5ERE9DLl9kYiYmYS5wdXNoKHguUmVxKHt1cmw6WyJfZGJyb290Il0sZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbihhKXskLmV4dGVuZCh4LkNvdWNoLGEpLGwoKX0pLmZhaWwoeD0+Y29uc29sZS5sb2coIlRoaXMgNDAwIGlzIG5vcm1hbCIpKSkpLFEuYWxsU2V0dGxlZChhKS50aGVuKGkpfWZ1bmN0aW9uIGkoKXt2YXIgYT1bXTtyZXR1cm4geC5Db3VjaC52ZXI8IjAwMi4iPyhhLnB1c2goeC5SZXEoWyJfY29uZmlnIiwicmVwbGljYXRvciIsImRiIl0pLnRoZW4oZnVuY3Rpb24oeCl7InN0cmluZyI9PXR5cGVvZiB4JiYoYz14KX0pLmZhaWwoZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiVGhpcyA0MHggaXMgbm9ybWFsIil9KSx4LlJlcShbIl9jb25maWciLCJodHRwZCIsInBvcnQiXSkudGhlbihmdW5jdGlvbihhKXsic3RyaW5nIj09dHlwZW9mIGEmJih4LkNvdWNoLnBvcnQ9YSl9KSkseC5Db3VjaC5tYXhCYXRjaD0wKTphLnB1c2goeC5HZXRNZW1iZXJzaGlwKCkudGhlbihmdW5jdGlvbih4KXtkPXh9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGsoKX0pLGooKSx4LlJlcShbIl9ub2RlIiwiX2xvY2FsIiwiX2NvbmZpZyIsImNodHRwZCIsInBvcnQiXSkudGhlbihmdW5jdGlvbihhKXsic3RyaW5nIj09dHlwZW9mIGEmJih4LkNvdWNoLnBvcnQ9YSl9KSksUS5hbGxTZXR0bGVkKGEpfWZ1bmN0aW9uIGooKXtpZigheC5QaG8oIkNvdWNoIikucSlyZXR1cm4geC5SZXEoWyJfbm9kZSIsIl9sb2NhbCIsIl9jb25maWciLCJjbHVzdGVyIl0pLnRoZW4oZnVuY3Rpb24oYSl7YSYmIm9iamVjdCI9PXR5cGVvZiBhJiYoeC5Db3VjaC5xPSsoYS5xfHwwKSx4LkNvdWNoLm49KyhhLm58fDApKX0pLmZhaWwoZnVuY3Rpb24oKXt4LkNvdWNoLnE9MCxjb25zb2xlLmxvZygiVGhpcyA0MHggaXMgbm9ybWFsIil9KX1mdW5jdGlvbiBrKCl7cmV0dXJuIWQubGVuZ3RofHx4LkNvdWNoLnZlcjwiMDAyLjAwMi4ifHx4LkNvdWNoLm1heEJhdGNoPjA/KHguQ291Y2gubWF4QmF0Y2g9eC5Db3VjaC5tYXhCYXRjaHx8MCx2b2lkIDApOnguUmVxKFsiX25vZGUiLCJfbG9jYWwiLCJfY29uZmlnIiwiY2h0dHBkIiwibWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxIl0pLnRoZW4oZnVuY3Rpb24oYSl7eC5Db3VjaC5tYXhCYXRjaD0ic3RyaW5nIj09dHlwZW9mIGE/K2E6MH0pLmZhaWwoZnVuY3Rpb24oKXt4LkNvdWNoLm1heEJhdGNoPXguQ291Y2gudmVyPiIwMDMuMDAxLiI/MTAwOjAsY29uc29sZS5sb2coIlRoaXMgNDB4IGlzIG5vcm1hbCIpfSl9ZnVuY3Rpb24gbCgpe3guQ291Y2gudmVyPXguQ291Y2gudmVyc2lvbi5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4oIjAwIisoK3h8fHBhcnNlSW50KHgpfHwwKS50b1N0cmluZygpKS5zdWJzdHIoLTMpfSkuam9pbigiLiIpfX0sR2V0TWVtYmVyc2hpcDpmdW5jdGlvbigpe3ZhciB4LGE9dGhpcztyZXR1cm4gT2JqZWN0LnNpemUoeD1hLlBobygiTWVtYmVyc2hpcCIpKT9iKHgpOmEuUmVxKFsiX21lbWJlcnNoaXAiXSkudGhlbihiKTtmdW5jdGlvbiBiKHgpe3ZhciBiPVtdO3JldHVybiBPYmplY3QuaXNPYmplY3QoeCkmJk9iamVjdC5pc0FycmF5KHguYWxsX25vZGVzKSYmT2JqZWN0LmlzQXJyYXkoeC5jbHVzdGVyX25vZGVzKSYmKCQuZXh0ZW5kKCEwLGEuUGhvKCJNZW1iZXJzaGlwIikseCksYj14LmNsdXN0ZXJfbm9kZXMuc2xpY2UoMCkuaW50ZXJzZWN0KHguYWxsX25vZGVzKSksYn19LEdldFVzZXJzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSQuRGVmZXJyZWQoKSxiPXguVXNlcnM7cmV0dXJuKGIuX3NlcT94LlJlcSh7dXJsOlsiX3VzZXJzIiwiX2NoYW5nZXMiLHtzaW5jZTpiLl9zZXF9XSxkYXRhVHlwZToianNvbiJ9KTp4LlJlcSh7dXJsOlsiX3VzZXJzIiwiX2FsbF9kb2NzIix7dXBkYXRlX3NlcTohMH1dLGRhdGFUeXBlOiJqc29uIn0pKS50aGVuKGZ1bmN0aW9uKHgpe2IuX3NlcT14Lmxhc3Rfc2VxfHx4LnVwZGF0ZV9zZXEsKHgucm93c3x8eC5yZXN1bHRzfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4KXtpZigib3JnLmNvdWNoZGIudXNlcjoiPT14LmlkLnRvKDE3KSl7dmFyIGE9eC5pZC5mcm9tKDE3KTt4LmRlbGV0ZWQ/ZGVsZXRlIGJbYV06YlthXT0hMH19KX0pLmFsd2F5cyhmdW5jdGlvbigpe2EucmVzb2x2ZShPYmplY3Qua2V5cyhiKS5zb3J0KCkucmVtb3ZlKC9eXy8pKX0pLGEucHJvbWlzZSgpfSxHcm91cERCczpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLkFsbCxkPWIuUGhvKCJDZmciKS5ncm91cGluZyxlPSh4PXh8fE9iamVjdC5rZXlzKGMpLGE9YXx8T2JqZWN0LmtleXMoYi5McygiREJzLlN0YXJzIil8fHt9KSxjdy5saWIuYTJvKGEpKSxmPWQuZmluZCgidGlueSIpPzEwOmQuZmluZCgic21hbGwiKT8zMDpkLmZpbmQoImxhcmdlIik/MjUwOjEwMCxnPWYvM3wwLGg9eC5maWx0ZXIoeD0+IWVbeF0pLnNvcnQoKTtpZih4Lmxlbmd0aDwyKmd8fGQrIiI9PSIiKXJldHVybiBPYmplY3Qua2V5cyhjKS5mb3JFYWNoKHg9PmNbeF0uZ3JvdXA9IiIpLGIuR3JvdXBzPXt9O2lmKGQuZmluZCgiYXV0byIpKXtpZihkLmZpbmQoImF1dG8iKSl7bD17IiI6MH07dmFyIGk9e307aD0oaD1oLm1hcChmdW5jdGlvbih4LGEpe3ZhciBiPSh4Lm1hdGNoKC9eW2EtejAtOVwkXStbXC9cLV9cK10vKXx8W10pWzBdO3JldHVybiBiPyhsW2JdfHwoaVtiXT1hLGxbYl09MCksbFtiXSs9MSx7ZGI6eCxncm91cDpifSk6KGxbIiJdKz0xLHtkYjp4LGdyb3VwOiIifSl9KSkubWFwKGZ1bmN0aW9uKHgpe3ZhciBhPXguZ3JvdXA7cmV0dXJuIGE/KGxbYV0/bFthXTxnJiYobFsiIl0rPWxbYV0sZGVsZXRlIGxbYV0seC5ncm91cD0iIik6eC5ncm91cD0iIix4KTp4fSk7dmFyIGo9W10saz1udWxsO209MDtoLmZvckVhY2goZnVuY3Rpb24oeCxhKXtpZigiXyIhPXguZGJbMF0pe2lmKHguZ3JvdXApcmV0dXJuIGs9bnVsbDtrfHxqLnB1c2goe2kwOmEsc2l6ZTowLHBmOnt9fSk7dmFyIGI9ai5sYXN0KCksYz14LmRiWzBdO2IucGZbY118fChiLnBmW2NdPXtpMDphLHNpemU6MH0pLGIucGZbY10uc2l6ZSs9MSxiLnNpemUrPTEsaz14fX0pLChqPWouZmlsdGVyKHg9Pnguc2l6ZT49ZikpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5wZjtPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBiPWFbeF0sYz1iLnNpemU8Zi1nPyIiOng7YyYmKGlbY109Yi5pMCxsW2NdPWIuc2l6ZSxsWyIiXS09Yi5zaXplKTtmb3IodmFyIGQ9MDtkPGIuc2l6ZTtkKyspaFtiLmkwK2RdLmdyb3VwPWN9KX0pLE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeCYmIShsW3hdPGYrZykpe3ZhciBhPWxbeF0sYj1hL2Y7YiE9PSgwfGIpJiYoYj1NYXRoLmNlaWwoYikpO2Zvcih2YXIgYz1NYXRoLmNlaWwoYS9iKS5jbGFtcCguOSpmfDAsZiksZD1pW3hdLGU9MTtlPGI7ZSsrKWZvcih2YXIgaj0wLGs9MDtrPGM7aysrKShqPWUqYytrKTxhJiYoaFtkK2pdLmdyb3VwKz0iOiIrZSl9fSl9fWVsc2V7dmFyIGw9eyIiOjB9LG09MDtoPWgubWFwKGZ1bmN0aW9uKHgsYSl7aWYoIl8iPT14WzBdKXJldHVybntkYjp4LGdyb3VwOiIifTt2YXIgYj0iOiIrbTtyZXR1cm4gbFtiXXx8KGxbYl09MCksbFtiXSs9MSxsW2JdPj1mJiYobSs9MSkse2RiOngsZ3JvdXA6Yn19KX1sPXsiIjp7c2l6ZTowLHN0YXJ0OiIiLGVuZDoiIn19LGs9bnVsbDtyZXR1cm4gaC5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7dmFyIGI9eC5ncm91cDtjW3guZGJdLmdyb3VwPWIsYiYmIWxbYl0mJihsW2JdPXtpZDpiLGhlYWQ6Yi5zcGxpdCgiOiIpWzBdLHN0YXJ0OnguZGIsZW5kOiIiLHNpemU6MCxpMDphfSksIWJ8fGhbYSsxXSYmaFthKzFdLmdyb3VwPT1ifHwobFtiXS5lbmQ9eC5kYiksbFtiXS5zaXplKz0xfSksYi5Hcm91cHM9bH0sVXBkYXRlcjpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5McztpZih4Ll9jb21waWxlZCYmY3cubWUoKSYmInJlbWluZCI9PXguQ2ZnLnVwZGF0ZSl7dmFyIGE9eC5McygiTGFzdFVwZGF0ZSIpfHx7fSxiPXdpbmRvdy5ERE9DLGM9RGF0ZS5ub3coKSxkPSIiLGU9MjY3ODRlNSxmPTA7aWYoIShhLnJlbWluZGVyJiZjLWEucmVtaW5kZXI8ZSooTWF0aC5yYW5kb20oKS8yKy41KSkpe2lmKGEuc3RhbXApe2lmKChmPShjLWEuc3RhbXApL2UpPDEuMSlyZXR1cm47ZD14LmxhbmcuVVBEX01PTlRILmFzc2lnbigwfGYsZj4xPyJzIjoiIil9ZWxzZXtpZigoZj0oYy1iLnN0YW1wKS9lKTwxLjEpcmV0dXJuO2Q9eC5sYW5nLlVQRF9PTEQuYXNzaWduKDB8ZixmPjE/InMiOiIiKX1kJiYoZCs9eC5sYW5nLlVQRF9UQUlMLGN3LmxpYi5ub3RlKGQsInh4eCIsNmUzKSxhLnJlbWluZGVyPWMseC5McygiTGFzdFVwZGF0ZSIsYSkpfX19LExzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj13aW5kb3cubG9jYWxTdG9yYWdlLGM9ZixkPXh8fGEuaWR8fCJYIixlPU9iamVjdC5pc1N0cmluZztpZihhLl9jb21waWxlZCl0cnl7aC5kZWxheSgzZTMpfWNhdGNoKHgpe31yZXR1cm4gYztmdW5jdGlvbiBmKHgsYSl7dmFyIGMsZj1kKyIuIit4O3JldHVybiBudWxsPT09YT9iLnJlbW92ZUl0ZW0oZik6dm9pZCAwIT09YT9iLnNldEl0ZW0oZixKU09OLnN0cmluZ2lmeShhKSk6KGM9Yi5nZXRJdGVtKGYpLGUoYyk/ZyhjKTpudWxsKX1mdW5jdGlvbiBnKHgpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh4KX1jYXRjaCh4KXt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaCgpe3ZhciB4PURhdGUubm93KCk7aWYoIShKU09OLnN0cmluZ2lmeShiKS5sZW5ndGg8MWU2KSlPYmplY3Qua2V5cyhiKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3RhcnRzV2l0aCgiY3cuU3lzLkpTT04udmlld3N0YXRlIil9KS5yZWR1Y2UoZnVuY3Rpb24oYSxjKXt2YXIgZD1iLmdldEl0ZW0oYyk7aWYoIWUoZCkpcmV0dXJuIGE7dmFyIGY9ZyhkKTtyZXR1cm4gZiYmZi5zdGFtcCYmZi5zdGFtcD54LTMxNTM2ZTYmJmEucHVzaChbYyxmXSksYX0sW10pLnNvcnRCeShmdW5jdGlvbih4KXtyZXR1cm4geFsxXS5zdGFtcH0pLnRvKC0xZTMpLmZvckVhY2goZnVuY3Rpb24oeCl7Yi5yZW1vdmVJdGVtKHhbMF0pfSl9fSxDcmVhdGVEQnM6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5sYW5nLGQ9Yi5QaG8oIkNmZyIpLmJhdGNoQ3JlYXRlRGVsYXksZT1iLlBobygiQ291Y2giKSxmPWUudmVyLGc9ZS5xO3JldHVybiBRLmFsbFNldHRsZWQoeC5tYXAoaCkpLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7JC5teS5yYWRpbygiZGJsaXN0Iix4Lm1hcCh4PT54Lm5hbWUpKX0uZGVsYXkoNTApLGF9KTtmdW5jdGlvbiBoKHgsZSl7dmFyIGg9JC5leHRlbmQoITAse25hbWU6IiIsc2VjdXJpdHk6bnVsbCxxOjAsbjowLHBhcnRpdGlvbmVkOiExLGNyZWF0ZTohMH0seCk7aC5zZWN1cml0eT0kLmV4dGVuZCghMCx7YWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119fSx4LnNlY3VyaXR5fHx7fSk7dmFyIGo9aC5uYW1lLGs9e30sbD0kLkRlZmVycmVkKCk7cmV0dXJuIGY+IjAwMi4iJiYrZz4wJiYraC5xPjAmJiQuZXh0ZW5kKGsse3E6K2gucXx8MixuOitoLm58fDF9KSxmPiIwMDMuIiYmaC5wYXJ0aXRpb25lZCYmK2gucT4xJiYoay5wYXJ0aXRpb25lZD0hMCksZnVuY3Rpb24oKXsoaC5jcmVhdGU/Yi5SZXEoe3VybDpbaixrXSxtZXRob2Q6IlBVVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkudGhlbihtKTptKCkpLnRoZW4oZnVuY3Rpb24oKXtsLnJlc29sdmUoaCl9KS5mYWlsKGZ1bmN0aW9uKHgsYyxkKXtsLnJlamVjdCh4LGMsZCxoKSxhfHxjdy5saWIubm90ZShiLmxhbmcuTVNHX05FV0RCX0ZBSUwuYXNzaWduKGoseCxpKGMpKSwiZXJyb3IiLDFlNCl9KX0uZGVsYXkoZSpkfHwwKSxsLnByb21pc2UoKTtmdW5jdGlvbiBtKCl7dmFyIGQ9JC5EZWZlcnJlZCgpO3JldHVybiBudWxsIT14LnNlY3VyaXR5fHxoLmNyZWF0ZSYmZj4iMDAzLiI/Yi5SZXEoe3VybDpbaiwiX3NlY3VyaXR5Il0sbWV0aG9kOiJQVVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KE9iamVjdC5zZWxlY3QoaC5zZWN1cml0eSxbImFkbWlucyIsIm1lbWJlcnMiXSkpfSkudGhlbihmdW5jdGlvbigpe2F8fGUoKX0pLmZhaWwoZnVuY3Rpb24oeCxiLGQpe2F8fGN3LmxpYi5ub3RlKGNbaC5jcmVhdGU/Ik1TR19ORVdEQl9OT0FDTCI6Ik1TR19TRUNEQl9GQUlMIl0uYXNzaWduKGoseCxpKGIpKSwid2FybmluZyIsNmUzKX0pLmFsd2F5cyhmdW5jdGlvbigpe2QucmVzb2x2ZShoKX0pOighYSYmaC5jcmVhdGUmJmUoKSxkLnJlc29sdmUoaCkpLGQucHJvbWlzZSgpO2Z1bmN0aW9uIGUoKXtjdy5saWIubm90ZShoLmNyZWF0ZT9jLk1TR19ORVdEQl9PSy5hc3NpZ24oaik6Yy5NU0dfU0VDREJfT0suYXNzaWduKGopKX19fWZ1bmN0aW9uIGkoeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX19LENvbXBpbGVUOmZ1bmN0aW9uKHgpe2Zvcih2YXIgYSxiLGMsZD0vXHtbYS16MC05X11bYS16MC05X117MCwxOX1cLj9bYS16MC05X117MCwyMH1cfS9naSxlPVtdLGY9MCxnPTAsaD0wO251bGwhPT0oYT1kLmV4ZWMoeCkpOyljPShiPWFbMF0pLmxlbmd0aCxnPWQubGFzdEluZGV4LGUucHVzaCh4LnN1YnN0cmluZyhmLGctYykpLGY9ZyxlLnB1c2goW2JdLmNvbmNhdChiLnN1YnN0cigxLGMtMikuc3BsaXQoIi4iKSkpLGgrPTI7cmV0dXJuIGUucHVzaCh4LnN1YnN0cihmKSksZD1udWxsLHtzdGFtcDpEYXRlLm5vdygpLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4geH0sYXNzaWduOmZ1bmN0aW9uKGEpe3ZhciBiPSIiLGM9Im9iamVjdCI7aWYodHlwZW9mIGEhPT1jKXJldHVybiB4O2Zvcih2YXIgZCxmLGc9MCxpPTE7ZzxoO2crPTIpe2IrPWVbZ10sZD1lW2crMV0saT0xLGY9YTtkb3tmPWZbZFtpKytdXX13aGlsZSh0eXBlb2YgZj09PWMmJmk8ZC5sZW5ndGgpO2IrPXZvaWQgMCE9PWY/ZjpkWzBdfXJldHVybiBiK2VbaF19fX19LEVkOntqc29udHJlZTp7aWQ6ImN3LlN5cy5KU09OIixwYXJhbXM6e30sdWk6eyIjYnRuLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS50cmlnZ2VyKCIjYnRuLXNhdmUiLCJzYXZlZG9jLm15Iil9fX0sTGliOntpc1N5c3RlbTpmdW5jdGlvbih4KXtyZXR1cm4hdGhpcy5teS5yb290KCkucGFyZW50cygiLmwtYXBwIikuZXEoMCkubXkoImRhdGEiKS5pc05ldyYmISEoMT09eC5sZXZlbCYmL15fKGlkfHJldnxyZXZzX2luZm98bG9jYWxfc2VxKSQvLnRlc3QoeC5rZXkpJiZ4LnZhbHVlfHx4LmxldmVsPjImJiJfcmV2c19pbmZvIj09eC5wYXRoWzFdfHwiX2NvbmZsaWN0cyI9PXgucGF0aFsxXSl9fSxzdHlsZTp7IiAiOiIiLCIgLmlyb290LmlzZWRpdG9yIjoicGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50OyIsIiAuaXJvb3QuaXNlZGl0b3I+LmlrZXkiOiJkaXNwbGF5Om5vbmUiLCIgLmlyb290Pi5pZWRpdG9yIjoicGFkZGluZy10b3A6NHB4OyIsIiAuaXJvb3Q+LmllZGl0b3IgLkNvZGVNaXJyb3Itc2Nyb2xsIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLlBobygiUGFuZWxIZWlnaHQiKS0zMjtyZXR1cm4ibWluLWhlaWdodDp7MX1weDttYXgtaGVpZ2h0OnsxfXB4O2hlaWdodDp7MX1weDtvdmVyZmxvdzpzY3JvbGw7Ii5hc3NpZ24oYSl9fSxMczpmdW5jdGlvbigpe3ZhciB4PXdpbmRvdy5sb2NhbFN0b3JhZ2U7cmV0dXJuIGZ1bmN0aW9uKGEsYil7dmFyIGM9ImN3LlN5cy5KU09OLiIrYTtpZihiKXJldHVybiB4LnNldEl0ZW0oYyxKU09OLnN0cmluZ2lmeShiKSk7aWYobnVsbD09PWJ8fCExPT09YilyZXR1cm4geC5yZW1vdmVJdGVtKGMpO3ZhciBkPXguZ2V0SXRlbShjKTtyZXR1cm4gT2JqZWN0LmlzU3RyaW5nKGQpP0pTT04ucGFyc2UoZCk6bnVsbH19LE1ha2VMaXN0OmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9W10sZT14LnZhbHVlLGY9Y3cubGliLnNkYm0sZz13aW5kb3cuYXRvYixoPWMuZGF0YS52aWV3c3RhdGV8fHt9LGk9Yy5kYXRhLmZvdW5kfHx7fSxqPXgubGV2ZWwrMSxrPWMuZGF0YS5zZWFyY2gubGVuZ3RoPjIsbD0vXmRhdGE6aW1hZ2VcLyhqcGVnfHBuZ3xnaWZ8c3ZnXCt4bWwpO2Jhc2U2NCwvLG09T2JqZWN0LmtleXMoZSk7cmV0dXJuIl9hdHRhY2htZW50cyI9PXgua2V5JiYxPT14LnBhdGgubGVuZ3RoJiYiUm9vdCI9PXgucGF0aFswXSYmKG09bS5zb3J0QnkoZnVuY3Rpb24oeCl7dmFyIGE9eC5pbmRleE9mKCIvIik+LTE7cmV0dXJuL15pbmRleFwuaHRtLy50ZXN0KHgpPyIwIit4OmE/IjIiK3g6IjEiK3h9KSksbS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBnLG0sbz1lW2FdLHA9JC50eXBlKG8pLHE9Im9iamVjdCI9PXB8fCJhcnJheSI9PXA/Im11bHRpIjpwLHI9eC5wYXRoLnNsaWNlKDApLmFkZCh4LmtleSkscz1jLlBhdGhTaWcocixhKTtrJiYhaVtzXXx8KCJtdWx0aSI9PXEmJigiUm9vdCIhPXgua2V5fHx4LnBhdGgubGVuZ3RofHwiX2F0dGFjaG1lbnRzIiE9YT8iX2F0dGFjaG1lbnRzIj09eC5rZXkmJjE9PXgucGF0aC5sZW5ndGgmJiJSb290Ij09eC5wYXRoWzBdJiYocT0iZmlsZSIpOnE9ImZpbGVzIiksInN0cmluZyI9PXAmJihrJiY4fGlbc10/cT0iZm91bmQiOm8ubGVuZ3RoPjExJiYoL15bXHNcclxuXHRdKmZ1bmN0aW9uLy50ZXN0KG8uc3Vic3RyKDAsMjApKSYmL1x9W1xyXG5cdFxzXSokLy50ZXN0KG8uc3Vic3RyKC0xMCkpfHwvXltcc1xyXG5cdF0qXChbXHNcclxuXHRdKmZ1bmN0aW9uLy50ZXN0KG8udG8oMjApKSYmL1x9W1xyXG5cdFxzXSpcKVtcclxuXHRcc10qJC8udGVzdChvLnN1YnN0cigtMTApKSk/cT0iZnVuY3Rpb24iOm8ubGVuZ3RoPjE2MCYmby5sZW5ndGg8MTVlNCYmL15bYS16QS1aMC05XCtcL10rJC8udGVzdChvLnN1YnN0cigwLDE1OCkpJiYvXlthLXpBLVowLTlcK1wvXSs9ezAsMn0kLy50ZXN0KG8pPyJzdHJpbmciPT10eXBlb2YobT1uKG8pKSYmKHE9ImJhc2U2NCIpOm8ubGVuZ3RoPjE2MCYmby5sZW5ndGg8MTVlNCYmbC50ZXN0KG8pJiYic3RyaW5nIj09dHlwZW9mKG09bihvLnJlcGxhY2UobCwiIikpKSYmKHE9ImJhc2U2NCIpKSxnfHwoZz1mKFthLG9dKSksayYmIWlbc118fGQucHVzaCh7c3RhdGU6Ynx8KGs/aVtzXTpoW3NdfHwxKSxsZXZlbDpqLG1hbmlmZXN0OiIkIitxLHBhdGg6cix0eXBlOnAsa2V5OmEsaWQ6YSx2YWx1ZToiZnVuY3Rpb24iPT10eXBlb2YgZVthXT9lW2FdKyIiOmVbYV0sYmluOm0saGFzaDpnfSkpfSksZDtmdW5jdGlvbiBuKHgpe3ZhciBhO3RyeXthPWcoeCl9Y2F0Y2goeCl7fXJldHVybiBhfX0sJGZpbGVzOntpZDoiU3lzLkpTT04uRmlsZXMiLGRhdGE6e30sTGlzdDpbXSxDTToidGV4dC9qYXZhc2NyaXB0IixUeHQ6e29iamVjdDpbIkZpbGVzIHsiLCJ9Il0sYXJyYXk6WyJBcnJheSBbIiwiXSJdfSxpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWEuZGF0YTt4LmFkZENsYXNzKCJlZC1ub2RlLSIrYi5QYXRoU2lnKGMucGF0aCxjLmtleSkpLHguaHRtbChiLkhUTUwpLGMuc3RhdGU+MSYmKGIuTGlzdD1iLk1ha2VMaXN0KGMpKSx4LmZpbmQoIi5pbGlzdDplcSgwKSIpLm9uKCJjaGFuZ2UubXkiLGZ1bmN0aW9uKCl7Yi5SVCgiUmVqb2luIikoYyxiLkxpc3QpfS5kZWJvdW5jZSgzMDApKSx4Lm9uKCJjbGljay5teSIsIi5pbGlzdDplcSgwKSAuYnRuLWRlbCIsZnVuY3Rpb24oYyl7Yy5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZD0kKHRoaXMpLnBhcmVudHMoIi5teS1mb3JtIikuZXEoMCksZT1kLnBhcmVudCgpLmRhdGEoIm15IikuZGF0YSxmPSQudHlwZShlLnZhbHVlKSxnPWQubXkoImRhdGEiKS5rZXksaD1PYmplY3QuY2xvbmUoZS52YWx1ZVtnXSwhMCk7Im9iamVjdCI9PWY/ZGVsZXRlIGUudmFsdWVbZ106ImFycmF5Ij09ZiYmZS52YWx1ZS5yZW1vdmVBdChnKSxiLk5vZGVVcGRhdGVkKGUucGF0aC5jb25jYXQoZS5rZXksZyksaCx2b2lkIDApLGIuUlQoIkxpYiIpLnJlbGlzdCh4LGIsYSl9KX0sdWk6eyIuaXZhbHVlIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuTGlzdC5sZW5ndGh9LG5vY29tcDpmdW5jdGlvbih4KXt2YXIgYT0wLGI9MDtyZXR1cm4gT2JqZWN0LmtleXMoeC52YWx1ZSkuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgZCxlPTA7KGQ9eC52YWx1ZVtjXSkmJihlPShkLmRhdGE/ZC5kYXRhLmxlbmd0aC80KjN8MDowKXx8K2QubGVuZ3RofHwrZC5zaXplfHwwLGErPWUsYis9Kyh4LnZhbHVlW2NdLmVuY29kZWRfbGVuZ3RofHxlKSl9KSxhPT1ifX0sd2F0Y2g6WyIuaWRlc2MiXX0sIi5pbGlzdCI6e2RlbGF5OjAsY2hlY2s6ITEsYmluZDoidGhpcy5MaXN0IixsaXN0Oic8ZGl2IGNsYXNzPSJpcm93Ij48L2Rpdj4nLGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlkfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiB4Lmhhc2h9LG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLlJUKHgubWFuaWZlc3QpfHx0aGlzLlJUKCIkc3RyaW5nIil9LHdhdGNoOlsiLmlkZXNjIl19LCIuaWtleSI6e30sIi5idG4tanNvbiI6e30sIiNidG4tdXBsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/KGIubW9kYWwoITApLGQoKSk6KGIucGFyZW50KCkuYWRkQ2xhc3MoImhvdmVyIiksYy5teS5tb2RhbCgiI2J0bi11cGxvYWQiLHttYW5pZmVzdDpjLkFkZCxkYXRhOnt9LHdpZHRoOjUwMCxhbGlnbjoidG9wOjEwMyUsIHJpZ2h0Oi0zOHB4OyIsbm9zZToidG9wIn0pLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGI9T2JqZWN0LmNsb25lKHgudmFsdWUsITApO2EuZmlsZXMuZm9yRWFjaChmdW5jdGlvbihhKXt4LnZhbHVlW2EubmFtZV09T2JqZWN0LnNlbGVjdChhLFsiY29udGVudF90eXBlIiwiZGF0YSJdKX0pLGMuTm9kZVVwZGF0ZWQoeC5wYXRoLmNvbmNhdCh4LmtleSksYixPYmplY3QuY2xvbmUoeC52YWx1ZSwhMCkpLHguc3RhdGU9MixjLkxpc3Q9Yy5NYWtlTGlzdCh4KSxjLm15LnJlZHJhdygpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZCgpfSkpfWZ1bmN0aW9uIGQoKXtiLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJob3ZlciIpfX19LCIjYnRuLWI2NCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuUlQoIkdldEF0dHMiKSgpLnRoZW4oZnVuY3Rpb24oKXtiLm15LnJlZHJhdygpfSl9fX0sIi5pZGVzYyI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD0odGhpcy5MaXN0LGMuVHh0W3gudHlwZV0pLGU9T2JqZWN0LnNpemUoeC52YWx1ZSksZj0iIjsxPT14LnN0YXRlJiZjLlNob3dJdGVtcz9mPWMuU2hvd0l0ZW1zOihmPWRbMF0rZStkWzFdKyIgIiwyPT14LnN0YXRlJiYoZj0nPHNwYW4gY2xhc3M9Im80MCI+JytmKyI8L3NwYW4+IikpO3ZhciBnPTAsaD0wO3JldHVybiBPYmplY3Qua2V5cyh4LnZhbHVlKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiLGM9MDsoYj14LnZhbHVlW2FdKSYmKGM9KGIuZGF0YT9iLmRhdGEubGVuZ3RoLzQqM3wwOjApfHwrYi5sZW5ndGh8fCtiLnNpemV8fDAsZys9YyxoKz0rKHgudmFsdWVbYV0uZW5jb2RlZF9sZW5ndGh8fGMpKX0pLGcmJihmPVsnPGRpdiBjbGFzcz0iZGliIHZhdCBtcjUiIHN0eWxlPSJ3aWR0aDp7NH07Ij57MX08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc5MCB0YXIgbzkwIj57Mn08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc5MCBwbDUgdGFsIG82MCBmczk1Ij57M308L2Rpdj4nXS5qb2luKCIiKS5hc3NpZ24oZixpKGcpLGchPWg/aShoKToiIiwyPT14LnN0YXRlPzI3Mi1jLmxhYmVsV2lkdGgrInB4IjoiYXV0byIpKSxmO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIHguYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIikucmVwbGFjZSgvXihbMC05XC5dKykoW2Etel0rKSQvaSwnJDE8ZGl2IGNsYXNzPSJ3MzUgZGliIHRhbCBwbDIiPiQyPC9kaXY+Jyl9fSx3YXRjaDpbIi5pa2V5IiwiLmJ0bi1qc29uIl19fSxzdHlsZTp7Ij4uaXZhbHVlPi5pbGlzdD4uaXJvdyI6ZnVuY3Rpb24oKXt2YXIgeD0yNTAsYT14LTI3O3JldHVybnsiIC5pbmF2IjoicGFkZGluZy1sZWZ0OiIrYSsicHg7IiwiIC5pbmF2Pi5pa2V5IjoibWFyZ2luLWxlZnQ6LSIrYSsicHg7d2lkdGg6IithKyJweDsiLCI+LmluYXYiOiJwYWRkaW5nLWxlZnQ6Iit4KyJweDsiLCI+LmluYXY+LmlrZXkiOiJtYXJnaW4tbGVmdDotIit4KyJweDt3aWR0aDoiK3grInB4OyIsIiAuaWtleSI6ImN1cnNvcjpub3JtYWw7IiwiIC5pYWN0IC5idXR0b24iOiJwYWRkaW5nOiAwLjE1ZW0gMCAwLjA1ZW0gMDsiLCIgLmlkZXNjPmRpdiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7In19LCIgLml2YWx1ZSAuaW5hdiI6Im1hcmdpbjowOyIsIiAubm9jb21wIC5zaXplY29tcCI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7In0sSFRNTDonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5dHJlZSI+PC9kaXY+PGRpdiBjbGFzcz0iaWRlc2MgY3AiPuKAkzwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Iml2YWx1ZSBpbXVsdGkgaGlkZSI+PGRpdiBjbGFzcz0iaWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBpZD0iYnRuLWI2NCIgY2xhc3M9ImJ1dHRvbiIgdGl0bGU9IkZldGNoIGF0dGFjaG1lbnRz4oCZIGJhc2U2NCI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktYXJjaGl2ZSI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWpzb24gYnV0dG9uIGhpZGUiIHRpdGxlPSJFZGl0IGFzIEpTT04iPjxzcGFuIGNsYXNzPSJib2xkIGRpYiB2YXQgbXQtMSBtYjEiPnsmIzgyMDI7fTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdXBsb2FkIiBjbGFzcz0iYnV0dG9uIiB0aXRsZT0iQWRkIGF0dGFjaG1lbnQiPjxzcGFuIGNsYXNzPSJmaS1wYXBlcmNsaXAiPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiICB0aXRsZT0iRGVsIGFsbCBhdHRhY2htZW50cyI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2PicsTm9kZVVwZGF0ZWQ6ZnVuY3Rpb24oKXt9LEFkZDp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwpfSxkYXRhOntmaWxlczpbXX0sdWk6eyIjZmxpc3QiOntiaW5kOiJmaWxlcyIsbGlzdDoiPmRpdiIsbWVyZ2U6ITEsaWQ6WyJuYW1lIl0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gubmFtZSx4LmNvbnRlbnRfdHlwZSx4LmRhdGEubGVuZ3RoLHguZGF0YS50bygxMDApXSl9LG1hbmlmZXN0Ont1aTp7IiNmbmFtZSI6Im5hbWUiLCIjZnNpemUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuKHguZGF0YS5sZW5ndGgvNCozfDApLmJ5dGVzKDEpLnJlcGxhY2UoL14oWzAtOVwuXSspKFthLXpdKykkL2ksJyQxPGRpdiBjbGFzcz0idzM1IGRpYiB0YWwgcGwyIj4kMjwvZGl2PicpfSwiI2Z0eXBlIjoiY29udGVudF90eXBlIiwiI2J0bi1mZGVsIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkucmVtb3ZlKCl9LGV2ZW50czoiY2xpY2subXkifX19fSwiI2J0bi1hdHRhZGQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jb21taXQoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4heC5maWxlcy5sZW5ndGh9fSx3YXRjaDoiI2ZsaXN0In0sIiNidG4tYXR0Y2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9LCIjbXVwbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEmJmEpe2Zvcih2YXIgYz10aGlzLGQ9YlswXS5maWxlcyxlPVtdLGY9eC5maWxlcy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthLm5hbWVdPWEseH0se30pLGc9W10saD0wO2g8ZC5sZW5ndGg7aCsrKWUucHVzaChkW2hdKTtlLmZvckVhY2goZnVuY3Rpb24oeCxhKXtpZih4KXt2YXIgYixjLGQ9e25hbWU6eC5uYW1lLGNvbnRlbnRfdHlwZTp4LnR5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifSxlPSQuRGVmZXJyZWQoKSxoPW5ldyBGaWxlUmVhZGVyLGk9W107aC5vbmxvYWQ9ZnVuY3Rpb24oYSl7Yz1uZXcgVWludDhBcnJheShhLnRhcmdldC5yZXN1bHQpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKWkucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGNbZ10pKTtiPXdpbmRvdy5idG9hKGkuam9pbigiIikpLGQuZGF0YT1iLGZbeC5uYW1lXT1kLGUucmVzb2x2ZSgpfSxoLnJlYWRBc0FycmF5QnVmZmVyKHgpLGcucHVzaChlLnByb21pc2UoKSl9fSksUS5hbGxTZXR0bGVkKGcpLnRoZW4oZnVuY3Rpb24oKXt4LmZpbGVzPU9iamVjdC52YWx1ZXMoZiksYi53cmFwKCI8Zm9ybT4iKS5jbG9zZXN0KCJmb3JtIikuZ2V0KDApLnJlc2V0KCksYi51bndyYXAoImZvcm0iKSxjLm15LnJlY2FsYygiI2ZsaXN0Iil9LmRlYm91bmNlKDApKS50aGVuKGZ1bmN0aW9uKCl7Yy5teS5maW5kKCIjYnRuLWF0dGFkZCIpLmZvY3VzKCl9LmRlYm91bmNlKDEwMCkpfX19fSxIVE1MOic8ZGl2IGNsYXNzPSJmczEzMCBsaDE2MCBib2xkZXIiPkFkZCBmaWxlczwvZGl2PjxkaXYgaWQ9ImZsaXN0IiBjbGFzcz0iZnM5NSI+PGRpdiBjbGFzcz0iZnJvdyAgbWI2Ij48ZGl2IGlkPSJidG4tZmRlbCIgY2xhc3M9InJlZDIgdzIwIGRpYiB2YXQgcHQzIGNwIj7inJU8L2Rpdj48ZGl2IGNsYXNzPSJ3MjIwIGRpYiB2YXQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAiIGlkPSJmbmFtZSIgcGxhY2Vob2xkZXI9IkZpbGUgcGF0aC9uYW1lLmV4dCI+PC9kaXY+PGRpdiBpZD0iZnNpemUiIGNsYXNzPSJ3OTAgZGliIHZhdCBwdDMgZ3JheSB0YXIiPjwvZGl2PjxkaXYgaWQ9ImZ0eXBlIiBjbGFzcz0idzE1MCBkaWIgdmF0IHB0MyBncmF5IG53IGVsbCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibXQxMCI+PGlucHV0IGlkPSJtdXBsb2FkIiB0eXBlPSJmaWxlIiBtdWx0aXBsZSBjbGFzcz0iaDMwIHcxMDBwIGNwIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO29wYWNpdHk6MDsiPjxkaXYgY2xhc3M9ImgzMCBwc2V1ZG9saW5rIHRkbiI+U2VsZWN0IGZpbGVzIHRvIGF0dGFjaC4uLjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im10NSBwdDEwIGJ0ZCI+PGJ1dHRvbiBpZD0iYnRuLWF0dGFkZCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPkF0dGFjaCBmaWxlczwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1hdHRjYW5jZWwiIGNsYXNzPSJtYXJrZm9jdXMiPkNhbmNlbDwvYnV0dG9uPjwvZGl2Pid9fSwkZmlsZTp7aWQ6IlN5cy5KU09OLkZpbGUiLGRhdGE6e30scGFyYW1zOntkZWxheTowfSxMaXN0OltdLENNOiJ0ZXh0L2phdmFzY3JpcHQiLHJldjoiIixpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YTt4LmFkZENsYXNzKCJlZC1ub2RlLSIrYi5QYXRoU2lnKGMucGF0aCxjLmtleSkpLHguaHRtbChiLkhUTUwuYXNzaWduKHtpZGVzYzpiLmlkZXNjKGMpfSkpLGIucmV2PWIuUlQoIk1Sb290IikoKS5teSgiZGF0YSIpLnJldn0sU2hvd0l0ZW1zOm51bGwsaWRlc2M6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPXgudmFsdWUsYz17c2l6ZTpkKChiLmRhdGE/Yi5kYXRhLmxlbmd0aC80KjN8MDowKXx8K2IubGVuZ3RofHwrYi5zaXplfHwwKSxzaXpleDpiLmVuY29kZWRfbGVuZ3RoP2QoK2IuZW5jb2RlZF9sZW5ndGgpOiIiLG1pbWU6KGIuY29udGVudF90eXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIikuZXNjYXBlSFRNTCgpLHJldnBvczpiLmRpZ2VzdCYmbnVsbCE9Yi5yZXZwb3M/InI6ICAiK2IucmV2cG9zOmEuSFRNTG5ld307cmV0dXJuIGEuSFRNTHJvdy5hc3NpZ24oYyk7ZnVuY3Rpb24gZCh4KXtyZXR1cm4geC5ieXRlcygxKS5yZXBsYWNlKC9eKFswLTlcLl0rKShbYS16XSspJC9pLCckMTxkaXYgY2xhc3M9InczNSBkaWIgdGFsIHBsMiI+JDI8L2Rpdj4nKX19LHVpOnsiLmlrZXkiOntkZWxheTowLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzLGM9ZW5jb2RlVVJJQ29tcG9uZW50LGQ9KC9eKHxccyspJC8udGVzdCh4LmtleSk/JyInK3gua2V5KyciJzp4LmtleS50cnVuY2F0ZSg1MCwvXC8vLnRlc3QoeC5rZXkpPyJsZWZ0IjoibWlkZGxlIiwi4oCmIikpLnJlcGxhY2UoL1wvL2csIuKAiS/igIkiKS5lc2NhcGVIVE1MKCk7aWYobnVsbD09eC52YWx1ZS5yZXZwb3MpcmV0dXJuIGQ7dmFyIGU9Yi5SVCgiZGF0YSIpLGY9KFtlLmJhc2V1cmwucmVwbGFjZSgvXC8kLywiIiksYyhlLmRibmFtZSksYyhlLmRvYy5faWQpLHgua2V5XS5qb2luKCIvIikrKHRoaXMucmV2PyI/cmV2PSIrdGhpcy5yZXY6IiIpKS5lc2NhcGVIVE1MKCk7cmV0dXJuJzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iPnsyfTwvYT4nLmFzc2lnbihmLGQpfX19LCIjYnRuLWRvd25sb2FkIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9eC52YWx1ZS5yZXZwb3Mpe3ZhciBjPXRoaXMuUlQoImRhdGEiKSxkPWVuY29kZVVSSUNvbXBvbmVudDtiLmF0dHIoImRvd25sb2FkIix4LmtleS5zcGxpdCgiLyIpLmxhc3QoKSksYi5hdHRyKCJocmVmIixbYy5iYXNldXJsLnJlcGxhY2UoL1wvJC8sIiIpLGQoYy5kYm5hbWUpLGQoYy5kb2MuX2lkKSx4LmtleV0uam9pbigiLyIpKyh0aGlzLnJldj8iP3Jldj0iK3RoaXMucmV2OiIiKSl9fSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGw9PXgudmFsdWUucmV2cG9zfX19LCIjYnRuLWZpbGVkaXQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT14LnZhbHVlLnJldnBvcyl7dmFyIGM9dGhpcy5SVCgiZGF0YSIpLGQ9ZW5jb2RlVVJJQ29tcG9uZW50O2IuYXR0cigiaHJlZiIsWyIjIitkKGMuZGJuYW1lKSxkKGMuZG9jLl9pZCksZCh4LmtleSldLmpvaW4oIi8iKSl9fSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7dmFyIGI9eC52YWx1ZS5jb250ZW50X3R5cGU7cmV0dXJuIG51bGw9PXgudmFsdWUucmV2cG9zfHx0aGlzLnJldnx8ISgvXnRleHRcLy4qLy50ZXN0KGIpfHwvXC8oanNvbnxqYXZhc2NyaXB0fHhtbHxzdmcpLy50ZXN0KGIpKX19fX0sSFRNTHJvdzonPGRpdiBjbGFzcz0idzkwIHRhciBvOTAgc2l6ZWZ1bGwiPntzaXplfTwvZGl2PjxkaXYgY2xhc3M9Inc5MCBwbDUgdGFsIG82MCBmczk1IHNpemVjb21wIj57c2l6ZXh9PC9kaXY+PGRpdiBjbGFzcz0idzIwMCBwcjEwIG53IGVsbCBvNjAgZnM5NSI+e21pbWV9PC9kaXY+PGRpdiBjbGFzcz0ibzYwIHB0MiBmczk1Ij57cmV2cG9zfTwvZGl2PicsSFRNTG5ldzonPHNwYW4gY2xhc3M9ImZpLWJ1cnN0LW5ldyBvcmFuZ2UgbWwtMyI+IE5ldzwvc3Bhbj4nLEhUTUw6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgeGdyYXkgZnMxMDAiPntpa2V5fTwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIHc0NTAiPntpZGVzY308L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi10YWtlb3V0IGJ1dHRvbiIgdGl0bGU9IlZpZXcgYXMgSlNPTiI+PHNwYW4gY2xhc3M9ImZpLXNob3BwaW5nLWJhZyBmczk1Ij48L3NwYW4+PC9idXR0b24+PGEgaWQ9ImJ0bi1maWxlZGl0IiBjbGFzcz0iYnV0dG9uIGZzOTAgdmF0IHB0MyBwYjAgaGlkZSIgdGl0bGU9IkVkaXQgYXR0YWNobWVudCI+PHNwYW4gY2xhc3M9ImZpLXBlbmNpbCI+PC9zcGFuPjwvYT48YSBpZD0iYnRuLWRvd25sb2FkIiBjbGFzcz0iYnV0dG9uIGZzOTAgdmF0IiB0aXRsZT0iRG93bmxvYWQgZmlsZSIgZG93bmxvYWQ9IiAiPjxzcGFuIGNsYXNzPSJmaS1kb3dubG9hZCI+PC9zcGFuPjwvYT48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQgdmF0IiAgdGl0bGU9IkRlbCBub2RlIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS10cmFzaCBmczk1Ij48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nfX0sanNvbnRleHQ6e319LCRhYm91dDp7aWQ6ImN3LlBob3Rvbi4kYWJvdXQiLHBhcmFtczp7cmVzdHlsZToyMCxzdHJpY3Q6ITB9LGluaGVyaXQ6WyJTZXRUaGVtZSJdLGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4iYWJvdXQifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJBYm91dCB0aGlzIG5vZGUifSxtYXRjaDpmdW5jdGlvbih4LGEpe3JldHVybiBhfHwxIT14Lmxlbmd0aHx8Il9hYm91dCIhPXhbMF0/bnVsbDp7dGl0bGU6IkFib3V0In19LGxhbmc6e30sSlNPTjohMSxCbG9iOiExLFVybDohMSxkYXRhOntwaG90b246e30sc2VydmljZTp7Y291Y2hkYjoiTm8gbWVzc2FnZSIsdmVyc2lvbjoiPz8iLHZlbmRvcjp7bmFtZToidW5rbm93biIsdmVyc2lvbjoiIix2YXJpYW50OiIifSxmZWF0dXJlczpbXX0sZGRvYzp7fSxjZmc6e21heFdpZHRoOiIyMDAwIixzY3JvbGxTcGVlZDoiMyIsbGlzdENvbHM6W10scm9vdFJlcG86IiIsdXBkYXRlOiJyZW1pbmQiLGZvbnQ6ImF1dG8iLGZvbnRXZWlnaHQ6IjMwMCIsZm9udENvZGU6ImF1dG8iLGljb246IiIsbWF4VGFiczoxNSxsb29wQWN0aXZlVGFza3M6NSxwaW5nU2Vzc2lvbjowLGdyb3VwaW5nOltdLHRoZW1lOiIifX0sTGluazonPGEgaHJlZj0iezF9IiB0YXJnZXQ9Il9ibGFuayIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiBjbGFzcz0idGRuIG53IG1sNCI+ezJ9PC9hPicsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9JC5EZWZlcnJlZCgpO3JldHVybiBhLlVybD1hLlBobygpLkRvd25sb2FkVVJMLCQuZXh0ZW5kKCEwLGEuZGF0YS5jZmcsYS5QaG8oIkNmZyIpKSxbIi8vczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vY2RuLmNsb3Vkd2FsbC5tZS9waG90b24vIl0uaW5kZXhPZihhLmRhdGEuY2ZnLnJvb3RSZXBvKT4tMSYmKGEuZGF0YS5jZmcucm9vdFJlcG89Imh0dHBzOi8vY2RuLmNsb3Vkd2FsbC5tZS9waG90b24vIiksYS5yZWxvYWREQkxpc3Q9YS5yZWxvYWREQkxpc3QuZGVib3VuY2UoNTAwKSxhLlJlcSh7dXJsOltdLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKCEwLGEuZGF0YS5zZXJ2aWNlLHgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxhLm5pY2VTY3JvbGwoeC5maW5kKCIjYWFsbCIpKSxiLnJlc29sdmUoKX0pLGIucHJvbWlzZSgpfSx1aTp7IiNhcGhvIjpmdW5jdGlvbigpe3JldHVybiB0aGlzLlBobygiVmVyc2lvbiIpLnJlcGxhY2UoL1teMC05XC5dL2csIiIpfSwiI2FwaG9idWlsZCI6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oImJ1aWxkIiksYj1EYXRlLmNyZWF0ZSh4LlBobygic3RhbXAiKXx8RGF0ZS5ub3coKSkuZm9ybWF0KCJ7eXl5eX0te01NfS17ZGR9Iik7cmV0dXJuIGE/JzxzcGFuIGNsYXNzPSJncmF5Ij5CdWlsZCAnK2ErIiwgIitiKyI8L3NwYW4+IjoiIn0sIiNhcGhvYWRkIjpmdW5jdGlvbigpe3ZhciB4PSh3aW5kb3cuRERPQ3x8e2FwcHM6e2VkOntpZDoiY3cuU3lzLkpTT04ifX19KS5hcHBzLGE9W107cmV0dXJuIE9iamVjdC5rZXlzKHgpLmZvckVhY2goZnVuY3Rpb24oYil7dmFyIGM9eFtiXTtjLmlkJiYhYy5pZC5zdGFydHNXaXRoKCJjdy5QaG90b24iKSYmYS5wdXNoKFsoYy5uYW1lfHxjLmlkKSsiwqAiLGMuVmVyc2lvbnx8Yy52ZXJzaW9ufHxudWxsLGMuYnVpbGQ/Ii4iK2MuYnVpbGQ6bnVsbF0uY29tcGFjdCgpLmpvaW4oIiIpKX0pLGEuam9pbigiPGJyPiIpfSwiI2FwaG9saWJzIjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LlBobygiTGlic1VzZWQiKTtyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBhW2JdP3guTGluay5hc3NpZ24oYVtiXSxiKTonPHNwYW4gY2xhc3M9InRkbiBudyBtbDQiPicrYisiPC9zcGFuPiJ9KS5qb2luKCIsICIpfSwiI2J0bi1zaG93bGlicyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJihiLmFkZENsYXNzKCJoaWRlIiksYi5uZXh0KCkucmVtb3ZlQ2xhc3MoImhpZGUiKSl9LGV2ZW50czoiY2xpY2subXkifSwiI2FwaG9mb250cyI6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oIkZvbnRzVXNlZCIpO3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGFbYl0/eC5MaW5rLmFzc2lnbihhW2JdLGIpOic8c3BhbiBjbGFzcz0idGRuIG53IG1sNCI+JytiKyI8L3NwYW4+In0pLmpvaW4oIiwgIil9LCIjYXZlciI6InNlcnZpY2UudmVyc2lvbiIsIiNhdmVuZG9yIjpmdW5jdGlvbih4KXt2YXIgYT14LnNlcnZpY2UudmVuZG9yO3JldHVybihhLm5hbWUrIiAiK2EudmVyc2lvbisoYS52YXJpYW50PyIgKCIrYS52YXJpYW50KyIpIjoiIikpLmVzY2FwZUhUTUwoKX0sIiNhbm9kZSI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QaG8oIkJhc2UiKTtyZXR1cm4nPGEgaHJlZj0iezF9IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiI+ezJ9IHszfTwvYT4nLmFzc2lnbihhLCc8c3BhbiBjbGFzcz0iZnM5MCAnKygvXmh0dHBzOi8udGVzdChhKT8iZmktbG9jayBibHVlMiI6ImZpLXVubG9jayByZWQyIikrJyI+PC9zcGFuPicsYS5yZXBsYWNlKC9eaHR0cFtzXT86XC9cL3xcLy9nLCIiKS5lc2NhcGVIVE1MKCkpfSwiI2F3ZWxjb21lIjpmdW5jdGlvbih4KXtyZXR1cm4geC5zZXJ2aWNlLmNvdWNoZGIuZXNjYXBlSFRNTCgpfSwiI2FmZWF0dXJlcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXguc2VydmljZS5mZWF0dXJlcztyZXR1cm4gT2JqZWN0LmlzQXJyYXkoYykmJmMubGVuZ3RoPyhiLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJoaWRlIikseC5zZXJ2aWNlLmZlYXR1cmVzLmpvaW4oIiwgIikuZXNjYXBlSFRNTCgpKTooYi5wYXJlbnQoKS5hZGRDbGFzcygiaGlkZSIpLCLigJQiKX19LCIjYWNsdXN0ZXIiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLlBobygiTWVtYmVyc2hpcCIpLmNsdXN0ZXJfbm9kZXN8fFtdO3JldHVybiBiLnBhcmVudCgpLnRvZ2dsZUNsYXNzKCJoaWRlIixjLmxlbmd0aDwyKSxjLmxlbmd0aD90aGlzLmxhbmcuVFhUX0NMVVNURVIoYy5sZW5ndGgpOiLigJQifX0sIiNhcGVyZnRlc3QiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtudWxsPT1hJiZiLmF0dHIoImhyZWYiLHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0ucmVwbGFjZSgvaW5kZXguaHRtbCQvLCIiKS5yZXBsYWNlKC9cLyQvLCIiKSsiL3BlcmZ0ZXN0Lmh0bWwiKX0sY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuUGhvKCJfY29tcGlsZWQiKXx8LTE9PShjdy5tZSgicm9sZXMiKXx8W10pLmluZGV4T2YoIl9hZG1pbiIpfX19LCIjaGlkZWNvdWNoYXBwIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuUGhvKCJfY29tcGlsZWQiKXx8LTE9PShjdy5tZSgicm9sZXMiKXx8W10pLmluZGV4T2YoIl9hZG1pbiIpfX19LCIjYnRuLWFkbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzOyQubXkubW9kYWwoe21hbmlmZXN0OiQuZXh0ZW5kKCEwLHtsYW5nOmIubGFuZyxQaG86Yi5QaG8sUmVxOmIuUmVxfSxiLkRvd25sb2FkKSxkYXRhOnt9LGdsb2JhbDohMCxzY3JlZW46ITAsZXNjOiEwLGVudGVyOiEwLGNzczoicDI1IHRhYyIsd2lkdGg6MzAwfSl9fSxldmVudHM6ImNsaWNrLm15In0sIiNzZm9udCI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse2RhdGE6W3tpZDoiYXV0byIsdGV4dDoiQXV0byJ9LHtpZDoiJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnIix0ZXh0OiJBcHBsZSBzeXN0ZW0gZm9udCJ9LHtpZDoiJ1NlZ29lIFVJJyIsdGV4dDoiU2Vnb2UgVUkifSx7aWQ6IidIZWx2ZXRpY2EgTmV1ZScsSGVsdmV0aWNhIix0ZXh0OiJIZWx2ZXRpY2EifSx7aWQ6IlVidW50dSIsdGV4dDoiVWJ1bnR1In0se2lkOiJUYWhvbWEiLHRleHQ6IlRhaG9tYSJ9LHtpZDoiQ291c2luZSIsdGV4dDoiQ291c2luZSAobW9ub3NwYWNlZCkifV0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0sYmluZDoiY2ZnLmZvbnQifSwiI3N0aGVtZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfVEhFTUUpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGw9PWE/W3guY2ZnLnRoZW1lKyIiXTooeC5jZmcudGhlbWUhPWErIiImJih4LmNmZy50aGVtZT1hKyIiLHRoaXMuU2V0VGhlbWUuZGVsYXkoNSxhKyIiKSksYSl9fSwiI3Nmd2VpZ2h0Ijp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19GV0VJR0hUKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP1t4LmNmZy5mb250V2VpZ2h0KyIiXTooeC5jZmcuZm9udFdlaWdodD1hKyIiLGEpfX0sIiNzY2ZvbnQiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHtkYXRhOlt7aWQ6ImF1dG8iLHRleHQ6IkF1dG8ifSx7aWQ6IkNvdXNpbmUiLHRleHQ6IkNvdXNpbmUifSx7aWQ6Ik1vbmFjbyIsdGV4dDoiTW9uYWNvIn0se2lkOiJDb25zb2xhcyIsdGV4dDoiQ29uc29sYXMifV0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0sYmluZDoiY2ZnLmZvbnRDb2RlIn0sIiNzY29scyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHt0YWdzOnRoaXMubGFuZy5UQUdfQ09MU30pfSxiaW5kOiJjZmcubGlzdENvbHMiLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3Nncm91cCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfR1JPVVApfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJmErIiIhPXguY2ZnLmdyb3VwaW5nKyIiJiYoeC5jZmcuZ3JvdXBpbmc9YSx0aGlzLnJlbG9hZERCTGlzdCgpKSx4LmNmZy5ncm91cGluZ30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc3Njcm9sbCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKCQuZXh0ZW5kKHt0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0sdGhpcy5sYW5nLlRBR19TQ1JPTEwpKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcuc2Nyb2xsU3BlZWQ9YSsiInx8IjIiKSxbeC5jZmcuc2Nyb2xsU3BlZWQrIiJdfSxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5QaG8oIl9jb21waWxlZCIpfHx0aGlzLlBobygiaU9TIil8fHRoaXMuUGhvKCJpc01hYyIpfHx0aGlzLlBobygiaXNXZWJLaXQiKX19fSwiI3NwaW5nIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3MoJC5leHRlbmQoe3RhZ3NoaW06IiIsZ3JvdXBzaGltOiIifSx0aGlzLmxhbmcuVEFHX1BJTkcpKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcucGluZ1Nlc3Npb249KyhhKyIiKXx8MCksW3guY2ZnLnBpbmdTZXNzaW9uKyIiXX19LCIjc3BvbGwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy5sb29wQWN0aXZlVGFza3M9aXNOYU4oYSk/NTooMHwrYSkuY2xhbXAoMSwzNjAwKSkseC5jZmcubG9vcEFjdGl2ZVRhc2tzKyIifSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIWN3Lm1lKCl9fX0sIiNzdGF0c3BvbGwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy5zdGF0c1JlZnJlc2g9aXNOYU4oYSk/MTA6KDB8K2EpLmNsYW1wKDUsMTIwKSkseC5jZmcuc3RhdHNSZWZyZXNoKyIifSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIWN3Lm1lKCl9fX0sIiNzcmVwbyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnJvb3RSZXBvPWEucmVwbGFjZSgvXHMvZywiIikpLHguY2ZnLnJvb3RSZXBvfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuUGhvKCJfY29tcGlsZWQiKXx8ISghd2luZG93LkRET0N8fCF3aW5kb3cuRERPQy5zZXR0aW5ncy5yb290UmVwbyl8fCFjdy5tZSgpfX19LCIjc3VwZCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKCQuZXh0ZW5kKCEwLHt9LHRoaXMubGFuZy5UQUdfVVBELHt0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0pKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcudXBkYXRlPWErIiJ8fCJyZW1pbmQiKSxbeC5jZmcudXBkYXRlKyIiXX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc2ljb24iOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguY2ZnLmljb24/eC5jZmcuaWNvbjp0aGlzLlBobygiZmlsZXMiKVsiZmF2aWNvbi5wbmciXS51cmx9LHdhdGNoOlsiI2J0bi1yZXNldGljb24iXX0sIiNidG4tc2V0aWNvbiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9JCgiYm9keSIpLGQ9InRoZW1lLWRhcmsiLGU9Yy5oYXNDbGFzcyhkKTtjLnJlbW92ZUNsYXNzKGQpLGIubXkubW9kYWwoIiNidG4tc2V0aWNvbiIse21hbmlmZXN0OmIuQ3JvcHBlcixzY3JlZW46InJnYmEoMTAsMjAsMzAsMC45NykiLGdsb2JhbDohMCxjc3M6InAyNSJ9KS50aGVuKGZ1bmN0aW9uKGEpe3guY2ZnLmljb249YS5kYXRhLGIubXkuY2hlY2soIiNzaWNvbiIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy50b2dnbGVDbGFzcyhkLGUpfSl9fSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5QaG8oIl9jb21waWxlZCIpfHwhKCF3aW5kb3cuRERPQ3x8IXdpbmRvdy5ERE9DLnNldHRpbmdzLmljb24pfHwhY3cubWUoKX19LHdhdGNoOlsiI3N0aGVtZSJdfSwiI2J0bi1yZXNldGljb24iOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHguY2ZnLmljb249IiIpfSxldmVudHM6ImNsaWNrLm15Iix3YXRjaDpbIiNzdGhlbWUiXSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5QaG8oIl9jb21waWxlZCIpfHwhKCF3aW5kb3cuRERPQ3x8IXdpbmRvdy5ERE9DLnNldHRpbmdzLmljb24pfHwhY3cubWUoKX19fSwiI3Nwcm94eSI6e2RlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpczskLmV4dGVuZChiLlBobygiQ2ZnIikseC5jZmcpLGIuUGhvKCJfY29tcGlsZWQiKSYmKGIuUGhvKCJMcyIpKCJDZmciLHguY2ZnKSwkLm5pY2VzY3JvbGwub3B0aW9ucy5tb3VzZXNjcm9sbHN0ZXA9MjUqeC5jZmcuc2Nyb2xsU3BlZWQtNSwkKCdsaW5rW3JlbD0iaWNvbiJdJykuYXR0cigiaHJlZiIseC5jZmcuaWNvbnx8Yi5QaG8oImZpbGVzIilbImZhdmljb24ucG5nIl0udXJsKSksJCh3aW5kb3cpLnRyaWdnZXIoInJlc2l6ZSIpLCQubXkucmFkaW8oInBob3Rvbl9jZmdfY2hhbmdlIixPYmplY3QuY2xvbmUoeC5jZmcsITApKX19LHdhdGNoOlsiI3NyZXBvIiwiI3N1cGQiLCIjc3RoZW1lIiwiI3Nmb250IiwiI3NjZm9udCIsIiNzZndlaWdodCIsIiNzd2lkdGgiLCIjc3BvbGwiLCIjc3RhdHNwb2xsIiwiI3NpY29uIiwiI2J0bi1yZXNldGljb24iLCIjc2NvbHMiLCIjc2dyb3VwIiwiI3NzY3JvbGwiLCIjc2JhciIsIiNzcGluZyJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmJC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pfX19LCIjYXVwZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYixjLGQsZT10aGlzLGY9ZS5QaG8oIkNmZyIpLnJvb3RSZXBvLGc9ZS5sYW5nLGg9IiI7ZD0vX2Rlc2lnblwvcGhvdG9uJC8udGVzdChmKT97dmVyc2lvbjpmLHBob3RvbjpmKyI/YXR0YWNobWVudHM9dHJ1ZSJ9Ont2ZXJzaW9uOmYrInZlcnNpb24uanNvbiIscGhvdG9uOmYrInBob3Rvbi5qc29uIn0sJC5hamF4KHt1cmw6ZC52ZXJzaW9uLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oeCl7ZnVuY3Rpb24gYSh4KXt2YXIgYT14LnNwbGl0KCIuIik7cmV0dXJuIDFlMTIqYVswXSsxZTYqYVsxXSsoaXNOYU4oYVsyXSk/OTk5OTk5OithWzJdKX1iPWUuUGhvKCJWZXJzaW9uIikrIi4iK2UuUGhvKCJidWlsZCIpLGM9eC52ZXJzaW9ufHwiMC4wLjAiO3ZhciBmPWEoYiksaj1hKGMpO3JldHVybiBmPj1qPyhlLlBobygiTHMiKSgiTGFzdFVwZGF0ZSIse3JlbWluZGVyOkRhdGUubm93KCl9KSxjdy5saWIubm90ZShnLk1TR19VUERfTk9ORUVEKSk6KHgudmVyc2lvbnMmJihoPXgudmVyc2lvbnMuc3BsaXQoIiMjIikuY29tcGFjdCghMCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRyaW0oKX0pLnJlZHVjZShmdW5jdGlvbih4LGIpe3ZhciBjPWIuc3BsaXQoL1xuXG4vKTtyZXR1cm4gYShjWzBdKT5mJiZ4LnB1c2goYy5zbGljZSgxKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuJzxsaSBjbGFzcz0ibWwxNyI+ezF9PC9saT4nLmFzc2lnbih4LmVzY2FwZUhUTUwoKSl9KS5qb2luKCJcbiIpKSx4fSxbXSkuam9pbigiXG4iKSkubGVuZ3RoJiYoaD1nLlRYVF9VUERfRkVBVFVSRVMuYXNzaWduKGgpKSwkLmFqYXgoe3VybDpkLnBob3RvbixkYXRhVHlwZToianNvbiJ9KS50aGVuKGkpKX0pLmZhaWwoZnVuY3Rpb24oKXtjdy5saWIubm90ZShnLkVSUl9VUERBVEVfQ0hFQ0ssImVycm9yIil9KX1mdW5jdGlvbiBpKHgpeyQubXkubW9kYWwoe21hbmlmZXN0OmUuUGhvKCJDb25maXJtIiksZGF0YTp7dGV4dDpnLlRYVF9VUEQuYXNzaWduKGIsYyxoKSx5ZXM6Zy5CVE5fVVBEQVRFLG5vOmcuQlROX0NBTkNFTCxjYW5jZWw6IiIsdXNlQnV0dG9uczohMH0sd2lkdGg6NDUwLGNzczoicDIwIHhncmF5IGxoMTcwIHBiMjUiLGZvY3VzOiIjYnRuLXllcyJ9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKCJ5ZXMiIT1hLmNtZHx8IXdpbmRvdy5ERE9DKXJldHVybiBlLlBobygiTHMiKSgiTGFzdFVwZGF0ZSIse3JlbWluZGVyOkRhdGUubm93KCl9KSx2b2lkIDA7eC5fcmV2PWUuZGF0YS5kZG9jLl9yZXZ8fHdpbmRvdy5ERE9DLl9yZXYsd2luZG93LkRET0MmJndpbmRvdy5ERE9DLnNldHRpbmdzJiYoeC5zZXR0aW5ncz13aW5kb3cuRERPQy5zZXR0aW5ncyk7dmFyIGI9e307T2JqZWN0LmtleXMoeC5fYXR0YWNobWVudHMpLmZvckVhY2goZnVuY3Rpb24oYSl7YlthXT1PYmplY3Quc2VsZWN0KHguX2F0dGFjaG1lbnRzW2FdLFsiY29udGVudF90eXBlIiwiZGF0YSJdKX0pLHguX2F0dGFjaG1lbnRzPWIsZS5SZXEoe3VybDpbRERPQy5fZGJ8fCJfcGhvdG9uIix4Ll9pZF0sbWV0aG9kOiJQVVQiLGRhdGE6SlNPTi5zdHJpbmdpZnkoeCksY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGFUeXBlOiJ0ZXh0In0pLnRoZW4oZnVuY3Rpb24oKXtjdy5saWIubm90ZShnLk1TR19VUERBVEVfT0ssIiIsNmUzKSxlLlBobygiTHMiKSgiTGFzdFVwZGF0ZSIse3N0YW1wOkRhdGUubm93KCl9KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2N3LmxpYi5ub3RlKGcuRVJSX1VQREFURS5hc3NpZ24oeCxhKSwiZXJyb3IiKX0pfSl9fSxldmVudHM6ImNsaWNrLm15In19LHJlbG9hZERCTGlzdDpmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIsT2JqZWN0LmtleXModGhpcy5QaG8oIkFsbCIpKSl9LHN0eWxlOnsiIGNvZGUiOiJmb250LXNpemU6MTAzJTsiLCIgI3NpY29uIjpmdW5jdGlvbih4KXt2YXIgYT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8Ljk5OTtyZXR1cm4gYT09TWF0aC5yb3VuZChhKT8iaW1hZ2UtcmVuZGVyaW5nOnBpeGVsYXRlZDsiOiIifX0sQWN0aW9uczp7Y2xlYW5MUzpmdW5jdGlvbigpe2Zvcih2YXIgeCxhLGI9bG9jYWxTdG9yYWdlLGM9W10sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXg9Yi5rZXkoZCksYT1iLmdldEl0ZW0oeCkseC5zdGFydHNXaXRoKCJjdy5QaG90b24uVmlld1N0YXRlLiIpJiYoYS5oYXMoJ1siLnZhbHVlIicpfHxhLmhhcygnWyIuZG9jIl0nKSkmJmMucHVzaChiLmtleShkKSk7Yy5mb3JFYWNoKHg9PmIucmVtb3ZlSXRlbSh4KSl9fSxIVE1MOlsnPGRpdiBjbGFzcz0ieGdyYXkgYXBwaGVpZ2h0IiBpZD0iYWFsbCIgc3R5bGU9Im1hcmdpbjowIGF1dG8gMCBhdXRvOyBwYWRkaW5nOjUycHggY2FsYyg1MCUgLSA0MjVweCkgMjBweCBjYWxjKDUwJSAtIDQyNXB4KTsiPicsJzxkaXYgY2xhc3M9Inc0NTAgZGliIHZhdCI+Jyx7cm93OiI0NTBweCIsbGFiZWw6IjEyMHB4Iixyb3dDc3M6Im15LXJvdyBwYjIiLGxhYmVsQ3NzOiJteS1sYWJlbCBmczkwIn0sJzxkaXYgaWQ9ImF0aXRsZSI+JywnPHNwYW4gY2xhc3M9ImRpYiBmczE1MCBsaDE2MCBwcjIwIiBzdHlsZT0ibWluLXdpZHRoOjEyMHB4OyI+JywnQ291Y2hEQiA8c3BhbiBpZD0iYXZlciI+PC9zcGFuPicsIjwvc3Bhbj4iLCI8L2Rpdj4iLFsie0xfVVJMfSIsInNwbiNhbm9kZSJdLFsie0xfQ0xVU1RFUn0iLCJzcG4jYWNsdXN0ZXIiXSxbIntMX1ZFTkRPUn0iLCJzcG4jYXZlbmRvciJdLFsie0xfQ09VQ0h9Iiwic3BuI2F3ZWxjb21lIl0sWyJ7TF9GRUFUfSIsInNwbiNhZmVhdHVyZXMiXSxbIntMX1BFUkZ9IiwnPGEgaWQ9ImFwZXJmdGVzdCIgY2xhc3M9InRkbiIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayI+JywnPHNwYW4gY2xhc3M9ImZpLWdyYXBoLWhvcml6b250YWwgYmx1ZTIgZnM5MCI+PC9zcGFuPicsIiZuYnNwO3tMX1BFUkZURVNUfSIsIjwvYT4iXSwnPGRpdiBpZD0iYXRpdGxlIiBjbGFzcz0ibXQyMCI+JywnPHNwYW4gY2xhc3M9ImRpYiBmczE1MCBsaDE2MCBwcjYgbWIyIiBzdHlsZT0ibWluLXdpZHRoOjEyMHB4OyI+JywnUGhvdG9uwqA8c3BhbiBpZD0iYXBobyI+PC9zcGFuPicsIjwvc3Bhbj4iLCc8c3BhbiBpZD0iYXBob2J1aWxkIj48L3NwYW4+JywiPC9kaXY+Iix7cm93Q3NzOiJteS1yb3cgcGI2In0sWyJ7TF9QSE9BRER9Iiwic3BuI2FwaG9hZGQiXSxbIntMX1BIT0xJQlN9Iiwic3BuI2J0bi1zaG93bGlicy5wc2V1ZG9saW5rLnRkbiIse3R4dDoiU2hvdyBsaXN0Li4uIn0sInNwbiNhcGhvbGlicy5kaWIudmF0Lm1sLTQuaGlkZSJdLFsie0xfUEhPRk9OVFN9Iiwic3BuI2FwaG9mb250cy5kaWIudmF0Lm1sLTQiXSx7cm93Q3NzOiJteS1yb3cgbXQxNSBtYjIwICJ9LCc8ZGl2IGlkPSJoaWRlY291Y2hhcHAiIGNsYXNzPSJoaWRlIj4nLFsiICIsJzxidXR0b24gaWQ9ImF1cGQiIGNsYXNzPSJmczEwMCI+PHNwYW4gY2xhc3M9ImZpLWNsb3VkIG80MCI+PC9zcGFuPiB7TF9DSEVDS19VUERBVEVTfcKgPC9idXR0b24+J10se3Jvd0NzczoibXktcm93IG10MiJ9LFsiICIsJzxzcGFuIGNsYXNzPSJibHVlIG81MCBmaS1kb3dubG9hZCBmczk1IG1yMiBmczkwIj48L3NwYW4+IDxzcGFuIGlkPSJidG4tYWRsIiBjbGFzcz0icHNldWRvbGluayB0ZG4iPntMX0RMfTwvc3Bhbj4nXSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNjAgZmktc29jaWFsLWdpdGh1YiBtcjIiPjwvc3Bhbj4gJywnPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VybW91dGgvY291Y2gtcGhvdG9uIiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXIiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIj57TF9HSVRIVUJ9PC9hPiddLFsiICIsJzxzcGFuIGNsYXNzPSJibHVlIG81MCBmaS1saWdodGJ1bGIgbXIyIj48L3NwYW4+ICcsJzxhIGhyZWY9Imh0dHBzOi8vY2xvdWR3YWxsLm1lL19kZW1vLyNjdy9NYW5pZmVzdC8hV3lKbFpHbDBJaXdpWTNjdFVHaHZkRzl1TFRGalkyUWlYUS0tIiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXIiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIj57TF9TT1VSQ0VTfTwvYT4nXSwiPC9kaXY+Iix7cm93Q3NzOiJteS1yb3cgbXQyMCJ9LFsiICIsJzxzcGFuIGNsYXNzPSJncmF5IGZzOTAiPihjKSAyMDIyIGVybW91dGguIFBob3RvbiBpcyBNSVQgbGljZW5zZWQuPC9zcGFuPiddLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3MzcwIGRpYiB2YXQgbWwzMCI+Jyx7cm93OiIzNzBweCIsbGFiZWw6IjEzMHB4Iixyb3dDc3M6Im15LXJvdyBwYjkiLGxhYmVsQ3NzOiJteS1sYWJlbCBmczkwIHZhdCBwdDkifSwnPGRpdiBpZD0iYXRpdGxlIiBjbGFzcz0iZnMxNTAgbGgxNjAgcGI2Ij57U19USVRMRX08L2Rpdj4nLFsie1NfUkVQT30iLCJpbnAjc3JlcG8udzEwMHAiXSxbIntTX1VQRH0iLCJkaXYjc3VwZC5kaWIudmF0LncxMDBwLmxoMTgwLnBiMi5udyJdLFsie1NfVEhFTUV9IiwiZGl2I3N0aGVtZS5kaWIudmF0LncxMDBwLmxoMTgwLnBiMSJdLFsie1NfRkNGQU1JTFl9IiwiaW5wI3NjZm9udC53MTAwcC5mczExMCJdLFsie1NfRkZBTUlMWX0iLCJpbnAjc2ZvbnQudzEwMHAuZnMxMTAiXSxbIntTX0ZXRUlHSFR9IiwiZGl2I3Nmd2VpZ2h0LmRpYi52YXQudzEwMHAubGgxODAucGIxIl0sWyJ7U19TQ1JPTEx9IiwiZGl2I3NzY3JvbGwuZGliLnZhdC53MTAwcC5saDE4MC5wYjEiXSxbIntTX0NPTFN9IiwiZGl2I3Njb2xzLmRpYi52YXQudzEwMHAubGgxODAucGIxIl0sWyJ7U19HUk9VUH0iLCJkaXYjc2dyb3VwLmRpYi52YXQudzEwMHAubGgxODAucGIxLm53Il0sWyJ7U19QSU5HfSIsImRpdiNzcGluZy5kaWIudmF0LncxMDBwLmxoMTgwLnBiMyJdLFsie1NfUE9MTH0iLCJudW0jc3BvbGwudzY1Iix7bWluOiIxIixtYXg6IjM2MDAiLHN0ZXA6IjEifSwiPHNwYW4+IHM8L3NwYW4+Il0sWyJ7U19TVEFUU19QT0xMfSIsIm51bSNzdGF0c3BvbGwudzY1Iix7bWluOiI1IixtYXg6IjEyMCIsc3RlcDoiNSJ9LCI8c3Bhbj4gczwvc3Bhbj4iXSx7bGFiZWxDc3M6Im15LWxhYmVsIGZzOTAgcHQ4In0sWyJ7U19JQ09OfSIsJzxpbWcgc3R5bGU9IndpZHRoOjY0cHg7aGVpZ2h0OjY0cHg7IiBjbGFzcz0iZGliIHZhdCBicjIiIGlkPSJzaWNvbiI+JywnPGRpdiBjbGFzcz0iZGliIHZhdCBwdDMgcGwxMCI+JywnPHNwYW4gY2xhc3M9InBzZXVkb2xpbmsgdGRuIiBpZD0iYnRuLXNldGljb24iPntCVE5fSUNPTn08L3NwYW4+IDxicj4nLCc8c3BhbiBjbGFzcz0icHNldWRvbGluayB0ZG4gaGlkZSIgaWQ9ImJ0bi1yZXNldGljb24iPntCVE5fSUNPTl9SRVNFVH08L3NwYW4+J10sJzxkaXYgaWQ9InNwcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PicsIjwvZGl2PiJdLENyb3BwZXI6e3BhcmFtczp7d2lkdGg6Njg2fSxkYXRhOntmaWxlbmFtZToiIixkYXRhOiIiLGNyb3BwZWQ6ITEsc2l6ZTo2NH0saW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPSQubXkuZm9ybWdlbihbJzxkaXYgY2xhc3M9ImZsIG1yMjAgdGFjIHZhdCBiZy1sZ3JheSIgc3R5bGU9IndpZHRoOjYwMHB4O2hlaWdodDo0NTBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7bGluZS1oZWlnaHQ6NDUwcHg7IiBpZD0iY3JvcC1mcmFtZSI+JywnPGltZyBpZD0ic291cmNlIiBjbGFzcz0idmFtIiBzdHlsZT0ibWF4LXdpZHRoOjYwMHB4OyBtYXgtaGVpZ2h0OjQ1MHB4OyBiYWNrZ3JvdW5kOndoaXRlIiBzcmM9IiIgLz4nLCc8ZGl2IGNsYXNzPSJ3NjAwICBkaWIiIHN0eWxlPSJoZWlnaHQ6NDUwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowIj4nLCc8c3BhbiBjbGFzcz0iZGliIHZhbSBmczExMCBidXR0b24iPicsJzxzcGFuIGNsYXNzPSJmaS1waG90byI+PHNwYW4gY2xhc3M9ImZzMTEwIj4gJm5ic3A7U2VsZWN0IEltYWdlPC9zcGFuPjwvc3Bhbj4nLCI8L3NwYW4+IiwnPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlIiBjbGFzcz0idzYwMCBkaWIiIGFjY2VwdD0iaW1hZ2UvanBlZyxpbWFnZS9wbmciIHN0eWxlPSJoZWlnaHQ6NDUwcHg7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTowOyBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjAiPicsIjwvZGl2PiIsIjwvZGl2PiIsJzxkaXYgY2xhc3M9Inc2NSBkaWIgdmF0IiBpZD0ieHByZXZpZXciPicsJzxpbWcgaWQ9ImlwcmV2aWV3IiBzdHlsZT0id2lkdGg6NjRweDtoZWlnaHQ6NjRweDtib3JkZXI6bm9uZTsiIGNsYXNzPSJiZy1ncmF5NyI+Jyx7cm93OiI2NXB4Iixyb3dDc3M6Im10NSBmczkwIHRhYyJ9LFsiIiwiYnRuI2J0bi1hcHBseS53NjUuZ3JlZW4iLHt2YWw6IlNldCJ9XSwiPC9kaXY+IiwnPGRpdiBjbGFzcz0idzY1IGRpYiB2YXQiIGlkPSJ4d2FybiI+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0iaGlkZSI+JywnPGNhbnZhcyBpZD0ieDIiIHdpZHRoPScrMiphLmRhdGEuc2l6ZSsiIGhlaWdodD0iKzIqYS5kYXRhLnNpemUrIj48L2NhbnZhcz4iLCc8Y2FudmFzIGlkPSJwcmV2aWV3IiBjbGFzcz0iYmctbGdyYXkiIHN0eWxlPSJ3aWR0aDo2NHB4O2hlaWdodDo2NHB4IiB3aWR0aD0nK2EuZGF0YS5zaXplKyIgaGVpZ2h0PSIrYS5kYXRhLnNpemUrJyBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuOyI+PC9jYW52YXM+JywiPC9kaXY+IiwnPGltZyBpZD0ibWFzazEiIGNsYXNzPSJoaWRlIiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpZMElpQm9aV2xuYUhROUlqWTBJaUIyYVdWM1FtOTRQU0l3TERBc05qUXNOalFpUGdvZ0lEeHdZWFJvSUdROUlrMHdMRE15SUVNd0xEQWdNQ3d3SURNeUxEQWdRelkwTERBZ05qUXNNQ0EyTkN3ek1pQkROalFzTmpRZ05qUXNOalFnTXpJc05qUWdRekFzTmpRZ01DdzJOQ0F3TERNeUlpQm1hV3hzUFNJalJqQkdNRVl3SWk4K0Nqd3ZjM1puUGdvPSI+J10pO3guaHRtbChiKX0sc3R5bGU6eyIgLmpjcm9wLWhvbGRlciI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZSJ9LHVpOnsiI2ZpbGUiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYyxkPXRoaXMsZT1iLm15KCkucm9vdCxmPWUuZmluZCgiI3ByZXZpZXciKSxnPWUuZmluZCgiI3NvdXJjZSIpLGg9ZS5maW5kKCIjeDIiKSxpPWUuZmluZCgiI21hc2sxIiksaj17azoxfSxrPSIiO2Z1bmN0aW9uIGwoYSl7aWYocGFyc2VJbnQoYS53KT4wKXt2YXIgYixjLGUsaz1nWzBdLGw9ai5rLG09YS53Kmx8MDsoYj1mWzBdLmdldENvbnRleHQoIjJkIikpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iY29weSIsYi5maWxsU3R5bGU9InRyYW5zcGFyZW50IixiLmZpbGxSZWN0KDAsMCx4LnNpemUseC5zaXplKSxiLmRyYXdJbWFnZShpWzBdLDAsMCx4LnNpemUseC5zaXplLDAsMCx4LnNpemUseC5zaXplKSxiLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLWluIixtPjIqeC5zaXplPygoZT0oYz1oWzBdKS5nZXRDb250ZXh0KCIyZCIpKS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLGUuZmlsbFN0eWxlPSJ0cmFuc3BhcmVudCIsZS5maWxsUmVjdCgwLDAsMip4LnNpemUsMip4LnNpemUpLGUuZHJhd0ltYWdlKGssYS54Kmx8MCxhLnkqbHwwLG0sbSwwLDAsMip4LnNpemUsMip4LnNpemUpLGIuZHJhd0ltYWdlKGMsMCwwLDIqeC5zaXplLDIqeC5zaXplLDAsMCx4LnNpemUseC5zaXplKSk6Yi5kcmF3SW1hZ2UoayxhLngqbHwwLGEueSpsfDAsbSxtLDAsMCx4LnNpemUseC5zaXplKSx4LmRhdGE9Y3cubGliLmltYWdlKGYpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4oKDI1NSp4fDApPj4yPDwyKS8yNTV9KS5zaGFycGVuKDEuNikuYnJpZ2h0bmVzcygxLjEpLnBuZygpLGQubXkuZmluZCgiI2lwcmV2aWV3IikuYXR0cigic3JjIix4LmRhdGEpLHguY3JvcHBlZD0hMCxkLm15LmNoZWNrKCIjYnRuLWFwcGx5Iil9fW51bGwhPWEmJmEmJihjPWJbMF0uZmlsZXNbMF0pJiZmdW5jdGlvbigpe3guZmlsZW5hbWU9Yy5uYW1lO3ZhciBhLGQ9bmV3IEZpbGVSZWFkZXIsZT1bXTtkLm9ubG9hZD1mdW5jdGlvbih4KXthPW5ldyBVaW50OEFycmF5KHgudGFyZ2V0LnJlc3VsdCk7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYVtiXSkpO2s9d2luZG93LmJ0b2EoZS5qb2luKCIiKSl9LGQub25sb2FkZW5kPWZ1bmN0aW9uKCl7Zy5sb2FkKGZ1bmN0aW9uKCl7ai5rPWdbMF0ubmF0dXJhbFdpZHRoL2cud2lkdGgoKX0pLGcucmVtb3ZlQ2xhc3MoImhpZGUiKS5hdHRyKCJzcmMiLCJkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCIrayksai5rPWdbMF0ubmF0dXJhbFdpZHRoL2cud2lkdGgoKSxnLkpjcm9wKHtvbkNoYW5nZTpsLG9uU2VsZWN0OmwuZGVib3VuY2UoMjApLGFzcGVjdFJhdGlvOjEsbWluU2l6ZTpbNjQsNjRdLGFsbG93TW92ZTohMH0sZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGVUbyhbMTAwLDEwMCwzMDAsMzAwXSl9KSxrPSIiLGIucGFyZW50KCkuYWRkQ2xhc3MoImhpZGUiKX0sZC5yZWFkQXNBcnJheUJ1ZmZlcihjKX0oKX19LCIjYnRuLWFwcGx5Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnguY3JvcHBlZCYmdGhpcy5teS5jb21taXQoKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmNyb3BwZWR9fX19fSxEb3dubG9hZDp7ZGF0YTp7Y2ZnOnt9fSxKU09OOiExLEJsb2I6ITEsVXJsOiExLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLlVybD1hLlBobygpLkRvd25sb2FkVVJMLCQuZXh0ZW5kKCEwLGEuZGF0YS5jZmcsYS5QaG8oIkNmZyIpKSx4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpLHgudGhlbihmdW5jdGlvbigpe2EucmVhZFBob3RvbigpfSkuZmFpbChmdW5jdGlvbih4LGEpe2NvbnNvbGUubG9nKHgsYSl9KX0sdWk6eyIjYWRsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMuVXJsLGU9d2luZG93LkRET0M7cmV0dXJuIGMuUGhvKCJfY29tcGlsZWQiKSYmZSYmIiIhPT1kPyExPT09ZD8nPHNwYW4gY2xhc3M9InhncmF5Ij4nK2MubGFuZy5MX0RMUFJFUCsiPC9zcGFuPiI6KGIuYXR0cigiaHJlZiIsZCksYi5hdHRyKCJkb3dubG9hZCIsInBob3Rvbi0iK2MuUGhvKCJWZXJzaW9uIikucmVwbGFjZSgvW14wLTlcLl0vZywiIikrIi4iK2MuUGhvKCJidWlsZCIpKyIuanNvbiIpLGMubGFuZy5MX0RMX0xJTkspOiJObyBhcHAgY29kZSwgc29ycnkifX19LEhUTUw6W3tyb3dDc3M6Im15LXJvdyJ9LFsiICIsJzxzcGFuIGNsYXNzPSJibHVlIG81MCBmaS1kb3dubG9hZCBmczk1IG1yMiI+PC9zcGFuPiA8YSBocmVmPSIiIGlkPSJhZGwiIGNsYXNzPSJ0ZG4iIGRvd25sb2FkPSJwaG90b24uanNvbiI+PC9hPiddXSxyZWFkUGhvdG9uOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXdpbmRvdy5ERE9DO2lmKCF4LlBobygiX2NvbXBpbGVkIil8fCFhKXJldHVybiIiO3guVXJsfHx4LlJlcSh7dXJsOlthLl9kYnx8Il9waG90b24iLGEuX2lkLHthdHRhY2htZW50czohMH1dfSkudGhlbihmdW5jdGlvbihhKXt4LmRhdGEuZGRvYz1hO3ZhciBiPSQuZXh0ZW5kKCEwLHtfaWQ6IiIsbmFtZToiIix2ZXJzaW9uOnguUGhvKCJWZXJzaW9uIikrIi4iK3guUGhvKCJidWlsZCIpfSxPYmplY3QucmVqZWN0KGEsWyJfcmV2IiwiX2F0dGFjaG1lbnRzIl0pKTtiLl9hdHRhY2htZW50cz17fSxPYmplY3Qua2V5cyhhLl9hdHRhY2htZW50cykuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYz1hLl9hdHRhY2htZW50c1t4XTtiLl9hdHRhY2htZW50c1t4XT17Y29udGVudF90eXBlOmMuY29udGVudF90eXBlLGRhdGE6Yy5kYXRhfX0pLHguSlNPTj1iO2N3LmxpYi5iYXNlNjQyYmxvYihjdy5saWIuYmFzZTY0KEpTT04uc3RyaW5naWZ5KGIsbnVsbCwiICAiKSksZnVuY3Rpb24oYSl7eC5CbG9iPWEseC5Vcmw9VVJMLmNyZWF0ZU9iamVjdFVSTChhKSx4LlBobygpLkRvd25sb2FkVVJMPXguVXJsLHgubXkuY2hlY2soIiNhZGwiKX0sImFwcGxpY2F0aW9uL2pzb24iKX0pLmZhaWwoZnVuY3Rpb24oKXt4LlVybD0iIix4Lm15LmNoZWNrKCIjYWRsIil9KX0sc3R5bGU6eyIiOiJmb250LXNpemU6MThweDsifX19LCRlcnJvcjp7aWQ6ImN3LlBob3Rvbi4kZXJyb3IiLGxhbmc6e30sZGF0YTp7ZXJyb3I6IiIscGF0aDpbXSxtZXNzYWdlOiIifSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuImVycm9yIn0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iRXJyb3Igc3dpdGNoaW5nICMiK3RoaXMuZGF0YS5wYXRoLmpvaW4oIi8iKX0sREIyZ286IiIsREJsaXN0OltdLGlzQ291Y2gzYW5kQWxsREJzOiExLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTthLmlzQ291Y2gzYW5kQWxsREJzPWEuUGhvKCJDb3VjaCIpLnZlcj49IjAwMy4iJiZjdy5tZSgpJiYhYi5wYXRoLmxlbmd0aCx4Lmh0bWwoYS5IVE1MKSxhLmlzQ291Y2gzYW5kQWxsREJzJiZ4LnRoZW4oZnVuY3Rpb24oKXt4LmZpbmQoIiNlLWRibmFtZSIpLm9uKCJrZXl1cC5teSIsZnVuY3Rpb24oYSl7dmFyIGI9YS5rZXlDb2RlOzEzIT1iJiYxMCE9Ynx8ZnVuY3Rpb24oKXt4LmZpbmQoIiNidG4tZ28iKS50cmlnZ2VyKCJjbGljayIpfS5kZWJvdW5jZSg1MCkoKX0pfSl9LHVpOnsiI2UtbG9nbyI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5QaG8oIlNWRyIpLmxvZ299LCIjZS1tc2ciOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz10aGlzLGQ9eC5lcnJvcjt0cnl7Yj1PYmplY3QuaXNTdHJpbmcoZCk/ZCsiIjpKU09OLnN0cmluZ2lmeShkKX1jYXRjaCh4KXt9cmV0dXJuIGJ8fChiPWQrIiJ8fCJVbmRlZmluZWQgZXJyb3IiKSxiPWIuc3BsaXQoInRvIGluaXRpYWxpemU6IikubGFzdCgpLmNvbXBhY3QoKSx4Lm1lc3NhZ2U9YixjLmlzQ291Y2gzYW5kQWxsREJzP2MubGFuZy5UWFRfQzNfQUxMX0RCU180MDE6Yy5sYW5nLlRYVF9FUlIuYXNzaWduKCIjIit4LnBhdGguam9pbigiLyIpLmVzY2FwZUhUTUwoKSxiKX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiYoYS5uYW1lfHx0aGlzLmlzQ291Y2gzYW5kQWxsREJzKSYmL1xzNDBbMzFdXHMvLnRlc3QoeC5lcnJvcikmJiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSwiI2UtY2RibmFtZSI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hdGhpcy5pc0NvdWNoM2FuZEFsbERCc319fSwiI2UtZGJuYW1lIjp7ZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTt0aGlzLmlzQ291Y2gzYW5kQWxsREJzJiYoeC5hdHRyKCJwbGFjZWhvbGRlciIsdGhpcy5sYW5nLlBMQ19EQk5BTUUpLGEuREJsaXN0PShhLlBobygiTHMiKSgiVGFiQ2xvc2VIaXN0b3J5Iil8fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgudGFic30pLmZsYXR0ZW4oKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucGF0aH0pLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5sZW5ndGgmJiJfIiE9eFswXVswXX0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geFswXX0pLnVuaXF1ZSgpLnNvcnQoKSxhLkRCbGlzdC5sZW5ndGgmJnguYXV0b2NvbXBsZXRlKHtkZWxheTowLHNvdXJjZTphLkRCbGlzdCxjbG9zZTpmdW5jdGlvbih4LGIpe2EubXkuY2hlY2soIiNidG4tZGJuYW1lIil9LmRlYm91bmNlKDEwKSxzZWxlY3Q6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjZS1kYm5hbWUiKSxhLlN3aXRjaC5kZWJvdW5jZSg2MCkoKX0uZGVib3VuY2UoMTApLGFwcGVuZFRvOmEubXkucm9vdCgpLG1pbkxlbmd0aDowfSkpfSxiaW5kOiJ0aGlzLkRCMmdvIn0sIiNidG4tZGJuYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLm15LmZpbmQoIiNlLWRibmFtZSIpLGQ9ISFiLkRCbGlzdC5sZW5ndGgmJmMuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGQ/Yy5hdXRvY29tcGxldGUoImNsb3NlIik6Yy5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGQ9IWQpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGQ/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXRoaXMuREJsaXN0Lmxlbmd0aH19LHdhdGNoOlsiI2UtZGJuYW1lIl19LCIjYnRuLWdvIjp7ZGVsYXk6MjUsYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztyZXR1cm4gbnVsbCE9YSYmYy5Td2l0Y2goKSxjLmxhbmcuQlROX0dPfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIS9eW2EtejAtOV8kXChcKVwrXC1cL10rJC8udGVzdCh0aGlzLkRCMmdvKX19LHdhdGNoOlsiI2UtZGJuYW1lIl19LCIjZS1jcmVsb2FkIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmlzQ291Y2gzYW5kQWxsREJzfX19LCIjYnRuLXJlbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0iNDAxIj09eC5tZXNzYWdlLnRvKDMpJiYhY3cubWUoKTtpZihudWxsPT1hKXJldHVybiB0aGlzLmxhbmdbYj8iQlROX0FVVEgiOiJCVE5fUkVUUlkiXTtiPyQoIiNidG4tYXV0aC1wb3B1cCIpLnRyaWdnZXIoImNsaWNrIik6JC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pfX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLmlzQ291Y2gzYW5kQWxsREJzJiZ0aGlzLkRCbGlzdC5sZW5ndGgmJnguZmluZCgiI2UtZGJuYW1lIikuYXV0b2NvbXBsZXRlKCJkZXN0cm95Iil9LFN3aXRjaDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7d2luZG93LmxvY2F0aW9uLmhhc2g9eC5EQjJnbyx4Lm15LmZpbmQoIiNlLWRibmFtZSIpLmF1dG9jb21wbGV0ZSgib3B0aW9uIiwic291cmNlIix4LkRCbGlzdD14LkRCbGlzdC5hZGQoeC5EQjJnbykudW5pcXVlKCkpfSxIVE1MOic8ZGl2IGNsYXNzPSJwMTAwIHRhYyI+PGRpdiBjbGFzcz0idzUwcCBtdDI1IHRhbCBkaWIgdmF0IG1iMTUiPjxkaXYgaWQ9ImUtbG9nbyI+PC9kaXY+PGRpdiBpZD0iZS10aXRsZSIgY2xhc3M9ImRpYiB2YXQiPlBob3RvbjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImUtbXNnIiBjbGFzcz0iIj48L2Rpdj48Zm9ybSBpZD0iZS1jZGJuYW1lIiBjbGFzcz0ibXQyNSBmczk1IGhpZGUiPjxkaXYgY2xhc3M9Inc1MHAgdGFsIGRpYiB2YXQgcGw3MCI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJlLWRibmFtZSIgc3R5bGU9IndpZHRoOiBjYWxjKDEwMCUgLSAxMjJweCk7IG1heC13aWR0aDo2MDBweDsiIGNsYXNzPSJtcjIiPjxzcGFuIHN0eWxlPSIiIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiBiZm9sZCBkaWIgdmF0IiB0eHQ9IiIgaWQ9ImJ0bi1kYm5hbWUiPjxkaXY+4pa8PC9kaXY+PC9zcGFuPjxkaXYgY2xhc3M9IncxMjAgZGliIHZhdCI+PGJ1dHRvbiBpZD0iYnRuLWdvIiBjbGFzcz0idzEyMCBwcjE1Ij48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Zvcm0+PGRpdiBpZD0iZS1jcmVsb2FkIiBjbGFzcz0ibXQyNSBmczk1IGhpZGUiPjxkaXYgY2xhc3M9Inc1MHAgdGFsIGRpYiB2YXQgcGw3MCI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZCIgY2xhc3M9IncxMjAgcHIxNSI+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+JyxzdHlsZTp7IiAjZS1sb2dvIjp7IiI6WyJ3aWR0aDo1NXB4OyBoZWlnaHQ6NTVweDsgYm9yZGVyOjJweCBzb2xpZCAjYTBiMGMwOyBib3JkZXItcmFkaXVzOjYwcHg7IiwiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWFyZ2luLXJpZ2h0OjEzcHg7IHBhZGRpbmc6MTRweCA1cHg7Il0sIiBzdmciOiJ3aWR0aDozOXB4OyBoZWlnaHQ6MjBweDsifSwiICNlLXRpdGxlIjoiZm9udC1zaXplOjYwcHg7IGxpbmUtaGVpZ2h0OjAuOWVtOyBjb2xvcjojOTVhNWI1OyBmb250LXdlaWdodDoyMDA7IiwiIC51aS13aWRnZXQiOiJmb250LXNpemU6MTAwJSIsIiAudWktYXV0b2NvbXBsZXRlIjoibGluZS1oZWlnaHQ6MS4zZW07IG1heC1oZWlnaHQ6MTl2aDsgb3ZlcmZsb3cteTphdXRvOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDsiLCIgLmJmb2xkIjp7IiI6WyJ3aWR0aDoyMHB4IWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IiwibWFyZ2luLWxlZnQ6LTIxcHg7IHotaW5kZXg6KzE7Il0sIiBkaXYiOiJmb250LXNpemU6NjAlOyBvcGFjaXR5OjAuNTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjMuMmVtOyB3aWR0aDoxMDAlOyJ9LCIgdWwiOnsiLnVpLWF1dG9jb21wbGV0ZSI6Im1heC13aWR0aDpjYWxjKDEwMCUgLSAxMTVweCk7In19LHBhcmFtczp7c3RyaWN0OiEwfX0sJGRvYzp7aWQ6ImN3LlBob3Rvbi4kZG9jIixsYW5nOnt9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4gY3cubGliLmNyYzIodGhpcy5kYXRhLmRvYyl9LHBhcmFtczp7cmVzdHlsZToyNSxzdHJpY3Q6ITB9LHRpdGxlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPWEucGF0aCxjPWEuZG9jLl9pZDtyZXR1cm5beC50cnVuYyhiWzBdLDEwKSwi4oCJL+KAiSIsIl9kZXNpZ24vIj09Yy50byg4KT8iX2QiK2MuZnJvbSg3KToiX3VzZXJzIj09YlswXT9jLmZyb20oMTcpOmMsYS5yZXY/IuKAiUDigIkiK2EucmV2OiIiXS5qb2luKCIiKX0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtpZihhKXJldHVybiJfbmV3Ij09eFsxXT97dGl0bGU6Ik5ldyBkb2MiLGFwcERhdGE6e2lzTmV3OiEwLGRvYzoiX3VzZXJzIj09eFswXT97X2lkOiJvcmcuY291Y2hkYi51c2VyOl91c2VybmFtZV8iLHR5cGU6InVzZXIiLG5hbWU6Il91c2VybmFtZV8iLHBhc3N3b3JkOiJfcGFzc3dvcmRfIixyb2xlczpbXX06eFswXT09dGhpcy5SZXBsaWNhdG9yREI/e19pZDoiIixzb3VyY2U6IiIsdGFyZ2V0OiIiLGNyZWF0ZV90YXJnZXQ6ITEsY29udGludW91czohMSxkb2NfaWRzOltdLGZpbHRlcjoiIix1c2VyX2N0eDp7bmFtZToiIixyb2xlczpbXX0scXVlcnk6e319Ont9fX06MiE9eC5sZW5ndGh8fCJfIj09eFsxXVswXSYmIS9eXyhkZXNpZ258bG9jYWwpXC8vLnRlc3QoeFsxXSk/MyE9eC5sZW5ndGh8fCJfIj09eFsxXVswXSYmIS9eX2Rlc2lnblwvLy50ZXN0KHhbMV0pfHwiXyIhPXhbMl1bMF0/dm9pZCAwOnt0aXRsZTp0aGlzLnRydW5jKHhbMF0sMTApKyLigIkv4oCJIit4WzFdLHR5cGU6ImRvYyIsYXBwRGF0YTp7cmV2OnhbMl0ucmVwbGFjZSgvXlxEKy8sIiIpfX06e3RpdGxlOnRoaXMudHJ1bmMoeFswXSwxMCkrIuKAiS/igIkiK3hbMV0sdHlwZToiZG9jIn19LGRhdGE6e2lzTmV3OiExLHBhdGg6W10scmV2OiIiLHJldmxhc3Q6IiIscmV2c3RhcnQ6IiIsc2VhcmNoOiIiLGRvYzp7X2lkOiIifSxjb25mbGljdHM6W10scmV2czpbXSxhdHRzOiExfSxEb2M6W10sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3JldHVybiB4LmFkZENsYXNzKCJudyIpLGIucGF0aC5sZW5ndGg+KCJfZGVzaWduIj09Yi5wYXRoWzFdPzM6MikmJihiLnJldj1iLnBhdGgubGFzdCgpLnJlcGxhY2UoL15cRCsvLCIiKSksYi5yZXZzdGFydD1iLnJldixhLkhUTUwuSGlzdG9yeVJvdz1hLlBobygiQ29tcGlsZVQiKShhLkhUTUwuSGlzdG9yeVJvdyksYS5IaXN0b3J5LmluaXQoYSx4KSxhLkdldERvYygpLnRoZW4oZnVuY3Rpb24oKXt4Lmh0bWwoYS5IVE1MLkFwcC5hc3NpZ24oYS5sYW5nKSl9KS50aGVuKGZ1bmN0aW9uKCl7YS5CdXN5KCExKX0uZGVib3VuY2UoMTAwKSl9LHVpOnsiI2FwcC10aXRsZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEucDJ1LGM9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0iIHRpdGxlPSJ7M30iPnsyfTwvYT4nLmFzc2lnbihiKHgucGF0aFswXSksYS50cnVuYyh4LnBhdGhbMF0sMTUpLmVzY2FwZUhUTUwoKSx4LnBhdGhbMF0uZXNjYXBlSFRNTCgpKSxkPXguZG9jLl9pZHx8eC5wYXRoWzFdKygiX2Rlc2lnbiI9PXgucGF0aFsxXT8iLyIreC5wYXRoWzJdOiIiKSxlPSc8YSB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiIgaHJlZj0iezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oWyIiLGIoeC5wYXRoWzBdKSxiKGQpXS5qb2luKCIvIikuZXNjYXBlSFRNTCgpKyh4LnJldj8iP3Jldj0iK3gucmV2OiIiKSxkLmVzY2FwZUhUTUwoKSxkLmxlbmd0aD4xNT9kLmVzY2FwZUhUTUwoKToiIik7cmV0dXJuWyc8c3BhbiBjbGFzcz0iZnMxNTAgbGgxMzAgeGdyYXkgbXQtMSBvODAiPicsJzxzcGFuIGNsYXNzPSJvODAiPnsyfTwvc3Bhbj7igIkv4oCJPHNwYW4gY2xhc3M9IiI+ezF9PC9zcGFuPicsIjwvc3Bhbj4iXS5qb2luKCIiKS5hc3NpZ24oZSxjKX0sd2F0Y2g6WyIjYXBwLXJldiIsIiNqc2VkaXRvciJdfSwiI2FwcC1yZXYiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUmV2c0xpc3QoIiNhcHAtcmV2Iil9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmV2IT1hJiYoeC5hdHRzPSExKSx4LnJldj1hKSx4LnJldn0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4vXl9sb2NhbFwvLy50ZXN0KHguZG9jLl9pZCl9fX0sIiNhcHAtc2VhcmNoIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP3guc2VhcmNoOih4LnNlYXJjaD1hLmxlbmd0aDwzPyIiOmEsdGhpcy5Eb2NbMF0mJnRoaXMuRG9jWzBdLnNlYXJjaCE9eC5zZWFyY2gmJnRoaXMubXkuZmluZCgiI2pzb24tc2VhcmNoIikudmFsKHguc2VhcmNoKS50cmlnZ2VyKCJjaGVjayIpLGEpfSxjc3M6eyJteS1zZWFyY2giOi9eLnszLH0kL319LCIjanNlZGl0b3IiOntkZWxheToxMDAsY2hlY2s6ITEsbGlzdDoiPGRpdj48L2Rpdj4iLG1lcmdlOiExLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5kb2MuX2lkfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibSh4LmRvYyl9LG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEucGF0aDtyZXR1cm4gJC5leHRlbmQoITAse30sYS5QaG8oIkVkIikuanNvbnRyZWUsYS5FeHRFZCx7TVJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYS5teS5yb290KCl9LEdldEF0dHM6YS5HZXRBdHRzLGRhdGE6e2xhYmVsV2lkdGg6Il9yZXBsaWNhdG9yIj09YlswXT8xNzU6Il9kIj09YlsxXS50bygyKT8xNjA6MTUwfX0pfSxiaW5kOiJ0aGlzLkRvYyJ9LCIjYnRuLXJlbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuR2V0RG9jKCEwLCEwKS5hbHdheXMoZnVuY3Rpb24oKXtiLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpfX0sbGlzdGVuOntmaWxldXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoIXgucmV2JiZPYmplY3QuaXNPYmplY3QoYSkmJmEuZGI9PXgucGF0aFswXSYmYS5kb2M9PXguZG9jLl9pZCYmYS5yZXY9PXguZG9jLl9yZXYpe3ZhciBiPXRoaXM7Yi5HZXREb2MoITAsITApLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDUwKSl9fX19LCIjYnRuLWRvYy1zYXZlYXMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz10aGlzO2Z1bmN0aW9uIGQoKXtjLkJ1c3koITApLGMuU2F2ZUFsbCgpLmFsd2F5cyhmdW5jdGlvbigpe2MuQnVzeSghMSl9LmRlYm91bmNlKDUwKSl9ZnVuY3Rpb24gZSgpe3guZG9jLl9pZD1iLmRvYy5faWQseC5wYXRoWzBdPWIucGF0aFswXSx4LnBhdGhbMV09Yi5kb2MuX2lkLE9iamVjdC5rZXlzKHguZG9jKS5mb3JFYWNoKGZ1bmN0aW9uKGEpeyJfIj09YVswXSYmIl9pZCIhPWEmJiJfYXR0YWNobWVudHMiIT1hJiZkZWxldGUgeC5kb2NbYV19KSx4LnJldj0iIix4LnJldmxhc3Q9IiIseC5yZXZzPVtdLHguaXNOZXc9ITB9ZnVuY3Rpb24gZigpe2MuRG9jPVt7ZGJuYW1lOngucGF0aFswXSxyZXZpc2lvbjoiIixiYXNldXJsOmMuUGhvKCJCYXNlIiksZG9jOnguZG9jfV0sYy5teS5yZWRyYXcoKX1udWxsIT1hJiZjLm15Lm1vZGFsKCIjYnRuLWRvYy1zYXZlYXMiLHtyb290OmMubXkucm9vdCgpLHNjcmVlbjohMCxnbG9iYWw6ITAsZXNjOiEwLGVudGVyOiExLGNsb3NlOiExLHdpZHRoOjQwMCx6OjE5OTUsY3NzOiJwMjAgcHQxNSIsbWFuaWZlc3Q6JC5leHRlbmQoITAse1BobzpjLlBobyxSVDpjLlJUfSxjLk5ld0RvY1RndCksZGF0YTpPYmplY3QuY2xvbmUoYy5kYXRhLCEwKX0pLnRoZW4oZnVuY3Rpb24oeCl7Yj14fSkudGhlbihjLkFwcGx5RWRzKS50aGVuKGZ1bmN0aW9uKCl7Yy5CdXN5KCEwKSxiLmRvYy5fYXR0YWNobWVudHMmJk9iamVjdC5zaXplKGIuZG9jLl9hdHRhY2htZW50cykmJk9iamVjdC52YWx1ZXMoYi5kb2MuX2F0dGFjaG1lbnRzKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIXguZGF0YX0pLmxlbmd0aD9jLkdldEF0dHMoITApLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGI9YS5fYXR0YWNobWVudHM7aWYoYil7eC5kb2MuX2F0dGFjaG1lbnRzfHwoeC5kb2MuX2F0dGFjaG1lbnRzPXt9KTt2YXIgYz14LmRvYy5fYXR0YWNobWVudHM7T2JqZWN0LmtleXMoYikuZm9yRWFjaChmdW5jdGlvbih4KXtjW3hdJiYhY1t4XS5kYXRhJiYoY1t4XT1PYmplY3Quc2VsZWN0KGJbeF0sWyJjb250ZW50X3R5cGUiLCJkYXRhIl0pKX0pfWVsc2UgYz14LmRvYy5fYXR0YWNobWVudHN8fHt9O09iamVjdC5rZXlzKGMpLmZvckVhY2goZnVuY3Rpb24oeCl7Y1t4XS5kYXRhfHxkZWxldGUgY1t4XX0pfSkudGhlbihlKS50aGVuKGYpLnRoZW4oZCk6KGUoKSxkKCkpfSl9LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNOZXd9fX0sIiNidG4tZG9jLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5jbWRTYXZlKCl9fSwiI2J0bi1kb2MtZGVsIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7bnVsbCE9YSYmKGIuQnVzeSghMCksYi5EZWxEb2MoKS5hbHdheXMoZnVuY3Rpb24oKXtiLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3ZhciBiPXguY29uZmxpY3RzfHxbXSxjPXgucmV2cyYmeC5yZXZzWzBdJiZ4LnJldnNbMF09PXguZG9jLl9yZXY7cmV0dXJuIGIubGVuZ3RoPyFjJiYtMT09Yi5pbmRleE9mKHguZG9jLl9yZXZ8fCIiKTohKC9eX2xvY2FsXC8vLnRlc3QoeC5kb2MuX2lkKXx8eC5kb2MuX3JldiYmYyl9fSx3YXRjaDpbIiNhcHAtcmV2Il19LCIjYnRuLWRvYy1kaWZmIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcy5wMnU7Yi5hdHRyKCJocmVmIiwiI3sxfS9fZGlmZi97Mn0vezN9L3s0fSIuYXNzaWduKGMoeC5wYXRoWzBdKSxjKHgucGF0aFsxXSksIl8iKyh4LnJldnx8IiIpLCJfIikpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmNvbmZsaWN0cy5sZW5ndGgreC5yZXZzLmxlbmd0aDwyfHwvXl9sb2NhbFwvLy50ZXN0KHguZG9jLl9pZCl9fSx3YXRjaDpbIiNhcHAtcmV2Il19LCIjc3RhdGUtcHJveHkiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpczt4LnJldj94LnBhdGgubGFzdCgpIT14LmRvYy5faWQ/eC5wYXRoW3gucGF0aC5sZW5ndGgtMV09Il8iK3gucmV2OngucGF0aC5wdXNoKCJfIit4LnJldik6eC5wYXRoLmxhc3QoKSE9eC5kb2MuX2lkJiYoeC5wYXRoLmxlbmd0aD0oeC5wYXRoLmxlbmd0aC0xKS5jbGFtcCgyLDYpKSx4LnJldiE9eC5yZXZsYXN0JiYoJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOngudGFiaWQscGF0aDp4LnBhdGgsdGl0bGU6Yi50aXRsZSgpfSkseC5yZXZsYXN0Mj14LnJldmxhc3QseC5yZXZsYXN0PXgucmV2LGIuR2V0RG9jKCEwLCEwKS50aGVuKGZ1bmN0aW9uKCl7eC5yZXZsYXN0Mj1udWxsfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoNTApKSl9fSx3YXRjaDoiI2FwcC1yZXYiLGxpc3Rlbjp7ZGJkZWxldGVkOmZ1bmN0aW9uKHgsYSl7aWYoYT09eC5wYXRoWzBdKXt2YXIgYj10aGlzOyhmdW5jdGlvbigpe2IubXkucm9vdCgpLnRyaWdnZXIoInRhYmNsb3NlIix7dGFiaWQ6eC50YWJpZCxlbmZvcmNlOiEwfSl9KS5kZWJvdW5jZShOdW1iZXIucmFuZG9tKDEwLDUwKSkoKX19fX0sIiNkb2MtaGlzdG9yeSI6e2RlbGF5OjIwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGEsT2JqZWN0LmlzQXJyYXksT2JqZWN0LmlzT2JqZWN0O2EubmljZVNjcm9sbCh4KSx4Lmxpc3Qoe2RhdGE6YS5IaXN0b3J5LnN0ZXBzLGRlbGF5OjAsY2h1bms6NTAsc29ydEJ5Om51bGwsaWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguaWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIHguaWQreC5oYXNofSx0ZW1wbGF0ZTpmdW5jdGlvbih4LGIpe3JldHVybiBhLkhUTUwuSGlzdG9yeVJvdy5hc3NpZ24oe3BhdGg6eC5zcGF0aCxpY286ImlucyI9PXgub3A/InBsdXMiOiJkZWwiPT14Lm9wPyJtaW51cyI6ImNoZWNrIixoYXNoOnguaGFzaCxzdmFsOnguc3ZhbCxvcDp4Lm9wLHRpcDpbIkNsaWNrIHRvIHVuZG8gIisoImlucyI9PXgub3A/Imluc2VydGlvbi4iOiJkZWwiPT14Lm9wPyJkZWxldGlvbi4iOiJlZGl0cy4iKSwiaW5zIiE9eC5vcD8iUmVzdG9yZWQgdmFsdWU6ICIreC52YWwudHJ1bmNhdGUoMTUwKS5lc2NhcGVIVE1MKCk6bnVsbF0uY29tcGFjdCgpLmpvaW4oIlxuIil9KX19KSx4Lm9uKCJjbGljay5teSIsIi5oLXJvdyIsZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmN1cnJlbnRUYXJnZXQpLmluZGV4KCk7YS5IaXN0b3J5LnVuZG8oYil9KX0sYmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKGIubGlzdCgiZGF0YSIsdGhpcy5IaXN0b3J5LnN0ZXBzKSxiWzBdLnNjcm9sbFRvcD0xZTYpfSx3YXRjaDpbIiNidG4taGlzdG9yeS1jbGVhciJdfSwiI3N0eWxlLWhpc3RvcnkiOntkZWxheToxMDAsYmluZDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0iLm15LWZvcm0tIit4Lm15LnJvb3QoKS5teSgpLmNpZCsnIC5oLXJvd1tkYXRhLXBhdGg9InsxfSJdOmhvdmVyfi5oLXJvd1tkYXRhLXBhdGh8PSJ7MX0iXXtiYWNrZ3JvdW5kLWNvbG9yOiAjZWZmNmZmOyBvcGFjaXR5OjAuNTt9JyxiPXt9O3JldHVybiB4Lkhpc3Rvcnkuc3RlcHMuZm9yRWFjaChmdW5jdGlvbih4KXtiW3guaGFzaF09MX0pLE9iamVjdC5rZXlzKGIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gYS5hc3NpZ24oeCl9KS5qb2luKCJcbiIpfSx3YXRjaDpbIiNkb2MtaGlzdG9yeSIsIiNidG4taGlzdG9yeS1jbGVhciJdfSwiI2VtcHR5LWhpc3RvcnkiOntkZWxheToyMCxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGh9fSx3YXRjaDpbIiNkb2MtaGlzdG9yeSJdfSwiI2J0bi1oaXN0b3J5LWNsZWFyIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuSGlzdG9yeS5jbGVhcighMCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5IaXN0b3J5LnN0ZXBzLmxlbmd0aH19LHdhdGNoOlsiI2RvYy1oaXN0b3J5Il19LCIjYnRuLWhpc3RvcnktdW5kbyI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLmNtZFVuZG8oKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RofX0sd2F0Y2g6WyIjZG9jLWhpc3RvcnkiXX19LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNqc2VkaXRvciIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sY21kVW5kbzpmdW5jdGlvbigpe3RoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGgmJnRoaXMuSGlzdG9yeS51bmRvKHRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGgtMSl9LGNtZFNhdmU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guQXBwbHlFZHMoKS50aGVuKGZ1bmN0aW9uKCl7eC5TYXZlQWxsKCkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5CdXN5KCExKX0uZGVib3VuY2UoNTApKX0pfSxIVE1MOntBcHA6JzxkaXYgaWQ9ImNvbC1lZCIgY2xhc3M9ImRpYiB2YXQgd24iPjxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcGwyMCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciB3MTU1IGZzOTUiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgYmx1ZSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IiB0aXRsZT0ie1BMQ19SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgaWQ9ImFwcC10aXRsZSIgY2xhc3M9ImRpYiB2YXQgZWxsIG1yMTAgbnciPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzIwMCBtcjEwIj48aW5wdXQgaWQ9ImFwcC1yZXYiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1kb2Mtc2F2ZSIgY2xhc3M9ImdyZWVuIG1yMiI+e0JUTl9TQVZFfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kb2Mtc2F2ZWFzIiBjbGFzcz0idGVhbCBtcjIiPntCVE5fU0FWRUFTfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kb2MtZGVsIiBjbGFzcz0icmVkIG1yMiI+e0JUTl9ERUx9PC9idXR0b24+PGEgaHJlZj0iIiBpZD0iYnRuLWRvYy1kaWZmIiBjbGFzcz0iaGlkZSBidXR0b24gdGRuIHZhdCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNGVtOyI+e0JUTl9ESUZGfTwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJqc2VkaXRvciIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjb2wtaGlzdG9yeSIgY2xhc3M9ImRpYiB2YXQgeGdyYXkgd24iPjxkaXYgaWQ9ImgtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LXVuZG8iIGNsYXNzPSJsaDE0MCBtcjIiPntCVE5fSElTVF9VTkRPfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LWNsZWFyIiBjbGFzcz0ibGgxNDAiPntCVE5fSElTVF9DTEVBUn08L2J1dHRvbj48L2Rpdj48c3BhbiBjbGFzcz0iZnMxNTAgZGliIHZhdCBwbDUgbzkwIHB0MyI+e1RYVF9ISVNUX1RJVExFfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJlbXB0eS1oaXN0b3J5IiBjbGFzcz0iaGlkZSBwYWJjIHBsNSBwdDggZ3JheSIgc3R5bGU9InRvcDowOyBsZWZ0OjA7Ij57VFhUX0hJU1RfRU1QVFl9PC9kaXY+PGRpdiBpZD0iZG9jLWhpc3RvcnkiIGNsYXNzPSJwYW5lbGhlaWdodCBwcjIwIHB0MTAgcGIxNiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvZGl2PjwvZGl2PjxzdHlsZSBpZD0ic3R5bGUtaGlzdG9yeSIgY2xhc3M9ImhpZGUiPjwvc3R5bGU+PGRpdiBpZD0ic2Nyb2xsLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdGUtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLEhpc3RvcnlSb3c6JzxkaXYgY2xhc3M9Imgtcm93IHcxMDBwIGNwIG9wLXtvcH0iIHRpdGxlPSJ7dGlwfSIgZGF0YS1wYXRoPSJ7aGFzaH0iPjxkaXYgY2xhc3M9ImgtdWJ0biBwYWJjIHBsNCBwdDMgZnM5NSBibHVlMiIgc3R5bGU9InRvcDowOyByaWdodDowOyB0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpOyI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idzE1IGRpYiB2YXQgbWwtMTUgbzQwIGZzODUgbXQxIGZpLXtpY299Ij48L3NwYW4+PGRpdiBjbGFzcz0ibXcxMDBwIHRkbiBkaWIgbncgb2ggZWxsIHBzZXVkb2xpbmsiPntwYXRofSA8L2Rpdj48ZGl2IGNsYXNzPSJ0ZGkgbXcxMDBwIGZzOTAgbGgxMzAgbzcwIGRpYiB2YWwgbncgb2ggZWxsIj57c3ZhbH08L2Rpdj48L2Rpdj4nfSxIaXN0b3J5Ontpbml0OmZ1bmN0aW9uKHgpe09iamVjdC5rZXlzKHguSGlzdG9yeSkuZm9yRWFjaChmdW5jdGlvbihhKXsiZnVuY3Rpb24iPT10eXBlb2YgeC5IaXN0b3J5W2FdJiYoeC5IaXN0b3J5W2FdPXguSGlzdG9yeVthXS5iaW5kKHgpKX0pLHguSGlzdG9yeS5jbGVhcigpfSxlbWl0OmZ1bmN0aW9uKHgsYSxiLGMpe3ZhciBkPXRoaXMsZT1kLkhpc3RvcnksZj1kLkRvY1swXS5kb2MsZz0hMCxoPXguZmxhdCgpLGk9W10saj1PYmplY3QuaXNPYmplY3Qsaz1PYmplY3QuaXNBcnJheSxsPShlLmhhc2gsZS5yYW5kKTtpZihqKGEpJiZqKGIpKXt2YXIgbT1bYSxiXS5yZWR1Y2UoZnVuY3Rpb24oeCxhLGIpe3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3hbY118fCh4W2NdPVt2b2lkIDAsdm9pZCAwXSkseFtjXVtiXT1jdy5saWIuc2RibShhW2NdKX0pLHh9LHt9KTtPYmplY3QudmFsdWVzKG0pLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geFswXSE9eFsxXX0pLmxlbmd0aDwxMCYmKE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9bVt4XTtpZihjWzBdIT1jWzFdKXt2YXIgZD1udWxsPT1jWzBdPyJpbnMiOnZvaWQgMD09PWNbMV0/ImRlbCI6InVwZCI7aS5wdXNoKFtoLmNvbmNhdCh4KSxkLHZvaWQgMD09PWNbMF0/Ylt4XTphW3hdLCJkZWwiPT1kP251bGw6Ylt4XV0pfX0pLGc9ITEpfWlmKGcpe3ZhciBuPXZvaWQgMD09PWE/ImlucyI6dm9pZCAwPT09Yj8iZGVsIjoidXBkIjtpLnB1c2goW2gsbiwiaW5zIj09bj9iOmEsImRlbCI9PW4/bnVsbDpiXSl9ZnVuY3Rpb24gbyh4LGEsYixkKXt2YXIgZz1jdy5saWIuZ2V0cmVmKGYseC5zbGljZSgxKS50bygtMSkpLGg9ayhnKSxpPSJkZWwiPT1hJiZoPysrZS5kZWxzOjAsaj14Lmxlbmd0aCxtPUpTT04uc3RyaW5naWZ5KGIsbnVsbCwiICIpLG49bnVsbDtpZighaCl7dmFyIG89T2JqZWN0LmtleXMoZykscD1vLmluZGV4T2YoeC5sYXN0KCkpOyJkZWwiIT1hP249W3A+MD9vW3AtMV06bnVsbCxwPT1vLmxlbmd0aC0xP251bGw6cD4tMT9vW3ArMV06bnVsbF06YyYmKG49Yyl9dmFyIHE9ZS5yZWhhc2goe2lkOmwoKSx0czpEYXRlLm5vdygpLHBhdGg6eCxjdHg6bixoYXNoOiIiLG9wOmEsdmFsOm0sZGVsOmkscm93Omgsc3BhdGg6IiIsc3ZhbDooImRlbCI9PWE/IsKgd2FzICIrbS50bygxMDApLnJlcGxhY2UoL1xuXHMrL2csIiIpOiLCoD3CoCAiK0pTT04uc3RyaW5naWZ5KGQpLnRvKDEwMCkpLnJlcGxhY2UoL1xcbi9nLCLCtiIpLmVzY2FwZUhUTUwoKS5yZXBsYWNlKC/Cti9nLCc8c3BhbiBjbGFzcz0iZ3JheTIgcGwxIHByMSI+wrY8L3NwYW4+Jyl9KTtpZigiZGVsIj09YSYmaCl7dmFyIHI9ZS5oYXNoKHgudG8oLTEpLDApKyItIixzPSt4Lmxhc3QoKTtlLnN0ZXBzLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeC5oYXNoLnN0YXJ0c1dpdGgocikpe3ZhciBhPSt4LnBhdGhbai0xXTthIT1zfHx4LmRlbD9hPnMmJih4LnBhdGhbai0xXT0oYS0xKS5jbGFtcCgwLDFlNikrIiIsZS5yZWhhc2goeCkpOih4LmRlbD1pLGUucmVoYXNoKHgpKX19KX1pZigiaW5zIj09YSYmaCl7cj1lLmhhc2goeC50bygtMSksMCkrIi0iLHM9K3gubGFzdCgpO2Uuc3RlcHMuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4Lmhhc2guc3RhcnRzV2l0aChyKSl7dmFyIGE9K3gucGF0aFtqLTFdO2E+PXMmJih4LnBhdGhbai0xXT0oYSsxKS5jbGFtcCgwLDFlNikrIiIsZS5yZWhhc2goeCkpfX0pfWUuc3RlcHMucHVzaChxKX1pLmZvckVhY2goZnVuY3Rpb24oeCl7byh4WzBdLHhbMV0seFsyXSx4WzNdKX0pLGQubXkuY2hlY2soIiNkb2MtaGlzdG9yeSIpfSx1bmRvOmZ1bmN0aW9uKHgpe2Zvcih2YXIgYT10aGlzLGI9KGEuZGF0YSxhLkhpc3RvcnkpLGM9Yi5zdGVwcyxkPWNbeF0sZT1kLmhhc2gsZj1iLmhhc2goZC5wYXRoLnRvKC0xKSwwKSsiLSIsZz1kLnBhdGguc2xpY2UoMSksaD1nLmxlbmd0aCxpPUpTT04ucGFyc2UoZC52YWwpLGo9ZC5vcCxrPTAsbD1hLkRvY1swXS5kb2MsbT0oT2JqZWN0LmlzT2JqZWN0LE9iamVjdC5pc0FycmF5KSxuPShiLmhhc2gsMCksbz1sO248Zy5sZW5ndGgtMSYmbyYmIm9iamVjdCI9PXR5cGVvZiBvO24rKylvPSJvYmplY3QiPT10eXBlb2Ygb1tnW25dXSYmbnVsbCE9b1tnW25dXT9vW2dbbl1dOm51bGw7aWYoIW8pcmV0dXJuIHIoIk5vZGUgdG8gbW9kaWZ5IGRvZXNu4oCZdCBleGlzdCIpO2Z1bmN0aW9uIHAoeCl7aWYoeClmb3IodmFyIGE9K2cubGFzdCgpLGQ9ZixlPTA7ZTxjLmxlbmd0aDtlKyspY1tlXS5oYXNoLnN0YXJ0c1dpdGgoZCkmJitjW2VdLnBhdGhbaF0+PWEmJihjW2VdLnBhdGhbaF09IiIrKCtjW2VdLnBhdGhbaF0reCkuY2xhbXAoMCwxZTYpLGIucmVoYXNoKGNbZV0pKX1mdW5jdGlvbiBxKCl7dmFyIHg9ImRlbCI9PWo/ImlucyI6ImlucyI9PWo/ImRlbCI6InVwZCIsYj1hLm15LmZpbmQoIiNqc2VkaXRvcj5kaXYiKS5teSgibWFuaWZlc3QiKS5NdXRhdGUoe3BhdGg6ZyxjdHg6ZC5jdHgsdmFsOiJkZWwiIT14P2k6dm9pZCAwLG9wOngsZXhwYW5kOiEwLGJsaW5rOiJiZy1ibHVlNyJ9KTtiLmVycm9yP3IoYi5lcnJvcik6YS5teS5jaGVjaygiI2RvYy1oaXN0b3J5Iil9ZnVuY3Rpb24gcih4KXtjdy5saWIubm90ZSh4LCJlcnJvciIsNGUzKSxhLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0iZGVsIiE9aiYmZC5yb3cmJmMuZmlsdGVyKGZ1bmN0aW9uKGEsYil7cmV0dXJuIShiPD0reCkmJihhLnJvdyYmImRlbCI9PWEub3AmJmEuZGVsPT1kLmRlbCYmYS5wYXRoLmxlbmd0aD09aCsxJiZhLmhhc2guc3RhcnRzV2l0aChmKSl9KS5sZW5ndGgmJihqPSJpbnMiPT1qPyJub29wIjoidXBkIj09aj8iZGVsIjpqKSwiZGVsIj09aj9oP20obykmJi9eXGQrJC8udGVzdChnLmxhc3QoKSkmJnAoMStrKTpsPWk6InVwZCI9PWp8fCJpbnMiPT1qJiZoJiZtKG8pJiYvXlxkKyQvLnRlc3QoZy5sYXN0KCkpJiZwKC0xK2spLGIuc3RlcHM9Yy5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09eHx8Yj54JiZhLmhhc2guc3RhcnRzV2l0aChlKT9udWxsOmF9KS5jb21wYWN0KCkscSgpfSxjbGVhcjpmdW5jdGlvbih4KXt0aGlzLkhpc3Rvcnkuc3RlcHM9W10sdGhpcy5IaXN0b3J5LmRlbHM9MCx4JiZ0aGlzLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0saGFzaDpmdW5jdGlvbih4LGEpe3ZhciBiPXguZmxhdCgpLGM9Yi5sZW5ndGgtMTtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oeCxiKXtyZXR1cm4gY3cubGliLnNkYm0oYiE9Y3x8MD09YT94Olt4LGFdKX0pLmpvaW4oIi0iKX0scmVoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiB4Lmhhc2g9dGhpcy5IaXN0b3J5Lmhhc2goeC5wYXRoLHguZGVsKSx4LnNwYXRoPXgucGF0aC5sZW5ndGg8Mj8iRG9jIHJvb3QiOngucGF0aC5zbGljZSgxKS5qb2luKCLigIku4oCJIikudHJ1bmNhdGUoMzIsIm1pZGRsZSIsIi4uLiIpLmVzY2FwZUhUTUwoKSx4fSxyYW5kOmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5yYW5kb20oMCwyMTc2NzgyMzM1KS50b1N0cmluZygzNikucGFkTGVmdCg2LCIwIil9LHN0ZXBzOltdLGRlbHM6MH0sc3R5bGU6eyIgIjpmdW5jdGlvbih4KXt2YXIgYT0wfHgud2lkdGgoKSxiPTB8KGEvNC41KS5jbGFtcCgyODAsNDUwKSxjPWEtYixkPSJ3aWR0aDp7MX1weCI7cmV0dXJueyIgI2NvbC1lZCI6ZC5hc3NpZ24oYyksIiAjY29sLWhpc3RvcnkiOmQuYXNzaWduKGIpfX0sIiAjanNlZGl0b3IiOnsiPmRpdiI6Im1pbi1oZWlnaHQ6OTkuOSU7IiwiPi5teS1mb3JtPnNlY3Rpb24+I2VkaXRvcj4jZG9jPi5pYWN0LmJ1dHRvbnMiOiJwYWRkaW5nLXJpZ2h0OjNweDsiLCIgLmlhY3QgLmJ1dHRvbiI6IiAgaGVpZ2h0OiAxLjdlbTtsaW5lLWhlaWdodDogMS4xZW07In0sIiAubXktbW9kYWwtZm9ybSI6eyIgLkNvZGVNaXJyb3IgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6Y2FsYygxOCAqIDE3cHggKyA2cHgpOyIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6InRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zczsiLCIuZWQtZXJyb3IgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiIC5Db2RlTWlycm9yIjoibWluLWhlaWdodDoxNTBweDsgaGVpZ2h0OmF1dG87IiwiIC5idXR0b25zIGJ1dHRvbiI6Im1hcmdpbi1yaWdodDogMnB4O3BhZGRpbmc6IDAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO2ZvbnQtc2l6ZTogOTAlOyJ9LCIgI2FwcC10aXRsZSI6Im1heC13aWR0aDogY2FsYygxMDAlIC0gNDMwcHggLSAxNi4zZW0pOyIsIiAjZG9jLWhpc3RvcnkiOnsiIC5oLXJvdyI6eyIiOiJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyBib3JkZXItcmFkaXVzOjFweDsgbWFyZ2luLWJvdHRvbToxcHg7IHBhZGRpbmc6MnB4IDE1cHggMXB4IDIwcHg7dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzOyBsaW5lLWhlaWdodDoxLjNlbTsiLCIgLnRkaSI6InRleHQtZGVjb3JhdGlvbjppbmhlcml0OyIsIi5vcC1kZWwiOiJ0ZXh0LWRlY29yYXRpb246cmdiYSgwLDAsMCwwLjQpIHNvbGlkIGxpbmUtdGhyb3VnaCFpbXBvcnRhbnQ7IiwiIC5oLXVidG4iOiJvcGFjaXR5OjA7IHRyYW5zaXRpb246IG9wYWNpdHkgMC41czsiLCI6aG92ZXIiOnsiIjoiYmFja2dyb3VuZC1jb2xvcjogI2UyZjBmZjsiLCIgLmgtdWJ0biI6Im9wYWNpdHk6MTsifX19LCIgLmVkLW5vZGUtMTN0NmQ2YzUiOnsiIC5pYWN0IjoidG9wOjJweCIsIiAuaWRlc2MiOnsiIjoicGFkZGluZy10b3A6MXB4OyIsIiAuZnM5NSI6InBhZGRpbmctdG9wOjFweDsifX19LEV4dEVkOntIVE1MOntJdGVtUm9vdDonPGRpdiBjbGFzcz0iaW5hdiBpcm9vdCI+PGRpdiBjbGFzcz0iaWtleSI+PC9kaXY+PGRpdiBjbGFzcz0iaWRlc2MgY3AiPuKAkzwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IgcGFuZWxoZWlnaHQtMzIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Iml2YWx1ZSBpbXVsdGkgaGlkZSI+PGRpdiBjbGFzcz0iaWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWFkZCBidXR0b24gZ3JlZW4iIHRpdGxlPSJBZGQgbmV3IHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1wbHVzIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tdGFrZW91dCBidXR0b24iIHRpdGxlPSJDb3B5IC8gcGFzdGUgLyBlZGl0IGFzIEpTT04iPjxzcGFuIGNsYXNzPSJmaS1zaG9wcGluZy1iYWciPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1hdHRhY2giIGNsYXNzPSJidXR0b24iIHRpdGxlPSJBZGQgYXR0YWNobWVudCIgc3R5bGU9IndpZHRoOjc0cHgiPjxzcGFuIGNsYXNzPSJmaS1wYXBlcmNsaXAiPjwvc3Bhbj48c3BhbiBjbGFzcz0iZnM5MCBkaWIgdmF0Ij4gQXR0YWNo4oCmPC9zcGFuPjwvYnV0dG9uPjwvZGl2Pid9LHVpOnsiI2RvYyI6e21hbmlmZXN0OmZ1bmN0aW9uKHgpe2lmKCF0aGlzLkhUTUwuSXRlbVJvb3QpcmV0dXJuIHRoaXMuJG11bHRpO3ZhciBhPXRoaXMsYj1hLiRmaWxlcy5BZGQ7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuJG11bHRpLHtIVE1MOmEuSFRNTC5JdGVtUm9vdCx1aTp7IiNidG4tYXR0YWNoIjp7YmluZDpmdW5jdGlvbih4LGEsYyl7aWYobnVsbCE9YSl7dmFyIGQ9dGhpcztpZihjLmRhdGEoIm1vZGFsIikpcmV0dXJuIGMubW9kYWwoITApLGUoKSx2b2lkIDA7Yy5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxkLm15Lm1vZGFsKCIjYnRuLWF0dGFjaCIse21hbmlmZXN0OmIsZGF0YTp7fSx3aWR0aDo1MDAsYWxpZ246InRvcDoxMDMlLCByaWdodDowcHg7Iixub3NlOiJ0b3AifSkudGhlbihmdW5jdGlvbihhKXtpZihhLmZpbGVzLmxlbmd0aCl7eC52YWx1ZS5fYXR0YWNobWVudHN8fCh4LnZhbHVlLl9hdHRhY2htZW50cz17fSk7dmFyIGI9JC5leHRlbmQoITAse30seC52YWx1ZS5fYXR0YWNobWVudHMpO2EuZmlsZXMuZm9yRWFjaChmdW5jdGlvbihhKXt4LnZhbHVlLl9hdHRhY2htZW50c1thLm5hbWVdPU9iamVjdC5zZWxlY3QoYSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSxkLlJUKCJkYXRhIikudmlld3N0YXRlfHwoZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZT17fSksZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZVtjdy5saWIuc2RibSgiUm9vdOKdgF9hdHRhY2htZW50cyIpXT0yLGQuTGlzdD1kLk1ha2VMaXN0KHgpLGQuTm9kZVVwZGF0ZWQoWyJSb290IiwiX2F0dGFjaG1lbnRzIl0sYix4LnZhbHVlLl9hdHRhY2htZW50cyksZC5teS5yZWRyYXcoKX19LmRlYm91bmNlKDIwKSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZSgpfSl9ZnVuY3Rpb24gZSgpe2MucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIil9fX19fSl9fX0sTm9kZVVwZGF0ZWQ6ZnVuY3Rpb24oeCxhLGIsYyl7dGhpcy5teS5wYXJlbnQoKS5IaXN0b3J5LmVtaXQoeCxhLGIsY3x8bnVsbCl9LEVkaXRvckludm9rZWQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9YS5teS5yb290KCksZD1jLmhlaWdodCgpLGU9Yy5wYXJlbnRzKCIjanNlZGl0b3IiKS5lcSgwKSxmPWVbMF0uc2Nyb2xsVG9wLGc9ZS5vZmZzZXQoKS50b3AsaD1jLm9mZnNldCgpLnRvcC1nLGk9Yi5QaG8oIm15Iikucm9vdCgpLmhlaWdodCgpLTYyO2g+aS1kLTMwJiZlLmFuaW1hdGUoe3Njcm9sbFRvcDooaCtkK2YtaSs0MCkuY2xhbXAoMCwxZTYpKyJweCJ9LDEwMCl9fSxTYXZlQWxsOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPU9iamVjdC5jbG9uZShjdy5saWIuZHJ5KGMuZG9jKSwhMCksZT0kLkRlZmVycmVkKCksZj1iLmxhbmcsZz0iUE9TVCIsaD1bYy5wYXRoWzBdXSxpPXsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQuX2lkP2MuaXNOZXd8fCFkLl9yZXZ8fC9cLy8udGVzdChkLl9pZCl8fChnPSJQVVQiLGgucHVzaChkLl9pZCkpOmRlbGV0ZSBkLl9pZCxudWxsPT1kLl9pZCYmZGVsZXRlIGQuX3JldixqKGQpLmZhaWwoZnVuY3Rpb24oZyxoLGkpezQwOSE9Zz8oYXx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRS5hc3NpZ24oZysiOiAiK2woaS5yZWFzb258fGgpKSwiZXJyb3IiKSxlLnJlamVjdChnLGgsaSkpOmIuUmVxKHttZXRob2Q6IkdFVCIsdXJsOltjLnBhdGhbMF0sZC5faWRdfSkudGhlbihmdW5jdGlvbihnKXskLm15Lm1vZGFsKHttYW5pZmVzdDpiLlBobygiQ29uZmlybSIpLHdpZHRoOjUwMCxkYXRhOnt0ZXh0OmYuTVNHX0NPTkZMSUNULmFzc2lnbihtKGQuX2lkLDQwKSxtKGQuX3JldiwyNSksbShnLl9yZXYsMjUpKSx5ZXM6Zi5CVE5fQ09ORkxJQ1RfWUVTLG5vOmYuQlROX0NPTkZMSUNUX05PLGNhbmNlbDoiIix1c2VCdXR0b25zOiEwfSxjc3M6InhncmF5IGxoMTcwIHAyMCBwYjI1Iixlc2M6ITEsZW50ZXI6ITEsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oZCl7InllcyI9PWQuY21kPyhjLmRvYy5fcmV2PWcuX3JldixiLlNhdmVBbGwoeCxhKS50aGVuKGZ1bmN0aW9uKHgpe28oITApfSkuZmFpbChmdW5jdGlvbih4LGEsYil7ZS5yZWplY3QoeCxhLGIpfSkpOmsoKX0pLmZhaWwoayl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtjb25zb2xlLmxvZyh4LGIsYyksYXx8Y3cubGliLm5vdGUoZi5NU0dfQ09ORkxJQ1RfTE9BREZBSUwpLGUucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIGJ5IHVzZXIiLGYuTVNHX0NPTkZMSUNUX0xPQURGQUlMKX0pfSksZS5wcm9taXNlKCk7ZnVuY3Rpb24gaihhKXtyZXR1cm4gYi5SZXEoe3VybDpoLG1ldGhvZDpnLGhlYWRlcnM6aSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShhKSxkYXRhVHlwZToiUFVUIj09Zz8idGV4dCI6Impzb24ifSkudGhlbihmdW5jdGlvbihiKXt2YXIgZD1iO3RyeXtkPU9iamVjdC5pc1N0cmluZyhiKT9KU09OLnBhcnNlKGIpOmJ9Y2F0Y2goeCl7fWlmKHgpcmV0dXJuIG4oKSxlLnJlc29sdmUoJC5leHRlbmQoYSx7X2lkOmQuaWQsX3JldjpkLnJldn0pKTtjLmRvYy5fY29uZmxpY3RzJiZjLmRvYy5fY29uZmxpY3RzLmluZGV4T2YoYy5kb2MuX3Jldik+LTEmJmMucmV2P28uZGVib3VuY2UoMjApKGQucmV2KTpvLmRlYm91bmNlKDIwKSghMCl9KX1mdW5jdGlvbiBrKCl7YXx8Y3cubGliLm5vdGUoZi5NU0dfQ09ORkxJQ1RfQ0FOQ0VMTEVEKSxlLnJlamVjdCg5OTksIkNhbmNlbGxlZCBieSB1c2VyIixmLk1TR19DT05GTElDVF9DQU5DRUxMRUQpfWZ1bmN0aW9uIGwoeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX1mdW5jdGlvbiBtKHgsYSl7cmV0dXJuIGwoKHgrIiIpLnRydW5jYXRlKGF8fDE1LCJyaWdodCIsIuKApiIpKX1mdW5jdGlvbiBuKCl7JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpjLnBhdGhbMF0sY21kOiJ3cml0ZSIsZG9jczpbYy5kb2MuX2lkXX0pLGMucGF0aFswXT09Yi5QaG8oIlJlcGxpY2F0b3JEQiIpJiZjLmRvYy5jcmVhdGVfdGFyZ2V0PygvKGxvY2FsaG9zdHwxMjdcLjBcLjBcLjEpLy50ZXN0KGMuZG9jLnRhcmdldCsiIil8fC0xPT0oYy5kb2MudGFyZ2V0KyIiKS5pbmRleE9mKCIvIikpJiZmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIsWyJfcmVwbGljYXRvciIsKGMuZG9jLnRhcmdldCsiIikuc3BsaXQoIi8iKS5sYXN0KCldLmNvbXBhY3QoInRydWUiKSl9LmRlYm91bmNlKDMwMCkoKTokLm15LnJhZGlvKCJkYmxpc3QiLFtjLnBhdGhbMF1dKSxhfHxjdy5saWIubm90ZShmLk1TR19TQVZFLmFzc2lnbihtKGMuZG9jLl9pZCksbShjLnJldnx8Yy5kb2MuX3Jldnx8IiIpKSwib2siKX1mdW5jdGlvbiBvKHgpeyEwPT09eD8oYy5wYXRoWzFdPWMuZG9jLl9pZCxjLnBhdGgubGVuZ3RoPTIsYy5yZXY9IiIsYy5pc05ldyYmKGMuaXNOZXc9ITEsJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOmMudGFiaWQscGF0aDpjLnBhdGgsdGl0bGU6Yi50aXRsZSgpfSkpLGIuR2V0RG9jKCEwLCEwKS50aGVuKGZ1bmN0aW9uKCl7bigpLGUucmVzb2x2ZShjLmRvYyl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtyZXR1cm4gYXx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRUxPQUQuYXNzaWduKHgrIjogIitsKGIpKSwiZXJyb3IiKSxlLnJlamVjdCh4LGYuRVJSX1NBVkVMT0FELmFzc2lnbihiKSxjKX0pKTpjLnJldiYmInN0cmluZyI9PXR5cGVvZiB4JiYoYy5yZXY9eCxjLnBhdGhbYy5wYXRoLmxlbmd0aC0xXT0iXyIreCxiLm15LnJlY2FsYygiI3N0YXRlLXByb3h5IiksbigpLGUucmVzb2x2ZShjLmRvYykpfX0sR2V0RG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYyxkPXRoaXMsZT1kLmRhdGEsZj17Y29uZmxpY3RzOiEwLGxvY2FsX3NlcTohMCxyZXZzX2luZm86ITAsYXR0X2VuY29kaW5nX2luZm86ITB9O2lmKGQuQnVzeS5kZWJvdW5jZSgyMCkoITApLGUuaXNOZXcpe3ZhciBnPSQuRGVmZXJyZWQoKTtyZXR1cm4gZC5SZXEoWyJfdXVpZHMiLHtjb3VudDo1fV0pLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2MuX2lkPWUuZG9jLl9pZHx8KHgudXVpZHN8fFsiIl0pLnNhbXBsZSgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZS5kb2MuX2lkfHwoZS5kb2MuX2lkPU51bWJlci5yYW5kb20oNzgzNjQxNjQwOTYsMjgyMTEwOTkwNzQ1NSkudG9TdHJpbmcoMzYpKSxkLkRvYz1be2RibmFtZTplLnBhdGhbMF0scmV2aXNpb246IiIsYmFzZXVybDpkLlBobygiQmFzZSIpLGRvYzpkLmRhdGEuZG9jfV0sZC5CdXN5LmRlYm91bmNlKDUwKSghMSksZy5yZXNvbHZlKCl9KSxnLnByb21pc2UoKX1yZXR1cm4gZS5wYXRoLmxlbmd0aD4oIl9kZXNpZ24iPT1lLnBhdGhbMV0/MzoyKT8oYz1lLnBhdGgubGFzdCgpLnJlcGxhY2UoL15cRCsvLCIiKSxiPWUucGF0aC50bygtMSkpOmI9ZS5wYXRoLnNsaWNlKDApLGUuYXR0cyYmYi5wdXNoKHthdHRhY2htZW50czohMCxhdHRfZW5jb2RpbmdfaW5mbzohMH0pLGc9JC5EZWZlcnJlZCgpLGM/ZC5SZXEoYi5jb25jYXQoWyQuZXh0ZW5kKCEwLHt9LGYse3JldjpjfSldKSkudGhlbihmdW5jdGlvbih4KXtlLmRvYz1qKHgpLGQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2M9JC5leHRlbmQoZS5kb2MsT2JqZWN0LnNlbGVjdCh4LFsiX2NvbmZsaWN0cyIsIl9yZXZzX2luZm8iLCJfbG9jYWxfc2VxIl0pKSxrKGUuZG9jKX0pLmZhaWwoZnVuY3Rpb24oKXtlLnJldnM9W2NdLGUuY29uZmlsY3RzPVtdfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zy5yZXNvbHZlKCl9KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2cucmVqZWN0KHgsYSxiKX0pOmQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7aSh4KSxnLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oKXtiPVtiWzBdLCJfYWxsX2RvY3MiLHtrZXk6ZS5wYXRoLmZyb20oMSkuam9pbigiLyIpLGluY2x1ZGVfZG9jczohMH1dLGQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7eC5yb3dzJiZ4LnJvd3NbMF0mJngucm93c1swXS5kb2M/KGkoeC5yb3dzWzBdLmRvYyksZy5yZXNvbHZlKCkpOmcucmVqZWN0KDQwNCwiTm90IGZvdW5kIil9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtnLnJlamVjdCh4LGEsYil9KX0pLGcuYWx3YXlzKGZ1bmN0aW9uKCl7aCgpLGQuQnVzeS5kZWJvdW5jZSg1MCkoITEpfSksZztmdW5jdGlvbiBoKCl7YSYmZC5SZXZzTGlzdCgiI2FwcC1yZXYiKSxkLkRvYz1be2RibmFtZTplLnBhdGhbMF0scmV2aXNpb246ZS5yZXYsYmFzZXVybDpkLlBobygiQmFzZSIpLGRvYzpkLmRhdGEuZG9jfV0sZC5IaXN0b3J5LmNsZWFyKCEwKSxkLm15LnRyaWdnZXIoIiNzdGF0ZS1wcm94eSIsInJlc2V0dGFiaGFzaC5teSIpLHgmJmQubXkucmVkcmF3KCl9ZnVuY3Rpb24gaSh4KXtlLmRvYz1qKHgpLGsoZS5kb2MpfWZ1bmN0aW9uIGooeCl7cmV0dXJuICQuZXh0ZW5kKHguX2F0dGFjaG1lbnRzP3tfaWQ6IiIsX3JldjoiIixfYXR0YWNobWVudHM6e319OntfaWQ6IiIsX3JldjoiIn0seCl9ZnVuY3Rpb24gayh4KXtPYmplY3QuaXNBcnJheSh4Ll9yZXZzX2luZm8pJiYoeC5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuImF2YWlsYWJsZSI9PXguc3RhdHVzfSkpLGUuY29uZmxpY3RzPXguX2NvbmZsaWN0c3x8W10sZS5yZXZzPSh4Ll9yZXZzX2luZm98fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fSxHZXRBdHRzOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YSxkPVtdO3JldHVybiBjLnBhdGgubGVuZ3RoPigiX2Rlc2lnbiI9PWMucGF0aFsxXT8zOjIpPyhhPWMucGF0aC5sYXN0KCkucmVwbGFjZSgvXlxEKy8sIiIpLGQ9Yy5wYXRoLnRvKC0xKSk6ZD1jLnBhdGgsYSYmZC5wdXNoKHtyZXY6YX0pLGQucHVzaCh7YXR0YWNobWVudHM6ITAsYXR0X2VuY29kaW5nX2luZm86ITB9KSx4fHxiLkJ1c3kuZGVib3VuY2UoMTApKCEwKSxjLmF0dHM9ITAsYi5SZXEoZCkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4geD9hOihhLl9hdHRhY2htZW50cyYmKGMuZG9jLl9hdHRhY2htZW50cz1hLl9hdHRhY2htZW50cyksYi5Eb2M9W3tkYm5hbWU6Yy5wYXRoWzBdLHJldmlzaW9uOmMucmV2LGJhc2V1cmw6Yi5QaG8oIkJhc2UiKSxkb2M6Yi5kYXRhLmRvY31dLGIubXkudHJpZ2dlcigiI3N0YXRlLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IiksYi5teS5yZWRyYXcoKSxhKX0pLmZhaWwoZnVuY3Rpb24oKXt9KS5hbHdheXMoZnVuY3Rpb24oKXt4fHxiLkJ1c3koITEpfS5kZWJvdW5jZSgyMCkpfSxEZWxEb2M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9T2JqZWN0LmNsb25lKGN3LmxpYi5kcnkoYS5kb2MpLCEwKSxjPWEucmV2c1swXSYmYS5yZXZzWzBdPT1hLmRvYy5fcmV2LGQ9LTEhPWEuY29uZmxpY3RzLmluZGV4T2YoYS5kb2MuX3Jldnx8IiIpLGU9eC5sYW5nLGY9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX0sZz1mdW5jdGlvbih4LGEpe3JldHVybiBmKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9LGg9JC5EZWZlcnJlZCgpLGk9W2EucGF0aFswXSxiLl9pZCx7cmV2OmIuX3Jldn1dLGo9JzxkaXYgY2xhc3M9Im1iMTAiPnsxfTwvZGl2Pic7cmV0dXJuICQubXkubW9kYWwoe3dpZHRoOjM1MCxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSx4LlBobygiQ29uZmlybSIpLHt1aTp7J2lucHV0W25hbWU9InJldGFpbiJdJzoicmV0YWluIn0sc3R5bGU6eyIgbGFiZWwiOiJtYXJnaW46MDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOmluaGVyaXQ7In19KSxkYXRhOntyZXRhaW46Im5vIix0ZXh0OltkPyIiOic8ZGl2IGNsYXNzPSJmczEzMCByZWQgbWI1Ij4nK2UuVFhUX0RFTF9USVRMRSsiPC9kaXY+IixkPyc8ZGl2IGNsYXNzPSJmczEzMCBvcmFuZ2UgbWI1Ij4nK2UuVFhUX0RFTF9USVRMRV9DT05GTElDVCsiPC9kaXY+IjoiIixqLmFzc2lnbihlLlRYVF9ERUxfV0FSTi5hc3NpZ24oZyhiLl9pZCwyNSksZyhhLnBhdGhbMF0sMjUpKSksai5hc3NpZ24oWyc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9Im5vIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfQUxMKyI8L2xhYmVsPiIsJzxsYWJlbCBjbGFzcz0ieGdyYXkiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmV0YWluIiB2YWx1ZT0icmV0YWluIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfUkVUQUlOKyI8L2xhYmVsPiJdLmNvbmNhdCh4LlBobygiQ291Y2giKS52ZXI+PSIwMDIuMDAzLiI/Wyc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9InB1cmdlIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfUFVSR0UrIjwvbGFiZWw+Il06W10pLmpvaW4oIiIpKSxhLmNvbmZsaWN0cy5sZW5ndGgmJmM/ai5hc3NpZ24oZS5UWFRfREVMX05PREVMKToiIixkP2ouYXNzaWduKGUuVFhUX0RFTF9DT05GTElDVCk6IiJdLmNvbXBhY3QoITApLmpvaW4oIiIpLHllc2NzczpkPyJvcmFuZ2UiOiJyZWQiLHllczplLkJUTl9ERUxfU1RBUlQsbm86ZS5CVE5fQ0FOQ0VMLGNhbmNlbDoiIn0sY3NzOiJsaDE2MCB4Z3JheSBwMjAgcGIyNSJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKCJ5ZXMiIT14LmNtZClyZXR1cm4gaC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKTtrKHgucmV0YWluKyIiKX0pLmZhaWwoZnVuY3Rpb24oKXtoLnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpfSksaC5wcm9taXNlKCk7ZnVuY3Rpb24gayhjKXt2YXIgZCxqLGssbT17bm86e3VybDppLG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifX0scmV0YWluOnt1cmw6W2EucGF0aFswXSwiX2J1bGtfZG9jcyJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoe2RvY3M6W09iamVjdC5tZXJnZSh7X2RlbGV0ZWQ6ITB9LGIpXX0pfSxwdXJnZTp7dXJsOlthLnBhdGhbMF0sIl9wdXJnZSJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoKGQ9Yi5faWQsaj1iLl9yZXYsaz17fSxrW2RdPVtqXSxrKSl9fVtjXTtyZXR1cm4geC5SZXEobSkudGhlbihmdW5jdGlvbihkKXtjdy5saWIubm90ZShlLk1TR19ERUxfT0suYXNzaWduKGcoYi5faWQpLGcoYS5wYXRoWzBdKSksIm9rIik7dHJ5eyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6YS5wYXRoWzBdLGNtZDoiZGVsZXRlIixkb2NzOltiLl9pZF19KSwkLm15LnJhZGlvKCJkYmxpc3QiLFthLnBhdGhbMF1dKX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX0icHVyZ2UiIT1jJiZhLmNvbmZsaWN0cy5sZW5ndGg/bCghMCk6KGZ1bmN0aW9uKCl7eC5teS5yb290KCkudHJpZ2dlcigidGFiY2xvc2UiLHt0YWJpZDphLnRhYmlkLGVuZm9yY2U6ITB9KX0uZGVib3VuY2UoMTAwKSgpLGgucmVzb2x2ZShkKSl9KS5mYWlsKGZ1bmN0aW9uKHgsYyxkKXtyZXR1cm4gY3cubGliLm5vdGUoZS5NU0dfREVMX0ZBSUwuYXNzaWduKGcoYi5faWQpLHgsZihjKSksImVycm9yIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLGEucGF0aFswXSksaC5yZWplY3QoeCxjLGQpfSl9ZnVuY3Rpb24gbChjKXthLnBhdGhbMV09Yi5faWQsYS5wYXRoLmxlbmd0aD0yO3ZhciBkPWEucmV2O2EucmV2PSIiLGQmJiQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDphLnRhYmlkLHBhdGg6YS5wYXRoLHRpdGxlOngudGl0bGUoKX0pLHguR2V0RG9jKCEwKS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZS5NU0dfREVMX1JFTE9BRCwiIiw0ZTMpLHguUmV2c0xpc3QoIiNhcHAtcmV2IiksaC5yZXNvbHZlKGEuZG9jKX0pLmZhaWwoZnVuY3Rpb24oYixjLGQpe2N3LmxpYi5ub3RlKGUuTVNHX0RFTF9SRUxPQURfRkFJTC5hc3NpZ24oZyhhLmRvYy5faWQpLGIsZihjKSksImVycm9yIiksaC5yZWplY3QoYixjLGQpLHgubXkudHJpZ2dlcigiI2J0bi1kZWwtZG9jIiwidGFiY2xvc2UiLHt0YWJpZDphLnRhYmlkLGVuZm9yY2U6ITB9KX0pfX0sUmV2c0xpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9W3tpZDoiIix0ZXh0OmF8fGIubGFuZy5UWFRfUkVWfV07ZnVuY3Rpb24gZSh4KXt2YXIgYT14LnRleHQucmVwbGFjZSgiLSIsIuKAkyIpLnRydW5jYXRlKDE3LCJtaWRkbGUiLCc8c3BhbiBjbGFzcz0ib3JhbmdlIj7igKY8L3NwYW4+Jyk7cmV0dXJuIngiPT1hWzBdJiYoYT0nPHNwYW4gY2xhc3M9InJlZDEgYm9sZGVyIj7igKA8L3NwYW4+4oCJJythLmZyb20oMSkpLCI8bm9icj4iK2ErIjwvbm9icj4ifWMuY29uZmxpY3RzLmZvckVhY2goZnVuY3Rpb24oeCl7ZC5wdXNoKHtpZDp4LHRleHQ6IngiK3h9KX0pLGMucmV2cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2QucHVzaCh7aWQ6eCx0ZXh0Onh9KX0pLGIuc2VsZWN0MihiLm15LmZpbmQoeCkse2RhdGE6ZCxmb3JtYXRSZXN1bHQ6ZSxmb3JtYXRTZWxlY3Rpb246ZSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDozfSl9LEFwcGx5RWRzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEsJC5EZWZlcnJlZCgpKSxiPXgubXkuZmluZCgiI2pzZWRpdG9yIGJ1dHRvbiNidG4tY2hhbmdlOnZpc2libGUiKSxjPWIubGVuZ3RoO3JldHVybiBjP3gubXkubW9kYWwoIiNidG4tZG9jLXNhdmUiLHttYW5pZmVzdDp4LlBobygiQ29uZmlybSIpLGRhdGE6e3RleHQ6eC5sYW5nLk1TR19FRFMseWVzOngubGFuZy5CVE5fRURTX1lFUyxubzp4LmxhbmcuQlROX0VEU19OTyx1c2VCdXR0b25zOiEwfSx3aWR0aDo0NTAsejoxOTk1LHNjcmVlbjohMCxnbG9iYWw6ITAsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oeCl7aWYoInllcyIhPXguY21kKXJldHVybiBhLnJlc29sdmUoKSx2b2lkIDA7Yi5lYWNoKGZ1bmN0aW9uKHgsYil7JChiKS50cmlnZ2VyKCJjbGljayIpLHg9PWMtMSYmYS5yZXNvbHZlLmRlbGF5KDQwMCl9LmxhenkoMjApKX0pLmZhaWwoZnVuY3Rpb24oKXthLnJlamVjdCgpfSk6YS5yZXNvbHZlKCksYS5wcm9taXNlKCl9LE5ld0RvY1RndDp7aWQ6ImN3LlBob3Rvbi4kZG9jLk5ld0RvY1RndCIsaW5oZXJpdDpbIlBobyJdLGRhdGE6e30sbmV3X2RiOiIiLG5ld19pZDoiIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5uZXdfZGI9Yi5wYXRoWzBdLGEubmV3X2lkPWIuZG9jLl9pZCx4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpfSx1aTp7IiN0Z3QtZGIiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5zZWxlY3QyKHtkYXRhOk9iamVjdC5rZXlzKGEuUGhvKCJBbGwiKSkuc29ydCgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITF9KX0sYmluZDoidGhpcy5uZXdfZGIifSwiI3RndC1pZCI6e2JpbmQ6InRoaXMubmV3X2lkIixjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMubGFuZztyZXR1cm4gYT9hPT14LmRvYy5faWQmJnRoaXMubmV3X2RiPT14LnBhdGhbMF0/Yi5FUlJfSURfRVE6YSYmIS9eX2Rlc2lnblwvLiskLy50ZXN0KGEpJiYiXyI9PWFbMF0/Yi5FUlJfSURfVVNDOnZvaWQgMDpiLkVSUl9JRF9SRVF9LHdhdGNoOlsiI3RndC1kYiJdfSwiI2J0bi1hcHBseSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5wYXRoWzBdPXRoaXMubmV3X2RiLHguZG9jLl9pZD10aGlzLm5ld19pZCx0aGlzLm15LmNvbW1pdCgpKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiN0Z3QtZGIiLCIjdGd0LWlkIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTUwIGxoMTQwIGZ3NTAwIG1iOCI+e1RYVF9USVRMRX08L2Rpdj4nLHtyb3c6IjQwMHB4IixsYWJlbDoiMTAwcHgiLHJvd0NzczoibXktcm93IHBiOCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAifSxbIntMQkxfREJ9IiwiaW5wI3RndC1kYi53MTAwcC5mczExNSJdLFsie0xCTF9JRH0iLCJpbnAjdGd0LWlkLncxMDBwLmZzMTAwIix7cGxjOiJOb24tZW1wdHkgc3RyaW5nIn0sIm1zZyJdLCc8ZGl2IGNsYXNzPSJwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLWFwcGx5IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9BUFBMWX08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxsYW5nOntlbjp7VFhUX1RJVExFOiJOZXcgZG9jIGxvY2F0aW9uIixMQkxfREI6IlRhcmdldCBEQiIsTEJMX0lEOiJOZXcgZG9jIF9pZCIsQlROX0FQUExZOiJTYXZlIG5ldyBkb2MiLEJUTl9DQU5DRUw6IkNhbmNlbCIsRVJSX0lEX0VROiJOZXcgX2lkIG11c3QgYmUgZGlmZmVyZW50LCBvciBjaGFuZ2UgREIiLEVSUl9JRF9SRVE6Ik5vbi1lbXB0eSBzdHJpbmcgcmVxdWlyZWQiLEVSUl9JRF9VU0M6IkRvYyBfaWQgY2Fu4oCZdCBzdGFydCB3aXRoIF8gc3ltYm9sIn19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjIycHg7In19fSwkZmlsZTp7aWQ6ImN3LlBob3Rvbi4kZmlsZSIsbGFuZzp7fSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKHt0ZXh0OnRoaXMuZGF0YS50ZXh0LnJlcGxhY2UoL1xyXG4vZywiXG4iKX0pfSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLnBhdGgsYz1hLmRvYy5faWQ7cmV0dXJuW3gudHJ1bmMoIl9kZXNpZ24vIj09Yy50byg4KT8iX2QiK2MuZnJvbSg3KToiX3VzZXJzIj09YlswXT9jLmZyb20oMTcpOmMsOCksIuKAiS/igIkiLGEuZm5hbWVdLmpvaW4oIiIpfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKGEpe3ZhciBiPXhbMV0sYz14WzJdO3JldHVybiB4Lmxlbmd0aD4yJiYiXyIhPWNbMF0mJigiXyIhPWJbMF18fC9eX2Rlc2lnblwvLy50ZXN0KGIpKT97dHlwZToiZmlsZSIsdGl0bGU6W3RoaXMudHJ1bmMoYiw4KSx4LnNsaWNlKDIpLmpvaW4oIi8iKV0uam9pbigi4oCJL+KAiSIpLGFwcERhdGE6e2ZuYW1lOnguc2xpY2UoMikuam9pbigiLyIpLGRvYzp7X2lkOmJ9fX06dm9pZCAwfX0sc2VhcmNoUmU6bnVsbCxkYXRhOntwYXRoOltdLHNlYXJjaDoiIixmbmFtZToiIixmbmFtZTA6IiIsdGV4dDoiIixzcmM6IiIsbWltZToidGV4dC9wbGFpbiIsZG9jOntfaWQ6IiJ9fSxwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIGIuZm5hbWUwPWIuZm5hbWUsYS5HZXRGaWxlKCkudGhlbihmdW5jdGlvbigpe3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSl9LHVpOnsiI2FwcC10aXRsZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5wMnUsYj0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKGEoeC5wYXRoWzBdKSx0aGlzLnRydW5jKHgucGF0aFswXSwxNSkuZXNjYXBlSFRNTCgpLHgucGF0aFswXS5lc2NhcGVIVE1MKCkpLGM9eC5kb2MuX2lkfHx4LnBhdGhbMV0rKCJfZGVzaWduIj09eC5wYXRoWzFdPyIvIit4LnBhdGhbMl06IiIpLGQ9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKFsiIyIsYSh4LnBhdGhbMF0pLGEoYyldLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCksYy5lc2NhcGVIVE1MKCksYy5sZW5ndGg+MTU/Yy5lc2NhcGVIVE1MKCk6IiIpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTQwIGxoMTMwIHhncmF5IG84MCI+JywnPHNwYW4gY2xhc3M9Im84MCI+ezJ9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57MX08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnszfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGQsYix4LmZuYW1lLmVzY2FwZUhUTUwoKSl9LHdhdGNoOlsiI2FwcC1yZXYiLCIjdHh0ZWRpdG9yIl19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiBudWxsIT1hJiYoeC5zZWFyY2g9YSkseC5zZWFyY2gubGVuZ3RoPDI/Yi5zZWFyY2hSZT1udWxsOmIuc2VhcmNoUmU9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZSh4LnNlYXJjaCkrIikiLCJpIikseC5zZWFyY2h9LGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiNmb3VuZCI6e2RlbGF5OjEzMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5vbigiY2xpY2subXkiLCIucHNldWRvbGluayIsZnVuY3Rpb24oKXt2YXIgeD0rJCh0aGlzKS50ZXh0KCksYj1hLm15LmZpbmQoIiN0eHRlZGl0b3IiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtiLnNjcm9sbEludG9WaWV3KHtsaW5lOngsY2hhcjoxfSw0OCk7dmFyIGM9ZnVuY3Rpb24oKXtiLmFkZExpbmVDbGFzcyh4LTEsImJhY2tncm91bmQiLCJiZy15ZWxsb3c0IiksZnVuY3Rpb24oKXtiLnJlbW92ZUxpbmVDbGFzcyh4LTEsImJhY2tncm91bmQiLCJiZy15ZWxsb3c0Iil9LmRlYm91bmNlKDEwMCkoKX07Yy5kZWJvdW5jZSgxMDApKCksYy5kZWJvdW5jZSgzMDApKCl9KX0sYmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLnNlYXJjaFJlLGI9W107cmV0dXJuIGEmJih4LnRleHQubGluZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHgsYyl7Yi5sZW5ndGg8MTAwJiZhLnRlc3QoeCkmJmIucHVzaChjKzEpfSksYi5sZW5ndGgpP1snPGRpdiBjbGFzcz0iYnIyIHllbGxvdy0xIGJnLXllbGxvdzQgcGw3IHByNyBwdDIgcGIyIGZzOTAgbGgxMzAiPicsIiBGb3VuZCBAICIsYi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuJzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiI+Jyt4KyI8L3NwYW4+In0pLmpvaW4oIiwgIiksIjwvZGl2PiJdLmpvaW4oIiIpOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zZWFyY2hSZX19LHdhdGNoOiIjYXBwLXNlYXJjaCJ9LCIjdHh0ZWRpdG9yIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Yi5taW1lfHwidGV4dC9wbGFpbiIsbGluZU51bWJlcnM6ITAsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOihudWxsLCJuYXRpdmUiKSxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLGluZGVudFdpdGhUYWJzOiExLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMSxleHRyYUtleXM6eyJDdHJsLVMiOmZ1bmN0aW9uKCl7YS5TYXZlRmlsZSgpfSwiQ21kLVMiOmZ1bmN0aW9uKCl7YS5TYXZlRmlsZSgpfSwiQ3RybC1GIjpjLCJDbWQtRiI6Y30sc3R5bGVTZWxlY3RlZFRleHQ6ITAsaGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlczp7bWluQ2hhcnM6M319KTt4WzBdLm5leHRTaWJsaW5nLkNvZGVNaXJyb3I7ZnVuY3Rpb24gYygpe3ZhciBjPXhbMF0ubmV4dFNpYmxpbmcuQ29kZU1pcnJvci5nZXRTZWxlY3Rpb24oKTtjLmxlbmd0aD4yJiYoYi5zZWFyY2g9Yi5zZWFyY2g9PWM/IiI6YyxhLm15LnJlY2FsYygiI2FwcC1zZWFyY2giKSxhLm15LmNoZWNrKCIjYXBwLXNlYXJjaCIpKX19LGJpbmQ6InRleHQifSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5HZXRGaWxlKCl9fSwiI2J0bi1maWxlLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5jbWRTYXZlKCl9fX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI2VkY29udGFpbmVyIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dGhpcy5TYXZlRmlsZSgpfSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzE1NSBmczk1Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBzcGVsbGNoZWNrPSJmYWxzZSIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yOCIgdGl0bGU9IntQTENfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGlkPSJhcHAtdGl0bGUiIGNsYXNzPSJkaWIgdmF0IGVsbCBtcjIwIG53Ij48L2Rpdj48ZGl2IGNsYXNzPSJudyBkaWIgdmF0Ij48YnV0dG9uIGlkPSJidG4tZmlsZS1zYXZlIiBjbGFzcz0iZ3JlZW4gbXIyIj57QlROX1NBVkV9PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgcGwyMCBwcjIwIHB0MTYgcGIxNiI+PGRpdiBpZCA9ICJlZGNvbnRhaW5lciIgY2xhc3M9InBhbmVsaGVpZ2h0LTMyIGJhcyBvaCBicjIiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48dGV4dGFyZWEgaWQ9InR4dGVkaXRvciIgY2xhc3M9IncxMDBwIHBhbmVsaGVpZ2h0LTMyIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgaWQ9ImZvdW5kIiBjbGFzcz0iaGlkZSB3MTQ1IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDorMzt0b3A6MjFweDtyaWdodDoyNHB4OyI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdGUtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHN0eWxlOnsiIC5Db2RlTWlycm9yIjoiZm9udC1zaXplOjg3JSFpbXBvcnRhbnQ7aGVpZ2h0OjEwMCU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6ZnVuY3Rpb24oeCl7cmV0dXJuIm1pbi1oZWlnaHQ6IisodGhpcy5QaG8oIlBhbmVsSGVpZ2h0IiktMzQpKyJweDsifSwiIC5teS1tb2RhbC1mb3JtIjp7IiAuQ29kZU1pcnJvciAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDpjYWxjKDE4ICogMTdweCArIDZweCk7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIi5lZC1lcnJvciAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgLkNvZGVNaXJyb3IiOiJtaW4taGVpZ2h0OjE1MHB4OyBoZWlnaHQ6YXV0bzsiLCIgLmJ1dHRvbnMgYnV0dG9uIjoibWFyZ2luLXJpZ2h0OiAycHg7cGFkZGluZzogMC40ZW0gMC43ZW0gMC40ZW0gMC43ZW07Zm9udC1zaXplOiA5MCU7In0sIiAjYXBwLXRpdGxlIjoibWF4LXdpZHRoOmNhbGMoMTAwJSAtIDMzMHB4KTsifSxHZXRGaWxlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXt1cmw6YS5wYXRoLnNsaWNlKDApLGRhdGFUeXBlOiJ0ZXh0Iix0aW1lb3V0OjNlNCxjYWhjZTohMSxoZWFkZXJzOntBY2NlcHQ6IiovKiJ9fTtyZXR1cm4geC5CdXN5LmRlYm91bmNlKDEwKSghMCkseC5SZXEoYikudGhlbihmdW5jdGlvbihiLGMpe2Euc3JjPWEudGV4dD1iLGEubWltZT1jLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSsiIix4Lm15LnRyaWdnZXIoIiNlZGNvbnRhaW5lciIsInJlc2V0dGFiaGFzaC5teSIpLHgubXkucmVkcmF3KCl9KS5mYWlsKGZ1bmN0aW9uKCl7fSkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5CdXN5KCExKX0uZGVib3VuY2UoMTUpKX0sU2F2ZUZpbGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWIucGF0aC50bygiX2Rlc2lnbiI9PWIucGF0aFsxXT8zOjIpLGQ9e3VybDpjLnNsaWNlKDApLG1ldGhvZDoicHV0IixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUiLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGF0YToiIn0sZT0kLkRlZmVycmVkKCksZj1hLmxhbmcsZz0iIjtyZXR1cm4gYS5CdXN5LmRlYm91bmNlKDEwKSghMCksYS5SZXEoYykudGhlbihmdW5jdGlvbih4KXt4Ll9hdHRhY2htZW50c3x8KHguX2F0dGFjaG1lbnRzPXt9KSx4Ll9hdHRhY2htZW50c1tiLmZuYW1lXT17Y29udGVudF90eXBlOmIubWltZSxkYXRhOmN3LmxpYi5iYXNlNjQoYi50ZXh0KX0sZz14Ll9yZXYsZC5kYXRhPUpTT04uc3RyaW5naWZ5KHgpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBhLlJlcShkKX0pLnRoZW4oZnVuY3Rpb24oKXt4fHxjdy5saWIubm90ZShmLk1TR19TQVZFLmFzc2lnbihpKGIuZm5hbWUsNDApLGkoYi5kb2MuX2lkLDIwKSksIm9rIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpiLnBhdGhbMF0sY21kOiJ3cml0ZSIsZG9jczpbYi5kb2MuX2lkXX0pLCQubXkucmFkaW8oImRibGlzdCIsW2IucGF0aFswXV0pLCQubXkucmFkaW8oImZpbGV1cGRhdGUiLHtkYjpiLnBhdGhbMF0sZG9jOmIuZG9jLl9pZCxyZXY6ZyxmaWxlOmIuZm5hbWV9KSxhLm15LnRyaWdnZXIoIiNlZGNvbnRhaW5lciIsInJlc2V0dGFiaGFzaC5teSIpLGUucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbihhLGMsZCl7eHx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRS5hc3NpZ24oaShiLmZuYW1lLDQwKSxhKyI6ICIraChkLnJlYXNvbnx8YykpLCJlcnJvciIpLGUucmVqZWN0KGEsYyxkKX0pLmFsd2F5cyhmdW5jdGlvbigpe2EuQnVzeSghMSl9LmRlYm91bmNlKDE1KSksZS5wcm9taXNlKCk7ZnVuY3Rpb24gaCh4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfWZ1bmN0aW9uIGkoeCxhKXtyZXR1cm4gaCgoeCsiIikudHJ1bmNhdGUoYXx8MTUsInJpZ2h0Iiwi4oCmIikpfX19LCRjb25maWc6e2lkOiJjdy5QaG90b24uJGNvbmZpZyIsbGFuZzp7fSxwYXJhbXM6e3Jlc3R5bGU6MjUsc3RyaWN0OiEwfSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKCh0aGlzLkRvY1swXXx8e30pLmRvY3x8e30pfSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJDb3VjaERCIGNvbmZpZyJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGF8fDEhPXgubGVuZ3RofHwiX2NvbmZpZyIhPXhbMF0/bnVsbDp7dGl0bGU6IkNvdWNoREIgY29uZmlnIn19LGRhdGE6e3BhdGg6W10sbm9kZToiIixkb2M6e30sc3RhbXA6MH0sRG9jOltdLE9sZDp7fSxOb2RlczpbXSxNZW1iZXJzQ2hlY2tlZDohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3guYWRkQ2xhc3MoIm53IiksYS5IVE1MLkhpc3RvcnlSb3c9YS5QaG8oIkNvbXBpbGVUIikoYS5IVE1MLkhpc3RvcnlSb3cpLGEuSGlzdG9yeS5pbml0KGEseCk7dmFyIGI9YS5sYW5nLkhFTFA7cmV0dXJuICQuZXh0ZW5kKGIuY2h0dHBkX2F1dGgsT2JqZWN0LnJlamVjdChiLmNvdWNoX2h0dHBkX2F1dGgsWyJfXyIsIiJdKSksJC5leHRlbmQoYi5jaHR0cGQsT2JqZWN0LnJlamVjdChiLmh0dHBkLFsiX18iLCIiXSkpLGEuR2V0KCExLCEwKS50aGVuKGZ1bmN0aW9uKGIpe3guaHRtbChhLkhUTUwuQXBwLmFzc2lnbihhLmxhbmcpLmFzc2lnbih7VElUTEVfSFRNTDphLkhUTUwuVGl0bGVIVE1MW2EuUGhvKCJpc0NsdXN0ZXIiKT8xOjBdfSkpfSl9LHVpOnsiI2FwcC10aXRsZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLk5vZGVzLmxlbmd0aD4xJiZhLnNlbGVjdDIoeCx7ZGF0YTphLk5vZGVzLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIGIuTm9kZXMubGVuZ3RoPDI/d2luZG93LmxvY2F0aW9uLmhvc3Q6KG51bGwhPWEmJngubm9kZSE9YSYmKHgubm9kZT1hLGZ1bmN0aW9uKCl7Yi5HZXQoITApLnRoZW4oZnVuY3Rpb24oKXtiLkhpc3RvcnkuY2xlYXIoITApfSl9LmRlbGF5KDIwKSkseC5ub2RlKX19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LnNlYXJjaDooeC5zZWFyY2g9YS5sZW5ndGg8Mz8iIjphLHRoaXMuRG9jWzBdJiZ0aGlzLkRvY1swXS5zZWFyY2ghPXguc2VhcmNoJiZ0aGlzLm15LmZpbmQoIiNqc29uLXNlYXJjaCIpLnZhbCh4LnNlYXJjaCkudHJpZ2dlcigiY2hlY2siKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99fSwiI2pzZWRpdG9yIjp7ZGVsYXk6MTAwLGNoZWNrOiExLGxpc3Q6IjxkaXY+PC9kaXY+IixtZXJnZTohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5uaWNlU2Nyb2xsKHgse2JvdW5jZXNjcm9sbDohMCxjdXJzb3Jjb2xvcjoiIzIzNCIsY3Vyc29yb3BhY2l0eW1pbjouMDcsY3Vyc29yb3BhY2l0eW1heDouNH0pLHgub24oImNsaWNrLm15IiwiLmJ0bi1oZWxwIixmdW5jdGlvbigpe3ZhciB4PSQodGhpcyksYj14LnBhcmVudCgpLnBhcmVudCgpLGM9Yi5teSgiZGF0YSIpLGQ9Yy5wYXRoLnNsaWNlKDEpLmNvbmNhdChbYy5rZXldKTtpZih4LmRhdGEoIm1vZGFsIikpcmV0dXJuICQodGhpcykubW9kYWwoITApO2RbMV18fChkWzFdPSIiKTt2YXIgZT1iLm15KCJtYW5pZmVzdCIpLkhlbHAoZCk7eC5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxiLmFkZENsYXNzKCJob3ZlciIpLCQodGhpcykubW9kYWwoe21hbmlmZXN0Ontpbml0OlsnPGRpdiBpZD0iaW5mby10aXRsZSIgY2xhc3M9ImZzMTEwIGJvbGRlciBtdDMgbWI3Ij48L2Rpdj4nLCc8ZGl2IGlkPSJpbmZvLWhlbHAiIHN0eWxlPSJ3b3JkLWJyZWFrOm5vcm1hbDsiPjwvZGl2PicsJzxkaXYgaWQ9ImluZm8tdXJsIiBjbGFzcz0ibXQ3Ij48L2Rpdj4nXSx1aTp7IiNpbmZvLWhlbHAiOiJ0aXAiLCIjaW5mby10aXRsZSI6InRpdGxlIiwiI2luZm8tdXJsIjp7YmluZDoidXJsIixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudXJsfX19fX0sZGF0YTp7dGl0bGU6ZC5qb2luKCLigIkv4oCJIiksdGlwOihlLnRpcHx8YS5sYW5nLk1TR19VTktOT1dOX0tFWSkuZXNjYXBlSFRNTCgpLnJlcGxhY2UoL2AoW15gXSspYC9nLCc8Y29kZSBjbGFzcz0iZGliIHZhdCI+JDE8L2NvZGU+JyksdXJsOmUudXJsfSx3aWR0aDozNTAsYWxpZ246InRvcDoxMDMlO3JpZ2h0Oi0zOHB4OyIsbm9zZToidG9wIn0pLmFsd2F5cyhmdW5jdGlvbigpe3gucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIiksYi5yZW1vdmVDbGFzcygiaG92ZXIiKX0pfSl9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRhdGEuc3RhbXB9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5jcmMyKHguZG9jKX0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlBobygiQ291Y2giKS52ZXIsYz1bImh0dHBkX2dsb2JhbF9oYW5kbGVycyIsIm5hdGl2ZV9xdWVyeV9zZXJ2ZXJzIiwiaHR0cGRfZGVzaWduX2hhbmRsZXJzIiwiZGFlbW9ucyIsInF1ZXJ5X3NlcnZlcnMiLCJodHRwZF9kYl9oYW5kbGVycyIsImV4dGVybmFsIiwib3NfZGFlbW9ucyJdO2lmKGI+PSIwMDEuMDA3LjAwMCImJmI8IjAwMi4ifHxiPj0iMDAyLjAwMS4wMDEiKXtpZihjLmluZGV4T2YoeC5wYXRoWzFdKT4tMXx8Yy5pbmRleE9mKHgua2V5KT4tMSlyZXR1cm4gYS5sYW5nLkJBTl9IVFRQO2lmKGI+PSIwMDIuIiYmKCJjbHVzdGVyIj09eC5wYXRoWzFdfHwiY2x1c3RlciI9PXgua2V5KSlyZXR1cm4gYS5sYW5nLkJBTl9DTFVTVEVSfXJldHVybiExfS5iaW5kKHRoaXMpO3JldHVybiAkLmV4dGVuZCghMCx7fSxhLlBobygiRWQiKS5qc29udHJlZSxhLkV4dEVkLHtkYXRhOntsYWJlbFdpZHRoOjI1MH19LHtsYW5nOntIRUxQOmEubGFuZy5IRUxQfSxNRWRpdDp7ZGF0YTp7Y29tbWl0VHlwZUtleXM6e2F1dG86WyJFbnRlciJdfX19LE1Sb290OmZ1bmN0aW9uKCl7cmV0dXJuIGEubXkucm9vdCgpfX0se0xpYjp7aXNTeXN0ZW06Yn19KX0sYmluZDoidGhpcy5Eb2MifSwiI2J0bi1jZmctc2F2ZSI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLmNtZFNhdmUoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RofX0sd2F0Y2g6WyIjY2ZnLXdhcm4iLCIjZG9jLWhpc3RvcnkiXX0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5HZXQoITApLnRoZW4oZnVuY3Rpb24oKXtiLkhpc3RvcnkuY2xlYXIoITApfSl9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJihhLm5hbWV8fCQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KSl9LHJldmVydF9jb25maWc6ZnVuY3Rpb24oKXt0aGlzLkdldC5kZWJvdW5jZSgxNTApKCEwKX19fX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI2pzZWRpdG9yIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXgubGFuZzt4Lk5vZGVzLmxlbmd0aD4xP3gubXkubW9kYWwoIiNidG4tY2ZnLXNhdmUiLHttYW5pZmVzdDp4LlBobygiQ29uZmlybSIpLHdpZHRoOjU1MCxkYXRhOnt0ZXh0OmIuTVNHX0NMVVNURVIseWVzOmIuQlROX1NBVkVDTFVTVEVSLHllc2Nzczoib3JhbmdlIixubzpiLkJUTl9TQVZFTk9ERS5hc3NpZ24oeC50cnVuYyhhLm5vZGUsMjIpLmVzY2FwZUhUTUwoKSksbm9jc3M6ImdyZWVuIix1c2VCdXR0b25zOiEwfSxnbG9iYWw6ITAsc2NyZWVuOiEwLHo6MTk5Mixmb2N1czoiI2J0bi15ZXMifSkudGhlbihmdW5jdGlvbihiKXsibm8iPT1iLmNtZD94LlNhdmUoW2Eubm9kZV0pOnguU2F2ZSgpfSk6eC5TYXZlKCl9LHN0eWxlOnsiICNqc2VkaXRvcj5kaXYiOiJmb250LXNpemU6MTQuNXB4IWltcG9ydGFudDttaW4taGVpZ2h0OjU1MHB4OyIsIiAjanNlZGl0b3IgLmluYXYiOiJtYXJnaW46MXB4IDAhaW1wb3J0YW50OyIsIiAuaWFjdCAuYnV0dG9uIjoicGFkZGluZzogMC4wNWVtIDAgMC4xZW0gMCFpbXBvcnRhbnQ7IiwiICNqc2VkaXRvcj4ubXktZm9ybT5zZWN0aW9uPiNlZGl0b3I+I2RvYz4uaWFjdC5idXR0b25zIjoicGFkZGluZy1yaWdodDozcHg7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXIiOiJ3aGl0ZS1zcGFjZTpub3dyYXA7IiwiIC5teS1tb2RhbC1mb3JtIjp7IiAuQ29kZU1pcnJvciAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDpjYWxjKDE4ICogMTdweCArIDZweCk7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIi5lZC1lcnJvciAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgLkNvZGVNaXJyb3IgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLkNvZGVNaXJyb3IgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLkNvZGVNaXJyb3IgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyIsIiAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAuYnV0dG9ucyBidXR0b24iOiJtYXJnaW4tcmlnaHQ6IDJweDtwYWRkaW5nOiAwLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTtmb250LXNpemU6IDkwJTsiLCIgY29kZSI6ImJhY2tncm91bmQtY29sb3I6ICNlYmYwZjMhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6IDJweDtmb250LXNpemU6IDg1JTsgcGFkZGluZzogMC4xZW0gMC4zZW0ifX0sRXh0RWQ6e0hUTUw6e0l0ZW1Sb290Oic8ZGl2IGNsYXNzPSJpbmF2IGlyb290Ij48ZGl2IGNsYXNzPSJpa2V5Ij48L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyBjcCI+4oCTPC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciBwYW5lbGhlaWdodC0zMiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tYWRkIGJ1dHRvbiBncmVlbiIgdGl0bGU9IkFkZCBuZXcgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXBsdXMiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi10YWtlb3V0IGJ1dHRvbiIgdGl0bGU9IkNvcHkgLyBwYXN0ZSAvIGVkaXQgYXMgSlNPTiI+PHNwYW4gY2xhc3M9ImZpLXNob3BwaW5nLWJhZyI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1yZXZlcnQiIGNsYXNzPSJidXR0b24iICB0aXRsZT0iUmV2ZXJ0IHRvIHNhdmVkIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1yZWZyZXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLEl0ZW1TaW1wbGU6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgaWtleXNpbXBsZSI+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIj48L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1oZWxwIGJ1dHRvbiB0ZWFsIiB0aXRsZT0iQ29uZmlnIGtleSBpbmZvIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1pbmZvIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiIHRpdGxlPSJEZWwgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLEl0ZW1Db21wbGV4Oic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXl0cmVlIj48L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyBjcCI+4oCTPC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tYWRkIGJ1dHRvbiBncmVlbiIgdGl0bGU9IkFkZCBuZXcgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXBsdXMiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1oZWxwIGJ1dHRvbiB0ZWFsIiB0aXRsZT0iQ29uZmlnIGtleSBpbmZvIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1pbmZvIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tanNvbiBoaWRlIj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiICB0aXRsZT0iRGVsIG5vZGUiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nfSx1aTp7IiNkb2MiOnttYW5pZmVzdDpmdW5jdGlvbih4KXtpZighdGhpcy5IVE1MLkl0ZW1Sb290KXJldHVybiB0aGlzLiRtdWx0aTt2YXIgYT10aGlzO3JldHVybiAkLmV4dGVuZCghMCx7fSxhLiRtdWx0aSx7SFRNTDphLkhUTUwuSXRlbVJvb3QsdWk6eyIjYnRuLXJldmVydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJiQubXkucmFkaW8oInJldmVydF9jb25maWciLCEwKX19fX0pfX19LEhlbHA6ZnVuY3Rpb24oeCl7eC5zbGljZSgwKTt2YXIgYT10aGlzLmxhbmcuSEVMUCxiPW51bGwsYz0iIixkPSIiLGU9IiIsZj1PYmplY3QuaXNBcnJheTtpZihhKXtudWxsPT14WzFdJiYoeFsxXT0iIik7dmFyIGc9YVt4WzBdXXx8e307ZyYmKGM9KGI9Z1t4WzFdXXx8Z1siKiJdfHwiIik/ZihiKT9iWzBdKyIuIjpiKyIuIjoiIixlPWYoYik/YlsxXTpnLl9fLGMmJmUmJihkPWUuYXNzaWduKCQuZXh0ZW5kKHtrZXk6eC5jb21wYWN0KCEwKS5qb2luKCIvIil9LGEuT0JKX1BBVEhTKSkpKSxkP2Q9JzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4gcGwyIHByNSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiByZWw9Im5vZm9sbG93Ij48c3BhbiBjbGFzcz0iZmktcGFnZSBmczkwIG83MCI+PC9zcGFuPiZuYnNwO3syfTwvYT4nLmFzc2lnbihkLGEuVFhUX0RPQ1MpOmMmJihkPSc8c3BhbiBjbGFzcz0iZnM5MCBvNzAiPnsxfTwvc3Bhbj4nLmFzc2lnbihhLlRYVF9OT0RPQ1MpKX1yZXR1cm57dGlwOmMsdXJsOmR9fX0sR2V0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPSQuRGVmZXJyZWQoKSxlPVtdLGY9Yi5QaG8oIk1lbWJlcnNoaXAiKXx8e307cmV0dXJuIWIuUGhvKCJpc0NsdXN0ZXIiKSYmYi5NZW1iZXJzQ2hlY2tlZHx8KGIuTWVtYmVyc0NoZWNrZWQ9ITAsT2JqZWN0LmlzQXJyYXkoZi5hbGxfbm9kZXMpJiZPYmplY3QuaXNBcnJheShmLmNsdXN0ZXJfbm9kZXMpPygoZT1mLmNsdXN0ZXJfbm9kZXMuc2xpY2UoMCkuaW50ZXJzZWN0KGYuYWxsX25vZGVzKSkubGVuZ3RoPDImJihiLlBobygpLmlzQ2x1c3Rlcj0hMSksYi5Ob2Rlcz1lLC0xPT1lLmluZGV4T2YoYy5ub2RlKSYmKGMubm9kZT1lWzBdKSk6Yi5QaG8oKS5pc0NsdXN0ZXI9ITEpLGcoKSxkLnByb21pc2UoKTtmdW5jdGlvbiBnKCl7dmFyIGU9WyJfY29uZmlnIl07Yi5Ob2Rlcy5sZW5ndGgmJigxIT1iLk5vZGVzLmxlbmd0aCYmYy5ub2RlP2UudW5zaGlmdCgiX25vZGUiLGMubm9kZSk6ZS51bnNoaWZ0KCJfbm9kZSIsYi5Ob2Rlc1swXSkpLGIuUmVxKGUpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9e307cmV0dXJuIE9iamVjdC5rZXlzKHgpLnNvcnQoKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe09iamVjdC5pc09iamVjdCh4W2JdKT9hW2JdPU9iamVjdC5rZXlzKHhbYl0pLnNvcnQoKS5yZWR1Y2UoZnVuY3Rpb24oYSxjKXtyZXR1cm4gYVtjXT1oKHhbYl1bY10pLGF9LHt9KTphW2JdPXhbYl19KSxjLmRvYz1hLGIuRG9jPVt7bGFiZWxXaWR0aDoyNTAsZG9jOmIuZGF0YS5kb2MsX2lkOiJfY29uZmlnIn1dLGIuT2xkPU9iamVjdC5jbG9uZShjLmRvYywhMCksYS5jaHR0cGQmJnZvaWQgMCE9PWEuY2h0dHBkLm1heF9kYl9udW1iZXJfZm9yX2Ric19pbmZvX3JlcSYmKGIuUGhvKCJDb3VjaCIpLm1heEJhdGNoPSthLmNodHRwZC5tYXhfZGJfbnVtYmVyX2Zvcl9kYnNfaW5mb19yZXF8fDApLHh9KS50aGVuKGZ1bmN0aW9uKGEpe2Muc3RhbXA9RGF0ZS5ub3coKSx4JiZiLm15LnJlY2FsYygiI2pzZWRpdG9yIiksYi5teS50cmlnZ2VyKCIjY2ZnLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IiksZC5yZXNvbHZlKGEpfSkuZmFpbChmdW5jdGlvbih4LGMsZSl7YXx8Y3cubGliLm5vdGUoYi5sYW5nLkVSUl9SRUxPQUQuYXNzaWduKHgsYy50cnVuY2F0ZSg0NSwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCkpLCJlcnJvciIpLGQucmVqZWN0KHgsYyxlKX0pfWZ1bmN0aW9uIGgoeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4P3g6InRydWUiPT14fHwiZmFsc2UiIT14JiYoL15cZHsxLDE1fSQvLnRlc3QoeCk/K3g6eCl9fSxTYXZlOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5QaG8oIl9jb21waWxlZCIpLGEubGFuZyksYz1bXSxkPXt9LGU9KHh8fGEuTm9kZXMpLnNsaWNlKDApLGY9YS5Eb2NbMF0uZG9jO2M9T2JqZWN0LnZhbHVlcyhhLkhpc3Rvcnkuc3RlcHMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7dmFyIGI9YS5vcDtpZihhLnBhdGgubGVuZ3RoPjIpe3ZhciBjPWEucGF0aC5zbGljZSgxKS5qb2luKCLigIMiKTt4W2NdPXtrZXk6Yyx2YWx1ZToiZGVsIiE9Yj9jdy5saWIuZ2V0cmVmKGYsYS5wYXRoLnNsaWNlKDEpKSsiIjpudWxsfX1lbHNle3ZhciBkPWEucGF0aFsxXSxlPWN3LmxpYi5nZXRyZWYoZixkKTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBjPVtkLGFdLGU9Yy5qb2luKCLigIMiKTt4W2VdPXtrZXk6ZSx2YWx1ZToiZGVsIiE9Yj9jdy5saWIuZ2V0cmVmKGYsYykrIiI6bnVsbH19KX1yZXR1cm4geH0se30pKSxlLmxlbmd0aCYmKGM9Yy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3gucHVzaCh7dXJsOlsiX25vZGUiLGIsIl9jb25maWciXSxrZXk6YS5rZXksdmFsdWU6YS52YWx1ZX0pfSkseH0sW10pKTt2YXIgZz1jLmxlbmd0aDtmdW5jdGlvbiBoKCl7T2JqZWN0LnNpemUoZCk/KGN3LmxpYi5ub3RlKGIuTVNHX1NBVkVfRkFJTCwiZXJyb3IiKSxjb25zb2xlLmxvZygiRXJyb3JzIGR1cmluZyBjb25maWcgdXBkYXRlOiIpLGNvbnNvbGUubG9nKGQpKTooY3cubGliLm5vdGUoYi5NU0dfU0FWRV9PSywib2siKSxhLkdldCghMCkudGhlbihmdW5jdGlvbigpe2EuSGlzdG9yeS5jbGVhcighMCl9KSl9Yy5mb3JFYWNoKGZ1bmN0aW9uKHgsYil7YS5SZXEoe3VybDooeC51cmx8fFsiX2NvbmZpZyJdKS5jb25jYXQoeC5rZXkuc3BsaXQoIuKAgyIpKSxtZXRob2Q6bnVsbCE9PXgudmFsdWU/IlBVVCI6IkRFTEVURSIsY29udGVudFR5cGU6bnVsbCE9PXgudmFsdWU/ImFwcGxpY2F0aW9uL2pzb24iOm51bGwsZGF0YTpudWxsIT09eC52YWx1ZT9KU09OLnN0cmluZ2lmeSh4LnZhbHVlKTp2b2lkIDB9KS50aGVuKGZ1bmN0aW9uKCl7InJlcGxpY2F0b3LigINkYiI9PXgua2V5JiYoYS5QaG8oKS5SZXBsaWNhdG9yREI9eC52YWx1ZSl9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtkW3gua2V5XT17Y29kZTphLGVycm9yOmIscmVhc29uOmN9fSkuYWx3YXlzKGZ1bmN0aW9uKCl7KGctPTEpfHxoKCl9KX0ubGF6eShhLlBobygiQ2ZnIikuYmF0Y2hVcGRhdGVDZmd8fDEwMCkpfSxIVE1MOntBcHA6JzxkaXYgaWQ9ImNvbC1lZCIgY2xhc3M9ImRpYiB2YXQgd24iPjxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcGwyMCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciB3MTU1IGZzOTUiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgYmx1ZSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PntUSVRMRV9IVE1MfTxkaXYgY2xhc3M9Im53IG1yMTAgZGliIHZhdCB0YWMgdzQwcCIgPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie0JUTl9SRVZFUlR9Ij48c3BhbiBjbGFzcz0iZmktcmVmcmVzaCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1jZmctc2F2ZSIgY2xhc3M9ImdyZWVuIG1yMiIgZGlzYWJsZWQ+e0JUTl9TQVZFfTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBhbmVsaGVpZ2h0IGZlYXRoZXIiPjxkaXYgaWQ9ImpzZWRpdG9yIiBjbGFzcz0icGFuZWxoZWlnaHQgcGwyMCBwcjIwIHB0MTAgcGIxNiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImNvbC1oaXN0b3J5IiBjbGFzcz0iZGliIHZhdCB4Z3JheSB3biI+PGRpdiBpZD0iaC1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciI+PGJ1dHRvbiBpZD0iYnRuLWhpc3RvcnktdW5kbyIgY2xhc3M9ImxoMTQwIj57QlROX0hJU1RfVU5ET308L2J1dHRvbj48L2Rpdj48c3BhbiBjbGFzcz0iZnMxNTAgZGliIHZhdCBwbDUgbzkwIHB0MyI+e1RYVF9ISVNUX1RJVExFfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJlbXB0eS1oaXN0b3J5IiBjbGFzcz0iaGlkZSBwYWJjIHBsNSBwdDggZ3JheSIgc3R5bGU9InRvcDowOyBsZWZ0OjA7Ij57VFhUX0hJU1RfRU1QVFl9PC9kaXY+PGRpdiBpZD0iZG9jLWhpc3RvcnkiIGNsYXNzPSJwYW5lbGhlaWdodCBwcjIwIHB0MTAgcGIxNiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvZGl2PjwvZGl2PjxzdHlsZSBpZD0ic3R5bGUtaGlzdG9yeSIgY2xhc3M9ImhpZGUiPjwvc3R5bGU+PGRpdiBpZD0ic2Nyb2xsLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+PGRpdiBpZD0iY2ZnLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+JyxUaXRsZUhUTUw6Wyc8ZGl2IGlkPSJhcHAtdGl0bGUiIGNsYXNzPSJkaWIgdmF0IGZzMTYwIGxoMTIwIGVsbCBtcjIwIiBzdHlsZT0ibWF4LXdpZHRoOjQwJSI+PC9kaXY+JywnPGRpdiBjbGFzcz0iZGliIHZhdCBmczExNSBtcjIwIHc0MHAiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXRpdGxlIiBjbGFzcz0idzEwMHAgYm9sZGVyIj48L2Rpdj4nXX19LCR2aWV3OntpZDoiY3cuUGhvdG9uLiR2aWV3IixsYW5nOnt9LHBhcmFtczp7cmVzdHlsZToyMCxzdHJpY3Q6ITB9LGluaGVyaXQ6WyJCeXRlcyIsIk1ldHJpYyJdLFN0ZXBzOlsxLDEwLDIwLDUwLDEwMCwyMDAsNTAwLDFlM10sTW9kYWxzOnt9LFJlc3VsdDpbXSxSb3dzOltdLEVycm9yOiIiLGZSb3dzOm51bGwsZ1Jvd3M6bnVsbCxEZG9jczp7fSxWaWV3czpbXSxWaTp7fSxWaUVkczp7fSxQZW5kaW5nOnt9LExpc3Q6W10sRmllbGRzOltdLENvbHVtbnM6W10sRWRpdG9yOltdLGhhc1NlbGVjdGlvbjohMSxSVDpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxJbmRleDpmdW5jdGlvbih4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCxudWxsLCIgICIpfSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5zdGFzaFZpZXdTdGF0ZSgpLFsiI3ZpZXctcmVzdWx0cyJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9eC5maW5kKGEpOyJmdW5jdGlvbiI9PXR5cGVvZiBiLmdldE5pY2VTY3JvbGwmJmIuZ2V0TmljZVNjcm9sbCgpLnJlbW92ZSgpLGIubGlzdCgicmVtb3ZlIil9KTt0cnl7eC5maW5kKCIjdmlldy1uYW1lIikuZGF0YSgpLnNlbGVjdDIuZHJvcGRvd24uZmluZCgiLnNlbGVjdDItcmVzdWx0cyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIHgmJngoKS5yZW1vdmUoKX0pfWNhdGNoKHgpe319LHMycDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1bYS5wYXRoWzBdXTtpZighYS5zdGFydCYmIWEudmlldylyZXR1cm5bYS5wYXRoWzBdXTt2YXIgYz14LlZpW2Eudmlld10sZD1hLnZpZXcuc3BsaXQoIu+/vSIpO3JldHVybiJfZmluZCI9PWEudmlldy50byg1KT8oYi5wdXNoKCJfZmluZCIpLGIucHVzaChkWzFdfHwiRGVmYXVsdCBxdWVyeSIpKToiX2lkeCI9PWEudmlldy50byg0KT8oYi5wdXNoKCJfaW5kZXgiKSwiX2lkeC/vv70iIT1hLnZpZXcudG8oNik/Yi5wdXNoKGRbMF0uc3BsaXQoIi8iKVsxXSxkWzFdKTpiLnB1c2goIkRlZmF1bHQgaW5kZXgiKSk6Yz9iLnB1c2goIl92aWV3IixjLnBhdGhbMl0sYy5wYXRoWzRdKTovXihfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8X2NoYW5nZXMpJC8udGVzdChhLnZpZXcpP2IucHVzaChhLnZpZXcpOmIucHVzaCgiX2FsbF9kb2NzIiksYS5zdGFydD8oYi5wdXNoKGEuc3RhcnQsKGEucmV2ZXJzZT8iLSI6IiIpKyArYS5saW1pdCksYik6Yn0saGFzaDpmdW5jdGlvbigpe3JldHVybiJ2aWV3In0sdGl0bGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLmRhdGEsYT14LnBhdGgsYj0iX2ZpbmQiPT14LnZpZXcudG8oNSksYz0vXl8oY2hhbmdlc3xkZXNpZ25fZG9jc3xsb2NhbF9kb2NzKSQvLnRlc3QoeC52aWV3KSxkPXgudmlldz8iX2Rlc2lnbl9kb2NzIj09eC52aWV3PyJfZGVzaWduLyoiOiJfbG9jYWxfZG9jcyI9PXgudmlldz8iX2xvY2FsLyoiOiJfY2hhbmdlcyI9PXgudmlldz8iX2NoYW5nZXMiOngudmlldy5zcGxpdCgi77+9IikudG8oMikubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuKChhP3g6eC5zcGxpdCgiLyIpWzFdKXx8eHx8IiIpLnRydW5jYXRlKGE/MzA6MTAsIm1pZGRsZSIsIi4uLiIpfSkuam9pbigi4oCKL+KAiiIpOiIiLGU9Yj8i4oq2IjpjPyLDlyI6IsO3IjtyZXR1cm4oZD9hWzBdLnRydW5jYXRlKDE1LCJtaWRkbGUiLCIuLi4iKTphWzBdKSsoZD8i4oCJIitlKyLigIkiK2Q6IiIpfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKGEmJigxPT14Lmxlbmd0aHx8L15fKHZpZXd8YWxsX2RvY3N8bG9jYWxfZG9jc3xkZXNpZ25fZG9jc3xmaW5kfGluZGV4fGNoYW5nZXMpJC8udGVzdCh4WzFdKSkpe3ZhciBiPXgubGVuZ3RoLGM9eFsxXXx8Il9hbGxfZG9jcyIsZD17dGl0bGU6eFswXSx0eXBlOiJ2aWV3IixhcHBEYXRhOnt9fSxlPS9eXyhkZXNpZ258bG9jYWwpX2RvY3MkLy50ZXN0KGMpO2lmKC9eXyhhbGx8ZGVzaWdufGxvY2FsKV9kb2NzJC8udGVzdChjKSk0PT1ifHxlP2QuYXBwRGF0YT17c3RhcnQ6eFsyXSxsaW1pdDoiKyIrKHRoaXMuJHZpZXcuU3RlcHMuZmluZChNYXRoLmFicygreFszXSkpfHwiMTAwIikscmV2ZXJzZToiLSI9PSh4WzNdKyIiKVswXX06eC5sZW5ndGg9MSxlJiYoZC50aXRsZSs9IuKAiS/igIkiK2MucmVwbGFjZSgvX2RvY3MkLywiIiksZC5hcHBEYXRhLnZpZXc9Yyk7ZWxzZSBpZigiX2NoYW5nZXMiPT1jKWQudGl0bGUrPSLigIkv4oCJIitjLGQuYXBwRGF0YT17dmlldzpjLHN0YXJ0OnhbMl0sbGltaXQ6IisiKyh0aGlzLiR2aWV3LlN0ZXBzLmZpbmQoTWF0aC5hYnMoK3hbM10pKXx8IjEwMCIpLHJldmVyc2U6Ii0iPT0oeFszXSsiIilbMF19O2Vsc2UgaWYoIl9maW5kIj09YyliPjU/eC5sZW5ndGg9NTpkLmFwcERhdGE9e3N0YXJ0OnhbM10sbGltaXQ6IisiKyh0aGlzLiR2aWV3LlN0ZXBzLmZpbmQoTWF0aC5hYnMoK3hbNF0pKXx8IjEwMCIpLHJldmVyc2U6Ii0iPT0oeFs0XSsiIilbMF19O2Vsc2UgaWYoIl9pbmRleCI9PWMpaWYoYj42KXgubGVuZ3RoPTY7ZWxzZXt2YXIgZj0iRGVmYXVsdCBpbmRleCI9PXhbMl0mJigzPT1ifHw1PT1iKTtkLmFwcERhdGE9e3N0YXJ0OmY/eFszXTp4WzRdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCsoZj94WzRdOnhbNV0pKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KChmP3hbNF06eFs1XSkrIiIpWzBdfX1lbHNle2lmKCJfdmlldyIhPWMpcmV0dXJuOzYhPWI/eC5sZW5ndGg9NDpkLmFwcERhdGE9e3N0YXJ0OnhbNF0sbGltaXQ6IisiKyh0aGlzLiR2aWV3LlN0ZXBzLmZpbmQoTWF0aC5hYnMoK3hbNV0pKXx8IjEwMCIpLHJldmVyc2U6Ii0iPT0oeFs1XSsiIilbMF19fXJldHVybiBkLnBhdGg9eCxkfX0sanNldmFsOmZ1bmN0aW9uKHMpe3ZhciByO3RyeXtyPWV2YWwoIigiK3MrIikiKX1jYXRjaCh4KXt9cmV0dXJuIHJ9LGRhdGE6e3BhdGg6W10sc2VhcmNoOiIiLHZpZXc6IiIsc3RhcnQ6IiIsbGltaXQ6IisxMDAiLHJldmVyc2U6ITEscmVkdWNlOltdLGluY2w6W10sc3RhdGU6IiIsc2VsZWN0aW9uOltdLGxpbms6IiIsZHVyOjAsc2l6ZTowLGdyaWQ6ITEsY29sdW1uczpbIi52YWx1ZSJdLHRvdGFsX3Jvd3M6MCxvZmZzZXQ6MCxzZXE6IiIseGtleToiMCIsZWRpdG9yOiExLG1hbmdvOnthY3RpdmU6IkRlZmF1bHQgcXVlcnkiLG1vZGU6WyJqYXZhc2NyaXB0Il0scXVlcnk6W3tuYW1lOiJEZWZhdWx0IHF1ZXJ5Iix0ZXh0OiIoe30pIixqc29uOnt9LGVycm9yczpbXSxzdGFtcDowfV19fSxEZWZhdWx0TWFuZ29Rcnk6e25hbWU6IkRlZmF1bHQgcXVlcnkiLHR5cGU6Im1hbmdvIix0ZXh0OiIoe1xuICAvLyBNYXRjaGluZyBkb2NzIHNlbGVjdG9yXG4gIHNlbGVjdG9yOiB7XG4gICAgX2lkOiB7JGd0OiAnJ31cbiAgfSxcbiAgXG4gIC8vIERvYyBmaWVsZHMgdG8gcmV0dXJuLCBcbiAgLy8gY29tbWVudCBvdXQgdG8gZ2V0IHdob2xlIGRvY3NcbiAgZmllbGRzOiBbJ19pZCcsICdfcmV2JywgLyoneC55JyovXSxcbiAgXG4gIC8vIFNvcnQgb3JkZXIsIGxpa2U6XG4gIC8vIHNvcnQ6IFt7X2lkOidhc2MnfSwge25hbWU6ICdkZXNjJ31dXG4gIFxuICAvLyBXaGVuIGVkaXQsIHVzZSBDbWQtUiB0byBydW4gcXVlcnlcbn0pIixqc29uOntzZWxlY3Rvcjp7X2lkOnskZ3Q6IiJ9fSxmaWVsZHM6WyJfaWQiLCJfcmV2Il19LGVycm9yczpbXSxzdGFtcDowfSxEZWZhdWx0TWFuZ29JZHg6e25hbWU6IkRlZmF1bHQgaW5kZXgiLGRkb2M6IiIsdHlwZToiaW5kZXgiLHRleHQ6Iih7XG4gIGluZGV4OiB7XG5cdFx0ZmllbGRzOiBbe19pZDogJ2FzYyd9XVxuXHR9LFxuXHQvLyBwYXJ0aWFsX2ZpbHRlcl9zZWxlY3Rvcjp7XG5cdC8vIFx0J2Zvby5iYXInOnskZ3Q6MH1cblx0Ly8gfVxufSkiLGpzb246e2luZGV4OntmaWVsZHM6W3tfaWQ6ImFzYyJ9XX19LGVycm9yczpbXSxzdGFtcDowfSx1aTp7IiNidG4tcm9vdCI6e2RlbGF5OjEwMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtiLmF0dHIoImhyZWYiLCIjIit4LnBhdGhbMF0pLGIuYXR0cigidGl0bGUiLHRoaXMubGFuZy5USVBfVVAuYXNzaWduKHgucGF0aFswXSkpfX0sIiN4LWJ0bi1yb290Ijp7Y3NzOnt3MDpmdW5jdGlvbih4KXtyZXR1cm4heC52aWV3fSx3NDI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnZpZXd9fSx3YXRjaDpbIiN2aWV3LW5hbWUiXX0sIiN2aWV3LW5hbWUiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2Euc2VsZWN0Mih4LHtkYXRhOnRoaXMuVmlld3MsbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTIsZm9ybWF0U2VsZWN0aW9uOmEuZm9ybWF0U2VsMn0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsPT1hKXJldHVybiB4LnZpZXc7aWYoeC52aWV3IT1hKXt2YXIgYz1iLnJlc3RvcmVWaWV3U3RhdGUoYSwhMSk7Yi5zdGFzaFZpZXdTdGF0ZSgpLHguc3RhcnQ9IiIseC5yZWR1Y2U9IiIseC5ncmlkPSExLGIuUm93cz1bXSxiLmZSb3dzPW51bGwsYi5Db2x1bW5zPVtdLGIuRmllbGRzPVtdLGIuRXJyb3I9IiIsYi5FZGl0b3I9W10seC52aWV3PWEsYi5yZXN0b3JlVmlld1N0YXRlKHZvaWQgMCwhMSksYi5idWlsZEdyaWRDb2x1bW5zKCksdm9pZCAwPT09Yy5lZGl0b3ImJigiX2ZpbmQiPT1hLnRvKDUpfHwiX2lkeCI9PWEudG8oNCk/eC5lZGl0b3I9ITA6YXx8KHguZWRpdG9yPSExKSl9cmV0dXJuIHgudmlld319LCIjdmlldy1saW1pdCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPShNYXRoLmFicygrYi5saW1pdCl8fDEwMCkuY2xhbXAoMSwxZTQpO2Euc2VsZWN0Mih4LHtkYXRhOnRoaXMuU3RlcHMuY29uY2F0KFtjXSkudW5pcXVlKCkuc29ydEJ5KCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDoiKyIreCx0ZXh0Ong8MWUzP3grIiI6eC8xZTMrIksifX0pLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjFlNH0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGw9PWE/eC5saW1pdDooeC5saW1pdD1hLHgubGltaXQpfX0sIiN2aWV3LXN0YXJ0a2V5Ijp7ZGVsYXk6MCxiaW5kOiJzdGFydCIsZXZlbnRzOiJpbnB1dC5teSIsd2F0Y2g6WyIjYnRuLWNsZWFyLXN0YXJ0a2V5IiwiI2J0bi12aWV3LXBsdXMiLCIjYnRuLXZpZXctbWludXMiLCIjdmlldy1uYW1lIl0sY3NzOnsibXktc2VhcmNoIjovXi57MSx9JC99fSwiI2J0bi12aWV3LW1pbnVzIjp7ZGVsYXk6MSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcyxjPXguc3RhcnQsZD0reC50b3RhbF9yb3dzLGU9K3gubGltaXQsZj1iLlZpW3gudmlld10mJmIuVmlbeC52aWV3XS5yZWR1Y2UmJngucmVkdWNlKyIiLGc9Il9maW5kIj09eC52aWV3LnRvKDUpLGg9Il9sb2NhbF9kb2NzIj09eC52aWV3O3guc3RhcnQ/L15fXGQrJC8udGVzdCh4LnN0YXJ0KSYmKGM9Il8iKygoK3guc3RhcnQuc3Vic3RyKDEpfHwwKS1lKS5jbGFtcCgwLGZ8fGd8fGg/MWUxMjpkKSk6KGQ+ZXx8Znx8Z3x8aCkmJihjPSJfIisoZC1lKS5jbGFtcCgwLDFlMTIpKSwiXzAiPT1jJiYoYz0iIikseC5zdGFydD1jfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIHguc3RhcnQmJiEvXl9cZCskLy50ZXN0KHguc3RhcnQpfHwheC5zdGFydCYmYi5Sb3dzLmxlbmd0aDw9K3gubGltaXR8fCJfY2hhbmdlcyI9PXgudmlld319LHdhdGNoOlsiI3ZpZXctc3RhcnRrZXkiLCIjdmlldy1saW1pdCIsIiNzdGF0ZS1wcm94eSJdfSwiI2J0bi12aWV3LXBsdXMiOntkZWxheToxLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9eC5zdGFydCxkPSt4LnRvdGFsX3Jvd3MsZT0reC5saW1pdCxmPWIuVmlbeC52aWV3XSYmYi5WaVt4LnZpZXddLnJlZHVjZSYmeC5yZWR1Y2UrIiIsZz0iX2ZpbmQiPT14LnZpZXcudG8oNSksaD0iX2xvY2FsX2RvY3MiPT14LnZpZXc7aWYoIl9jaGFuZ2VzIj09eC52aWV3JiZ4LnJldmVyc2UpYz1iLlJlc3VsdFswXS5yZXN1bHRzW2VdP2IuUmVzdWx0WzBdLnJlc3VsdHNbZS0xXS5zZXErIiI6IiI7ZWxzZSBpZih4LnN0YXJ0KWlmKC9eX1xkKyQvLnRlc3QoeC5zdGFydCkpe3ZhciBpPSgreC5zdGFydC5zdWJzdHIoMSl8fDApK2U7Yz0iXyIrKGk+PWQmJiFmJiYhZyYmIWg/MDppKX1lbHNlIGM9Yi5Sb3dzLmxlbmd0aDw9ZT8iIjpKU09OLnN0cmluZ2lmeShiLlJvd3NbZV0ua2V5KS5yZXBsYWNlKC9eInwiJC9nLCIiKTtlbHNlKGQ+ZXx8Znx8Z3x8aCkmJihjPSJfIitlKTsiXzAiPT1jJiYoYz0iIikseC5zdGFydD1jfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIXguc3RhcnQmJmIuUm93cy5sZW5ndGg8PSt4LmxpbWl0fHwiX2NoYW5nZXMiPT14LnZpZXcmJiF4LnJldmVyc2V9fSx3YXRjaDpbIiN2aWV3LWxpbWl0IiwiI3N0YXRlLXByb3h5Il19LCIjdmlldy1ncmlkIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3Moe3RhZ3M6W3snPHNwYW4gY2xhc3M9ImZpLXRodW1ibmFpbHMgZnMxMTUgbGgxMzAiIHRpdGxlPSJHcmlkIHZpZXciPjwvc3Bhbj4nOiJncmlkIn1dLGVtcHR5OnsnPHNwYW4gY2xhc3M9ImZpLWxpc3QtdGh1bWJuYWlscyBmczExNSBsaDEzMCIgdGl0bGU9IkxpbmUgdmlldyI+PC9zcGFuPic6IiJ9LHRhZ2NzczoidGFnIGJ0biB3MzIgZGliIGNwIix0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztyZXR1cm4gbnVsbCE9YSYmKHguZ3JpZD0hIShhKyIiKSx4LmdyaWQ/KHgudmlld3x8KHguaW5jbD1bImRvY3MiXSksYi5SZXN1bHQubGVuZ3RoJiYoYi5GaWVsZHMubGVuZ3RofHxiLmJ1aWxkRmllbGRzTGlzdCgpLHguY29sdW1ucy5sZW5ndGg8MiYmKCF4LmNvbHVtbnNbMF18fCIudmFsdWUiPT14LmNvbHVtbnNbMF18fCIuZG9jIj09eC5jb2x1bW5zWzBdKSYmKHguY29sdW1ucz1iLmRlcml2ZUdyaWRDb2x1bW5zKCkpKSxiLmJ1aWxkR3JpZENvbHVtbnMoKSxiLm15LnJlc3R5bGUoKSk6Yi5jbG9zZUF1dG9jb21wbGV0ZXMoKSxiLnN0YXNoVmlld1N0YXRlKCksYi5teS5yZWNhbGMoIiN2aWV3LWdyaWQtY29scyIpLGIubXkuY2hlY2soIiN2aWV3LWdyaWQtY29scyIpKSx4LmdyaWQ/WyJncmlkIl06W119LHdhdGNoOlsiI3ZpZXctbmFtZSJdfSwiI2FwcC1zZWFyY2giOntkZWxheToxNTAsYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP3guc2VhcmNoOmEubGVuZ3RoPDM/KHRoaXMuZlNlYXJjaD10aGlzLmNtU2VhcmNoPW51bGwseC5zZWFyY2g9IiIsYSk6KHguc2VhcmNoPWEsdGhpcy5mU2VhcmNoPW5ldyBSZWdFeHAoIigiK1JlZ0V4cC5lc2NhcGUoYSkrIikiLCJpIiksdGhpcy5jbVNlYXJjaD1uZXcgUmVnRXhwKCJeIitSZWdFeHAuZXNjYXBlKGEpLCJpIiksYSl9LGNzczp7Im15LXNlYXJjaCI6L14uezMsfSQvfSx3YXRjaDpbIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctcGFuZWxzIjp7d2F0Y2g6WyIjdmlldy1uYW1lIiwiI2J0bi12aWV3Y29kZSJdLGNzczp7InZpZXctZWRpdG9yIjpmdW5jdGlvbih4KXtyZXR1cm4hL14oX2NoYW5nZXN8X2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfCkkLy50ZXN0KHgudmlldykmJiEheC5lZGl0b3J9LCJ2aWV3LW1hbmdvIjpmdW5jdGlvbih4KXtyZXR1cm4iX2ZpbmQiPT14LnZpZXcudG8oNSl9LCJ2aWV3LWluZGV4IjpmdW5jdGlvbih4KXtyZXR1cm4iX2lkeCI9PXgudmlldy50byg0KX0sInZpZXctY2hhbmdlcyI6ZnVuY3Rpb24oeCl7cmV0dXJuIl9jaGFuZ2VzIj09eC52aWV3LnRvKDgpfSwibW9kZS1ncmlkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5ncmlkfSwibW9kZS1qc29uIjpmdW5jdGlvbih4KXtyZXR1cm4heC5ncmlkfSwiZGItdXNlcnMiOmZ1bmN0aW9uKHgpe3JldHVybiJfdXNlcnMiPT14LnBhdGhbMF19fX0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPVtdO3guc2VsZWN0aW9uLmxlbmd0aCYmL14ofF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jcykkLy50ZXN0KHgudmlldykmJihiPXguc2VsZWN0aW9uLnNvcnQoKS51bmlxdWUoKSksdGhpcy5HZXRWaWV3KCEwLGIpLGIubGVuZ3RofHwvXl8oZGVzaWdufGxvY2FsKV9kb2NzJC8udGVzdCh4LnZpZXcpfHwiX2lkeC/vv70iPT14LnZpZXcudG8oNil8fHRoaXMuR2V0Vmlld3MoITApfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiYhYS5uYW1lJiYvXl8odXNlcnN8cmVwbGljYXRvcikkLy50ZXN0KHgucGF0aFswXSkmJiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX0sZGJ1cGRhdGU6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzOyFPYmplY3QuaXNPYmplY3QoYSl8fCJ3cml0ZSIhPWEuY21kJiYiZGVsZXRlIiE9YS5jbWR8fGEuZGI9PXgucGF0aFswXSYmLTEhPShhLmRvY3N8fFtdKS5pbmRleE9mKHgudmlldy5zcGxpdCgi77+9IilbMF0pJiZiLkdldFZpZXdzKCEwKX19fSwiI2J0bi12aWV3LWNvbXBhY3QiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzLGQ9eC5wYXRoLGU9e30sZj1PYmplY3Quc2l6ZShjLlZpKT97ZGRvY3M6T2JqZWN0LmtleXMoYy5WaSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnNwbGl0KCLvv70iKVswXS5zcGxpdCgiLyIpWzFdfSkudW5pcXVlKCkuc29ydCgpfTp7fTtiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi12aWV3LWNvbXBhY3QiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLCJfZGVzaWduX2RvY3MiPT14LnZpZXcmJihlPXtkc2VsZWN0aW9uOihmLmRkb2NzfHxbXSkuaW50ZXJzZWN0KHguc2VsZWN0aW9uLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgiLyIpWzFdfSkpLnNsaWNlKDApLG9wczpbInZpZXdzIiwiZGRvY3MiXX0pLGMubXkubW9kYWwoIiNidG4tdmlldy1jb21wYWN0Iix7bWFuaWZlc3Q6JC5leHRlbmQoITAse30sYy5QaG8oIkNvbXBhY3QiKSx7Q0I6e2Rkb2NzOmZ1bmN0aW9uKHgpe2MuR2V0VmlldyghMCl9fX0pLHdpZHRoOjM3MCxkYXRhOiQuZXh0ZW5kKHtzZWxlY3Rpb246W3gucGF0aFswXV0sb3BzOlsiZG9jcyIsInZpZXdzIl19LGYsIl92aWV3Ij09ZFsxXT97b3BzOlsiZGRvY3MiXSxkc2VsZWN0aW9uOltkWzJdXX06e30sZSksYWxpZ246InRvcDoxMDIlOyIsbm9zZToidG9wIixjc3M6InhncmF5IixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGVzYzohMCxib3VuZDoyMCxmb2N1czoiI2J0bi1zdGFydCJ9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fX0sIiNidG4tdmlldy1hY2wiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzO2IuZGF0YSgibW9kYWwiKT9jLm15Lm1vZGFsKCIjYnRuLXZpZXctYWNsIiwhMCk6Yy5SZXEoW3gucGF0aFswXSwiX3NlY3VyaXR5Il0pLnRoZW4oZnVuY3Rpb24oYSl7Yy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLGMubXkubW9kYWwoIiNidG4tdmlldy1hY2wiLHttYW5pZmVzdDpjLlBobygiU2VjT2JqIiksd2lkdGg6MzgwLGRhdGE6JC5leHRlbmQoITAse30se2RiczpbeC5wYXRoWzBdXSxhZG1pbnM6YS5hZG1pbnN8fHtuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczphLm1lbWJlcnN8fHtuYW1lczpbXSxyb2xlczpbXX19KSxhbGlnbjoidG9wOjEwMiU7Iixub3NlOiJ0b3AiLGNzczoieGdyYXkiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsZXNjOiEwLGJvdW5kOjIwLGZvY3VzOiIjYnRuLXN0YXJ0In0pLmFsd2F5cyhmdW5jdGlvbigpe2MuTW9kYWxzLmhlYWQ9bnVsbH0pfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y3cubGliLm5vdGUoYy5sYW5nLkVSUl9HRVRBQ0wsImVycm9yIil9KX19LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnZpZXd9fSx3YXRjaDpbIiN2aWV3LW5hbWUiXX0sIiNidG4tdmlldy1uZXdkb2MiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7Il91c2VycyI9PWEuZGF0YS5wYXRoWzBdJiYoeC5vbigiY2xpY2subXkiLGZ1bmN0aW9uKGIpe3JldHVybiB4LmRhdGEoIm1vZGFsIik/KGEubXkubW9kYWwoIiNidG4tdmlldy1uZXdkb2MiLCEwKSwhMSk6KGEuTW9kYWxzLmhlYWQmJmEuTW9kYWxzLmhlYWQubW9kYWwoITApLGEuTW9kYWxzLmhlYWQ9eCxhLm15Lm1vZGFsKCIjYnRuLXZpZXctbmV3ZG9jIix7bWFuaWZlc3Q6YS5QaG8oIlVzZXJEb2MiKSx3aWR0aDozODAsZGF0YTp7fSxhbGlnbjoidG9wOjEwMiU7bGVmdDotMTQ3cHg7Iixub3NlOiJ0b3AiLGNzczoieGdyYXkiLHNjcmVlbjohMSxlc2M6ITAsZm9jdXM6ITAsYm91bmQ6MjB9KS5hbHdheXMoZnVuY3Rpb24oKXthLk1vZGFscy5oZWFkPW51bGx9KSwhMSl9KSx4Lmh0bWwoJzxzcGFuIGNsYXNzPSJsaDE0MCI+JythLmxhbmcuQlROX05FV1VTRVJfRExHKyI8L3NwYW4+IikpfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtiLmF0dHIoImhyZWYiLCIjIitlbmNvZGVVUklDb21wb25lbnQoeC5wYXRoWzBdKSsiL19uZXciKX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4hIXgudmlldyYmeC5zZWxlY3Rpb24ubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1hY3Rpb25zIl19LCIjdmlldy1hY3Rpb25zIjp7ZGVsYXk6MTAsY3NzOntoYXNTZWxlY3Rpb246ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaGFzU2VsZWN0aW9uPSEoIiIhPXgucmVkdWNlfHwiX2ZpbmQiPT14LnZpZXcudG8oNSl8fCF4LnNlbGVjdGlvbi5pbnRlcnNlY3QodGhpcy5Sb3dzLnRvKCt4LmxpbWl0KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguaWR9KSkubGVuZ3RoKSx0aGlzLmhhc1NlbGVjdGlvbn0saXNEZG9jczpmdW5jdGlvbih4KXtyZXR1cm4iX2Rlc2lnbl9kb2NzIj09eC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIiwiI2J0bi1zZWxlY3QiXX0sIiNidG4tdmlldy1kZWxkb2NzIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbCE9YSl7Yi5CdXN5KCEwKTt2YXIgYz1iLm15LmZpbmQoIiNidG4tdmlldy1jb3B5ZG9jcyIpO2MuZGF0YSgibW9kYWwiKSYmYy5tb2RhbCghMCksYi5EZWxEb2NzKCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoMTApKX12YXIgZD1iLmxhbmdbeC5zZWxlY3Rpb24ubGVuZ3RoPjE/IkJUTl9ERUxET0NTIjoiQlROX0RFTDFET0MiXTtyZXR1cm4iX2Rlc2lnbl9kb2NzIj09eC52aWV3P2Q6ZC5zdHJpcFRhZ3MoKX0sd2F0Y2g6WyIjdmlldy1hY3Rpb25zIl19LCIjYnRuLXZpZXctY29weWRvY3MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcyxjPWIubXkuZmluZCgiI2J0bi12aWV3LWNvcHlkb2NzIik7aWYoYy5kYXRhKCJtb2RhbCIpKXJldHVybiBjLm1vZGFsKCEwKSx2b2lkIDA7Yy5tb2RhbCh7cm9vdDpiLm15LnJvb3QoKSxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSxiLlBobygiU3luY1Rhc2siKSx7cGFyYW1zOnt3aWR0aDo1MDB9fSksZGF0YTp7dGFzazoiQ29weSIsc3JjOnt1cmw6eC5wYXRoWzBdLGZpbHRlcjpbImlkcyJdLGlkczp4LnNlbGVjdGlvbi5zbGljZSgwKX19LGZvY3VzOiIjcnRhcmdldCIsbm9zZToidG9wIixhbGlnbjoidG9wOjEwMyUiLGRyYWc6Ii5jbSIsY3NzOiJ4Z3JheSIsZXNjOiEwLGJvdW5kOjB9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIWN3Lm1lKCl9LCJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiJfbG9jYWxfZG9jcyI9PXgudmlld319LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tdmlldy1jb3B5ZG9jcyIpfX0sd2F0Y2g6WyIjdmlldy1uYW1lIl19LCIjYnRuLXZpZXdjb2RlIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztyZXR1cm4gbnVsbCE9YSYmeC52aWV3JiYoYy5jbG9zZUF1dG9jb21wbGV0ZXMoKSxjLkVkU3dpdGNoKCkseC5lZGl0b3I9ITAsYy5zdGFzaFZpZXdTdGF0ZSgpKSxjLmxhbmdbIl9maW5kIj09eC52aWV3LnRvKDUpJiZ4LmdyaWQ/IkJUTl9WSUVXQ09ERV9HTSI6IkJUTl9WSUVXQ09ERSJdfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LmVkaXRvcnx8L14oX2NoYW5nZXN8X2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfCkkLy50ZXN0KHgudmlldyl9fSxldmVudHM6ImNsaWNrLm15Iix3YXRjaDpbIiN2aWV3LW5hbWUiLCIjdmlldy1ncmlkIl19LCIjYnRuLXZpZXctZGlyIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZXZlcnNlPSF4LnJldmVyc2UpLHgucmV2ZXJzZT8i4pa8Ijoi4payIn0sZXZlbnRzOiJjbGljay5teSJ9LCIjdmlldy1jb2xzIjp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEpe2lmKCJfZmluZCI9PXgudmlldy50byg1KSYmeC5ncmlkKXJldHVybiIjIjt2YXIgYixjPSt4LnRvdGFsX3Jvd3MsZD14LnNlYXJjaDtyZXR1cm4gdGhpcy5sYW5nLlRYVF9NQVBWSUVXKE1hdGgubWluKHRoaXMuUm93cy5sZW5ndGgsK3gubGltaXQpLC0xPT1jPyI/PyI6Yzw5OTk5P2M6In4iK2MubWV0cmljKDEsNCksZC5sZW5ndGg+MiYmKGI9eC5ncmlkP3RoaXMuZ1Jvd3M6dGhpcy5mUm93cyk/Yi5sZW5ndGg6bnVsbCl9LHdhdGNoOlsiI3ZpZXctcmVzdWx0cy1qc29uIiwiI3N0YXRlLXByb3h5IiwiI3ZpZXctZ3JpZCJdfSwiI3ZpZXctbGlua3MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9Ij57Mn08L2E+JyxkPXgucGF0aCxlPXgudmlldy5zcGxpdCgi77+9IiksZj1iLnAydShkWzBdKSxnPWIudHJ1bmMoZFswXSwyNSkuZXNjYXBlSFRNTCgpO3JldHVybiB4LnZpZXc/L14oX2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzKSQvLnRlc3QoeC52aWV3KT9bYy5hc3NpZ24oZixnKSwiLyIsJzxzcGFuIGNsYXNzPSJ4Z3JheSI+Jyt4LnZpZXcrIjwvc3Bhbj4gfCAiXS5qb2luKCLigIkiKToiX2ZpbmQiPT14LnZpZXcudG8oNSk/W2MuYXNzaWduKGYsZyksIi8iLCc8c3BhbiBjbGFzcz0ieGdyYXkiPl9maW5kPC9zcGFuPiddLmpvaW4oIuKAiSIpOiJfaWR4L++/vSI9PXgudmlldy50byg2KT9bYy5hc3NpZ24oZixnKSwiLyIsIl9hbGxfZG9jcyB8ICJdLmpvaW4oIuKAiSIpOiJfaWR4Ij09eC52aWV3LnRvKDQpP1tjLmFzc2lnbihmLGcpLCIvIixjLmFzc2lnbihmKyIvX2Rlc2lnbiIrZVswXS5mcm9tKDQpLCgiX2Rlc2lnbiIrZVswXS5mcm9tKDQpKS5lc2NhcGVIVE1MKCkpXS5qb2luKCLigIkiKSsiIHwgIjpbYy5hc3NpZ24oZixnKSwiLyIsYy5hc3NpZ24oZisiLyIrZVswXSxlWzBdLmVzY2FwZUhUTUwoKSldLmpvaW4oIuKAiSIpKyIgfCAiOltnLCIvIiwnPHNwYW4gY2xhc3M9InhncmF5Ij5fYWxsX2RvY3M8L3NwYW4+J10uam9pbigi4oCJIikrIiB8ICJ9LHdhdGNoOlsiI3ZpZXctcmVzdWx0cy1qc29uIiwiI3N0YXRlLXByb3h5Il19LCIjdmlldy1kZHN0YXRzIjp7YmluZDpmdW5jdGlvbih4KXtpZigiX2Rlc2lnbl9kb2NzIiE9eC52aWV3KXJldHVybiIiO3ZhciBhPTAsYj0wO3JldHVybiB0aGlzLlJvd3MuZm9yRWFjaChmdW5jdGlvbih4KXt4LnZhbHVlJiZ4LnZhbHVlLnNpemVzJiYoYSs9eC52YWx1ZS5zaXplcy5hY3RpdmUsYis9eC52YWx1ZS5zaXplcy5maWxlKX0pLGEmJmI/dGhpcy5sYW5nLlRYVF9ERFNUQVRTLmFzc2lnbih0aGlzLkJ5dGVzKGIpLHRoaXMuQnl0ZXMoYSkpOiIifSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIl9kZXNpZ25fZG9jcyIhPXgudmlld319LHdhdGNoOlsiI3ZpZXctcmVzdWx0cy1qc29uIiwiI3N0YXRlLXByb3h5Il19LCIjdmlldy13aXRoZG9jcyI6e2RlbGF5OjEwLGluaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfV0lUSERPQ1MpfSxiaW5kOiJpbmNsIixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuISF4LnZpZXd9fSx3YXRjaDpbIiN2aWV3LW5hbWUiLCIjdmlldy1ncmlkIl19LCIjdmlldy1yZWR1Y2UiOntkZWxheToxMCxpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX1JFRFVDRSl9LGJpbmQ6InJlZHVjZSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLlZpW3gudmlld118fCF0aGlzLlZpW3gudmlld10ucmVkdWNlfX0sd2F0Y2g6IiN2aWV3LW5hbWUifSwiI2J0bi1hbmNob3IiOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtiLmF0dHIoImhyZWYiKSE9eC5saW5rJiZiLmF0dHIoImhyZWYiLHgubGluayl9LHdhdGNoOiIjc3RhdGUtcHJveHkiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iX2ZpbmQiPT14LnZpZXcudG8oNSl9fX0sIiN2aWV3LXBuYXYtanNvbiI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hIXguZ3JpZH19LHdhdGNoOlsiI3ZpZXctZ3JpZCJdfSwiI2J0bi1zZWxlY3QiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYoIiIhPXgucmVkdWNlfHwiX2ZpbmQiPT14LnZpZXcudG8oNSkpcmV0dXJuIiI7dmFyIGI9dGhpcyxjPSgoeC5ncmlkP2IuZ1Jvd3M6Yi5mUm93cyl8fGIuUm93cykudG8oK3gubGltaXQpLm1hcCh4PT54LmlkKS51bmlxdWUoKSxkPXguc2VsZWN0aW9uLmludGVyc2VjdChjKSxlPWQubGVuZ3RoLGY9eC5zZWxlY3Rpb24ubGVuZ3RoLGc9Yi5sYW5nO3JldHVybiBudWxsIT1hJiYoeC5zZWxlY3Rpb249ZT94LnNlbGVjdGlvbi5zdWJ0cmFjdChjKS51bmlxdWUoKTpmP1tdOnguc2VsZWN0aW9uLmNvbmNhdChjKS51bmlxdWUoKSxlPShkPXguc2VsZWN0aW9uLmludGVyc2VjdChjKSkubGVuZ3RoKSxlJiZlPT1mP2cuVFhUX1VOU0VMRUNULmFzc2lnbihlPT1jLmxlbmd0aD9nLlRYVF9TRUxFQ1RfQUxMOmUpOiFlJiZmP2cuVFhUX1VOU0VMRUNULmFzc2lnbihmKTplJiZlIT1mP2cuVFhUX1VOU0VMRUNUX09GLmFzc2lnbihlLGYpOmcuVFhUX1NFTEVDVC5hc3NpZ24oeC5zZWFyY2gubGVuZ3RoPjI/Zy5UWFRfU0VMRUNUX0ZJTFRFUjpnLlRYVF9TRUxFQ1RfQUxMKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuISh0aGlzLmZSb3dzfHx0aGlzLlJvd3MpLmxlbmd0aHx8IiIhPXgucmVkdWNlfHwiX2ZpbmQiPT14LnZpZXcudG8oNSl9fSx3YXRjaDpbIiN2aWV3LWFjdGlvbnMiLCIjc3RhdGUtcHJveHkiLCIjYXBwLXNlYXJjaCJdfSwiI2J0bi1ncmlkLWFkZGNvbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzOzE9PXguY29sdW1ucy5sZW5ndGgmJiIudmFsdWUiPT14LmNvbHVtbnNbMF0/eC5jb2x1bW5zPWIuZGVyaXZlR3JpZENvbHVtbnMoKTp4LmNvbHVtbnMucHVzaCgiIiksYi5idWlsZEdyaWRDb2x1bW5zKCksYi5teS5yZXN0eWxlKCl9fSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZ3JpZHx8dGhpcy5Db2x1bW5zLmxlbmd0aD43fX0sd2F0Y2g6WyIjdmlldy1ncmlkIiwiI2dyaWQtcHJveHkiXX0sIiN2aWV3LXBuYXYtZ3JpZCI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5ncmlkfX0sd2F0Y2g6WyIjdmlldy1ncmlkIl19LCIjdmlldy1ncmlkLWNvbHMiOntjaGVjazohMCxkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3guc29ydGFibGUoe2F4aXM6IngiLGRpc3RhbmNlOjUsaGFuZGxlOiIudmlldy1ncmlkLWNvbHMtc29ydCJ9KSxhLmJ1aWxkR3JpZENvbHVtbnMoKX0sbWVyZ2U6ITEsYmluZDoidGhpcy5Db2x1bW5zIixsaXN0Oic8ZGl2IGNsYXNzPSJ2aWV3LWdyaWQtY29sdW1uIGRpYiB2YXQiPjxkaXYgY2xhc3M9InZpZXctZ3JpZC1jb2xzLXNvcnQiIHRpdGxlPSJEcmFnIGhlcmUgdG8gc29ydCBjb2x1bW5zIj48L2Rpdj48ZGl2IGNsYXNzPSJ3MTAwcCBkaWIgdmF0Ij48aW5wdXQgY2xhc3M9ImdyaWQtY29sdW1uLXB0ciBib2xkZXIiIHR5cGU9InRleHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48c3BhbiBpZD0iYnRuLWZvbGQiIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiBiZm9sZCBkaWIgdmF0Ij48ZGl2PuKWvDwvZGl2Pjwvc3Bhbj48L2Rpdj48L2Rpdj4nLGlkOlsiaWQiXSxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5HcmlkQ29sdW1uKCl9LHdhdGNoOlsiI2J0bi1ncmlkLWFkZGNvbCIsIiN2aWV3LWdyaWQiXX0sIiNncmlkLXByb3h5Ijp7ZGVsYXk6NTEsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoeC5ncmlkJiYoYi5Db2x1bW5zfHxbXSkubGVuZ3RoKXt2YXIgYz14LmNvbHVtbnMubGVuZ3RoO3guY29sdW1ucz1iLkNvbHVtbnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmNvbHN9KSxiLnN0YXNoVmlld1N0YXRlKCksYyE9KGIuQ29sdW1uc3x8W10pLmxlbmd0aCYmdGhpcy5teS5yZXN0eWxlKCl9fSx3YXRjaDpbIiN2aWV3LWdyaWQtY29scyJdfSwiI3JlcS1kdXIiOntkZWxheToxMDAsYmluZDpmdW5jdGlvbih4KXt2YXIgYT14LmR1cixiPXguc2l6ZTtyZXR1cm4gYSYmYj90aGlzLkJ5dGVzKGIpKyIgwrcgIithKyJtcyI6IiJ9LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5kdXJ8fCF4LnNpemV9fSx3YXRjaDpbIiNzdGF0ZS1wcm94eSJdfSwiI3N0YXRlLXByb3h5Ijp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpe3ZhciBiPXRoaXM7eC5wYXRoLnNsaWNlKDApO3gucGF0aD1iLnMycCgpO3ZhciBjPWN3LmxpYi5zZGJtKFt4LnZpZXcseC5zdGFydCx4LmxpbWl0LHgucmV2ZXJzZSx4LnJlZHVjZSsiIix4LnZpZXc/IiI6eC5pbmNsKyIiXSk7eC5zdGF0ZSE9YyYmKGIuc3Rhc2hWaWV3U3RhdGUoKSwkLm15LnJhZGlvKCJwYXRoY2hhbmdlIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aCx0aXRsZTpiLnRpdGxlKCl9KSx4LnN0YXRlPWMsL14ofF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3xfY2hhbmdlcykkLy50ZXN0KHgudmlldykmJih4LmVkaXRvcj0hMSkseC5lZGl0b3I/Yi5FZFN3aXRjaCgpOmIuRWRpdG9yLmxlbmd0aD0wLGIuR2V0VmlldyghMCksYi5teS5yZWNhbGMoIiN2aWV3LWVkLWNvbnRhaW5lciIpLHguZWRpdG9yfHxiLm15LnJlc3R5bGUoKSl9fSx3YXRjaDpbIiN2aWV3LWdyaWQiLCIjdmlldy1zdGFydGtleSIsIiN2aWV3LW5hbWUiLCIjdmlldy1saW1pdCIsIiNidG4tdmlldy1kaXIiLCIjdmlldy1yZWR1Y2UiLCIjdmlldy13aXRoZG9jcyJdLGxpc3Rlbjp7ZGJ1cGRhdGU6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzOyhPYmplY3QuaXNPYmplY3QoYSk/YS5kYjphKyIiKT09eC5wYXRoWzBdJiYoKGEuZG9jc3x8W10pLmZpbmQoL15fZGVzaWduLykmJihhLmRvY3MuZm9yRWFjaChmdW5jdGlvbih4KXtiLkRkb2NzW3hdJiZkZWxldGUgYi5EZG9jc1t4XX0pLGIuR2V0Vmlld3MoITApKSxiLkdldFZpZXcoITApKX0sZGJkZWxldGVkOmZ1bmN0aW9uKHgsYSl7aWYoYT09eC5wYXRoWzBdKXt2YXIgYj10aGlzOyhmdW5jdGlvbigpe2IubXkucm9vdCgpLnRyaWdnZXIoInRhYmNsb3NlIix7dGFiaWQ6eC50YWJpZCxlbmZvcmNlOiEwfSl9KS5kZWJvdW5jZShOdW1iZXIucmFuZG9tKDEwLDUwKSkoKX19fX0sIiN2aWV3LXJlcS1lcnJvciI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuRXJyb3IuZXNjYXBlSFRNTCgpfSxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5FcnJvcn19LHdhdGNoOlsiI3N0YXRlLXByb3h5Il19LCIjdmlldy1lZC1jb250YWluZXIiOntkZWxheToxMDAsaW5pdDpmdW5jdGlvbih4KXt9LGJpbmQ6InRoaXMuRWRpdG9yIixtYW5pZmVzdDpmdW5jdGlvbih4KXt2YXIgYT14LnR5cGU7cmV0dXJuIHRoaXMuUGhvKCJ2aWV3Ij09YT8iVmlld0VkIjoiaW5kZXgiPT1hPyJJbmRleEVkIjoiTWFuZ29FZCIpfSxsaXN0Oic8ZGl2PjxkaXYgY2xhc3M9IncxMDBwIHRhYyBwdDUwIGxoMjAwIj48ZGl2IGNsYXNzPSJjdy1idXN5IHcxMDAgaDMiPjwvZGl2PjwvZGl2PjwvZGl2PicsaWQ6WyJuYW1lIiwidHlwZSIsImRkb2MiLCJyZXYiXSx3YXRjaDpbIiNidG4tdmlld2NvZGUiXX0sIiN2aWV3LXJlc3VsdHMiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sY3NzOnt9fSwiI3ZpZXctcmVzdWx0cy1qc29uIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5URG9jcyxjPWEuVE1hcCxkPWEuVE1hbmdvLGU9YS5kYXRhO3gubGlzdCh7ZGF0YTphLlJvd3MudG8oK2UubGltaXQpLGRlbGF5OjAsY2h1bms6NTAsc29ydEJ5Om51bGwsaWQ6eD0+eC5faWR4LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFtlLnZpZXcsZS5zZXF8fCIiLGEuUm93cy5sZW5ndGgsZS52aWV3PyIiOmUuaW5jbCxudWxsPT14LmRvYyx4Ll9jaGVja2VkLGUuc2VhcmNoLmxlbmd0aD4xP2Uuc2VhcmNoOiIgIiwiX2Rlc2lnbl9kb2NzIj09ZS52aWV3fHwiX2NoYW5nZXMiPT1lLnZpZXc/W3gudmFsdWUseC52aWV3X2luZGV4XToiICJdKX0sdGVtcGxhdGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iX2xvY2FsX2RvY3MiPT1lLnZpZXd8fCFlLnZpZXcmJiFlLmluY2wubGVuZ3RoP2IoeCxhKToiX2ZpbmQiPT1lLnZpZXcudG8oNSk/ZCh4LGEpOmMoeCxhKX19KSx4Lm9uKCJjbGljay5teSIsIi5jb2wtdmFscyIsZnVuY3Rpb24oeCl7dmFyIGIsYyxkLGU9JCh4LmN1cnJlbnRUYXJnZXQpLGY9ZS5wYXJlbnQoKS5kYXRhKCJrZXkiKSxnPU9iamVjdC5pc1N0cmluZyhmKT9mOkpTT04uc3RyaW5naWZ5KGYpO2lmKCFlLmlzKCIuY29sLWpzb24iKSl7aWYoIShiPShhLlJvd3N8fFtdKS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Ll9pZHg9PWd9KSkpcmV0dXJuITE7Yi5faW5kZXgsZS5hZGRDbGFzcygiY29sLWpzb24iKSxlLmZpbmQoIj4uY29sLWVkLWNsb3NlIikubGVuZ3RofHwoZD1iLl9ranNvbitiLl92anNvbixlLmFwcGVuZChjPSQoJzxkaXYgY2xhc3M9ImNvbC1lZCBwcmUgZnM4NSBsaDEyMCBwbDQiPjwvZGl2PicpKSxlLmFwcGVuZCgnPGRpdiBjbGFzcz0iY29sLWVkLWNsb3NlIGZzMTMwIGxoMTMwIiB0aXRsZT0iezF9Ij7inJU8L2Rpdj4nLmFzc2lnbihhLlJUKCJsYW5nIikuVElQX0NMT1NFSlNPTikpLENvZGVNaXJyb3IoY1swXSx7bW9kZToiamF2YXNjcmlwdCIsbGluZU51bWJlcnM6ITEsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMH0pLnNldFZhbHVlKCIoIitkKyIpIiksYS5mU2VhcmNoJiZjWzBdLmNoaWxkcmVuWzBdLkNvZGVNaXJyb3IuYWRkT3ZlcmxheSh7dG9rZW46ZnVuY3Rpb24oeCxiKXtpZih4Lm1hdGNoKGEuY21TZWFyY2gpKXJldHVybiB4LmVhdChhLmNtU2VhcmNoKSwiZm91bmQiO2Zvcig7bnVsbCE9eC5uZXh0KCkmJiF4Lm1hdGNoKGEuY21TZWFyY2gsITEpOyk7cmV0dXJuIG51bGx9fSkpfX0pLHgub24oImNsaWNrLm15IiwiLmNvbC1lZC1jbG9zZSIsZnVuY3Rpb24oeCl7cmV0dXJuICQoeC5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKS5yZW1vdmVDbGFzcygiY29sLWpzb24iKSwhMX0pfSxkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsPT1hKXt2YXIgYyxkPXRoaXMsZT0iIj09eC5yZWR1Y2UmJiJfZmluZCIhPXgudmlldy50byg1KTtpZigheC5ncmlkKXtpZigvXihfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8KSQvLnRlc3QoeC52aWV3KXx8ZSl7dmFyIGY9Y3cubGliLmEybyh4LnNlbGVjdGlvbik7ZC5Sb3dzLmZvckVhY2goeD0+eC5fY2hlY2tlZD1mW2U/eC5pZDp4LmtleV0/ImNoZWNrZWQiOiIiKX14LnNlYXJjaC5sZW5ndGg+MiYmKGM9ZC5mU2VhcmNoKT8oZC5mUm93cz1kLlJvd3MudG8oK3gubGltaXQpLmZpbHRlcih4PT5jLnRlc3QoeC5fa2pzb24pfHxjLnRlc3QoeC5fdmpzb24pKSxiLmxpc3QoImRhdGEiLGQuZlJvd3MpKTooZC5mUm93cz1udWxsLGIubGlzdCgiZGF0YSIsZC5Sb3dzLnRvKCt4LmxpbWl0KSkpfX19LHdhdGNoOlsiI3N0YXRlLXByb3h5IiwiI3ZpZXctYWN0aW9ucyIsIiNidG4tc2VsZWN0IiwiI2FwcC1zZWFyY2giXX0sIiN2aWV3LXJlc3VsdHMtZ3JpZCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLlREb2NzLGEuVE1hcCxhLlRNYW5nbyxhLlRHcmlkTWFwKSxjPWEuZGF0YTt0cnl7eC5saXN0KHtkYXRhOihhLmdSb3dzfHxbXSkudG8oK2MubGltaXQpLGRlbGF5OjAsY2h1bms6NTAsc29ydEJ5Om51bGwsaWQ6eD0+eC5faWR4LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFtjLnZpZXcsYy5zZXF8fCIiLGEuUm93cy5sZW5ndGgseC5fY2hlY2tlZCxjLmNvbHVtbnMsbnVsbD09eC5kb2MsYy5zZWFyY2gubGVuZ3RoPjE/Yy5zZWFyY2g6IiAiLCJfZGVzaWduX2RvY3MiPT1jLnZpZXd8fCJfY2hhbmdlcyI9PWMudmlldz9beC52YWx1ZSx4LnZpZXdfaW5kZXhdOiIgIl0pfSx0ZW1wbGF0ZTpmdW5jdGlvbih4LGEpe3JldHVybiBiKHgsYSl9fSl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9eC5vbigiY2xpY2subXkiLCJ0ZC5ncmlkLWNvbHVtbiIsZnVuY3Rpb24oeCl7dmFyIGIsYyxkLGU9JCh4LmN1cnJlbnRUYXJnZXQpLGY9ZS5wYXJlbnQoKS5kYXRhKCJrZXkiKSxnPU9iamVjdC5pc1N0cmluZyhmKT9mOkpTT04uc3RyaW5naWZ5KGYpO2lmKCFlLmlzKCIuY29sLWpzb24iKSl7aWYoIShiPShhLmdSb3dzfHxbXSkuZmluZCh4PT54Ll9pZHg9PWcpKSlyZXR1cm4hMTt2YXIgaD0kKCc8dGQgY2xhc3M9ImdyaWQtY29sdW1uIGNvbC1qc29uIHByZWwiIGNvbHNwYW49InsxfSI+PC90ZD4nLmFzc2lnbihhLkNvbHVtbnMubGVuZ3RoKSk7aD1oLmluc2VydEFmdGVyKGUucGFyZW50KCkuY2hpbGRyZW4oKVswXSksYi5faW5kZXgsZD1iLl9ranNvbitiLl92anNvbixoLmFwcGVuZCgnPGRpdiBjbGFzcz0iY29sLWVkIHByZSBmczg1IGxoMTIwIj48L2Rpdj4nKSxoLmFwcGVuZCgnPGRpdiBjbGFzcz0iY29sLWVkLWNsb3NlIGZzMTMwIGxoMTMwIiB0aXRsZT0iezF9Ij7inJU8L2Rpdj4nLmFzc2lnbihhLlJUKCJsYW5nIikuVElQX0NMT1NFSlNPTikpLGM9aC5maW5kKCIuY29sLWVkIiksQ29kZU1pcnJvcihjWzBdLHttb2RlOiJqYXZhc2NyaXB0IixsaW5lTnVtYmVyczohMSxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiEwfSkuc2V0VmFsdWUoIigiK2QrIikiKSxhLmZTZWFyY2gmJmNbMF0uY2hpbGRyZW5bMF0uQ29kZU1pcnJvci5hZGRPdmVybGF5KHt0b2tlbjpmdW5jdGlvbih4LGIpe2lmKHgubWF0Y2goYS5jbVNlYXJjaCkpcmV0dXJuIHguZWF0KGEuY21TZWFyY2gpLCJmb3VuZCI7Zm9yKDtudWxsIT14Lm5leHQoKSYmIXgubWF0Y2goYS5jbVNlYXJjaCwhMSk7KTtyZXR1cm4gbnVsbH19KX19KSx4Lm9uKCJjbGljay5teSIsIi5jb2wtZWQtY2xvc2UiLGZ1bmN0aW9uKHgpe3JldHVybiAkKHguY3VycmVudFRhcmdldCkucGFyZW50KCkucmVtb3ZlKCksITF9KX0sZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbD09YSYmeC5ncmlkKXt2YXIgYz10aGlzLGQ9Yy5GLmdldFJlZlN0YXIsZT0iIj09eC5yZWR1Y2UmJiJfZmluZCIhPXgudmlldy50byg1KSxmPWMuQ29sdW1ucy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtpZih4Lmxhc3QoKSYmeC5sYXN0KCkuY29scz09YS5jb2xzKXJldHVybiB4Lmxhc3QoKS5zcGFuKz0xLHg7dmFyIGI9KGEuY2FzdD9hLmNvbHMudG8oYS5jb2xzLmxlbmd0aC1hLmNhc3QubGVuZ3RoLTIpOmEuY29scykuc3BsaXQoIi4iKTtyZXR1cm4iIiE9PWJbMF0/Yi51bnNoaWZ0KCJ2YWx1ZSIpOmIuc2hpZnQoKSx4LnB1c2goe3NlbDpiLHNwYW46MSxjb2xzOmEuY29scyxjYXN0OmEuY2FzdH0pLHh9LFtdKSxnPWN3LmxpYi5hMm8oeC5zZWxlY3Rpb24pO2MuUm93cy5mb3JFYWNoKHg9PnguX2NoZWNrZWQ9Z1tlP3guaWQ6eC5rZXldPyJjaGVja2VkIjoiIiksYy5nUm93cz1jLlJvd3MudG8oK3gubGltaXQpO3ZhciBoPXguc2VhcmNoLmxlbmd0aD4yJiZjLmZTZWFyY2g/Yy5mU2VhcmNoOm51bGw7aCYmKGMuZ1Jvd3M9Yy5nUm93cy5maWx0ZXIoeD0+aC50ZXN0KHguX2tqc29uKXx8aC50ZXN0KHguX3Zqc29uKSkpLGMuZ1Jvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3guY29scz1mLm1hcChmdW5jdGlvbihhKXt2YXIgYj1hLnNlbC5sZW5ndGg/ZCh4LGEuc2VsKTp2b2lkIDAsYz0ic3RyaW5nIj09dHlwZW9mIGIsZT1udWxsIT1oJiZoLnRlc3QoYz9iOkpTT04uc3RyaW5naWZ5KGIpKTtyZXR1cm57dmFsOmIsc3BhbjphLnNwYW4sY3NzOmU/ImNlbGwtZm91bmQiOiIiLGNhc3Q6YS5jYXN0fX0pfSksYi5saXN0KCJkYXRhIixjLmdSb3dzKX19LHdhdGNoOlsiI3ZpZXctbmFtZSIsIiN2aWV3LWdyaWQiLCIjZ3JpZC1wcm94eSIsIiNzdGF0ZS1wcm94eSIsIiN2aWV3LWFjdGlvbnMiLCIjYnRuLXNlbGVjdCIsIiNhcHAtc2VhcmNoIl19fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzEwcCBmczk1IHppMiI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgaWQ9IngtYnRuLXJvb3QiIGNsYXNzPSJkaWIgdmF0IG9oIHtfdXB3aWR0aH0gdHcxMDAiPjxhIGlkPSJidG4tcm9vdCIgY2xhc3M9Inc0MCBidXR0b24gbXIyIHRkbiBkaWIgdmF0IHBsMCBwcjAgZnc2MDAiIHRpdGxlPSJEQiBkb2MgbGlzdCI+Li4vPC9hPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiIHN0eWxlPSJ3aWR0aDpjYWxjKDM1JSArIDIzMHB4KTsiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie1RJUF9SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9ImRpYiB2YXQgbXIyIGJvbGRlciIgc3R5bGU9IndpZHRoOmNhbGMoKDEwMCUgLSAyMDRweCkgLyAyICsgMTZweCk7Ij48aW5wdXQgaWQ9InZpZXctbmFtZSIgdHlwZT0idGV4dCIgY2xhc3M9IiB3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9ImZzOTUgZGliIHZhdCIgc3R5bGU9IndpZHRoOmNhbGMoKDEwMCUgLSAyMDRweCkgLyAyIC0gNXB4KTsiPjxkaXYgY2xhc3M9ImZpLWZpbHRlciB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDZweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IGlkPSJ2aWV3LXN0YXJ0a2V5IiB0eXBlPSJ0ZXh0IiBjbGFzcz0idmF0IHVpLXNlYXJjaCB3MTAwcCIgcGxhY2Vob2xkZXI9IntQTENfU1RBUlRLRVl9IiBzcGVsbGNoZWNrPSJmYWxzZSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE3cHghaW1wb3J0YW50O3BhZGRpbmctbGVmdDoxOXB4IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdzE1IHBsMiB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTVweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykudHJpZ2dlcihcJ2lucHV0XCcpIj48L3NwYW4+PC9kaXY+PHNwYW4gY2xhc3M9ImJ1dHRvbnMgbWwyIj48YnV0dG9uIGlkPSJidG4tdmlldy1taW51cyIgY2xhc3M9IncyZW0gbXIyIHBsMCBwcjAiIHRpdGxlPSJ7VElQX1NISUZUX01JTlVTfSI+PHNwYW4gY2xhc3M9ImZpLWFycm93LWxlZnQgbzgwIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctcGx1cyIgY2xhc3M9IncyZW0gbXIyIHBsMCBwcjAiIHRpdGxlPSJ7VElQX1NISUZUX1BMVVN9Ij48c3BhbiBjbGFzcz0iZmktYXJyb3ctcmlnaHQgbzgwIj48L3NwYW4+PC9idXR0b24+PC9zcGFuPjxkaXYgY2xhc3M9ImRpYiB2YXQgdzcwIj48aW5wdXQgaWQ9InZpZXctbGltaXQiIHR5cGU9InRleHQiIGNsYXNzPSIgdzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJkaWIgdmF0IHByNyBidXR0b25zIiBpZD0idmlldy1ncmlkIj48L2Rpdj48ZGl2IGlkPSJ2aWV3LWFjdGlvbnMiIGNsYXNzPSJudyBwbDUgZGliIHZhdCIgc3R5bGU9IndpZHRoOmNhbGMoNTMlIC0gMjcwcHgpOyI+PGEgaHJlZj0iIiBpZD0iYnRuLXZpZXctbmV3ZG9jIiBjbGFzcz0iYnV0dG9uIGZzMTAwIHRkbiBkaWIgZ3JlZW4gdmF0IG1yMiBub3Q0ZGRvY3NzZWwiPjxzcGFuIGNsYXNzPSJsaDE0MCI+e0JUTl9ORVdET0N9PC9zcGFuPjwvYT48YnV0dG9uIGlkPSJidG4tdmlldy1kZWxkb2NzIiBjbGFzcz0ib2s0c2VsIG1yMiByZWQiPntCVE5fREVMRE9DU308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1jb3B5ZG9jcyIgY2xhc3M9Im9rNHNlbCBtcjIiIHhkaXNhYmxlZD57QlROX0NPUFlET0NTfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LWNvbXBhY3QiIGNsYXNzPSJub3Q0c2VsIG9rNGRkb2NzIG1yMiI+e0JUTl9DT01QQUNUfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LWFjbCIgY2xhc3M9Im5vdDRzZWwiPntCVE5fQUNMfTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJ2aWV3LXBhbmVscyIgY2xhc3M9IncxMDBwIHB0MTYgcGwyMCBwcjIwIj48c2VjdGlvbiBpZD0idmlldy1lZC1jb250YWluZXIiIGNsYXNzPSJ2YXQgcGFuZWxoZWlnaHQtMzIgYnIyIG1yMjAgYnh0b3AtMzEiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L3NlY3Rpb24+PGRpdiBpZD0idmlldy1wYW5lbCIgY2xhc3M9ImRpYiB2YXQgcGFuZWxoZWlnaHQtMzIgYnIyIj48ZGl2IGNsYXNzPSJiZy1wZ3JheSBiYnMgbGgxNjAgbncgb2ggZWxsIHZpZXctcmVzdWx0cy1oZWFkIHhwYW5lbCBiYXMiPjxkaXYgY2xhc3M9Imhjb2x3MSBkaWIgdmF0IHB0MSBudyBvaCBlbGwgcHIyIj48c3BhbiBpZD0iYnRuLXZpZXctZGlyIiBjbGFzcz0iZGliIHBsOCBwcjYgbXIyIHZhdCBjcCBvNTAgZnM4MCBwdDIgcHNldWRvbGluayB0ZG4gaDMwIj48L3NwYW4+PGRpdiBpZD0idmlldy1jb2xzIiBjbGFzcz0iZGliIHZhdCBudyB4Z3JheSBtcjgiPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctYnRucy1ib3ggZGliIHZhdCI+PGRpdiBpZD0iYnRuLXNlbGVjdCIgY2xhc3M9ImJ1dHRvbiB4YnV0dG9uIHB0MiBoMjUgbXQxIGZzOTAgbGgxMzAgdGRuIGRpYiB2YXQgbWwzIGhpZGUiPjwvZGl2PjxkaXYgaWQ9ImJ0bi12aWV3Y29kZSIgY2xhc3M9ImJ1dHRvbiB4YnV0dG9uIHB0MiBoMjUgbXQxIGZzOTAgbGgxMzAgdGRuIGRpYiB2YXQgbWwzIGhpZGUiIHRpdGxlPSJ7VElQX1ZJRVdDT0RFfSI+e0JUTl9WSUVXQ09ERX08L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJ2aWV3LXBuYXYtanNvbiIgY2xhc3M9Imhjb2x3MiBkaWIgcHQxIGdyYXkgZnM5MCI+PHNwYW4gY2xhc3M9InZpZXctZWRpdG9yLWhpZGUgZ3JheSBmciBwcjggdzM1cCBlbGwgdGFyIj48c3BhbiBpZD0idmlldy1saW5rcyI+PC9zcGFuPjxhIGhyZWY9IiIgaWQ9ImJ0bi1hbmNob3IiIGNsYXNzPSJ0ZG4gbzcwIGRpYiB2YXQgbXQxIG1iLTEiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0ie1RJUF9BTkNIT1J9Ij48c3BhbiBjbGFzcz0iZmktYW5jaG9yIj48L3NwYW4+PC9hPjwvc3Bhbj48c3BhbiBpZD0idmlldy1yZWR1Y2UiIGNsYXNzPSJtdDEgcGw3IGhpZGUiPjwvc3Bhbj48c3BhbiBpZD0idmlldy13aXRoZG9jcyIgY2xhc3M9Im10MSBoaWRlIj48L3NwYW4+PHNwYW4gaWQ9InZpZXctZGRzdGF0cyIgY2xhc3M9Im10MSBwbDcgeGdyYXkgaGlkZSI+PC9zcGFuPjwvZGl2PjxkaXYgaWQ9InZpZXctcG5hdi1ncmlkIiBjbGFzcz0iaGNvbHcyIGRpYiB2YXQgZnM5NSBncmF5IGhpZGUiPjxkaXYgaWQ9InZpZXctZ3JpZC1jb2xzIj48L2Rpdj48ZGl2IGlkPSJidG4tZ3JpZC1hZGRjb2wiIGNsYXNzPSJidXR0b24gcDAgbGgxNjAgZnMxMTAgdGRuIGRpYiB2YXQgYmxzIGJvbGRlciB0YWMiIHRpdGxlPSJ7VElQX0FERENPTH0iPis8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJ2aWV3LXJlcS1lcnJvciIgY2xhc3M9IncxMDBwIGhpZGUgcmVkMSB0YWMiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTBweDtsZWZ0OjA7Ij48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1yZXN1bHRzIiBjbGFzcz0icGFuZWxoZWlnaHQtNjMgZ3JheS0xIGxoMTcwIGJ4dG9wIiBzdHlsZT0ib3V0bGluZTpub25lOyI+PHNlY3Rpb24gaWQ9InZpZXctcmVzdWx0cy1qc29uIiBjbGFzcz0idzEwMHAiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L3NlY3Rpb24+PHRhYmxlIGNsYXNzPSJncmlkLXRhYmxlIiBjZWxsc3BhY2luZz0iMCI+PHRib2R5IGlkPSJ2aWV3LXJlc3VsdHMtZ3JpZCIgY2xhc3M9Im15LWNvbnRhaW5lciI+PC90Ym9keT48L3RhYmxlPjwvc2VjdGlvbj48L2Rpdj48L3NlY3Rpb24+PGRpdiBpZD0ic3RhdGUtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj48ZGl2IGlkPSJncmlkLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PGRpdiBpZD0icmVxLWR1ciIgY2xhc3M9ImhpZGUiPjwvZGl2Picsc3R5bGU6eyIgI3ZpZXctYWN0aW9ucyI6eyIgLm5vdDRzZWwiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLm9rNHNlbCI6ImRpc3BsYXk6bm9uZTsiLCIuaGFzU2VsZWN0aW9uIjp7IiAubm90NHNlbCI6ImRpc3BsYXk6bm9uZTsiLCIgLm9rNHNlbCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyIsIi5pc0Rkb2NzIjp7IiAub2s0ZGRvY3MiOiJkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7IiwiIC5ub3Q0ZGRvY3NzZWwiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9fX0sIiAjcmVxLWR1ciI6InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTAuNzVlbTsgcmlnaHQ6MyU7Zm9udC1zaXplOjgwJTsgbGluZS1oZWlnaHQ6MS4yNWVtOyBjb2xvcjojOGE5MDlhOyBib3JkZXI6MXB4IHNvbGlkICNjYmQzZGI7YmFja2dyb3VuZDp3aGl0ZTsgYm9yZGVyLXJhZGl1czoxMHB4OyBwYWRkaW5nOjBweCA1cHggMXB4IDVweDsiLCIgI3ZpZXctcGFuZWxzIjp7IiI6eyIgI3ZpZXctcGFuZWwiOiJ3aWR0aDoxMDAlOyIsIiAjdmlldy1lZC1jb250YWluZXIiOiJkaXNwbGF5Om5vbmU7d2lkdGg6MzUlOyIsIiAuaGNvbHcxIjoid2lkdGg6MzglOyB0cmFuc2l0aW9uOndpZHRoIDAuMXM7IiwiIC5oY29sdzIiOiJ3aWR0aDo2MiU7IHRyYW5zaXRpb246d2lkdGggMC4xczsifSwiLnZpZXctZWRpdG9yIjp7IiAjdmlldy1wYW5lbCI6IndpZHRoOmNhbGMoNjAlIC0gMjBweCk7IiwiICN2aWV3LWVkLWNvbnRhaW5lciI6IndpZHRoOjQwJTsgZGlzcGxheTppbmxpbmUtYmxvY2s7ICIsIiAuaGNvbHcxIjoid2lkdGg6MzglOyIsIiAuaGNvbHcyIjoid2lkdGg6NjIlOyIsIiAudmlldy1lZGl0b3ItaGlkZSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7In0sIi52aWV3LWVkaXRvci52aWV3LW1hbmdvIjp7IiAjdmlldy1wYW5lbCI6IndpZHRoOmNhbGMoNjUlIC0gMjBweCk7IiwiICN2aWV3LWVkLWNvbnRhaW5lciI6IndpZHRoOjM1JTsgZGlzcGxheTppbmxpbmUtYmxvY2s7In0sIi52aWV3LW1hbmdvIjp7IiAjdmlldy1yZXN1bHRzIjp7IiAuY29sLWlkcyI6IndpZHRoOjclO3BhZGRpbmc6M3B4IDJweCAzcHggN3B4OyIsIiAuY29sLXZhbHMiOiJ3aWR0aDo5MyU7IHBhZGRpbmctbGVmdDo1cHg7In0sIiAjYnRuLXZpZXctZGlyIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsiLCIgI3ZpZXctY29scyI6InBhZGRpbmctbGVmdDo2cHg7IiwiLm1vZGUtZ3JpZCI6eyIgLmhjb2x3MSI6IndpZHRoOjY1cHghaW1wb3J0YW50OyIsIiAuaGNvbHcyIjoid2lkdGg6Y2FsYygxMDAlIC0gNjVweCkhaW1wb3J0YW50OyIsIiB0YWJsZS5ncmlkLXRhYmxlIjp7IiB0ZC5nY29sdzAiOiJ3aWR0aDo2NXB4IWltcG9ydGFudDsifX19LCIudmlldy1lZGl0b3Iudmlldy1pbmRleCI6eyIgI3ZpZXctcGFuZWwiOiJ3aWR0aDpjYWxjKDY1JSAtIDIwcHgpOyIsIiAjdmlldy1lZC1jb250YWluZXIiOiJ3aWR0aDozNSU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9LCIudmlldy1pbmRleCI6eyIgLnZpZXctdG9maWx0ZXIiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LCIudmlldy1jaGFuZ2VzIjp7IiAudmlldy10b2ZpbHRlciI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7In0sIi5tb2RlLWpzb24iOnsiIC5ncmlkLXRhYmxlIjoiZGlzcGxheTpub25lOyJ9LCIubW9kZS1ncmlkIjp7IiAuaGNvbHcxIjoid2lkdGg6MzMwcHg7IGJhY2tncm91bmQtY29sb3I6I2UzZTllYzsgbWluLWhlaWdodDogMjlweDsiLCIgLmhjb2x3MiI6IndpZHRoOmNhbGMoMTAwJSAtIDMzMHB4KTsiLCIgLnZpZXctYnRucy1ib3giOiJmbG9hdDpyaWdodCIsIi52aWV3LWVkaXRvciI6eyIgLmhjb2x3MSI6IndpZHRoOjI4MHB4OyIsIiAuaGNvbHcyIjoid2lkdGg6Y2FsYygxMDAlIC0gMjgwcHgpOyIsIiB0YWJsZS5ncmlkLXRhYmxlIjp7IiB0ZC5nY29sdzAiOiJ3aWR0aDoyODBweDsifX0sIiAjdmlldy1ncmlkLWNvbHMiOnsiIjoid2lkdGg6Y2FsYygxMDAlIC0gMzBweCk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IiwiIGlucHV0IjoiYm9yZGVyLWxlZnQtY29sb3I6I2UzZTllYzsifSwiICNidG4tZ3JpZC1hZGRjb2wiOnsiIjoiYm9yZGVyOm5vbmU7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZTNlOWVjIWltcG9ydGFudDsgd2lkdGg6MzBweDsgaGVpZ2h0OjI5cHg7IGJvcmRlci1yYWRpdXM6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmOCFpbXBvcnRhbnQ7IiwiOmhvdmVyIjoiYmFja2dyb3VuZC1jb2xvcjp3aGl0ZSFpbXBvcnRhbnQ7In0sIiAudmlldy1yZXN1bHRzLWhlYWQiOiJiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmYhaW1wb3J0YW50IiwiIHRhYmxlLmdyaWQtdGFibGUiOnsiIjoiYm9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlOyB0YWJsZS1sYXlvdXQ6Zml4ZWQ7IHdpZHRoOjEwMCU7IiwiIHRyIjoid2lkdGg6MTAwJSIsIiB0cjpsYXN0LWNoaWxkIHRkIjoiYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VmZjM7IiwiIHRkIjp7IiI6InBhZGRpbmc6MDsgdmVydGljYWwtYWxpZ246dG9wOyB0cmFuc2l0aW9uOndpZHRoIDAuMXM7IG1pbi1oZWlnaHQ6IDJlbTsiLCIuZ2NvbHYiOiJib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMCwxNCwzNSwwLjA3KTsiLCIuZ2NvbHY+ZGl2IjoicGFkZGluZzogNXB4IDVweCA2cHggN3B4OyBtaW4taGVpZ2h0OjJlbTsiLCIuZ2NvbHcwIjoid2lkdGg6MzMwcHg7ICIsIiA+ZGl2Ijoid2lkdGg6MTAwJTsgd29yZC1icmVhazpicmVhay13b3JkOyIsIiA+ZGl2LncxMDBwLTMwIjoid2lkdGg6Y2FsYygxMDAlIC0gMzBweCk7IHdvcmQtYnJlYWs6YnJlYWstd29yZDsgcGFkZGluZzogNnB4IDdweCA2cHggMDsiLCIuY29sLWpzb24iOnsiIH50ZCI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiIjoicGFkZGluZzowIWltcG9ydGFudDsifX19LCIgI3ZpZXctcmVzdWx0cy1qc29uIjoiZGlzcGxheTpub25lOyIsIiAiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5Db2x1bW5zfHxbXSkubGVuZ3RofHwxLGM9YS5teS5maW5kKCIjdmlldy1yZXN1bHRzIiksZD0iX2ZpbmQiPT1hLmRhdGEudmlldy50byg1KSxlPSgoYy5sZW5ndGg/Yy53aWR0aCgpOjEwMjQpLShkPzY1OmEuZGF0YS5lZGl0b3I/MjgwOjMzMCkpL2I7cmV0dXJuIGEuY2xvc2VBdXRvY29tcGxldGVzJiZhLmNsb3NlQXV0b2NvbXBsZXRlcygpLFsxLDIsMyw0LDUsNiw3LDhdLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4WyIgLmdjb2x3IithXT0id2lkdGg6IithKmUrInB4OyIseH0seyIgLnZpZXctZ3JpZC1jb2x1bW4iOiJ3aWR0aDpjYWxjKCgxMDAlICsgMzBweCkvICIrYisiKTsiLCIgLnZpZXctZ3JpZC1jb2x1bW46bGFzdC1jaGlsZCI6IndpZHRoOmNhbGMoKCgxMDAlICsgMzBweCkvICIrYisiKSAtIDMwcHgpOyJ9KX19LCIgLnZpZXctaG92ZXJidG4udmlldy1lZGl0dXNlciI6ImRpc3BsYXk6bm9uZSIsIi5kYi11c2VycyAudmlldy1ob3ZlcmJ0bi52aWV3LWVkaXR1c2VyIjoiZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50OyJ9LCIgI3ZpZXctZ3JpZC1jb2xzIjp7IiAudmlldy1ncmlkLWNvbHVtbiI6eyIudWktc29ydGFibGUtaGVscGVyIjp7IiI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpOyIsIiAudmlldy1ncmlkLWNvbHMtc29ydCI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgxMjAsMTY4LDIyMiwwLjUpOyJ9fSwiIGlucHV0Ijp7IiI6ImJvcmRlci1yYWRpdXM6IDA7IGJvcmRlci10b3A6bm9uZTsgYm9yZGVyLWJvdHRvbTpub25lOyBib3JkZXItcmlnaHQ6bm9uZTsgcGFkZGluZy1yaWdodDoyMHB4O3dpZHRoOiBjYWxjKDEwMCUgKyAxcHgpOyBoZWlnaHQ6MjlweDsgbGluZS1oZWlnaHQ6MjlweDsgYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgIiwiOmZvY3VzIjoiYmFja2dyb3VuZDpyZ2JhKDAsMTU1LDI1NSwwLjEyKTsifSwiIC52aWV3LWdyaWQtY29scy1zb3J0Ijp7IiI6ImN1cnNvcjptb3ZlOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgaGVpZ2h0OjNweDsgei1pbmRleDoxOyB3aWR0aDoxMDAlOyB0cmFuc2l0aW9uOmJhY2tncm91bmQgMC4zczsiLCI6aG92ZXIiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTIwLDE2OCwyMjIsMC41KTsifX0sIiAjdmlldy1yZXN1bHRzIjp7IiI6ImxpbmUtaGVpZ2h0OjEuNGVtOyIsIiAudmlldy1yb3ciOiJtaW4taGVpZ2h0OjJlbTsiLCIgLnZpZXctcm93Om50aC1jaGlsZCgybiswKSI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyMDYsMjE0LDIyNiwwLjIpOyIsIiAudmlldy1ob3ZlcmJ0biI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjIwcHg7bGluZS1oZWlnaHQ6MS4yZW07b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjVzO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyOyIsIiAudmlldy1yb3c6aG92ZXIgLnZpZXctaG92ZXJidG4iOiJvcGFjaXR5OjAuNTsiLCIgLnZpZXctcm93OmhvdmVyIC52aWV3LWhvdmVyYnRuOmhvdmVyIjoib3BhY2l0eTowLjg7IiwiIC52aWV3LWhvdmVyYnRuLmhvdmVyIjoib3BhY2l0eTowLjc7IiwiIC52aWV3LXJvdz5kaXYiOiJkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7d29yZC13cmFwOiBicmVhay13b3JkOyIsIiAuY29sLWlkcyI6IndpZHRoOjM4JTsgcGFkZGluZzo0cHggMjBweCA1cHggOHB4OyIsIiAuY29sLWlkcy53MzVwLTMwIjoid2lkdGg6Y2FsYygzOCUgLSAzMHB4KTsiLCIgLmNvbC12YWxzIjp7IiI6IndpZHRoOjYyJTsgcGFkZGluZy1sZWZ0OjEwcHg7IiwiIC5jb2wtdHJpbSI6ImN1cnNvcjpwb2ludGVyIiwiIC5jb2wtZWQiOiJkaXNwbGF5Om5vbmU7IiwiIC5jb2wtZWQtY2xvc2UiOiJkaXNwbGF5Om5vbmU7In0sIiAudzQwcC0zMCI6IndpZHRoOmNhbGMoNDAlIC0gMzBweCk7IiwiIC53MzhwLTMwIjoid2lkdGg6Y2FsYygzOCUgLSAzMHB4KTsiLCIgLnc2MnAiOiJ3aWR0aDo2MiU7In0sIiAuYmJzIjoiYm9yZGVyLWJvdHRvbS1jb2xvcjojZTNlOWVjOyIsIiAuYmFzIjoiYm9yZGVyLWNvbG9yOiNlM2U5ZWM7IiwiIC5icnMiOiJib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlM2U5ZWM7IiwiIC52aWV3LWZvdW5kIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzIsMTIxLDAuNzUpOyBib3JkZXItcmFkaXVzOjJweDsiLCIgLmNlbGwtZm91bmQiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIzMiwxMjEsMC40KTsiLCIgLm15LW1vZGFsLWZvcm0gLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OmNhbGMoMjAgKiAxNnB4ICsgNnB4KTsiLCIgLm15LW1vZGFsLWZvcm0gLkNvZGVNaXJyb3IiOnsiIjoibWluLWhlaWdodDoxNTBweDtoZWlnaHQ6YXV0bztmb250LXNpemU6MTNweCFpbXBvcnRhbnQiLCIgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4IWltcG9ydGFudDsiLCIgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyJ9LCIgLnVpLXdpZGdldCI6ImZvbnQtc2l6ZToxMDAlIiwiIC51aS1hdXRvY29tcGxldGUiOiJmb250LXNpemU6MC45ZW07IGxpbmUtaGVpZ2h0OjEuMjVlbTsgbWF4LWhlaWdodDo1MHZoOyB6LWluZGV4OjE4MDA7b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyIsIiAuYmZvbGQiOnsiIjpbIndpZHRoOjIwcHghaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyAiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsiLCJtYXJnaW4tbGVmdDotMjFweDsgei1pbmRleDorMTsiXSwiIGRpdiI6ImZvbnQtc2l6ZTo2MCU7IG9wYWNpdHk6MC41O3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjMuNGVtO3dpZHRoOjEwMCU7In19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEubGFuZzt4Lmh0bWwoJzxkaXYgY2xhc3M9ImdyYXkxIGZzMTA1IHB0MTAwIHBiMTAwIHRhYyI+ezF9PC9kaXY+Jy5hc3NpZ24oYy5NU0dfTE9BRElORykpLGEuTHM9YS5QaG8oIkxzIiksT2JqZWN0LmtleXMoYS5GKS5mb3JFYWNoKGZ1bmN0aW9uKHgpeyJmdW5jdGlvbiI9PXR5cGVvZiBhLkZbeF0mJihhW3hdPWEuRlt4XS5iaW5kKGEpKX0pLE9iamVjdC5rZXlzKGEuVCkuZm9yRWFjaChmdW5jdGlvbih4KXthLlRbeF09YS5QaG8oIkNvbXBpbGVUIikoYS5UW3hdKX0pLGEuVmlld3M9YS5EZWZhdWx0Vmlld3MoKSxhLlRNYXA9YS5UTWFwKCksYS5URG9jcz1hLlREb2NzKCksYS5UTWFuZ289YS5UTWFuZ28oKSxhLlRHcmlkTWFwPWEuVEdyaWRNYXAoKTt2YXIgZD1hLlBobygiTHMiKSgiTWFuZ28uIitiLnBhdGhbMF0pO3JldHVybiBPYmplY3QuaXNPYmplY3QoZCkmJmQucXVlcnkmJiQuZXh0ZW5kKGIubWFuZ28sZCkseC5vbigiY2xpY2subXkiLCIudmlldy10b2ZpbHRlciIsZnVuY3Rpb24oeCl7dmFyIGQ9JCh4LmN1cnJlbnRUYXJnZXQpLmRhdGEoImZpbHRlciIpO2Iuc3RhcnQ9T2JqZWN0LmlzU3RyaW5nKGQpPy9eIlxkKyIkLy50ZXN0KGQpP2Q6ZC5yZXBsYWNlKC9eInwiJC9nLCIiKTpKU09OLnN0cmluZ2lmeShkKSxjdy5saWIubm90ZShjLk1TR19TVEFSVF9DSEFOR0UuYXNzaWduKGIuc3RhcnQpKSxhLm15LnJlY2FsYygiI3ZpZXctc3RhcnRrZXkiKSxhLm15LmNoZWNrKCIjdmlldy1zdGFydGtleSIpfS5kZWJvdW5jZSg0MCkpLHgub24oImNsaWNrLm15IiwiLmJ0bi1vcGVuLWRvYyIsZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmN1cnJlbnRUYXJnZXQpLmRhdGEoInVybCIpO2EuUGhvKCJTd2l0Y2giKShiLnNwbGl0KCIvIikubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoeCl9KSl9KSx4Lm9uKCJjbGljay5teSIsIi52aWV3LWVkaXR1c2VyIixmdW5jdGlvbihiKXt2YXIgZD0kKGIuY3VycmVudFRhcmdldCksZT0kKGIuY3VycmVudFRhcmdldCkuZGF0YSgidXNlciIpO2lmKCciJz09ZVswXSYmKGU9SlNPTi5wYXJzZShlKSksIWUuc3RhcnRzV2l0aCgib3JnLmNvdWNoZGIudXNlcjoiKSlyZXR1cm4gY3cubGliLm5vdGUoYy5FUlJfTk9UQVVTRVIsImVycm9yIiksITE7ZC5hZGRDbGFzcygiaG92ZXIiKSxhLlJlcShbIl91c2VycyIsZV0pLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGQubW9kYWwoe3Jvb3Q6eCxtYW5pZmVzdDphLlBobygiVXNlckRvYyIpLGRhdGE6Yix3aWR0aDozODAsYm91bmQ6MCxub3NlOiJsZWZ0Iixjc3M6InhncmF5IixhbGlnbjoibGVmdDoxMDAlO3RvcDotNTdweDsiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsZXNjOiEwfSl9KS5hbHdheXMoZnVuY3Rpb24oKXtkLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9LmRlYm91bmNlKDUpKSx4Lm9uKCJjbGljay5teSIsJ2lucHV0W25hbWU9ImRvY3Mtc2VsZWN0aW9uIl0nLGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKS52YWwoKTskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpP2Iuc2VsZWN0aW9uPWIuc2VsZWN0aW9uLmFkZCh4KS51bmlxdWUoKTpiLnNlbGVjdGlvbi5yZW1vdmUoeCksYS5teS5jaGVjaygiI3ZpZXctYWN0aW9ucyIpfSksIl91c2VycyI9PWIucGF0aFswXSYmYS5QaG8oIkNmZyIpLmxpc3RDb2xzLmluZGV4T2YoInNlY3VyaXR5Iik+LTEmJngudGhlbihmdW5jdGlvbigpe2EuR2V0U2VjKCl9KSx4LnRoZW4oZnVuY3Rpb24oKXthLm5pY2VTY3JvbGwoeC5maW5kKCIjdmlldy1uYW1lIikuZGF0YSgpLnNlbGVjdDIuZHJvcGRvd24uZmluZCgiLnNlbGVjdDItcmVzdWx0cyIpLHtib3VuY2VzY3JvbGw6ITAsY3Vyc29yY29sb3I6IiMyMzQiLGN1cnNvcm9wYWNpdHltaW46LjEsY3Vyc29yb3BhY2l0eW1heDouNCxyYWlscGFkZGluZzp7cmlnaHQ6MX19KX0pLGEuQnVzeSghMCksYS5QaG8oIlBva2VCdWNrZXQiKShiLnBhdGhbMF0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYS5HZXRWaWV3cyghMSwhMCkudGhlbihmdW5jdGlvbigpe3ZhciB4PWIucGF0aFsyXSxjPWIucGF0aFszXTtpZigiX2ZpbmQiPT1iLnBhdGhbMV0pe3ZhciBkPXgrIiI7Yi5tYW5nby5xdWVyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PWR9KXx8KGQ9IkRlZmF1bHQgcXVlcnkiKSxiLnZpZXc9Il9maW5k77+9IitkLGIuZWRpdG9yPSEwfWVsc2UgaWYoIl9pbmRleCI9PWIucGF0aFsxXSkiRGVmYXVsdCBpbmRleCIhPWIucGF0aFsyXXx8Yi5wYXRoWzNdP2Iudmlldz0iX2lkeC97MX3vv717Mn0iLmFzc2lnbihiLnBhdGhbMl0sYi5wYXRoWzNdKTpiLnZpZXc9Il9pZHgv77+9RGVmYXVsdCBpbmRleCIsYi5lZGl0b3I9ITA7ZWxzZSBpZigvXihfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8X2NoYW5nZXMpJC8udGVzdChiLnBhdGhbMV0pKWIudmlldz1iLnBhdGhbMV07ZWxzZSBpZih4JiZjKXt2YXIgZT0iX2Rlc2lnbi8iK3grIu+/vSIrYztiLnZpZXc9YS5WaVtlXT9lOiIifX0pfSkudGhlbihmdW5jdGlvbigpe2EucmVzdG9yZVZpZXdTdGF0ZSgpLHguaHRtbChhLkhUTUwuYXNzaWduKGMpLmFzc2lnbih7X3Vwd2lkdGg6Yi52aWV3PyJ3NDIiOiJ3MCJ9KSl9KS5mYWlsKGZ1bmN0aW9uKCl7YS5CdXN5KCExKX0pfSxGOntEZWZhdWx0Vmlld3M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5sYW5nLGI9eC5QaG8oWyJDb3VjaCIsInZlciJdKSxjPVt7aWQ6IiIsdGV4dDphLk9QVF9BTExET0NTLG9yZGVyOiJfXzEifSx7aWQ6Il9kZXNpZ25fZG9jcyIsdGV4dDphLk9QVF9ERE9DUyxvcmRlcjoiX18yIn0se2lkOiJfY2hhbmdlcyIsdGV4dDphLk9QVF9DSEFOR0VTLG9yZGVyOiJfXzMifV07aWYoYj49IjAwMi4wMDAiJiYoYj49IjAwMi4wMDEuMDAyIiYmYy5wdXNoKHtpZDoiX2xvY2FsX2RvY3MiLHRleHQ6YS5PUFRfTE9DQUwsb3JkZXI6Il9fNCJ9KSwiX25vZGUvX2xvY2FsL19ub2RlcyIhPXguZGF0YS5wYXRoWzBdKSl7dmFyIGQ9e3RleHQ6YS5PUFRfTVFSSUVTLGNoaWxkcmVuOltdLG9yZGVyOiJ+MiJ9O3guZGF0YS5tYW5nby5xdWVyeS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2QuY2hpbGRyZW4ucHVzaCh7aWQ6Il9maW5k77+9Iit4Lm5hbWUsdGV4dDoiwqDCoCIreC5uYW1lLG9yZGVyOigiRGVmYXVsdCBxdWVyeSI9PXgubmFtZT8iXzEgIjoiXzIgIikreC5uYW1lfSl9KSxkLmNoaWxkcmVuPWQuY2hpbGRyZW4uc29ydEJ5KCJvcmRlciIpLGMucHVzaChkKTt2YXIgZT17dGV4dDphLk9QVF9NSU5ESUNFUyxjaGlsZHJlbjpbe2lkOiJfaWR4L++/vSIreC5EZWZhdWx0TWFuZ29JZHgubmFtZSx0ZXh0OiLCoMKgIit4LkRlZmF1bHRNYW5nb0lkeC5uYW1lLG9yZGVyOiJfMCJ9XSxvcmRlcjoifjMifTtjLnB1c2goZSl9cmV0dXJuIGN9LFRNYXA6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5QaG8oImoyaCIpLGM9eC5ULmRlc2lnbl9kb2NzLGQ9eC5ULnZpZXcsZT14LlQudmlld19ub2lkLGY9eC5ULnZpZXdfZmlsdGVyLGc9eC5ULnZpZXdfZmlsdGVyX25vaWQ7cmV0dXJuIGZ1bmN0aW9uKGwsbSl7dmFyIG4sbz14LlJvd3MubGVuZ3RoLHA9Il9pZHgiPT1hLnZpZXcudG8oNCkscT0iIj09eC5kYXRhLnJlZHVjZSxyPSJfZGVzaWduX2RvY3MiPT1hLnZpZXcscz0iX2NoYW5nZXMiPT1hLnZpZXcsdD1vPDEyMD9oOm88MjUwP2k6aix1PW88NDA/MmUzOm88NjA/NTAwOm88MTIwPzMwMDoyMDAsdj1vPDQwPzU6bzw2MD80Om88MTIwPzM6bzwyNTA/MzoyLHc9IWEudmlldyYmYS5pbmNsLmxlbmd0aD9sLmRvYzpwP2wua2V5OmwudmFsdWUseT1iKHcsdSxbIl9pZCIsImlkIiwibmFtZSJdLHYpO3JldHVybiAxPT15Lmxlbmd0aCYmInNob3J0Ij09eVswXVswXSYmKCJ7Ij09eVswXVsxXVswXT95WzBdWzFdPSJPYmplY3QgIit5WzBdWzFdOiJbIj09eVswXVsxXVswXSYmKHlbMF1bMV09IkFycmF5ICIreVswXVsxXSkpLG49eS5tYXAodCkuam9pbigiIikseC5mU2VhcmNoJiZhLnNlYXJjaC5sZW5ndGg+Mj8ocT9mOmcpLmFzc2lnbih7X2lkeDpsLl9pZHgsX2lkeHNhZmU6bC5faWR4c2FmZSxjaGVja2VkOmwuX2NoZWNrZWQsaWQ6bC5rZXksaWRzYWZlZmlsdGVyOihwP2wuaWQ6ayhsLmtleSkpLnJlcGxhY2UoeC5mU2VhcmNoLCLvv7EkMe+/sCIpLmVzY2FwZUhUTUwoKS5yZXBsYWNlKCLvv7EiLCc8c3BhbiBjbGFzcz0idmlldy1mb3VuZCI+JykucmVwbGFjZSgi77+wIiwiPC9zcGFuPiIpLGlkc2FmZToocD9sLmlkOmsobC5rZXkpKS5lc2NhcGVIVE1MKCksZG9jaWRzYWZlOm51bGwhPWwuaWQ/KGwuaWQrIiIpLmVzY2FwZUhUTUwoKToiIixocmVmOmwuaWQ/eC5wMnUoW2EucGF0aFswXSxsLmlkXSkuam9pbigiLyIpLmVzY2FwZUhUTUwoKToiIixub2RvYzpsLmlkPyIiOiJoaWRlIixrZXk6bC5rZXksaHRtbDpuLGNzczpuLmxlbmd0aD4yNTA/ImZzOTUgbGgxNDAgcHQzIHBiMyI6ImxoMTQwIHB0MiBwYjIifSk6KHJ8fHM/YzpxP2Q6ZSkuYXNzaWduKHtfaWR4OmwuX2lkeCxfaWR4c2FmZTpsLl9pZHhzYWZlLF9kZWw6bC5fZGVsLGNoZWNrZWQ6bC5fY2hlY2tlZCxpZDpsLmtleSxpZHNhZmU6KHJ8fHM/bC5rZXk6cD9sLmlkOmsobC5rZXkpKS5lc2NhcGVIVE1MKCksZG9jaWRzYWZlOm51bGwhPWwuaWQ/KGwuaWQrIiIpLmVzY2FwZUhUTUwoKToiIixocmVmOmwuaWQ/eC5wMnUobC5fZGVsP1thLnBhdGhbMF0sbC5pZCwiXyIrbC5fZGVsXTpbYS5wYXRoWzBdLGwuaWRdKS5qb2luKCIvIikuZXNjYXBlSFRNTCgpOiIiLG5vZG9jOmwuaWQ/IiI6ImhpZGUiLGtleTpsLmtleSxodG1sOm4sY3NzOm4ubGVuZ3RoPjI1MD8iZnM5NSBsaDE0MCBwdDMgcGIzIjoibGgxNDAgcHQyIHBiMiJ9KX07ZnVuY3Rpb24gaCh4KXtyZXR1cm4geFswXT8nPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiI6eFsxXX1mdW5jdGlvbiBpKHgpe3JldHVybiJicmFja2V0IiE9eFswXSYmImtleSIhPXhbMF0/eFsxXTonPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiJ9ZnVuY3Rpb24gaih4KXtyZXR1cm4geFsxXX1mdW5jdGlvbiBrKHgpe3JldHVybiBKU09OLnN0cmluZ2lmeSh4LG51bGwsMSkucmVwbGFjZSgvXlxzKy9nbSwiICIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL3tccy9nLCJ7IikucmVwbGFjZSgvXHN9L2csIn0iKS5yZXBsYWNlKC9cW1xzL2csIlsiKS5yZXBsYWNlKC9cc1xdL2csIl0iKX19LFREb2NzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguVC5kb2NzLGM9eC5ULnVzZXJfZG9jcztyZXR1cm4iX3VzZXJzIiE9YS5wYXRoWzBdP2Z1bmN0aW9uKHgsYSl7cmV0dXJuIGIuYXNzaWduKGQoeCxhKSl9OmZ1bmN0aW9uKHgsYSl7dmFyIGU9ZCh4LGEpO3JldHVybiJvcmcuY291Y2hkYi51c2VyOiIhPXgua2V5LnN1YnN0cigwLDE3KT9iLmFzc2lnbihlKTpjLmFzc2lnbihlKX07ZnVuY3Rpb24gZChiLGMpe3JldHVybntpZDpiLmtleSxpZHNhZmU6KGIua2V5KyIiKS5lc2NhcGVIVE1MKCksY2hlY2tlZDpiLl9jaGVja2VkLGhyZWY6Yi5pZD94LnAydShiLl9kZWw/W2EucGF0aFswXSxiLmlkLCJfIitiLl9kZWxdOlthLnBhdGhbMF0sYi5pZF0pLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCk6IiIscmV2OigoYi52YWx1ZXx8e30pLnJldisiIikuZXNjYXBlSFRNTCgpfX19LFRNYW5nbzpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0oeC5kYXRhLHguUGhvKCJqMmgiKSksYj14LlQubWFuZ287eC5ULnZpZXdfZmlsdGVyO3JldHVybiBmdW5jdGlvbihmLGcpe3ZhciBoLGk9eC5Sb3dzLmxlbmd0aCxqPWk8MTIwP2M6aTwyNTA/ZDplLGs9aTw0MD8yZTM6aTw2MD81MDA6aTwxMjA/MzAwOjIwMCxsPWk8NDA/NTppPDYwPzQ6aTwxMjA/MzppPDI1MD8zOjIsbT1mLnZhbHVlLG49YShtLGssWyJfaWQiLCJpZCIsIm5hbWUiXSxsKTtyZXR1cm4gMT09bi5sZW5ndGgmJiJzaG9ydCI9PW5bMF1bMF0mJigieyI9PW5bMF1bMV1bMF0/blswXVsxXT0iT2JqZWN0ICIrblswXVsxXToiWyI9PW5bMF1bMV1bMF0mJihuWzBdWzFdPSJBcnJheSAiK25bMF1bMV0pKSxoPW4ubWFwKGopLmpvaW4oIiIpLGIuYXNzaWduKHtfaWR4OmYuX2lkeCxfaWR4c2FmZTpmLl9pZHhzYWZlLGlkOmYua2V5KyIiLGlkc2FmZTpmLmtleSsiIixocmVmOiIiLG5vZG9jOiIiLGtleTpnKyIiLGh0bWw6aCxjc3M6aC5sZW5ndGg+MjUwPyJmczk1IGxoMTQwIHB0MyBwYjMiOiJsaDE0MCBwdDIgcGIyIn0pfTtmdW5jdGlvbiBjKHgpe3JldHVybiB4WzBdPyc8c3BhbiBjbGFzcz0ianZhbC0nK3hbMF0rJyI+Jyt4WzFdKyI8L3NwYW4+Ijp4WzFdfWZ1bmN0aW9uIGQoeCl7cmV0dXJuImJyYWNrZXQiIT14WzBdJiYia2V5IiE9eFswXT94WzFdOic8c3BhbiBjbGFzcz0ianZhbC0nK3hbMF0rJyI+Jyt4WzFdKyI8L3NwYW4+In1mdW5jdGlvbiBlKHgpe3JldHVybiB4WzFdfX0sZ2V0UmVmU3RhcjpmdW5jdGlvbiB4KGEsYil7dmFyIGMsZCxlPSJzdHJpbmciPT10eXBlb2YgYj9iLnNwbGl0KCIuIik6T2JqZWN0LmlzQXJyYXkoYik/YjpbXSxmPWEsZz0wO2ZvcihnPTA7ZzxlLmxlbmd0aCYmbnVsbD09ZCYmbnVsbCE9ZjtnKyspIioiPT0oYz1lW2ddKSYmT2JqZWN0LmlzQXJyYXkoZik/KGQ9ZS5zbGljZShnKzEpLGY9Zi5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtpZihudWxsPT1iKXJldHVybiBhO3ZhciBjPXgoYixkKTtyZXR1cm4gbnVsbCE9YyYmYS5wdXNoKGMpLGF9LFtdKSk6Zj1mW2NdO3JldHVybiBmfSxmb3JtYXRTZWwyOmZ1bmN0aW9uKHgpe2lmKHguaWQpe3ZhciBhPXguaWQuc3BsaXQoIu+/vSIpO3JldHVybiBhWzFdPyhhWzBdLnNwbGl0KCIvIikubGFzdCgpLnRydW5jYXRlKCgzMC1hWzFdLmxlbmd0aCkuY2xhbXAoMTAsMzApLCJtaWRkbGUiLCIuLi4iKSsi4oCJL+KAiSIrYVsxXSkuZXNjYXBlSFRNTCgpOngudGV4dH1yZXR1cm4geC50ZXh0fSxidWlsZEdyaWRDb2x1bW5zOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YTthLmdyaWQ/eC5Db2x1bW5zPWEuY29sdW1ucy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOiJ4IitOdW1iZXIucmFuZG9tKDAsMWU2KSxjb2xzOnh9fSk6eC5Db2x1bW5zPVtdfSxkZXJpdmVHcmlkQ29sdW1uczpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KHg9KCt4fHw1KS5jbGFtcCgxLDgpLGN3LmxpYi5hMm8oImlkIGtleSByZXYgLmlkIC5rZXkgLnJldiAuZG9jIC5faWQgLl9yZXYgLnZhbHVlIC5kb2MuX2lkIC5kb2MuX3JldiDigIwiLnNwbGl0KCIgIikpKSxjPWEuRmllbGRzLnNvcnRCeShmdW5jdGlvbih4KXt2YXIgYT14LnZhbHVlLGI9eC5jdHI7cmV0dXJuInRpdGxlIiE9YSYmIm5hbWUiIT1hfHwoYio9MS41KSwidHlwZSI9PWEmJihiKj0xLjIpLGJ9LCEwKS5maWx0ZXIoeD0+IWJbeC52YWx1ZV0pLnRvKHgpLm1hcCh4PT54LnZhbHVlKTtyZXR1cm4gYy5sZW5ndGh8fChjPVsiLnZhbHVlIl0pLGN9LHN0YXNoVmlld1N0YXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPWN3LmxpYi5zZGJtKFthLnBhdGhbMF0sYS52aWV3XSksYz17cmVkdWNlOmEucmVkdWNlLGdyaWQ6YS5ncmlkLGNvbHVtbnM6YS5jb2x1bW5zLnNsaWNlKDApLGVkaXRvcjphLmVkaXRvcixpbmNsOmEuaW5jbH07cmV0dXJuIHguTHMoIlZpZXdTdGF0ZS4iK2IsYykse2tleTpiLHN0YXRlOmN9fSxyZXN0b3JlVmlld1N0YXRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPXh8fGMudmlldyxlPWN3LmxpYi5zZGJtKFtjLnBhdGhbMF0sZF0pLGY9Yi5McygiVmlld1N0YXRlLiIrZSl8fHt9O2lmKCFmLmNvbHVtbnN8fCFmLmNvbHVtbnMubGVuZ3RofHxmLmNvbHVtbnMrIiI9PSIudmFsdWUiKXt2YXIgZz0iX2ZpbmQiPT1kLnRvKDUpLGg9Il9pZHgiPT1kLnRvKDQpLGk9Il9kZXNpZ25fZG9jcyI9PWQsaj0iX2NoYW5nZXMiPT1kO2YuY29sdW1ucz1kP2k/WyJ2aWV3cyAva2V5cyIsImZpbHRlcnMgL2tleXMiLCJsaXN0cyAva2V5cyIsInNpemVzLmZpbGUgL2J5dGVzIl06aj9bInJldiIsImRlbGV0ZWQiXTpoP1siLmtleSJdOihnLFsiLnZhbHVlIl0pOmYuaW5jbCsiIj9bIi5kb2MiXTpbInJldiJdfXJldHVybiB4fHwkLmV4dGVuZChjLE9iamVjdC5zZWxlY3QoZixbInJlZHVjZSIsImdyaWQiLCJjb2x1bW5zIiwiZWRpdG9yIiwiaW5jbCJdKSksYSYmYi5teS5yZWRyYXcoKSxmfSxjbG9zZUF1dG9jb21wbGV0ZXM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLm15JiZhLm15LmZpbmQoIi51aS1hdXRvY29tcGxldGUtaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKTthLmlzKHgpfHwoYS5hdXRvY29tcGxldGUoImNsb3NlIiksYS5uZXh0KCkudHJpZ2dlcigiY2hlY2subXkiKSl9KX0sYnVpbGRGaWVsZHNMaXN0OmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguUmVzdWx0WzBdfHx7cm93czpbXX0sYz0oT2JqZWN0LmlzQXJyYXksT2JqZWN0LmlzT2JqZWN0KSxkPXt9O2lmKHguRmllbGRzLmxlbmd0aClyZXR1cm4geC5GaWVsZHM7Yi5kb2NzP2IuZG9jcy5tYXAoeD0+KHt2YWx1ZTp4fSkpLmZvckVhY2goZi5maWxsKDAsIiIpKTpiLnJlc3VsdHM/Yi5yZXN1bHRzLm1hcCh4PT4oe3ZhbHVlOnh9KSkuZm9yRWFjaChmLmZpbGwoMCwiIikpOihiLnJvd3N8fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIE9iamVjdC5zZWxlY3QoeCxhLnZpZXcmJiJfZGVzaWduX2RvY3MiIT1hLnZpZXc/WyJpZCIsImtleSIsInZhbHVlIl06WyJpZCIsInZhbHVlIiwiZG9jIl0pfSkuZm9yRWFjaChmLmZpbGwoMCwiIikpO3ZhciBlPU9iamVjdC5rZXlzKGQpO3JldHVybiBlLmxlbmd0aD4xMDAmJihlPWUuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LnNwbGl0KCIuIikubGVuZ3RoPCgiLiI9PXhbMF0/NTo0KX0pKSxlLmxlbmd0aD4xMDAmJihlPWUuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LnNwbGl0KCIuIikubGVuZ3RoPCgiLiI9PXhbMF0/NDozKX0pKSx4LkZpZWxkcz1be2xhYmVsOiLDlyBEZWxldGUgY29sdW1uIix2YWx1ZToi4oCMIixjdHI6MH1dLmNvbmNhdChlLnNvcnQoZnVuY3Rpb24oeCxhKXtyZXR1cm4iLiIhPWFbMF0mJiIuIiE9eFswXXx8YVswXT09eFswXT9hPng/LTE6YTx4PzE6MDoiLiI9PWFbMF0/LTE6MX0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm57bGFiZWw6eC50cnVuY2F0ZSg1MCwibWlkZGxlIiwiwqDigKbCoCIpLHZhbHVlOngsY3RyOmRbeF19fSkpO2Z1bmN0aW9uIGYoeCxhLGIpe3g+M3x8YyhiKSYmT2JqZWN0LmtleXMoYikuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLmxlbmd0aCYmIl9hdHRhY2htZW50cyIhPWMpe3ZhciBlPWJbY10sZz0kLnR5cGUoZSksaD0oIi52YWx1ZSI9PWE/IiI6YSsiLiIpK2M7ZFtoXT0oZFtoXXx8MCkrKHg+MT8uMToxKSwib2JqZWN0Ij09Zz9mKHgrMSxoLGUpOiJhcnJheSI9PWcmJmUubGVuZ3RoJiZmKHgrMSxhKyIuIitjKyIuMCIsZVswXSl9fSl9fSxUR3JpZE1hcDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlBobygiajJoIiksYz14LlQuZ3JpZF92aWV3LGQ9eC5ULmdyaWRfZG9jLGU9eC5ULmdyaWRfbWFuZ28sZj14LlQuZ3JpZF9jb2x1bW47cmV0dXJuIGZ1bmN0aW9uKGssbCl7dmFyIG09eC5Sb3dzLmxlbmd0aCxuPSJfaWR4Ij09YS52aWV3LnRvKDQpLG89Il9maW5kIj09YS52aWV3LnRvKDUpLHA9IW8mJiIiPT14LmRhdGEucmVkdWNlLHE9Il9kZXNpZ25fZG9jcyI9PWEudmlldyxyPSJfY2hhbmdlcyI9PWEudmlldyxzPWgsdD1tPDQwPzJlMzptPDYwPzE1MDA6bTwxMjA/MWUzOjcwMCx1PW08MTIwPzY6NSx2PXguRi5HcmlkQ2FzdCx3PSFhLnZpZXd8fHF8fHJ8fG8/ay5rZXk6bj9rLmlkOmkoay5rZXkpO3JldHVybighYS52aWV3fHxxfHxyP2Q6cD9jOmUpLmFzc2lnbih7X2lkeDprLl9pZHgsX2lkeHNhZmU6ay5faWR4c2FmZSxjaGVja2VkOmsuX2NoZWNrZWQsaWQ6ay5rZXksaWRzYWZlOncuZXNjYXBlSFRNTCgpLGlkc2FmZWZpbHRlcjp4LmZTZWFyY2g/dy5yZXBsYWNlKHguZlNlYXJjaCwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9InZpZXctZm91bmQiPicpLnJlcGxhY2UoIu+/sCIsIjwvc3Bhbj4iKTp3LmVzY2FwZUhUTUwoKSxkb2NpZHNhZmU6bnVsbCE9ay5pZD8oay5pZCsiIikuZXNjYXBlSFRNTCgpOiIiLGhyZWY6ay5pZD94LnAydShrLl9kZWw/W2EucGF0aFswXSxrLmlkLCJfIitrLl9kZWxdOlthLnBhdGhbMF0say5pZF0pLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCk6IiIsbm9kb2M6ay5pZD8iIjoiaGlkZSIsa2V5Omsua2V5LGNvbHVtbnM6ay5jb2xzLm1hcChmdW5jdGlvbih4LGEpe3ZhciBjPSIiLGQ9eC52YWwsZT10eXBlb2YgeC52YWw7cmV0dXJuIHZbeC5jYXN0XSYmKGU9dHlwZW9mKGQ9dlt4LmNhc3RdKGQsZSkpKSxjPSJvYmplY3QiPT1lP2ooaShkKSk6Im51bWJlciI9PWU/ZyhkKToic3RyaW5nIj09ZT9kP2ooZCkucmVwbGFjZSgvXltcclxuXSsvLCIiKS5yZXBsYWNlKC9bXHJcbl0rL2csIjxicj4iKTonIiInOmIoZCx0LFtdLHUpLm1hcChzKS5qb2luKCIiKSxmLmFzc2lnbih7aWR4OmwrIl8iK2EsdmFsOmMsY3NzOltjLmxlbmd0aD4xMDA/ImZzOTUgbGgxNDAgcHQxICI6IiIsIm9iamVjdCI9PWU/ImFzanNvbiAiOiIiLCJnY29sdiBnY29sdyIreC5zcGFuKyIgIix4LmNzc3x8IiJdLmpvaW4oIiIpfSl9KS5qb2luKCIiKX0pfTtmdW5jdGlvbiBnKHgpe3JldHVybic8c3BhbiBjbGFzcz0ianZhbC1udW1iZXInKygvXGR7MTB9Ly50ZXN0KHgpPyIgZnM5NSI6IiIpKyciPicreCsiPC9zcGFuPiJ9ZnVuY3Rpb24gaCh4KXtyZXR1cm4geFswXT8nPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiI6eFsxXX1mdW5jdGlvbiBpKHgpe3JldHVybiBKU09OLnN0cmluZ2lmeSh4LG51bGwsMSkucmVwbGFjZSgvXlxzKy9nbSwiICIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL3tccy9nLCJ7IikucmVwbGFjZSgvXHN9L2csIn0iKS5yZXBsYWNlKC9cW1xzL2csIlsiKS5yZXBsYWNlKC9cc1xdL2csIl0iKX1mdW5jdGlvbiBqKGEpe3ZhciBiPTI1Nis3NjgvKCh4LkNvbHVtbnN8fFtdKS5sZW5ndGh8fDEpfDA7cmV0dXJuIGEubGVuZ3RoPjEuMSpiP2EudG8oYikuZXNjYXBlSFRNTCgpKyc8c3BhbiBjbGFzcz0icmVkMSBwbDMgYm9sZCI+4oCmPC9zcGFuPic6YS5lc2NhcGVIVE1MKCl9fSxHcmlkQ2FzdDp7ZHQ6ZnVuY3Rpb24oeCxhKXtpZigheHx8IS9eKG51bWJlcnxzdHJpbmcpJC8udGVzdChhKSlyZXR1cm4geDt2YXIgYj1EYXRlLmNyZWF0ZSgreHx8eCk7cmV0dXJuIGIuaXNWYWxpZCgpP2IuZm9ybWF0KCJ7ZH0ge01vbn0ge3l5eXl9LCB7SH06e21tfTp7c3N9Iik6eH0sYnl0ZXM6ZnVuY3Rpb24oeCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB4P3g6eC5ieXRlcygyKS5yZXBsYWNlKC8oXERcRD8pJC8sIuKAiuKAiiQxIil9LGhleDpmdW5jdGlvbih4LGEpe2lmKCJudW1iZXIiPT1hJiZNYXRoLmZsb29yKHgpPT09eCl7dmFyIGI9eC50b1N0cmluZygxNiksYz0iLSI9PWJbMF0/Ii0iOiIiLGQ9Yi5zdWJzdHIoYz8xOjApLnRvVXBwZXJDYXNlKCksZT1kLmxlbmd0aDtyZXR1cm4gYysoZD1kLnBhZExlZnQoZTw9ND80OmU8OD84OjAsIjAiKSl9cmV0dXJuInN0cmluZyI9PWE/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHgpKS5jb2RlcygpLm1hcChmdW5jdGlvbih4LGEpe3JldHVybih4PDE2PyIwIjoiIikreC50b1N0cmluZygxNikrKGElND09Mz8iICI6IsKgIil9KS5qb2luKCIiKTp4fSxsaXN0OmZ1bmN0aW9uKHgsYSl7cmV0dXJuIm9iamVjdCIhPWE/eDpPYmplY3QudmFsdWVzKHgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4ib2JqZWN0IiE9dHlwZW9mIHg/KHgrIiIpLnJlcGxhY2UoL1tcclxuXSsvZywiICIpOkpTT04uc3RyaW5naWZ5KHgpfSkuam9pbigiXG4iKX0sa2V5czpmdW5jdGlvbih4LGEpe3JldHVybiJvYmplY3QiIT1hP3g6T2JqZWN0LmtleXMoeCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxhY2UoL1tcclxuXSsvZywiICIpfSkuam9pbigiXG4iKX0sa3Y6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ib2JqZWN0IiE9YT94Ok9iamVjdC5rZXlzKHgpLm1hcChmdW5jdGlvbihhKXt2YXIgYj14W2FdO3JldHVybiBhLnJlcGxhY2UoL1tcclxuXSsvZywiICIpKyI6wqAiKygib2JqZWN0IiE9dHlwZW9mIGI/KGIrIiIpLnJlcGxhY2UoL1tcclxuXSsvZywiICIpOkpTT04uc3RyaW5naWZ5KGIpKX0pLmpvaW4oIlxuIil9fSxHZXRTZWM6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oIkFsbCIpLGI9T2JqZWN0LmtleXMoYSksYz1bXSxkPURhdGUubm93KCk7cmV0dXJuIGIuZm9yRWFjaChmdW5jdGlvbih4KXsoIWFbeF0uc2VjdXJpdHl8fGFbeF0uc2VjdXJpdHkuc3RhbXArMzZlNTxkKSYmYy5wdXNoKHgpfSksYz1jLnRvKDEwMCkseC5QaG8oIiRkYnMiKS5CYXRjaEluZm8uY2FsbCh7UGhvOnguUGhvLFJlcTp4LlJlcSxCYXRjaDp7fSxBbGw6YSxSZWxpc3Q6ZnVuY3Rpb24oKXt9LFJlbGlzdE5vdzpmdW5jdGlvbigpe319LGMseC5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXksWyJzZWN1cml0eSJdKX0sRGVsRG9jczpmdW5jdGlvbigpe3ZhciB4PSQuRGVmZXJyZWQoKSxhPXRoaXMsYj1hLmRhdGEsYz1iLnNlbGVjdGlvbi5zbGljZSgwKS51bmlxdWUoKSxkPWMubGVuZ3RoLGU9KGEuZlJvd3N8fGEuUm93cykubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmlkfSkudW5pcXVlKCkuaW50ZXJzZWN0KGMpLmxlbmd0aCxmPWEubGFuZyxnPWEuUGhvKCJDb3VjaCIpLnZlcixoPWZ1bmN0aW9uKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9LGk9ZnVuY3Rpb24oeCxhKXtyZXR1cm4gaCgoeCsiIikudHJ1bmNhdGUoYXx8MTUsInJpZ2h0Iiwi4oCmIikpfSxqPSc8ZGl2IGNsYXNzPSJtYjEwIj57MX08L2Rpdj4nLGs9JzxsYWJlbCBjbGFzcz0ieGdyYXkiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmV0YWluIiB2YWx1ZT0iezF9IiBjbGFzcz0ibXI2Ij4gezJ9PC9sYWJlbD4nO3JldHVybiAkLm15Lm1vZGFsKHt3aWR0aDozODAsbWFuaWZlc3Q6JC5leHRlbmQoITAse30sYS5QaG8oIkNvbmZpcm0iKSx7dWk6eydpbnB1dFtuYW1lPSJyZXRhaW4iXSc6InJldGFpbiJ9LHN0eWxlOnsiIGxhYmVsIjoibWFyZ2luOjA7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0OyJ9fSksZGF0YTp7cmV0YWluOiJubyIsdGV4dDpbJzxkaXYgY2xhc3M9ImZzMTMwIHJlZCBtYjUiPicrZi5UWFRfREVMX1RJVExFKyI8L2Rpdj4iLGouYXNzaWduKGYuVFhUX0RFTF9XQVJOKGQsaShiLnBhdGhbMF0sMjUpKSksZSE9ZD9qLmFzc2lnbihmLlRYVF9ERUxfV0FSTl9ISURERU4oZCxlKSk6IiIsai5hc3NpZ24oay5hc3NpZ24oIm5vIixmLkxCTF9ERUxfQUxMKStrLmFzc2lnbigicmV0YWluIixmLkxCTF9ERUxfUkVUQUlOKSsoZz49IjAwMi4wMDMuIj9rLmFzc2lnbigicHVyZ2UiLGYuTEJMX0RFTF9QVVJHRSk6IiIpKV0uam9pbigiIikseWVzY3NzOiJyZWQiLHllczpmLkJUTl9ERUxfU1RBUlQsbm86Zi5CVE5fQ0FOQ0VMLGNhbmNlbDoiIn0sY3NzOiJsaDE2MCB4Z3JheSBwMjAgcGIyNSIsZm9jdXM6IiNidG4tbm8iLGVzYzohMCxlbnRlcjohMX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoInllcyIhPWEuY21kKXJldHVybiB4LnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpO2woYS5yZXRhaW4rIiIpfSkuZmFpbChmdW5jdGlvbigpe3gucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIil9KSx4LnByb21pc2UoKTtmdW5jdGlvbiBsKGQpe3ZhciBlPWMudW5pcXVlKCkuc29ydCgpLGc9e3VybDpbYi5wYXRoWzBdLCJfYnVsa19kb2NzIl0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YToiW10ifTtpZigibm8iPT1kfHwicmV0YWluIj09ZClnLmhlYWRlcnM9eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9O2Vsc2V7aWYoInB1cmdlIiE9ZClyZXR1cm4geC5yZWplY3QoOTk5LCJVbmtub3duIG1vZGUiLCJDYW5jZWxsZWQiKSx2b2lkIDA7Zy51cmxbMV09Il9wdXJnZSJ9cmV0dXJuIGooZSwicmV0YWluIiE9ZCkudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gZy5kYXRhPUpTT04uc3RyaW5naWZ5KCJwdXJnZSIhPWQ/e2RvY3M6eH06eC5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthLl9pZF09W2EuX3Jldl0seH0se30pKSxhLlJlcShnKS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBrKHgsZSl9KS5mYWlsKGwpfSk7ZnVuY3Rpb24gaih4LGMpe3ZhciBkPXt1cmw6W2IucGF0aFswXSwiX2FsbF9kb2NzIix7aW5jbHVkZV9kb2NzOiFjfV0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7a2V5czp4fSl9O3JldHVybiBhLlJlcShkKS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJvd3MubWFwKGZ1bmN0aW9uKHgpe3ZhciBhPWM/e19pZDp4LmlkLF9yZXY6eC52YWx1ZS5yZXZ9OnguZG9jO3JldHVybiBhLl9kZWxldGVkPSEwLGF9KX0pfWZ1bmN0aW9uIGsoYyxlKXt2YXIgZyxoPWUubGVuZ3RoO2c9InB1cmdlIiE9ZD9jLmNvdW50KGZ1bmN0aW9uKHgpe3JldHVybiF4LmVycm9yfSk6T2JqZWN0LnNpemUoYy5wdXJnZWQpLGN3LmxpYi5ub3RlKGYuTVNHX0RFTF9PSyhoLGcsaShiLnBhdGhbMF0pLGQpLGg9PWc/Im9rIjoiZXJyb3IiLDVlMyksaD5nJiZjb25zb2xlLmxvZyhjKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmIucGF0aFswXSxjbWQ6ImRlbGV0ZSIsZG9jczplfSksJC5teS5yYWRpbygiZGJsaXN0IixbYi5wYXRoWzBdXSksYi5zZWxlY3Rpb24ubGVuZ3RoPTAsZS5mb3JFYWNoKGZ1bmN0aW9uKHgpeyJfIj09eFswXSYmYS5EZG9jc1t4XSYmZGVsZXRlIGEuRGRvY3NbeF19KSx4LnJlc29sdmUoYyl9ZnVuY3Rpb24gbChhLGIsYyl7cmV0dXJuIGN3LmxpYi5ub3RlKGYuTVNHX0RFTF9GQUlMLmFzc2lnbihhLGgoYikpLCJlcnJvciIpLHgucmVqZWN0KGEsYixjKX19fSxFZFN3aXRjaDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGE7aWYoL14oX2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfCkkLy50ZXN0KGEudmlldykpcmV0dXJuIHguRWRpdG9yLmxlbmd0aD0wLHZvaWQgMDtpZigiX2QiPT1hLnZpZXcudG8oMikpe3ZhciBiPXguVmlbYS52aWV3XTtpZighKGY9eC5WaUVkcylbYS52aWV3XXx8ZlthLnZpZXddLnJldiE9Yi5yZXYpe3ZhciBjPWEudmlldy5zcGxpdCgi77+9Iik7ZlthLnZpZXddPXtkZG9jOmNbMF0sbmFtZTpjWzFdLHJldjpiLnJldix0eXBlOiJ2aWV3Iixtb2RlOlsibWFwIl0sbGFuZ3VhZ2U6ImpzIj09Yi50eXBlPyJqYXZhc2NyaXB0IjpiLnR5cGUsbWFwOmIudmlldy5tYXB8fCIiLHJlZHVjZTpiLnZpZXcucmVkdWNlfHwiIixqc29uOnt9LGVycm9yczpbXSxzdGFtcDpEYXRlLm5vdygpfX14LkVkaXRvclswXSE9ZlthLnZpZXddJiYoeC5FZGl0b3JbMF09ZlthLnZpZXddKX1lbHNlIGlmKCJfZmluZCI9PWEudmlldy50byg1KSl7dmFyIGQ9YS5tYW5nbyxlPWEudmlldy5zcGxpdCgi77+9IilbMV0rIiI7KGI9ZC5xdWVyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PWV9KSl8fChlPSJEZWZhdWx0IHF1ZXJ5IixiPWQucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT1lfSkpLGQuYWN0aXZlPWUsYi5zdGFtcHx8KGIuc3RhbXA9RGF0ZS5ub3coKSxiLnRleHQ9eC5EZWZhdWx0TWFuZ29RcnkudGV4dCkseC5FZGl0b3JbMF0hPWImJih4LkVkaXRvcj1bYl0sYi5qc29uPXguanNldmFsKGIudGV4dCksT2JqZWN0LmlzT2JqZWN0KGIuanNvbil8fChiLmpzb249e30pKX1lbHNlIGlmKCJfaWR4Ij09YS52aWV3LnRvKDQpKXt2YXIgZjtiPXguVmlbYS52aWV3XXx8T2JqZWN0LmNsb25lKHguRGVmYXVsdE1hbmdvSWR4LCEwKTtpZighKGY9eC5WaUVkcylbYS52aWV3XXx8ZlthLnZpZXddLnJldiE9Yi5yZXYpe2M9YS52aWV3LnNwbGl0KCLvv70iKTtmW2Eudmlld109e2Rkb2M6Il9kZXNpZ24vIitjWzBdLnNwbGl0KCIvIilbMV0sbmFtZTpjWzFdLHJldjpiLnJldix0eXBlOiJpbmRleCIsbW9kZTpbImphdmFzY3JpcHQiXSx0ZXh0OmIudmlldz9iLnZpZXcuc291cmNlOmIudGV4dCxqc29uOnt9LGVycm9yczpbXSxzdGFtcDpEYXRlLm5vdygpfX14LkVkaXRvclswXSE9ZlthLnZpZXddJiYoeC5FZGl0b3JbMF09ZlthLnZpZXddKX1yZXR1cm4gYS5ncmlkJiZ4Lm15LnJlc3R5bGUoKSx4LkVkaXRvclswXX0sR2V0RGRvY3NJbmZvOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPShiLmRhdGEsYXx8W10pLGQ9eC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIE9iamVjdC5pc09iamVjdCh4KT8kLmV4dGVuZCghMCx7fSxPYmplY3QucmVqZWN0KHgsWyJpbmNsdWRlX2RvY3MiXSkpOnh9KSxlPXt9LGY9JC5EZWZlcnJlZCgpO3JldHVybiBiLlJlcSh7dXJsOmQsaGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6Yy5sZW5ndGg/InBvc3QiOiJnZXQiLGRhdGE6Yy5sZW5ndGg/SlNPTi5zdHJpbmdpZnkoe2tleXM6Y30pOm51bGx9KS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBjPVtdOyhhLnJvd3N8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2MucHVzaChiLlJlcSh7dXJsOlt4WzBdLGEuaWQsIl9pbmZvIl0saGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifX0pKX0pLFEuYWxsU2V0dGxlZChjKS50aGVuKGZ1bmN0aW9uKHgpeyh4fHxbXSkuZm9yRWFjaChmdW5jdGlvbih4KXtpZigiZnVsZmlsbGVkIj09eC5zdGF0ZSl7dmFyIGE9eC52YWx1ZS52aWV3X2luZGV4LGI9T2JqZWN0LnNlbGVjdChhLnNpemVzfHx7YWN0aXZlOmEuZGF0YV9zaXplfHwwLGZpbGU6YS5kaXNrX3NpemV8fDB9LFsiYWN0aXZlIiwiZmlsZSJdKTtlWyJfZGVzaWduLyIreC52YWx1ZS5uYW1lXT17dmFsdWU6e3NpemVzOmJ9LHZpZXdfaW5kZXg6YX19fSksZi5yZXNvbHZlKGUpfSl9KSxmLnByb21pc2UoKX19LEdldFZpZXdzOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9Yy5kYXRhLGU9T2JqZWN0LmlzU3RyaW5nLGY9T2JqZWN0LmlzT2JqZWN0LGc9T2JqZWN0LmlzQXJyYXksaD0oT2JqZWN0LmlzRnVuY3Rpb24sZC5wYXRoWzBdKSxpPVtoLCJfYWxsX2RvY3MiLHtzdGFydGtleToiX2Rlc2lnbiIsZW5ka2V5OiJfZGVzaWduMCIsaW5jbHVkZV9kb2NzOiEwfV0saj1jLkRlZmF1bHRWaWV3cygpLGs9Yy5sYW5nLk9QVF9NSU5ESUNFUyxsPWouZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC50ZXh0PT1rfSksbT17fSxuPSQuRGVmZXJyZWQoKTtyZXR1cm4gYj8oai5yZW1vdmUobCksYy5WaWV3cy5mb3JFYWNoKGZ1bmN0aW9uKHgpeyF4LmNoaWxkcmVufHwiXyIhPXgudGV4dFswXSYmIk1hbmdvIiE9eC50ZXh0LnRvKDUpfHxqLnB1c2goeCl9KSxjLlZpZXdzPWouc29ydEJ5KGZ1bmN0aW9uKHgpe3JldHVybih4Lm9yZGVyfHwiIikreC50ZXh0fSkseCYmKGMuc2VsZWN0MihjLm15LmZpbmQoIiN2aWV3LW5hbWUiKSx7ZGF0YTpqLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyLGZvcm1hdFNlbGVjdGlvbjpjLmZvcm1hdFNlbDJ9KSxjLm15LnJlY2FsYygiI3ZpZXctbmFtZSIpKSxuLnJlc29sdmUoKSxqKTooYy5SZXEoaSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT14LnJvd3N8fFtdO2lmKCFhLmxlbmd0aCYmIl9maW5kIiE9ZC52aWV3LnRvKDUpKXJldHVybiBkLnZpZXc9IiIsdm9pZCAwO2EuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT14LmRvYztpZihhKXt2YXIgYj1hLnZpZXdzfHx7fSxkPWEuX3JldixpPU9iamVjdC5rZXlzKGIpLGs9e3RleHQ6eC5pZCxjaGlsZHJlbjpbXX0sbj1lKGEubGFuZ3VhZ2UpP2EubGFuZ3VhZ2U6ImphdmFzY3JpcHQiO2MuRGRvY3NbYS5faWRdJiZjLkRkb2NzW2EuX2lkXS5fcmV2PT1hLl9yZXZ8fChjLkRkb2NzW2EuX2lkXT0kLmV4dGVuZCghMCx7fSxhKSksaS5sZW5ndGgmJihpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGM9YlthXTtpZigicXVlcnkiIT1uKXtpZighZihjKXx8IWUoYy5tYXApfHwhYy5tYXApcmV0dXJuO3ZhciBpPXtpZDpyPXguaWQrIu+/vSIrYSx0ZXh0OiLCoMKgIithfSxqPXtwYXRoOltoLCJfZGVzaWduIix4LmlkLnNwbGl0KCIvIilbMV0sIl92aWV3IixhXSxyZXY6ZCxyZWR1Y2U6ITEsdHlwZToianMifTsiamF2YXNjcmlwdCIhPW4mJihqLnR5cGU9bixpLnRleHQrPSLCoCgiK24udGl0bGVpemUoKSsiKSIpLGoudmlldz1PYmplY3QuY2xvbmUoYywhMCk7dmFyIG89Yy5yZWR1Y2UscD0iIixxPSIiO2UobykmJm8mJigiXyI9PW9bMF0mJihwPW8uZnJvbSgxKSksKHE9InN1bSI9PXA/Is6jIjoiY291bnQiPT1wPyIjIjoibWluIj09cD8i4oq7IjoibWF4Ij09cD8i4oq8Ijoic3RhdHMiPT1wPyI9Ijoic3Vtc3FyIj09cD8izqPCsiI6InJlZHVjZSIpJiYoaS50ZXh0Kz0i4oCJ4oeS4oCJIitxLGoucmVkdWNlPSEwKSksay5jaGlsZHJlbi5wdXNoKGkpLG1bcl09an1lbHNlIGlmKGwmJiJxdWVyeSI9PW4pe2lmKCEoZihjKSYmZihjLm1hcCkmJmYoYy5tYXAuZmllbGRzKSYmZihjLm9wdGlvbnMpJiZmKGMub3B0aW9ucy5kZWYpJiZnKGMub3B0aW9ucy5kZWYuZmllbGRzKSkpcmV0dXJuO3ZhciByLHM9eC5pZC5zcGxpdCgiLyIpWzFdO2k9e2lkOnI9Il9pZHgvIitzKyLvv70iK2EsdGV4dDoiwqDCoCIrYSsiwqBpbsKgX2QvIitzLG9yZGVyOiJfMSJ9OyhqPXtwYXRoOltoLCJfZGVzaWduIix4LmlkLnNwbGl0KCIvIilbMV0sIl92aWV3IixhXSxyZXY6ZCxyZWR1Y2U6ITEsdHlwZToiIn0pLnZpZXc9T2JqZWN0LmNsb25lKGMsITApO3ZhciB0PWMub3B0aW9ucy5kZWY7ai52aWV3LnNvdXJjZT1bIih7IiwiXG5cdGluZGV4OiB7IiwiXG5cdFx0ZmllbGRzOiBbezF9XSIsdC5wYXJ0aWFsX2ZpbHRlcl9zZWxlY3Rvcj8iLFxuXHRcdHBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yOiAiK0pTT04uc3RyaW5naWZ5KHQucGFydGlhbF9maWx0ZXJfc2VsZWN0b3IsbnVsbCwiXHQiKS5saW5lcygpLm1hcChmdW5jdGlvbih4LGEpe3JldHVybihhPyJcdFx0IjoiIikreH0pLmpvaW4oIlxuIik6IiIsJ1xuXHR9LFxuXHRuYW1lOiB7Mn0sXG5cdGRkb2M6IHszfSxcblx0dHlwZTogImpzb24iJywiXG59KSJdLmpvaW4oIiIpLmFzc2lnbih0LmZpZWxkcy5tYXAoSlNPTi5zdHJpbmdpZnkpLmpvaW4oIiwgIiksSlNPTi5zdHJpbmdpZnkoYSksSlNPTi5zdHJpbmdpZnkoeC5pZC5zcGxpdCgiLyIpLmZyb20oMSkuam9pbigiLyIpKSksbVtyXT1qLGwuY2hpbGRyZW4ucHVzaChpKX19KSxrLmNoaWxkcmVuLmxlbmd0aCYmKGsuY2hpbGRyZW49ay5jaGlsZHJlbi5zb3J0QnkoInRleHQiKSxqLnB1c2goaykpKX19KSxqPWouc29ydEJ5KGZ1bmN0aW9uKHgpe3JldHVybih4Lm9yZGVyfHwiIikreC50ZXh0fSksbCYmKGwuY2hpbGRyZW49bC5jaGlsZHJlbi5zb3J0QnkoZnVuY3Rpb24oeCl7cmV0dXJuKHgub3JkZXJ8fCIiKSt4LnRleHR9KSl9KS5mYWlsKGZ1bmN0aW9uKHgsYixkKXthfHxjdy5saWIubm90ZShjLmxhbmcuRVJSX0dFVFZJRVdTLmFzc2lnbihoKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2MuVmlld3M9aixjLlZpPW0sIWQudmlld3x8bVtkLnZpZXddfHwiX2ZpbmQiPT1kLnZpZXcudG8oNSl8fC9eXyhkZXNpZ25fZG9jc3xsb2NhbF9kb2NzfGNoYW5nZXMpJC8udGVzdChkLnZpZXcpfHwoZC52aWV3PSIiKSx4JiYoYy5zZWxlY3QyKGMubXkuZmluZCgiI3ZpZXctbmFtZSIpLHtkYXRhOmosbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTIsZm9ybWF0U2VsZWN0aW9uOmMuZm9ybWF0U2VsMn0pLGMubXkucmVjYWxjKCIjdmlldy1uYW1lIikpLG4ucmVzb2x2ZShqKX0pLG4ucHJvbWlzZSgpKX0sR2V0VmlldzpmdW5jdGlvbih4LGEpe3ZhciBiLGM9T2JqZWN0LmlzQXJyYXksZD1PYmplY3QuaXNPYmplY3QsZT1KU09OLnN0cmluZ2lmeSxmPXRoaXMsZz1mLmRhdGEsaD1nLnBhdGhbMF0saT17bGltaXQ6MTAwLHVwZGF0ZV9zZXE6ITB9LGo9Zy52aWV3LGs9Zi5WaVtnLnZpZXddP2YuVmlbZy52aWV3XS5wYXRoLnNsaWNlKDApOltoLGcudmlldysiInx8Il9hbGxfZG9jcyJdLGw9ImdldCIsbT17fSxuPSJfZmluZCI9PWoudG8oNSksbz0iX2lkeCI9PWoudG8oNCkscD0iX2Rlc2lnbl9kb2NzIj09aixxPSJfY2hhbmdlcyI9PWoscj1jKGEpJiYhbj9hLnNsaWNlKDApOltdLHM9ISFyLmxlbmd0aCx0PW51bGwsdT0oJC5EZWZlcnJlZCgpLFtdKSx2PXt9LHc9e30seT0hMSx6PShmLkluZGV4LCIiKSxBPTAsQj0wLEM9WyIjZ3JpZC1wcm94eSIsIiNzdGF0ZS1wcm94eSIsIiN2aWV3LXJlc3VsdHMtZ3JpZCIsIiN2aWV3LWdyaWQtY29scyJdLEQ9ImNoZWNrIixFPWs7aWYocCYmKGYuUGhvKFsiQ291Y2giLCJ2ZXIiXSk8IjAwMi4wMDAiJiYoa1sxXT0iX2FsbF9kb2NzIixpW2cucmV2ZXJzZT8iZW5ka2V5Ijoic3RhcnRrZXkiXT0iX2Rlc2lnbi8iLGlbZy5yZXZlcnNlPyJzdGFydGtleSI6ImVuZGtleSJdPSJfZGVzaWduMCIpLGkuaW5jbHVkZV9kb2NzPSEwKSxuKXM9ITEsa1sxXT0iX2ZpbmQiLGw9InBvc3QiLG09Zi5FZGl0b3JbMF18fGcubWFuZ28ucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT1qLmZyb20oNil9KXx8Zy5tYW5nby5xdWVyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiJEZWZhdWx0IHF1ZXJ5Ij09eC5uYW1lfSksdD1lKCQuZXh0ZW5kKCEwLHt9LHtsaW1pdDpNYXRoLmFicygrZy5saW1pdCkrMSxza2lwOi9eX1xkKyQvLnRlc3QoZy5zdGFydCk/K2cuc3RhcnQuZnJvbSgxKTowfSxtLmpzb24pKSxpPXt9O2Vsc2V7aWYoZy5yZXZlcnNlXnEmJiFzJiYoaS5kZXNjZW5kaW5nPSEwKSxpLmxpbWl0PU1hdGguYWJzKCtnLmxpbWl0KSsxLGcuc3RhcnQpaWYoL15fXGQrJC8udGVzdChnLnN0YXJ0KSlpLnNraXA9K2cuc3RhcnQuc3Vic3RyKDEpfHwwO2Vsc2V7dHJ5e2I9SlNPTi5wYXJzZShnLnN0YXJ0KX1jYXRjaCh4KXt9aS5zdGFydGtleT12b2lkIDAhPT1iP2I6Zy5zdGFydH0haiYmKGcuaW5jbHx8W10pLmluZGV4T2YoImRvY3MiKT4tMSYmKGkuaW5jbHVkZV9kb2NzPSEwKSxxJiYoaS5zdHlsZT0iYWxsX2RvY3MiLGRlbGV0ZSBpLnVwZGF0ZV9zZXEsaS5zdGFydGtleSYmKGkuc2luY2U9aS5zdGFydGtleSxkZWxldGUgaS5zdGFydGtleSkpLCFvJiZmLlZpW2pdJiZmLlZpW2pdLnJlZHVjZT8oej1nLnJlZHVjZSsiIik/IjAiPT16P2kuZ3JvdXA9ITE6Ijk5Ij09ej9pLmdyb3VwPSEwOmkuZ3JvdXBfbGV2ZWw9K3o6aS5yZWR1Y2U9ITE6byYmKGkucmVkdWNlPSExLCJfaWR4L++/vSI9PWoudG8oNikmJihrWzFdPSJfYWxsX2RvY3MiKSksaS5yZWR1Y2UmJihzPSExKSxzJiYobD0icG9zdCIsdD1lKHtrZXlzOnIuc29ydCgpLnVuaXF1ZSgpfSksZGVsZXRlIGkuc3RhcnRrZXksZGVsZXRlIGkuZW5ka2V5LGRlbGV0ZSBpLnNraXApfXZhciBGPUUuY29uY2F0KFtpXSksRz1lKEYpO3JldHVybiBnLmdyaWQmJmYuY2xvc2VBdXRvY29tcGxldGVzKCksZi5QZW5kaW5nW0ddfHwoTS5kZWJvdW5jZSgxMCkoITApLGcuZHVyPTAsZy5zaXplPTAsQT1EYXRlLm5vdygpLHUucHVzaChmLlJlcSh7dXJsOkYsaGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6bCxkYXRhOnQsZGF0YVR5cGU6InRleHQifSkudGhlbihmdW5jdGlvbih4KXtCPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh4KSkubGVuZ3RoLHc9SlNPTi5wYXJzZSh4KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe3c9e2NvZGU6eCxlcnI6YSxtc2c6Yn19KSkscCYmdS5wdXNoKGYuR2V0RGRvY3NJbmZvKEYscz9yOm51bGwpLnRoZW4oZnVuY3Rpb24oeCl7dj14fSkpLGYuUGVuZGluZ1tHXT1RLmFsbFNldHRsZWQodSkudGhlbihmdW5jdGlvbihhKXtpZihmLlBlbmRpbmdbR109bnVsbCxnLmR1cj1EYXRlLm5vdygpLUEsZy5zaXplPUIsImZ1bGZpbGxlZCIhPWFbMF0uc3RhdGUpcmV0dXJuIGYuUmVzdWx0WzBdPXt1cmw6Ryxjb2RlOncuY29kZSxzdGFtcDpEYXRlLm5vdygpKyIiLG9rOiExLGVycm9yOncuZXJyLG1zZzp3Lm1zZ30sZi5Sb3dzPVtdLGYuRXJyb3I9IkVycm9yICIrdy5jb2RlKyI6ICIrdy5lcnIseCYmSCgpLGYuUmVzdWx0WzBdO2YuRXJyb3I9IiIsZi5GaWVsZHM9W10sZi5SZXN1bHRbMF09T2JqZWN0LmNsb25lKHcsITApLG4/TCh3KTpvP0sodyk6cT9KKHcpOkkodykseCYmKGYubXkubW9kYWwoIiNidG4tdmlld2NvZGUiLCEwKSxIKCkpfS5kZWJvdW5jZSgwKSkudGhlbihmdW5jdGlvbigpe00uZGVib3VuY2UoNTApKCExKX0pKSxmLlBlbmRpbmdbR107ZnVuY3Rpb24gSCgpe1tDXS5mbGF0dGVuKCkuZm9yRWFjaCh4PT5mLm15W0RdKHgpKX1mdW5jdGlvbiBJKHgpe3guc3RhbXA9RGF0ZS5ub3coKSsiIix4LnVybD1FKyIiLGcudG90YWxfcm93cz14LnRvdGFsX3Jvd3N8fC0xLGcub2Zmc2V0PXgub2Zmc2V0fHwtMSxnLnNlcT0oeC51cGRhdGVfc2VxfHxEYXRlLm5vdygpKSsiIjt2YXIgYT1bImZpbHRlcnMiLCJ2aWV3cyIsImxpc3RzIiwic2hvd3MiLCJhcGkiLCJob29rcyIsInJld3JpdGVzIiwic2l6ZXMiXTtpZih4LnJvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3AmJmooeCkseC5fdmpzb249ZShPYmplY3QucmVqZWN0KHgscD9bImtleSIsImRvYyJdOlsia2V5Il0pLG51bGwsIiAgIikuZnJvbSgyKSx4Ll9ranNvbj0ne1xuICAia2V5IjogJytlKHgua2V5KSsiLFxuIix4Ll9pZHg9ZShbeC5rZXkseC5pZCxhXSkseC5faWR4c2FmZT14Ll9pZHguZXNjYXBlSFRNTCgpfSksZi5Sb3dzPXM/aSh4LnJvd3N8fFtdLGYuUm93cyk6KHgucm93c3x8W10pLnNsaWNlKDApLGcubGluaz1mLlJlcShGLCEwKSxnLmdyaWQpe2YuYnVpbGRGaWVsZHNMaXN0KCk7dmFyIGI9Zy5jb2x1bW5zKyIiOyIudmFsdWUiIT1iJiYoZy52aWV3fHwicmV2IiE9YiYmIi5kb2MiIT1iKXx8KGcuY29sdW1ucz1mLmRlcml2ZUdyaWRDb2x1bW5zKCkpfXJldHVybiB4O2Z1bmN0aW9uIGgoeCl7cmV0dXJuInsxfSBMT0MsIHsyfSBjaGFycyIuYXNzaWduKHgubGluZXMoKS5sZW5ndGgseC5sZW5ndGgpfWZ1bmN0aW9uIGkoeCxhKXt2YXIgYj14LnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2UoYS5rZXkpKyJcbiIrZShhLmlkKV09YSx4fSx7fSk7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKHgpe3ZhciBhPWJbZSh4LmtleSkrIlxuIitlKHguaWQpXTtyZXR1cm4gdm9pZCAwIT09YT9hOnh9KX1mdW5jdGlvbiBqKHgpe3ZhciBiPXgudmFsdWUucmV2O3guZGVzYz0iTGlzdCBvZiBkZG9jIGZ1bmN0aW9ucyIseC5sYW5ndWFnZT14LmRvYy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiLHgudmFsdWU9JC5leHRlbmQoe3JldjpifSxPYmplY3Quc2VsZWN0KHguZG9jLGEpKSxhLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9eC52YWx1ZVthXTsic3RyaW5nIj09dHlwZW9mIGI/eC52YWx1ZVthXT1oKGIpOmMoYik/eC52YWx1ZVthXT0iQXJyYXlbezF9XSIuYXNzaWduKGIubGVuZ3RoKTpkKGIpJiYidmlld3MiPT1hP3gudmFsdWVbYV09T2JqZWN0LmtleXMoeC52YWx1ZVthXSkucmVkdWNlKGZ1bmN0aW9uKGIsYyl7dmFyIGU9eC52YWx1ZVthXVtjXSxmPWUubWFwLGc9ZS5yZWR1Y2U7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBmPyhiW2NdPSJNYXA6ICIraChmKSwic3RyaW5nIj09dHlwZW9mIGcmJihiW2NdKz0iOyBSZWR1Y2U6ICIrKCJfIj09Z1swXT9nOmgoZykpKSk6InF1ZXJ5Ij09eC5sYW5ndWFnZSYmZChmKSYmKGJbY109Ik1hbmdvIGluZGV4IixkKGYuZmllbGRzKSYmKGJbY10rPSIsIGZpZWxkczogIitPYmplY3Qua2V5cyhmLmZpZWxkcykuam9pbigiLCAiKSkpLGJ9LHt9KTpkKGIpJiYoeC52YWx1ZVthXT1PYmplY3Qua2V5cyh4LnZhbHVlW2FdKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXt2YXIgZD14LnZhbHVlW2FdW2NdO3JldHVybiJzdHJpbmciPT10eXBlb2YgZCYmKGJbY109aChkKSksYn0se30pKX0pLCQuZXh0ZW5kKCEwLHgsdlt4LmlkXXx8e30pfX1mdW5jdGlvbiBKKHgpe3guc3RhbXA9RGF0ZS5ub3coKSsiIix4LnVybD1FKyIiLGcudG90YWxfcm93cz0tMSxnLm9mZnNldD14Lm9mZnNldHx8LTEsZy5zZXE9eC5sYXN0X3NlcSsiIjt2YXIgYT14LnJlc3VsdHMubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJue2lkOnguaWQsa2V5OnguaWQsdmFsdWU6JC5leHRlbmQoeC5kZWxldGVkP3tkZWxldGVkOiEwfTp7fSx7c2VxOih4LnNlcSsiIikuc3BsaXQoIi0iKVswXSxyZXY6eC5jaGFuZ2VzWzBdLnJldn0pLF92anNvbjplKHgsbnVsbCwiICAiKS5mcm9tKDEpLF9ranNvbjoieyIsX2lkeDplKHguaWQpLF9pZHhzYWZlOmUoeC5pZCkuZXNjYXBlSFRNTCgpLF9kZWw6eC5kZWxldGVkP3guY2hhbmdlc1swXS5yZXY6IiJ9fSk7cmV0dXJuIGYuUm93cz0oYXx8W10pLnNsaWNlKDApLGcubGluaz1mLlJlcShGLCEwKSx4fWZ1bmN0aW9uIEsoeCl7cmV0dXJuIHguc3RhbXA9RGF0ZS5ub3coKSsiIix4LnVybD1FKyIiLGcudG90YWxfcm93cz14LnRvdGFsX3Jvd3N8fC0xLGcub2Zmc2V0PXgub2Zmc2V0fHwtMSxnLnNlcT0oeC51cGRhdGVfc2VxfHxEYXRlLm5vdygpKSsiIix4LnJvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3guX3Zqc29uPWUoeCxudWxsLCIgICIpLmZyb20oMikseC5fa2pzb249IntcbiIseC5faWR4PWUoW3gua2V5LHguaWQsYV0pLHguX2lkeHNhZmU9eC5faWR4LmVzY2FwZUhUTUwoKX0pLGYuUm93cz0oeC5yb3dzfHxbXSkuc2xpY2UoMCksZy5saW5rPWYuUmVxKEYsITApLHh9ZnVuY3Rpb24gTCh4KXt4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9LTEsZy5vZmZzZXQ9bS5za2lwfHwtMSxnLnNlcT0oeC51cGRhdGVfc2VxfHxEYXRlLm5vdygpKSsiIjt2YXIgYT0vXl9cZCskLy50ZXN0KGcuc3RhcnQpPytnLnN0YXJ0LmZyb20oMSk6MCxiPXguZG9jcy5tYXAoZnVuY3Rpb24oeCxiKXtyZXR1cm57aWQ6YStiKyIiLGtleTphK2IrIiIsdmFsdWU6eCxfdmpzb246ZSh4LG51bGwsIiAgIikuZnJvbSgxKSxfa2pzb246InsiLF9pZHg6ZShbYStiXSksX2lkeHNhZmU6ZShbYStiXSkuZXNjYXBlSFRNTCgpfX0pO3JldHVybiBmLlJvd3M9KGJ8fFtdKS5zbGljZSgwKSxnLmxpbms9Zi5SZXEoRiwhMCkseH1mdW5jdGlvbiBNKHgpeyh4JiYheXx8IXgpJiYoZi5teSYmZi5teS5yb290KCkudG9nZ2xlQ2xhc3MoImFwcC1idXN5Iix4KSwkLm15LnJhZGlvKCJhcHBidXN5Iix7aWQ6Zy50YWJpZCxidXN5Onh9KSkseT0hMH19LEdyaWRDb2x1bW46ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3JldHVybntSVDp4LlJULGlkOiJjdy5QaG90b24uJHZpZXcuR3JpZENvbHVtbiIsZGF0YTp7cmF3OiIiLGNvbHM6Ii5pZCIsY2FzdDoiIn0sdWk6eyIuZ3JpZC1jb2x1bW4tcHRyIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2Z1bmN0aW9uIGMoYSxiKXt4Lm15LmZpbmQoIi5ncmlkLWNvbHVtbi1wdHIiKS50cmlnZ2VyKCJibHVyIil9ZnVuY3Rpb24gZChhLGMpe2lmKCFhLnRlcm0pcmV0dXJuIGMoYi5GaWVsZHMoKSk7dmFyIGQ9Yi5GaWVsZHMoKTtpZigvXHNcL1thLXowLTldezAsNn0kLy50ZXN0KGEudGVybSkpe3ZhciBlPWEudGVybS5yZXBsYWNlKC9cc1wvW2EtejAtOV17MCw2fSQvLCIiKSxmPXguUlQoKS5GLkdyaWRDYXN0O2MoW2RbMF1dLmNvbmNhdChPYmplY3Qua2V5cyhmKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2xhYmVsOiIvIit4LHZhbHVlOmUrIiAvIit4fX0pKSl9ZWxzZXt2YXIgZz1uZXcgUmVnRXhwKFJlZ0V4cC5lc2NhcGUoYS50ZXJtKSwiaSIpO2MoW2RbMF1dLmNvbmNhdChkLnNsaWNlKDEpLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZy50ZXN0KHgudmFsdWUpfSkpKX19YS5hdXRvY29tcGxldGUoe2RlbGF5OjAsc291cmNlOnRoaXMuRmllbGRzKCksc291cmNlOmQsc2VsZWN0OmMuZGVib3VuY2UoMjApLGFwcGVuZFRvOngubXkucm9vdCgpLG1pbkxlbmd0aDowfSksYS5vbigia2V5dXAubXkiLGZ1bmN0aW9uKHgpe3ZhciBiPXgua2V5Q29kZTsxMyE9YiYmMTAhPWJ8fGEuYmx1cigpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIG51bGwhPWEmJigvXHNcL1thLXpdW2EtejAtOV17MCw1fSQvLnRlc3QoYSk/eC5jYXN0PWEubWF0Y2goL1xzXC9bYS16XVthLXowLTldezAsNX0kLylbMF0uc3Vic3RyKDIpOnguY2FzdD0iIix4LmNvbHM9YSxiLmF0dHIoInRpdGxlIix4LmNvbHMubGVuZ3RoPjg/eC5jb2xzOiIiKSksIuKAjCI9PXguY29scyYmZnVuY3Rpb24oKXtjLm15LnJlbW92ZSgpfS5kZWxheSgxMCkseC5jb2xzfX0sIiNidG4tZm9sZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5teS5maW5kKCIuZ3JpZC1jb2x1bW4tcHRyIiksZD1jLmF1dG9jb21wbGV0ZSgid2lkZ2V0IikuaXMoIjp2aXNpYmxlIik7cmV0dXJuIG51bGwhPWEmJihkP2MuYXV0b2NvbXBsZXRlKCJjbG9zZSIpOihjLmF1dG9jb21wbGV0ZSgic2VhcmNoIiwiIiksYi5SVCgiY2xvc2VBdXRvY29tcGxldGVzIikoYykpLGQ9IWQpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGQ/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iix3YXRjaDpbIi5ncmlkLWNvbHVtbi1wdHIiXX19LEZpZWxkczpmdW5jdGlvbigpe3ZhciBhPXguYnVpbGRGaWVsZHNMaXN0KCk7cmV0dXJuIHguQ29sdW1ucy5sZW5ndGg8MiYmKGE9YS5zbGljZSgxKSksYX0sZGllOmZ1bmN0aW9uKHgpe3guZmluZCgiLmdyaWQtY29sdW1uLXB0ciIpLmF1dG9jb21wbGV0ZSgiZGVzdHJveSIpfX19LFQ6e3ZpZXdfbm9pZDonPGRpdiBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIj57aWRzYWZlfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2PicsdmlldzonPGRpdiBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9Intkb2NpZHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIHczNXAtMzAgcGwwIj57aWRzYWZlfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWVkaXR1c2VyIHZpZXctaG92ZXJidG4gcHNldWRvbGluayIgZGF0YS11c2VyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIGZzMTEwIj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLHZpZXdfZmlsdGVyX25vaWQ6JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyI+e2lkc2FmZWZpbHRlcn08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLHZpZXdfZmlsdGVyOic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB2YXQgdGFjIG1sNCBtcjEgbXQ4IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2RvY2lkc2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMgdzM1cC0zMCBwbDAiPntpZHNhZmVmaWx0ZXJ9PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWhvdmVyYnRuIHtub2RvY30gcHNldWRvbGluayI+PHNwYW4gY2xhc3M9ImZpLXBhZ2UtZmlsbGVkIGJ0bi1vcGVuLWRvYyIgZGF0YS11cmw9IntocmVmfSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+JyxtYW5nbzonPGRpdiBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIj57aWRzYWZlfTwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyxkb2NzOic8ZGl2IGNsYXNzPSJ3MTAwcCB2aWV3LXJvdyI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHRhYyBtbDQgbXIxIG10OCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9IntpZHNhZmV9Ij48ZGl2IGNsYXNzPSJ3MzhwLTMwIHByMTIgcHQzIj48c3BhbiBjbGFzcz0iYnRuLW9wZW4tZG9jIHBzZXVkb2xpbmsgdGRuIiBkYXRhLXVybD0ie2hyZWZ9Ij57aWRzYWZlfTwvc3Bhbj48ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIgbzUwIGJsdWUiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWVkaXR1c2VyIHZpZXctaG92ZXJidG4iIGRhdGEtdXNlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS10b3JzbyBvNTAgZnMxMTAgYmx1ZSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Inc2MnAgcHIxMCBwbDMgcHQzIj57cmV2fTwvZGl2PjwvZGl2PicsZGVzaWduX2RvY3M6JzxkaXYgY2xhc3M9IncxMDBwIHZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7aWRzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyB3MzVwLTMwIHByMjAgcGwwIj48c3BhbiBjbGFzcz0iYnRuLW9wZW4tZG9jIHBzZXVkb2xpbmsgdGRuIiBkYXRhLXVybD0ie2hyZWZ9Ij57aWRzYWZlfTwvc3Bhbj48ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIgbzUwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2PicsdXNlcl9kb2NzOic8ZGl2IGNsYXNzPSJ3MTAwcCB2aWV3LXJvdyBwdDMiPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB0YWMgbWw0IG1yMSBwdDIiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7aWRzYWZlfSI+PGRpdiBjbGFzcz0idzM4cC0zMCBwcjIwIj48c3BhbiBjbGFzcz0iYnRuLW9wZW4tZG9jIHBzZXVkb2xpbmsgdGRuIiBkYXRhLXVybD0ie2hyZWZ9Ij57aWRzYWZlfTwvc3Bhbj48ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIgbzUwIGJsdWUiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWVkaXR1c2VyIHZpZXctaG92ZXJidG4iIGRhdGEtdXNlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS10b3JzbyBvNTAgZnMxMTAgYmx1ZSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Inc2MnAgcHIxMCI+e3Jldn08L2Rpdj48L2Rpdj4nLGdyaWRfdmlldzonPHRyIGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjx0ZCBjbGFzcz0iZ2NvbHcwIj48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OSIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9Intkb2NpZHNhZmV9Ij48ZGl2IGNsYXNzPSJ3MTAwcC0zMCBkaWIiPntpZHNhZmVmaWx0ZXJ9PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWhvdmVyYnRuIHtub2RvY30gcHNldWRvbGluayI+PHNwYW4gY2xhc3M9ImZpLXBhZ2UtZmlsbGVkIGJ0bi1vcGVuLWRvYyIgZGF0YS11cmw9IntocmVmfSI+PC9zcGFuPjwvZGl2PjwvZGl2PjwvdGQ+e2NvbHVtbnN9PC90cj4nLGdyaWRfZG9jOic8dHIgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PHRkIGNsYXNzPSJnY29sdzAiPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB2YXQgdGFjIG1sNCBtcjEgbXQ5IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2RvY2lkc2FmZX0iPjxkaXYgY2xhc3M9IncxMDBwLTMwIGRpYiI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZWZpbHRlcn08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWVkaXR1c2VyIHZpZXctaG92ZXJidG4iIGRhdGEtdXNlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS10b3JzbyBvNTAgZnMxMTAgYmx1ZSI+PC9zcGFuPjwvZGl2PjwvZGl2PjwvdGQ+e2NvbHVtbnN9PC90cj4nLGdyaWRfbWFuZ286Jzx0ciBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48dGQgY2xhc3M9Imdjb2x3MCI+PGRpdiBjbGFzcz0idzEwMHAgZGliIHBsNyBwdDQiPntpZHNhZmVmaWx0ZXJ9PC9kaXY+PC90ZD57Y29sdW1uc308L3RyPicsZ3JpZF9jb2x1bW46Jzx0ZCBjbGFzcz0iZ3JpZC1jb2x1bW4gY3Age2Nzc30iIGRhdGEtaWR4PSJ7aWR4fSI+PGRpdj57dmFsfTwvZGl2PjwvdGQ+J319LCRkYnM6e2lkOiJjdy5QaG90b24uJGRicyIsbGFuZzp7fSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuImxpc3QifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJEQiBsaXN0IGFuZCB0YXNrcyJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubGVuZ3RoP251bGw6e3RpdGxlOiJEQiBsaXN0IGFuZCB0YXNrcyJ9fSxpbmhlcml0OlsiQnl0ZXMiLCJNZXRyaWMiXSxkYXRhOntyZXZlcnNlOiExLHNlYXJjaDoiIixzZWxlY3Rpb246W10sb3NlbDp7fSxzdGFyczp7fSxncm91cHM6e30sdGFzazp7c2VhcmNoOiIiLGZpbHRlcjpbIiJdLGxpc3Q6W10sc2VsZWN0aW9uOltdLGZvbGQ6e30sc2VxOjB9LHNlcnZpY2U6e3ZlcnNpb246IiJ9fSxBbGw6e30sR3JvdXBzOnt9LExpc3Q6W10sQmF0Y2g6e30sVGFza3M6W10sQWxsVGFza3M6e30sTW9kYWxzOnt9LFRhc2tMb29wOiExLFRhc2tMb29wSW50ZXJ2YWw6ITEsTGFzdFN5bmM6e3NyYzp7fSx0Z3Q6e319LHVpOnsiI2RiLXNlYXJjaCI6e2RlbGF5OjE1MCxiaW5kOiJzZWFyY2giLGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih4LnNlbGVjdGlvbi5sZW5ndGg/dGhpcy5CYXRjaEluZm8oeC5zZWxlY3Rpb24sdGhpcy5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXkpOnRoaXMuR2V0TGlzdCghMCkpfX0sIiNidG4tdmlldy1kaXIiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJldmVyc2U9IXgucmV2ZXJzZSkseC5yZXZlcnNlPyLilrwiOiLilrIifSxldmVudHM6ImNsaWNrLm15In0sIiNidG4tc2VsZWN0Ijp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiLGM9dGhpcyxkPU9iamVjdC5rZXlzKGMuQWxsKSxlPWMuTGlzdC5maWx0ZXIoeD0+IXgudHlwZSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWV9KSxmPXguc2VsZWN0aW9uLGc9Zi5pbnRlcnNlY3QoZSksaD1nLmxlbmd0aCxpPWMubGFuZztyZXR1cm4gYj1oP2kuVFhUX1VOU0VMRUNULmFzc2lnbihnLmxlbmd0aD09ZC5sZW5ndGg/aS5UWFRfU0VMRUNUX0FMTDpmLmxlbmd0aCk6aS5UWFRfU0VMRUNULmFzc2lnbihlLmxlbmd0aD09ZC5sZW5ndGg/aS5UWFRfU0VMRUNUX0FMTDplLmxlbmd0aCksbnVsbCE9YSYmKHguc2VsZWN0aW9uPWg/W106Zi5jb25jYXQoZSkudW5pcXVlKCkseC5vc2VsPWN3LmxpYi5hMm8oeC5zZWxlY3Rpb24pKSxifSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuTGlzdC5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LWhhc3NlbGVjdGlvbiIsIiNkYi1wcm94eSJdfSwiI3ZpZXctY29scyI6e2RlbGVheToyMCxiaW5kOmZ1bmN0aW9uKHgsYSl7Zm9yKHZhciBiLGM9dGhpcy5MaXN0LGQ9MCxlPSh4PTAsMCk7ZTxjLmxlbmd0aDtlKyspZCs9KGI9Imdyb3VwIj09Y1tlXS50eXBlKT8wOjEseCs9Yj8wOmNbZV0uZGlza19zaXplfHwwO3JldHVybiB0aGlzLmxhbmcuVFhUX0RCU1ZJRVcoZCxPYmplY3Quc2l6ZSh0aGlzLkFsbCkseD8nPHNwYW4gY2xhc3M9ImZzODUgbzcwIHBsNiI+Jyt0aGlzLkJ5dGVzKHgpKyI8L3NwYW4+IjowKX0sd2F0Y2g6WyIjZGItcHJveHkiXX0sIiN2aWV3LWxpbmtzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMuUGhvKCJCYXNlIik7cmV0dXJuWyc8YSB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiIgaHJlZj0iezF9Ij57Mn08L2E+Jy5hc3NpZ24oYixiLnJlcGxhY2UoL15odHRwW3NdPzpcL1wvfFwvL2csIiIpLmVzY2FwZUhUTUwoKSldLmpvaW4oIuKAiSIpfX0sIiNkYi1saXN0Ijp7ZGVsYXk6NTAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5Sb3csYz1hLlJvd0dyb3VwLGQ9YS5Ob3JtREIsZT1hLmRhdGEsZj1hLmxhbmc7ZnVuY3Rpb24gZyh4KXtyZXR1cm4geC5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCI+aW5wdXQiKS5hdHRyKCJ2YWx1ZSIpfXgubGlzdCh7ZGF0YTpbXSxkZWxheTowLGNodW5rOjEwMCxzb3J0Qnk6bnVsbCxpZDpmdW5jdGlvbih4KXtyZXR1cm4iZ3JvdXAiPT14LnR5cGU/eC5pZDp4Lm5hbWV9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuImdyb3VwIj09eC50eXBlP2N3LmxpYi5zZGJtKFt4LmhlYWQseC5zdGFydCx4LmVuZCx4LmZvbGQseC5kaXNrXSk6Y3cubGliLnNkYm0oW3gubmFtZSx4LnN0YW1wLHgudXBkYXRlX3NlcSsieCIsZS5vc2VsW3gubmFtZV0/IngiOiIiLHguc3Rhcix4LnNpemV0aXAseC5zZWN1cml0eS5zdGFtcCx4LnRhc2tzLnN0YW1wLHguc3luY3Muc3RhbXBdKX0sdGVtcGxhdGU6ZnVuY3Rpb24oeCl7cmV0dXJuImdyb3VwIj09eC50eXBlP2MuYXNzaWduKHgpOmIuYXNzaWduKGQoeCkpfX0pLGEubmljZVNjcm9sbCh4KSx4Lm9uKCJjbGljay5teSIsIi5idG4tZGJhY2wiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KSxjPWcoYik7YS5SZXEoW2MsIl9zZWN1cml0eSJdKS50aGVuKGZ1bmN0aW9uKHgpe2IubW9kYWwoe3Jvb3Q6YS5teS5yb290KCksbWFuaWZlc3Q6YS5QaG8oIlNlY09iaiIpLGRhdGE6e2RiczpbY10sYWRtaW5zOnguYWRtaW5zfHx7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6eC5tZW1iZXJzfHx7bmFtZXM6W10scm9sZXM6W119fSx3aWR0aDo0ODAsYm91bmQ6MCxub3NlOiJsZWZ0Iixjc3M6InhncmF5IixhbGlnbjoibGVmdDo3MCU7dG9wOi0zNnB4OyIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixlc2M6ITB9KX0pfSkseC5vbigiY2xpY2subXkiLCIuYnRuLWRic3RhciIsZnVuY3Rpb24oeCl7dmFyIGI9ZygkKHguY3VycmVudFRhcmdldCkpLGM9ZS5zdGFyc1tiXT0hZS5zdGFyc1tiXTthLkFsbFtiXS5zdGFyPWM/InJvdy1zdGFyIjoiIixhLkxzKCJEQnMuU3RhcnMiLE9iamVjdC5rZXlzKGUuc3RhcnMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiBlLnN0YXJzW2FdJiYoeFthXT0hMCkseH0se30pKSxjJiYoYS5BbGxbYl0uZ3JvdXA9IiIpLGEuUGhvKCJHcm91cERCcyIpKCksYS5SZWxpc3ROb3coKSxhLkJhdGNoSW5mbyhbYl0pfSkseC5vbigiY2xpY2subXkiLCIuYnRuLWRiaW5mbyIsZnVuY3Rpb24oeCl7JCh4LmN1cnJlbnRUYXJnZXQpLnBhcmVudCgpLnBhcmVudCgpLmZpbmQoIi50YXAtZGJpbmZvIikudHJpZ2dlcigiY2xpY2siKX0pLHgub24oImNsaWNrLm15IiwiLnRhcC1kYmluZm8iLGZ1bmN0aW9uKHgpe3ZhciBiLGMsZD0kKHguY3VycmVudFRhcmdldCksZT1kLnBhcmVudCgpLGc9ZS5maW5kKCI+aW5wdXQiKS5hdHRyKCJ2YWx1ZSIpO2lmKCFhLkFsbFtnXXx8ZC5pcygiLmNvbC1qc29uIikpcmV0dXJuITE7ZC5hZGRDbGFzcygiY29sLWpzb24iKSxlLmFkZENsYXNzKCJoYXMtY29sLWpzb24iKSxkLmZpbmQoIj4uY29sLWVkLWNsb3NlIikubGVuZ3RoPyhiPWQuZmluZCgiPi5jb2wtZWQ+LkNvZGVNaXJyb3IiKSxjPWJbMF0uQ29kZU1pcnJvcik6KGQuYXBwZW5kKGI9JCgnPGRpdiBjbGFzcz0iY29sLWVkIHByZSBmczg1IGxoMTIwIHBsNCBoaWRlIj48L2Rpdj4nKSksZC5hcHBlbmQoJzxkaXYgY2xhc3M9ImNvbC1lZC1jbG9zZSBmczEzMCBsaDEzMCBoaWRlIiB0aXRsZT0iezF9Ij7inJU8L2Rpdj4nLmFzc2lnbihmLlRJUF9DTE9TRUpTT04pKSxjPUNvZGVNaXJyb3IoYlswXSx7bW9kZToiamF2YXNjcmlwdCIsbGluZU51bWJlcnM6ITEsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMH0pKSxjLnNldFZhbHVlKGYuVFhUX0RCSU5GT19MT0FEKTt2YXIgaD17aW5mbzoiRmFpbCB0byBsb2FkIixzZWN1cml0eToiRmFpbCB0byBsb2FkIn07US5hbGxTZXR0bGVkKFthLlJlcSh7dXJsOltnXX0pLnRoZW4oZnVuY3Rpb24oeCl7aC5pbmZvPXh9KSxhLlJlcSh7dXJsOltnLCJfc2VjdXJpdHkiXX0pLnRoZW4oZnVuY3Rpb24oeCl7aC5zZWN1cml0eT14fSldKS50aGVuKGZ1bmN0aW9uKCl7Yy5zZXRWYWx1ZSgiKCIrSlNPTi5zdHJpbmdpZnkoaCxudWxsLCIgIikrIikiKX0pLmZhaWwoZnVuY3Rpb24oKXtjdy5saWIubm90ZShmLkVSUl9EQklORk8sImVycm9yIiksZC5yZW1vdmVDbGFzcygiY29sLWpzb24iKX0pfSkseC5vbigiY2xpY2subXkiLCIuY29sLWVkLWNsb3NlIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCkucGFyZW50KCksYz1iLnBhcmVudCgpLmZpbmQoIj5pbnB1dCIpLmF0dHIoInZhbHVlIik7cmV0dXJuIGIucmVtb3ZlQ2xhc3MoImNvbC1qc29uIiksYi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGFzLWNvbC1qc29uIiksYS5CYXRjaEluZm8oW2NdLDAsWyJpbmZvIiwic2VjdXJpdHkiXSksITF9KSx4Lm9uKCJjbGljay5teSIsIi5kYi1ncm91cCIsZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmN1cnJlbnRUYXJnZXQpLmRhdGEoImdyb3VwIiksYz1lLmdyb3Vwc1tiXT0hZS5ncm91cHNbYl07YS5McygiREJzLkdyb3VwcyIsT2JqZWN0LmtleXMoZS5ncm91cHMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiBlLmdyb3Vwc1thXSYmKHhbYV09MSkseH0se30pKSxjJiZhLkJhdGNoSW5mbyhPYmplY3Qua2V5cyhhLkFsbCkuZmlsdGVyKHg9PmEuQWxsW3hdLmdyb3VwPT1iKSxudWxsLFsiaW5mbyIsInNlY3VyaXR5Il0pLGEubXkuY2hlY2soIiNkYi1wcm94eSIpLGEubXkuY2hlY2soIiN2aWV3LWhhc3NlbGVjdGlvbiIpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGw9PWEmJmIubGlzdCgiZGF0YSIsdGhpcy5MaXN0KX0sd2F0Y2g6WyIjZGItcHJveHkiLCIjdmlldy1oYXNzZWxlY3Rpb24iXX0sIiNkYi1wcm94eSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9KGIuUm93LGIuQWxsKSxkPXgucmV2ZXJzZT8tMToxLGU9LWQ7aWYoYi5MaXN0PU9iamVjdC52YWx1ZXMoYykuc29ydChmdW5jdGlvbih4LGEpe3JldHVybiB4LnN0YXI+YS5zdGFyPy0xZTM6eC5zdGFyPGEuc3Rhcj8xZTM6eC5uYW1lPmEubmFtZT9kOmV9KSx4LnNlYXJjaC5sZW5ndGg+MSl7dmFyIGY9bmV3IFJlZ0V4cCh4LnNlYXJjaC50b0xvd2VyQ2FzZSgpLnNwbGl0KCIgIikuY29tcGFjdCghMCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmVzY2FwZVJlZ0V4cCgpfSkuam9pbigifCIpKTtiLkxpc3Q9Yi5MaXN0LmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZi50ZXN0KHgubmFtZS50b0xvd2VyQ2FzZSgpKXx8ISF4LnRvb2x0aXAmJmYudGVzdCh4LnRvb2x0aXAudG9Mb3dlckNhc2UoKSl9KX1lbHNle3ZhciBnPSIiLGg9e307Yi5MaXN0LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5ncm91cDtpZihhKXtoW2FdfHwoaFthXT1bMCwwXSk7dmFyIGI9K3guZGlza19zaXplfHwwO2ImJihoW2FdWzBdKz1iLGhbYV1bMV0rPTEpfX0pLGIuTGlzdD1iLkxpc3QucmVkdWNlKGZ1bmN0aW9uKGEsYyl7dmFyIGQ9Yy5ncm91cCxlPWIuUGhvKCJHcm91cHMiKVtkXTtyZXR1cm4gZCYmZCE9ZyYmYS5wdXNoKCQuZXh0ZW5kKCEwLHt0eXBlOiJncm91cCIsZm9sZDp4Lmdyb3Vwc1tkXT8iYWRvd24iOiJhcmlnaHQiLGRpc2s6IWhbZF18fGhbZF1bMV08ZS5zaXplPyIiOmIuQnl0ZXMoaFtkXVswXSl9LGUpKSxkJiYheC5ncm91cHNbZF18fGEucHVzaChjKSxnPWQsYX0sW10pfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczthJiYoYS5uYW1lPyhiLkdldExpc3QoITApLGIuUmVzdGFydFBvbGwoKSk6JC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pKX0sZGJsaXN0OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzQXJyYXkoYSkmJnRoaXMuR2V0TGlzdCghMCxhKX19LHdhdGNoOlsiI2J0bi12aWV3LWRpciIsIiNkYi1zZWFyY2giLCIjYnRuLXNlbGVjdCJdfSwiI3ZpZXctaGFzc2VsZWN0aW9uIjp7Y3NzOnt9LHdhdGNoOlsiI2RiLXNlYXJjaCIsIiNidG4tc2VsZWN0Il19LCIjYnRuLWxvZ3MiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuUGhvKCJDb3VjaCIpLnZlcj49IjAwMi4ifX19LCIjYnRuLW5ld2RiIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcyxkPWMubXkuZmluZCgiI2RiLWxpc3QiKS53aWR0aCgpLTMxMCsxNTAtMzE7Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tbmV3ZGIiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLGMubXkubW9kYWwoIiNidG4tbmV3ZGIiLHttYW5pZmVzdDpjLlBobygiTmV3REIiKSx3aWR0aDpkPDU1MD9kKzgwOmQsZGF0YTpjLlBobygiQ291Y2giKS52ZXI8IjAwMy4iP3t9OnthZG1pbnM6e3JvbGVzOlsiX2FkbWluIl19LG1lbWJlcnM6e3JvbGVzOlsiX2FkbWluIl19fSxhbGlnbjoidG9wOjEwMiU7bGVmdDotNDJweDsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsZHJhZzoiLmNtIixzY3JlZW46ITEsZXNjOiEwLGZvY3VzOidpbnB1dFt0eXBlPSJ0ZXh0Il06ZXEoMCknfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSkpfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hY3cubWUoKX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tbmV3ZGIiKX19fSwiI2J0bi1jb21wYWN0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi1jb21wYWN0IiwhMCk6KGMuTW9kYWxzLmhlYWQmJmMuTW9kYWxzLmhlYWQubW9kYWwoITApLGMuTW9kYWxzLmhlYWQ9YixjLm15Lm1vZGFsKCIjYnRuLWNvbXBhY3QiLHttYW5pZmVzdDpjLlBobygiQ29tcGFjdCIpLHdpZHRoOjM4MCxkYXRhOntzZWxlY3Rpb246eC5zZWxlY3Rpb24uc2xpY2UoMCl9LGFsaWduOiJ0b3A6MTAyJTtsZWZ0OjA7Iixub3NlOiJ0b3AiLGNzczoieGdyYXkiLHNjcmVlbjohMSxlc2M6ITAsZm9jdXM6IiNidG4tc3RhcnQifSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSkpfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hY3cubWUoKXx8IXguc2VsZWN0aW9uLmxlbmd0aHx8IXRoaXMuTGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pLmludGVyc2VjdCh4LnNlbGVjdGlvbikubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1oYXNzZWxlY3Rpb24iXSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXt0aGlzLm15LmNoZWNrKCIjYnRuLWNvbXBhY3QiKX19fSwiI2J0bi1kZWxkYiI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXM7Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tZGVsZGIiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLCQubXkubW9kYWwoe21hbmlmZXN0OmMuUGhvKCJEZWxEQiIpLHdpZHRoOjM4MCxkYXRhOntkYnM6eC5zZWxlY3Rpb24uc2xpY2UoMCl9LGZvY3VzOiIjYnRuLWNhbmNlbCIsY3NzOiJ4Z3JheSBwMjAiLGVzYzohMCxlbnRlcjohMX0pLnRoZW4oZnVuY3Rpb24oKXt4LnNlbGVjdGlvbi5sZW5ndGg9MCx4Lm9zZWw9e319KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfHwheC5zZWxlY3Rpb24ubGVuZ3RofHwhdGhpcy5MaXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkuaW50ZXJzZWN0KHguc2VsZWN0aW9uKS5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LWhhc3NlbGVjdGlvbiJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tZGVsZGIiKX19fSwiI3Rhc2stZmlsdGVyIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3MoJC5leHRlbmQoITAse30sdGhpcy5sYW5nLlRBR1NfVEFTS19UWVBFLHt0YWdzaGltOiLigIkiLGdyb3Vwc2hpbToi4oCJIn0pKX0sYmluZDoidGFzay5maWx0ZXIifSwiI3Rhc2stY29scyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiBiLmxhbmcuVFhUX1RBU0tWSUVXKGIuVGFza3MubGVuZ3RoP3gudGFzay5saXN0LmZpbHRlcihiLk5vR3JvdXApLmxlbmd0aDowLGIuVGFza3MuZmlsdGVyKGIuTm9Hcm91cCkubGVuZ3RoKX0sd2F0Y2g6WyIjdGFzay1maWx0ZXIiLCIjdGFzay1saXN0IiwiI3Rhc2stc2VhcmNoIl19LCIjdGFzay1zZWFyY2giOntkZWxheToxMDAsYmluZDoidGFzay5zZWFyY2giLGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiN0YXNrLWxpc3QiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlRUYXNrLGM9YS5kYXRhO2Z1bmN0aW9uIGQoKXthLm15LnJlY2FsYygiI3Rhc2stbGlzdCIpLGEubXkuY2hlY2soIiN0YXNrLWxpc3QiKX1mdW5jdGlvbiBlKHgpe3JldHVybiBPYmplY3Qua2V5cyh4KS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4geFtiXSYmKGFbYl09ITApLGF9LHt9KX14Lmxpc3Qoe2RhdGE6YS5UYXNrcyxkZWxheTowLGNodW5rOjEwMCxzb3J0Qnk6bnVsbCxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5waWQreC5kb2NfaWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LnBpZCx4Ll9ncm91cHx8In4iLHguX3R5cGV8fCJ+Iix4Ll9zZWxlY3RlZD8ic2VsIjoidW5zZWwiLHguX2ZvbGQ/ImZvbGQiOiJ1bmZvbGQiLHgudHlwZSx4Ll9wcm9ncmVzcyx4Ll9zdGFydGVkLHguX2Rlc2MseC5maWx0ZXJdKX0sdGVtcGxhdGU6ZnVuY3Rpb24oeCl7cmV0dXJuIGIoeCl9fSksYS5uaWNlU2Nyb2xsKHgpLHgub24oImNsaWNrLm15IiwnaW5wdXRbbmFtZT0idGFzay1zZWxlY3Rpb24iXScsZnVuY3Rpb24oYil7dmFyIGU9W10sZj14LmZpbmQoJ2lucHV0W25hbWU9InRhc2stc2VsZWN0aW9uIl0nKSxnPSQoYi50YXJnZXQpLnZhbCgpO2YuZWFjaChmdW5jdGlvbigpe3ZhciB4PSQodGhpcyk7eC5pcygiOmNoZWNrZWQiKSYmZS5wdXNoKHgudmFsKCkpfSk7dmFyIGgsaT1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWQ9PWcuZXNjYXBlSFRNTCgpfSksaj17fSxrPSIiO2kmJihoPWkuX3NlbGVjdGVkPWUuaW5kZXhPZihnKT4tMSwiZ3JvdXAiPT1pLl90eXBlPyhrPWcuZnJvbSgyKSxpLl9mb2xkPSFoJiZpLl9mb2xkLGgmJihjLnRhc2suZm9sZFtrXT0hMSksYS5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gucmVwbGljYXRpb25faWQhPWcmJnguX2dyb3VwPT1rJiYoKHguX3NlbGVjdGVkPWgpP2UucHVzaCh4LnJlcGxpY2F0aW9uX2lkKTplLnJlbW92ZSh4LnJlcGxpY2F0aW9uX2lkKSl9KSk6KGs9aS5fZ3JvdXApJiYoaj1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuImdyb3VwIj09eC5fdHlwZSYmeC5waG90b25fdGFzaz09a30pKSYmKGouX3NlbGVjdGVkPWkuX3NlbGVjdGVkJiZqLl9zZWxlY3RlZCkpLGMudGFzay5zZWxlY3Rpb249ZS51bmlxdWUoKSxkKCl9KSx4Lm9uKCJjbGljay5teSIsIi50YXNrbGFiZWwiLGZ1bmN0aW9uKCl7JCh0aGlzKS5wYXJlbnQoKS5maW5kKCJpbnB1dCIpLnRyaWdnZXIoImNsaWNrIil9KSx4Lm9uKCJjbGljay5teSIsIi50YXNrLWdyb3VwIixmdW5jdGlvbigpe2MudGFzay5zZWFyY2g9JCh0aGlzKS5hdHRyKCJ0aXRsZSIpfHwkKHRoaXMpLnRleHQoKSxhLm15LnJlY2FsYygiI3Rhc2stc2VhcmNoIil9KSx4Lm9uKCJjbGljay5teSIsIi50YXNrLWZvbGRncm91cCIsZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLmRhdGEoImdyb3VwIikucmVwbGFjZSgvXl9fLywiIiksYj1jLnRhc2suZm9sZFt4XT0hYy50YXNrLmZvbGRbeF0sZj0iX18iK3gsZz1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGljYXRpb25faWQ9PWZ8fGEuX2dyb3VwPT14fSk7Zy5fZm9sZD1iLGcuX3NlbGVjdGVkPWcuX3NlbGVjdGVkJiYhYixiJiZjLnRhc2suc2VsZWN0aW9uLnJlbW92ZSgiX18iK3gpLGEuTHMoIlRhc2tzLkZvbGQiLGUoYy50YXNrLmZvbGQpKSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGQ9YS5fc2VsZWN0ZWQ7YS5fZ3JvdXA9PXgmJihhLl9zZWxlY3RlZD1hLl9zZWxlY3RlZCYmIWIsZCYmIWEuX3NlbGVjdGVkJiZjLnRhc2suc2VsZWN0aW9uLnJlbW92ZShhLnJlcGxpY2F0aW9uX2lkKSl9KSxkKCl9LmRlYm91bmNlKDEwKSkseC5vbigiY2xpY2subXkiLCIuYnRuLWRvbmUtcmVzdGFydCIsZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLmRhdGEoImlkIik7YS5SZXN0YXJ0VGFza3MoITEsW3hdKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsPT1hKXtpZih4LnRhc2suc2VhcmNoLmZyb20oMSl8fCIiIT14LnRhc2suZmlsdGVyKXt2YXIgYz10aGlzLlRhc2tzLnNsaWNlKDApLGQ9eC50YXNrLmZpbHRlci5leGNsdWRlKCJhY3RpdmUiKSsiIjtpZih4LnRhc2suZmlsdGVyLmZpbmQoImFjdGl2ZSIpJiYoYz1jLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4iRXJyb3IiIT14LnBpZCYmIkRvbmUiIT14LnBpZH0pKSwiY29tcGFjdGlvbiI9PWQpeC50YXNrLmxpc3Q9Yy5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuL2NvbXBhY3Rpb24kLy50ZXN0KHgudHlwZSl9KTtlbHNle3ZhciBlPWQ/Yy5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISgoInJlcGxpY2F0aW9uIiE9ZHx8Imdyb3VwIiE9eC5fdHlwZSkmJi0xPT0oeC50eXBlKyIiKS5pbmRleE9mKGQpKX0pOmM7aWYoeC50YXNrLnNlYXJjaC5sZW5ndGg+MSl7dmFyIGY9bmV3IFJlZ0V4cCh4LnRhc2suc2VhcmNoLnRvTG93ZXJDYXNlKCkuc3BsaXQoInwiKS5jb21wYWN0KCEwKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZXNjYXBlUmVnRXhwKCl9KS5qb2luKCJ8IikpO2U9ZS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGYudGVzdCh4Ll9pbmRleCl9KX14LnRhc2subGlzdD1oKGUuZmlsdGVyKGcpKX19ZWxzZSB4LnRhc2subGlzdD10aGlzLlRhc2tzLmZpbHRlcihnKTt0aGlzLm15LmZpbmQoIiN0YXNrLWxpc3QiKS5saXN0KCJkYXRhIix4LnRhc2subGlzdCl9ZnVuY3Rpb24gZyhhKXtyZXR1cm4iZ3JvdXAiPT1hLl90eXBlfHwhYS5fZ3JvdXB8fCF4LnRhc2suZm9sZFthLl9ncm91cF19ZnVuY3Rpb24gaCh4KXt2YXIgYT17fTtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKHgpeyJncm91cCIhPXguX3R5cGUmJnguX2dyb3VwJiYoYVt4Ll9ncm91cF09KGFbeC5fZ3JvdXBdfHwwKSsxKX0pLHguZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiEhKCJncm91cCIhPXguX3R5cGV8fGFbeC5fZ3JvdXBdfHx4Ll9mb2xkJiZ4Ll9ydW4pfSl9fSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLXNlYXJjaCIsIiNidG4tc2VsZWN0LXRhc2tzIl19LCIjYnRuLXNlbGVjdC10YXNrcyI6e2RlbGF5OjAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlRhc2tzLnNsaWNlKDApLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZH0pLmNvbXBhY3QoKSxkPXgudGFzay5saXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZH0pLmNvbXBhY3QoKSxlPXgudGFzay5zZWxlY3Rpb24uaW50ZXJzZWN0KGQpLmZpbHRlcihiLk5vR3JvdXApLGY9ZS5maWx0ZXIoYi5Ob0dyb3VwKS5sZW5ndGgsZz1iLmxhbmc7cmV0dXJuIG51bGwhPWEmJih4LnRhc2suc2VsZWN0aW9uPWY/eC50YXNrLnNlbGVjdGlvbi5zdWJ0cmFjdChkKS51bmlxdWUoKTp4LnRhc2suc2VsZWN0aW9uLmNvbmNhdChkKS51bmlxdWUoKSxlPXgudGFzay5zZWxlY3Rpb24sYi5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gucmVwbGljYXRpb25faWQmJiF4Ll9mb2xkJiYoeC5fc2VsZWN0ZWQ9ZS5pbmRleE9mKHgucmVwbGljYXRpb25faWQpPi0xKX0pKSwoZj0oZT14LnRhc2suc2VsZWN0aW9uLmludGVyc2VjdChkKSkuZmlsdGVyKGIuTm9Hcm91cCkubGVuZ3RoKT9nLlRYVF9UX1VOU0VMRUNULmFzc2lnbihlLmxlbmd0aD09Yy5sZW5ndGg/Zy5UWFRfVF9TRUxFQ1RfQUxMOmYpOmcuVFhUX1RfU0VMRUNULmFzc2lnbihkLmxlbmd0aD09Yy5sZW5ndGg/Zy5UWFRfVF9TRUxFQ1RfQUxMOmcuVFhUX1RfU0VMRUNUX0ZJTFRFUil9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC50YXNrLmxpc3QuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZCYmImdyb3VwIiE9eC5fdHlwZX0pfX0sd2F0Y2g6WyIjdGFzay1saXN0IiwiI3Rhc2stZmlsdGVyIiwiI3Rhc2stc2VhcmNoIl19LCIjYnRuLXJlbG9hZHN5bmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5SZXN0YXJ0UG9sbC5kZWJvdW5jZSg1MDApKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hY3cubWUoKX19LHdhdGNoOlsiI3Rhc2stbGlzdCJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7T2JqZWN0LmlzT2JqZWN0KGEpJiYoYS5uYW1lP2IubXkuY2hlY2soIiNidG4tcmVsb2Fkc3luYyIpOihiLlRhc2tzLmxlbmd0aD0wLHgudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYi5teS5yZWNhbGMoIiN0YXNrLWxpc3QiKSxiLm15LmNoZWNrKCIjdGFzay1jb2xzIiksYi5teS5jaGVjaygiI3Rhc2stbGlzdCIpKSl9fX0sIiNidG4tcmVzeW5jIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztpZihiLmRhdGEoIm1vZGFsIikpcmV0dXJuIGIubW9kYWwoITApLHZvaWQgMDtjLk1vZGFscy50YXNrcyYmYy5Nb2RhbHMudGFza3MubW9kYWwoITApLGMuUmVzdGFydFRhc2tzKCkudGhlbihmdW5jdGlvbigpe3gudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYy5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGMuUmVzdGFydFBvbGwuZGVib3VuY2UoMzAwKSgpLGMuUmVzdGFydFBvbGwuZGVib3VuY2UoMjUwMCkoKX0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigheC50YXNrLnNlbGVjdGlvbi5sZW5ndGgpcmV0dXJuITA7dmFyIGE9eC50YXNrLnNlbGVjdGlvbi5maWx0ZXIodGhpcy5Ob0dyb3VwKS5pbnRlcnNlY3QoeC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkpO2lmKCFhLmxlbmd0aClyZXR1cm4hMDt2YXIgYj1jdy5saWIuYTJvKGEpLGM9ITA7cmV0dXJuIHRoaXMuVGFza3MuZm9yRWFjaChmdW5jdGlvbih4KXsheC5kb2NfaWQmJmJbeC5yZXBsaWNhdGlvbl9pZF0mJihjPSExKX0pLCFjfX0sd2F0Y2g6WyIjdGFzay1maWx0ZXIiLCIjdGFzay1saXN0Il19LCIjYnRuLXN0b3BzeW5jIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5SZXN0YXJ0VGFza3MoITApLnRoZW4oZnVuY3Rpb24oKXt4LnRhc2suc2VsZWN0aW9uLmxlbmd0aD0wLGIubXkuY2hlY2soIiN0YXNrLWxpc3QiKSxiLlJlc3RhcnRQb2xsLmRlYm91bmNlKDMwMCkoKSxiLlJlc3RhcnRQb2xsLmRlYm91bmNlKDI1MDApKCl9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudGFzay5zZWxlY3Rpb24ubGVuZ3RofHwoIXgudGFzay5zZWxlY3Rpb24uZmlsdGVyKHRoaXMuTm9Hcm91cCkuaW50ZXJzZWN0KHgudGFzay5saXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZH0pKS5sZW5ndGh8fHZvaWQgMCl9fSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLWxpc3QiXX0sIiNidG4tbmV3c3luYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQ9dGhpcyxlPXguc2VsZWN0aW9uLmxlbmd0aD4xPyJNdWx0aSI6IlN5bmMiLGY9e3VybDoiIixkYnM6W119LGc9e3Rhc2s6ZSxzcmM6Zn0saD00MjtpZihudWxsIT1hKXtpZihiLmRhdGEoIm1vZGFsIikpcmV0dXJuIGIubW9kYWwoITApLHZvaWQgMDtkLk1vZGFscy50YXNrcyYmZC5Nb2RhbHMudGFza3MubW9kYWwoITApLDE9PXguc2VsZWN0aW9uLmxlbmd0aD9mLnVybD14LnNlbGVjdGlvblswXTp4LnNlbGVjdGlvbi5sZW5ndGg+MSYmKGYuZGJzPXguc2VsZWN0aW9uLnNsaWNlKDApKSxkLk1vZGFscy50YXNrcz1iLGQuTGFzdFN5bmMudGFzaz09ZSYmSlNPTi5zdHJpbmdpZnkoZik9PUpTT04uc3RyaW5naWZ5KE9iamVjdC5zZWxlY3QoZC5MYXN0U3luYy5zcmMsWyJ1cmwiLCJkYnMiXSkpP2c9ZC5MYXN0U3luYzpkLkxhc3RTeW5jPWcsKGM9ZC5teS5maW5kKCIjcnBhbmVsIikud2lkdGgoKS0zMik8NDYwPyhjKz0xODMsaCs9MTgzKTpjPDU2MCYmKGMrPTEwMixoKz0xMDIpLGIubW9kYWwoe3Jvb3Q6ZC5teS5maW5kKCIjcnBhbmVsIiksbWFuaWZlc3Q6JC5leHRlbmQoITAse30sZC5QaG8oIlN5bmNUYXNrIikse1Jlc3RhcnRQb2xsOmQuUmVzdGFydFBvbGwscGFyYW1zOnt3aWR0aDpjfX0pLGRhdGE6Zyxub3NlOiJ0b3AiLGFsaWduOiJ0b3A6MTAzJTsgbGVmdDotezF9cHg7Ii5hc3NpZ24oaCksZHJhZzoiLmNtIixjc3M6InhncmF5Iixlc2M6ITAsZm9jdXM6ZC5MYXN0U3luYy5zcmMudXJsPyIjcnRhcmdldCI6IiNyc291cmNlIn0pLmFsd2F5cyhmdW5jdGlvbigpe2QuTW9kYWxzLnRhc2tzPW51bGx9KX1yZXR1cm4gdGhpcy5sYW5nW3guc2VsZWN0aW9uLmxlbmd0aDwyPyJCVE5fVEFTS19ORVdTWU5DIjoiQlROX1RBU0tfQkFDS1VQIl19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hY3cubWUoKX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tbmV3c3luYyIpfX0sd2F0Y2g6WyIjdGFzay1saXN0IiwiI3ZpZXctaGFzc2VsZWN0aW9uIl19fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5UYXNrTG9vcCYmdGhpcy5UYXNrTG9vcC5jYW5jZWwoKSxbIiNkYi1saXN0IiwiI3Rhc2stbGlzdCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9eC5maW5kKGEpOyJmdW5jdGlvbiI9PXR5cGVvZiBiLmdldE5pY2VTY3JvbGwmJmIuZ2V0TmljZVNjcm9sbCgpLnJlbW92ZSgpLGIubGlzdCgicmVtb3ZlIil9KX0sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sUmVsaXN0OmZ1bmN0aW9uKCl7dGhpcy5teS5jaGVjaygiI2RiLXByb3h5Iil9LEdldExpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO3JldHVybiBiLlBobygiR2V0TGlzdCIpKCkudGhlbihmdW5jdGlvbigpe2IuQWxsPWIuUGhvKCJBbGwiKSxPYmplY3Qua2V5cyhiLkFsbCkuZm9yRWFjaChmdW5jdGlvbih4KXtiLkFsbFt4XS5zdGFyPWMuc3RhcnNbeF0/InJvdy1zdGFyIjoiIn0pLHgmJmIuUmVsaXN0KCksYi5CYXRjaEluZm8oYXx8T2JqZWN0LmtleXMoYi5BbGwpLGIuUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5KX0pfSxOb3JtREI6ZnVuY3Rpb24oeCxhKXt2YXIgYixjLGQ9dGhpcyxlPWF8fGQuZGF0YS5vc2VsO3JldHVybihjPXguZGlza19zaXplKSYmKGI9eC5kYXRhX3NpemUpJiYoeC5zaXplc2FmZT0nPHNwYW4gY2xhc3M9InsxfSI+ezJ9PC9zcGFuPicuYXNzaWduKGIvYzwuMT8icmVkIG83MCI6Yi9jPC41PyJvcmFuZ2UgbzkwIjoieGdyYXkiLGQuQnl0ZXMoYykpLHguc2l6ZXRpcD1kLmxhbmcuVElQX0RCU0laRS5hc3NpZ24oZC5CeXRlcyhiKSxkLkJ5dGVzKGMpKSkseC5ncm91cF94PXguZ3JvdXA/IngiOiIiLHguZG9jX2NvdW50X3NhZmU9IiIhPT14LmRvY19jb3VudD9kLk1ldHJpYyh4LmRvY19jb3VudCw2KToiIix4LmRvY19kZWxfY291bnRfc2FmZT0iIiE9PXguZG9jX2RlbF9jb3VudD9kLk1ldHJpYyh4LmRvY19kZWxfY291bnQsNik6IiIseC51cGRhdGVfc2VxX3NhZmU9IiIhPT14LnVwZGF0ZV9zZXE/ZC5NZXRyaWMoKHgudXBkYXRlX3NlcSsiIikuc3BsaXQoIi0iKVswXSw3KToiIix4LmNoZWNrZWQ9ZVt4Lm5hbWVdPyJjaGVja2VkIjoiIix4fSxOb0dyb3VwOmZ1bmN0aW9uKHgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgeD8iX18iIT14LnRvKDIpOiJncm91cCIhPXguX3R5cGV9LHN0eWxlOnsiIC52aWV3LXJvdyI6eyIiOiJ3aWR0aDoxMDAlOyBtaW4taGVpZ2h0OjJlbTsgcGFkZGluZzowLjM1ZW0gMDsgbGluZS1oZWlnaHQ6MS4yZW07IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IiwiOm50aC1jaGlsZCgybiswKSI6ImJhY2tncm91bmQtY29sb3I6I2Y1ZjdmOTsiLCIgc3ZnIjoibWFyZ2luLWJvdHRvbToxcHg7IiwiLnJvdy1zdGFyKy52aWV3LXJvdyI6ImJvcmRlci10b3A6MXB4IHNvbGlkICNlMWU1ZTg7IiwiLnJvdy1zdGFyKy52aWV3LXJvdy5yb3ctc3RhciI6ImJvcmRlci10b3A6bm9uZTsiLCIgLmJ0bi1kYnN0YXIiOiJjb2xvcjojZDBkNmRkOyIsIiAuYnRuLWRic3Rhci5yb3ctc3RhciAiOiJjb2xvcjojZmZiNDJhOyJ9LCIgLnRhcnJvdyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMxcHg7cGFkZGluZy1yaWdodDoxcHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwiIC5yb3ctc2VsIjoid2lkdGg6MjNweDsgbWFyZ2luOiAwIDJweCAycHggM3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsiLCIgI2RiLWxpc3QiOnsiIjoib3V0bGluZTpub25lOyIsIiAuY29sLTgwIjoid2lkdGg6ODBweDsgcGFkZGluZzoxcHggNnB4IDAgMDsgdGV4dC1hbGlnbjpyaWdodDsiLCIgLmNvbC03MCI6IndpZHRoOjcwcHg7IGZvbnQtc2l6ZTowLjllbTsgbGluZS1oZWlnaHQ6MS4yZW07IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzozcHggMCAwIDZweDsiLCIgLnZpZXctcm93Ijoid2hpdGUtc3BhY2U6IG5vd3JhcDsiLCIgLmRiLWJ0bnMiOnsiIjond2lkdGg6NTVweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1mYW1pbHk6ICJmb3VuZGF0aW9uLWljb25zIjsgZm9udC13ZWlnaHQ6NDAwOycsIj5zcGFuIjoib3BhY2l0eTowLjY7Zm9udC1zaXplOjAuOWVtOyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzogMCAzcHggMCAycHg7In0sIiAudmlldy1yb3c+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOmJyZWFrLXNwYWNlczsiLCIgLnZpZXctYXV4PmRpdiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1pbi1oZWlnaHQ6MS4zZW07IiwiIC5kYi1nZW5lcmFsIjoid2lkdGg6Y2FsYygxMDAlIC0gIDMzOHB4IC0gNTVweCk7IiwiIC5kYi1ncm91cC1uYW1lIjoid2lkdGg6Y2FsYygxMDAlIC0gMzM4cHggKyAxNTBweCk7IiwiIC5taDE5ZW0iOiJtaW4taGVpZ2h0OjEuOWVtOyIsIiAubWgxM2VtIjoibWluLWhlaWdodDoxLjNlbTsiLCIgLnh3NDVwIjoibWF4LXdpZHRoOjQ1JTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczsiLCIgLmNvbC1pZHMiOiJ3aWR0aDozMCU7cGFkZGluZzowIDIwcHggMCA4cHg7IiwiIC5jb2wtdmFscyI6IndpZHRoOjcwJTsgcGFkZGluZy1sZWZ0OjEwcHg7IiwiIC5jb2wtanNvbiI6eyIiOiJ3aWR0aDozNzBweCFpbXBvcnRhbnQ7IHotaW5kZXg6NDsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBtaW4taGVpZ2h0OjJlbTttYXJnaW46LTAuMzVlbSAwIC0wLjM1ZW0gLTYwcHg7IHBhZGRpbmc6IDAuMjVlbSAwIWltcG9ydGFudDsifSwiIC52aWV3LXRvZmlsdGVyIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OjVweDt3aWR0aDoyMHB4O2xpbmUtaGVpZ2h0OjEuMmVtO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMC41czsiLCIgLnZpZXctcm93OmhvdmVyIC52aWV3LXRvZmlsdGVyIjoib3BhY2l0eTowLjU7Y3Vyc29yOnBvaW50ZXI7IiwiIC5kYi1ncm91cCI6eyIiOiJ6LWluZGV4OjI7Ym9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCIrLmRiLWdyb3VwLnp6YXJpZ2h0IjoiYm9yZGVyLXRvcDpub25lOyIsIi56emFyaWdodCsuemdycCI6ImJvcmRlci10b3A6MXB4IHNvbGlkICNlMWU1ZTg7IiwiOmxhc3QtY2hpbGQiOiJib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTFlNWU4OyJ9LCIgLnpncnB4Ky56Z3JwIjoiYm9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCIgLnZpZXctcm93Omxhc3QtY2hpbGQuemdycHgiOiJib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTFlNWU4OyJ9LCIgI3Rhc2stcGFuZWwiOnsiIjoib3V0bGluZTpub25lOyJ9LCIgLnRhcC1kYmluZm8iOiJjdXJzb3I6cG9pbnRlcjsiLCIgLmNiLXRhc2stcm93Ijoid2lkdGg6MjdweDsgbWFyZ2luLWxlZnQ6LTI3cHg7IiwiICNkYi1wYW5lbCI6eyI6YmVmb3JlIjonY29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDt6LWluZGV4OjE7aGVpZ2h0OjEwMCU7cmlnaHQ6MjMwcHg7d2lkdGg6ODBweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxNzgsMTg0LDE5MCwwLjIpO2JvcmRlci1yaWdodDoxcHggZG90dGVkIHJnYmEoMTc4LDE4NCwxOTAsMC40KTtwb2ludGVyLWV2ZW50czpub25lOycsIjphZnRlciI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowcHg7ei1pbmRleDozO2hlaWdodDoxMDAlO3JpZ2h0OjgwcHg7d2lkdGg6ODBweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxNzgsMTg0LDE5MCwwLjIpO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgxNzgsMTg0LDE5MCwwLjIpO3BvaW50ZXItZXZlbnRzOm5vbmU7J30sIiAuYmJzIjoiYm9yZGVyLWJvdHRvbS1jb2xvcjojZTNlOWVjOyIsIiAuYmFzIjoiYm9yZGVyLWNvbG9yOiNlM2U5ZWM7IiwiIC5icnMiOiJib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlM2U5ZWM7IiwiIC5icnNsIjoiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDIxMSwyMTcsMjIyLDAuMyk7IiwiIC5iY2VsbDAiOiJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxMTUsMTIxLDEyOCwwLjEpOyIsIiAuYmNlbGwxIjoiYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMTE1LDEyMSwxMjgsMC4wNyk7IiwiIC53MTAwcC0zMzgiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMzhweCk7IiwiIC53MTAwcC0zMTAiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMTFweCk7IiwiIC50YXNrLXJvdy10aXAiOiJtaW4td2lkdGg6MzAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBib3JkZXItcmFkaXVzOjJweDsgcGFkZGluZzogMCAycHggMXB4IDJweDsiLCIgLmJ0bi1kb25lLXJlc3RhcnQiOnsiIjoib3BhY2l0eTowLjQ7dHJhbnNpdGlvbjpvcGFjaXR5IDAuNXM7IiwiOmhvdmVyIjoib3BhY2l0eToxOyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIGEuTHM9YS5QaG8oIkxzIiksYS5Sb3c9YS5Sb3cuYXNzaWduKGEubGFuZyksYS5QaG8oImlzSUUiKXx8WyJSb3ciXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2FbeF09YS5QaG8oIkNvbXBpbGVUIikoYVt4XSl9KSwkLmV4dGVuZChiLnRhc2suZm9sZCxhLkxzKCJUYXNrcy5Gb2xkIil8fHt9KSwkLmV4dGVuZChiLnN0YXJzLGEuTHMoIkRCcy5TdGFycyIpfHx7fSksJC5leHRlbmQoYi5ncm91cHMsYS5McygiREJzLkdyb3VwcyIpfHx7fSksYS5SZWxpc3ROb3c9YS5SZWxpc3QuZGVib3VuY2UoMTApLGEuUmVsaXN0PWEuUmVsaXN0LnRocm90dGxlKDUwMCksYS5BcnJvd3M9YS5BcnJvd3Muc3BsaXQoIlxuXG4iKSx4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSx4Lm9uKCJjbGljay5teSIsJ2lucHV0W25hbWU9ImRiLXNlbGVjdGlvbiJdJyxmdW5jdGlvbigpe3ZhciBjPVtdO3guZmluZCgnaW5wdXRbbmFtZT0iZGItc2VsZWN0aW9uIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4LmlzKCI6Y2hlY2tlZCIpJiZjLnB1c2goeC52YWwoKSl9KSxiLnNlbGVjdGlvbj1jLGIub3NlbD1jdy5saWIuYTJvKGIuc2VsZWN0aW9uKSxhLm15LmNoZWNrKCIjdmlldy1oYXNzZWxlY3Rpb24iKX0pLHgudGhlbihmdW5jdGlvbigpeyQuZXh0ZW5kKCEwLGEuZGF0YS5zZXJ2aWNlLGEuUGhvKCJDb3VjaCIpKX0uZGVib3VuY2UoMTAwKSksYS5HZXRMaXN0KCEwKS50aGVuKGZ1bmN0aW9uKCl7YS5UYXNrTG9vcEludGVydmFsPWEuUGhvKCJDZmciKS5sb29wQWN0aXZlVGFza3MsYS5HZXRUYXNrcyghMCksYS5SZXN0YXJ0UG9sbCgpfSl9LEhUTUw6JzxkaXYgY2xhc3M9Inc1NXAgZGliIHZhdCI+PGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIGZzOTUgemkyIiBzdHlsZT0ibWF4LXdpZHRoOjE4MHB4O3dpZHRoOmNhbGMoMTAwJSAtIDQ0NXB4KTsiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgYmx1ZSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJkYi1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgc3BlbGxjaGVjaz0iZmFsc2UiIHBsYWNlaG9sZGVyPSJ7UExDX1NFQVJDSH0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibncgZGliIHZhdCB3NzVwIHByMTAiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie1RJUF9SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1uZXdkYiIgY2xhc3M9ImdyZWVuIG1yMiI+e0JUTl9ORVdEQn08L2J1dHRvbj48c3BhbiBpZD0idmlldy1oYXNzZWxlY3Rpb24iPjxidXR0b24gaWQ9ImJ0bi1jb21wYWN0IiBjbGFzcz0ibXIyIiBkaXNhYmxlZD57QlROX0NPTVBBQ1R9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWRlbGRiIiBjbGFzcz0ibXIyIHJlZCIgZGlzYWJsZWQ+e0JUTl9ERUxEQn08L2J1dHRvbj48L3NwYW4+PHNwYW4gY2xhc3M9InBsc2hpbSBkaWIgdmF0Ij48c3BhbiBpZD0iYnRuLXN0YXRzIiBjbGFzcz0ibXIyIj48YSBocmVmPSIjX3N0YXRzIiBjbGFzcz0idGRuIGxoMTQwaSBidXR0b24iPntCVE5fU1RBVFN9PC9hPjwvc3Bhbj48c3BhbiBpZD0iYnRuLWxvZ3MiIGNsYXNzPSJoaWRlIj48YSBocmVmPSIjX2xvZyIgY2xhc3M9InRkbiBsaDE0MGkgYnV0dG9uIj57QlROX0xPR1N9PC9hPjwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZGItcGFuZWwiIGNsYXNzPSJwYW5lbGhlaWdodC0zMiBicjIgbXQxNiBtbDIwIG1yMjAiPjxkaXYgY2xhc3M9ImJnLXBncmF5IGJicyBsaDE2MCBwdDIgbncgb2ggZWxsIHhwYW5lbCI+PGRpdiBjbGFzcz0idzEwMHAtMzEwIGRpYiB2YXQgbncgb2ggZWxsIj48c3BhbiBpZD0iYnRuLXZpZXctZGlyIiBjbGFzcz0iZGliIHBsOCBwcjYgbXIyIHZhdCBjcCBvNTAgZnM4MCBwdDEgcHNldWRvbGluayB0ZG4gaDMwIj48L3NwYW4+PHNwYW4gaWQ9InZpZXctbGlua3MiIGNsYXNzPSJncmF5IGhpZGUiPjwvc3Bhbj48ZGl2IGlkPSJ2aWV3LWNvbHMiIGNsYXNzPSJkaWIgdmF0IHByMTIgbncgeGdyYXkiPjwvZGl2PjxkaXYgaWQ9ImJ0bi1zZWxlY3QiIGNsYXNzPSJidXR0b24geGJ1dHRvbiBwdDIgaDI1IG10MSBmczkwIGxoMTMwIHRkbiBmciBtcjMiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InczMTAgZGliIGdyYXkgZnM5MCI+PGRpdiBjbGFzcz0idzgwIGRpYiB0YXIgcHI2Ij57SF9ET0NTfTwvZGl2PjxkaXYgY2xhc3M9Inc3MCBkaWIgcGw3Ij57SF9ERUxET0NTfTwvZGl2PjxkaXYgY2xhc3M9Inc4MCBkaWIgdGFyIHByNyI+e0hfU0VRfTwvZGl2PjxkaXYgY2xhc3M9Inc4MCBkaWIgdGFyIHByNyI+e0hfU0laRX08L2Rpdj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0iZGItbGlzdCIgY2xhc3M9InBhbmVsaGVpZ2h0LTYzIHhncmF5IGxoMTcwIGJ4dG9wIG94aCI+PC9zZWN0aW9uPjwvZGl2PjxkaXYgaWQ9ImRiLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+PGRpdiBpZD0icnBhbmVsIiBjbGFzcz0idzQ1cCBkaWIgdmF0IHByMjAiPjxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggbWIxNiB0YWwiPjxkaXYgY2xhc3M9ImZyIGZzOTUgdGFsIiBzdHlsZT0ibWF4LXdpZHRoOjE4MHB4O3dpZHRoOmNhbGMoMTAwJSAtIDM0MHB4KTsiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgYmx1ZSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ0YXNrLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBzcGVsbGNoZWNrPSJmYWxzZSIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ3NzBwIGRpYiI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZHN5bmMiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie1RJUF9UQVNLX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLW5ld3N5bmMiIGNsYXNzPSJtcjIgdzExMCBwbDQgcHIyIj57QlROX1RBU0tfTkVXU1lOQ308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tcmVzeW5jIiBjbGFzcz0ib3JhbmdlIG1yMiIgZGlzYWJsZWQ+e0JUTl9UQVNLX1JFU1lOQ308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tc3RvcHN5bmMiIGNsYXNzPSJyZWQiIGRpc2FibGVkPntCVE5fVEFTS19TVE9QfTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InRhc2stcGFuZWwiIGNsYXNzPSJwYW5lbGhlaWdodC0zMiBicjIgbXQxNiI+PGRpdj48ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE3MCB4cGFuZWwgcHQxIj48ZGl2IGNsYXNzPSJmciBwcjQgdGFyIj48c3BhbiBpZD0idGFzay1maWx0ZXIiIGNsYXNzPSJocGFuZWwgZnM5MCBwbDQiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ0YXNrLWNvbHMiIGNsYXNzPSJkaWIgdmF0IHBsOCBudyB4Z3JheSBwdDEgcHIxMiI+PC9kaXY+PGRpdiBpZD0iYnRuLXNlbGVjdC10YXNrcyIgY2xhc3M9ImJ1dHRvbiB4YnV0dG9uIHB0MiBoMjUgbXQyIGZzOTAgbGgxMzAgdGRuIGRpYiB2YXQgaGlkZSI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InRhc2stbGlzdCIgY2xhc3M9InBhbmVsaGVpZ2h0LTYzIHhncmF5IGxoMTcwIGJ4dG9wIj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdHVzLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+JyxSb3c6JzxkaXYgY2xhc3M9InZpZXctcm93IGRiLWJ1Y2tldCB7c3Rhcn0gemdycHtncm91cF94fSI+PGlucHV0IGNsYXNzPSJjcCByb3ctc2VsIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZGItc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9IntuYW1lc2FmZX0iPjxkaXYgY2xhc3M9ImRiLWdlbmVyYWwgbWgxM2VtIHByMiI+PGEgaHJlZj0iI3tocmVmfSIgY2xhc3M9InRkbiBtcjIwIHZpZXctZGItbmFtZSIgdGl0bGU9Int0b29sdGlwfSI+e2huYW1lfTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJkYi1idG5zIj48c3BhbiBjbGFzcz0iYnRuLWRiYWNsIHtwcm90ZWN0ZWR9IHByNSIgdGl0bGU9IntUSVBfQlROX0FDTH0iPjwvc3Bhbj48c3BhbiBjbGFzcz0iYnRuLWRiaW5mbyBsZ3JheSIgdGl0bGU9IntUSVBfQlROX0lORk99Ij7vhZ48L3NwYW4+PHNwYW4gY2xhc3M9ImJ0bi1kYnN0YXIge3N0YXJ9IHByNSIgdGl0bGU9IntUSVBfQlROX1NUQVJ9Ij7vh648L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idzMxMCB2aWV3LWF1eCBmczk1IHRhcC1kYmluZm8iIHRpdGxlPSJ7VElQX0RPQ19JTkZPfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIiB0aXRsZT0ie2RvY19jb3VudH0iPntkb2NfY291bnRfc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtNzAgZ3JheSI+e2RvY19kZWxfY291bnRfc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtODAiIHRpdGxlPSJ7dXBkYXRlX3NlcX0iPnt1cGRhdGVfc2VxX3NhZmV9PC9kaXY+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIHByOCIgdGl0bGU9IntzaXpldGlwfSI+e3NpemVzYWZlfTwvZGl2PjwvZGl2PjwvZGl2PicsUm93R3JvdXA6JzxkaXYgY2xhc3M9InZpZXctcm93IGRiLWdyb3VwIGNwIHp6e2ZvbGR9IiBkYXRhLWdyb3VwPSJ7aWR9Ij48ZGl2IGNsYXNzPSJ3MjMgbWw1IHBsMSBmczExMCI+PHNwYW4gY2xhc3M9Intmb2xkfSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRiLWdyb3VwLW5hbWUgbWgxM2VtIHByMiI+PGRpdiBjbGFzcz0ieHc0NXAgZGliIHZhdCBudyBmdzUwMCBvOTAiPntzdGFydH08L2Rpdj48c3BhbiBjbGFzcz0iYmx1ZTEgZnc2MDAiPuKAicK3wrfCt+KAiTwvc3Bhbj48ZGl2IGNsYXNzPSJ4dzQ1cCBkaWIgdmF0IG53IGdyYXkxIj57ZW5kfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IncxNjAgdmlldy1hdXggZnM5NSI+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIHRhciBncmF5MiI+e3NpemV9IERCczwvZGl2PjxkaXYgY2xhc3M9ImNvbC10cmltIGNvbC04MCB0YXIgcHI4IGdyYXkyIj57ZGlza308L2Rpdj48L2Rpdj48L2Rpdj4nLEFycm93czonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMCwgLTApIj5cbiAgICA8cGF0aCBkPSJNMS41LDQuNSBMMTUuNSw0LjUgTTEyLjUsNy41IEwxNS41LDQuNSBMMTIuNSwxLjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2LjM3NSIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNi4zNzUsIDgiPlxuICA8ZyBpZD0iTGF5ZXJfMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4zNzUsIC0xMCkiPlxuICAgIDxwYXRoIGQ9Ik02Ljc1LDE0LjUgTDE1LjUsMTQuNSBNMTIuNSwxNy41IEwxNS41LDE0LjUgTDEyLjUsMTEuNSBNMS4xMjUsMTEuNjg3IEwzLDE0LjgxMyBMMywxNy41IEMzLDE3LjUgNSwxNy41IDUsMTcuNSBDNSwxNy41IDUsMTQuODEzIDUsMTQuODEzIEw2Ljg3NSwxMS42ODcgTDEuMTI1LDExLjY4NyB6IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMCwgLTIwKSI+XG4gICAgPHBhdGggZD0iTTQuNSwyMS41IEw1LjUsMjEuNSBMNS41LDI3LjUgTDQuNSwyNy41IE0yLjUsMjEuNSBMMS41LDIxLjUgTDEuNSwyNy41IEwyLjUsMjcuNSBNMTUuNSwyNC41IEw3LDI0LjUgTTEyLjUsMjcuNSBMMTUuNSwyNC41IEwxMi41LDIxLjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTApIj5cbiAgICA8cGF0aCBkPSJNMzEuNSw0LjUgTDE3LjUsNC41IE0yMC41LDEuNSBMMTcuNSw0LjUgTDIwLjUsNy41IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNi4zNzUiIGhlaWdodD0iOCIgdmlld0JveD0iMCwgMCwgMTYuMzc1LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTEwKSI+XG4gICAgPHBhdGggZD0iTTI2LjI1LDE0LjUgTDE3LjUsMTQuNSBNMjAuNSwxNy41IEwxNy41LDE0LjUgTDIwLjUsMTEuNSBNMzEuODc1LDExLjY4NyBMMzAsMTQuODEzIEwzMCwxNy41IEMzMCwxNy41IDI4LDE3LjUgMjgsMTcuNSBDMjgsMTcuNSAyOCwxNC44MTMgMjgsMTQuODEzIEwyNi4xMjUsMTEuNjg3IEwzMS44NzUsMTEuNjg3IHoiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTIwKSI+XG4gICAgPHBhdGggZD0iTTI4LjUsMjcuNSBMMjcuNSwyNy41IEwyNy41LDIxLjUgTDI4LjUsMjEuNSBNMzAuNSwyNy41IEwzMS41LDI3LjUgTDMxLjUsMjEuNSBMMzAuNSwyMS41IE0xNy41LDI0LjUgTDI2LDI0LjUgTTIwLjUsMjEuNSBMMTcuNSwyNC41IEwyMC41LDI3LjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPicsQmF0Y2hJbmZvOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9Yy5BbGwsZT0oYT1udWxsIT1hP2E6Yy5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXksW10pLGY9Ynx8Yy5QaG8oIkNmZyIpLmxpc3RDb2xzfHxbXSxnPWYuaW5kZXhPZigiaW5mbyIpPi0xLGg9Zi5pbmRleE9mKCJzZWN1cml0eSIpPi0xLGk9Yy5QaG8oIkNvdWNoIikubWF4QmF0Y2h8fDAsaj17fSxrPWMubXk/Yy5teS5maW5kKCIjZGItbGlzdCIpOm51bGwsbD14LmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWMuQWxsW3hdfSkuc29ydChmdW5jdGlvbih4LGEpe3ZhciBiPWRbeF0uc3RhcixjPWRbYV0uc3RhcjtyZXR1cm4gYj5jPy0xOmI9PWM/MDoxfSksbT1sLmxlbmd0aDtyZXR1cm4gaTwyfHxsLmxlbmd0aDwyP2wuZm9yRWFjaChmdW5jdGlvbih4LGIpe3ZhciBmPWRbeF07aWYoYy5CYXRjaFt4XSlyZXR1cm4gZS5wdXNoKGMuQmF0Y2hbeF0pOyEoZ3x8aHx8Zi5zdGFyKXx8Zi5ncm91cCYmYy5kYXRhJiYhYy5kYXRhLmdyb3Vwc1tmLmdyb3VwXXx8ZS5wdXNoKFEuZGVsYXkoNSthKmIpLnRoZW4obi5maWxsKHgpKSl9KTppPjEmJihsLmZvckVhY2goZnVuY3Rpb24oeCxiKXt2YXIgZj1kW3hdLGs9IWYuZ3JvdXB8fCFjLmRhdGF8fGMuZGF0YS5ncm91cHNbZi5ncm91cF07KGd8fGYuc3RhcikmJms/IWouX3x8altqLl9dLmxlbmd0aD49aT8oai5fPXgsalt4XT1beF0pOmpbai5fXS5wdXNoKHgpOmgmJmsmJmUucHVzaChRLmRlbGF5KDUrYSpiKS50aGVuKHEuZmlsbCh4KSkudGhlbihjLlJlbGlzdCkpfSksZT0oai5fP28oKTpbXSkuY29uY2F0KGUpKSxRLmFsbFNldHRsZWQoZSkudGhlbihmdW5jdGlvbigpezE9PWwubGVuZ3RoJiZrP2subGlzdCgicm93IixjLk5vcm1EQihjLkFsbFtsWzBdXSkpOmMuUmVsaXN0Tm93KCl9KSxlO2Z1bmN0aW9uIG4oeCl7dmFyIGEsYj1bXS5jb25jYXQoeCksZT1iLmpvaW4oIi8iKSxmPSEhZFtlXS5zdGFyO3JldHVybihnfHxofHxmKSYmKGE9Z3x8Zj9jLlJlcSh7dXJsOmJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKGRbZV0pcmV0dXJuIHguc2l6ZXMmJih4LmRpc2tfc2l6ZT14LnNpemVzLmZpbGUseC5kYXRhX3NpemU9eC5zaXplcy5hY3RpdmUpLCQuZXh0ZW5kKGRbZV0seCx7c3RhbXA6RGF0ZS5ub3coKX0pLChofHxmKSYmZFtlXS5zZWN1cml0eS5zZXE8cGFyc2VJbnQoZFtlXS51cGRhdGVfc2VxKT9xKGUpOnZvaWQgMH0sZnVuY3Rpb24oeCl7NDA0PT14JiZkW2VdJiYiX25vZGUvX2xvY2FsL19ub2RlcyIhPWU/ZGVsZXRlIGMuQWxsW2VdOiQuZXh0ZW5kKGRbZV0sYy5QaG8oImRiVHlwZSIpLHtzdGFtcDpEYXRlLm5vdygpfSl9KTpxKGUpKT8oYy5CYXRjaFtlXT1RLmFsbFNldHRsZWQoW2FdKS50aGVuKGZ1bmN0aW9uKCl7KG0tPTEpP2MuUmVsaXN0KCk6Yy5SZWxpc3ROb3coKSxkZWxldGUgYy5CYXRjaFtlXX0pLGMuQmF0Y2hbZV0pOiQuRGVmZXJyZWQoKS5yZXNvbHZlKCl9ZnVuY3Rpb24gbygpe3ZhciB4PVtdO3JldHVybiBPYmplY3Qua2V5cyhqKS5mb3JFYWNoKGZ1bmN0aW9uKGIsYyl7aWYoIl8iIT1iKXt2YXIgZD1qW2JdO3gucHVzaChRLmRlbGF5KDErYSpjKigwfE1hdGgubG9nKGkpKSkudGhlbihwLmZpbGwoZCkpKX19KSxjLlBobygiQ291Y2giKS52ZXI+IjAwMy4iJiZ4LnB1c2gobigiX25vZGUvX2xvY2FsL19ub2RlcyIpKSx4fWZ1bmN0aW9uIHAoeCl7dmFyIGI9eC5zbGljZSgwKSxlPVtdLGY9W107cmV0dXJuIGMuUmVxKHt1cmw6WyJfZGJzX2luZm8iXSxtZXRob2Q6InBvc3QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KHtrZXlzOmJ9KX0pLnRoZW4oZnVuY3Rpb24oeCl7T2JqZWN0LmlzQXJyYXkoeCkmJih4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5rZXksYj0hIWRbYV0uc3RhcjtpZihkW2FdKXtpZih4LmVycm9yJiYiX25vZGUvX2xvY2FsL19ub2RlcyIhPWEpcmV0dXJuIGRlbGV0ZSBjLkFsbFthXSx2b2lkIDA7dmFyIGY9eC5pbmZvO2YmJihmLnNpemVzJiYoZi5kaXNrX3NpemU9Zi5zaXplcy5maWxlLGYuZGF0YV9zaXplPWYuc2l6ZXMuYWN0aXZlKSwkLmV4dGVuZChkW2FdLGYse3N0YW1wOkRhdGUubm93KCl9KSksKGh8fGIpJiZkW2FdLnNlY3VyaXR5LnNlcTxwYXJzZUludChkW2FdLnVwZGF0ZV9zZXEpJiZlLnB1c2goYSl9fSksYy5SZWxpc3QoKSxlLmxlbmd0aCYmKGUuZm9yRWFjaChmdW5jdGlvbih4LGIpe2YucHVzaChRLmRlbGF5KDErYSpiKS50aGVuKHEuZmlsbCh4KSkpfSksUS5hbGxTZXR0bGVkKGYpLnRoZW4oZnVuY3Rpb24oKXtjLlJlbGlzdCgpfSkpKX0pfWZ1bmN0aW9uIHEoeCl7cmV0dXJuIGMuUmVxKHt1cmw6W3gsIl9zZWN1cml0eSJdfSkudGhlbihmdW5jdGlvbihhKXtpZihkW3hdKXt2YXIgYj0kLmV4dGVuZCghMCx7c3RhbXA6RGF0ZS5ub3coKSxzZXE6cGFyc2VJbnQoZFt4XS51cGRhdGVfc2VxKSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LGEpOyJfIj09eFswXSYmYi5tZW1iZXJzLnJvbGVzLnB1c2goIl9hZG1pbiIpO3ZhciBjPSIiO2M9Yi5tZW1iZXJzLnJvbGVzLmxlbmd0aCtiLm1lbWJlcnMubmFtZXMubGVuZ3RoPT0wP2IuYWRtaW5zLnJvbGVzLmxlbmd0aCtiLmFkbWlucy5uYW1lcy5sZW5ndGghPTA/Im9yYW5nZTEgZmktdW5sb2NrIjoicmVkIGZpLXVubG9jayI6ImdyYXkzIGZpLWxvY2siLCQuZXh0ZW5kKGRbeF0se3NlY3VyaXR5OmIscHJvdGVjdGVkOmN9KX19KX19LEdldFRhc2tzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz0oYS5BbGwsYS5sYW5nLCI8bm9icj57MX08L25vYnI+IiksZD0nPG5vYnIgdGl0bGU9InsyfSI+ezF9PC9ub2JyPicsZT0nPHNwYW4gY2xhc3M9InsyfSI+ezF9PC9zcGFuPicsZj0kLkRlZmVycmVkKCksZz1hLkFycm93cyxoPWEuUGhvKCJDb3VjaCIpLnZlcixpPWEuUGhvKCJSZXBsaWNhdG9yREIiKTtyZXR1cm4hYS5teS5pbmRvbSgpfHxhLm15LnJvb3QoKS5oYXNDbGFzcygiaGlkZSIpfHx3aW5kb3cuZG9jdW1lbnQuaGlkZGVuP2YucmVzb2x2ZSgpLnByb21pc2UoKTpjdy5tZSgibmFtZSIpP2EuVGFza0xvb3BJbnRlcnZhbCE9YS5QaG8oIkNmZyIpLmxvb3BBY3RpdmVUYXNrcz8oYS5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgxKSgpLGYucmVzb2x2ZSgpLnByb21pc2UoKSk6KGooKS50aGVuKGspLnRoZW4obCkuZmFpbChmdW5jdGlvbih4LGIsYyl7eD40MDAmJng8NjAwJiYhY3cubWUoIm5hbWUiKT9hLlRhc2tzPVtdOmNvbnNvbGUubG9nKHgsYixjKX0pLmFsd2F5cyhwLmRlYm91bmNlKDEpKSxmLnByb21pc2UoKSk6KGEuVGFza3M9W10scC5kZWJvdW5jZSgxKSgpLGYucHJvbWlzZSgpKTtmdW5jdGlvbiBqKCl7cmV0dXJuIGEuUmVxKHt1cmw6WyJfYWN0aXZlX3Rhc2tzIl19KS50aGVuKGZ1bmN0aW9uKGIpe3ZhciBjPWIuY29uY2F0KGEuVGFza01vY2t8fFtdKS5zb3J0QnkoInR5cGUiKTtjLmZvckVhY2gobSksYy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuX25ldz0hMCxhLmRvY19pZD94KCJkb2NfaWQiLGEsITApOmEucmVwbGljYXRpb25faWQ/eCgicmVwbGljYXRpb25faWQiLGEsITApOmEucGlkJiZ4KCJwaWQiLGEsITEpfSksYS5UYXNrcy5yZW1vdmUoZnVuY3Rpb24oeCl7cmV0dXJuIXguX25ldyYmIkVycm9yIiE9eC5waWQmJiJEb25lIiE9eC5waWR9KSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5fbmV3PSExfSl9KTtmdW5jdGlvbiB4KHgsYyxkKXt2YXIgZSxmO2NbeF0mJihkJiYoYy5fc2VsZWN0ZWQ9Yi50YXNrLnNlbGVjdGlvbi5pbmRleE9mKGMucmVwbGljYXRpb25faWQpPi0xKSwoZj1hLlRhc2tzLmZpbmRJbmRleChmdW5jdGlvbihhKXtyZXR1cm4gYVt4XT09Y1t4XX0pKT4tMT8oKGU9YS5UYXNrc1tmXSkuZmlsdGVyJiYoYy5maWx0ZXI9ZS5maWx0ZXIpLGUucGhvdG9uX3Rhc2smJihjLnBob3Rvbl90YXNrPWUucGhvdG9uX3Rhc2spLGUuX3R5cGUmJihjLl90eXBlPWUuX3R5cGUpLGEuVGFza3NbZl09Yyk6YS5UYXNrcy5wdXNoKGMpKX19ZnVuY3Rpb24gaygpe2lmKCEoaDwiMDAyLiIpKXt2YXIgeD0kLkRlZmVycmVkKCk7cmV0dXJuIGEuUmVxKHt1cmw6WyJfc2NoZWR1bGVyIiwiam9icyJdfSkudGhlbihmdW5jdGlvbih4KXsoKHh8fHt9KS5qb2JzfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYixjPXguaGlzdG9yeXx8W10sZD1jWzBdLGU9KGR8fHt9KS50eXBlOyF4LnBpZCYmeC5kb2NfaWQmJmMubGVuZ3RoJiYiY3Jhc2hlZCI9PWUmJigoYj1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZG9jX2lkPT14LmRvY19pZH0pKSYmYS5UYXNrcy5yZW1vdmUoYiksYS5UYXNrcy5wdXNoKCQuZXh0ZW5kKG4oe19pZDp4LmRvY19pZCxzb3VyY2U6eC5zb3VyY2UsdGFyZ2V0OngudGFyZ2V0LGNvbnRpbnVvdXM6L2NvbnRpbnVvdXMkLy50ZXN0KHguaWQpLG93bmVyOngudXNlcnx8Ij8iLF9yZXBsaWNhdGlvbl9zdGF0ZToiZXJyb3IiLF9yZXBsaWNhdGlvbl9zdGF0ZV90aW1lOmQudGltZXN0YW1wLF9yZXBsaWNhdGlvbl9pZDp4LmlkLF9yZXBsaWNhdGlvbl9zdGF0ZV9yZWFzb246ZC5yZWFzb258fCJVbmtub3duIn0pLGImJmIucGhvdG9uX3Rhc2s/e3Bob3Rvbl90YXNrOmIucGhvdG9uX3Rhc2t9Ont9KSkpfSl9KS5hbHdheXMoZnVuY3Rpb24oKXt4LnJlc29sdmUoKX0pLHgucHJvbWlzZSgpfX1mdW5jdGlvbiBsKCl7aWYoIWEuUGhvKCJDZmciKS50YXNrc1JlYWRSZXBsaWNhdG9yfHxiLnRhc2suZmlsdGVyLmluZGV4T2YoImNvbXBhY3Rpb24iKT4tMSlyZXR1cm4gcCgpO3ZhciB4LGM9aTtyZXR1cm4oeD1iLnRhc2suc2VxP2EuUmVxKHt1cmw6W2MsIl9jaGFuZ2VzIix7aW5jbHVkZV9kb2NzOiEwLHNpbmNlOmIudGFzay5zZXF9XSxkYXRhVHlwZToianNvbiJ9KTphLlJlcSh7dXJsOltjLCJfYWxsX2RvY3MiLHtpbmNsdWRlX2RvY3M6ITAsdXBkYXRlX3NlcTohMH1dLGRhdGFUeXBlOiJqc29uIn0pKS50aGVuKGZ1bmN0aW9uKHgpe2IudGFzay5zZXE9eC5sYXN0X3NlcXx8eC51cGRhdGVfc2VxLCh4LnJvd3N8fHgucmVzdWx0cykuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4LmRvYy5fZGVsZXRlZClyZXR1cm4gYS5UYXNrcy5yZW1vdmUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZG9jX2lkPT14LmRvYy5faWR9KSx2b2lkIDA7dmFyIGIsYz14LmRvYy5fcmVwbGljYXRpb25fc3RhdGU7ImVycm9yIj09YyYmKGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSksYS5UYXNrcy5wdXNoKG4oeC5kb2MpKSksImNvbXBsZXRlZCI9PWM/KGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkseC5kb2MuX3JlcGxpY2F0aW9uX2lkfHwoeC5kb2MuX3JlcGxpY2F0aW9uX2lkPWN3LmxpYi5zZGJtKHguZG9jLl9pZCkpLGEuVGFza3MucHVzaChvKHguZG9jKSkpOiJjb21wbGV0ZWQiIT1jJiYoT2JqZWN0LmlzU3RyaW5nKHguZG9jLmZpbHRlcil8fE9iamVjdC5pc0FycmF5KHguZG9jLmRvY19pZHMpKSYmKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkpJiYoYi5maWx0ZXI9eC5kb2MuZmlsdGVyfHx4LmRvYy5kb2NfaWRzKSx4LmRvYy5waG90b25fdGFzayYmKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkpJiYoYi5waG90b25fdGFzaz14LmRvYy5waG90b25fdGFzayl9KX0pLHh9ZnVuY3Rpb24gbSh4KXtpZigiZ3JvdXAiPT14Ll90eXBlKXJldHVybiB4O3ZhciBhPXgudHlwZSxiPW51bGw9PWE/IiI6YS5yZXBsYWNlKC9fL2csIiAiKS5yZXBsYWNlKC9kYXRhYmFzZS9naSwiREIiKS5yZXBsYWNlKC9jb21wYWN0aW9uL2dpLCJjb21wYWN0IikucmVwbGFjZSgvcmVwbGljYXRpb24vZ2ksIiIpO2I9KGI9Yi5jb21wYWN0KCkpP2IrIjoiOiIiLHguX3R5cGU9IiI7dmFyIGU9JzxkaXYgY2xhc3M9InRhcnJvdyI+ezF9PC9kaXY+JyxmPSc8c3BhbiBjbGFzcz0icmVkMSBmczk1Ij57MX08L3NwYW4+JyxoPSc8c3BhbiBjbGFzcz0iZ3JlZW4gZnM5NSI+ezF9PC9zcGFuPic7eC5faW5kZXg9SlNPTi5zdHJpbmdpZnkoT2JqZWN0LnJlamVjdCh4LC9eXy8pKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1siLFx7XH1cW1xdXS9nLCIgIikuY29tcGFjdCgpLnN0cmlwVGFncygpLCJFcnJvciI9PXgucGlkPyh4Ll9waWQ9Zi5hc3NpZ24oJzxzcGFuIGNsYXNzPSJmaS1hbGVydCByZWQxIGZzOTUiPjwvc3Bhbj4gRXJyb3InKSx4Ll9waWRzYWZlPXguX3JlYXNvbnx8IkVycm9yIixlPWYuYXNzaWduKGUpKToiRG9uZSI9PXgucGlkPyh4Ll9waWQ9aC5hc3NpZ24oIkRvbmUiKSx4Ll9waWRzYWZlPSJEb25lIixlPWguYXNzaWduKGUpKTooeC5fcGlkPSfigLk8c3BhbiBjbGFzcz0iZnM5NSI+Jyt4LnBpZC5yZXBsYWNlKC9bPD5dL2csIiIpKyI8L3NwYW4+4oC6Iix4Ll9waWRzYWZlPXMoeC5waWQpKSx4LmZpbHRlciYmT2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpJiYoeC5kb2NzPSEwKTt2YXIgaj14LnN0YXJ0ZWRfb247aWYoail7dmFyIGs9RGF0ZS5jcmVhdGUoMWUzKitqKTtrLmlzVGhpc1llYXIoKT9rLmlzVG9kYXkoKT94Ll9zdGFydD1rLmZvcm1hdCgie0h9OnttbX06e3NzfSIpOnguX3N0YXJ0PWsuZm9ybWF0KCJ7ZH0ge01vbn0sIHtIfTp7bW19Iik6eC5fc3RhcnQ9ay5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0iKX1lbHNlIHguX3N0YXJ0PSI/Pz8iO2lmKCJFcnJvciI9PXgucGlkP3guX3Byb2dyZXNzPSIiOiJEb25lIj09eC5waWQ/eC5fcHJvZ3Jlc3M9IjEwMCUiOnguX3Byb2dyZXNzPU9iamVjdC5pc051bWJlcih4LnByb2dyZXNzKT8oMHx4LnByb2dyZXNzLmNsYW1wKDAsMTAwKSkrIiUiOiIgIix4LnNvdXJjZSYmeC50YXJnZXQpe3ZhciBsPXguc291cmNlLG09eC50YXJnZXQsbj12KGwpLG89dihtKTt4LnBob3Rvbl90YXNrO3guX2dyb3VwPXIoeCk7dmFyIHA9eC5fZ3JvdXA/IjgtIit4Ll9ncm91cDoiIjtuLmVuZHNXaXRoKG8pP249bi50byhuLmxlbmd0aC1vLmxlbmd0aCkrIn4iOm8uZW5kc1dpdGgobikmJihvPW8udG8oby5sZW5ndGgtbi5sZW5ndGgpKyJ+IiksL1wvLy50ZXN0KG4pJiYhL1wvLy50ZXN0KG8pPyh4Ll9sZWZ0PXArKCJEb25lIj09eC5waWQ/IjctIjoiRXJyb3IiPT14LnBpZD8iMS0iOnguZG9jX2lkPyIyLSI6IjMtIikrbysiMi0iK24seC5fZGVzYz1kLmFzc2lnbih0KG8sMzApLHMobSkpK2UuYXNzaWduKHguZG9jcz9nWzVdOnguZmlsdGVyP2dbNF06Z1szXSkrZC5hc3NpZ24odChuLDMwKSxzKGwpKSk6KHguX2xlZnQ9cCsoIkRvbmUiPT14LnBpZD8iNy0iOiJFcnJvciI9PXgucGlkPyIxLSI6eC5kb2NfaWQ/IjItIjoiMy0iKStuKyIxLSIrbyx4Ll9kZXNjPWQuYXNzaWduKHQobiwzMCkscyhsKSkrZS5hc3NpZ24oeC5kb2NzP2dbMl06eC5maWx0ZXI/Z1sxXTpnWzBdKStkLmFzc2lnbih0KG8sMzApLHMobSkpKSx4LmRvY19pZCYmKHguX2Rlc2M9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiMnK2krIi8iK3MoeC5kb2NfaWQpKyciPicreC5fZGVzYysiPC9hPiIpfWVsc2UvY29tcGFjdGlvbi8udGVzdCh4LnR5cGUpPyh4Ll9kZXNjPWMuYXNzaWduKHUoeCw2MCkpLHguX2xlZnQ9IjktIit4LmRhdGFiYXNlLHguX2dyb3VwPXIoeCkpOiJpbmRleGVyIj09eC50eXBlPyh4Ll9kZXNjPWMuYXNzaWduKHUoeCwzMCkpLHguX2xlZnQ9IkktIit4Ll9kZXNjLHguX2dyb3VwPSLigI1JbmRleGVy4oCNIik6eC5fZGVzYz14Ll9waWQ7cmV0dXJuIHh9ZnVuY3Rpb24gbih4KXtyZXR1cm4gJC5leHRlbmQobyh4KSx7cGlkOiJFcnJvciIsX3JlYXNvbjpzKHguX3JlcGxpY2F0aW9uX3N0YXRlX3JlYXNvbnx8IkVycm9yIiksZG9jX2lkOnguX2lkLHByb2dyZXNzOjB9KX1mdW5jdGlvbiBvKHgpe3ZhciBhPURhdGUuY3JlYXRlKHguX3JlcGxpY2F0aW9uX3N0YXRlX3RpbWUpLnZhbHVlT2YoKS8xZTN8MDtyZXR1cm57cGlkOiJEb25lIixjb250aW51b3VzOnguY29udGludW91cyxyZXBsaWNhdGlvbl9pZDp4Ll9yZXBsaWNhdGlvbl9pZCxfc2VsZWN0ZWQ6Yi50YXNrLnNlbGVjdGlvbi5pbmRleE9mKHguX3JlcGxpY2F0aW9uX2lkKT4tMSxkb2NfaWQ6eC5faWQscHJvZ3Jlc3M6MTAwLHBob3Rvbl90YXNrOngucGhvdG9uX3Rhc2t8fCIiLHNvdXJjZTp4LnNvdXJjZSxmaWx0ZXI6eC5maWx0ZXJ8fHguZG9jX2lkc3x8bnVsbCx0YXJnZXQ6eC50YXJnZXQsc3RhcnRlZF9vbjphLHVwZGF0ZWRfb246YSx0eXBlOiJyZXBsaWNhdGlvbiJ9fWZ1bmN0aW9uIHAoKXt2YXIgYz1hLlRhc2tzLnNsaWNlKDApO2M9Yy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIG0oeCl9KS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguX2xlZnQ8YS5fbGVmdD8tMTp4Ll9sZWZ0PmEuX2xlZnQ/MTowfSk7dmFyIGQ9e307Yz0oYz1jLnJldmVyc2UoKSkucmVkdWNlKGZ1bmN0aW9uKHgsYSxlKXt4LnB1c2goYSk7dmFyIGYsZz1yKGEpLGg9Y1tlKzFdO2lmKCFnKXJldHVybiB4O2RbZ118fChkW2ddPXtydW46MCxkb25lOjAsZXJyOjAsc2VsOjB9KSwoZj1kW2ddKVsiRXJyb3IiPT1hLnBpZD8iZXJyIjoiRG9uZSI9PWEucGlkPyJkb25lIjoicnVuIl0rPTEsZi5zZWwrPWEuX3NlbGVjdGVkPzE6MDt2YXIgaT0iX18iK2N3LmxpYi5zZGJtKGcpO3JldHVybiBoJiZyKGgpPT1nfHx4LnB1c2goe3BpZDppLF9waWQ6IiIsY29udGludW91czohMSxyZXBsaWNhdGlvbl9pZDppLGRvY19pZDoiIixwaG90b25fdGFzazpnLHJlcGxpY2F0aW9uX2lkOi8oY29tcGFjdGlvbnxpbmRleGVyKSQvLnRlc3QoYS50eXBlKT8iIjoiX18iK2cuZXNjYXBlSFRNTCgpLGZpbHRlcjoiIix0YXJnZXQ6IiIsc3RhcnRlZF9vbjoiIix1cGRhdGVkX29uOiIiLF90eXBlOiJncm91cCIsX3NlbGVjdGVkOmYucnVuK2YuZG9uZStmLmVycj09Zi5zZWwsX3J1bjpmLnJ1bixfZ3JvdXA6ZyxfZm9sZDohIWIudGFzay5mb2xkW2ddLF9kZXNjOnMoZyksX3Byb2dyZXNzOnEoZil9KSx4fSxbXSksYS5UYXNrcy5sZW5ndGg9MCxjLnJldmVyc2UoKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuVGFza3MucHVzaCh4KX0pLGIudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYS5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guX3NlbGVjdGVkJiZiLnRhc2suc2VsZWN0aW9uLnB1c2goeC5yZXBsaWNhdGlvbl9pZCl9KSx4JiYoYS5teS5yZWNhbGMoIiN0YXNrLWxpc3QiKSxhLm15LmNoZWNrKCIjdGFzay1jb2xzIiksYS5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGEubXkuY2hlY2soIiNidG4tc2VsZWN0LXRhc2tzIikpLGYucmVzb2x2ZShhLlRhc2tzKX1mdW5jdGlvbiBxKHgpe3ZhciBhPSIgdGFzay1yb3ctdGlwIjtyZXR1cm5beC5lcnI/ZS5hc3NpZ24oeC5lcnIsInJlZDEgYmctcmVkNiIrYSk6IiIseC5ydW4/ZS5hc3NpZ24oeC5ydW4sImdyYXkxIGJnLWdyYXk2IG84MCIrYSk6IiIseC5kb25lP2UuYXNzaWduKHguZG9uZSwiZ3JlZW4gYmctZ3JlZW42IithKToiIl0uY29tcGFjdCghMCkuam9pbigiICIpfWZ1bmN0aW9uIHIoeCl7cmV0dXJuL2NvbXBhY3Rpb24kLy50ZXN0KHgudHlwZSk/IuKAjURCIGNvbXBhY3Rpb27igI0iOiJpbmRleGVyIj09eC50eXBlPyLigI1JbmRleGVy4oCNIjp4LnBob3Rvbl90YXNrfHxhKHgudGFyZ2V0KXx8YSh4LnNvdXJjZSl8fCIiO2Z1bmN0aW9uIGEoeCl7aWYoIS9eaHR0cFtzXT86XC8vLnRlc3QoeCkpcmV0dXJuIiI7dmFyIGE9IiI7dHJ5eyJsb2NhbGhvc3QiIT0oYT1uZXcgVVJMKHgpLmhvc3RuYW1lKyIiKSYmIjEyNy4wLjAuMSIhPWF8fChhPSIiKX1jYXRjaCh4KXt9cmV0dXJuIGF9fWZ1bmN0aW9uIHMoeCl7cmV0dXJuKCgvXmh0dHBbc10/XDpcL1wvLy50ZXN0KHgpP3coeCk6eCkrIiIpLmVzY2FwZUhUTUwoKX1mdW5jdGlvbiB0KHgsYSl7dmFyIGI9YXx8MjA7aWYoIS9cLy8udGVzdCh4KSlyZXR1cm4gcygoeCsiIikudHJ1bmNhdGUoYiwibWlkZGxlIiwi4oCmIikpO3ZhciBjPXguc3BsaXQoIi8iKTtyZXR1cm4gY1swXS5sZW5ndGg+LjYqYj9zKGNbMF0udHJ1bmNhdGUoLjYqYnwwLCJtaWRkbGUiLCLigKYiKSkrIi8iK3MoYy5zbGljZSgxKS5qb2luKCIvIikpOnMoKHgrIiIpLnRydW5jYXRlKGIsIm1pZGRsZSIsIuKApiIpKX1mdW5jdGlvbiB1KHgsYSl7dmFyIGI9eC5kYXRhYmFzZXx8Ij8/IixjPXguZGVzaWduX2RvY3VtZW50fHwiIjtyZXR1cm4vc2hhcmRzXC9bMC05YS1mXXs4fS1bMC05YS1mXXs4fVwvLiskLy50ZXN0KGIpP3QoYi5zdWJzdHIoMjUpLnJlcGxhY2UoL1wuXGQrJC8sIiIpLGEpKyhjPyI6IF9kLyIrcyhjLnN1YnN0cig4KSk6IiIpK2QoYi5zdWJzdHIoNywxNykpOnQoYixhKSsoYz8iOiBfZC8iK3MoYy5zdWJzdHIoOCkpOiIiKTtmdW5jdGlvbiBkKHgpe3ZhciBhPXguc3BsaXQoIi0iKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHBhcnNlSW50KHgsMTYpfSksYj1NYXRoLnJvdW5kKGFbMV0tYVswXSsxKSxjPU1hdGgucm91bmQoYVswXS9iKzEpLGQ9TWF0aC5yb3VuZCg0Mjk0OTY3Mjk2L2IpO3JldHVybiBlLmFzc2lnbigiIFsiK2MrIi8iK2QrIl0iLCJmczk1IGdyYXkxIil9fWZ1bmN0aW9uIHYoeCl7aWYoIS9eaHR0cFtzXT86XC9cLy4rLy50ZXN0KHgpKXJldHVybiB4O3ZhciBhPW5ldyBVUkwoeCksYj0iMTI3LjAuMC4xIj09YS5ob3N0bmFtZXx8ImxvY2FsaG9zdCI9PWEuaG9zdG5hbWU/YS5wYXRobmFtZS5yZXBsYWNlKC9eXC98XC8kL2csIiIpOmEuaG9zdG5hbWUrYS5wYXRobmFtZS5yZXBsYWNlKC9cLyQvLCIiKTtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGIpfWZ1bmN0aW9uIHcoeCl7cmV0dXJuIHgucmVwbGFjZSgvXihodHRwW3NdP1w6XC9cL1teXDpAXC9dKzopW15AXSsoQC4rKSQvLCIkMeKAouKAouKAouKAouKAoiQyIil9fSxSZXN0YXJ0UG9sbDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5UYXNrTG9vcEludGVydmFsPXguUGhvKCJDZmciKS5sb29wQWN0aXZlVGFza3MseC5UYXNrTG9vcCYmKHguVGFza0xvb3AuY2FuY2VsKCkseC5HZXRUYXNrcyghMCkpLHguVGFza0xvb3A9eC5HZXRUYXNrcy5maWxsKCEwKS5ldmVyeSgxZTMqeC5UYXNrTG9vcEludGVydmFsKX0sUmVzdGFydFRhc2tzOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz10aGlzLGQ9Yy5kYXRhLGU9Yy5sYW5nLGY9JC5EZWZlcnJlZCgpLGc9KGF8fGMuZGF0YS50YXNrLnNlbGVjdGlvbikuZmlsdGVyKGMuTm9Hcm91cCkuc2xpY2UoMCksaD1jLlBobygiUmVwbGljYXRvckRCIiksaT1bXSxqPVtdLGs9Y3cubGliLmEybyhkLnRhc2subGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWR9KSk7Zz1nLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWtbeF19KTt2YXIgbD1jLlRhc2tzLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZy5pbmRleE9mKHgucmVwbGljYXRpb25faWQpPi0xJiZ4LmRvY19pZH0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5kb2NfaWR9KSxtPWMuVGFza3MuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBnLmluZGV4T2YoeC5yZXBsaWNhdGlvbl9pZCk+LTEmJiF4LmRvY19pZH0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm57Y2FuY2VsOiEwLHJlcGxpY2F0aW9uX2lkOngucmVwbGljYXRpb25faWR9fSksbj17d2lkdGg6MzAwLG1hbmlmZXN0OmMuUGhvKCJDb25maXJtIiksZGF0YTp7dGV4dDpbJzxkaXYgY2xhc3M9ImZzMTMwICcrKHg/InJlZCI6Im9yYW5nZSIpKycgbWI1Ij4nLGVbeD8iVFhUX1RBU0tfU1RPUF9USVRMRSI6IlRYVF9UQVNLX1JFU1lOQ19USVRMRSJdLCI8L2Rpdj4iLGVbeD8iVFhUX1RBU0tfU1RPUF9XQVJOIjoiVFhUX1RBU0tfUkVTWU5DX1dBUk4iXShsLmxlbmd0aCxtLmxlbmd0aCxoKV0uam9pbigiIikseWVzY3NzOng/InJlZCI6Im9yYW5nZSIseWVzOmUuQlROX1RBU0tfUFJPQ0VFRCxubzplLkJUTl9DQU5DRUwsY2FuY2VsOiIiLHVzZUJ1dHRvbnM6ITB9LGNzczoibGgxNjAgeGdyYXkgcDIwIHBiMjUiLGVzYzohMCxlbnRlcjohMSxzY3JlZW46ITAsZ2xvYmFsOiEwfTtyZXR1cm4oYSYmYS5sZW5ndGgmJmwubGVuZ3RoPyQuRGVmZXJyZWQoKS5yZXNvbHZlKHtjbWQ6InllcyJ9KTp4PyQubXkubW9kYWwobik6KGI9Yy5Nb2RhbHMudGFza3M9Yy5teS5maW5kKCIjYnRuLXJlc3luYyIpKS5tb2RhbCgkLmV4dGVuZChuLHtyb290OmMubXkuZmluZCgiI3JwYW5lbCIpLHNjcmVlbjohMSxnbG9iYWw6ITEsY3NzOiJsaDE2MCB4Z3JheSBwMTUgcGIyMCIsYWxpZ246InRvcDoxMDIlO2xlZnQ6MDsiLG5vc2U6InRvcCIsZm9jdXM6IiNidG4teWVzIn0pKSkudGhlbihmdW5jdGlvbih4KXtpZigieWVzIiE9eC5jbWQpcmV0dXJuIGYucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIik7bygpfSkuZmFpbChmdW5jdGlvbigpe2YucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIil9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy50YXNrcz09YiYmKGMuTW9kYWxzLnRhc2tzPW51bGwpfSksZi5wcm9taXNlKCk7ZnVuY3Rpb24gbygpe3ZhciBhO2Z1bmN0aW9uIGIoeCl7cmV0dXJuIGMuUmVxKHt1cmw6W2gsIl9idWxrX2RvY3MiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sZGF0YTpKU09OLnN0cmluZ2lmeSh7ZG9jczp4fSl9KX1sLmxlbmd0aCYmKGE9Yy5SZXEoe3VybDpbaCwiX2FsbF9kb2NzIix7aW5jbHVkZV9kb2NzOiEwLGF0dGFjaG1lbnRzOiEwfV0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7a2V5czpsfSl9KS50aGVuKGZ1bmN0aW9uKHgpe3gucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXguZG9jO2oucHVzaCh7X2lkOmEuX2lkLF9yZXY6YS5fcmV2LF9kZWxldGVkOiEwfSk7dmFyIGI9e19pZDphLl9pZH07YS5fYXR0YWNobWVudHMmJihiLl9hdHRhY2htZW50cz1hLl9hdHRhY2htZW50cyksJC5leHRlbmQoYixPYmplY3QucmVqZWN0KGEsL15fLykpLGkucHVzaChiKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBiKGopfSkudGhlbihmdW5jdGlvbihhKXtpZih4KXJldHVybiBhO2N3LmxpYi5ub3RlKGMubGFuZy5NU0dfVEFTS19SRVNZTkMpO3ZhciBkPSQuRGVmZXJyZWQoKTtyZXR1cm4gZnVuY3Rpb24oKXtiKGkpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9eC5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5vayYmIjEtIiE9KGEucmV2fHwiIikuc3Vic3RyKDAsMil8fHgucHVzaChhLmlkKSx4fSxbXSk7aWYoIWEubGVuZ3RoKXJldHVybiBkLnJlc29sdmUoeCk7dmFyIGM9Y3cubGliLmEybyhhKTtyZXR1cm4gYihpLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWNbeC5faWRdfSkpLnRoZW4oZnVuY3Rpb24oeCl7ZC5yZXNvbHZlKHgpfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtkLnJlamVjdCh4LGEsYil9KX0uZGVib3VuY2UoMWUzKSgpLGQucHJvbWlzZSgpfSkpLG0ubGVuZ3RoJiYobC5sZW5ndGg/YS50aGVuOmZ1bmN0aW9uKHgpe2E9eCgpfSkoZnVuY3Rpb24oKXt2YXIgeD0kLkRlZmVycmVkKCksYT1tLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gYy5SZXEoe3VybDpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh4KX0pfSk7cmV0dXJuIFEuYWxsU2V0dGxlZChhKS50aGVuKGZ1bmN0aW9uKGEpe3gucmVzb2x2ZSgpfSxmdW5jdGlvbigpe3gucmVzb2x2ZSgpfSkseC5wcm9taXNlKCl9KSxhLnRoZW4oZnVuY3Rpb24oKXtjdy5saWIubm90ZShlW3g/Ik1TR19UQVNLX1NUT1AiOiJNU0dfVEFTS19SRVNZTkNfT0siXSwib2siKSwkLm15LnJhZGlvKCJkYmxpc3QiLFtoXSkseHx8JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpoLGNtZDoid3JpdGUiLGRvY3M6aS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguX2lkfSl9KSxmLnJlc29sdmUoaSl9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtjdy5saWIubm90ZShlW3g/IkVSUl9UQVNLX1NUT1AiOiJFUlJfVEFTS19SRVNZTkMiXS5hc3NpZ24oYSsiOiAiK2IpLCJlcnJvciIpLGNvbnNvbGUubG9nKGEsYixjLCJVbnNhdmVkIHRhc2tzOiIsaSksZi5yZWplY3QoYSxiLGMpfSl9fSxUVGFzazpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGEsYj0nPGRpdiBjbGFzcz0iY2ItdGFzay1yb3cgZGliIHZhdCBmczkwIj57MX08L2Rpdj4nO3JldHVybiBiPSgiRXJyb3IiIT14LnBpZHx8eC5kb2NfaWQpJiZ4LnJlcGxpY2F0aW9uX2lkP2IuYXNzaWduKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InRhc2stc2VsZWN0aW9uIiBjbGFzcz0iY3Agcm93LXNlbCBtbDIiIHZhbHVlPSJ7cmVwbGljYXRpb25faWR9IiAnKyh4Ll9zZWxlY3RlZD8iY2hlY2tlZD4iOiI+IikpOmIuYXNzaWduKCImbmJzcDsiKSwoImdyb3VwIiE9eC5fdHlwZT9bJzxkaXYgY2xhc3M9InZpZXctcm93IHBsMjcgcHI4Ij4nLGIsJzxkaXYgY2xhc3M9InRhc2tsYWJlbCBjcCBkaWIgdzIwcCBlbGwgZnM5NSBwdDEgZ3JheSB2YXQiIHRpdGxlPSJ7X3BpZHNhZmV9Ij57X3BpZH08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkaWIgdzcwcCBlbGwgcHIxMCB2YXQiPntfdHlwZX0ge19kZXNjfTwvZGl2PicsIkRvbmUiPT14LnBpZD9bJzxkaXYgY2xhc3M9ImRpYiB3MTBwIHZhdCB0YXIgZ3JheSBmczkwIj4nLCc8ZGl2IGNsYXNzPSJidG4tZG9uZS1yZXN0YXJ0IHAwIGRpYiB2YXQgdGFjIGJnLWdyYXk2IGdyYXkxIGJyMiBjcCIgJywnZGF0YS1pZD0ie3JlcGxpY2F0aW9uX2lkfSIgc3R5bGU9Im1pbi13aWR0aDo2MCUiIHRpdGxlPSJSZXN0YXJ0IHN5bmMiPicsJzxzcGFuIGNsYXNzPSJmaS1wbGF5Ij48L3NwYW4+JywiPC9kaXY+PC9kaXY+Il0uam9pbigiIik6Wyc8ZGl2IGNsYXNzPSJkaWIgdzEwcCB2YXQgdGFyIGdyYXkgcHQxIGZzOTAiPntfcHJvZ3Jlc3N9PC9kaXY+J10uam9pbigiIiksIjwvZGl2PiJdLmpvaW4oIiIpOlsnPGRpdiBjbGFzcz0idmlldy1yb3cgcGwyNyBwcjgiPicsYiwnPGRpdiBjbGFzcz0iZGliIHc4MHAgZWxsIHByMTAgdmF0IG84MCB0YXNrLWZvbGRncm91cCBjcCIgJywnZGF0YS1ncm91cD0ieycrKHgucmVwbGljYXRpb25faWQ/InJlcGxpY2F0aW9uX2lkIjoiX2dyb3VwIikrJ30iPicsJzxzcGFuIGNsYXNzPSJib2xkZXIiPntfZGVzY308L3NwYW4+JywnPHNwYW4gY2xhc3M9IicrKGEudGFzay5mb2xkW3gucGhvdG9uX3Rhc2tdPyJhcmlnaHQiOiJhZG93biIpKyciPjwvc3Bhbj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdzIwcCB2YXQgdGFyIGdyYXkgYm9sZGVyIGZzOTAiPntfcHJvZ3Jlc3N9PC9kaXY+JywiPC9kaXY+Il0uam9pbigiIikpLmFzc2lnbih4KX0scGFyYW1zOntzdHJpY3Q6ITB9fSwkbG9nOntpZDoiY3cuUGhvdG9uLiRsb2ciLGxhbmc6e30sZGF0YTp7c3JjOiJjb3VjaCIsc2VhcmNoOiIiLHNpemU6IjEwIixvZmZzZXQ6IjAiLGxpbmVzOiIiLGRpcjoicmV2ZXJzZSJ9LFByZXY6W10saGFzaDpmdW5jdGlvbigpe3JldHVybiJsb2cifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJMb2dzIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfbG9nIiE9eFswXT9udWxsOnt0aXRsZToiTG9ncyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuICQuZXh0ZW5kKGIsYS5QaG8oIkxzIikoIkxvZ3MiKXx8e30pLGEuUHJldj1bYi5zaXplLGIub2Zmc2V0XSxhLkdldCghMSwhMCkudGhlbihmdW5jdGlvbihiKXt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSxhLm5pY2VTY3JvbGwoeC5maW5kKCIjcmVwb3J0IikpfSl9LHVpOnsiI2xzaXplIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5zaXplPWlzTmFOKGEpfHwhYT8iMTAiOigwfCthKS5jbGFtcCgxLDUwMCkrIiIsdGhpcy5teS5maW5kKCIjbG9mZnNldCIpLmF0dHIoInN0ZXAiLHguc2l6ZSkpLHguc2l6ZX19LCIjbG9mZnNldCI6Im9mZnNldCIsIiNsb2ctc2VhcmNoIjp7ZGVsYXk6MTUwLGJpbmQ6InNlYXJjaCIsY3NzOnsibXktc2VhcmNoIjovXi57Mix9JC99fSwiI2xvZ2RpciI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfRElSKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5kaXI9YSsiIikseC5kaXJ9fSwiI2xvZy1wcm94eSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztbeC5zaXplLHgub2Zmc2V0LHguZGlyXSsiIiE9Yi5QcmV2KyIiJiZiLkdldCgpLnRoZW4oZnVuY3Rpb24oKXtiLm15LnJlY2FsYygiI2xvZ3MiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2IuUHJldj1beC5zaXplLHgub2Zmc2V0LHguZGlyXSxiLlBobygiTHMiKSgiTG9ncyIse3NpemU6eC5zaXplfSl9KX0sd2F0Y2g6WyIjbHNpemUiLCIjbG9mZnNldCIsIiNsb2dkaXIiXX0sIiNsb2dzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiO3JldHVybiB4LnNlYXJjaC5sZW5ndGg+MT8oYj1uZXcgUmVnRXhwKCIoIitSZWdFeHAuZXNjYXBlKHguc2VhcmNoKSsiKSIsImkiKSx4LmxpbmVzLmxpbmVzKCkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIlsiIT1hWzBdJiZ4Lmxlbmd0aD94W3gubGVuZ3RoLTFdKz0iXG4iK2E6eC5wdXNoKGEpLHh9LFtdKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGIudGVzdCh4KX0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsYWNlKGIsIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJsb2ctZm91bmQiPicpLnJlcGxhY2UoIu+/sCIsIjwvc3Bhbj4iKX0pLmpvaW4oIlxuIikpOngubGluZXMuZXNjYXBlSFRNTCgpfSx3YXRjaDpbIiNsb2ctc2VhcmNoIl19LCIjYnRuLXJlbG9hZCI6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuR2V0KCkudGhlbihmdW5jdGlvbigpe2IubXkucmVjYWxjKCIjbG9ncyIpfSl9fSwiI2J0bi1sb2ctbWludXMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHgub2Zmc2V0PSgreC5vZmZzZXQtK3guc2l6ZSkuY2xhbXAoMCwxZTEwKSsiIil9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuISt4Lm9mZnNldH19LHdhdGNoOiIjbG9mZnNldCIscmVjYWxjOiIjbG9mZnNldCJ9LCIjYnRuLWxvZy1wbHVzIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih4Lm9mZnNldD0oK3gub2Zmc2V0KyAreC5zaXplKS5jbGFtcCgwLDFlMTApKyIiKX0sd2F0Y2g6IiNsb2Zmc2V0IixyZWNhbGM6IiNsb2Zmc2V0In19LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNyZXBvcnQiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LEhUTUw6JzxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcGwyMCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciB3MTUwIGZzOTUiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgeGdyYXkgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibG9nLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBzcGVsbGNoZWNrPSJmYWxzZSIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJudyBkaWIgdmF0Ij48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yOCB2YXQiIHRpdGxlPSJ7UExDX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PHNwYW4gY2xhc3M9ImJvbGRlciBmczE1MCBsaDEzMCB4Z3JheSBtcjMwIGRpYiB2YXQiPntUWFRfVElUTEV9PC9zcGFuPiA8ZGl2IGNsYXNzPSJkaWIgdmF0Ij48c3Bhbj57VFhUX1NJWkV9PC9zcGFuPiA8aW5wdXQgaWQ9ImxzaXplIiB0eXBlPSJudW1iZXIiIGNsYXNzPSJ3NzAiIG1pbj0iMSIgbWF4PSI1MDAiIHN0ZXA9IjEiPiA8c3Bhbj57VFhUX0tCfSwge1RYVF9PRkZTRVR9PC9zcGFuPiA8aW5wdXQgaWQ9ImxvZmZzZXQiIHR5cGU9Im51bWJlciIgY2xhc3M9IncxMDAiIG1pbj0iMCIgbWF4PSIxMDAwMDAwIiBzdGVwPSIxMCI+IDxzcGFuPntUWFRfS0J9PC9zcGFuPiA8L2Rpdj48c3BhbiBjbGFzcz0iYnV0dG9ucyBtbDEwIj48YnV0dG9uIGlkPSJidG4tbG9nLW1pbnVzIiBjbGFzcz0idzQwIG1yMiBwbDAgcHIwIj48c3BhbiBjbGFzcz0iZmktYXJyb3ctbGVmdCBvODAiPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tbG9nLXBsdXMiIGNsYXNzPSJ3NDAgbXIyIHBsMCBwcjAiPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1yaWdodCBvODAiPjwvc3Bhbj48L2J1dHRvbj48L3NwYW4+PHNwYW4gaWQ9ImxvZ2RpciIgY2xhc3M9Im1sMjAiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodC00IGZlYXRoZXIgbXQ0Ij48ZGl2IGlkPSJyZXBvcnQiIGNsYXNzPSJwbDIwIHByMjAgcGFuZWxoZWlnaHQtNCBwcmUiPjxkaXYgaWQ9ImxvZ3MiIGNsYXNzPSJmczkwIGxoMTQwIHBiMTIgcHQ4Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJsb2ctcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHN0eWxlOnsiIHByZSI6IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsiLCIgLmxvZy1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjMyLDEyMSwwLjk0KTtib3JkZXItcmFkaXVzOjJweDsifSxHZXQ6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9MTAyNCp4LmRhdGEuc2l6ZSxiPTEwMjQqKHguZGF0YS5vZmZzZXR8fDApLGM9WyJfbG9nIix7Ynl0ZXM6YX0sYj97b2Zmc2V0OmJ9Om51bGxdLmNvbXBhY3QoKTtyZXR1cm4geC5SZXEoe3VybDpjLGRhdGFUeXBlOiJ0ZXh0In0pLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGI9YS5saW5lcygpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiJbIiE9YVswXSYmeC5sZW5ndGg/eFt4Lmxlbmd0aC0xXSs9IlxuIithOngucHVzaChhKSx4fSxbXSk7InJldmVyc2UiPT14LmRhdGEuZGlyJiYoYj1iLnJldmVyc2UoKSkseC5kYXRhLmxpbmVzPWIuam9pbigiXG4iKX0pfSxwYXJhbXM6e3N0cmljdDohMH19LCRkaWZmOntpZDoiY3cuUGhvdG9uLiRkaWZmIixsYW5nOnt9LHJlcXVpcmU6W3sid2luZG93Lmpzb25kaWZmcGF0Y2giOiJsaWIvZGlmZi5qcyJ9XSxwYXJhbXM6e3Jlc3R5bGU6MTAwLHN0cmljdDohMH0sZGF0YTp7aWQ6IiIscmV2OlsiIiwiIl0sc2tpcDpbIl9yZXYiLCJsb2ciXSxkb2M6e30sY29uZmxpY3RzOltdLHJldnM6W10scGFyYW1zOltdLGpzb246W3t9LHt9XX0saGFzaDpmdW5jdGlvbigpe3JldHVybiJkaWZmIn0sdGl0bGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLmRhdGEsYT0iRGlmZiAiK3RoaXMuZGF0YS5pZDtyZXR1cm4geC5yZXZbMF0hPXgucmV2WzFdJiYoYSs9IiwgezF9fnsyfSIuYXNzaWduKHgucmV2WzBdP3gucmV2WzBdLnNwbGl0KCItIilbMF06Imxhc3QiLHgucmV2WzFdP3gucmV2WzFdLnNwbGl0KCItIilbMF06Imxhc3QiKSksYX0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtpZighKHgubGVuZ3RoPDMpJiZhJiYiX2RpZmYiPT14WzFdKXJldHVybiJfZGVzaWduIj09eFsyXSYmeFszXSYmKHhbM109eFsyXSsiLyIreFszXSx4LnJlbW92ZUF0KDIpKSx7dGl0bGU6IkRpZmYgIit0aGlzLnRydW5jKHhbMl0sMjApLGFwcERhdGE6e2lkOnhbMl0scmV2OlsoeFszXXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKSwoeFs0XXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKV0scGF0aDp4fX19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTt0cnl7YS5EaWZmPWpzb25kaWZmcGF0Y2guY3JlYXRlKHtvYmplY3RIYXNoOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzQXJyYXkoeCkmJk9iamVjdC5pc051bWJlcih4WzBdKSlyZXR1cm4geFswXSsiIjtpZihPYmplY3QuaXNPYmplY3QoeCkpe2lmKHZvaWQgMCE9PXguX2lkKXJldHVybiB4Ll9pZCsiIjtpZih2b2lkIDAhPT14LmlkKXJldHVybiB4LmlkKyIiO2lmKHZvaWQgMCE9PXgubmFtZSlyZXR1cm4geC5uYW1lKyIifXJldHVybiIkJGluZGV4OiIrYX19KX1jYXRjaCh4KXt9cmV0dXJuIGIucGF0aC5sZW5ndGg+MyYmKGIucmV2WzBdPShiLnBhdGhbM118fCIiKS5yZXBsYWNlKC9eXEQrLywiIiksYi5yZXZbMV09KGIucGF0aFs0XXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKSkseC50aGVuKGZ1bmN0aW9uKGIpe2EubmljZVNjcm9sbCh4LmZpbmQoIiNkaWZmIikpfSksYS5HZXREb2MoKS50aGVuKGZ1bmN0aW9uKCl7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSl9KX0sUmV2c0xpc3Q6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guZGF0YTt4LlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoeCwiI2RvYy1yZXYwIikseC5QaG8oIiRkb2MiKS5SZXZzTGlzdC5jYWxsKHgsIiNkb2MtcmV2MSIpfSxHZXRSZXZzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPVtdO3JldHVybiBhLnJldlswXT9hLmpzb25bMF0uX3JldiYmYS5yZXZbMF09PWEuanNvblswXS5fcmV2fHxiLnB1c2goeC5SZXEoe3VybDpbYS5wYXRoWzBdLGEuaWQse3JldjphLnJldlswXX1dfSkudGhlbihmdW5jdGlvbih4KXthLmpzb25bMF09eH0pKTphLmpzb25bMF09JC5leHRlbmQoITAse30sYS5kb2MpLGEucmV2WzFdP2EuanNvblsxXS5fcmV2JiZhLnJldlsxXT09YS5qc29uWzFdLl9yZXZ8fGIucHVzaCh4LlJlcSh7dXJsOlthLnBhdGhbMF0sYS5pZCx7cmV2OmEucmV2WzFdfV19KS50aGVuKGZ1bmN0aW9uKHgpe2EuanNvblsxXT14fSkpOmEuanNvblsxXT0kLmV4dGVuZCghMCx7fSxhLmRvYyksUS5hbGxTZXR0bGVkKGIpfSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjZGlmZiIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sdWk6eyIjZG9jLWlkIjp7YmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLnAydSxiPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oYSh4LnBhdGhbMF0pLHRoaXMudHJ1bmMoeC5wYXRoWzBdLDE1KS5lc2NhcGVIVE1MKCkseC5wYXRoWzBdLmVzY2FwZUhUTUwoKSksYz0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKGEoeC5wYXRoWzBdKSsiLyIrYSh4LmlkKSsoeC5yZXZbMF0/Ii9fIit4LnJldlswXToiIiksdGhpcy50cnVuYyh4LmlkLDE1MCkuZXNjYXBlSFRNTCgpLHguaWQuZXNjYXBlSFRNTCgpKTtyZXR1cm5bJzxzcGFuIGNsYXNzPSJmczE1MCBsaDEzMCB4Z3JheSBtdC0xIG84MCI+JywnPHNwYW4gY2xhc3M9Im85MCI+RGlmZiA8L3NwYW4+JywnPHNwYW4gY2xhc3M9Im84MCI+ezF9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57Mn08L3NwYW4+JywiPC9zcGFuPiJdLmpvaW4oIiIpLmFzc2lnbihiLGMpfSx3YXRjaDpbIiNkb2MtcmV2MCJdfSwiI3Byb3AtaGlkZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLnNlbGVjdDIoeCx7bXVsdGlwbGU6ITAsdGFnczpbIl9yZXYiLCJsb2ciXSxwbGFjZWhvbGRlcjphLmxhbmcuUExDX0JBTn0pfSxiaW5kOiJza2lwIn0sIiNkb2MtcmV2MCI6e2JpbmQ6InJldi4wIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5QaG8oIiRkb2MiKS5SZXZzTGlzdC5jYWxsKGEsIiNkb2MtcmV2MCIpfX0sIiNkb2MtcmV2MSI6e2JpbmQ6InJldi4xIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5QaG8oIiRkb2MiKS5SZXZzTGlzdC5jYWxsKGEsIiNkb2MtcmV2MSIpfX0sJ2lucHV0W25hbWU9InNldHRpbmdzIl0nOiJwYXJhbXMiLCIjZGlmZiI6e2RlbGF5OjEwMCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhLGIsYyxkPXRoaXMsZT14Lmpzb24sZj14LnNraXAuc2xpY2UoMCkuY29uY2F0KFsiX2NvbmZsaWN0cyIsIl9yZXZzX2luZm8iXSk7cmV0dXJuIiI9PXgucmV2WzBdJiYiIj09eC5yZXZbMV18fHgucmV2WzBdPT14LnJldlsxXT8nPGRpdiBjbGFzcz0idGFjIHA1MCBmczE1MCBvcmFuZ2UiPnsxfTwvZGl2PicuYXNzaWduKGQubGFuZy5UWFRfU0VMRUNUKTooYj1PYmplY3QucmVqZWN0KGVbMF0sZiksYz1PYmplY3QucmVqZWN0KGVbMV0sZiksbnVsbD09KGE9ZC5EaWZmLmRpZmYoYixjKSk/JzxkaXYgY2xhc3M9InRhYyBwNTAgZnMxMjAgZ3JlZW4iPnsxfTwvZGl2PicuYXNzaWduKGQubGFuZy5UWFRfTk9ESUZGKTooLTE9PXgucGFyYW1zLmluZGV4T2YoInVuY2hhbmdlZCIpP2pzb25kaWZmcGF0Y2guZm9ybWF0dGVycy5odG1sLmhpZGVVbmNoYW5nZWQoKTpqc29uZGlmZnBhdGNoLmZvcm1hdHRlcnMuaHRtbC5zaG93VW5jaGFuZ2VkKCksanNvbmRpZmZwYXRjaC5mb3JtYXR0ZXJzLmh0bWwuZm9ybWF0KGEsYikpKX0sd2F0Y2g6WydpbnB1dFtuYW1lPSJzZXR0aW5ncyJdJywiI3Byb3AtaGlkZSJdfSwiI2RpZmYtcHJveHkiOntkZWxheTozMDAsYmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzOygiIiE9eC5yZXZbMF18fCIiIT14LnJldlsxXXx8eC5qc29uWzBdLl9yZXYpJiZhLkdldFJldnMoKS50aGVuKGZ1bmN0aW9uKCl7YS5teS5jaGVjaygiI2RpZmYiKX0pO3gucGF0aC5zbGljZSgwKTt4LnBhdGhbM109PSJfIit4LnJldlswXSYmeC5wYXRoWzRdPT0iXyIreC5yZXZbMV18fCh4LnBhdGhbM109Il8iK3gucmV2WzBdLHgucGF0aFs0XT0iXyIreC5yZXZbMV0sJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOngudGFiaWQscGF0aDp4LnBhdGgsdGl0bGU6YS50aXRsZSgpfSkpfSx3YXRjaDpbIiNkb2MtcmV2MCIsIiNkb2MtcmV2MSJdfX0sSFRNTDonPGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMTAgbGgxNjAiPjxkaXYgaWQ9ImRvYy1pZCIgY2xhc3M9ImRpYiB2YXQgbncgb2ggZWxsIG1yMTAiPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzE5MCBtciI+PGlucHV0IGlkPSJkb2MtcmV2MCIgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIGZzMTEwIHZhdCI+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCBvODAgdGFjIHczMCBwdDEiPnZzPC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCB3MTkwIj48aW5wdXQgaWQ9ImRvYy1yZXYxIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48ZGl2IGNsYXNzPSJmciI+PGRpdiBjbGFzcz0iZGliIHZhdCB3MjUwIG1sMTAgbXI4Ij48ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MCBwcjcgdGFyIHB0MSI+e1RYVF9CQU59PC9kaXY+PGRpdiBjbGFzcz0idzIwMCBkaWIgdmF0IGZzOTAiPjxpbnB1dCBpZD0icHJvcC1oaWRlIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48L2Rpdj48bGFiZWwgY2xhc3M9IncxMjAgZGliIHZhdCBwdDEgbGgxMjAiIHN0eWxlPSJjb2xvcjppbmhlcml0OyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJzZXR0aW5ncyIgdmFsdWU9InVuY2hhbmdlZCIgY2xhc3M9ImZzMTA1Ii8+PHNwYW4gY2xhc3M9ImRpYiB2YXQgcHQxIHBsNyI+e0xCTF9TUkN9PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctcGFuZWxzIiBjbGFzcz0idzEwMHAgcGFuZWxoZWlnaHQgZmVhdGhlciBwbDIwIj48ZGl2IGlkPSJkaWZmIiBjbGFzcz0ianNvbmRpZmYgdzEwMHAgcGFuZWxoZWlnaHQgcHIyMCBwdDEwIHBiMTYgbGgxMzAiPjwvZGl2Pjwvc2VjdGlvbj48ZGl2IGlkPSJkaWZmLXByb3h5Ij48L2Rpdj4nLHN0eWxlOnsiICNkb2MtaWQiOiJtYXgtd2lkdGg6Y2FsYygxMDAlIC0gODEwcHgpOyBtaW4td2lkdGg6MTUwcHg7IiwiIHByZSI6eyIiOiJmb250LXNpemU6aW5oZXJpdDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogYXV0bzsgd29yZC1icmVhazphdXRvOyIsIiAiOmZ1bmN0aW9uKHgpe3JldHVybiJtYXgtd2lkdGg6ezF9cHg7Ii5hc3NpZ24oeC53aWR0aCgpLTIyMCl9fSwiIC5qc29uZGlmZnBhdGNoLWRlbHRhIjoicGFkZGluZy1sZWZ0OjA7IGZvbnQtc2l6ZTppbmhlcml0OyJ9LEdldERvYzpmdW5jdGlvbih4LGEpe3ZhciBiLGMsZD10aGlzLGU9ZC5kYXRhLGY9e2NvbmZsaWN0czohMCxyZXZzX2luZm86ITB9O3JldHVybiBkLkJ1c3kuZGVib3VuY2UoMjApKCEwKSxiPVtlLnBhdGhbMF0sZS5pZCxmXSwoYz1kLlJlcShiKS50aGVuKGZ1bmN0aW9uKGIpe2UuZG9jPWIsZyhlLmRvYyksYSYmZC5SZXZzTGlzdCgpLGQubXkudHJpZ2dlcigiI3N0YXRlLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IikseCYmZC5teS5yZWRyYXcoKX0pKS5hbHdheXMoZnVuY3Rpb24oKXtkLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpLGM7ZnVuY3Rpb24gZyh4KXtPYmplY3QuaXNBcnJheSh4Ll9yZXZzX2luZm8pJiYoeC5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuImF2YWlsYWJsZSI9PXguc3RhdHVzfSkpLGUuY29uZmxpY3RzPXguX2NvbmZsaWN0c3x8W10sZS5yZXZzPSh4Ll9yZXZzX2luZm98fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fX0sJHN0YXRzOntpZDoiY3cuQ291Y2guTW9uaXRvciIsQ29uZmlnOntzdGF0c01heFRpbWVmcmFtZToxODAwLHNlcmllTWF4TGVuZ3RoOjRlM30sZGF0YTp7cHJlc2V0TW91bnRlZDohMSxkb2M6e25hbWU6IlN0YXRzIn19LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4iX3N0YXRzIn0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iU3RhdHMifSxtYXRjaDpmdW5jdGlvbih4LGEpe3JldHVybiBhfHwxIT14Lmxlbmd0aHx8Il9zdGF0cyIhPXhbMF0/bnVsbDp7dGl0bGU6IlN0YXRzIn19LHVpOnsiI25vZGVzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGxpc3Rlbjp7cGhvdG9uX2NmZ19jaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guQ2ZnKCkuc3RhdHNSZWZyZXNoIT14LlBobygiQ2ZnIikuc3RhdHNSZWZyZXNoJiYoeC5DZmcoKS5zdGF0c1JlZnJlc2g9eC5QaG8oIkNmZyIpLnN0YXRzUmVmcmVzaCwkLm15LnJhZGlvKCJjb3VjaF9tb25pdG9yX2NmZ19jaGFuZ2UiLE9iamVjdC5jbG9uZSh4LkNmZygpKSkpfSx1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9fX0sIiNlbmNyeXB0Ijp7aW5pdDpmdW5jdGlvbigpe30sYmluZDoiZHVtbXkifSwiI21uYW1lIjp7YmluZDpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaG9zdH0sY3NzOnsiYm9sZGVyIGZzMTgwIjpmdW5jdGlvbigpe3JldHVybiExfSxmczE3MDpmdW5jdGlvbigpe3JldHVybiEwfX19fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5UaW1lci5jYW5jZWwoKTt2YXIgYT14LmZpbmQoIiNub2RlcyIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sc3R5bGU6eyIgLm5vY3dtaW4iOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAjYXBwLXNlYXJjaCI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICNub2RlLXRpbGVzIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9KGEuUGhvKCJNZW1iZXJzaGlwIikuY2x1c3Rlcl9ub2Rlc3x8WzFdKS5sZW5ndGgsZD0iIjtyZXR1cm4hIWEuZGF0YS5wcmVzZXRNb3VudGVkJiYoeC5maW5kKCJkaXYjcHJpbWUiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJyZWNhbGMiLCEwKX0pLHguZmluZCgiZGl2I3lheGlzIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigicmVjYWxjIil9KSksYS5DZmcoKS5zdGF0c1NjYWxlWT1jPihiPD0xNDAwPzI6NCk/MS4xOjEuNSwoYz4zfHxjPjEmJmI+MTQwMCkmJihkPXsiIC5ubm9kZSI6IndpZHRoOmNhbGMoNTAlIC0gMTZweCk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9KSxkfX0sQXV0b1NhdmVOb2RlOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLkxzLGM9JC5leHRlbmQoITAse30seCksZD1hLkNmZygpLnNlcmllTWF4TGVuZ3RoO2Z1bmN0aW9uIGUoeCl7cmV0dXJuIHgubWFwKGZ1bmN0aW9uKHgpe3JldHVybiAwPT14PyIiOngudG9TdHJpbmcoMzYpfSkuam9pbigiICIpfWEuUGhvKCJfY29tcGlsZWQiKSYmKFsiZ2F1Z2VzIiwic2VyaWVzIl0uZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT1jW3hdO2EmJmEuZm9yRWFjaChmdW5jdGlvbih4KXt4LnJvd3M9eC5yb3dzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50byhkKX0pLm1hcChlKSx4LnRpbWU9ZSh4LnRpbWUudG8oeC5yb3dzLmxlbmd0aD4xP2Q6MTApKX0pfSksYigiU3RhdHMubm9kZS4iK2MubmFtZSxPYmplY3QucmVqZWN0KGMsWyJ1cmwiLCJjb3VjaCIsIm5hbWVzIiwiY29sb3JzIiwidW5pdHMiXSkpKX0sTW91bnQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPSh4fHxhLm15LnJvb3QoKSkud2lkdGgoKSxkPSEhYi5wcmVzZXRNb3VudGVkLGU9YS5QaG8oIkNvdWNoIikudmVyLGY9YS5kZWZhdWx0Tm9kZXNbZT49IjAwMi4iPyIyLngiOiIxLngiXTtpZihNYXRoLmxvZzEwPU1hdGgubG9nMTB8fGZ1bmN0aW9uKHgpe3JldHVybiBNYXRoLmxvZyh4KSpNYXRoLkxPRzEwRX0sIWQpe2lmKGEuQ2ZnKCkuc3RhdHNSZWZyZXNoPWEuUGhvKCJDZmciKS5zdGF0c1JlZnJlc2gsZT49IjAwMi4iKXtiLmRvYy5ub2Rlcz0oYS5QaG8oIk1lbWJlcnNoaXAiKS5jbHVzdGVyX25vZGVzfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3ZhciBhPU9iamVjdC5jbG9uZShmLCEwKTtyZXR1cm4gYS5uYW1lPXgsYS51cmw9Ii9fbm9kZS97MX0vIi5hc3NpZ24oZW5jb2RlVVJJQ29tcG9uZW50KHgpKSxhfSk7dmFyIGc9Yi5kb2Mubm9kZXMubGVuZ3RoO2EuQ2ZnKCkuc3RhdHNTY2FsZVk9Zz4oYzw9MTQwMD8yOjQpPzEuMToxLjV9ZWxzZSBiLmRvYy5ub2Rlcz1bJC5leHRlbmQoITAse30sZildLGEuQ2ZnKCkuc3RhdHNTY2FsZVk9MS41O2EuTHM9YS5QaG8oIkxzIik7dmFyIGg9YS5DZmcoKS5zZXJpZU1heExlbmd0aD00ZTMvYi5kb2Mubm9kZXMubGVuZ3RofDA7YS5QaG8oIl9jb21waWxlZCIpJiZiLmRvYy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBiPWEuTHMoIlN0YXRzLm5vZGUuIit4Lm5hbWUpO2ImJihbImdhdWdlcyIsInNlcmllcyJdLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9Ylt4XTthJiZhLmZvckVhY2goZnVuY3Rpb24oeCl7eC50aW1lPWkoeC50aW1lKS50byhoKSx4LnJvd3M9eC5yb3dzLm1hcChpKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgudG8oaCl9KX0pfSksJC5leHRlbmQoITAseCxiKSl9KSxiLnByZXNldE1vdW50ZWQ9ITB9cmV0dXJuIGIuZG9jLm5vZGVzO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIHguc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHBhcnNlSW50KHh8fCIwIiwzNil9KX19LHBhcmFtczp7c3RyaWN0OiEwfX0sVGFiOntpZDoiY3cuUGhvdG9uLlRhYiIsbGFuZzp7fSxkYXRhOntpZDoiIixuYW1lOiIiLHR5cGU6IiIsaGFzaDA6IiIsaGFzaDE6IiIsYWN0aXZlOiExLHBhdGg6W10sZXJyb3I6ITEscnVuOiExfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSl9LHVpOnsiI2wtdGFibmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGMubXkuZmluZCgiYSNsLXRhYm5hbWUiKS5hdHRyKCJocmVmIiwiIyIrYy5wMnUoeC5wYXRofHxbXSkuam9pbigiLyIpKS5hdHRyKCJ0aXRsZSIseC5wYXRoLmpvaW4oIi8iKSkudG9nZ2xlQ2xhc3MoInN5c3RlbSIsIXgucGF0aFswXXx8L14oX2Fib3V0fF9zdGF0c3xfY29uZmlnfF9sb2cpJC8udGVzdCh4LnBhdGhbMF0pKSxjLm15LnJvb3QoKS50b2dnbGVDbGFzcygiYWN0aXZlIiwhIXguYWN0aXZlKSx4Lm5hbWUuZXNjYXBlSFRNTCgpfSxjc3M6e3NtYWxsZXI6ZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZS5sZW5ndGg+MjB9fSxldmVudHM6ImNsaWNrLm15In0sIiNsLXRhYnN0YXRlIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LmVycm9yJiZ4Lmhhc2gwPT14Lmhhc2gxfSxyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LmVycm9yfX0sd2F0Y2g6IiNsLXRhYm5hbWUifSwiI2J0bi10YWJjbG9zZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNidG4tdGFiY2xvc2UiLCJ0YWJjbG9zZSIseC5pZCl9LGV2ZW50czoiY2xpY2subXkifSwiI3RhYi1wcm94eSI6e2JpbmQ6ZnVuY3Rpb24oKXt9LGxpc3Rlbjp7YXBwYnVzeTpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmYS5pZD09eC5pZCYmdGhpcy5teS5yb290KCkudG9nZ2xlQ2xhc3MoInRhYi1idXN5IiwhIWEuYnVzeSl9LHBhdGhjaGFuZ2U6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNPYmplY3QoYSkpe3ZhciBiPXRoaXMsYz1hLnBhdGguc2xpY2UoMCk7aWYoYS5pZCE9eC5pZCl7aWYoYy5qb2luKCLvv70iKSE9eC5wYXRoLmpvaW4oIu+/vSIpKXJldHVybjt4Lmhhc2gwPT14Lmhhc2gxJiZiLlBobygiQ2xvc2UiKSh7dGFiaWQ6eC5pZCxlbmZvcmNlOiEwfSl9ZWxzZSB4LnBhdGg9Yyx4Lm5hbWU9YS50aXRsZXx8eC5uYW1lLGIuUGhvKCJfY29tcGlsZWQiKSYmeC5hY3RpdmUmJndpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIitiLnAydShjKS5qb2luKCIvIikpLGIubXkuY2hlY2soIiNsLXRhYm5hbWUiKX19LHJlbG9hZDpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSYmYS5pZD09eC5pZCl7dmFyIGI9dGhpcyxjPWEucGF0aC5zbGljZSgwKSxkPSQoIiNsLWFwcHM+I2FwcC0iK2EuaWQpO2QubGVuZ3RoJiZkLmlzKCIubXktZm9ybSIpJiYoZC5teSgicmVtb3ZlIiksZC5yZW1vdmUoKSx4LnJ1bj0hMSx4LmVycm9yPSExLHguaGFzaDA9eC5oYXNoMT0iIix4LmFjdGl2ZSYmYi5QaG8oIlN3aXRjaCIpKGMpKX19fX19LEhUTUw6JzxhIGhyZWY9IiIgaWQ9ImwtdGFibmFtZSIgb25hdXhjbGljaz0iJCh0aGlzKS5wYXJlbnQoKS5maW5kKFwnI2J0bi10YWJjbG9zZVwnKS5jbGljaygpO3JldHVybiBmYWxzZTsiPjwvYT48ZGl2IGlkPSJsLXRhYnN0YXRlIiBjbGFzcz0ibC10YWJtYXJrIj7igKI8L2Rpdj48ZGl2IGlkPSJidG4tdGFiY2xvc2UiIGNsYXNzPSJsLXRhYm1hcmsiIHRpdGxlPSJ7QlROX0NMT1NFVEFCfSI+4pyVPC9kaXY+PGRpdiBpZD0idGFiLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+JyxwYXJhbXM6e3N0cmljdDohMH19LENvbmZpcm06e2lkOiJjdy5QaG90b24uQ29uZmlybSIscGFyYW1zOntkZWxheTo1LHN0cmljdDohMH0sZGF0YTp7Y21kOiIiLHRleHQ6IiIsY3NzOiJ4Z3JheSIseWVzOiJZZXMiLG5vOiJObyIsY2FuY2VsOiJDYW5jZWwiLHllc2NzczoiZ3JlZW4iLG5vY3NzOiIiLHVzZUJ1dHRvbnM6ITF9LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLmRhdGE7eC5mb3JtZ2VuKFsnPGRpdiBjbGFzcz0iJytiLmNzcysnIj4nK2IudGV4dCsiPC9kaXY+Iix7bGFiZWw6IjcwcHgiLHJvdzphLnBhcmFtcy53aWR0aCsicHgiLHJvd0NzczoibXktcm93IG10MTUgcHQxNSBtYi01IHhncmF5IGJ0ZCJ9LFsiIiwic3BuI2J0bi15ZXMuYnV0dG9uLiIrKGIueWVzY3NzP2IueWVzY3NzKyIuIjoiIikrIm1yNSAgIix7dHh0OmIueWVzKyIifSwic3BuI2J0bi1uby5idXR0b24uIisoYi5ub2Nzcz9iLm5vY3NzKyIuIjoiIikrIm1yNS5oaWRlIix7dHh0OmIubm8rIiJ9LCJzcG4jYnRuLWNhbmNlbC5idXR0b24uZnIuaGlkZSIse3R4dDpiLmNhbmNlbCsiIn1dLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gYi51c2VCdXR0b25zJiYic3RyaW5nIj09dHlwZW9mIHgmJng/eC5yZXBsYWNlKC9ec3BuIyguKykkLywiYnV0IyQxLm1hcmtmb2N1cyIpOnh9KV0pfSx1aTp7IiNidG4teWVzIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHguY21kPSJ5ZXMiLGIudHJpZ2dlcigiY29tbWl0IikpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4Lnllc319fSwiI2J0bi1ubyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJih4LmNtZD0ibm8iLGIudHJpZ2dlcigiY29tbWl0IikpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4Lm5vfX19LCIjYnRuLWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJih4LmNtZD0iY2FuY2VsIixiLnRyaWdnZXIoImNhbmNlbCIpKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4heC5jYW5jZWx9fX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjIycHg7In19LEluZGV4RWQ6e2lkOiJjdy5QaG90b24uSW5kZXhFZCIsaW5oZXJpdDpbIlJUIl0scGFyYW1zOntyZXN0eWxlOjUwLHN0cmljdDohMH0sbGFuZzp7fSxyZXF1aXJlOlt7IndpbmRvdy5Db2RlTWlycm9yIjoibGliL2NvZGVtaXJyb3IuanMifV0sSFRNTDonPGRpdiBjbGFzcz0iYmctcGdyYXkgbGgxNjAgcHQyIHhncmF5IG53IG9oIGVsbCB4cGFuZWwiPjxkaXYgY2xhc3M9ImZzOTAgZnIgcHQxIHRhciI+PHNwYW4gaWQ9InZpZXctbWktbW9kZSIgY2xhc3M9Im10MCI+PC9zcGFuPjxzcGFuIGlkPSJidG4tdmlldy1taS1jbG9zZSIgY2xhc3M9InByOSBwbDggbWw2IHBzZXVkb2xpbmsgdGRuIiBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTsiIHRpdGxlPSJ7QlROX1BBTkVMX0NMT1NFfSI+4pyVPC9zcGFuPjwvZGl2PjxkaXYgaWQ9InZpZXctbWktbmFtZSIgY2xhc3M9ImJvbGRlciBwbDggb2ggbncgZWxsIj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1taS1wcm94eSIgY2xhc3M9ImJicyBwbDEgcHIxIj48dGV4dGFyZWEgaWQ9InZpZXctbWktZWQiIGNsYXNzPSJ3MTAwcCI+PC90ZXh0YXJlYT48L3NlY3Rpb24+PHNlY3Rpb24gaWQ9InZpZXctZWQtYnV0dG9ucyIgY2xhc3M9Im53IHA4IiBzdHlsZT0iIj48ZGl2IGNsYXNzPSJmciI+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWktcmV2ZXJ0IiBjbGFzcz0ib3JhbmdlIGhpZGUiIHRpdGxlPSJ7VElQX1JFVkVSVH0iPjxzcGFuIGNsYXNzPSJmaS1yZWZyZXNoIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1JFVkVSVH3CoDwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pLWRlbCIgY2xhc3M9InJlZCBoaWRlIG1sMiIgdGl0bGU9IntUSVBfREVMfSI+PHNwYW4gY2xhc3M9ImZpLXRyYXNoIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX0RFTH08L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tdmlldy1taS1ydW4iIGNsYXNzPSJtcjIgZ3JlZW4iIGRpc2FibGVkIHRpdGxlPSJ7VElQX1JVTn0iPjxzcGFuIGNsYXNzPSJmaS1wbGF5IGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1JVTn08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1taS1zYXZlYXMiIGNsYXNzPSJtcjIiIHRpdGxlPSJ7VElQX1NBVkVBU30iPjxzcGFuIGNsYXNzPSJmaS1zYXZlIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1NBVkVBU308L2J1dHRvbj48L3NlY3Rpb24+Jyxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSl9LGRhdGE6e2Rkb2M6IiIsbmFtZToiIix0eXBlOiJpbmRleCIsbW9kZTpbImphdmFzY3JpcHQiXSx0ZXh0OiIiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjAscmV2OiIifSx1aTp7IiN2aWV3LW1pLWVkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLm1vZGUrIiI7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx7bW9kZTpiLGxpbmVOdW1iZXJzOiExLHZpZXdwb3J0TWFyZ2luOjEwMCxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiJqc29uIj09YixleHRyYUtleXM6eyJDdHJsLVIiOmZ1bmN0aW9uKCl7YS5TYXZlSW5kZXgoKX0sIkNtZC1SIjpmdW5jdGlvbigpe2EuU2F2ZUluZGV4KCl9fX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9eC5tb2RlKyIiO3JldHVybiBudWxsIT1hJiYianNvbiIhPWImJih4LnRleHQ9YSksImpzb24iPT1iP0pTT04uc3RyaW5naWZ5KHguanNvbixudWxsLCJcdCIpOngudGV4dH19LCIjdmlldy1taS1wcm94eSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1PYmplY3QuaXNPYmplY3QsZD1PYmplY3QuaXNBcnJheSxlPXgudGV4dCxmPW51bGw7eC5lcnJvcnM9W10sbnVsbCE9KGY9Yi5SVCgianNldmFsIikoIigiK2UrIikiKSkmJmMoZik/YyhmLmluZGV4KSYmZChmLmluZGV4LmZpZWxkcyk/Zi50eXBlJiYianNvbiIhPT1mLnR5cGUmJnguZXJyb3JzLnB1c2goYi5sYW5nLkVSUl9OT19UWVBFKTp4LmVycm9ycy5wdXNoKGIubGFuZy5FUlJfTk9fSU5ERVgpOnguZXJyb3JzLnB1c2goYi5sYW5nLkVSUl9OT19KU09OKSx4Lmpzb249eC5lcnJvcnMubGVuZ3RoP3t9OmZ9LHdhdGNoOlsiI3ZpZXctbWktZWQiXSxjc3M6e3JlZDpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB9fX0sIiN2aWV3LW1pLW1vZGUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX01PREUpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsPT1hKXJldHVybiB4Lm1vZGU7eC5tb2RlPWE7dmFyIGM9Yi5teS5maW5kKCIjdmlldy1taS1lZCIpLm5leHQoKVswXS5Db2RlTWlycm9yO3JldHVybiBjLnNldE9wdGlvbigibW9kZSIsYSsiIiksYy5zZXRPcHRpb24oInJlYWRPbmx5IiwianNvbiI9PWErIiIpLGIubXkucmVjYWxjKCIjdmlldy1taS1lZCIpLGF9fSwiI3ZpZXctbWktbmFtZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5SVCgiZGF0YSIpO3JldHVybiB4LmVycm9ycy5sZW5ndGg/eC5lcnJvcnNbMF0uZXNjYXBlSFRNTCgpOnguZGRvYy5zcGxpdCgiLyIpWzFdP2IubGFuZy5UWFRfVElUTEUuYXNzaWduKHgubmFtZS5lc2NhcGVIVE1MKCksJzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0vezJ9Ij5fZC97M308L2E+Jy5hc3NpZ24oYy5wYXRoWzBdLHguZGRvYyx4LmRkb2MuZnJvbSg4KS5lc2NhcGVIVE1MKCkpKToiRGVmYXVsdCBNYW5nbyBpbmRleCJ9LGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH0sYm9sZGVyOmZ1bmN0aW9uKHgpe3JldHVybiAwPT14LmVycm9ycy5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LW1pLXByb3h5Il19LCIjYnRuLXZpZXctbWktY2xvc2UiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcy5SVDtiKCJkYXRhIikuZWRpdG9yPSExLGIoInN0YXNoVmlld1N0YXRlIikoKSxiKCJteSIpLmNoZWNrKCIjYnRuLXZpZXdjb2RlIiksYigibXkiKS5yZXN0eWxlLmRlbGF5KDUwKX19fSwiI2J0bi12aWV3LW1pLXJ1biI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Il9pZHgvIit4LmRkb2MuZnJvbSg4KSsi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHtzb3VyY2U6Yi5SVCgiRGVmYXVsdE1hbmdvSWR4IikudGV4dH0sZT1iLmxhbmcsZj0nPHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoCcsZz14LnRleHQhPShkLnNvdXJjZXx8IiIpO3JldHVybiBudWxsIT1hJiZnJiYiX2Rlc2lnbi8iIT14LmRkb2MmJmIuU2F2ZUluZGV4KCksZitlLkJUTl9SVU59LGRlbGF5OjUwLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoIl9kZXNpZ24vIj09eC5kZG9jfHx4LmVycm9ycy5sZW5ndGh8fHguanNvbi5kZG9jJiZ4Lmpzb24uZGRvYyE9eC5kZG9jLmZyb20oOCl8fHguanNvbi5uYW1lJiZ4Lmpzb24ubmFtZSE9eC5uYW1lKXJldHVybiEwO3ZhciBhPXRoaXMsYj0iX2lkeC8iK3guZGRvYy5mcm9tKDgpKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e3NvdXJjZTphLlJUKCJEZWZhdWx0TWFuZ29JZHgiKS50ZXh0fTtyZXR1cm4geC50ZXh0PT0oYy5zb3VyY2V8fCIiKX19LHdhdGNoOlsiI3ZpZXctbWktcHJveHkiXX0sIiNidG4tdmlldy1taS1yZXZlcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPSJfaWR4LyIreC5kZG9jLmZyb20oOCkrIu+/vSIreC5uYW1lLGQ9Yi5SVChbIlZpIixjLCJ2aWV3Il0pfHx7c291cmNlOmIuUlQoIkRlZmF1bHRNYW5nb0lkeCIpLnRleHR9O251bGwhPWEmJih4LnRleHQ9ZC5zb3VyY2UpfSxkZWxheTo1MCxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0iX2lkeC8iK3guZGRvYy5mcm9tKDgpKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e3NvdXJjZTphLlJUKCJEZWZhdWx0TWFuZ29JZHgiKS50ZXh0fTtyZXR1cm4geC50ZXh0PT1jLnNvdXJjZX19LHJlY2FsYzpbIiN2aWV3LW1pLWVkIl0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdfSwiI2J0bi12aWV3LW1pLWRlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9Yi5sYW5nOyQubXkubW9kYWwoe2RhdGE6e3llczpjLkJUTl9ERUxfWUVTLHllc2NzczoicmVkIixubzpjLkJUTl9ERUxfTk8sY2FuY2VsOiIiLHRleHQ6Yy5NU0dfREVMX1RFWFQuYXNzaWduKHgubmFtZS5lc2NhcGVIVE1MKCkseC5kZG9jLmZyb20oOCkuZXNjYXBlSFRNTCgpKX0sbWFuaWZlc3Q6Yi5QaG8oIkNvbmZpcm0iKSxlc2M6ITAsZ2xvYmFsOiEwLHNjcmVlbjohMH0pLnRoZW4oZnVuY3Rpb24oeCl7InllcyI9PXguY21kJiZiLkRlbEluZGV4KCl9KX19LGRlbGF5OjIwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7aWYoIXguZGRvYy5mcm9tKDgpKXJldHVybiEwfX0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdfSwiI2J0bi12aWV3LW1pLXNhdmVhcyI6e2Nzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hIXguZXJyb3JzLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctbWktcHJveHkiXSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO2lmKG51bGwhPWEpcmV0dXJuIGIuZGF0YSgibW9kYWwiKT8oYi5tb2RhbCghMCksdm9pZCAwKTooJC5teS5tb2RhbCh7ZGF0YTokLmV4dGVuZCghMCx7fSxjLlJUKFsiZGF0YSIsIm1hbmdvIl0pKSxtYW5pZmVzdDp7ZGF0YTokLmV4dGVuZCghMCx7X3ZhbGlkOiEwLGRkb2M6IiJ9LCJfZGVzaWduLyIhPXguZGRvYz94Ok9iamVjdC5yZWplY3QoeCxbImRkb2MiLCJuYW1lIl0pLE9iamVjdC5zZWxlY3QoeC5qc29uLFsiZGRvYyIsIm5hbWUiXSkpLE5hbWU6IiIsaW5pdDpmdW5jdGlvbih4KXt0aGlzLmRhdGE7eC5odG1sKCQubXkuZm9ybWdlbihbe3JvdzoiMTAwJSIsbGFiZWw6IjkwcHgiLGxhYmVsQ3NzOiJteS1sYWJlbCBmczkwIG84MCIscm93Q3NzOiJteS1yb3cgcHQ4In0sJzxkaXYgY2xhc3M9Im1iOCI+JywnPGRpdiBpZD0iZnRpdGxlIiBjbGFzcz0ieGdyYXkgbWItOCI+e1RYVF9ORVd9PC9kaXY+JyxbIntMQkxfRERPQ30iLCJpbnAjbWRkb2MudzEwMHAiLHtwbGM6IntQTENfRERPQ30ifSwibXNnIl0sWyJ7TEJMX05FV30iLCJpbnAjbXZpZXcudzEwMHAiLHtwbGM6IntQTENfTkVXfSJ9LCJtc2ciXSwnPGRpdiBpZD0iZndhcm4iIGNsYXNzPSJ4Z3JheSBwdDEyIGhpZGUiPjwvZGl2PicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9Im10MTYgcHQ3IGJ0ZCBmczk1Ij4nLFsiIiwiYnRuI2J0bi1uZXctb2suZ3JlZW4ubXIyIix7dmFsOiJ7QlROX05FV19PS30ifSwiYnRuI2J0bi1uZXctY2FuY2VsIix7dmFsOiJ7QlROX05FV19DQU5DRUx9In1dLCI8L2Rpdj4iXSkuYXNzaWduKGMubGFuZykpfSx1aTp7IiNtZGRvYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4LmRkb2M7eC5kZG9jPWF9fSwiI212aWV3Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHgubmFtZTt4Lm5hbWU9YX0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYT9hLmluZGV4T2YoIi8iKT4tMT9jLmxhbmcuRVJSX05FV19TTEFTSDp2b2lkIDA6Yy5sYW5nLkVSUl9ORVdfUkVRfX0sIiNmd2FybiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0iX2Rlc2lnbi8iK3guZGRvYy5yZXBsYWNlKC9eX2Rlc2lnblwvLywiIik7cmV0dXJuIGMuUlQoWyJEZG9jcyIsYl0pP2MuUlQoWyJEZG9jcyIsYiwidmlld3MiLHgubmFtZV0pP2MubGFuZy5FWFBfRVhJU1Q6Yy5sYW5nLkVYUF9OVklFVzpjLmxhbmcuRVhQX05ERE9DfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7aGlkZTpmdW5jdGlvbih4KXtpZih4Ll92YWxpZD10aGlzLm15LnZhbGlkKCksIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1vayI6e2RlbGF5OjMwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNvbW1pdCgpfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1jYW5jZWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19fSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIycHg7In19LGNzczoicDE1IixnbG9iYWw6ITAsc2NyZWVuOiEwLHdpZHRoOjQwMCxlc2M6ITAsZm9jdXM6IiNtdmlldyIsZW50ZXI6ITAsYm91bmQ6MH0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWEuX3ZhbGlkKXJldHVybiBjdy5saWIubm90ZShjLmxhbmcuRVJSX05PX05BTUUsImVycm9yIiksdm9pZCAwO3ZhciBiPXguanNvbjthLmRkb2MmJihiLmRkb2M9YS5kZG9jLnJlcGxhY2UoL15fZGVzaWduXC8vLCIiKSksYi5kZG9jfHwoYi5kZG9jPSJpbmRleF8iK051bWJlci5yYW5kb20oNDY2NTYsMTY3OTYxNSkudG9TdHJpbmcoMzYpKSxhLm5hbWUmJihiLm5hbWU9YS5uYW1lKSxjLlNhdmVJbmRleChiKX0pLHZvaWQgMCl9LGV2ZW50czoiY2xpY2subXkifX0sc3R5bGU6eyIgLkNvZGVNaXJyb3IiOiJmb250LXNpemU6ODAlIWltcG9ydGFudDtwYWRkaW5nOjBweDttaW4taGVpZ2h0OjMwMHB4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjMwMHB4OyIsIiAjdmlldy1taS1wcm94eSI6ZnVuY3Rpb24oeCl7cmV0dXJuIm1heC1oZWlnaHQ6IisoeC5wYXJlbnQoKS5oZWlnaHQoKS00OC0zMikrInB4OyJ9LCIgI3ZpZXctbWktcHJveHkucmVkIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgI2J0bi12aWV3LW1pLWRlbCI6ImRpc3BsYXk6bm9uZTsiLCIgI2J0bi12aWV3LW1pLXJldmVydC5oaWRlICsgI2J0bi12aWV3LW1pLWRlbCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiN2aWV3LW1pLXByb3h5IikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxTYXZlSW5kZXg6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9KGF8fGMubmFtZSxiLlJUKFsiZGF0YSIsInBhdGgiXSkpO2IuUlQoWyJkYXRhIiwidGFiaWQiXSk7aWYoYy5lcnJvcnMubGVuZ3RoKXJldHVybiBjdy5saWIubm90ZShiLmxhbmcuRVJSX0VSUkRPQy5hc3NpZ24oYy5lcnJvcnNbMF0pLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYy5lcnJvcnNbMF0pO3ZhciBlPSQuZXh0ZW5kKCEwLHt9LHh8fGMuanNvbik7cmV0dXJuIGUuZGRvY3x8KGUuZGRvYz1jLmRkb2MuZnJvbSg4KSksZS5uYW1lfHwoZS5uYW1lPWMubmFtZSksZS5kZG9jPyhiLlJUKCJCdXN5IikoITApLGIuUmVxKHt1cmw6W2RbMF0sIl9pbmRleCJdLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoZSksZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShiLmxhbmcuTVNHX1NBVkVELmFzc2lnbihlLmRkb2MrIi4iK2UubmFtZSksIm9rIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpkWzBdLGNtZDoid3JpdGUiLGRvY3M6W2MuZGRvY119KSxjLmRkb2MuZnJvbSg4KT09ZS5kZG9jJiZjLm5hbWU9PWUubmFtZT8oYi5teS5jaGVjaygiI2J0bi12aWV3LW1pLXJldmVydCIpLGIubXkuY2hlY2soIiNidG4tdmlldy1taS1ydW4iKSk6KGIuUlQoImRhdGEiKS52aWV3PSJfaWR4LyIrZS5kZG9jKyLvv70iK2UubmFtZSxiLlJUKCJteSIpLnRyaWdnZXIoIiNidG4tcmVsb2FkIiwiY2xpY2subXkiKSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y3cubGliLm5vdGUoYi5sYW5nLk1TR19GQUlMLmFzc2lnbihlLmRkb2MrIi4iK2UubmFtZSx4LGEpLCJlcnJvciIpfSkuYWx3YXlzKGIuUlQoIkJ1c3kiKS5maWxsKCExKSkpOihjdy5saWIubm90ZShiLmxhbmcuRVJSX05PX05BTUVfUlVOLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYi5sYW5nLkVSUl9OT19OQU1FX1JVTikpfSxEZWxJbmRleDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD14fHxjLmRkb2MsZT1hfHxjLm5hbWUsZj1iLlJUKFsiZGF0YSIsInBhdGgiXSk7Yi5SVChbImRhdGEiLCJ0YWJpZCJdKTtyZXR1cm4gYi5SVCgiQnVzeSIpKCEwKSxiLlJlcSh7dXJsOltmWzBdLCJfaW5kZXgiLGQsImpzb24iLGVdLG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9PSy5hc3NpZ24oZCsiLiIrZSksIm9rIiksYi5SVCgiZGF0YSIpLnZpZXc9IiIsYi5SVCgiZGF0YSIpLmVkaXRvcj0hMSxiLlJUKCkuUm93cz1bXSxiLlJUKCJteSIpLnJlY2FsYygiI3ZpZXctbmFtZSIpLGIuUlQoIm15IikuY2hlY2soIiN2aWV3LW5hbWUiKSxmdW5jdGlvbigpeyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6ZlswXSxjbWQ6IndyaXRlIixkb2NzOltkXX0pfS5kZWJvdW5jZSgxMDApKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y3cubGliLm5vdGUoYi5sYW5nLk1TR19ERUxfRkFJTC5hc3NpZ24oZCsiLiIrZSx4LGEpLCJlcnJvciIpfSkuYWx3YXlzKGIuUlQoIkJ1c3kiKS5maWxsKCExKSl9fSxWaWV3RWQ6e2lkOiJjdy5QaG90b24uVmlld0VkIixpbmhlcml0OlsiUlQiXSxwYXJhbXM6e3Jlc3R5bGU6NTAsc3RyaWN0OiEwfSxsYW5nOnt9LHJlcXVpcmU6W3sid2luZG93LkNvZGVNaXJyb3IiOiJsaWIvY29kZW1pcnJvci5qcyJ9XSxIVE1MOic8ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE2MCBwdDIgeGdyYXkgbncgb2ggZWxsIHhwYW5lbCI+PGRpdiBjbGFzcz0iZnM5MCBmciBwdDEgdGFyIj48c3BhbiBpZD0idmlldy1tci1tb2RlIiBjbGFzcz0ibXQwIj48L3NwYW4+PHNwYW4gaWQ9ImJ0bi12aWV3LW1yLWNsb3NlIiBjbGFzcz0icHI5IHBsOCBtbDYgcHNldWRvbGluayB0ZG4iIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpOyIgdGl0bGU9IntCVE5fUEFORUxfQ0xPU0V9Ij7inJU8L3NwYW4+PC9kaXY+PGRpdiBpZD0idmlldy1tci1uYW1lIiBjbGFzcz0iYm9sZGVyIHBsOCBvaCBudyBlbGwiPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJ2aWV3LW1yLXByb3h5IiBjbGFzcz0iYmJzIHBsMSBwcjEiPjx0ZXh0YXJlYSBpZD0idmlldy1tci1lZCIgY2xhc3M9IncxMDBwIj48L3RleHRhcmVhPjwvc2VjdGlvbj48c2VjdGlvbiBpZD0idmlldy1lZC1idXR0b25zIiBjbGFzcz0ibncgcDgiIHN0eWxlPSIiPjxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tdmlldy1tci1yZXZlcnQiIGNsYXNzPSJvcmFuZ2UgaGlkZSIgdGl0bGU9IntUSVBfUkVWRVJUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUkVWRVJUfcKgPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbXItZGVsIiBjbGFzcz0icmVkIGhpZGUgbWwyIiB0aXRsZT0ie1RJUF9ERUx9Ij48c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fREVMfTwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi12aWV3LW1yLXJ1biIgY2xhc3M9Im1yMiBncmVlbiIgZGlzYWJsZWQgdGl0bGU9IntUSVBfUlVOfSI+PHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUlVOfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1yLXNhdmVhcyIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfU0FWRUFTfSI+PHNwYW4gY2xhc3M9ImZpLXNhdmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fU0FWRUFTfTwvYnV0dG9uPjwvc2VjdGlvbj4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sZGF0YTp7ZGRvYzoiIixuYW1lOiIiLHR5cGU6InZpZXciLG1vZGU6WyJtYXAiXSxtYXA6IiIscmVkdWNlOiIiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjAscmV2OiIifSx1aTp7IiN2aWV3LW1yLWVkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9Yi5tb2RlKyIiO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Impzb24iPT1jP2M6Yi5sYW5ndWFnZXx8ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiEwLHZpZXdwb3J0TWFyZ2luOjEwMCxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMSx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiJqc29uIj09YyxleHRyYUtleXM6eyJDdHJsLVIiOmZ1bmN0aW9uKCl7YS5TYXZlRGRvYygpfSwiQ21kLVIiOmZ1bmN0aW9uKCl7YS5TYXZlRGRvYygpfX19KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXgubW9kZSsiIjtyZXR1cm4gbnVsbCE9YSYmImpzb24iIT1iJiYoeFtiXT1hKSwianNvbiI9PWI/SlNPTi5zdHJpbmdpZnkoeC5qc29uLG51bGwsIlx0Iik6eFtiXX19LCIjdmlldy1tci1wcm94eSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1PYmplY3QuaXNGdW5jdGlvbixkPU9iamVjdC5pc1N0cmluZyh4Lmxhbmd1YWdlKT94Lmxhbmd1YWdlOiJqYXZhc2NyaXB0IixlPXgubWFwLGY9eC5yZWR1Y2V8fCIiLGc9bnVsbCxoPS9eKCUlW15cclxuXSpbXHJcbl0rKSpbXHJcblxzXHRdKmZ1bltcclxuXHNcdF0qXChbXHJcblxzXHRdKlx7Py8saT0vXC5bXHJcblxzXHRdKiQvLGo9WyJfc3VtIiwiX2NvdW50IiwiX21pbiIsIl9tYXgiLCJfc3RhdHMiLCJfc3Vtc3FyIl0saz14LmVycm9ycz1bXTsiamF2YXNjcmlwdCI9PWQ/KG51bGwhPShnPWIuUlQoImpzZXZhbCIpKCIoIitlKyIpIikpJiZjKGcpfHxrLnB1c2goYi5sYW5nLkVSUl9OT19NQVApLGYmJiJfIiE9ZlswXSYmKGc9bnVsbCxudWxsIT0oZz1iLlJUKCJqc2V2YWwiKSgiKCIrZisiKSIpKSYmYyhnKXx8ay5wdXNoKGIubGFuZy5FUlJfTk9fUkVEVUNFKSksIl8iPT1mWzBdJiYtMT09ai5pbmRleE9mKGYudHJpbSgpKSYmay5wdXNoKGIubGFuZy5FUlJfRl9CVUlMVElOKSk6ImVybGFuZyI9PWQmJihoLnRlc3QoZSkmJmkudGVzdChlKXx8ay5wdXNoKGIubGFuZy5FUlJfTk9fTUFQKSwiXyI9PWZbMF0mJi0xPT1qLmluZGV4T2YoZi50cmltKCkpP2sucHVzaChiLmxhbmcuRVJSX0ZfQlVJTFRJTik6IWZ8fCJfIj09ZlswXXx8aC50ZXN0KGYpJiZpLnRlc3QoZil8fGsucHVzaChiLmxhbmcuRVJSX05PX1JFRFVDRSkpLHguanNvbj17fSx4LmVycm9ycy5sZW5ndGh8fChlLnRyaW0oKSYmKHguanNvbi5tYXA9ZSksZi50cmltKCkmJih4Lmpzb24ucmVkdWNlPWYpKX0sd2F0Y2g6WyIjdmlldy1tci1lZCJdLGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH19fSwiI3ZpZXctbXItbW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfTU9ERSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIHgubW9kZTt4Lm1vZGU9YTt2YXIgYz1iLm15LmZpbmQoIiN2aWV3LW1yLWVkIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7cmV0dXJuIGMuc2V0T3B0aW9uKCJtb2RlIiwianNvbiI9PWErIiI/Impzb24iOngubGFuZ3VhZ2UpLGMuc2V0T3B0aW9uKCJyZWFkT25seSIsImpzb24iPT1hKyIiKSxiLm15LnJlY2FsYygiI3ZpZXctbXItZWQiKSxhfX0sIiN2aWV3LW1yLW5hbWUiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlJUKCJkYXRhIiksYz1hLmRhdGE7eC5vbigiY2xpY2subXkiLCJhIixmdW5jdGlvbigpe3ZhciB4PWEuUGhvKCJFZCIpLmpzb250cmVlLkxzKCksZD0idmlld3N0YXRlLiIrY3cubGliLnNkYm0oYi5wYXRoWzBdKyIvIitjLmRkb2MpLGU9KHgoZCl8fHtzdGF0ZTpbXX0pLnN0YXRlfHxbXTtlPWUuY29uY2F0KFtjdy5saWIuc2RibSgiUm9vdOKdgHZpZXdzIiksY3cubGliLnNkYm0oIlJvb3TinYB2aWV3c+KdgCIrYy5uYW1lKV0pLnVuaXF1ZSgpLHgoZCx7c3RhbXA6RGF0ZS5ub3coKSxzdGF0ZTplfSl9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlJUKCJkYXRhIik7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD94LmVycm9yc1swXS5lc2NhcGVIVE1MKCk6Yi5sYW5nLlRYVF9USVRMRVt4Lmxhbmd1YWdlXS5hc3NpZ24oJzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0vezJ9Ij5fZC97M308L2E+Jy5hc3NpZ24oYy5wYXRoWzBdLHguZGRvYyx4LmRkb2MuZnJvbSg4KS5lc2NhcGVIVE1MKCkpLHgubmFtZS5lc2NhcGVIVE1MKCkpfSxjc3M6e3JlZDpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB9LGJvbGRlcjpmdW5jdGlvbih4KXtyZXR1cm4gMD09eC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdfSwiI2J0bi12aWV3LW1yLWNsb3NlIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMuUlQ7YigiZGF0YSIpLmVkaXRvcj0hMSxiKCJzdGFzaFZpZXdTdGF0ZSIpKCksYigibXkiKS5jaGVjaygiI2J0bi12aWV3Y29kZSIpLGIoIm15IikucmVzdHlsZS5kZWxheSg1MCl9fX0sIiNidG4tdmlldy1tci1ydW4iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPXguZGRvYysi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHt9LGU9Yi5sYW5nLGY9JzxzcGFuIGNsYXNzPSJmaS1wbGF5IGZzOTUgbzYwIj48L3NwYW4+wqAnLGc9eC5tYXAhPShkLm1hcHx8IiIpfHx4LnJlZHVjZSE9KGQucmVkdWNlfHwiIik7cmV0dXJuIG51bGwhPWEmJmc/Yi5TYXZlRGRvYygpOm51bGwhPWEmJmIuUlQoIkdldFZpZXciKSghMCksZitlLkJUTl9TQVZFfSxkZWxheTo1MCxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe2lmKHguZXJyb3JzLmxlbmd0aClyZXR1cm4hMDt2YXIgYT10aGlzLGI9eC5kZG9jKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e307YS5sYW5nO3JldHVybiEoeC5tYXAhPShjLm1hcHx8IiIpfHx4LnJlZHVjZSE9KGMucmVkdWNlfHwiIikpfSwic2VsZjpncmVlbiI6ZnVuY3Rpb24oeCl7aWYoeC5lcnJvcnMubGVuZ3RoKXJldHVybiExO3ZhciBhPXRoaXMsYj14LmRkb2MrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7fTtyZXR1cm4geC5tYXAhPShjLm1hcHx8IiIpfHx4LnJlZHVjZSE9KGMucmVkdWNlfHwiIil9fSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItcmV2ZXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz14LmRkb2MrIu+/vSIreC5uYW1lLGQ9Yi5SVChbIlZpIixjLCJ2aWV3Il0pfHx7fTtudWxsIT1hJiYoeC5tYXA9ZC5tYXB8fCIiLHgucmVkdWNlPWQucmVkdWNlfHwiIil9LGRlbGF5OjUwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPXguZGRvYysi77+9Iit4Lm5hbWUsYz1hLlJUKFsiVmkiLGIsInZpZXciXSl8fHt9O3JldHVybiB4Lm1hcD09KGMubWFwfHwiIikmJngucmVkdWNlPT0oYy5yZWR1Y2V8fCIiKX19LHJlY2FsYzpbIiN2aWV3LW1yLWVkIl0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdfSwiI2J0bi12aWV3LW1yLWRlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9Yi5sYW5nOyQubXkubW9kYWwoe2RhdGE6e3llczpjLkJUTl9ERUxfWUVTLHllc2NzczoicmVkIixubzpjLkJUTl9ERUxfTk8sY2FuY2VsOiIiLHRleHQ6Yy5NU0dfREVMX1RFWFQuYXNzaWduKHgubmFtZS5lc2NhcGVIVE1MKCkseC5kZG9jLmVzY2FwZUhUTUwoKSl9LG1hbmlmZXN0OmIuUGhvKCJDb25maXJtIiksZXNjOiEwLGdsb2JhbDohMCxzY3JlZW46ITB9KS50aGVuKGZ1bmN0aW9uKHgpeyJ5ZXMiPT14LmNtZCYmYi5EZWxWaWV3KCl9KX19LGRlbGF5OjIwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7aWYoIXguZGRvYy5mcm9tKDgpKXJldHVybiEwfX0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdfSwiI2J0bi12aWV3LW1yLXNhdmVhcyI6e2Nzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hIXguZXJyb3JzLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctbXItcHJveHkiXSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9eDtpZihudWxsIT1hKXJldHVybiBiLmRhdGEoIm1vZGFsIik/KGIubW9kYWwoITApLHZvaWQgMCk6KCQubXkubW9kYWwoe2RhdGE6JC5leHRlbmQoITAse30sYy5SVChbImRhdGEiLCJtYW5nbyJdKSksbWFuaWZlc3Q6e2RhdGE6JC5leHRlbmQoITAse192YWxpZDohMH0seCksTmFtZToiIixpbml0OmZ1bmN0aW9uKHgpe3RoaXMuZGF0YTt4Lmh0bWwoJC5teS5mb3JtZ2VuKFt7cm93OiIxMDAlIixsYWJlbDoiOTBweCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAgbzgwIixyb3dDc3M6Im15LXJvdyBwdDgifSwnPGRpdiBjbGFzcz0ibWI4Ij4nLCc8ZGl2IGlkPSJmdGl0bGUiIGNsYXNzPSJ4Z3JheSBtYi04Ij57VFhUX05FV308L2Rpdj4nLFsie0xCTF9ERE9DfSIsImlucCNtZGRvYy53MTAwcCIse3BsYzoie1BMQ19ERE9DfSJ9LCJtc2ciXSxbIntMQkxfTkVXfSIsImlucCNtdmlldy53MTAwcCIse3BsYzoie1BMQ19ORVd9In0sIm1zZyJdLCc8ZGl2IGlkPSJmd2FybiIgY2xhc3M9InhncmF5IHB0MTIgaGlkZSI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxNiBwdDcgYnRkIGZzOTUiPicsWyIiLCJidG4jYnRuLW5ldy1vay5ncmVlbi5tcjIiLHt2YWw6IntCVE5fTkVXX09LfSJ9LCJidG4jYnRuLW5ldy1jYW5jZWwiLHt2YWw6IntCVE5fTkVXX0NBTkNFTH0ifV0sIjwvZGl2PiJdKS5hc3NpZ24oYy5sYW5nKSl9LHVpOnsiI21kZG9jIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHguZGRvYzt4LmRkb2M9YX19LCIjbXZpZXciOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5uYW1lO3gubmFtZT1hfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhP2EuaW5kZXhPZigiLyIpPi0xP2MubGFuZy5FUlJfTkVXX1NMQVNIOnZvaWQgMDpjLmxhbmcuRVJSX05FV19SRVF9fSwiI2Z3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSJfZGVzaWduLyIhPXguZGRvYy50byg4KT8iX2Rlc2lnbi8iK3guZGRvYzp4LmRkb2M7cmV0dXJuIGMuUlQoWyJEZG9jcyIsYl0pP2MuUlQoWyJEZG9jcyIsYiwidmlld3MiLHgubmFtZV0pP2MubGFuZy5FWFBfRVhJU1Q6Yy5sYW5nLkVYUF9OVklFVzpjLmxhbmcuRVhQX05ERE9DfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7aGlkZTpmdW5jdGlvbih4KXtpZih4Ll92YWxpZD10aGlzLm15LnZhbGlkKCksIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1vayI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNvbW1pdCgpfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1jYW5jZWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19fSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIycHg7In19LGNzczoicDE1IixnbG9iYWw6ITAsc2NyZWVuOiEwLHdpZHRoOjQwMCxlc2M6ITAsZm9jdXM6IiNtdmlldyIsZW50ZXI6ITAsYm91bmQ6MH0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWEuX3ZhbGlkKXJldHVybiBjdy5saWIubm90ZShjLmxhbmcuRVJSX05PX05BTUUsImVycm9yIiksdm9pZCAwO2EuZGRvYz0iX2Rlc2lnbi8iIT1hLmRkb2MudG8oOCk/Il9kZXNpZ24vIithLmRkb2M6YS5kZG9jO3ZhciBiPWMuUlQoWyJEZG9jcyIsYS5kZG9jXSk7Ynx8KGI9e19pZDphLmRkb2MsbGFuZ3VhZ2U6eC5sYW5ndWFnZSx2aWV3czp7fX0pLGMuU2F2ZURkb2MoYixhLm5hbWUpLnRoZW4oZnVuY3Rpb24oKXt2YXIgeDtjLlJUKCJkYXRhIikudmlldz1hLmRkb2MrIu+/vSIrYS5uYW1lLGQuZGRvYz09YS5kZG9jJiZkLm5hbWU9PWEubmFtZXx8KHg9Yy5SVChbIlZpIixkLmRkb2MrIu+/vSIrZC5uYW1lLCJ2aWV3Il0pfHx7fSxkLm1hcD14Lm1hcHx8IiIsZC5yZWR1Y2U9eC5yZWR1Y2V8fCIiKSxjLlJUKCJteSIpLnRyaWdnZXIoIiNidG4tcmVsb2FkIiwiY2xpY2subXkiKX0pfSksdm9pZCAwKX0sZXZlbnRzOiJjbGljay5teSJ9fSxzdHlsZTp7IiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZTo4MCUhaW1wb3J0YW50O3BhZGRpbmc6MHB4O21pbi1oZWlnaHQ6MzAwcHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MzAwcHg7IiwiICN2aWV3LW1yLXByb3h5IjpmdW5jdGlvbih4KXtyZXR1cm4ibWF4LWhlaWdodDoiKyh4LnBhcmVudCgpLmhlaWdodCgpLTQ4LTMxKSsicHg7In0sIiAjdmlldy1tci1wcm94eS5yZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAjYnRuLXZpZXctbXItZGVsIjoiZGlzcGxheTpub25lOyIsIiAjYnRuLXZpZXctbXItcmV2ZXJ0LmhpZGUgKyAjYnRuLXZpZXctbXItZGVsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7In0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI3ZpZXctbXItcHJveHkiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LFNhdmVEZG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPWF8fGMubmFtZSxlPWIuUlQoWyJkYXRhIiwicGF0aCJdKTtiLlJUKFsiZGF0YSIsInRhYmlkIl0pO2lmKGMuZXJyb3JzLmxlbmd0aClyZXR1cm4gY3cubGliLm5vdGUoYi5sYW5nLkVSUl9FUlJET0MuYXNzaWduKGMuZXJyb3JzWzBdKSwiZXJyb3IiKSwkLkRlZmVycmVkKCkucmVqZWN0KGMuZXJyb3JzWzBdKTtiLlJUKCJCdXN5IikoITApO3ZhciBmPSQuZXh0ZW5kKCEwLHt9LHh8fGIuUlQoWyJEZG9jcyIsYy5kZG9jXSkpO3JldHVybiBjLm1hcC50cmltKCk/Y3cubGliLnVubWFzayhmLFtjLm1hcF0sW1sidmlld3MiLGQsIm1hcCJdXSk6Y3cubGliLmdldHJlZihmLFsidmlld3MiLGQsIm1hcCJdKSYmKGYudmlld3NbZF0ubWFwPXZvaWQgMCksYy5yZWR1Y2UudHJpbSgpP2N3LmxpYi51bm1hc2soZixbYy5yZWR1Y2VdLFtbInZpZXdzIixkLCJyZWR1Y2UiXV0pOmN3LmxpYi5nZXRyZWYoZixbInZpZXdzIixkLCJyZWR1Y2UiXSkmJihmLnZpZXdzW2RdLnJlZHVjZT12b2lkIDApLGIuUmVxKHt1cmw6W2VbMF0sZi5faWRdLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShmKSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2MucmV2PXgucmV2LGN3LmxpYi5ub3RlKGIubGFuZy5NU0dfU0FWRUQuYXNzaWduKGYuX2lkKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmVbMF0sY21kOiJ3cml0ZSIsZG9jczpbZi5faWRdfSksYi5teS5jaGVjaygiI2J0bi12aWV3LW1yLXJldmVydCIpLGIubXkuY2hlY2soIiNidG4tdmlldy1tci1ydW4iKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0ZBSUwuYXNzaWduKGYuX2lkLHgsYSksImVycm9yIil9KS5hbHdheXMoZnVuY3Rpb24oKXtiLlJUKCJCdXN5IikoITEpfSl9LERlbFZpZXc6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9YXx8Yy5uYW1lLGU9Yi5SVChbImRhdGEiLCJwYXRoIl0pO2IuUlQoWyJkYXRhIiwidGFiaWQiXSk7aWYoYy5lcnJvcnMubGVuZ3RoKXJldHVybiBjdy5saWIubm90ZShiLmxhbmcuRVJSX0VSUkRPQy5hc3NpZ24oYy5lcnJvcnNbMF0pLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYy5lcnJvcnNbMF0pO3ZhciBmPSQuZXh0ZW5kKCEwLHt9LHh8fGIuUlQoWyJEZG9jcyIsYy5kZG9jXSkpO3JldHVybiBjdy5saWIuZ2V0cmVmKGYsWyJ2aWV3cyIsZF0pJiZkZWxldGUgZi52aWV3c1tkXSxiLlJlcSh7dXJsOltlWzBdLGYuX2lkXSxtZXRob2Q6IlBVVCIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoZiksZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtjLnJldj14LnJldixjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9PSy5hc3NpZ24oZi5faWQrIi4iK2QpLCJvayIpLGIuUlQoImRhdGEiKS52aWV3PSIiLGIuUlQoImRhdGEiKS5lZGl0b3I9ITEsYi5SVCgpLlJvd3M9W10sYi5SVCgibXkiKS5yZWNhbGMoIiN2aWV3LW5hbWUiKSxiLlJUKCJteSIpLmNoZWNrKCIjdmlldy1uYW1lIiksZnVuY3Rpb24oKXskLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmVbMF0sY21kOiJ3cml0ZSIsZG9jczpbZi5faWRdfSl9LmRlYm91bmNlKDEwMCkoKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9GQUlMLmFzc2lnbihmLl9pZCsiLiIrZCx4LGEpLCJlcnJvciIpfSkuYWx3YXlzKGIuUlQoIkJ1c3kiKS5maWxsKCExKSl9fSxNYW5nb0VkOntpZDoiY3cuUGhvdG9uLk1hbmdvRWQiLGluaGVyaXQ6WyJSVCJdLHBhcmFtczp7cmVzdHlsZTo1MCxzdHJpY3Q6ITB9LGxhbmc6e30scmVxdWlyZTpbeyJ3aW5kb3cuQ29kZU1pcnJvciI6ImxpYi9jb2RlbWlycm9yLmpzIn1dLEhUTUw6JzxkaXYgY2xhc3M9ImJnLXBncmF5IGxoMTYwIHB0MiB4Z3JheSBudyBvaCBlbGwgeHBhbmVsIj48ZGl2IGNsYXNzPSJmczkwIHRhciBmciBwdDEiPjxzcGFuIGlkPSJ2aWV3LW1hbmdvLW1vZGUiIGNsYXNzPSJtdDAiPjwvc3Bhbj48c3BhbiBpZD0iYnRuLXZpZXctbWFuZ28tY2xvc2UiIGNsYXNzPSJwcjkgcGw4IG1sNiBwc2V1ZG9saW5rIHRkbiIgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7IiB0aXRsZT0ie0JUTl9QQU5FTF9DTE9TRX0iPuKclTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWV3LW1hbmdvLW5hbWUiIGNsYXNzPSJib2xkZXIgcGw4IG9oIG53IGVsbCI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctbWFuZ28tcHJveHkiIGNsYXNzPSJiYnMgcGwxIHByMSI+PHRleHRhcmVhIGlkPSJ2aWV3LW1hbmdvLWVkIiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+PC9zZWN0aW9uPjxzZWN0aW9uIGlkPSJ2aWV3LW1hbmdvLWJ1dHRvbnMiIGNsYXNzPSJudyBwOCIgc3R5bGU9IiI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLXJldmVydCIgY2xhc3M9ImhpZGUiIHRpdGxlPSJ7VElQX1JFU0VUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUkVTRVR9wqA8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1kZWwiIGNsYXNzPSJoaWRlIHJlZCIgdGl0bGU9IntUSVBfREVMfSI+PHNwYW4gY2xhc3M9ImZpLXRyYXNoIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX0RFTH08L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1ydW4iIGNsYXNzPSJtcjIgZ3JlZW4iIHRpdGxlPSJ7VElQX1JVTn0iPjxzcGFuIGNsYXNzPSJmaS1wbGF5IGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1JVTn08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1zdGFzaCIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfU0FWRX0iPjxzcGFuIGNsYXNzPSJmaS1zYXZlIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1NBVkV9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWFuZ28tZXhwbGFpbiIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfRVhQTH0iPjxzcGFuIGNsYXNzPSJmaS1tZWdhcGhvbmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fRVhQTH08L2J1dHRvbj48L3NlY3Rpb24+Jyxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSksYS5UZXh0PWEuZGF0YS50ZXh0LGEuVmFsaWRhdGU9YS5WYWxpZGF0ZSgpLGEuTWFuZ29LZXlzPWN3LmxpYi5hMm8oYS5NYW5nb0tleXMuc3BsaXQoIiAiKSl9LGRhdGE6e25hbWU6IlVudGl0bGVkIHF1ZXJ5Iix0eXBlOiJtYW5nbyIsdGV4dDoiKHtcblx0Ly8gV3JpdGUgeW91ciBtYW5nbyBxdWVyeSwgSlMgc3ludGF4IGFsbG93ZWRcbn0pIixqc29uOnt9LGVycm9yczpbXSxzdGFtcDowfSxNb2RlOlsiamF2YXNjcmlwdCJdLFRleHQ6IiIsdWk6eyIjdmlldy1tYW5nby1lZCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuTW9kZSsiIjtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmIsbGluZU51bWJlcnM6ITEsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Impzb24iPT1iLGV4dHJhS2V5czp7IkN0cmwtUiI6ZnVuY3Rpb24oKXthLlJUKCJHZXRWaWV3IikoITApfSwiQ21kLVIiOmZ1bmN0aW9uKCl7YS5SVCgiR2V0VmlldyIpKCEwKX19fSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLk1vZGUrIiI7cmV0dXJuIG51bGwhPWEmJiJqc29uIiE9YiYmKHgudGV4dD1hKSwianNvbiI9PWI/SlNPTi5zdHJpbmdpZnkoeC5qc29uLG51bGwsIlx0Iik6eC50ZXh0fX0sIiN2aWV3LW1hbmdvLXByb3h5Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGRlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5WYWxpZGF0ZSh4LnRleHQpO09iamVjdC5pc09iamVjdChiKT94LmVycm9ycz1bXTp4LmVycm9ycz1iLHguanNvbj14LmVycm9ycy5sZW5ndGg/e306Yn0sd2F0Y2g6WyIjdmlldy1tYW5nby1lZCJdLGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH19fSwiI2J0bi12aWV3LW1hbmdvLXJ1biI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpe3ZhciBjPWIuUlQsZD1jKCJkYXRhIikuZ3JpZCxlPWMoImRhdGEiKS5jb2x1bW5zLGY9ZS5zbGljZSgwKSxnPShjKCJqc2V2YWwiKSgiKCIreC50ZXh0KyIpIil8fHtmaWVsZHM6W119KS5maWVsZHN8fFtdLGg9KGMoImpzZXZhbCIpKCIoIitiLlRleHQrIikiKXx8e2ZpZWxkczpbXX0pLmZpZWxkc3x8W10saT1nLnN1YnRyYWN0KGgpLnN1YnRyYWN0KGguc3VidHJhY3QoZikpLGo9ZisiIj09Ii52YWx1ZSImJmcubGVuZ3RoP2cudG8oOCk6Zi5jb25jYXQoaS5zdWJ0cmFjdChmKSkudG8oOCk7ZSsiIiE9aisiIiYmKGMoImRhdGEiKS5jb2x1bW5zPWouc2xpY2UoMCksZCYmYygiYnVpbGRHcmlkQ29sdW1ucyIpKCkpLGIuVGV4dD14LnRleHQsYygiR2V0VmlldyIpKCEwKS50aGVuKGZ1bmN0aW9uKCl7ZCYmKGMoIm15IikucmVjYWxjKCIjdmlldy1ncmlkLWNvbHMiKSxjKCJteSIpLmNoZWNrKCIjdmlldy1ncmlkLWNvbHMiKSl9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfHx0aGlzLlRleHQ9PXgudGV4dH19LHdhdGNoOlsiI3ZpZXctbWFuZ28tcHJveHkiXX0sIiNidG4tdmlldy1tYW5nby1leHBsYWluIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztpZihudWxsIT1hKXt2YXIgZD1jLm15LmZpbmQoIiN2aWV3LW1hbmdvLXByb3h5IiksZT1kLm91dGVySGVpZ2h0KCktMyxmPWQub3V0ZXJXaWR0aCgpLTMyO2lmKGIuZGF0YSgibW9kYWwiKSlyZXR1cm4gYi5tb2RhbCghMCksdm9pZCAwO2IubW9kYWwoe2NzczoicDE1IHB0MCIsYWxpZ246ImJvdHRvbToxNDAlIixub3NlOiJib3R0b20iLGRhdGE6e2hlaWdodDplKyJweCIsZHJhZzohMCxyZXE6e3VybDpbYy5SVCgiZGF0YSIpLnBhdGhbMF0sIl9leHBsYWluIl0sbWV0aG9kOiJwb3N0IixkYXRhOkpTT04uc3RyaW5naWZ5KHguanNvbil9fSx3aWR0aDpmLGRyYWc6IiNkcmFnZ2VyIixib3VuZDoiMCIscm9vdDoiIixtYW5pZmVzdDpjLlBobygiUmVxSlNPTiIpfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiExLHguZXJyb3JzLmxlbmd0aD4wfX0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI3ZpZXctbWFuZ28tbW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfTU9ERSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIGIuTW9kZTtiLk1vZGU9YTt2YXIgYz1iLm15LmZpbmQoIiN2aWV3LW1hbmdvLWVkIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7cmV0dXJuIGMuc2V0T3B0aW9uKCJtb2RlIixhKyIiKSxjLnNldE9wdGlvbigicmVhZE9ubHkiLCJqc29uIj09YSsiIiksYi5teS5yZWNhbGMoIiN2aWV3LW1hbmdvLWVkIiksYX19LCIjdmlldy1tYW5nby1uYW1lIjp7ZGVsYXk6MjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5SVCgiZGF0YSIpO2lmKGIuUGhvKCJMcyIpKCJNYW5nby4iK2MucGF0aFswXSxjLm1hbmdvKSwheC5lcnJvcnMubGVuZ3RoKXt2YXIgZD14Lm5hbWUrIiI7cmV0dXJuIkRlZmF1bHQgcXVlcnkiPT1kP2IubGFuZy5UWFRfVElUTEUwOmIubGFuZy5UWFRfVElUTEUuYXNzaWduKGQuZXNjYXBlSFRNTCgpKX1yZXR1cm4geC5lcnJvcnNbMF0uZXNjYXBlSFRNTCgpfSxjc3M6e3JlZDpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB9LGJvbGRlcjpmdW5jdGlvbih4KXtyZXR1cm4gMD09eC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI2J0bi12aWV3LW1hbmdvLWNsb3NlIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMuUlQ7YigiZGF0YSIpLmVkaXRvcj0hMSxiKCJzdGFzaFZpZXdTdGF0ZSIpKCksYigibXkiKS5jaGVjaygiI2J0bi12aWV3Y29kZSIpLGIoIm15IikucmVzdHlsZS5kZWxheSg1MCl9fX0sIiNidG4tdmlldy1tYW5nby1kZWwiOntjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKCl7cmV0dXJuIkRlZmF1bHQgcXVlcnkiPT10aGlzLlJUKFsiZGF0YSIsIm1hbmdvIiwiYWN0aXZlIl0pfX0sYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLlJUKFsiZGF0YSIsIm1hbmdvIl0pO2MuYWN0aXZlPSJEZWZhdWx0IHF1ZXJ5IixjLnF1ZXJ5LnJlbW92ZShmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT14Lm5hbWV9KSxiLlJUKCJkYXRhIikudmlldz0iX2ZpbmTvv71EZWZhdWx0IHF1ZXJ5IixiLlJUKCJHZXRWaWV3cyIpKCEwLCExLCEwKSxiLlJUKCJteSIpLnJlZHJhdy5kZWJvdW5jZSg1MCkoKX19fSwiI2J0bi12aWV3LW1hbmdvLXJldmVydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO251bGwhPWEmJih4LnRleHQ9Yi5SVCgiRGVmYXVsdE1hbmdvUXJ5IikudGV4dCl9LGRlbGF5OjEwMCxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiJEZWZhdWx0IHF1ZXJ5IiE9eC5uYW1lfSwiOmRpc2FibGVkIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3JldHVybiB4LnRleHQ9PWEuUlQoIkRlZmF1bHRNYW5nb1FyeSIpLnRleHR9fSxyZWNhbGM6WyIjdmlldy1tYW5nby1lZCJdLHdhdGNoOlsiI3ZpZXctbWFuZ28tcHJveHkiXX0sIiNidG4tdmlldy1tYW5nby1zdGFzaCI6e2Nzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iRGVmYXVsdCBxdWVyeSIhPXgubmFtZT90aGlzLlRleHQ9PXgudGV4dDp4LnRleHQ9PXRoaXMuUlQoIkRlZmF1bHRNYW5nb1FyeSIpLnRleHR9fSx3YXRjaDpbIiN2aWV3LW1hbmdvLXByb3h5Il0sYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPShjLlJUKFsiZGF0YSIsIm1hbmdvIiwiYWN0aXZlIl0pLCc8c3BhbiBjbGFzcz0iZmktc2F2ZSBmczk1IG82MCI+PC9zcGFuPsKgJytjLmxhbmcuQlROX1NBVkUpO3JldHVybiBudWxsPT1hP2Q6Yi5kYXRhKCJtb2RhbCIpPyhiLm1vZGFsKCEwKSxkKTooYy5teS5tb2RhbCgiI2J0bi12aWV3LW1hbmdvLXN0YXNoIix7ZGF0YTokLmV4dGVuZCghMCx7X25ldzp7fX0sYy5SVChbImRhdGEiLCJtYW5nbyJdKSksbWFuaWZlc3Q6e2RhdGE6e30sTmFtZToiIixRcnk6W10saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2EuUXJ5PU9iamVjdC5jbG9uZShiLnF1ZXJ5LCEwKSx4Lmh0bWwoJC5teS5mb3JtZ2VuKFsnPGRpdiBjbGFzcz0ibWI4Ij4nLCc8ZGl2IGlkPSJmdGl0bGUiIGNsYXNzPSJ4Z3JheSI+e1RYVF9TVEFTSH08L2Rpdj4nLFsiIiwiaW5wI210aXRsZS53MTAwcCIse3BsYzoie1BMQ19TVEFTSH0ifSwibXNnIl0sIjwvZGl2PiIsJzxkaXYgY2xhc3M9Im10MTUgcHQxNSBidGQgZnM5NSI+JyxbIiIsImJ0biNidG4tc3Rhc2gtb2suZ3JlZW4ubXIyIix7dmFsOiJ7QlROX1NUQVNIX09LfSJ9XSwiPC9kaXY+Il0pLmFzc2lnbihjLmxhbmcpKX0sdWk6eyIjbXRpdGxlIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4gYi5OYW1lO2lmKGIuTmFtZT1hLmNvbXBhY3QoKSxiLk5hbWUubGVuZ3RoPjImJmIuTmFtZS5sZW5ndGg8MzEpe3ZhciBjPU9iamVjdC5jbG9uZSh4LnF1ZXJ5LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEubmFtZT09eC5hY3RpdmV9KSwhMCk7Yy5uYW1lPWIuTmFtZSxjLnN0YW1wPURhdGUubm93KCkseC5fbmV3PWN9cmV0dXJuIGF9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGEuY29tcGFjdCgpP2EuY29tcGFjdCgpLmxlbmd0aDwzfHxhLmxlbmd0aD4zMD9jLmxhbmcuRVJSX1NUQVNIX0xFTjp0aGlzLlFyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PWF9KT9jLmxhbmcuRVJSX1NUQVNIX0VYSVNUOnZvaWQgMDpjLmxhbmcuRVJSX1NUQVNIX1JFUX19LCIjYnRuLXN0YXNoLW9rIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LHdhdGNoOlsiI210aXRsZSJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5teS52YWxpZCgpfX19fSxzdHlsZTp7fX0sY3NzOiJwMTUiLGdsb2JhbDohMCxzY3JlZW46ITAsd2lkdGg6NDAwLGVzYzohMCxlbnRlcjohMCxib3VuZDoyMH0pLnRoZW4oZnVuY3Rpb24oeCl7eC5xdWVyeS5wdXNoKHguX25ldykseC5hY3RpdmU9eC5fbmV3Lm5hbWUsJC5leHRlbmQoYy5SVCgiZGF0YSIpLm1hbmdvLE9iamVjdC5yZWplY3QoeCwiX25ldyIpKSxjLlJUKCJkYXRhIikudmlldz0iX2ZpbmTvv70iK3guYWN0aXZlLGMuUlQoIkdldFZpZXdzIikoITAsITEsITApLGMuUlQoIm15IikucmVkcmF3KCl9KSxkKX0sZXZlbnRzOiJjbGljay5teSJ9fSxzdHlsZTp7IiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZToxM3B4IWltcG9ydGFudDsgcGFkZGluZzo0cHg7IG1pbi1oZWlnaHQ6MzAwcHg7IiwiICN2aWV3LW1hbmdvLXByb3h5IjpmdW5jdGlvbih4KXtyZXR1cm4ibWF4LWhlaWdodDoiKyh4LnBhcmVudCgpLmhlaWdodCgpLTQ4LTMyKSsicHg7In0sIiAjdmlldy1tYW5nby1wcm94eS5yZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyJ9LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiN2aWV3LW1hbmdvLXByb3h5IikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxNYW5nb0tleXM6InNlbGVjdG9yIGxpbWl0IHNraXAgc29ydCBmaWVsZHMgdXNlX2luZGV4IGNvbmZsaWN0cyByIGJvb2ttYXJrIHVwZGF0ZSBzdGFibGUgc3RhbGUgZXhlY3V0aW9uX3N0YXRzIixWYWxpZGF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0oeC5kYXRhLHgubGFuZyksYj1PYmplY3QuaXNBcnJheSxjPU9iamVjdC5pc09iamVjdCxkPU9iamVjdC5pc1N0cmluZyxlPU9iamVjdC5zaXplLGY9Y3cubGliLmEybyxnPWYoWyIkYWxsIiwiJGFsbE1hdGNoIiwiJGFuZCIsIiRlbGVtTWF0Y2giLCIkZXhpc3RzIiwiJGluIiwiJGtleU1hcE1hdGNoIiwiJG1vZCIsIiRuaW4iLCIkbm9yIiwiJG5vdCIsIiRvciIsIiRyZWdleCIsIiRzaXplIiwiJHR5cGUiXSksaD1mKFsiJGluIiwiJG5pbiIsIiRtb2QiLCIkYWxsIl0pLGk9ZihbIiRlcSIsIiRuZSIsIiRndCIsIiRndGUiLCIkbHQiLCIkbHRlIl0pLGo9ZihbIm51bGwiLCJib29sZWFuIiwibnVtYmVyIiwic3RyaW5nIiwiYXJyYXkiLCJvYmplY3QiXSk7cmV0dXJuIGs7ZnVuY3Rpb24gayhkKXt2YXIgZj1bXSxnPXguUlQoImpzZXZhbCIpKCIoIitkKyIpIil8fG51bGw7aWYobnVsbCE9ZyYmYyhnKSlpZihjKGcuc2VsZWN0b3IpJiZlKGcuc2VsZWN0b3IpKWlmKGIoZy5maWVsZHMpKWlmKGcuZmllbGRzLmxlbmd0aCl0cnl7bChnLnNlbGVjdG9yLCEwKX1jYXRjaCh4KXtmLnB1c2goeC5tZXNzYWdlKyIiKX1lbHNlIGYucHVzaChhLkVSUl9FTVBUWV9GSUVMRFMpO2Vsc2UgZi5wdXNoKGEuRVJSX05PX0ZJRUxEUyk7ZWxzZSBmLnB1c2goYS5FUlJfTk9fU0VMRUNUT1IpO2Vsc2UgZi5wdXNoKGEuRVJSX05PX0pTT04pO3JldHVybiFmLmxlbmd0aCYmZShnKT4yJiZPYmplY3Qua2V5cyhnKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3guTWFuZ29LZXlzW2JdfHxmLnB1c2goYS5FUlJfTUFOR09fS0VZUy5hc3NpZ24oIi4iK2IpKX0pLGYubGVuZ3RoP2Y6Z31mdW5jdGlvbiBsKHgsZCl7aWYoYih4KSlmb3IodmFyIGU9MDtlPHgubGVuZ3RoO2UrKylrPXhbZV0sKGIoayl8fGMoaykpJiZsKGssZCk7ZWxzZXt2YXIgZj1PYmplY3Qua2V5cyh4KTtmb3IoZT0wO2U8Zi5sZW5ndGg7ZSsrKXt2YXIgaj1mW2VdLGs9eFtqXTtpZigiJCI9PWpbMF0mJiFnW2pdJiYhaFtqXSYmIWlbal0pdGhyb3cgbmV3IEVycm9yKGEuRVJSX0lOVkFMSURfT1BFUkFUT1IuYXNzaWduKGopKTtnW2pdJiZtKGosayxkKSxpW2pdfHwoaFtqXXx8KGIoayl8fGMoaykpJiZsKGssZCkpfX19ZnVuY3Rpb24gbSh4LGUsZil7dmFyIGc9IiI7aWYoWyIkaW4iLCIkbmluIiwiJG9yIiwiJGFuZCIsIiRtb2QiLCIkbm9yIiwiJGFsbCJdLmZpbmQoeCkmJihiKGUpfHwoZz1hLkVSUl9WX0FSUi5hc3NpZ24oeCkpKSxbIiRub3QiLCIkZWxlbU1hdGNoIiwiJGFsbE1hdGNoIiwiJGtleU1hcE1hdGNoIl0uZmluZCh4KSYmKGMoZSl8fChnPWEuRVJSX1ZfT0JKLmFzc2lnbih4KSkpLCFnKXtpZigiJG1vZCI9PXgmJmIoZSkpaWYoMiE9ZS5sZW5ndGgpZz1hLkVSUl9WX01PRDE7ZWxzZXt2YXIgaD1lWzBdLGk9ZVsxXTswPT09aCYmKGc9YS5FUlJfVl9NT0QwKSwibnVtYmVyIj09dHlwZW9mIGgmJnBhcnNlSW50KGgsMTApPT09aHx8KGc9YS5FUlJfVl9NT0REKSxwYXJzZUludChpLDEwKSE9aSYmKGc9YS5FUlJfVl9NT0RSKX0iJGV4aXN0cyI9PXgmJiJib29sZWFuIiE9dHlwZW9mIGUmJihnPWEuRVJSX1ZfRVhJU1QpLCIkdHlwZSI9PXgmJihkKGUpP2pbZV18fChnPWEuRVJSX1ZfVFlQRTEpOmc9YS5FUlJfVl9UWVBFMCksIiRzaXplIj09eCYmcGFyc2VJbnQoZSwxMCkhPT1lJiYoZz1hLkVSUl9WX1NJWkUpLCIkcmVnZXgiPT14JiYoZChlKXx8KGc9YS5FUlJfVl9SRUdFWCkpfWlmKGcpdGhyb3cgbmV3IEVycm9yKGcpfX19LFVzZXJEb2M6e2lkOiJjdy5QaG90b24uVXNlckRvYyIsbGFuZzp7fSxkYXRhOntfaWQ6Im9yZy5jb3VjaGRiLnVzZXI6Iix0eXBlOiJ1c2VyIixuYW1lOiIiLHBhc3N3b3JkOiIiLHJvbGVzOltdfSxSb2xlczpbXSxTZWM6e30sVXNlcnM6e30sSXM6e2E6e30sbTp7fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpLGQ9Yi5faWQuc3BsaXQoIjoiKVsxXTthLlNlYz1PYmplY3Qua2V5cyhjKS5yZWR1Y2UoZnVuY3Rpb24oeCxiKXt2YXIgZT1jW2JdLnNlY3VyaXR5LGY9KGUuYWRtaW5zfHx7fSkucm9sZXN8fFtdLGc9KGUubWVtYmVyc3x8e30pLnJvbGVzfHxbXSxoPShlLmFkbWluc3x8e30pLm5hbWVzfHxbXSxpPShlLm1lbWJlcnN8fHt9KS5uYW1lc3x8W107cmV0dXJuIGguaW5kZXhPZihkKT4tMSYmKGEuSXMuYVtiXT0hMCksaS5pbmRleE9mKGQpPi0xJiYoYS5Jcy5tW2JdPSEwKSxmLmZvckVhY2goZnVuY3Rpb24oYSl7eFthXXx8KHhbYV09e2E6e30sbTp7fX0pLHhbYV0uYVtiXT0hMH0pLGcuZm9yRWFjaChmdW5jdGlvbihhKXt4W2FdfHwoeFthXT17YTp7fSxtOnt9fSkseFthXS5tW2JdPSEwfSkseH0se30pLGEuUm9sZXM9T2JqZWN0LmtleXMoYS5TZWMpLnJlbW92ZSgvXl8vKS5zb3J0KCksYi5fcmV2JiYoYS5sYW5nLlRYVF9USVRMRT1hLmxhbmcuVFhUX1RJVExFX0VELGEubGFuZy5QTENfUD1hLmxhbmcuUExDX1BfRUQpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSksYS5QaG8oIkdldFVzZXJzIikoKS50aGVuKGZ1bmN0aW9uKHgpe2EuVXNlcnM9Y3cubGliLmEybyh4KX0pLHgudGhlbihmdW5jdGlvbigpe2EuU2VsMlNjcm9sbCh4LCEwKX0pfSxzYXZlVXNlcjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eHx8YS5kYXRhLGM9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX07cmV0dXJuIGEuUmVxKHt1cmw6WyJfdXNlcnMiLGIuX2lkXSxtZXRob2Q6IlBVVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoYil9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoYS5sYW5nLk1TR19PSy5hc3NpZ24oYyhiLm5hbWUpKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIsIl91c2VycyIpfSkuZmFpbChmdW5jdGlvbih4LGQpe2N3LmxpYi5ub3RlKGEubGFuZy5NU0dfRkFJTC5hc3NpZ24oYyhiLm5hbWUpLHgsYyhkKSksImVycm9yIil9KX0sdWk6eyIjdW5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4Lm5hbWU9YSx4Ll9pZD0ib3JnLmNvdWNoZGIudXNlcjoiK2EpLHgubmFtZX0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5oYXMoIjoiKXx8L15fLy50ZXN0KGEpP3RoaXMubGFuZy5FUlJfTjp0aGlzLlVzZXJzW2FdJiYheC5fcmV2P3RoaXMubGFuZy5FUlJfTlg6dm9pZCAwfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiEheC5fcmV2fSwic2VsZjp4Z3JheSI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4Ll9yZXZ9fX0sIiN1cGFzcyI6InBhc3N3b3JkIiwiI3Vyb2xlcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI3Vyb2xlcyIsdGhpcy5Sb2xlcywiUExDX1IiKX0sYmluZDoicm9sZXMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7aWYoYS5maW5kKC9eXy8pKXJldHVybiB0aGlzLmxhbmcuRVJSX1J9fSwiI3VhY2Nlc3MiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlNlYyxkPXt9LGU9W10sZj17fSxnPVtdLGg9W10saT0nPHNwYW4gY2xhc3M9ImZ3NTAwIj57MX0gPC9zcGFuPiB7Mn0nO3JldHVybiB4LnJvbGVzLmZvckVhY2goZnVuY3Rpb24oeCl7Y1t4XSYmKCQuZXh0ZW5kKGQsY1t4XS5hKSwkLmV4dGVuZChmLGNbeF0ubSkpfSksJC5leHRlbmQoZCxiLklzLmEpLCQuZXh0ZW5kKGYsYi5Jcy5tKSxlPU9iamVjdC5rZXlzKGQpLnNvcnQoKSxnPU9iamVjdC5rZXlzKGYpLnN1YnRyYWN0KGUpLnNvcnQoKSxlLmxlbmd0aCYmKGUubGVuZ3RoPjIwP2gucHVzaChpLmFzc2lnbigiQWRtaW4iLCJvZiAiK2UubGVuZ3RoKyIgREJzIikpOmgucHVzaChpLmFzc2lnbigiQWRtaW46IixlLm1hcCh4PT54LnRydW5jYXRlKDIwLCJtaWRkbGUiLCLigKYiKSkuam9pbigiLCAiKSkpKSxnLmxlbmd0aCYmKGcubGVuZ3RoPjIwP2gucHVzaChpLmFzc2lnbigiTWVtYmVyIiwib2YgIitnLmxlbmd0aCsiIERCcyIpKTpoLnB1c2goaS5hc3NpZ24oIk1lbWJlcjoiLGcubWFwKHg9PngudHJ1bmNhdGUoMjAsIm1pZGRsZSIsIuKApiIpKS5qb2luKCIsICIpKSkpLG51bGw9PWEmJmIubXkudHJpZ2dlcigiI3VhY2Nlc3MiLCJsYXlvdXQiKSxoLmpvaW4oIjxicj4iKX0sd2F0Y2g6IiN1cm9sZXMiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5yb2xlcy5sZW5ndGh9fX0sIiNidG4tc3RhcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztpZih4Ll9yZXYpe3ZhciBjPWN3LmxpYi5kcnkoT2JqZWN0LmNsb25lKHgsITApKTtjLnBhc3N3b3JkPyhkZWxldGUgYy5kZXJpdmVkX2tleSxkZWxldGUgYy5pdGVyYXRpb25zLGRlbGV0ZSBjLnBhc3N3b3JkX3NjaGVtZSk6ZGVsZXRlIGMucGFzc3dvcmQsYi5zYXZlVXNlcihjKS50aGVuKGZ1bmN0aW9uKCl7Yi5teS5jYW5jZWwoKX0pfWVsc2UgYi5zYXZlVXNlcigpLnRoZW4oZnVuY3Rpb24oKXtiLm15LmNhbmNlbCgpfSl9fSx3YXRjaDpbIiN1bmFtZSIsIiN1cm9sZXMiLCIjdXBhc3MiXSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMubXkudmFsaWQoKXx8IXgubmFtZXx8IXgucGFzc3dvcmQmJiF4Ll9yZXZ9fX0sIiNidG4tb3RoZXJkb2MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC5fcmV2fHwhIXgubmFtZXx8ISF4LnBhc3N3b3JkfHx4LnJvbGVzLmxlbmd0aD4wfX0sd2F0Y2g6WyIjdW5hbWUiLCIjdXBhc3MiLCIjdXJvbGVzIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKSxbIiN1YWNjZXNzIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj14LmZpbmQoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGIuZ2V0TmljZVNjcm9sbCYmYi5nZXROaWNlU2Nyb2xsKCkucmVtb3ZlKCl9KX0sUzI6ZnVuY3Rpb24oeCxhLGIpe3RoaXMuc2VsZWN0Mih0aGlzLm15LmZpbmQoeCkse3RhZ3M6YSxwbGFjZWhvbGRlcjp0aGlzLmxhbmdbYl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTIsdG9rZW5TZXBhcmF0b3JzOlsiICIsIiwiXX0pfSxIVE1MOlsnPGRpdiBpZD0iY3RpdGxlIiBjbGFzcz0iZnMxMzAgbWIyIGxoMTYwIGJvbGRlciI+e1RYVF9USVRMRX08L2Rpdj4nLHtyb3c6IjEwMCUiLGxhYmVsOiI3NXB4Iixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIixsYWJlbENzczoibXktbGFiZWwifSxbIntMQkxfTn0iLCJpbnAjdW5hbWUuZnMxMTAiLHtwbGM6IntQTENfTn0ifSwibXNnIl0sWyJ7TEJMX1B9IiwiaW5wI3VwYXNzLmZzMTEwIix7cGxjOiJ7UExDX1B9In0sIm1zZyJdLHtyb3dDc3M6Im15LXJvdyBwdDcgcGIzIixsYWJlbENzczoibXktbGFiZWwgdmF0IHB0NiJ9LFsie0xCTF9SfSIsImlucCN1cm9sZXMuZnMxMDUiLCJtc2ciXSwnPGRpdiBpZD0idWFjY2VzcyIgY2xhc3M9ImhpZGUgZWxsIHcxMDBwIGZzOTAgZ3JheSBsaDEzMCBtdDQgbWItNCBwbDc1Ij48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtdDEyIHB0MTUgYnRkIj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fU0FWRX08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCc8ZGl2IGNsYXNzPSJmciI+JywnPGEgaHJlZj0iI191c2Vycy9fbmV3IiBpZD0iYnRuLW90aGVyZG9jIiBjbGFzcz0iYnV0dG9uIHRkbiBkaWIgdmF0Ij4nLCc8c3BhbiBjbGFzcz0iIj57QlROX0RPQ308L3NwYW4+JywiPC9hPiIsIjwvZGl2PiIsIjwvZGl2PiJdLHN0eWxlOnsiIGlucHV0IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDoxNjBweDsiLCIgI3VhY2Nlc3MiOiJtYXgtaGVpZ2h0OjMwMHB4OyJ9LHBhcmFtczp7c3RyaWN0OiEwfX0sTG9naW46e2lkOiJjdy5QaG90b24uTG9naW4iLHBhcmFtczp7cmVzdHlsZTozNTAsc3RyaWN0OiEwfSxsYW5nOnt9LGRhdGE6e25hbWU6IiIscGFzc3dvcmQ6IiJ9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSx4LmZpbmQoIiN1cHdkIikub24oImtleXVwLm15IixmdW5jdGlvbihhKXt2YXIgYj1hLmtleUNvZGU7MTMhPWImJjEwIT1ifHx4LmZpbmQoIiNidG4tc2VuZCIpLnRyaWdnZXIoImNsaWNrIil9KSx4LmZpbmQoIiN1bmFtZSIpLm9uKCJrZXl1cC5teSIsZnVuY3Rpb24oYSl7dmFyIGI9YS5rZXlDb2RlOzEzIT1iJiYxMCE9Ynx8eC5maW5kKCIjdXB3ZCIpLmZvY3VzKCl9KX0sdWk6eyIjdW5hbWUiOiJuYW1lIiwiI3Vwd2QiOiJwYXNzd29yZCIsIiNidG4tc2VuZCI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuZG9Mb2dpbigpLnRoZW4oZnVuY3Rpb24oKXtiLm15LmNhbmNlbCgpfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXgubmFtZXx8IXgucGFzc3dvcmR9fSx3YXRjaDpbIiN1bmFtZSIsIiN1cHdkIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sSFRNTDonPGRpdiBjbGFzcz0iZnMxNTAgbGgxNDAgZnc1MDAgbWI4Ij57VFhUX0xPR0lOfTwvZGl2PjxpbnB1dCBjbGFzcz0idzEwMHAgZnMxMjAgbWIxNSIgaWQ9InVuYW1lIiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0ie1BMQ19VTkFNRX0iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+PGlucHV0IGNsYXNzPSJ3MTAwcCBmczEyMCBtYjE1IiBpZD0idXB3ZCIgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJ7UExDX1BXRH0iIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiPjxkaXYgY2xhc3M9InB0MTUgYnRkIj48YnV0dG9uIGlkPSJidG4tc2VuZCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fTE9HSU59PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+PC9kaXY+Jyxkb0xvZ2luOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJfY29tcGlsZWQiKSxiPSQuZXh0ZW5kKCEwLHt9LHguZGF0YSksYz14Lmxhbmc7cmV0dXJuIHgubXkucm9vdCgpLnBhcmVudCgpLmFkZENsYXNzKCJtb2RhbC1idXN5IikseC5SZXEoe3VybDpbIl9zZXNzaW9uIl0sbWV0aG9kOiJQT1NUIixkYXRhVHlwZToianNvbiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoYil9KS50aGVuKGZ1bmN0aW9uKGQpe3ZhciBlPXtuYW1lOmQubmFtZXx8Yi5uYW1lLHJvbGVzOmQucm9sZXN9LGY9JC5EZWZlcnJlZCgpO3JldHVybiBhJiYkLmV4dGVuZCghMCx3aW5kb3cuRERPQy5fbWUsZSkseC5QaG8oIkdldExpc3QiKSgpLmFsd2F5cyhmdW5jdGlvbigpeyQubXkucmFkaW8oInVzZXJDdHgiLGUpLGN3LmxpYi5ub3RlKGMuTVNHX0FVVEhfT0suYXNzaWduKChiLm5hbWV8fCIiKS5lc2NhcGVIVE1MKCkpLCJvayIpLGYucmVzb2x2ZSgpfSksZi5wcm9taXNlKCl9KS5mYWlsKGZ1bmN0aW9uKGQsZSl7YSYmJC5leHRlbmQod2luZG93LkRET0MuX21lLHtuYW1lOiIiLHJvbGVzOltdfSksJC5teS5yYWRpbygidXNlckN0eCIse25hbWU6bnVsbCxyb2xlczpbXX0pLHguUGhvKCJteSIpLmNoZWNrKCIjYnRuLWFzaWRlLWF1dGgiKSxjdy5saWIubm90ZShjLk1TR19BVVRIX0ZBSUwuYXNzaWduKChiLm5hbWV8fCIiKS5lc2NhcGVIVE1MKCksZCxlLmVzY2FwZUhUTUwoKSksImVycm9yIil9KS5hbHdheXMoZnVuY3Rpb24oKXt4Lm15LnJvb3QoKS5wYXJlbnQoKS5yZW1vdmVDbGFzcygibW9kYWwtYnVzeSIpfSl9LHN0eWxlOnsiIjoiZm9udC1zaXplOjE3cHg7IGxpbmUtaGVpZ2h0OjEuN2VtOyJ9fSxMb2dvdXQ6e2lkOiJjdy5QaG90b24uTG9nb3V0IixwYXJhbXM6e3Jlc3R5bGU6MzUwLHN0cmljdDohMH0sbGFuZzp7fSxkYXRhOnt9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sSFRNTDonPGRpdiBpZD0ibHRpdGxlIiBjbGFzcz0ibWI2IGxoMTQwIj48L2Rpdj48ZGl2IGNsYXNzPSJncmF5IHBsMSI+PGRpdiBpZD0ieHByb2ZpbGUiPjxzcGFuIGNsYXNzPSJmaS10b3JzbyI+PC9zcGFuPiA8YSBpZD0iYnRuLXByb2ZpbGUiIGhyZWY9IiIgY2xhc3M9InBzZXVkb2xpbmsgdGRuIj57VFhUX1BST0ZJTEV9PC9hPjwvZGl2PjxkaXY+PHNwYW4gY2xhc3M9ImZpLXBvd2VyIj48L3NwYW4+IDxzcGFuIGlkPSJidG4tbG9nb3V0IiBjbGFzcz0icHNldWRvbGluayB0ZG4iPntUWFRfTE9HT1VUfTwvc3Bhbj48L2Rpdj48L2Rpdj4nLHVpOnsiI2x0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0nPGRpdiBjbGFzcz0iZnMxMzAgeGdyYXkgbGgxMjAgdzEwMHAgb2ggZWxsIj57MX08L2Rpdj4nLmFzc2lnbihjdy5tZSgpLmVzY2FwZUhUTUwoKSksYz1jdy5tZSgicm9sZXMiKXx8W107cmV0dXJuIGMubGVuZ3RoJiYoYis9JzxkaXYgY2xhc3M9ImdyYXkgZnM5MCI+ezF9PC9kaXY+Jy5hc3NpZ24oYy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIjxub2JyPiIreC5lc2NhcGVIVE1MKCkrIjwvbm9icj4ifSkuam9pbigiLCAiKSkpLGJ9fSwiI2J0bi1wcm9maWxlIjp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIiwiI191c2Vycy9vcmcuY291Y2hkYi51c2VyOiIrY3cubWUoKSksbnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LCIjYnRuLWxvZ291dCI6e2RlbGF5OjMwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJih0aGlzLmRvTG9nb3V0KCksdGhpcy5teS5jYW5jZWwoKSl9fX0sZG9Mb2dvdXQ6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5sYW5nLGI9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX07Y3cubGliLm5vdGUoYS5NU0dfTE9HT1VUX1NUQVJULCIiLDFlMykseC5SZXEoe3VybDpbIl9zZXNzaW9uIl0sbWV0aG9kOiJQT1NUIixkYXRhVHlwZToianNvbiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoe25hbWU6IjAiLHBhc3N3b3JkOiIwIn0pfSkudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShhLk1TR19MT0dPVVRfRkFJTC5hc3NpZ24oOTk5LCJTZXJ2ZXIgcmV0dXJuZWQgaW52YWxpZCByZXNwb25zZSIpLCJlcnJvciIpfSkuZmFpbChmdW5jdGlvbihjLGQsZSl7NDAxIT1jJiY0MDMhPWM/KGN3LmxpYi5ub3RlKGEuTVNHX0xPR09VVF9GQUlMLmFzc2lnbihjLGIoZCkpLCJlcnJvciIpLHguUGhvKCJteSIpLmNoZWNrKCIjYnRuLWFzaWRlLWF1dGgiKSk6Y3cubGliLm5vdGUoYS5NU0dfTE9HT1VUX09LLCJvayIpfSl9fSxDb21wYWN0OntpZDoiY3cuUGhvdG9uLkNvbXBhY3QiLGxhbmc6e30sZGF0YTp7c2VsZWN0aW9uOltdLG9wczpbImRvY3MiXSxkZG9jczpbXSxkc2VsZWN0aW9uOltdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7Yi5BbGw9YS5QaG8oIkFsbCIpLGIuYWxsPU9iamVjdC5rZXlzKGIuQWxsKS5zb3J0KCkseC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSkseC50aGVuKGZ1bmN0aW9uKCl7YS5TZWwyU2Nyb2xsKHgsITApfS5kZWJvdW5jZSgxNSkpfSxDQjp7ZG9jczpmdW5jdGlvbigpe30sZGRvY3M6ZnVuY3Rpb24oKXt9LHZpZXdzOmZ1bmN0aW9uKCl7fX0sdWk6eyIjY3RpdGxlIjp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gMT09eC5zZWxlY3Rpb24ubGVuZ3RoP3RoaXMubGFuZy5UWFRfVElUTEUxOnRoaXMubGFuZy5UWFRfVElUTEV9LHdhdGNoOlsiI2RicyJdfSwiI2RicyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse2RhdGE6dGhpcy5kYXRhLmFsbC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSwhMCl9LGJpbmQ6InNlbGVjdGlvbiIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9EQlN9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZGRvY3MubGVuZ3RoPjB9fX0sIiNkYm9wcyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHt0YWdzOnRoaXMubGFuZy5UQUdfT1AudG8odGhpcy5kYXRhLmRkb2NzLmxlbmd0aD8zOjIpfSl9LGJpbmQ6Im9wcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9PUH19LCIjZGRvY3MiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHtkYXRhOnRoaXMuZGF0YS5kZG9jcy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDoiX2Rlc2lnbi8iK3h9fSksbXVsdGlwbGU6ITAscGxhY2Vob2xkZXI6dGhpcy5sYW5nLlBMQ19ERE9DUyxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOiJkc2VsZWN0aW9uIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiFhLmxlbmd0aCYmeC5vcHMuaW5kZXhPZigiZGRvY3MiKT4tMT90aGlzLmxhbmcuRVJSX0RET0NTOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4tMT09eC5vcHMuaW5kZXhPZigiZGRvY3MiKXx8MSE9eC5zZWxlY3Rpb24ubGVuZ3RofX0sd2F0Y2g6WyIjZGJvcHMiLCIjZGJzIl19LCIjYnRuLXN0YXJ0Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3RyeXt0aGlzLmRvQ29tcGFjdCgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfXRoaXMubXkuY2FuY2VsKCl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXguc2VsZWN0aW9uLmxlbmd0aHx8IXgub3BzLmxlbmd0aHx8IXRoaXMubXkudmFsaWQoKX19LHdhdGNoOlsiI2RicyIsIiNkYm9wcyIsIiNkZG9jcyJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LGRvQ29tcGFjdDpmdW5jdGlvbigpe3ZhciB4LGEsYj10aGlzLGM9JC5leHRlbmQoITAse30sYi5kYXRhKSxkPShiLlBobygiX2NvbXBpbGVkIiksYi5sYW5nKSxlPWMuc2VsZWN0aW9uLmxlbmd0aDtmdW5jdGlvbiBmKCl7KGUtPTEpPjB8fFs3MDAsMjUwMCw3NTAwLDE1ZTNdLmZvckVhY2goZnVuY3Rpb24oeCl7Zy5kZWJvdW5jZSh4KSgpfSl9ZnVuY3Rpb24gZygpeyQubXkucmFkaW8oImRibGlzdCIsYy5zZWxlY3Rpb24pfWMub3BzLmxlbmd0aCYmZSYmT2JqZWN0LmtleXMoYy5BbGwpLmludGVyc2VjdChjLnNlbGVjdGlvbikubGVuZ3RoJiZjLnNlbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBnPVtdO2Mub3BzLmZpbmQoImRvY3MiKSYmZy5wdXNoKGIuUmVxKHt1cmw6W2UsIl9jb21wYWN0Il0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiJ9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjb25zb2xlLmxvZygiRXJyb3Igc3RhcnRpbmcgZGF0YSBjb21wYWN0aW9uIG9mICIrZSx4LGEsYil9KSksYy5vcHMuZmluZCgidmlld3MiKSYmZy5wdXNoKGIuUmVxKHt1cmw6W2UsIl92aWV3X2NsZWFudXAiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2NvbnNvbGUubG9nKCJFcnJvciBzdGFydGluZyBwdXJnaW5nIG9sZCB2aWV3cyBvZiAiK2UseCxhLGIpfSkpLGMub3BzLmZpbmQoImRkb2NzIikmJih4PWMuZHNlbGVjdGlvbi5jb21wYWN0KCEwKSxhPWZ1bmN0aW9uKCl7Yi5DQi5kZG9jcyh4KX0uZGVib3VuY2UoNSkuYWZ0ZXIoeC5sZW5ndGgpLHguZm9yRWFjaChmdW5jdGlvbih4KXtnLnB1c2goYi5SZXEoe3VybDpbZSwiX2NvbXBhY3QiLHhdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkuZmFpbChmdW5jdGlvbihhLGIsYyl7Y29uc29sZS5sb2coIkVycm9yIHN0YXJ0aW5nIHZpZXcgY29tcGFjdGlvbiBvZiAiK2UrIi9fZGVzaWduLyIreCxhLGIsYyl9KS5hbHdheXMoZnVuY3Rpb24oKXthKCl9KSl9KSksUS5hbGwoZykudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShkLk1TR19DT01QQUNUX1NUQVJULmFzc2lnbihlKSksZigpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y3cubGliLm5vdGUoZC5NU0dfQ09NUEFDVF9GQUlMX1NPTUUsImVycm9yIiksZigpfSl9LmxhenkoYi5QaG8oIkNmZyIpLmJhdGNoQ29tcGFjdERlbGF5KSl9LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6JzxkaXYgaWQ9ImN0aXRsZSIgY2xhc3M9ImZzMTMwIG1iMTAgYm9sZGVyIj57VFhUX1RJVExFfTwvZGl2PjxkaXYgY2xhc3M9Im1iMTAgZnMxMDUiPjxpbnB1dCBpZD0iZGJzIiBjbGFzcz0idzEwMHAiPjwvZGl2PjxkaXYgY2xhc3M9Im1iMTAiPjxzcGFuIGlkPSJkYm9wcyI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im1iMTAgZnMxMDUgaGlkZSI+PGlucHV0IGlkPSJkZG9jcyIgY2xhc3M9IncxMDBwIj48L2Rpdj48ZGl2IGNsYXNzPSJtdDEwIHB0MTAgYnRkIj48YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJtYXJrZm9jdXMgZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiIGNsYXNzPSJtYXJrZm9jdXMiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPjwvZGl2Picsc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjIxNHB4OyJ9LHBhcmFtczp7c3RyaWN0OiEwfX0sTmV3REI6e2lkOiJjdy5QaG90b24uTmV3REIiLGxhbmc6e30sZGF0YTp7ZGJzOltdLGFsbDpbXSxhbGxvOnt9LHVzZXJzOltdLHJvbGVzOltdLGFkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfSxxOjAsbjowLHBhcnRpdGlvbmVkOiExfSxVc2VyczpbXSxTMjpmdW5jdGlvbih4LGEsYil7dGhpcy5zZWxlY3QyKHRoaXMubXkuZmluZCh4KSx7dGFnczphLHBsYWNlaG9sZGVyOnRoaXMubGFuZ1tiXSx0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEuUGhvKCJBbGwiKTtmdW5jdGlvbiBkKCl7eC5wYXJlbnQoKS5jc3MoImhlaWdodCIsImF1dG8iKX1iLmFsbD1PYmplY3Qua2V5cyhjKSxiLmFsbG89Y3cubGliLmEybyhiLmFsbCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxiLnJvbGVzPU9iamVjdC5rZXlzKE9iamVjdC5rZXlzKGMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3ZhciBiPWNbYV0uc2VjdXJpdHk7cmV0dXJuW10uYWRkKGIuYWRtaW5zLnJvbGVzKS5hZGQoYi5tZW1iZXJzLnJvbGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3hbYV09ITB9KSx4fSx7fSkpLmFkZCgiX2FkbWluIikudW5pcXVlKCkuc29ydCgpLGIucT1hLlBobygiQ291Y2giKS5xLGIubj1hLlBobygiQ291Y2giKS5uLHgucGFyZW50KCkub24oImRyYWdzdG9wIixkKSx4LnRoZW4oZnVuY3Rpb24oKXtkKCl9KSxRLmFsbChbYS5QaG8oIkdldFVzZXJzIikoKS50aGVuKGZ1bmN0aW9uKHgpe2IudXNlcnM9eH0pLHhdKS50aGVuKGZ1bmN0aW9uKCl7YS5TMigiI3VhZG0iLGEuZGF0YS51c2VycywiUExDX1VBRE0iKSxhLlMyKCIjdW1lbSIsYS5kYXRhLnVzZXJzLCJQTENfVU1FTSIpLGEuU2VsMlNjcm9sbCh4LCEwKX0pfSx1aTp7IiNjdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LmRicy5sZW5ndGg/dGhpcy5sYW5nLlRYVF9USVRMRTE6dGhpcy5sYW5nLlRYVF9USVRMRX0sd2F0Y2g6WyIjZGJzIl19LCIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7dGFnczpbXSxwbGFjZWhvbGRlcjp0aGlzLmxhbmcuUExDX0RCUyx0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImRicyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXt2YXIgYj1bXSxjPVtdLGQ9W107cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihhKXt4LmFsbG9bYV0mJmIucHVzaChhKSwvXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QoYSl8fGMucHVzaChhKSwvXlthLXpdLy50ZXN0KGEpfHxkLnB1c2goYSl9KSxiLmxlbmd0aD90aGlzLmxhbmcuRVJSX0RCX0VYSVNULmFzc2lnbihiLmpvaW4oIiwgIikuZXNjYXBlSFRNTCgpKTpjLmxlbmd0aD90aGlzLmxhbmcuRVJSX0RCX05BTUU6ZC5sZW5ndGg/dGhpcy5sYW5nLkVSUl9EQl9VTkQ6dm9pZCAwfX0sIiN1YWRtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdWFkbSIsdGhpcy5kYXRhLnVzZXJzLCJQTENfVUFETSIpfSxiaW5kOiJhZG1pbnMubmFtZXMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuaXNVbmFtZXMoYSl9fSwiI2dhZG0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiNnYWRtIix0aGlzLmRhdGEucm9sZXMsIlBMQ19HQURNIil9LGJpbmQ6ImFkbWlucy5yb2xlcyJ9LCIjdW1lbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI3VtZW0iLHRoaXMuZGF0YS51c2VycywiUExDX1VNRU0iKX0sYmluZDoibWVtYmVycy5uYW1lcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pc1VuYW1lcyhhKX19LCIjZ21lbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI2dtZW0iLHRoaXMuZGF0YS5yb2xlcywiUExDX0dNRU0iKX0sYmluZDoibWVtYmVycy5yb2xlcyJ9LCIjcXNoYXJkcyI6InEiLCIjcXNoYXJkc3R4dCI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGFuZy5UWFRfU0hBUkRTKHgucSl9LHdhdGNoOlsiI3FzaGFyZHMiXX0sIiNuY29waWVzIjoibiIsIiNuY29waWVzdHh0Ijp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sYW5nLlRYVF9DT1BJRVMoeC5uKX0sd2F0Y2g6WyIjbmNvcGllcyJdfSwnaW5wdXRbbmFtZT0icGFydGl0aW9uZWQiXSc6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucGFydGl0aW9uZWQ9YS5sZW5ndGg+MCkseC5wYXJ0aXRpb25lZD9bInBhcnRpdGlvbmVkIl06W119LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5QaG8oIkNvdWNoIikudmVyPCIwMDMuInx8eC5xPDJ9fSx3YXRjaDpbIiNxc2hhcmRzIl19LCIjY2x1c3RlcmluZyI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlBobygiQ291Y2giKS52ZXI8IjAwMi4ifX19LCIjYnRuLXN0YXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHRoaXMubGFuZ1siQlROX1NUQVJUIisoeC5tZW1iZXJzLm5hbWVzK3gubWVtYmVycy5yb2xlcz8iIjoiX1BVQkxJQyIpXTt0cnl7dGhpcy5kb0NyZWF0ZSgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfXRoaXMubXkuY2FuY2VsKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5kYnMubGVuZ3RofHwhdGhpcy5teS52YWxpZCgpfSwic2VsZjpvcmFuZ2UiOmZ1bmN0aW9uKHgpe3JldHVybiEoeC5tZW1iZXJzLm5hbWVzK3gubWVtYmVycy5yb2xlcyl9LCJzZWxmOmdyZWVuIjpmdW5jdGlvbih4KXtyZXR1cm4hISh4Lm1lbWJlcnMubmFtZXMreC5tZW1iZXJzLnJvbGVzKX19LHdhdGNoOlsiI2RicyIsIiN1bWVtIiwiI2dtZW0iXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxkb0NyZWF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlBobygiQ291Y2giKSxjPWIudmVyLGQ9e25hbWU6IiIsc2VjdXJpdHk6T2JqZWN0LnNlbGVjdChhLFsiYWRtaW5zIiwibWVtYmVycyJdKX07Yz4iMDAyLiImJitiLnE+MCYmJC5leHRlbmQoZCx7cTorYS5xLG46K2Eubn0pLGM+IjAwMy4iJiZhLnBhcnRpdGlvbmVkJiYrYS5xPjEmJihkLnBhcnRpdGlvbmVkPSEwKTt2YXIgZT1hLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGQse25hbWU6eH0pfSk7cmV0dXJuIHguUGhvKCJDcmVhdGVEQnMiKShlLCExKX0saXNVbmFtZXM6ZnVuY3Rpb24oeCl7dmFyIGE9IiIsYj10aGlzO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7Il9hZG1pbiIhPXgmJih4LmhhcygiOiIpfHwvXl8vLnRlc3QoeCkpJiYoYT1iLmxhbmcuRVJSX1VOQU1FKX0pLGF9LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6Wyc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIGNtIj4nLCc8c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gJywnPHNwYW4gaWQ9ImN0aXRsZSI+e1RYVF9USVRMRX08L3NwYW4+JywiPC9kaXY+Iix7cm93OiIxMDAlIixsYWJlbDoiNjBweCIscm93Q3NzOiJteS1yb3cgcHQzIHBiMyIsbGFiZWxDc3M6Im15LWxhYmVsIn0sWyJ7TEJMX0RCU30iLCJpbnAjZGJzLmZzMTA1LmxoMTYwIiwibXNnIl0sJzxzZWN0aW9uIGlkPSJjbHVzdGVyaW5nIj4nLFsie0xCTF9DTFVTVEVSfSIsJzxzcGFuIGNsYXNzPSJmczk1Ij4nLCJudW0jcXNoYXJkcy53NTAubXI1Iix7bWluOjEsbWF4OjMyfSwic3BhbiNxc2hhcmRzdHh0LmRpYi53NzAiLCJudW0jbmNvcGllcy53NTAubXI1Iix7bWluOjEsbWF4OjE2fSwic3BhbiNuY29waWVzdHh0LmRpYi53OTAiLCc8c3BhbiBjbGFzcz0iaGlkZSI+PGxhYmVsIGNsYXNzPSJkaWIgeGdyYXkgY3AiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icGFydGl0aW9uZWQiIGNsYXNzPSJmczExMCB2YW0gbXIzIGNwIiB2YWx1ZT0icGFydGl0aW9uZWQiPiB7VFhUX1BBUlRJVElPTlN9JywiPC9sYWJlbD48L3NwYW4+IiwiPC9zcGFuPiJdLCI8L3NlY3Rpb24+IiwnPGRpdiBjbGFzcz0iZnMxMjAgbXQxMCBtYjIiPntUWFRfQURNfTwvZGl2PicsWyJ7TEJMX1VBRE19IiwiaW5wI3VhZG0uZnMxMDUubGgxNjAiLCJtc2ciXSxbIntMQkxfR0FETX0iLCJpbnAjZ2FkbS5mczEwNS5saDE2MCIsIm1zZyJdLCc8ZGl2IGNsYXNzPSJmczEyMCBtdDEwIG1iMiI+e1RYVF9NRU19PC9kaXY+JyxbIntMQkxfVUFETX0iLCJpbnAjdW1lbS5mczEwNS5saDE2MCIsIm1zZyJdLFsie0xCTF9HQURNfSIsImlucCNnbWVtLmZzMTA1LmxoMTYwIiwibXNnIl0sJzxkaXYgY2xhc3M9Im10MTIgcHQxNSBidGQiPicsJzxidXR0b24gaWQ9ImJ0bi1zdGFydCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+JywnPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+JywiPC9kaXY+Il0sc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjU2cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxEZWxEQjp7aWQ6ImN3LlBob3Rvbi5EZWxEQiIsbGFuZzp7fSxkYXRhOntkYnM6W10sYWxsOltdLGFsbG86e30scmVuZXc6ITEscmVuZXdhY2w6ITAscmVuZXdxbnA6ITAsaGFzYWNsOiEwLGhhc3FucDohMCxyZXNvcmU6W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEuUGhvKCJBbGwiKTtiLmRicy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWNbeF07YS5jbHVzdGVyJiZhLmNsdXN0ZXIucXx8KGIuaGFzcW5wPSExKSxhLnNlY3VyaXR5JiZhLnNlY3VyaXR5LnN0YW1wfHwoYi5oYXNhY2w9ITEpfSksYi5hbGw9Yi5kYnMuc2xpY2UoMCksYi5hbGxvPWN3LmxpYi5hMm8oYi5hbGwpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSkseC50aGVuKGZ1bmN0aW9uKCl7YS5TZWwyU2Nyb2xsKHgsITApfS5kZWJvdW5jZSgxNSkpfSx1aTp7IiNjdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LmRicy5sZW5ndGg/dGhpcy5sYW5nLlRYVF9USVRMRTE6dGhpcy5sYW5nLlRYVF9USVRMRX0sd2F0Y2g6WyIjZGJzIl19LCIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGEuYWxsO3RoaXMuc2VsZWN0Mih4LHtkYXRhOmEubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjp0aGlzLmxhbmcuUExDX0RCUyxyZWFkT25seToxPT1hLmxlbmd0aCxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOiJkYnMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGEubGVuZ3RoPyIiOnRoaXMubGFuZy5FUlJfREJTfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LmFsbC5sZW5ndGh9fX0sIiNkZWx3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz17c2l6ZTowLGNvdW50OjAsZGlzazowLGJhc2U6KG5ldyBVUkwoYi5QaG8oIkJhc2UiKSkuaG9zdG5hbWUrIiIpLnRydW5jYXRlKDQ1LCJtaWRkbGUiKS5lc2NhcGVIVE1MKCl9LGQ9Yi5QaG8oIkFsbCIpO3JldHVybiB4LmRicy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWRbeF07YSYmKGMuc2l6ZSs9K2EuZGF0YV9zaXplfHwwLGMuZGlzays9K2EuZGlza19zaXplfHwwKX0pLGMuY291bnQ9eC5kYnMubGVuZ3RoLHguZGJzLmxlbmd0aD9iLmxhbmcuVFhUX1dBUk4oYyk6IiJ9LHdhdGNoOiIjZGJzIn0sIiNkZWxuZXciOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJlbmV3PSEhYS5sZW5ndGgpLHgucmVuZXc/WyJvayJdOltdfX0sIiNkZWxuZXcxIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZW5ld2FjbD0hIWEubGVuZ3RoKSx4LnJlbmV3YWNsP1sib2siXTpbXX0sd2F0Y2g6WyIjZGVsbmV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lmhhc2FjbH0sIjpkaXNhYmxlZCBvODAiOmZ1bmN0aW9uKHgpe3JldHVybiF4LnJlbmV3fX19LCIjZGVsbmV3MiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmVuZXdxbnA9ISFhLmxlbmd0aCkseC5yZW5ld3FucD9bIm9rIl06W119LHdhdGNoOlsiI2RlbG5ldyJdLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5oYXNxbnB8fHRoaXMuUGhvKCJDb3VjaCIpLnZlcjwiMDAyLiJ9LCI6ZGlzYWJsZWQgbzgwIjpmdW5jdGlvbih4KXtyZXR1cm4heC5yZW5ld319fSwiI2J0bi1zdGFydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB0aGlzLmxhbmcuQlROX1NUQVJUKHguZGJzLmxlbmd0aCk7dHJ5e3RoaXMuZG9EZWxldGVaKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jb21taXQoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmRicy5sZW5ndGh8fCF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiNkYnMiXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxkb0RlbGV0ZVo6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9JC5leHRlbmQoITAse30seC5kYXRhKSxiPSh4LlBobygiX2NvbXBpbGVkIikseC5QaG8oIkNmZyIpLmJhdGNoQ3JlYXRlRGVsYXkpLGM9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX0sZD14LmxhbmcsZT1hLmRicyxmPWUubGVuZ3RoLGc9W10saD1bXTtpZihmKXt2YXIgaT14LlBobygiQWxsIik7YS5yZW5ldyYmZS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBiPWlbeF07aWYoYil7dmFyIGM9e2NyZWF0ZTohMCxuYW1lOngsc2VjdXJpdHk6bnVsbH07Yi5zZWN1cml0eSYmYi5zZWN1cml0eS5zdGFtcCYmYS5yZW5ld2FjbCYmKGMuc2VjdXJpdHk9JC5leHRlbmQoITAse30sT2JqZWN0LnNlbGVjdChiLnNlY3VyaXR5LFsiYWRtaW5zIiwibWVtYmVycyJdKSkpLGIuY2x1c3RlciYmYi5jbHVzdGVyLnEmJmEucmVuZXdxbnAmJihjLnE9Yi5jbHVzdGVyLnEsYy5uPWIuY2x1c3Rlci5uLGMucGFydGl0aW9uZWQ9ISFiLnByb3BzJiYhIWIucHJvcHMucGFydGl0aW9uZWQpLGcucHVzaChjKX19KSxRLmFsbFNldHRsZWQoZS5tYXAoZnVuY3Rpb24oZSxmKXt2YXIgZz0kLkRlZmVycmVkKCk7cmV0dXJuIGZ1bmN0aW9uKCl7eC5SZXEoe3VybDpbZV0sbWV0aG9kOiJERUxFVEUifSkudGhlbihmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGQuTVNHX09LLmFzc2lnbihlKSwib2siKSxhLnJlbmV3fHwkLm15LnJhZGlvKCJkYmRlbGV0ZWQiLGUpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7aC5wdXNoKGUpLGN3LmxpYi5ub3RlKGQuTVNHX0ZBSUwuYXNzaWduKGUseCxjKGEpKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2cucmVzb2x2ZSgpfSl9LmRlbGF5KGYqYiksZy5wcm9taXNlKCl9KSkudGhlbihmdW5jdGlvbigpe3JldHVybiAkLm15LnJhZGlvKCJkYmxpc3QiLFtdKSxhLnJlbmV3P3guUGhvKCJDcmVhdGVEQnMiKShnLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4haC5maW5kKHgubmFtZSl9KSwhMSkudGhlbihmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIsZy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pLnN1YnRyYWN0KGgpKX0pOmEuZGJzfSl9fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5TZWwyU2Nyb2xsKHgsITEpfSxIVE1MOlsnPGRpdiBpZD0iY3RpdGxlIiBjbGFzcz0iZnMxMzAgbWIyIGxoMTYwIGJvbGRlciByZWQiPntUWFRfVElUTEV9PC9kaXY+JywnPGRpdiBjbGFzcz0ibWIxMCBmczEwNSI+PGlucHV0IGlkPSJkYnMiIGNsYXNzPSJ3MTAwcCI+PC9kaXY+JywnPGRpdiBjbGFzcz0ibWIxMCI+PHNwYW4gaWQ9ImRlbHdhcm4iPjwvc3Bhbj48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtYjgiPicsJzxsYWJlbCBjbGFzcz0ieGdyYXkgbGgxMzAiPicsJzxzcGFuIGNsYXNzPSJ3MjAgZGliIj48aW5wdXQgaWQ9ImRlbG5ldyIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJvayI+IDwvc3Bhbj57TEJMX05FV30nLCI8L2xhYmVsPiIsJzxkaXY+PGxhYmVsIGNsYXNzPSJ4Z3JheSBsaDEzMCBwbDIwIj48aW5wdXQgaWQ9ImRlbG5ldzEiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ib2siPiZuYnNwOyB7TEJMX05FV19BQ0x9PC9sYWJlbD48L2Rpdj4nLCc8ZGl2PjxsYWJlbCBjbGFzcz0ieGdyYXkgbGgxMzAgcGwyMCI+PGlucHV0IGlkPSJkZWxuZXcyIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9Im9rIj4mbmJzcDsge0xCTF9ORVdfUU5QfTwvbGFiZWw+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxMiBwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0icmVkIG1hcmtmb2N1cyBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+JywnPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+JywiPC9kaXY+Il0sc3R5bGU6eyIiOiJmb250LXNpemU6MTZweCIsIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MjE0cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxTZWNPYmo6e2lkOiJjdy5QaG90b24uU2VjT2JqIixsYW5nOnt9LGRhdGE6e2RiczpbXSxhbGw6W10sYWxsbzp7fSx1c2VyczpbXSxyb2xlczpbXSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LFVzZXJzOltdLFMyOmZ1bmN0aW9uKHgsYSxiLGMpe3RoaXMuc2VsZWN0Mih0aGlzLm15LmZpbmQoeCkse3RhZ3M6YSxwbGFjZWhvbGRlcjp0aGlzLmxhbmdbYl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9LCEhYyl9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEuUGhvKCJBbGwiKTtiLmFsbD1PYmplY3Qua2V5cyhjKS5zb3J0KCksYi5hbGxvPWN3LmxpYi5hMm8oYi5hbGwpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSksYi5yb2xlcz1PYmplY3Qua2V5cyhPYmplY3Qua2V5cyhjKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXt2YXIgYj1jW2FdLnNlY3VyaXR5O3JldHVybltdLmFkZChiLmFkbWlucy5yb2xlcykuYWRkKGIubWVtYmVycy5yb2xlcykuZm9yRWFjaChmdW5jdGlvbihhKXt4W2FdPSEwfSkseH0se30pKS5hZGQoIl9hZG1pbiIpLnVuaXF1ZSgpLnNvcnQoKSxRLmFsbChbYS5QaG8oIkdldFVzZXJzIikoKS50aGVuKGZ1bmN0aW9uKHgpe2IudXNlcnM9eH0pLHhdKS50aGVuKGZ1bmN0aW9uKCl7YS5TMigiI3VhZG0iLGEuZGF0YS51c2VycywiUExDX1VBRE0iKSxhLlMyKCIjdW1lbSIsYS5kYXRhLnVzZXJzLCJQTENfVU1FTSIpLHgudHJpZ2dlcigibGF5b3V0IiksYS5TZWwyU2Nyb2xsKHgsITApfSl9LHVpOnsiI2RicyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse3RhZ3M6dGhpcy5kYXRhLmFsbC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSwhMCl9LGJpbmQ6ImRicyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9EQlN9fSwiI3VhZG0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiN1YWRtIix0aGlzLmRhdGEudXNlcnMsIlBMQ19VQURNIiwhMCl9LGJpbmQ6ImFkbWlucy5uYW1lcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pc1VuYW1lcyhhKX19LCIjZ2FkbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI2dhZG0iLHRoaXMuZGF0YS5yb2xlcywiUExDX0dBRE0iKX0sYmluZDoiYWRtaW5zLnJvbGVzIn0sIiN1bWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdW1lbSIsdGhpcy5kYXRhLnVzZXJzLCJQTENfVU1FTSIsITApfSxiaW5kOiJtZW1iZXJzLm5hbWVzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlzVW5hbWVzKGEpfX0sIiNnbWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjZ21lbSIsdGhpcy5kYXRhLnJvbGVzLCJQTENfR01FTSIpfSxiaW5kOiJtZW1iZXJzLnJvbGVzIn0sIiNidG4tc3RhcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4gdGhpcy5sYW5nLkJUTl9TVEFSVDt0cnl7dGhpcy5kb1NlY1VwZGF0ZSgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfXRoaXMubXkuY2FuY2VsKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5kYnMubGVuZ3RofHwhdGhpcy5teS52YWxpZCgpfX0sd2F0Y2g6WyIjZGJzIiwiI3VtZW0iLCIjZ21lbSJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX0sIiNsYXlwcm94eSI6e2RlbGF5OjE1MCx3YXRjaDpbIiNkYnMiLCIjdWFkbSIsIiNnYWRtIiwiI3VtZW0iLCIjZ21lbSJdLGJpbmQ6ZnVuY3Rpb24oKXt0aGlzLm15LnRyaWdnZXIoIiNsYXlwcm94eSIsImxheW91dCIpfX19LGlzVW5hbWVzOmZ1bmN0aW9uKHgpe3ZhciBhPSIiLGI9dGhpcztyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKHgpeyJfYWRtaW4iIT14JiYoeC5oYXMoIjoiKXx8L15fLy50ZXN0KHgpKSYmKGE9Yi5sYW5nLkVSUl9VTkFNRSl9KSxhfSxkb1NlY1VwZGF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0kLmV4dGVuZCghMCx7fSx4LmRhdGEpLGI9KHguUGhvKCJfY29tcGlsZWQiKSxmdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfSksYz14LmxhbmcsZD1hLmRicy5sZW5ndGgsZT1PYmplY3Quc2VsZWN0KGEsWyJhZG1pbnMiLCJtZW1iZXJzIl0pLGY9KGUubWVtYmVycy5uYW1lcyxlLm1lbWJlcnMucm9sZXMsZS5hZG1pbnMubmFtZXMsZS5hZG1pbnMucm9sZXMsZS5tZW1iZXJzLm5hbWVzLGUubWVtYmVycy5yb2xlcyxhLmRicyk7ZCYmZi5mb3JFYWNoKGZ1bmN0aW9uKGEsZyl7eC5SZXEoe3VybDpbYSwiX3NlY3VyaXR5Il0sbWV0aG9kOiJQVVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KGUpfSkudGhlbihmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGMuTVNHX09LLmFzc2lnbihhKSwib2siKX0pLmZhaWwoZnVuY3Rpb24oeCxkLGUpe2N3LmxpYi5ub3RlKGMuTVNHX0ZBSUwuYXNzaWduKGEseCxiKGQpKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2c9PWQtMSYmJC5teS5yYWRpbygiZGJsaXN0IixmKX0pfS5sYXp5KHguUGhvKCJDZmciKS5iYXRjaENyZWF0ZURlbGF5KSl9LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6Wyc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIj57VFhUX1RJVExFfTwvZGl2Picse3JvdzoiMTAwJSIsbGFiZWw6IjYwcHgiLHJvd0NzczoibXktcm93IHB0MyBwYjMiLGxhYmVsQ3NzOiJteS1sYWJlbCJ9LFsie0xCTF9EQlN9IiwiaW5wI2Ricy5mczEwNSIsIm1zZyJdLCc8ZGl2IGNsYXNzPSJmczEyMCBtdDEwIG1iMiI+e1RYVF9BRE19PC9kaXY+JyxbIntMQkxfVUFETX0iLCJpbnAjdWFkbS5mczEwNSIsIm1zZyJdLFsie0xCTF9HQURNfSIsImlucCNnYWRtLmZzMTA1IiwibXNnIl0sJzxkaXYgY2xhc3M9ImZzMTIwIG10MTAgbWIyIj57VFhUX01FTX08L2Rpdj4nLFsie0xCTF9VQURNfSIsImlucCN1bWVtLmZzMTA1IiwibXNnIl0sWyJ7TEJMX0dBRE19IiwiaW5wI2dtZW0uZnMxMDUiLCJtc2ciXSwnPGRpdiBjbGFzcz0ibXQxMiBwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9TVEFSVH08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iLCc8ZGl2IGlkPSJsYXlwcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PiddLHN0eWxlOnsiIGlucHV0IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDo1NnB4OyJ9LHBhcmFtczp7c3RyaWN0OiEwfX0sUmVxSlNPTjp7aWQ6ImN3LlBob3Rvbi5SZXFKU09OIixwYXJhbXM6e3Jlc3R5bGU6MTAwLHN0cmljdDohMH0sZGF0YTp7dGV4dDoiTG9hZGluZy4uLiIsZHJhZzohMSxoZWlnaHQ6Im5vbmUiLHJlcTp7dXJsOltdLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOiJnZXQifSxjbTp7bW9kZToiamF2YXNjcmlwdCIsbGluZU51bWJlcnM6ITEsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMH19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtmdW5jdGlvbiBjKHgpe2IudGV4dD0iKCIrSlNPTi5zdHJpbmdpZnkoeCxudWxsLCIgICIpKyIpIixhLm15LnJlY2FsYygiI3RyZXN1bHQiKX14Lmh0bWwoW2IuZHJhZz8nPGRpdiBpZD0iZHJhZ2dlciI+PC9kaXY+JzoiIiwnPHRleHRhcmVhIGlkPSJ0cmVzdWx0IiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+J10uam9pbigiIikpLHgudGhlbihmdW5jdGlvbigpe2EuUmVxKGIucmVxKS50aGVuKGZ1bmN0aW9uKHgpe2MoeCl9LmRlYm91bmNlKDUwKSkuZmFpbChmdW5jdGlvbih4LGEsYil7YyhhKX0pLmFsd2F5cyhmdW5jdGlvbigpe3gudHJpZ2dlcigibGF5b3V0Iil9LmRlYm91bmNlKDUwKSl9KX0sdWk6eyIjdHJlc3VsdCI6e2JpbmQ6InRleHQiLGluaXQ6ZnVuY3Rpb24oeCl7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx0aGlzLmRhdGEuY20pfX19LHN0eWxlOnsiICNkcmFnZ2VyIjoid2lkdGg6MTAwJTtoZWlnaHQ6MTVweDtjdXJzb3I6bW92ZTsiLCIgLkNvZGVNaXJyb3IiOmZ1bmN0aW9uKCl7cmV0dXJuInBhZGRpbmc6MHB4OyBoZWlnaHQ6Iit0aGlzLmRhdGEuaGVpZ2h0KyIhaW1wb3J0YW50OyJ9LCIgLkNvZGVNaXJyb3ItbGluZSI6ImZvbnQtc2l6ZToxM3B4OyAiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpub25lIWltcG9ydGFudDsifX0sZmlsZXM6eyJmYXZpY29uLnBuZyI6e2RpZ2VzdDoibWQ1LW9DM3FJSTBZS2ZYTDBnWlFsN1NtL2c9PSIsY29udGVudF90eXBlOiJpbWFnZS9wbmciLGRhdGE6ImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEOEFBQUJBQ0FZQUFBQ3RLNi9MQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUQ1cEpSRUZVZU5yY1d3MTRWRlY2L3M2OWR5WXprOHhNUW42QWhFQVNDRCtXQnl4ZFZza3VLaUtpZG9rc3JWYTJXQzF0bi9xRHN1dUR1MHRiYmYzWjdkYjFXVnQzVVhaclFaRHFzMXBSMGE0cmlxS3VLTHBhUUFSYWtCOURRZ2lFWkNiSi9ONTdUci8zM3R3d2lVbElNTUhFNytGd1p5YjNudk8rNTN6bis3djNpaFUvdklkNkZDRklUNlhJTkRUU1RJMEkvendhUlZvdHFqdWc2SStxQkxVMEVlbTZvQlFwOHZBSmJhazA1ZmgxSWtuVTBpWW9KMGVSdExnckE3OUovbG1ScnBSUFNpMmJLTzBuOHNRMVRiWlpRaVEwRWp5QVJzcTBTT1BUVzFzRkJiTWx3ekFvSHBlVWxjVlg4UFZlUHMreUZBWHppRDdjcHFoNGdxQndqazR5TGUxeHBTSEpNQ1ZaWGkrUlVqM1NNMmdRaFhrd1FicUJzVjdGdEM3Z1k0RmdMQmFhTk52UE1ra1hHdWJaYml3bmxhRHRmUHdOWDcrT2oyMkRoVy9BeVd0Q0ZQSGhKN3hBTjNxOWxtaHRUVkFpZ1piaXlSRHAzTnhRVTA1MmRpSVVDcExYbDBXcFJKTGlzUmkxdHJYNW1wdWplVktxQXAvUCs4Yytudzl0RlNsTjhhU3Q1WWxaeWYwMkRFbnl2R2dMK2JEQm80dnNVNmVpdkRWYTFLaWlvdHFMTHFvS3pQakQ2WGxsNDBySjR6RThmRTVSYi8yazB5WWRQbEpESC8zUHpxWnQ3MzRRTzNyc1dIRTRHRndhekFrdTVRM0dHMGt0NGRPZUh4TGtlVVVXODM5cnJWUTZxNmJ1QkkwcXptKzQ5ayt1RHMyWjh3MmZiaGdsL2UyUEo0Z3FKNVNqNWYzWk5RdnpMTk9rTjk1NEo3SHA1VmVpTlRYMVJjWEZoYzk1dk42a0VPb3YrZlNuempsNTJCQmV3eklseGRzcEt6WG15T0hqTkdQNnBPWWZyTGd0WjNUeHlLS0JWRTJlUUxwczNzVSt0R04xeDgzSDFxeHYvV2puLythT0t4MzVwSkxlQnd5UG1zMTREcDg3OHBMK3RmSThjZnVlUGJWaTdOZ3hrVlVQLzhoZlBIcGtMZzJ5OE1RYWQvM0RuYmwxeDQ2bkh2cjVMK043OWg0ZFUzbGV5Y0dtcUhxWS8vemRmbXR0UDEyZExneHRSeUlSbjhxcjBMcnM5ci9KbmozckFpSGF6ZlM1Rk1VcjhQYnZ0cXRmclBwVmZIVHg2SURQNTkrdFRIayt1enFycjY1TzY0ZEZ5ek04V21OZGJkMVVuNUVWZVdUVmcxa1hWVjM0cFJCMzFrV2ppMmJQRW8rcytwa0hlSUFMK0lDeno1NnBUd01wbXFaN3RLUDdEaHdLejUxN1NlcSsrLzh1cHlBL3owTkRRSUFEZUlBTCtJQVRlQWVFdkJKaW5LRWI3MzJ5Ny84Q2YvR2RhODNyLy93YXcrdjE2RFNFQkhpQUMvaUFFM2lCKzh3R3J5ZXRWZmJHQ21oWjN0MTc5KzczMy9LM1M4MzVsMS9DTVl6UWFBaUtybXZhMWRYenllZkxNbGYvNm5IL2xDbVZ1NlVsUi9LZllqMXhORlJLOXRDWlRrS1hCdy9zUDV6em5jV0xVdk12djlqN1plM3Z2dHNCb1RGT0xkb1NUVDN6eklzNTQ4ZVhIbFNXTnNxeXJCN1VYampoV1RmdE40Mm5ta2ZPdW5CR2JOSENiM21HNklKM2F3aUJ0MnJXakRiZ0I0K2VPR3JDVGlveW1xTWpTMHd6ZmFVcHJjak5OeS8xR29ZdWFCZ0o4TjU4MDFKdm12R0RCL2lBVjFldVdxVGxPTG10T1ZwUHlyRDN6NXFEaDQ2b2YxeTVJc2Z2OHhrMERJV1RJczgvTVg3d0FCL0ZKanJTMGtEUjFoTWRyY3ZLQ3hpNmpVM05VYytDNnNzVFplVmpkUnJHQXZ6Z0FUNU1iQ1A0ZFZwNUdEWTBUYk4vQ0hIYStlMVlXeXl5WlBHMVB2b0tDSGlBanlhMGJ6djhOSEk1NjNralJ0T3BVeEZxT05GSWxSV1QvN3V4c2JGaThYVUxhZEtrQ1lNWHhMZ2hwNjFwR1o4SHhRVnlqcDN0b3c4Ly9OaklIMUgwOVIyN2RxMXZibzR5NTJZeVhEZmd5OHJ5S3lIbnh1S3B5THg1bDRiUGVyVFdWcUthR3FMang0a2FHb2hIY1g1TEpPd3lsdDFxYTRtcXE0a1dMQ0I2NlNXaVRadUlTa3JzMG8vZGZLeDBPVGxFSTBadzlzOUo0a2gyMTZXbHptOW5JY3pIdDM3RHN4RkYxbHp3VEtWU2Nkc3dYbmI1bFhaRVk1cm12ZlZIYTloTlhPVmgxZTk3ejU5K1NyUnZuM01FMGJZMklrNkdLSms4M1Rnbjc2aFRjWXBLUjQ0UXpaN3RYTi9VNUZ3Zmp6dm5RUlBzbkpuUFE5SE9iVWhTc3JPZENSay9ubWp5Wk9mWXAzS2FvSVZYWCtIWnV2VjNWUFhOaSs0MURPTk8rRHFqdnJhbVBVVE0rdDdKRTAxVXZXQitnSG92dFJEdDJrWDArOThUSFR2R0pqUkNGSTBTdGJRNDVEd2VCemhXRUo4QlhOTTZGZmJzODBIR0daZ29qM09SM0Z4SEsxeHh0UVFUQ2EzQnhHQnNUTXpPblVTaEVGR1lGWFQwYUtLdmZZMW8yalJudkI2a3V2ckt3SDg5czRrQzJkbmZTNldTZDlvcjcxaEFNWmxYWGg4L1lleEpqcE1MdWw1bzdkaEJXbUVoQ2FqbWd3OFNIVGpnckRBRTVEQm9RVUhuL1p6NVdYYUpJcnY3N3JZdUZWQzcvNHdVMnhaTUNMUU1rdyt0ZWY5OW9na1RpRmF1Sk1WYlNwNDRRZnI1NTNmcUtzdnJJZkNMSjlJRmJQUW1LNlgyYVo0c0R4bGU0Nlk0cTkxbGw4M0p6Z3p0NVR2dlVQcWVlMGd0VzBacTJ6Ym5EL3YzTzZzTTlVTUxCQnp5TG5oWGJYdkpvL3R0SE4zbWpvSHhNSzZMQVhpQUM2Y3pUdUFGYnVEUFJBRis0QW0rNEEzRFQ0Ym11U0VhYmFGdnpQcTZ2Mk9TV2MzTUgvK1k2TmxuN2RtMEd0b0xweE1uT25zUGhqS1Q3TG10Wkp5ZURPQUFIdUNDbGpKTzRBVnU0QWNQVjhBUFBNRVh2TFdjWUQ2cUlybCt2eithNWN0UU1WekU2bVB2S1c2Q2paUk5jZWJNN2xYM3l4SVhCK01DUHVCME1kdjRNOGlESDNpQ0wzaHIvS0Vrellha3ZLejAxT2YyRzFRTG5mUE15amZmSklIUGMrY1M5K0M0TDllQzk2WDFzeVRjNXdZY3dNTzRnQTg0YlUwQVZ1RFhPaWRrNEFtKzRLMUZJaWVtSnhKSnFxd2NIK3lsV2tEaTVFbXl0bTkzdm4vLyswN0hVQzlZYmxqaE16VjNtd2p4T1VEMmQvenVxbkZmK3NPNEdCODRnQWNxei9pQXM4T1RkQ1BnQ2I3Z3pmbVBtc2FXbmlyS3gvWmVmZVVnUTkxOU44a1hYeVN0ckl6b3JydUlmdnRib2s4K2NTeHZaclNXYWVrejl5Zk9nVCt2cXp1dHJqamlPd1FyaUhQZHlYQTFKbE56M0hGZzZCQXJYSEVGQi9GbEpOa2RBcDhkRFBVaTRQbjZHMjhUZUxORDlwU2tMVW41K2ZsNnIvdUtWVWtkUGt6eWpqdUlIbmpBbVlDYmJuSWlPUVFxN3NwMU5VcVpFd0ZTQ0hvMmJIQW1BWUxqeFJkekVMN0VjV3R1SDVuRU04bWpEL1NIMkFDUkgrQ3g2a3RlZllWSkJLNWU3QkY0Z2k5NEc0S3NvT0l2UG45blZaRmRMVGc2TEM4bnRYVXJ5ZHR1STFxNGtNUWxsemdBMmtGMGN3dXJlNWsweVFsOW9lS3dJWXNYTytyYlF6V3RSK0VBUzIzWlltdWp3cGFzcUhENjdDM1ZaWjdnQzk0SXhmS1VzbmpzUHNUTjZCZ1R3QkdXdVhzM2FTKzg0TVRrYm4zYzNjL3RyVlBaQzMvSDlXeUZOU1lyc0VKMjNsbEdpbFZXcmwzckJDMmNiWFdzTkYranVnWkI3amdJZEJEUWZQd3hpWFpjWnlJT0FVL3daY25yc1ZDaDlXU2hBUUN1andkWDJPOEljN3VxZThkSDFYbXZBakEzdVhjdkdmZmVTNElUR0JBM3NWZC8vV3RuRWpOdk5IVEYwRlg5MlVZSWhNVzRwcCt1VjJxYVpQS3lTUWlkWXJGV3lnMEgreDVrdUNGdGY5d1l6b1ZoMnJpUjFJd1pKSzY3anRUeno5dmZCWUlVWkhQOUNaak9JcG9FVC9EbGl5S0dJcjFGNkJvbDRzbnVPeC9vS0k2Tm1vQ2ZyYTkzaHVBanZ0dkdEcG94TUZYTTA3aTdTSng1Z3ErUTFNSXJuNjcxOEpmR3hsTldSVVdaM21sL3M4OVVVQzlqQU10NDZBdVpZTEo5c3ZtbzhCMWVJeU1hKzhLQ3Z0eTRJVVBBay9reVQ2dldzSlRZeGZrdEhUejBXZlBNbVRQeU13TWJEM3k1WVRoR2FDQ0Y0d0pSVmVWVVdxcXJTY1AyZ2Q4ZVNBRnBURUNYZ09jUTgyUysrVGJ2Y0xod0o2a0dUb28rYllFYnpLai9rT0k5T1ZnMWE5bSs2alJsQ2dsdWc1TC9kT051d2RQbnk4b0hiODdudFZvUEc2OURoMnM2VGIzaS9YZjB4aHNkZDJVTVF2VzZxeHNjYU9GVmg3Y3BmZnh4RWhtckQ1NkZoZmtvMXRZYXJTMk5xTncyYzU2Ym0rU1kxODNzOERqSVNYWS9TQmFHK20ycTdoMkJzdTFWOFdPUGNmN3VrQWMvNWhsaTRzM2diVWl5MkM1WTYwS2g0UEozM24wL2Z1bWMyWFpPcjdIYVovRStGTERPdlNRS1E1WTg0aERlVmxxR3ZRSS81dWszWlhxZGJYdlR5VFJXZGpYbnVjdGZlKzJOTnBjOFZOSEN4VzVrTnR5RTNhZUU2OHpZVXVESFBQMW15bHdOelRCczlWQnFuOWViWlgxNjRMT0NaQ3B0MTd1VW0xM0JZbXJhOENQZmp0dU5Nc0VML01hV2xWcXBWSEtmdmZLalNrcmQwdlZEQlcxdEt6WnRlamwyelo5V0J6Ulc5VkVyVjNKQW9BOVA4bXlyRkd1czFyNWx3YXVnY0VRZ2xKZjNrR0ViY0VIaTBua0wydDI2MXo5OTJ2UllUYzJ4eUJQclZvWDdWYnNmOHZPZzZQb2JibzJVbG80Tzc5eTFNK0RldE9pNFY1ZElKdU5DYVZ2OGZtLzQxVmRmVDlCWFNNREg3L2VGQmVsYndOUGxMRzVldHJ6RE5VZ3BRK0hjd2toZFRYMWt6WC84VzhqcjlRejc1VStsMG1ycFh5MlBGbzhaRlk1R0cxbWp0YWpydWpYY3EwT1QyQ05LUmxsRm5ndGtCOElibm5yNks3SDY0QUUrVXNubkhINlNYTTZvM3RMcGhrSUJMY3JMRGFWZjNMVFpkL2pRWjlad0pnNzg0QUUrVEd5UjQ5bE84OVhDd1pIa3R0elFLQkltM0xwY1dsRStUdHp6encrMnhoTUpjemdTQjI3Z0J3L3dFYnlNNFdBUmhYSUtPMXFYbGNkN0VMWmYzR0FZbnBjTlRROC8rdWlhbEdsYWFqZ1JCMTdnQm43d0FCL3c2c3BWYzU2MzY3WmRsVDhpOS9pNzczMFUyUGo4UzJtY1BEeGlla25BQzl6QUR4NDljVFNFdC9zQXhxN2VLbEV4b2JMcytKTlBiY3dKaFVMbS9IbEQ5eUhFZG84bFg5bjhwbVM4M2lsVEtsdE5TMVlRWHRUUXU0ZmM4OG83YVdkTUpsTlRwMHlhRUYvOXl6WEdDNXRla2J4L2hxUUtBQmZ3UGNJNGdSZTRnYjhqc2UrbW5YRVZoVkpIVE11OGNNcWtpYkgxVHo1dFBQR2Z6NWpzTzRlVUZ3QWU0QUsrUDVnOE1RYTh3SDNHaWxxZjFFblFMaXN0eDB5ZVVINW95NWF0NGIyNzkwWHUvTUh0Z2FIdzVQWEp4cWIwVC8vbDRWamQ4Zm93NDR1WUtWbXVkR3JxeTdWOTM3K0ttc3kwekM4dUtkNmRNSlBoVzI1ZGtYeHIyM3RLS2ZWbDdXL0MrTGZjZWtjYWVJQUwrSUN6cjMzb1ZkK2MwMnVwU1VQMHgwbU9rTGhuUmtyVHhhT3RNUzJ2ZUZSNDl1WlgzaEx2ZjdBak1uWHFaQzBZekRsbkR5emlOWlA3N3Y5WjYydXZ2dW1ycUJocnRNYjBoLzArN1dvbG5WczhlQnRONDJSR25hSHdlbGFXbSszOWQvZnZVUlhublZkeU5KMU9ocGZkL3ZmZSsrNy9hVE5lQUJwTTB1Z2Y0MkE4akl2eDkrK1JGY0J6TnYyZFZXVVNlWUdacHNNOGFDa0hFa3NtVm81N3JQRlVKSGY1SFhmYnI1WlZYem5mZmJYc2kxdnhqRmZMNnVzYThXcFpMbytYTkZQcHYrYnhONWpwczM5KzhRdWpZMVhiZ0FoS3ovSXNLaDlYc3Q2VVZ0SFR6NzVBLzc1dWd4cFZXRlJYVlRVejg2WENQbFNmTWw0cTNQWkJyUDVFUTNFNEorZ0xCb00rN3IvTkpHbS9WTWpqZnVHSkhiQ2FOSHVFalhobzJiSlUwWWdSb1ovazVZVnY1TXlwNUsyM3R0SG16YTkvN25WU2Z5RFEwK3VrSHAvUGk2ZW04emdIenlzckhhT0VVR3RqQ2ZsRFE2TUdSUU5uWUkxQnNNSjRiR3NwWTF3YUk1a2Q5QWV2RHdRQzM5SjAvUUpXa3dLMlNVVnAwNkpFVTRUYzJ3bzZSMkErdjUrS2NZOWVhQ2M1a3RxdUtmMmxGa28rRVZSNkcrNDh5RUh3S29QNkxMMUZDazhxcm1hU3ExVjdwSVdqTHNnbk5LUDlGWElqcmduWnhsRlRRblhjWWxIdTlZUHFOZjVmZ0FFQXY0TVhNRjYzNXdrQUFBQUFTVVZPUks1Q1lJST0ifX0sc3RhbXA6MTY1MDIzMzAzMTc2OX0sImN3LlBob3Rvbi5TeW5jVGFzayI6e2lkOiJjdy5QaG90b24uU3luY1Rhc2siLGJ1aWxkOjMsbGFuZzp7fSxkYXRhOnt0YXNrOiJNdWx0aSIsZG9jOiIiLG1vZGU6WyJvbmNlIl0sc3JjOnt1cmw6IiIsZGJzOltdLHVzZXI6IiIscHdkOiIiLHVjdHg6W10sdW5wcmVmaXg6IiIsZmlsdGVyOltdLGZuOiIiLGlkczpbXSxxdWVyeTp7fSx6aXA6ITEsb3B0czpbXX0sdGd0Ont1cmw6IiIsdXNlcjoiIixwd2Q6IiIscHJlZml4OiIiLGNyZWF0ZTohMSxxOiIiLG46IiIsYWNsOiExLHppcGZpbGU6IiIsb3B0czpbImNyZWF0ZSJdfSx0YXNrczpbXX0sREJzOltdLGlzQ291Y2gyOiExLGNhblppcDpudWxsLGNhblN0cmVhbTohMCxpc1N0cmVhbWluZzohMSxVbnppcFRvOltdLFVuemlwREJtYXA6bnVsbCxkb2NzVG9TYXZlOltdLFVuemlwU3RyZWFtOnt9LFVuemlwT3B0czpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEudGd0Lm9wdHN9LHVpOnsiI3J0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5sYW5nO2lmKHgubW9kZSsiIj09InppcCIpe2lmKHguc3JjLnppcClyZXR1cm4gYS5UWFRfVElUTEVfRFVNUH1lbHNlIGlmKHguc3JjLnVybHx8eC5zcmMuZGJzLmxlbmd0aClyZXR1cm4gYS5UWFRfVElUTEVfU1lOQztyZXR1cm4gYS5UWFRfVElUTEV9LHdhdGNoOlsiI3Jtb2RlIiwiI3J6aXBkdW1wIiwiI3Jzb3VyY2UiLCIjcnNvdXJjZXMiXX0sIiNybW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZ1siQ29weSI9PXRoaXMuZGF0YS50YXNrPyJUQUdfTU9ERV9DT1BZIjoiVEFHX01PREUiXSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEmJih4Lm1vZGU9YS5sZW5ndGgmJiJkb2MiIT1hP2E6WyJvbmNlIl0uY29uY2F0KGEpKSx4Lm1vZGUuaW5kZXhPZigiemlwIik+LTEpe3gubW9kZTshMD09PWIuY2FuWmlwP3gubW9kZS5sZW5ndGg+MSYmKHgubW9kZT1bInppcCJdKTohMT09PWIuY2FuWmlwP2MoKTpudWxsPT09Yi5jYW5aaXAmJmQoKS50aGVuKGZ1bmN0aW9uKHgpe2IuUGhvKCkuY2FuWmlwPXgsYi5jYW5aaXA9eCx4fHwoYygpLGIubXkucmVjYWxjKCIjcm1vZGUiKSl9KX1yZXR1cm4iemlwIj09eC5tb2RlWzBdPyh4LnRndC56aXBmaWxlPXgudGd0LnppcGZpbGV8fCJkdW1wLSIrRGF0ZS5ub3coKS50b1N0cmluZygzNikrIi56aXAiLGIubXkucm9vdCgpLmFkZENsYXNzKCJoYXN6aXAiKSk6Yi5teS5yb290KCkucmVtb3ZlQ2xhc3MoImhhc3ppcCIpLHgubW9kZTtmdW5jdGlvbiBjKCl7eC5tb2RlPVsib25jZSJdLGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfTk9aSVAsImVycm9yIil9ZnVuY3Rpb24gZCgpe3ZhciB4PSQuRGVmZXJyZWQoKSxhPWIubXkuZmluZCgiI3ppcC10ZXN0ZXIiKTtyZXR1cm4gYS5teShiLlppcFRlc3Rlcix7fSkudGhlbihmdW5jdGlvbihiKXt4LnJlc29sdmUoITApLGZ1bmN0aW9uKCl7YS5teSgicmVtb3ZlIil9LmRlbGF5KDIwMCl9KS5mYWlsKGZ1bmN0aW9uKGEpe3gucmVzb2x2ZSghMSl9KSx4LnByb21pc2UoKX19fSwiI3hzc2hpbSI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiExfX19LCIjcmRvY2lkIjp7YmluZDoiZG9jIixjaGVjazpmdW5jdGlvbih4LGEpe2lmKHgubW9kZS5maW5kKCJkb2MiKSlyZXR1cm4gYT8iXyI9PWFbMF0/dGhpcy5sYW5nLkVSUl9JRF9VTkQ6dm9pZCAwOnRoaXMubGFuZy5FUlJfSUR9LGNzczp7c2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgubW9kZS5maW5kKCJkb2MiKX19LHdhdGNoOlsiI3Jtb2RlIl19LCIjYnRuLXN0YXJ0Ijp7ZGVsYXk6NjAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbCE9YSlpZigiemlwIj09eC5tb2RlKXt2YXIgYz1iLm15LnJvb3QoKS5wYXJlbnRzKCIjbC1ib2FyZCIpLmVxKDApLGQ9Yy5maW5kKCIjbC1waXZvdC1yYiIpO2lmKGQuZGF0YSgibW9kYWwiKSljdy5saWIubm90ZShiLmxhbmcuTVNHX1pJUF9SVU5OSU5HKTtlbHNlIGlmKHguc3JjLnppcCl7dHJ5e2IucnVuVW5kdW1wKGQsYykuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5jbGVhbkRhdGEoeCl9KX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX1iLkRvbnRTdG9wVW56aXA9ITAsYi5teS5jYW5jZWwoKX1lbHNlIGIucnVuWmlwKGQsYykudGhlbihmdW5jdGlvbigpe2IuY2xlYW5EYXRhKHgpfSksYi5teS5jYW5jZWwoKX1lbHNlIGIucnVuVGFza3MoKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBjPSEwO2EuZm9yRWFjaChmdW5jdGlvbih4KXsicmVqZWN0ZWQiPT14LnN0YXRlJiYoYz0hMSl9KSxjJiZiLmNsZWFuRGF0YSh4KSxPYmplY3QuaXNGdW5jdGlvbihiLlJlc3RhcnRQb2xsKSYmYi5SZXN0YXJ0UG9sbC5kZWJvdW5jZShiLmlzQ291Y2gyPzFlMzoxMDApKCl9KSxiLm15LmNhbmNlbCgpO3JldHVybiB0aGlzLmxhbmdbInppcCI9PXgubW9kZSYmIkNvcHkiIT14LnRhc2s/eC5zcmMuemlwPyJCVE5fU1RBUlRfVU5aSVAiOiJCVE5fU1RBUlRfWklQIjp4Lm1vZGUuZmluZCgiZG9jIik/IkJUTl9TVEFSVF9ET0MiOiJCVE5fU1RBUlQiXSgoeC5zcmMuZGJzLmxlbmd0aHx8MSkqKHgubW9kZS5maW5kKCIyd2F5Iik/MjoxKSx4LnNyYy5pZHMubGVuZ3RoLHgubW9kZSl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5teS52YWxpZCgpfHwoISh4LnNyYy51cmx8fHguc3JjLmRicy5sZW5ndGh8fHguc3JjLnppcCl8fCgiemlwIj09eC5tb2RlP3guc3JjLmZpbHRlci5maW5kKCJpZHMiKSYmIXguc3JjLmlkcy5sZW5ndGh8fCF4LnRndC56aXBmaWxlJiYheC5zcmMuemlwOiF4LnRndC51cmwpKX19LHdhdGNoOlsiI3Jkb2NpZCIsIiNyc291cmNlIiwiI3Jzb3VyY2VzIiwiI3JzbG9naW4iLCIjcnNwYXNzIiwiI3JmbiIsIiNyZG9jcyIsIiNycXVlcnkiLCIjcnRhcmdldCIsIiNydGxvZ2luIiwiI3J0cGFzcyIsIiNydHppcGZpbGUiLCIjcnR1bnppcGRicyJdfSwiI2J0bi1jbGVhciI6e2RlbGF5OjYwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYodGhpcy5jbGVhbkRhdGEoeCksdGhpcy5teS5yZWRyYXcoKSl9LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIkNvcHkiPT14LnRhc2t9fX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJih0aGlzLmNsZWFuRGF0YSh4KSx0aGlzLm15LmNhbmNlbCgpKX0sIiN4c291cmNlIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJTeW5jIiE9eC50YXNrfHwiemlwIj09eC5tb2RlJiZ4LnNyYy56aXB9fSx3YXRjaDpbIiNyemlwZHVtcCJdfSwiI3Jzb3VyY2UiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7ZnVuY3Rpb24gYihiLGMpe2EubXkuY2hlY2soIiNyc291cmNlIiksYS5maXhIZWlnaHQuZGVib3VuY2UoMTAwKSh4KX0iU3luYyI9PWEuZGF0YS50YXNrJiZ4LmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6dGhpcy5EQnMsY2xvc2U6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjYnRuLWZvbGRzcmMiKX0uZGVib3VuY2UoMTApLHNlbGVjdDpiLmRlYm91bmNlKDEwKSxhcHBlbmRUbzphLm15LnJvb3QoKSxtaW5MZW5ndGg6MWU0fSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4LnNyYy51cmw7dmFyIGI9YS5yZXBsYWNlKC9bXHJcblx0XHNdL2csIiIpLGM9Yi5tYXRjaCgvXC9cLyhbXlwvOlxzXSspOihbXlwvOkBcc10rKUAuKy8pO3JldHVybiBjJiYzPT1jLmxlbmd0aD8oeC5zcmMudXNlcj1jWzFdLHguc3JjLnB3ZD1jWzJdLHguc3JjLnVybD1iLnJlcGxhY2UoY1sxXSsiOiIrY1syXSsiQCIsIiIpKTp4LnNyYy51cmw9Yix4LnNyYy51cmx9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihhKXt2YXIgYz10aGlzLmxhbmc7cmV0dXJuIGIuaXNVUkwoYSkmJiFiLmlzVmFsaWRVUkwoYSk/Yi5sYW5nLkVSUl9GUk9NX1VSTDoiU3luYyIhPXgudGFza3x8Yi5QaG8oWyJBbGwiLGFdKXx8Yi5pc0J1Y2tldFVSTChhKT92b2lkIDA6Yy5FUlJfRlJPTX19LGxpc3Rlbjp7ZGJsaXN0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihhKXJldHVybiBmdW5jdGlvbigpe2IubXkuY2hlY2soIiNyc291cmNlIil9LmRlYm91bmNlKDIwMCkoKSwhMH19fSwiI3J6aXBkdW1wIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSYmYSl7dmFyIGM9dGhpcyxkPWJbMF0uZmlsZXNbMF07aWYoZCYmIWMuaXNTdHJlYW1pbmcpe3ZhciBlPSEhZC5zdHJlYW07eC5zcmMuemlwPWQubmFtZS5zcGxpdCgiLyIpLmxhc3QoKTt0cnl7KGU/Yy5zdGFydFVuemlwU3RyZWFtKGQpOmMuc3RhcnRVbnppcFN5bmMoZCkpLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGI9YS5pbmZvOyQuZXh0ZW5kKGMuVW56aXBTdHJlYW0sT2JqZWN0LnJlamVjdChhLFsiaW5mbyJdKSksYy5VbnppcFRvPWIuZGJzLGMubXkucmVjYWxjKCIjcnR1bnppcGRicyIpLGIuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5zZWN1cml0eT8xOjB9KS5zdW0oKSYmZnVuY3Rpb24oKXt4LnRndC5vcHRzPXgudGd0Lm9wdHMuYWRkKCJhY2wiKS5zbGljZSgwKSxjLm15LnJlY2FsYygiI3J0dW56aXBvcHRzIil9LmRlbGF5KDUwKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjb25zb2xlLmxvZygiRmFpbCBzdGFydGluZyB1bnppcCBzdHJlYW0iLHgsYSl9KS5hbHdheXMoZnVuY3Rpb24oKXtlJiYoYi52YWwobnVsbCksYi50cmlnZ2VyKCJjaGVjayIpKX0pfWNhdGNoKHgpe2N3LmxpYi5ub3RlKCJFcnJvciB1bnppcHBpbmcsIHNlZSBjb25zb2xlIGZvciBkZXRhaWxzLiIsImVycm9yIiksY29uc29sZS5sb2coeCl9fX19LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4geC5zcmMuZGJzLmxlbmd0aHx8eC5zcmMudXJsLmxlbmd0aHx8eC5tb2RlKyIiIT0iemlwInx8Ik11bHRpIj09eC50YXNrfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSJdfSwiI3J6aXBkdW1waW5mbyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5zcmMuemlwPyc8c3BhbiBjbGFzcz0iZmktY2hlY2sgZ3JlZW4gZnM5MCBwcjUiPjwvc3Bhbj4nK3guc3JjLnppcC50cnVuY2F0ZSg2MCwibWlkZGxlIiwiLi4uIik6dGhpcy5sYW5nLlBMQ19aSVBEVU1QfSx3YXRjaDpbIiNyemlwZHVtcCJdLGNzczp7InNlbGY6dHJhbnMiOmZ1bmN0aW9uKHgpe3JldHVybiF4LnNyYy56aXB9fX0sIiNidG4tZm9sZHNyYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLm15LmZpbmQoIiNyc291cmNlIiksYz0iU3luYyI9PXgudGFzayYmYi5hdXRvY29tcGxldGUoIndpZGdldCIpLmlzKCI6dmlzaWJsZSIpO3JldHVybiBudWxsIT1hJiYoYz9iLmF1dG9jb21wbGV0ZSgiY2xvc2UiKTpiLmF1dG9jb21wbGV0ZSgic2VhcmNoIiwiIiksYz0hYyksIjxkaXY+ezF9PC9kaXY+Ii5hc3NpZ24oYz8i4payIjoi4pa8Iil9LGV2ZW50czoiY2xpY2subXkiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pc1VSTCh4LnNyYy51cmwpfX0sd2F0Y2g6WyIjcnNvdXJjZSJdfSwiI3Jzb3VyY2VzIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzOyJNdWx0aSI9PWEuZGF0YS50YXNrJiZhLnNlbGVjdDIoeCx7dGFnczphLkRCcy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOmEubGFuZy5QTENfRlJPTSx0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSwhMCl9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGEubGVuZ3RofHwiTXVsdGkiIT14LnRhc2s/IiI6dGhpcy5sYW5nLkVSUl9GUk9NfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJiJzdHJpbmciIT10eXBlb2YgYSYmKHguc3JjLmRicz1hKSx4LnNyYy5kYnN9LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iTXVsdGkiIT14LnRhc2t9fX0sIiN4c2NyZWRzIjp7Y3NzOntzaGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hIXguc3JjLnppcHx8ISh4Lm1vZGUuZmluZCgiZG9jIil8fHRoaXMuaXNVUkwoeC5zcmMudXJsKXx8eC5tb2RlLmZpbmQoImxpdmUiKSYmdGhpcy5pc0NvdWNoMil9fSx3YXRjaDpbIiNybW9kZSIsIiNyc291cmNlIl19LCIjcnNsb2dpbiI6e2JpbmQ6InNyYy51c2VyIixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnNyYy51Y3R4Lmxlbmd0aH19LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIl8iPT0oYXx8IiIpWzBdP3RoaXMubGFuZy5FUlJfVU5PXzoiIn0sd2F0Y2g6WydpbnB1dFtuYW1lPSJydXNlckN0eCJdJywiI3Jtb2RlIiwiI3Jzb3VyY2UiXX0sIiNyc3Bhc3MiOntiaW5kOiJzcmMucHdkIixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnNyYy51Y3R4Lmxlbmd0aH19LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguc3JjLnVzZXImJiFhP3RoaXMubGFuZy5FUlJfTk9QV0Q6IiJ9LHdhdGNoOlsnaW5wdXRbbmFtZT0icnVzZXJDdHgiXScsIiNybW9kZSIsIiNyc291cmNlIiwiI3JzbG9naW4iXX0sJ2lucHV0W25hbWU9InJ1c2VyQ3R4Il0nOntiaW5kOiJzcmMudWN0eCIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmlzQ291Y2gyfHwheC5tb2RlLmZpbmQoImRvYyIpfHx0aGlzLmlzVVJMKHguc3JjLnVybCl8fHguc3JjLnVzZXJ9fSx3YXRjaDpbIiNybW9kZSIsIiNyc291cmNlIiwiI3JzbG9naW4iXX0sIiNydW5wcmVmaXgiOntiaW5kOiJzcmMudW5wcmVmaXgiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iTXVsdGkiIT14LnRhc2t8fCJ6aXAiPT14Lm1vZGV9fSx3YXRjaDpbIiNybW9kZSJdfSwiI3JmaWx0ZXIiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX0ZJTFRFUil9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguc3JjLmZpbHRlcj1hLmZpbmQoL154Lyk/YS5maWx0ZXIoL154Lyk6YSkseC5zcmMuZmlsdGVyfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIkNvcHkiPT14LnRhc2t8fCJ6aXAiPT14Lm1vZGUmJiF4LnNyYy51cmwmJiJNdWx0aSIhPXgudGFza319LHdhdGNoOlsiI3J6aXBkdW1wIiwiI3Jzb3VyY2UiXX0sIiNyZG9jcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4LnNyYy5pZHMubGVuZ3RoP2N3LmxpYi5qc29uKHguc3JjLmlkcywiICAiKToiIjtpZigiIj09YSlyZXR1cm4geC5zcmMuaWRzPVtdLGE7dmFyIGI7dHJ5e2I9SlNPTi5wYXJzZShhKX1jYXRjaCh4KXt9cmV0dXJuIE9iamVjdC5pc0FycmF5KGIpJiZiLmxlbmd0aCYmIWIuZmluZChmdW5jdGlvbih4KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHh9KXx8KGI9W10pLHguc3JjLmlkcz1iLGF9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7aWYoYSl7dmFyIGI7dHJ5e2I9SlNPTi5wYXJzZShhKX1jYXRjaCh4KXt9cmV0dXJuIE9iamVjdC5pc0FycmF5KGIpJiZiLmxlbmd0aCYmIWIuZmluZChmdW5jdGlvbih4KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHh9KT92b2lkIDA6dGhpcy5sYW5nLkVSUl9ET0NTfX0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJpZHMiIT14LnNyYy5maWx0ZXJ9fSx3YXRjaDpbIiNyZmlsdGVyIiwiI3Jtb2RlIl19LCIjcmZuIjp7YmluZDoic3JjLmZuIixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuImZuIiE9eC5zcmMuZmlsdGVyfHwiemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcmZpbHRlciIsIiNybW9kZSJdfSwiI3JxdWVyeSI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iZm4iIT14LnNyYy5maWx0ZXJ8fCF4LnNyYy5mbnx8InppcCI9PXgubW9kZX19LHdhdGNoOlsiI3JmaWx0ZXIiLCIjcmZuIiwiI3Jtb2RlIl19LCIjcnppcG9wdHMiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1PYmplY3QuY2xvbmUoYS5sYW5nLlRBR19aSVBPUFQsITApO2EuUGhvKCJDb3VjaCIpLnZlcjwiMDAyLiImJmIudGFncy5yZW1vdmUoZnVuY3Rpb24oeCl7cmV0dXJuInFucCI9PXgudmFsdWV9KSx4LnRhZ3MoYil9LGJpbmQ6InNyYy5vcHRzIixjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iemlwIiE9eC5tb2RlfHwiQ29weSI9PXgudGFza3x8eC5zcmMuemlwfHwheC5zcmMudXJsJiYheC5zcmMuZGJzLmxlbmd0aH19LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2VzIiwiI3Jzb3VyY2UiLCIjcnppcGR1bXAiXX0sIiNidG4temlwZHVtcC1jbGVhciI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuY2xlYW5VbnppcCgpLGIubXkuY2hlY2soIiNybW9kZSIpfX0sZXZlbnRzOlsiY2xpY2subXkiXSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguc3JjLnppcHx8InppcCIhPXgubW9kZX19LHdhdGNoOlsiI3J6aXBkdW1wIl19LCIjcnRhcmdldCI6e2RlbGF5OjIwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtmdW5jdGlvbiBjKGIsYyl7YS5teS5jaGVjaygiI3J0YXJnZXQiKSxhLmZpeEhlaWdodC5kZWJvdW5jZSgxMDApKHgpfS9eKFN5bmN8Q29weSkkLy50ZXN0KGIudGFzaykmJnguYXV0b2NvbXBsZXRlKHtkZWxheTowLHNvdXJjZTphLkRCcyxjbG9zZTpmdW5jdGlvbih4LGIpe2EubXkuY2hlY2soIiNidG4tZm9sZHRndCIpfS5kZWJvdW5jZSgxMCksc2VsZWN0OmMuZGVib3VuY2UoMTApLGFwcGVuZFRvOmEubXkucm9vdCgpLG1pbkxlbmd0aDoxZTR9KX0sYmluZDoidGd0LnVybCIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtpZihhKWlmKHRoaXMuaXNVUkwoYSkpe2lmKCF0aGlzLmlzVmFsaWRVUkwoYSkpcmV0dXJuIHRoaXMubGFuZy5FUlJfVE9fVVJMO2lmKCJNdWx0aSIhPXgudGFzayYmIXRoaXMuaXNCdWNrZXRVUkwoYSkpcmV0dXJuIHRoaXMubGFuZy5FUlJfVE99ZWxzZSBpZigheC50Z3QuY3JlYXRlJiYhdGhpcy5QaG8oWyJBbGwiLGFdKSlyZXR1cm4gdGhpcy5sYW5nLkVSUl9UT19NSVNTfSx3YXRjaDpbJ2lucHV0W25hbWU9InJ0Y3JlYXRlZGIiXSddLGxpc3Rlbjp7ZGJsaXN0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihhKXJldHVybiBmdW5jdGlvbigpe2IubXkuY2hlY2soIiNydGFyZ2V0Iil9LmRlYm91bmNlKDIwMCkoKSwhMH19fSwiI2J0bi1mb2xkdGd0Ijp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMubXkuZmluZCgiI3J0YXJnZXQiKSxjPSJNdWx0aSIhPXgudGFzayYmYi5hdXRvY29tcGxldGUoIndpZGdldCIpLmlzKCI6dmlzaWJsZSIpO3JldHVybiBudWxsIT1hJiYoYz9iLmF1dG9jb21wbGV0ZSgiY2xvc2UiKTpiLmF1dG9jb21wbGV0ZSgic2VhcmNoIiwiIiksYz0hYyksIjxkaXY+ezF9PC9kaXY+Ii5hc3NpZ24oYz8i4payIjoi4pa8Iil9LGV2ZW50czoiY2xpY2subXkiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hL14oU3luY3xDb3B5KSQvLnRlc3QoeC50YXNrKX19fSwiI3h0Y3JlZHMiOntjc3M6e3NoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJNdWx0aSIhPXgudGFzayYmKCJDb3B5Ij09eC50YXNrJiYhdGhpcy5pc1VSTCh4LnRndC51cmwpfHwhKHgudGd0LmNyZWF0ZSYmIXRoaXMuREJzLmZpbmQoeC50Z3QudXJsKSYmKHRoaXMuaXNDb3VjaDJ8fHgubW9kZS5maW5kKCJkb2MiKSkpJiYhKHgubW9kZS5maW5kKCJkb2MiKXx8dGhpcy5pc1VSTCh4LnRndC51cmwpfHx4Lm1vZGUuZmluZCgibGl2ZSIpJiZ0aGlzLmlzQ291Y2gyKSl9fSx3YXRjaDpbIiNybW9kZSIsIiNydGFyZ2V0Il19LCIjcnRsb2dpbiI6e2JpbmQ6InRndC51c2VyIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiFhJiZ4LnRndC5jcmVhdGUmJih0aGlzLmlzVVJMKHgudGd0LnVybCl8fCF0aGlzLkRCcy5maW5kKHgudGd0LnVybCkmJih0aGlzLmlzQ291Y2gyJiYheC5tb2RlLmZpbmQoIm9uY2UiKXx8eC5tb2RlLmZpbmQoImRvYyIpKSk/dGhpcy5sYW5nLkVSUl9VUkVRX0NUOiJfIj09KGF8fCIiKVswXT90aGlzLmxhbmcuRVJSX1VOT186IiJ9LHdhdGNoOlsiI3Jtb2RlIiwnaW5wdXRbbmFtZT0icnRjcmVhdGVkYiJdJywiI3J0YXJnZXQiXX0sIiNydHBhc3MiOntiaW5kOiJ0Z3QucHdkIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB4LnRndC51c2VyJiYhYT90aGlzLmxhbmcuRVJSX05PUFdEOiIifSx3YXRjaDpbIiNydGxvZ2luIl19LCIjcnByZWZpeCI6e2JpbmQ6InRndC5wcmVmaXgiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iTXVsdGkiIT14LnRhc2t9fX0sJ2lucHV0W25hbWU9InJ0Y3JlYXRlZGIiXSc6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4oeC50Z3QuY3JlYXRlPW51bGwhPWE/ISFhLmxlbmd0aDp4LnRndC5jcmVhdGUpP1siY3JlYXRlIl06W119LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC50Z3QudXJsfHwhIXRoaXMuREJzLmZpbmQoeC50Z3QudXJsKX19LHdhdGNoOlsiI3J0YXJnZXQiXX0sIiN4dG5vbnppcCI6e2Nzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiJ6aXAiPT14Lm1vZGV9fSx3YXRjaDpbIiNybW9kZSJdfSwiI3J0emlwZmlsZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5tb2RlKyIiIT0iemlwIiYmKHgudGd0LnppcGZpbGU9IiIpLG51bGw9PWE/eC50Z3QuemlwZmlsZTooeC50Z3QuemlwZmlsZT1hLmNvbXBhY3QoKSxhKX0sY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IXguc3JjLnVybCYmIXguc3JjLmRicy5sZW5ndGh8fCEheC5zcmMuemlwfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyemlwZmlsZSJdfSwiI3J0dW56aXBvcHRzIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19VTlpJUE9QVCl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4LnRndC5vcHRzO3ZhciBiPXgudGd0Lm9wdHM7cmV0dXJuIHgudGd0Lm9wdHM9YSxiLmZpbmQoImNyZWF0ZSIpIT1hLmZpbmQoImNyZWF0ZSIpJiYodGhpcy5VbnppcFRvPXRoaXMuVW56aXBUby5jbG9uZSghMCksdGhpcy5teS5maW5kKCIjcnR1bnppcGRicyIpLmZpbmQoImlucHV0I3VuemlwLXRndCIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnRyaWdnZXIoImJsdXIiKX0pKSx4LnRndC5vcHRzfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iemlwIiE9eC5tb2RlfHwiQ29weSI9PXgudGFza3x8IXguc3JjLnppcH19LHdhdGNoOlsiI3Jtb2RlIiwiI3J6aXBkdW1wIl19LCIjcnR1bnppcGRicyI6e2JpbmQ6InRoaXMuVW56aXBUbyIsaW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGxpc3Q6JzxkaXYgY2xhc3M9IncxMDBwIGZzOTAgbXQzIGNiIj48L2Rpdj4nLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLlVuemlwREJSb3d9LGNoZWNrOiEwLG1lcmdlOiExLGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWUrIiAiK3RoaXMuZGF0YS50Z3Qub3B0c30saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLmNyYzIoeCx0aGlzLmRhdGEudGd0Lm9wdHMpfX0sIiN4cnR1bnppcGRicyI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iemlwIiE9eC5tb2RlfHwhdGhpcy5VbnppcFRvLmxlbmd0aH19LHdhdGNoOlsiI3J0dW56aXBkYnMiLCIjcm1vZGUiXX0sIiNydHppcHdhcm4iOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9Yy5sYW5nLGU9W2QuTVNHX1pJUF9XQVJOXTtyZXR1cm4iemlwIiE9eC5tb2RlP2IucGFyZW50KCkuYWRkQ2xhc3MoImhpZGUiKTpiLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJoaWRlIiksYy5jYW5TdHJlYW18fGUucHVzaChkLk1TR19aSVBfQkxPQiksZS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuJzxkaXYgY2xhc3M9Im10MiBtYjQiPicreCsiPC9kaXY+In0pfSx3YXRjaDpbIiNybW9kZSIsIiNyc291cmNlIiwiI3J6aXBmaWxlIl19fSxpc0J1Y2tldFVSTDpmdW5jdGlvbih4LGEpe3JldHVybiBhPy9eaHR0cFtzXT86XC9cL1teXC86XHNdKzpbXlwvOkBcc10rQFteXC9cc117Mix9KFwvW15cL1xzXSspK1tcL10/JC8udGVzdCh4KTovXmh0dHBbc10/OlwvXC9bXlwvXHNdezIsfShcL1teXC9cc10rKStbXC9dPyQvLnRlc3QoeCl9LGlzTG9jYWxEQjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLlBobygiQ291Y2giKS5wb3J0LGI9IiI7cmV0dXJuIHRoaXMuaXNVUkwoeCk/KHguaW5kZXhPZigibG9jYWxob3N0OiIrYSsiLyIpPi0xfHx4LmluZGV4T2YoIjEyNy4wLjAuMToiK2ErIi8iKT4tMSkmJihiPXguc3BsaXQoIj8iKVswXS5zcGxpdCgiLyIpLmNvbXBhY3QoITApLmxhc3QoKSk6Yj14LGJ9LGlzVVJMOmZ1bmN0aW9uKHgpe3JldHVybi9eaHR0cFtzXT86XC9cLy8udGVzdCh4KX0saXNWYWxpZFVSTDpmdW5jdGlvbih4KXt2YXIgYT0hMTt0cnl7YT1uZXcgVVJMKHgpfWNhdGNoKHgpe31yZXR1cm4gYX0sZml4SGVpZ2h0OmZ1bmN0aW9uKHgpe3guaGVpZ2h0KDApLmhlaWdodCgoeFswXS5zY3JvbGxIZWlnaHQtMTApLmNsYW1wKDE4LDEwMCkpfSxjbGVhbkRhdGE6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczskLmV4dGVuZCh4LHtkb2M6IiIsbW9kZTpbIm9uY2UiXX0pLCQuZXh0ZW5kKHguc3JjLHt1cmw6IiIsZGJzOltdLHVzZXI6IiIscHdkOiIiLHVjdHg6W10sZmlsdGVyOltdLGZuOiIiLGlkczpbXSxxdWVyeTp7fSx1bnByZWZpeDoiIix6aXA6ITEsb3B0czpbXX0pLCQuZXh0ZW5kKHgudGd0LHt1cmw6IiIsdXNlcjoiIixwd2Q6IiIsY3JlYXRlOiExLHByZWZpeDoiIixxOiIiLG46IiIsYWNsOiExLHppcGZpbGU6IiIsb3B0czpbImNyZWF0ZSJdfSksYS5teS5maW5kKCIjcnR6aXBmaWxlIikudmFsKG51bGwpLGEuVW56aXBUbz1bXSwhYS5Eb250U3RvcFVuemlwJiZhLlVuemlwU3RyZWFtLmFib3J0JiYoYS5VbnppcFN0cmVhbS5hYm9ydCgpLGEuVW56aXBTdHJlYW09e30pfSxjbGVhblVuemlwOmZ1bmN0aW9uKCl7dmFyIHg9dGhpczt4LmRhdGEuc3JjLnppcD0hMSx4Lm15LmZpbmQoIiNydHppcGZpbGUiKS52YWwobnVsbCkseC5VbnppcFRvPVtdLHguVW56aXBEQm1hcD17fSx4LlVuemlwU3RyZWFtLmFib3J0KCkseC5VbnppcFN0cmVhbT17fX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5TZWwyU2Nyb2xsKHgsITApLCJTeW5jIj09YS5kYXRhLnRhc2smJnguZmluZCgiI3Jzb3VyY2UiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKSwiTXVsdGkiIT1hLmRhdGEudGFzayYmeC5maW5kKCIjcnRhcmdldCIpLmF1dG9jb21wbGV0ZSgiZGVzdHJveSIpLCFhLkRvbnRTdG9wVW56aXAmJmEuVW56aXBTdHJlYW0uYWJvcnQmJmEuVW56aXBTdHJlYW0uYWJvcnQoKX0sc3R5bGU6eyIgdGV4dGFyZWEiOiJyZXNpemU6bm9uZTt3b3JkLXdyYXA6YnJlYWstd29yZDsiLCIgLm15LWVycm9yLXRpcCI6InBhZGRpbmc6MC4xZW0gMCAwLjJlbSAwOyIsIiAudWktd2lkZ2V0IjoiZm9udC1zaXplOjEwMCUiLCIgLnVpLWF1dG9jb21wbGV0ZSI6ImxpbmUtaGVpZ2h0OjEuM2VtOyBtYXgtaGVpZ2h0OjE5dmg7IG92ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDsiLCIgLncxMDBwLTIwIjoid2lkdGg6Y2FsYygxMDAlIC0gMjBweCk7IiwiIC5iZm9sZCI6eyIiOlsid2lkdGg6MjBweCFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7ICIsImJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyIsIm1hcmdpbi1sZWZ0Oi0yMXB4OyB6LWluZGV4OisxOyJdLCIgZGl2IjoiZm9udC1zaXplOjYwJTsgb3BhY2l0eTowLjU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6My4yZW07d2lkdGg6MTAwJTsifSwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDoxMDlweDsiLCIuaGFzemlwIC5ub3ppcCI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiIC56aXBvbmx5IjoiZGlzcGxheTpub25lIWltcG9ydGFudDsiLCIuaGFzemlwIC56aXBvbmx5IjoiZGlzcGxheTppbmxpbmUhaW1wb3J0YW50OyIsIiAubXktcm93LCAubXktZ3JvdXAiOiJ0cmFuc2l0aW9uOiBoZWlnaHQgMC4xcywgbWluLWhlaWdodCAwLjFzLCBwYWRkaW5nIDAuMDVzOyBtaW4taGVpZ2h0OiAxNXB4OyBoZWlnaHQ6YXV0bzsiLCIgLnNoaWRlIjoib3ZlcmZsb3c6aGlkZGVuOyBtaW4taGVpZ2h0OjA7IGhlaWdodDowcHg7IHBhZGRpbmctdG9wOjAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50OyIsIiB1bCI6eyIudWktYXV0b2NvbXBsZXRlIjoibWF4LXdpZHRoOmNhbGMoMTAwJSAtIDExNXB4KTsiLCIgbGkudWktbWVudS1pdGVtIjoid29yZC1icmVhazogYnJlYWstYWxsOyJ9fSxaaXBUZXN0ZXI6e3JlcXVpcmU6W3sid2luZG93LldyaXRhYmxlU3RyZWFtIjoibGliL3dlYnN0cmVhbXMuanMifSx7IndpbmRvdy5mZmxhdGUiOiJsaWIvZmZsYXRlLmpzIn1dLGluaXQ6Wyc8ZGl2IGlkPSJ4LWR1bW15Ij48L2Rpdj4nXSx1aTp7IiN4LWR1bW15IjpmdW5jdGlvbigpe319fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7ZnVuY3Rpb24gYygpe3gucGFyZW50KCkuY3NzKCJoZWlnaHQiLCJhdXRvIil9YS5sYW5nW2IudGFza10mJiQuZXh0ZW5kKGEubGFuZyxhLmxhbmdbYi50YXNrXSksYS5EQnM9T2JqZWN0LmtleXMoYS5QaG8oIkFsbCIpKS5zb3J0KCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpLmFzc2lnbih7X3JlcGxpY2F0b3I6YS5QaG8oIlJlcGxpY2F0b3JEQiIpfSkpLGEuaXNDb3VjaDI9YS5QaG8oIkNvdWNoIikudmVyPj0iMDAyLiIsYS5jYW5aaXA9bnVsbCE9PWEuUGhvKCJjYW5aaXAiKT9hLlBobygiY2FuWmlwIik6ImZldGNoImluIHdpbmRvdyYmIlVpbnQ4QXJyYXkiaW4gd2luZG93JiYiQmxvYiJpbiB3aW5kb3cmJiJNYXAiaW4gd2luZG93JiZudWxsLGEuY2FuU3RyZWFtPSF3aW5kb3cuc2FmYXJpJiYic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IsIkNvcHkiIT1iLnRhc2smJmIuc3JjLm9wdHMucHVzaCgiYWNsIikseC5maW5kKCJ0ZXh0YXJlYSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpO3gub24oImlucHV0Lm15LGtleXVwLm15IixmdW5jdGlvbigpe2EuZml4SGVpZ2h0KHgpfSl9KSx4LnBhcmVudCgpLm9uKCJkcmFnc3RvcCIsYykseC50aGVuKGZ1bmN0aW9uKCl7eC5maW5kKCJ0ZXh0YXJlYSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnRyaWdnZXIoImlucHV0Iil9KSxhLlNlbDJTY3JvbGwoeCwhMCksIlN5bmMiPT1iLnRhc2smJmZ1bmN0aW9uKCl7eC5maW5kKCIjcnNvdXJjZSIpLmF1dG9jb21wbGV0ZSgib3B0aW9uIiwibWluTGVuZ3RoIiwwKX0uZGVib3VuY2UoMTAwKSgpLC9eKFN5bmN8Q29weSkkLy50ZXN0KGIudGFzaykmJmZ1bmN0aW9uKCl7eC5maW5kKCIjcnRhcmdldCIpLmF1dG9jb21wbGV0ZSgib3B0aW9uIiwibWluTGVuZ3RoIiwwKX0uZGVib3VuY2UoMTAwKSgpfS5kZWJvdW5jZSgyMCkpLnRoZW4oZnVuY3Rpb24oKXt4LnBhcmVudCgpLnRyaWdnZXIoImxheW91dCIpLGMoKX0uZGVib3VuY2UoMTUwKSl9LEhUTUw6W3tyb3c6IjEwMCUiLHJvd0NzczoibXktcm93IHB0MyBwYjMgZnMxMDAiLGxhYmVsOiIxMTVweCIsbGFiZWxDc3M6Im15LWxhYmVsIGRpYiB2YXQgbXQ5In0sJzxkaXYgY2xhc3M9ImZzMTMwIG1iMiBsaDE2MCBib2xkZXIgY20iPicsJzxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiA8c3BhbiBpZD0icnRpdGxlIj57VFhUX1RJVExFfTwvc3Bhbj4nLCI8L2Rpdj4iLCc8Zm9ybSBpZD0ieHJjcmVhdGUiIGF1dG9jb21wbGV0ZT0ib2ZmIj4nLFsie0xCTF9NT0RFfSIsImRpdiNybW9kZS5kaWIudmF0LmZzMTA1LmxoMTgwIl0sWyJ7TEJMX0lEfSIsImlucCNyZG9jaWQudzEwMHAiLHtwbGM6IntQTENfSUR9In0sIm1zZyJdLCc8ZGl2IGlkPSJ4c291cmNlIiBjbGFzcz0ibXktZ3JvdXAiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX0ZST019PC9zcGFuPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPicsInR4dCNyc291cmNlLncxMDBwLmZzMTAwLmxoMTMwIix7cGxjOiJ7UExDX0ZST019In0sIm1zZyIsIjwvZGl2PiIsInNwbiNidG4tZm9sZHNyYy5wc2V1ZG9saW5rLnRkbi5iZm9sZC5kaWIudmF0Iix7dHh0OiI8ZGl2PuKWvDwvZGl2PiJ9XSwiPC9kaXY+IiwnPGRpdiBpZD0ieHppcGR1bXAiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX1pJUERVTVB9PC9zcGFuPicsJzxpbnB1dCBpZD0icnppcGR1bXAiIHR5cGU9ImZpbGUiIGFjY2VwdD0iLnppcCwgYXBwbGljYXRpb24vemlwIiBjbGFzcz0idzEwMHAgY3AgbzAiIHN0eWxlPSJoZWlnaHQ6Mi4xZW07IiBwbGFjZWhvbGRlcj0ie1BMQ19aSVBEVU1QfSI+JywnPGRpdiBpZD0icnppcGR1bXBpbmZvIiBjbGFzcz0iZGIgdzEwMHAgYmctZ3JheTQgYnIyIHBsNSBwdDMgdHJhbnMiIHN0eWxlPSJtYXJnaW4tdG9wOi0yLjFlbTsgaGVpZ2h0OjIuMWVtOyI+e1BMQ19aSVBEVU1QfTwvZGl2PicsJzxkaXYgaWQ9ImJ0bi16aXBkdW1wLWNsZWFyIiBjbGFzcz0icGFiYyBsaDEwMCBwNyBjcCBvNTAiIHN0eWxlPSJ0b3A6NHB4O3JpZ2h0OjA7Ij7inJU8L2Rpdj4nXSwiPC9kaXY+IiwnPGRpdiBpZD0ieHNzaGltIiBjbGFzcz0iaGlkZSI+JyxbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfRlJPTX08L3NwYW4+JywiaW5wI3Jzb3VyY2VzLncxMDBwLmZzMTEwLmxoMTYwIiwibXNnIl0sJzxkaXYgaWQ9InhzY3JlZHMiIGNsYXNzPSJteS1ncm91cCBzaGlkZSI+JyxbIntMQkxfU1JDX0NSRURTfSIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwcCBwcjYiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvMzAiPjxzcGFuIGNsYXNzPSJmaS10b3JzbyI+PC9zcGFuPjwvZGl2PicsImlucCNyc2xvZ2luLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VTkFNRX0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvNDAiPjxzcGFuIGNsYXNzPSJmaS1rZXkiPjwvc3Bhbj48L2Rpdj4nLCJwd2QjcnNwYXNzLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VUFdEfSIsYXV0b2NvbXBsZXRlOiJuZXctcGFzc3dvcmQifSwibXNnIiwiPC9kaXY+IiwnPGRpdiBjbGFzcz0iZGliIHZhdCB3MTAwcCI+PGxhYmVsIGNsYXNzPSJkaWIgbXQzIHZhdCBjcCBncmF5MSBsaDE1MCBtYjMgdzEwMHAgZnM5NSI+JywnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJydXNlckN0eCIgdmFsdWU9Il9hZG1pbiIgY2xhc3M9Im1yNiBmczExMCBsaDEwMCI+Jywie1RYVF9VQ1RYfSIsIjwvbGFiZWw+PC9kaXY+Il0sIjwvZGl2PiIsWyJ7TEJMX1VOUFJFRklYfSIsImlucCNydW5wcmVmaXgudzc1cC5mczk1LmxoMTMwIix7cGxjOiJ7UExDX1VOUFJFRklYfSIsdGl0bGU6IntUSVBfVU5QUkVGSVh9In1dLFsie0xCTF9GSUxURVJ9IiwiZGl2I3JmaWx0ZXIuZGliLnZhdC5saDE2MC5wdDIucGIyIl0sWyJ7TEJMX0RPQ1N9IiwidHh0I3Jkb2NzLncxMDBwLmZzOTUubGgxMzAiLHtwbGM6IntQTENfRE9DU30iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciXSxbIntMQkxfRk59IiwiaW5wI3Jmbi53MTAwcC5mczk1LmxoMTMwIix7cGxjOiJ7UExDX0ZOfSIsYXV0b2NvbXBsZXRlOiJvZmYiLGF1dG9jb3JyZWN0OiJvZmYiLGF1dG9jYXBpdGFsaXplOiJvZmYiLHNwZWxsY2hlY2s6ImZhbHNlIn0sIm1zZyJdLFsie0xCTF9RUll9IiwidHh0I3JxdWVyeS53MTAwcC5mczk1LmxoMTMwIix7cGxjOiJ7UExDX1FSWX0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciXSwnPGRpdiBjbGFzcz0idzEwMHAgaDEwIG10MTAgb2ggYnRkIj48L2Rpdj4nLCI8L2Rpdj4iLCc8ZGl2IGlkPSJ4dG5vbnppcCIgY2xhc3M9IncxMDBwIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9UT308L3NwYW4+JywnPGRpdiBjbGFzcz0iZGliIHZhdCB3MTAwcCI+JywidHh0I3J0YXJnZXQudzEwMHAuZnMxMDAubGgxMzAiLHtwbGM6IntQTENfVE99In0sIm1zZyIsIjwvZGl2PiIsInNwbiNidG4tZm9sZHRndC5wc2V1ZG9saW5rLnRkbi5iZm9sZC5kaWIudmF0Iix7dHh0OiI8ZGl2PuKWvDwvZGl2PiJ9XSwnPGRpdiBpZD0ieHRjcmVkcyIgY2xhc3M9Im15LWdyb3VwIHNoaWRlIj4nLFsie0xCTF9UR1RfQ1JFRFN9IiwnPGRpdiBjbGFzcz0iZGliIHZhdCB3NTBwIHByNiI+JywnPGRpdiBjbGFzcz0iZGliIHZhdCBtci0yMCB6aTEgdGFjIHcyMCBwdDMgcGwyIG8zMCI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIj48L3NwYW4+PC9kaXY+JywiaW5wI3J0bG9naW4udzEwMHAuZnM5NS5saDEzMC5wbDIwIix7cGxjOiJ7UExDX1VOQU1FfSIsYXV0b2NvbXBsZXRlOiJvZmYiLGF1dG9jb3JyZWN0OiJvZmYiLGF1dG9jYXBpdGFsaXplOiJvZmYiLHNwZWxsY2hlY2s6ImZhbHNlIn0sIm1zZyIsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwcCI+JywnPGRpdiBjbGFzcz0iZGliIHZhdCBtci0yMCB6aTEgdGFjIHcyMCBwdDMgcGwyIG80MCI+PHNwYW4gY2xhc3M9ImZpLWtleSI+PC9zcGFuPjwvZGl2PicsInB3ZCNydHBhc3MudzEwMHAuZnM5NS5saDEzMC5wbDIwIix7cGxjOiJ7UExDX1VQV0R9IixhdXRvY29tcGxldGU6Im5ldy1wYXNzd29yZCJ9LCJtc2ciLCI8L2Rpdj4iXSwiPC9kaXY+IixbIntMQkxfUFJFRklYfSIsImlucCNycHJlZml4Lnc3NXAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19QUkVGSVh9In1dLFsiICIsJzxsYWJlbCBjbGFzcz0iZGliIGNwIGdyYXkxIGxoMTIwIGZzOTUgdzUwcCI+JywnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJydGNyZWF0ZWRiIiB2YWx1ZT0iY3JlYXRlIiBjbGFzcz0ibXI2IGZzMTEwIj4nLCJ7VFhUX05FV1RHVH0iLCI8L2xhYmVsPiJdLCI8L2Rpdj4iLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9aSVBGSUxFfTwvc3Bhbj4nLCJpbnAjcnR6aXBmaWxlLncxMDBwLmZzMTAwLmxoMTMwIix7cGxjOiJ7UExDX1pJUEZJTEV9In1dLFsie0xCTF9aSVBPUFR9IiwiZGl2I3J6aXBvcHRzLmRpYi52YXQubGgxNjAucHQyLnBiMiJdLCc8ZGl2IGlkPSJ4cnR1bnppcGRicyIgY2xhc3M9Im10LTUgaGlkZSI+JyxbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfVU5aSVBEQlN9PC9zcGFuPicsJzxkaXYgaWQ9InJ0dW56aXBkYnMiY2xhc3M9ImRpYiB2YXQgdzEwMHAgcGI1IG1iLTUiIHN0eWxlPSJtYXgtaGVpZ2h0OjIwZW07Ij48L2Rpdj4nXSxbIntMQkxfVU5aSVBPUFR9IiwiZGl2I3J0dW56aXBvcHRzLmRpYi52YXQubGgxNjAucHQ1LnBiMiJdLCI8L2Rpdj4iLFsiICIsJzxkaXYgaWQ9InJ0emlwd2FybiIgY2xhc3M9ImRpYiB2YXQgdzEwMHAgZnM4NSBsaDEzMCBvODAiPjwvZGl2PiddLCI8L2Zvcm0+IiwnPGRpdiBjbGFzcz0ibXQxMCBwdDEzIGJ0ZCI+JywnPGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi1jbGVhciI+e0JUTl9DTEVBUn08L2J1dHRvbj48L2Rpdj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+JywnPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCI+e0JUTl9DQU5DRUx9PC9idXR0b24+JywiPC9kaXY+IiwnPGRpdiBpZD0iemlwLXRlc3RlciIgY2xhc3M9ImhpZGUiPjwvZGl2PiddLFVuemlwREJSb3c6e2lkOiJjdy5QaG90b24uU3luY1Rhc2suVW56aXBEQlJvdyIsaW5oZXJpdDpbIkRCcyIsIlBobyIsIlVuemlwT3B0cyJdLGRhdGE6e25hbWU6IiIsdGFyZ2V0OiIiLGRvY19jb3VudDowLHJhd19zaXplOjAsc2VjdXJpdHk6bnVsbH0saW5pdDpmdW5jdGlvbih4KXt4Lmh0bWwodGhpcy5IVE1MKSx0aGlzLmRhdGEudGFyZ2V0PXRoaXMuZGF0YS5uYW1lLHRoaXMuREJzPWN3LmxpYi5hMm8odGhpcy5EQnMpfSx1aTp7IiNidG4tcmVtb3ZlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJigxPT10aGlzLm15LnBhcmVudCgpLlVuemlwVG8ubGVuZ3RoP3RoaXMubXkucGFyZW50KCkubXkuZmluZCgiI2J0bi1jYW5jZWwiKS50cmlnZ2VyKCJjbGljay5teSIpOnRoaXMubXkucmVtb3ZlKCkpfSxldmVudHM6WyJjbGljay5teSJdfSwiI3VuemlwLXNyYyI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLlVuemlwT3B0cygpLmZpbmQoImNyZWF0ZSIpLGM9dGhpcy5QaG8oWyJBbGwiLHgudGFyZ2V0XSk7cmV0dXJuJzxzcGFuIGNsYXNzPSJmczExNSBib2xkZXIiPnsxfTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im80MCBmaS1hcnJvdy1yaWdodCBwbDIiPjwvc3Bhbj4gezJ9Jy5hc3NpZ24oeC5uYW1lLnRydW5jYXRlKDQwLCJtaWRkbGUiLCIuLi4iKS5lc2NhcGVIVE1MKCksYz8iIjpiPyc8c3BhbiBjbGFzcz0icGw0IHByNSBwdDEgcGIyIGJnLWdyZWVuMiBmczkwIHdoaXRlIGZ3NjAwIG53IGJyMiI+TmV3PC9zcGFuPic6JzxzcGFuIGNsYXNzPSJwbDQgcHI1IHB0MSBwYjIgYmctcmVkMiBmczkwIHdoaXRlIGZ3NjAwIGJyMiI+Tm8gREI8L3NwYW4+Jyl9LHdhdGNoOlsiI3VuemlwLXRndCJdfSwiI3VuemlwLXRndCI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgudGFyZ2V0PWEpLHgudGFyZ2V0fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybi9eW2EtejAtOV8kXChcKVwrXC1cL10rJC8udGVzdChhKT8vXlthLXpdLy50ZXN0KGEpP3RoaXMuVW56aXBPcHRzKCkuZmluZCgiY3JlYXRlIil8fHRoaXMuUGhvKFsiQWxsIixhXSk/dm9pZCAwOiJEQiBkb2VzbuKAmXQgZXhpc3QiOiJNdXN0IHN0YXJ0IHdpdGggYS16IjoiT25seSBsb3dlcmNhc2UgYS16LCAwLTkgYW5kICBfJCgpKy0gYWxsb3dlZCJ9LGxpc3Rlbjp7ZGJsaXN0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihhKXJldHVybiBmdW5jdGlvbigpe2IubXkuY2hlY2soIiN1bnppcC10Z3QiKX0uZGVib3VuY2UoMjAwKSgpLCEwfX19LCIjdW56aXAtaW5mbyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj1PYmplY3QuaXNBcnJheSh4LmZpbHRlcik/eC5maWx0ZXI6W10sYz1iLmxlbmd0aD9iLmxlbmd0aDp4LmRvY19jb3VudCsoeC5kb2NfZGVsX2NvdW50fHwwKSxkPSIiLGU9IiI7aWYoZD1iLmxlbmd0aD8iUGFydGlhbCBkdW1wOiB7MX0gZG9jezJ9Ii5hc3NpZ24oYi5sZW5ndGgsYi5sZW5ndGg+MT8icyI6IiIpOiJ7MX0gZG9jezJ9LCB7M30gcmF3Ii5hc3NpZ24oYz4xZTM/Yy5hYmJyKDEpLnJlcGxhY2UoIm0iLCJNIik6YyxjPjE/InMiOiIiLHgucmF3X3NpemUuYnl0ZXMoMikucmVwbGFjZSgvQiQvLCJiIikpLG51bGwhPXguc2VjdXJpdHkpe3ZhciBmPSQuZXh0ZW5kKCEwLHthZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LHguc2VjdXJpdHkpLGc9W2YuYWRtaW5zLm5hbWVzLGYuYWRtaW5zLnJvbGVzLGYubWVtYmVycy5uYW1lcyxmLm1lbWJlcnMucm9sZXNdLmZsYXR0ZW4oKS5sZW5ndGg7ZT0nPHNwYW4gY2xhc3M9InsxfSI+PC9zcGFuPiB7Mn0gQUNMLiAnLmFzc2lnbihnPyJmaS1sb2NrIGdyZWVuMSI6ImZpLXVubG9jayBvcmFuZ2UxIixnPyJIYXMiOiJFbXB0eSIpfXJldHVybiBlK2R9fX0sSFRNTDonPGRpdiBpZD0iYnRuLXJlbW92ZSIgY2xhc3M9ImZyIHA1IGNwIHJlZDEgbGgxMDAiIHRpdGxlPSJEbyBub3QgcmVzdG9yZSB0aGlzIERCIj7inJU8L2Rpdj48ZGl2IGNsYXNzPSJ3NDBwIGZyIj48aW5wdXQgaWQ9InVuemlwLXRndCIgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIG10MyIgcGxhY2Vob2xkZXI9IlRhcmdldCBEQiBuYW1lIj48L2Rpdj48ZGl2IGlkPSJ1bnppcC1zcmMiIGNsYXNzPSJ3NTVwIGxoMTMwIHB0MyBtYjMgd2JhIj48L2Rpdj48ZGl2IGlkPSJ1bnppcC1pbmZvIiBjbGFzcz0idzEwMHAgbWIyIGZzOTAgbGgxMjAgbzcwIj48L2Rpdj4nfSxydW5aaXA6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9Ik11bHRpIj09Yy50YXNrLGU9Yi5EdW1wWmlwLGY9KGMudGd0LnppcGZpbGUse2RiczooZD9jLnNyYy5kYnMudW5pcXVlKCk6W2Muc3JjLnVybF0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm57dXJsOngsZHJvcDpPYmplY3Quc2VsZWN0KGMuc3JjLFsiZmlsdGVyIiwiZm4iLCJpZHMiLCJxdWVyeSJdKX19KSxuYW1lOmMudGd0LnppcGZpbGUucmVwbGFjZSgvXC56aXAkL2ksIiIpfHwiZHVtcCIsb3B0czpjLnNyYy5vcHRzfSk7cmV0dXJuIHgubW9kYWwoe3Jvb3Q6YSxkYXRhOmYsbWFuaWZlc3Q6ZSxnbG9iYWw6ITEsY2xvc2U6ITEsZXNjOiExLGFsaWduOiJib3R0b206MTJweDtyaWdodDoyMHB4OyIsY3NzOiJwMTAgeGdyYXkiLGRyYWc6Ii5jbSIsd2lkdGg6NDUwfSkudGhlbihmdW5jdGlvbigpe30pLmZhaWwoZnVuY3Rpb24oeCl7Y29uc29sZS5sb2coeCksY3cubGliLm5vdGUoIkZhaWxlZCB0byBzdGFydCBzdHJlYW1pbmcgam9iLiBTZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLCJlcnJvciIpfSl9LHJ1blVuZHVtcDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD0iTXVsdGkiPT1jLnRhc2ssZT0kLmV4dGVuZCghMCx7fSxiLlVuZHVtcCk7Yy50Z3QuemlwZmlsZSxkP2Muc3JjLmRicy51bmlxdWUoKTpjLnNyYy51cmw7Yi5VbnppcERCbWFwPXt9LGIuVW56aXBUby5mb3JFYWNoKGZ1bmN0aW9uKHgpe2IuVW56aXBEQm1hcFt4Lm5hbWVdPXgudGFyZ2V0fSksJC5leHRlbmQoZSxPYmplY3Quc2VsZWN0KGIsWyJVbnppcFN0cmVhbSIsIlVuemlwREJtYXAiXSkpO3ZhciBmPXtkb2NzVG9TYXZlOmIuZG9jc1RvU2F2ZSxkYnM6Yi5VbnppcFRvLm1hcChmdW5jdGlvbih4KXtyZXR1cm57c3JjOngubmFtZSxuYW1lOngudGFyZ2V0LGZpbHRlcjp4LmZpbHRlcix0b3RhbFNpemU6eC5yYXdfc2l6ZSx0b3RhbERvY3M6eC5kb2NfY291bnQrKHguZG9jX2RlbF9jb3VudHx8MCksc2VjdXJpdHk6eC5zZWN1cml0eSxjbHVzdGVyOnguY2x1c3Rlcnx8bnVsbCxwcm9wczp4LnByb3BzfHxudWxsLGRvbmVEb2NzOjB9fSksb3B0czpjLnRndC5vcHRzfTtyZXR1cm4geC5tb2RhbCh7cm9vdDphLGRhdGE6ZixtYW5pZmVzdDplLGdsb2JhbDohMSxjbG9zZTohMSxlc2M6ITEsYWxpZ246ImJvdHRvbToxMnB4O3JpZ2h0OjIwcHg7Iixjc3M6InAxMCB4Z3JheSIsZHJhZzoiLmNtIix3aWR0aDo0NTB9KS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhPXguc3RhdHVzO3JldHVybiJhYm9ydGVkIj09YT9jdy5saWIubm90ZShiLmxhbmcuRVJSX1VOWklQX0FCUlQsImVycm9yIiw4ZTMpOiJkb25lIj09YT9jdy5saWIubm90ZShiLmxhbmcuTVNHX1VOWklQX09LLCJvayIsOGUzKTp2b2lkIDB9KS5mYWlsKGZ1bmN0aW9uKHgpe2IuVW56aXBTdHJlYW0uYWJvcnQoKSxjb25zb2xlLmxvZyh4LGYpLGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfVU5aSVBfRkFJTCwiZXJyb3IiLDVlMyl9KS5hbHdheXMoZnVuY3Rpb24oKXtiLmRvY3NUb1NhdmU9W119KX0sc3RhcnRVbnppcFN0cmVhbTpmdW5jdGlvbih4KXt2YXIgYSxiPXRoaXMsYz1iLmRhdGEsZD0kLkRlZmVycmVkKCksZT0hMSxmPSExLGc9ITEsaD0hMSxpPVtdLGo9bmV3IFVpbnQ4QXJyYXkoJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6WycuY29kZXMoKSksaz1uZXcgVWludDhBcnJheSgneyJuZXdfZWRpdHMiOmZhbHNlLCJkb2NzIjonLmNvZGVzKCkpLGw9bmV3IFVpbnQ4QXJyYXkoIl19Ii5jb2RlcygpKSxtPW5ldyBVaW50OEFycmF5KCJ9Ii5jb2RlcygpKSxuPW5ldyBmZmxhdGUuVW56aXAoRSk7bi5yZWdpc3RlcihmZmxhdGUuQXN5bmNVbnppcEluZmxhdGUpO3ZhciBvPXguc3RyZWFtKCkscD1bXSxxPW8uZ2V0UmVhZGVyKCkscj1iLmRvY3NUb1NhdmUscz0xLHQ9MCx1PTAsdj0hMTtiLmlzU3RyZWFtaW5nPSEwLGMuc3JjLnppcD14Lm5hbWU7dmFyIHc9ITEseT1zZXRJbnRlcnZhbChDLDE3KSx6PXNldEludGVydmFsKEEsMyk7cmV0dXJuIGQucHJvbWlzZSgpO2Z1bmN0aW9uIEEoKXshZiYmcC5sZW5ndGgmJnAuc2hpZnQoKS5zdGFydCgpfWZ1bmN0aW9uIEIoKXt0cnl7Y2xlYXJJbnRlcnZhbCh6KX1jYXRjaCh4KXt9fWZ1bmN0aW9uIEMoKXtmfHxlfHx3fHwodz0hMCxxLnJlYWQoKS50aGVuKEYpKX1mdW5jdGlvbiBEKCl7dHJ5e2NsZWFySW50ZXJ2YWwoeSl9Y2F0Y2goeCl7fX1mdW5jdGlvbiBFKHgpe2lmKGYpcmV0dXJuIHgudGVybWluYXRlKCk7dmFyIGM9eC5uYW1lLG49L1wvX2NvbmZsaWN0c1wvLy50ZXN0KGMpLG89TChjLnNwbGl0KCIvIilbMF0pLHE9KGIuVW56aXBEQm1hcHx8e30pW29dLHc9W10seT0iX2luZm8uanNvbiI9PWM7aWYoeXx8YyE9byYmKG51bGw9PT1iLlVuemlwREJtYXB8fHEpJiYvXlthLXowLTlfJFwoXClcK1wtXC9dK1wvLitcLmpzb24kLy50ZXN0KEwoYykpKXt3LnB1c2gobj9rOmopO3ZhciB6PXtuYW1lOmMsc3JjZGI6byxkZXN0ZGI6cSxzaXplOjAscmVhZHk6ITEsc2F2ZWQ6ITEsZXJyb3JzOltdLHJlcTpudWxsfTtzKz0xLHl8fCh0Kz0xKSx4Lm9uZGF0YT1mdW5jdGlvbihhLGIsYyl7aWYoZilyZXR1cm4geC50ZXJtaW5hdGUoKTthP0koIkZhaWxlZCB1bnppcHBpbmc6ICIrKChhfHwidW5rbm93biBlcnJvciIpKyIiKS50cnVuY2F0ZSgxMDApKTooYiYmKHcucHVzaChiKSx6LnNpemUrPWIubGVuZ3RoKSxjJiZBKCkpfSxwLnB1c2goeCl9ZWxzZSB4Lm9uZGF0YT1mdW5jdGlvbihhLGIsYyl7aWYoZilyZXR1cm4geC50ZXJtaW5hdGUoKX0scC5wdXNoKHgpLHUrPTE7ZnVuY3Rpb24gQSgpe3JldHVybiBmP3gudGVybWluYXRlKCk6KHMtPTEsei5yZWFkeT0hMCx3LnB1c2gobj9tOmwpLHkmJiF2PyhKKCksdj0hMCxhPXtpbmZvOkpTT04ucGFyc2UoRyh3KSkuZG9jc1swXSxwYXVzZTpKLGFib3J0OkksY29udGludWU6Syxub3RpZnk6ZnVuY3Rpb24oeCl7aS5wdXNoKHgpfSxnZXRTdGF0czpmdW5jdGlvbigpe3JldHVybntpc1ppcFJlYWQ6aCxmaWxlczp0LGRyb3A6dX19LGlzUGF1c2VkOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LGlzQWJvcnRlZDpmdW5jdGlvbigpe3JldHVybiBmfHxnfSxpc0RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZ30saXNBbGxSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIGh9fSx3PXZvaWQgMCxkLnJlc29sdmUoYSkpOih6LnJlcT17dXJsOiIiLHByb2Nlc3NEYXRhOiExLG1ldGhvZDoicG9zdCIsZGF0YTpuZXcgQmxvYih3KSxoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19LHIucHVzaCh6KSxIKCJkb2MiLHouc2l6ZSksMD09cyYmKGIuaXNTdHJlYW1pbmc9ITEsZz0hMCxEKCksQigpLHIucHVzaChudWxsKSxIKCJlbmRlZCIpLGQucmVqZWN0KCkpLHZvaWQgMCkpfX1mdW5jdGlvbiBGKHgpe3ZhciBhPXguZG9uZSxiPXgudmFsdWU7YT8obi5wdXNoKGJ8fG5ldyBVaW50OEFycmF5LCEwKSxzLT0xLGg9ITAsRCgpLGNvbnNvbGUubG9nKCJaaXAgZmlsZSBlbmRlZCwgezF9IGZpbGVzIHBpcGVkLCB7Mn0gZmlsZXMgZHJvcHBlZCIuYXNzaWduKHQsdSkpKTpuLnB1c2goYiksdz0hMX1mdW5jdGlvbiBHKHgpe3ZhciBhPW5ldyBVaW50OEFycmF5KHgubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Lmxlbmd0aH0pLnN1bSgpKSxiPTA7cmV0dXJuIHguZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYz14Lmxlbmd0aDthLnNldCh4LGIpLGIrPWN9KSxkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKSkpfWZ1bmN0aW9uIEgoeCxiKXthJiZpLmZvckVhY2goZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpdHJ5e2EoeCxiKX1jYXRjaCh4KXtjb25zb2xlLmxvZygiRXJyb3Igbm90aWZ5aW5nIHVuemlwcGVkIGRvYyBwdW1wcyIseCl9fSl9ZnVuY3Rpb24gSSh4KXtmPSEwLGc9ITAsYi5pc1N0cmVhbWluZz0hMSxiLmRvY3NUb1NhdmUubGVuZ3RoPTAsRCgpLEIoKSxxLmNhbmNlbCgpLnRoZW4oZnVuY3Rpb24oKXtxLnJlbGVhc2VMb2NrKCk7dHJ5e28uY2FuY2VsKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9fSksY29uc29sZS5sb2coIlxuUmVhZGVyIGNhbmNlbGxlZFxuIisoeHx8IiIpKSx4JiZjdy5saWIubm90ZSh4LCIiLDZlMyl9ZnVuY3Rpb24gSigpe2U9ITAsY29uc29sZS5sb2coIlxuUmVhZGVyIHBhdXNlZCwgezF9IGZpbGVzIGluIHRoZSBidWZmZXJcbiIuYXNzaWduKHIubGVuZ3RoKSl9ZnVuY3Rpb24gSygpe2U9ITEsY29uc29sZS5sb2coIlxuUmVhZGVyIHJlc3RhcnRlZFxuIil9ZnVuY3Rpb24gTCh4KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHgpfX0sc3RhcnRVbnppcFN5bmM6ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9KGIuZGF0YSxiLmRvY3NUb1NhdmUpLGQ9JC5EZWZlcnJlZCgpLGU9W10sZj0hMSxnPSExLGg9ITE7cmV0dXJuIHguYXJyYXlCdWZmZXIoKS50aGVuKGZ1bmN0aW9uKHgpe2ZmbGF0ZS51bnppcChuZXcgVWludDhBcnJheSh4KSxmdW5jdGlvbih4LGope3g/Y29uc29sZS5sb2coeCk6T2JqZWN0LmtleXMoaikuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgZD1pKHguc3BsaXQoIi8iKVswXSksaz0iX2luZm8uanNvbiI9PXg7aWYoa3x8aSh4KSE9ZCYmL15bYS16MC05XyRcKFwpXCtcLVwvXStcLy4rXC5qc29uJC8udGVzdChpKHgpKSlyZXR1cm4gaz8oYT17aW5mbzpKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGpbeF0pKSkpLHBhdXNlOmZ1bmN0aW9uKCl7fSxhYm9ydDpmdW5jdGlvbigpe2c9ITAsaD0hMCxiLmlzU3RyZWFtaW5nPSExLGIuZG9jc1RvU2F2ZS5sZW5ndGg9MH0sY29udGludWU6ZnVuY3Rpb24oKXt9LG5vdGlmeTpmdW5jdGlvbih4KXtlLnB1c2goeCl9LGdldFN0YXRzOmZ1bmN0aW9uKCl7cmV0dXJue2lzWmlwUmVhZDohMCxmaWxlczpPYmplY3Quc2l6ZShqKSxkcm9wOjB9fSxpc1BhdXNlZDpmdW5jdGlvbigpe3JldHVybiBmfSxpc0Fib3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8aH0saXNEb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGlzQWxsUmVhZDpmdW5jdGlvbigpe3JldHVybiEwfX0sdm9pZCAwKTooYy5wdXNoKHtuYW1lOngsc3JjZGI6ZCxkZXN0ZGI6bnVsbCxzaXplOmpbeF0ubGVuZ3RoLHJlYWR5OiExLHNhdmVkOiExLGVycm9yczpbXSxyZXE6e3VybDoiIixwcm9jZXNzRGF0YTohMSxtZXRob2Q6InBvc3QiLGRhdGE6L1wvX2NvbmZsaWN0c1wvLy50ZXN0KHgpP25ldyBCbG9iKFsneyJuZXdfZWRpdHMiOmZhbHNlLCJkb2NzIjonLGpbeF0sIn0iXSk6bmV3IEJsb2IoWyd7Im5ld19lZGl0cyI6ZmFsc2UsImRvY3MiOlsnLGpbeF0sIl19Il0pLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX19KSx2b2lkIDApfSksYy5wdXNoKG51bGwpLGE/ZC5yZXNvbHZlKGEpOmQucmVqZWN0KHh8fCJObyBzdHJlYW0iKX0pfSksZC5wcm9taXNlKCk7ZnVuY3Rpb24gaSh4KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHgpfX0scnVuVGFza3M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9Imh0dHA6Ly9sb2NhbGhvc3Q6Iit4LlBobygiQ291Y2giKS5wb3J0KyIvIixjPSJNdWx0aSI9PWEudGFzayxkPSEhYS5tb2RlLmZpbmQoImRvYyIpLGU9KGEubW9kZS5maW5kKCIyd2F5IiksISFhLm1vZGUuZmluZCgibGl2ZSIpKSxmPXguaXNDb3VjaDImJihlfHxkKSxnPSF4LmlzQ291Y2gyJiYhIWEuc3JjLnVjdHgubGVuZ3RoLGg9W10saT17fSxqPXtkb2M6IiIsbW9kZTpbXSxzcmM6e2RiOiIiLHVybDoiIix1Y3R4OltdLGZpbHRlcjpbXSxmbjoiIixxdWVyeTp7fSxpZHM6W119LHRndDp7dXJsOiIiLGNyZWF0ZTohMSxhY2w6ITF9fTtjP2Euc3JjLmRicy51bmlxdWUoKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBiPSQuZXh0ZW5kKCEwLHt9LGosT2JqZWN0LnJlamVjdChhLCJ0YXNrcyIpKSxjPWEudGd0LnByZWZpeCsoeC5zdGFydHNXaXRoKGEuc3JjLnVucHJlZml4KT94LnJlcGxhY2UoYS5zcmMudW5wcmVmaXgsIiIpOngpO2Iuc3JjLmRiPXgsYi5zcmMudXJsPWY/bCh4LGIuc3JjLnVzZXIsYi5zcmMucHdkKTp4LGcmJihiLnVzZXJfY3R4PXtuYW1lOmN3Lm1lKCkscm9sZXM6YS5zcmMudWN0eC5zbGljZSgwKX0pLGIudGd0LnVybD1sKGIudGd0LnVybCsoIi8iPT1iLnRndC51cmwuc3Vic3RyKC0xKT8iIjoiLyIpK20oYyksYi50Z3QudXNlcixiLnRndC5wd2QpLGgucHVzaChiKX0pOihpPSQuZXh0ZW5kKCEwLHt9LGosT2JqZWN0LnJlamVjdChhLCJ0YXNrcyIpKSxnJiYheC5pc1VSTChhLnNyYy51cmwpJiYoaS51c2VyX2N0eD17bmFtZTpjdy5tZSgpLHJvbGVzOmEuc3JjLnVjdHguc2xpY2UoMCl9KSwoZnx8eC5pc1VSTChpLnNyYy51cmwpKSYmKGkuc3JjLnVybD1sKGkuc3JjLnVybCxpLnNyYy51c2VyLGkuc3JjLnB3ZCkpLChmfHx4LmlzVVJMKGkudGd0LnVybCl8fGkudGd0LnVzZXImJmkudGd0LnB3ZCkmJihpLnRndC51cmw9bChpLnRndC51cmwsaS50Z3QudXNlcixpLnRndC5wd2QpKSxoPVtpXSksYyYmY3cubGliLm5vdGUoeC5sYW5nLk1TR19TVEFSVElORyk7dmFyIGs9W107cmV0dXJuIGguZm9yRWFjaChmdW5jdGlvbihhLGIpe2sucHVzaChRLmRlbGF5KDErMTAwKmIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4geC5ydW5UYXNrQ2hhaW4oYSl9KSl9KSxRLmFsbFNldHRsZWQoayk7ZnVuY3Rpb24gbChhLGMsZSl7dmFyIGY7aWYoeC5pc1VSTChhKSlmPW5ldyBVUkwoYSk7ZWxzZXtpZighKGR8fGN8fHguaXNDb3VjaDIpKXJldHVybiBhO2Y9bmV3IFVSTChiK20oYSkpfXJldHVybiBjJiYoZi51c2VybmFtZT1jLGYucGFzc3dvcmQ9ZSksZisiIn1mdW5jdGlvbiBtKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9fSxydW5UYXNrQ2hhaW46ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEubGFuZyxjPWIuRVJSX0pPQixkPU9iamVjdCxlPWEuUGhvKCJSZXBsaWNhdG9yREIiKSxmPWN3LmxpYi5ub3RlLGc9ZC5tZXJnZSh7ZG9jOiIiLG1vZGU6W10sc3JjOntkYjoiIix1cmw6IiIsdWN0eDpbXSxmaWx0ZXI6W10sZm46IiIscXVlcnk6e30saWRzOltdfSx0Z3Q6e3VybDoiIixjcmVhdGU6ITEsYWNsOiExfX0seCwhMCksaD1hLmlzTG9jYWxEQihnLnNyYy51cmwpLGk9aCxqPShhLmlzTG9jYWxEQihnLnRndC51cmwpLCEhZy5tb2RlLmZpbmQoImRvYyIpKSxrPSEhZy5tb2RlLmZpbmQoImxpdmUiKSxsPSEhZy5tb2RlLmZpbmQoIjJ3YXkiKSxtPSIiLG49W10sbz0kLkRlZmVycmVkKCkscD0kLkRlZmVycmVkKCk7cmV0dXJuIG8udGhlbihxKS50aGVuKHIpLnRoZW4ocykudGhlbih0KS50aGVuKHUpLmZhaWwoZnVuY3Rpb24oKXtmKG0uZXNjYXBlSFRNTCgpLCJlcnJvciIsNWUzKSxwLnJlamVjdCg0OTksbSl9KS5hbHdheXMoZnVuY3Rpb24oKXtwLnJlc29sdmUoKX0pLG8ucmVzb2x2ZS5kZWJvdW5jZSgxKSgpLHAucHJvbWlzZSgpO2Z1bmN0aW9uIHEoKXtpZihoKXt2YXIgeD0kLkRlZmVycmVkKCk7cmV0dXJuIGEuUmVxKHYoe3VybDpbaSwiX2FsbF9kb2NzIix7c3RhcnRrZXk6Il9kZXNpZ24vIixlbmRrZXk6Il9kZXNpZ24wIn1dLG1ldGhvZDoiR0VUIn0pKS50aGVuKGZ1bmN0aW9uKGEpe2Eucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe24ucHVzaCh4LmlkKX0pLHgucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbihhLGIpe209Yy5ULmFzc2lnbihjLkdFVCxpLGEsYikseC5yZWplY3QoYSxtKX0pLHgucHJvbWlzZSgpfX1mdW5jdGlvbiByKCl7aWYoaCYmZy5zcmMuZmlsdGVyLmZpbmQoL154KGRlbHxkZG9jfGNvbmZsaWN0KSQvKSl7dmFyIHg9JC5EZWZlcnJlZCgpLGI9ZC5jbG9uZShhLkRkb2MsITApO3JldHVybiBuLmZpbmQoYi5faWQpP2EuUmVxKHYoe3VybDpbaSxiLl9pZF0sbWV0aG9kOiJHRVQifSkpLnRoZW4oZnVuY3Rpb24oYSl7YS52ZXJzaW9uPT1iLnZlcnNpb24/eC5yZXNvbHZlKCk6KGIuX3Jldj1hLl9yZXYsZSgpKX0pLmZhaWwoZik6ZSgpLHgucHJvbWlzZSgpfWZ1bmN0aW9uIGUoKXthLlJlcSh2KHt1cmw6W2ksYi5faWRdLG1ldGhvZDoiUFVUIixkYXRhOmN3LmxpYi5qc29uKCQuZXh0ZW5kKGIse3N0YW1wOkRhdGUubm93KCl9KSksZGF0YVR5cGU6InRleHQifSkpLnRoZW4oZnVuY3Rpb24oKXt4LnJlc29sdmUoKX0pLmZhaWwoZil9ZnVuY3Rpb24gZihhLGIpe209Yy5ULmFzc2lnbihjLlVUSUxTLGksYSxiKSx4LnJlamVjdChhLG0pfX1mdW5jdGlvbiBzKCl7aWYoZy5tb2RlLmZpbmQoIjJ3YXkiKSYmaCYmZy5zcmMuZmlsdGVyLmZpbmQoL14oZm58eGRlbHx4ZGRvY3x4Y29uZmxpY3QpJC8pKXt2YXIgeD1hLkRkb2MuX2lkO2lmKGcuc3JjLmZpbHRlci5maW5kKCJmbiIpKXtpZighZy5zcmMuZm4pcmV0dXJuO3g9Il9kZXNpZ24vIitnLnNyYy5mbi5zcGxpdCgiLyIpWzBdfXZhciBiPSQuRGVmZXJyZWQoKTtyZXR1cm4gYS5SZXEodih7dXJsOlsiX3JlcGxpY2F0ZSJdLG1ldGhvZDoiUE9TVCIsdGltZW91dDo2ZTQsZGF0YVR5cGU6InRleHQiLGRhdGE6SlNPTi5zdHJpbmdpZnkoe3NvdXJjZTpnLnNyYy51cmwsdGFyZ2V0OmcudGd0LnVybCxjb250aW51b3VzOiExLGNyZWF0ZV90YXJnZXQ6ISFnLnRndC5jcmVhdGUsZG9jX2lkczpbeF19KX0pKS50aGVuKGZ1bmN0aW9uKCl7Yi5yZXNvbHZlKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7ZihjLlQuYXNzaWduKGMuRkRET0MsaSx4LGEpK2MuQywid2FybmluZyIpLGIucmVzb2x2ZSgpfSksYi5wcm9taXNlKCl9fWZ1bmN0aW9uIHQoKXt9ZnVuY3Rpb24gdSgpe3ZhciB4LG49W10sbz17c291cmNlOmcuc3JjLnVybCx0YXJnZXQ6Zy50Z3QudXJsLGNvbnRpbnVvdXM6ISFnLm1vZGUuZmluZCgibGl2ZSIpLGNyZWF0ZV90YXJnZXQ6ISFnLnRndC5jcmVhdGV9O2cuc3JjLmZpbHRlci5maW5kKCJmbiIpJiZnLnNyYy5mbj8oby5maWx0ZXI9Zy5zcmMuZm4sZC5zaXplKGcuc3JjLnF1ZXJ5KSYmKG8ucXVlcnlfcGFyYW1zPWQuY2xvbmUoZy5zcmMucXVlcnksITApKSk6Zy5zcmMuZmlsdGVyLmZpbmQoImlkcyIpP28uZG9jX2lkcz1kLmNsb25lKGcuc3JjLmlkcywhMCk6KG49Zy5zcmMuZmlsdGVyLmZpbmRBbGwoL154KGRlbHxkZG9jfGNvbmZsaWN0KSQvKSkubGVuZ3RoJiYoby5maWx0ZXI9YS5EZG9jLl9pZC5zcGxpdCgiLyIpWzFdKyIvZXhjbHVkZSIsby5xdWVyeV9wYXJhbXM9bi5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthXT0iVCIseH0se30pKSxqJiYoby5faWQ9Zy5kb2MrKGg/IiwgIitpKyIgPT4iOmw/Iiwgb3V0Ym91bmQiOiIiKSxvLm93bmVyPWN3Lm1lKCksby5waG90b25fdGFzaz1nLmRvYysiIixnLnVzZXJfY3R4JiYoby51c2VyX2N0eD1PYmplY3QuY2xvbmUoZy51c2VyX2N0eCwhMCkpKTt2YXIgcD1nLnNyYy51cmwuc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCkuZXNjYXBlSFRNTCgpLHE9JC5EZWZlcnJlZCgpO3JldHVybiBqfHxrfHxmKGIuTVNHX1NUQVJULmFzc2lnbihwKSksbCYmKHg9JC5leHRlbmQoITAse30sbyx7c291cmNlOmcudGd0LnVybCx0YXJnZXQ6Zy5zcmMudXJsLGNyZWF0ZV90YXJnZXQ6ITF9KSxqJiYoeC5faWQ9Zy5kb2MrKGg/IiwgIitpKyIgPD0iOiIsIGluYm91bmQiKSkpLHIobykudGhlbihmdW5jdGlvbigpe3ZhciB4PWJbaj8iTVNHX09LX0RPQyI6az8iTVNHX09LX0xJVkUiOiJNU0dfT0tfT05DRSJdO2YoeC5hc3NpZ24ocCksIm9rIiksdChnLnRndC51cmwpLGw/US5kZWxheShvLmNyZWF0ZV90YXJnZXQ/NWUzOmo/MmUzOjEwMCkudGhlbihmdW5jdGlvbigpe3MoKS5hbHdheXMoZnVuY3Rpb24oKXtxLnJlc29sdmUoKX0pfSk6cS5yZXNvbHZlKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7bT1jLlQuYXNzaWduKGMuVE8saSx4LGEpLHEucmVqZWN0KHgsbSl9KSxxLnByb21pc2UoKTtmdW5jdGlvbiByKHgpe3ZhciBiPXguX2lkLGM9e3VybDpiP1tlLGJdOlsiX3JlcGxpY2F0ZSJdLG1ldGhvZDpiPyJQVVQiOiJQT1NUIixkYXRhVHlwZToidGV4dCIsZGF0YTpKU09OLnN0cmluZ2lmeSh4KSx0aW1lb3V0OmJ8fHguY29udGludW91cz8xZTQ6M2U1fTtyZXR1cm4gYS5SZXEodihjKSl9ZnVuY3Rpb24gcygpe3JldHVybiByKHgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgeD1iWyhqPyJNU0dfT0tfRE9DIjprPyJNU0dfT0tfTElWRSI6Ik1TR19PS19PTkNFIikrIl9CQUNLIl07Zih4LmFzc2lnbihwKSwib2siKSx0KGcuc3JjLnVybCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7ZihjLlQuYXNzaWduKGMuRlJPTSxpLHgsYSkrYy5DLCJ3YXJuaW5nIil9KX1mdW5jdGlvbiB0KHgpe3ZhciBiPWEuaXNMb2NhbERCKHgpOyFrJiZiJiYkLm15LnJhZGlvKCJkYmxpc3QiLFtiXSksaiYmJC5teS5yYWRpbygiZGJsaXN0IixbZV0pfX1mdW5jdGlvbiB2KHgpe3JldHVybiAkLmV4dGVuZCghMCx7dXJsOltdLG1ldGhvZDoiIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sZGF0YVR5cGU6Impzb24iLHRpbWVvdXQ6MWU0fSx4KX19LER1bXBaaXA6e2lkOiJjdy5QaG90b24uRHVtcFppcCIscGFyYW1zOntyZXN0eWxlOjIwMH0sRGF0YVVybHM6W10scmVxdWlyZTpbeyJ3aW5kb3cuV3JpdGFibGVTdHJlYW0iOiJsaWIvd2Vic3RyZWFtcy5qcyJ9LHsid2luZG93LnN0cmVhbVNhdmVyIjoibGliL3N0cmVhbXNhdmVyLmpzIiwid2luZG93LmZmbGF0ZSI6ImxpYi9mZmxhdGUuanMifV0sZGF0YTp7ZGJzOltdLG5hbWU6ImR1bXAiLHppcDpudWxsLHVybDoiIixvcHRzOltdLGJ5dGVzOjAsemJ5dGVzOjAsZG9uZTohMSxzdGF0dXM6InJlYWR5IixtYXhSZWFkU3RyZWFtczo0LG1heEZlZWRDaHVuazoyMDk3MTUyLG1pbkZlZWREb2NzOjE1LG1heEZlZWREb2NzOjEwMCxtYXhSZXN0YXJ0czozfSxEQnM6e30sU3RhbXA6MCxEb2NMaXN0OltdLERCc1JlYWRDdHI6MCxTdHJlYW06e2Fib3J0OmZ1bmN0aW9uKCl7fX0sSW5mb0RvYzp7fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIHguaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2EuU3RyZWFtPWEuU3RyZWFtRG9jcygpLGIuc3RhdHVzPSJzdHJlYW1pbmcifS5kZWJvdW5jZSg1MCkpLGEuUmVhZERCc0luZm8oKS50aGVuKGZ1bmN0aW9uKCl7YS5TdGFtcD1EYXRlLm5vdygpfSl9LHVpOnsiI2RiLXJvd3MiOntiaW5kOiJkYnMiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJtdDUgcHQ1IHBiNSBiYmQiPjwvZGl2PicsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuREJSb3d9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LnVybH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gudG90YWxEb2NzKyIiLHgudG90YWxTaXplKyIiXSl9fSwiI2J5dGVzIjpmdW5jdGlvbih4LGEpe3JldHVybiB4LmJ5dGVzP3RoaXMuQnl0ZXNULmFzc2lnbih4LmJ5dGVzLmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYiIpLHguZG9uZT8iZmktY2hlY2sgbzcwIGdyZWVuIGZzODAiOiJmaS1hcnJvdy1yaWdodCBvNTAgeGdyYXkgZnM4MCIseC56Ynl0ZXMuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIikpOiIifSwiI3N0cmVhbS1zcGVlZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0oRGF0ZS5ub3coKS10aGlzLlN0YW1wKzEpLzFlMyxjPSg4KnguYnl0ZXMvYnwwKS5jbGFtcCgwLDFlOSk7cmV0dXJuIGM/Yy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImJpdC9zIik6IiJ9LHdhdGNoOlsiI2J5dGVzIl19LCIjYnRuLXN0b3AiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5TdHJlYW0uYWJvcnQoKX19fSxzdHlsZTp7IiAiOmZ1bmN0aW9uKHgpe3JldHVybiJzdHJlYW1pbmciPT10aGlzLmRhdGEuc3RhdHVzJiZ4LnRyaWdnZXIoImxheW91dCIpLCJmb250LXNpemU6MTVweDsgbGluZS1oZWlnaHQ6MS40ZW07In19LEhUTUw6JzxkaXYgY2xhc3M9ImZzMTMwIGZ3NDAwIGNtIj48c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gRHVtcCB0byB6aXA8L2Rpdj48ZGl2IGlkPSJkYi1yb3dzIiBjbGFzcz0ibXQxMCBidGQgbWIxMCIgc3R5bGU9Im1heC1oZWlnaHQ6NTAwcHg7Ij48L2Rpdj48ZGl2PjxkaXYgaWQ9InN0cmVhbS1zcGVlZCIgY2xhc3M9IncyNXAgbzUwIGZyIHRhciBtdDUiPjwvZGl2PjxkaXYgaWQ9ImJ5dGVzIiBjbGFzcz0iZnIgdzQ1cCBtdDUgbzcwIj48L2Rpdj48YnV0dG9uIGlkPSJidG4tc3RvcCIgY2xhc3M9Im1yNSI+QWJvcnQgemlwPC9idXR0b24+PC9kaXY+JyxCeXRlc1Q6JzxzcGFuIGNsYXNzPSJkaWIgdzQ1cCB0YXIiPnsxfTwvc3Bhbj48c3BhbiBjbGFzcz0iZGliIHcxMHAgdGFjIHsyfSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWIgdzQ1cCB0YWwiPnszfTwvc3Bhbj4nLGRpZTpmdW5jdGlvbih4KXt0aGlzLkRhdGFVcmxzLmZvckVhY2goZnVuY3Rpb24oeCl7VVJMLnJldm9rZU9iamVjdFVSTCh4KX0pfSxSZWFkREJzSW5mbzpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLm9wdHN8fFtdO3JldHVybiB4LkRCc1JlYWRDdHI9YS5kYnMubGVuZ3RoLFEuYWxsKGEuZGJzLm1hcChmdW5jdGlvbihhKXt2YXIgZD0vXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdChhLnVybCk/YS51cmwuc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCk6YS51cmwsZT1hLmRyb3AuZmlsdGVyfHxbXSxmPWUuZmluZCgiaWRzIikmJmEuZHJvcC5pZHN8fFtdLGc9L14oaHR0cFtzXT86XC9cL3xcLykvLnRlc3QoYS51cmwpP2EudXJsOiIvIitjKGEudXJsKSxoPSEhZS5maW5kKCJ4ZGVsIik7cmV0dXJuIHguUmVxKGcpLnRoZW4oZnVuY3Rpb24oYyl7dmFyIGU9KGMuZG9jX2NvdW50fHwwKSsoaD8wOmMuZG9jX2RlbF9jb3VudHx8MCksZz0oYy5zaXplcz9jLnNpemVzLmFjdGl2ZTpjLmRhdGFfc2l6ZSl8fDA7YS50b3RhbFNpemU9ZyxhLnRvdGFsRG9jcz1lLGEubWF4U2VxPWMudXBkYXRlX3NlcT8rKGMudXBkYXRlX3NlcSsiIikuc3BsaXQoIi0iKVswXTotMTt2YXIgaT1bImRvY19jb3VudCJdO2h8fGkucHVzaCgiZG9jX2RlbF9jb3VudCIpLGIuZmluZCgicW5wIikmJmkucHVzaCgicHJvcHMiLCJjbHVzdGVyIikseC5JbmZvRG9jW2RdPSQuZXh0ZW5kKCEwLHtuYW1lOmQsZmlsdGVyOmYubGVuZ3RoP2Y6bnVsbCxzdGFydF9zZXE6MCxtYXhfc2VxOmEubWF4U2VxLHRzOkRhdGUubm93KCksc2VjdXJpdHk6bnVsbCxyYXdfc2l6ZTpnLGRvY19jb3VudDowLGRvY19kZWxfY291bnQ6MH0sT2JqZWN0LnNlbGVjdChjLGkpKX0pLnRoZW4oZnVuY3Rpb24oKXtpZihiLmZpbmQoImFjbCIpKXt2YXIgYT0kLkRlZmVycmVkKCk7cmV0dXJuIHguUmVxKGcrIi9fc2VjdXJpdHkiKS50aGVuKGZ1bmN0aW9uKGIpe09iamVjdC5pc09iamVjdChiKSYmKHguSW5mb0RvY1tkXS5zZWN1cml0eT1iKSxhLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oKXthLnJlc29sdmUoKX0pLGEucHJvbWlzZSgpfX0pLmZhaWwoZnVuY3Rpb24oKXtjdy5saWIubm90ZSgnRmFpbGVkIHJlYWRpbmcgPHNwYW4gY2xhc3M9ImZ3NDAwIj57MX08L3NwYW4+IERCLiBEdW1wIGFib3J0ZWQuJy5hc3NpZ24oZCksImVycm9yIil9KX0pKTtmdW5jdGlvbiBjKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9fSxTdHJlYW1Eb2NzOmZ1bmN0aW9uKCl7dmFyIHgsYSxiPXRoaXMsYz1iLmRhdGEsZD17fSxlPXt9LGY9W10sZz1bXSxoPWMubWF4UmVhZFN0cmVhbXMsaT1jLm1heFJlc3RhcnRzfHwzLGo9ITAsaz0hMSxsPUEudGhyb3R0bGUoMjUwKSxtPSJ7MX0vezJ9P3Jldj17M30mYXR0YWNobWVudHM9dHJ1ZSIsbj0iezF9L3syfT9hdHRhY2htZW50cz10cnVlIixvPSJ7MX0vezJ9P29wZW5fcmV2cz17M30mYXR0YWNobWVudHM9dHJ1ZSI7IlRleHRFbmNvZGVyImluIHdpbmRvdz8oeD1uZXcgVGV4dEVuY29kZXIsYT1mdW5jdGlvbihhKXtyZXR1cm4geC5lbmNvZGUoYSl9KTphPWZ1bmN0aW9uKHgpe3JldHVybiBmZmxhdGUuc3RyVG9VOCh4KX07dmFyIHAscT1uZXcgZmZsYXRlLlppcCxyPXN0cmVhbVNhdmVyLmNyZWF0ZVdyaXRlU3RyZWFtKGMubmFtZSsiLnppcCIse3BhdGhuYW1lOiIvX3N0cmVhbS8iK2MubmFtZSsiLnppcCIsc2lnbmFsOnN9KS5nZXRXcml0ZXIoKTtyZXR1cm4gcS5vbmRhdGE9ZnVuY3Rpb24oeCxhLGIpe3g/QygiRmFpbGVkIHppcHBpbmc6ICIrKCh4fHwidW5rbm93biBlcnJvciIpKyIiKS50cnVuY2F0ZSgxMDApKTooYSYmYS5sZW5ndGgmJihyLndyaXRlKGEpLGMuemJ5dGVzKz1hLmxlbmd0aCksYiYmKGs/QygiQWJvcnRlZCIpOkIoKSkpfSxwPWIuUGhvLHQoIl9pbmZvLmpzb24iLGEoSlNPTi5zdHJpbmdpZnkoe3VzZXI6Y3cubWUoKSxkYXRlOihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLlxkKy8sIiIpLHBob3RvbjpwKCJWZXJzaW9uIikrIi4iK3AoImJ1aWxkIiksY291Y2g6cChbIkNvdWNoIiwidmVyc2lvbiJdKSxob3N0OmN3LmxpYi5jcmMyKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSksZGJzOk9iamVjdC52YWx1ZXMoYi5JbmZvRG9jKX0sbnVsbCwiICAiKSkpLGMuZGJzLmZvckVhY2goZnVuY3Rpb24oeCl7Yi5EQnNbeC51cmxdPXgsT2JqZWN0LmlzQXJyYXkoeC5kcm9wLmlkcykmJnguZHJvcC5pZHMubGVuZ3RoPyh4LmRyb3AuaWRzLmZvckVhY2goZnVuY3Rpb24oYSl7dSh4LnVybCx7aWQ6YSxkb2M6bnVsbCxyZXZzOltdfSl9KSxiLkRCc1JlYWRDdHItPTEsZy5wdXNoKG51bGwpKTpiLlByZXBhcmVEb2NMaXN0KHgsdSkudGhlbihmdW5jdGlvbihhKXtEKCJEQjogezF9LCBkb2NzOiB7ZG9jc30sIHNlcToge3NlcX0iLmFzc2lnbihhKS5hc3NpZ24oeC51cmwuc3BsaXQoIi8iKS5sYXN0KCkpKSxiLkRCc1JlYWRDdHJ8fGcucHVzaChudWxsKSx5KCl9KS5mYWlsKGZ1bmN0aW9uKCl7QygiRmFpbGVkIHJlYWRpbmcgZG9jIGxpc3QiKX0pfSkse2Fib3J0OmZ1bmN0aW9uKHgpe2s9ITAsQyh4fHwiVGVybWluYXRlZCBieSB1c2VyIil9fTtmdW5jdGlvbiBzKHgpeyJ1c2VyIGFib3J0ZWQiPT14JiZDKCJVc2VyIGFib3J0ZWQiKX1mdW5jdGlvbiB0KHgsYSl7dmFyIGIsYz1hLmJ5dGVMZW5ndGg7Yj1jPDUxMj9uZXcgZmZsYXRlLlppcFBhc3NUaHJvdWdoKHgpOmM8MzI3Njg/bmV3IGZmbGF0ZS5aaXBEZWZsYXRlKHgpOm5ldyBmZmxhdGUuQXN5bmNaaXBEZWZsYXRlKHgpLHEuYWRkKGIpLGIucHVzaChhLCEwKX1mdW5jdGlvbiB1KHgsYSl7dmFyIGI9L14oaHR0cFtzXT86XC9cL3xcLykvLnRlc3QoeCksYz1hLmlkLGQ9YS5yZXY7cmV0dXJuIGEucmV2cy5sZW5ndGgmJmcucHVzaCh7ZGI6eCxpZDpjLG5hbWU6W3coYj94LnNwbGl0KCIvIikuY29tcGFjdCghMCkubGFzdCgpOngpKyIvIiwiX2NvbmZsaWN0cy8iLHcoYywhMCkrIi5qc29uIl0uam9pbigiIiksdXJsOm8uYXNzaWduKGI/eDoiLyIrdih4KSx2KGMpLHYoSlNPTi5zdHJpbmdpZnkoYS5yZXZzKSkpLG9wdHM6e2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSxpc1JldnM6ITB9KSxnLnB1c2goe2RiOngsaWQ6YyxuYW1lOlt3KGI/eC5zcGxpdCgiLyIpLmNvbXBhY3QoITApLmxhc3QoKTp4KSsiLyIsYS5kZWw/Il9kZWxldGVkLyI6IiIsdyhjLGEuZGVsKSsiLmpzb24iXS5qb2luKCIiKSxkb2M6YS5kb2MsdXJsOihkP206bikuYXNzaWduKGI/eDoiLyIrdih4KSx2KGMpLGQpLG9wdHM6e2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fX0pLHkoKSxrfWZ1bmN0aW9uIHYoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX1mdW5jdGlvbiB3KHgsYSl7dmFyIGI9IWEmJi9eX2Rlc2lnblwvLy50ZXN0KHgpO3JldHVybihiPyJfZGVzaWduLyI6IiIpKyhiP3guc3Vic3RyKDgpOngpLnJlcGxhY2UoL1siXC86JTw+XD9cXFx8XS9nLHYpLnJlcGxhY2UoL1wqL2csIiUyQSIpfWZ1bmN0aW9uIHkoKXtpZighaylmb3IodmFyIHg9e307T2JqZWN0LnNpemUoZCk8aCYmZy5sZW5ndGgmJm51bGwhPT14OyludWxsPT09KHg9Zy5zaGlmdCgpKT8wPT1PYmplY3Quc2l6ZShkKT9xLmVuZCgpOmcucHVzaChudWxsKTpkW3gubmFtZV09eih4KX1mdW5jdGlvbiB6KHgpe2lmKGspcmV0dXJuICQuRGVmZXJyZWQoKS5yZWplY3QoKTt2YXIgaD0kLkRlZmVycmVkKCk7cmV0dXJuIG51bGwhPXguZG9jP20uZGVsYXkoMCx4LmRvYyk6ZmV0Y2goeC51cmwseC5vcHRzKS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEub2spcmV0dXJuIHguaXNSZXZzP2EuanNvbigpOmEuYXJyYXlCdWZmZXIoKTs0MDQ9PWEuc3RhdHVzPyhiLkRCc1t4LmRiXS5kb25lRG9jcys9MSxmLnB1c2goeC51cmwpLGZ1bmN0aW9uKCl7aC5yZXNvbHZlKCl9LmRlYm91bmNlKDUwKSgpKTooZVt4LnVybF09KGVbeC51cmxdfHxbXSkucHVzaChbYS5zdGF0dXMsRGF0ZS5ub3coKV0uam9pbigiICIpKSxlW3gudXJsXS5sZW5ndGg8aT9udWxsPT09Zy5sYXN0KCk/KGcucG9wKCksZy5wdXNoKHgsbnVsbCkpOmcucHVzaCh4LG51bGwpOmo/QygiRmF0YWwgZmFpbHVyZSByZWFkaW5nICIreC51cmwuZXNjYXBlSFRNTCgpKyIsIGR1bXAgYWJvcnRlZC4iKTooYi5EQnNbeC5kYl0uZG9uZURvY3MrPTEsZnVuY3Rpb24oKXtoLnJlc29sdmUoKX0uZGVib3VuY2UoNTApKCkpKX0pLnRoZW4obSkuY2F0Y2goZnVuY3Rpb24oKXtEKCJGYWlsZWQgcmVhZGluZyAiK3guaWQpLGgucmVqZWN0KCJGYWlsZWQgcmVhZGluZyAiK3guaWQpfSksaC5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgZFt4Lm5hbWVdLHkoKX0pLGgucHJvbWlzZSgpO2Z1bmN0aW9uIG0oZCl7dmFyIGY9ITA7aWYoZCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKWMuYnl0ZXMrPWQuYnl0ZUxlbmd0aCx0KHgubmFtZSxuZXcgVWludDhBcnJheShkKSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGQpe3ZhciBnPWEoZCk7Yy5ieXRlcys9Zy5ieXRlTGVuZ3RoLHQoeC5uYW1lLGcpfWVsc2UgT2JqZWN0LmlzQXJyYXkoZCkmJihmPSExLHQoeC5uYW1lLGEoIltcbiIrZC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHgub2spfSkuam9pbigiLFxuIikrIlxuXSIpKSk7RCgiRG9uZSAiK3guZGIrIi8iK3gubmFtZSksaC5yZXNvbHZlKCksZiYmKGIuREJzW3guZGJdLmRvbmVEb2NzKz0xKSxkZWxldGUgZVt4LnVybF0sbCgpfX1mdW5jdGlvbiBBKCl7Yi5teS5jaGVjaygiI2J5dGVzIiksJC5teS5yYWRpbygiZGJTdHJlYW1VcGRhdGUiLHt9KX1mdW5jdGlvbiBCKCl7RCgiRG9uZSIpLGMuZG9uZT0hMCxyLmNsb3NlKCksQSgpLGN3LmxpYi5ub3RlKCc8c3BhbiBjbGFzcz0iZnc0MDAiPlpJUCBkdW1wIHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZC48L3NwYW4+Jywib2siLDVlMyksZnVuY3Rpb24oKXtiLm15LmNvbW1pdCgpfS5kZWxheSgzZTMpfWZ1bmN0aW9uIEMoeCl7aWYoYy5kb25lKXJldHVybiBiLm15LmNvbW1pdCgpO2s9ITAsY3cubGliLm5vdGUoeCwiZXJyb3IiLDZlMyksci5hYm9ydCgpLHEudGVybWluYXRlKCksYy5lcnJvcj14LGIubXkuY29tbWl0KCl9ZnVuY3Rpb24gRCh4LGEsYyl7Yi5fZGVidWcmJmNvbnNvbGUubG9nKHgsYSxjKX19LFByZXBhcmVEb2NMaXN0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9JC5EZWZlcnJlZCgpLGM9dGhpcyxkPWMuZGF0YSxlPWQubWF4RmVlZENodW5rLGY9eC50b3RhbFNpemUmJngudG90YWxEb2NzP3gudG90YWxTaXplL3gudG90YWxEb2NzfDA6MCxnPSEoZiYmIShmPmUvZC5taW5GZWVkRG9jcykpLGg9KGc/ZC5tYXhGZWVkRG9jczpNYXRoLmNlaWwoZS9mKSkuY2xhbXAoZC5taW5GZWVkRG9jcyxkLm1heEZlZWREb2NzKSxpPWQubWF4UmVzdGFydHN8fDMsaj14LnNpbmNlfHwwLGs9ISEoeC5kcm9wLmZpbHRlcnx8W10pLmZpbmQoInhkZG9jIiksbD0hISh4LmRyb3AuZmlsdGVyfHxbXSkuZmluZCgieGRlbCIpLG09ISEoeC5kcm9wLmZpbHRlcnx8W10pLmZpbmQoInhyZXZzIiksbj1bL14oaHR0cFtzXT86XC9cL3xcLykvLnRlc3QoeC51cmwpP3gudXJsOiIvIitxKHgudXJsKSwiL19jaGFuZ2VzP3NpbmNlPXsxfSIsbT8iIjoiJnN0eWxlPWFsbF9kb2NzIixnPyIiOiImaW5jbHVkZV9kb2NzPXRydWUmYXR0YWNobWVudHM9dHJ1ZSIsIiZsaW1pdD0iK2hdLmpvaW4oIiIpLG89cy5kZWJvdW5jZSgxZTMpLHA9MDtyZXR1cm4gcigpLGIucHJvbWlzZSgpO2Z1bmN0aW9uIHEoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX1mdW5jdGlvbiByKCl7Yy5SZXEobi5hc3NpZ24oaikpLnRoZW4oZnVuY3Rpb24oZCl7aj1kLmxhc3Rfc2VxO3ZhciBlPShkLnJlc3VsdHN8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIXQoYS5zZXEseC5tYXhTZXEpfSksZj0hMTtpZighZS5sZW5ndGgpcmV0dXJuIGMuREJzUmVhZEN0ci09MSxiLnJlc29sdmUoe2RvY3M6cCxzZXE6an0pO2Zvcih2YXIgaD1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hKGwmJnguZGVsZXRlZHx8ayYmL15fZGVzaWduXC8vLnRlc3QoeC5pZCkpfSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LmlkLHJldjp4LmNoYW5nZXNbMF0ucmV2LGRlbDohIXguZGVsZXRlZCxkb2M6Z3x8IXguZG9jP251bGw6SlNPTi5zdHJpbmdpZnkoeC5kb2MpLHJldnM6bT9bXTp4LmNoYW5nZXMuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJldn0pfX0pLGk9MDtpPGgubGVuZ3RoJiYhZjtpKyspZj1hKHgudXJsLGhbaV0pLHArPTE7Zj9iLnJlamVjdCh7ZXJyb3I6ImFib3J0ZWQiLGRvY3M6cCxzZXE6an0pOnIoKX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2NvbnNvbGUubG9nKHgsYSxiKSxvKCl9KX1mdW5jdGlvbiBzKCl7aWYoKGktPTEpPDEpcmV0dXJuIGIucmVqZWN0KCJBdHRlbXB0cyB0byByZWFkIGRvY3MgbGlzdCBmYWlsZWQiKTtyKCl9ZnVuY3Rpb24gdCh4LGEpe2lmKC0xPT1hKXJldHVybiExO3ZhciBiPXgrIi0iO3JldHVybitiLnN1YnN0cigwLGIuaW5kZXhPZigiLSIpKT5hfX0sREJSb3c6e2lkOiJjdy5QaG90b24uRHVtcFppcC5EQlJvdyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTt4Lmh0bWwoYS5IVE1MKX0sZGF0YTp7dXJsOiIiLHNpbmNlOjAsZHJvcDp7ZmlsdGVyOltdLGZuOiIiLGlkczpbXSxxdWVyeTp7fX0sbW9kZToianNvbiIsdG90YWxTaXplOjAsdG90YWxEb2NzOjAsZG9uZURvY3M6MCxtYXhTZXE6MH0sdWk6eyIjbnVtLXRvdGFsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKCF4LnRvdGFsRG9jcylyZXR1cm4iIjt2YXIgYj14LmRyb3AuaWRzLmxlbmd0aHx8eC50b3RhbERvY3M7cmV0dXJuIE1hdGguZmxvb3IoeC5kb25lRG9jcy9iKjEwMCkuY2xhbXAoMCwxMDApKyIlIn0sbGlzdGVuOntkYlN0cmVhbVVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSlyZXR1cm4gbnVsbH19fSwiI251bS1iZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXguZHJvcC5pZHMubGVuZ3RofHx4LnRvdGFsRG9jcztjP2IuY3NzKHtoZWlnaHQ6KHguZG9uZURvY3MvYyoyLjUpLmNsYW1wKDAsMi41KSsiZW0ifSk6Yi5jc3Moe2hlaWdodDoiMHB4In0pfSxsaXN0ZW46e2RiU3RyZWFtVXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybiBudWxsfX19LCIjZGItbmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KC9eaHR0cFtzXT86XC9cLy8udGVzdCh4LnVybCl8fCIvIj09eC51cmxbMF0/eC51cmwuc3BsaXQoIi8iKS5sYXN0KCk6eC51cmwpLnRydW5jYXRlKDM1LCJtaWRkbGUiLCIuLi4iKS5lc2NhcGVIVE1MKCl9fSwiI2RiLXRvdGFscyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj14LmRyb3AuaWRzLmxlbmd0aDtifHx4LnRvdGFsRG9jcztyZXR1cm4gYj8iezF9IGRvY3syfSBvZiB7M30iLmFzc2lnbihiLGI+MT8icyI6IiIseC50b3RhbERvY3MpOiJ7MX0gZG9jcywgezJ9IHJhdyIuYXNzaWduKHgudG90YWxEb2NzLHgudG90YWxTaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKX19fSxIVE1MOic8ZGl2IGNsYXNzPSJudW0tY29udCBkaWIgdmF0Ij48ZGl2IGlkPSJudW0tYmciIGNsYXNzPSJ3MTAwcCI+PC9kaXY+PGRpdiBpZD0ibnVtLXRvdGFsIiBjbGFzcz0idzEwMHAgdGFjIGZzMTEwIGZ3MzAwIG83MCBsaDIwMCBwdDEiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImRiLWluZm8gZGliIHZhdCI+PGRpdiBpZD0iZGItbmFtZSIgY2xhc3M9IncxMDBwIGZzMTIwIGZ3NDAwIG53IG9oIGVsbCI+PC9kaXY+PGRpdiBpZD0iZGItdG90YWxzIiBjbGFzcz0idzEwMHAgZnM5MCBvODAgbncgb2ggZWxsIj48L2Rpdj48L2Rpdj4nLHN0eWxlOnsiIC5udW0tY29udCI6eyIiOiJ3aWR0aDozZW07IGhlaWdodDoyLjVlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyLXJhZGl1czogMnB4OyBvdmVyZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmMmY1Zjg7IiwiICNudW0tYmciOiJwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjA7IGxlZnQ6IDA7IGJhY2tncm91bmQtY29sb3I6I2MzZWU5NDsgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7In0sIiAuZGItaW5mbyI6eyIiOiJ3aWR0aDogY2FsYygxMDAlIC0gM2VtKTsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZy1sZWZ0OiAxZW07In19fX0sVW5kdW1wOntpZDoiY3cuUGhvdG9uLlVuZHVtcCIscGFyYW1zOntyZXN0eWxlOjIwMH0sRGF0YVVybHM6W10scmVxdWlyZTpbeyJ3aW5kb3cuV3JpdGFibGVTdHJlYW0iOiJsaWIvd2Vic3RyZWFtcy5qcyJ9LHsid2luZG93LmZmbGF0ZSI6ImxpYi9mZmxhdGUuanMifV0sZGF0YTp7ZGJzOltdLGRvY3NUb1NhdmU6W10sb3B0czpbXSxieXRlczowLHpieXRlczowLGRvbmU6ITEsc3RhdHVzOiIiLG1heEJ1ZmZlcjoyZTgsbWF4V3JpdGVTdHJlYW1zOjYsbWF4UmVzdGFydHM6M30sVW56aXBEQm1hcDpudWxsLFVuemlwU3RyZWFtOnt9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTt4Lmh0bWwoYS5IVE1MKSx4LnRoZW4oZnVuY3Rpb24oKXtiLnN0YXR1cz0ic3RyZWFtaW5nIixhLlByZXBhcmVEQnMoKS50aGVuKGZ1bmN0aW9uKCl7YS5TYXZlcj1hLlNhdmVEb2NzKCl9KX0uZGVib3VuY2UoNTApKSxhLlN0YW1wPURhdGUubm93KCl9LHVpOnsiI2RiLXJvd3MiOntiaW5kOiJkYnMiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJtdDUgcHQ1IHBiNSBiYmQiPjwvZGl2PicsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuREJSb3d9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LnVybH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gudG90YWxEb2NzKyIiLHgudG90YWxTaXplKyIiXSl9fSwiI2J5dGVzIjpmdW5jdGlvbih4LGEpe3JldHVybiB4LmJ5dGVzPyc8c3BhbiBjbGFzcz0iZmktdXBsb2FkLWNsb3VkIG81MCB4Z3JheSBmczgwIj48L3NwYW4+ICcreC5ieXRlcy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKToiIn0sIiNzdHJlYW0tc3BlZWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9KERhdGUubm93KCktdGhpcy5TdGFtcCsxKS8xZTMsYz0oOCp4LmJ5dGVzL2J8MCkuY2xhbXAoMCwxZTkpO3JldHVybiBjP2MuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiaXQvcyIpOiIifSx3YXRjaDpbIiNieXRlcyJdfSwiI2J0bi1zdG9wIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih0aGlzLkFib3J0KCksdGhpcy5teS5jb21taXQoKSl9fX0sU2F2ZXI6bnVsbCxBYm9ydDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGE7dHJ5e3guU2F2ZXIuYWJvcnQoKX1jYXRjaCh4KXt9dHJ5e3guVW56aXBTdHJlYW0uYWJvcnQoKX1jYXRjaCh4KXt9JC5teS5yYWRpbygiZGJsaXN0IixhLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pKSxhLnN0YXR1cz0iYWJvcnRlZCJ9LEhUTUw6JzxkaXYgY2xhc3M9ImZzMTMwIGZ3NDAwIGNtIj48c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gUmVzdG9yZSBmcm9tIFpJUCBkdW1wPC9kaXY+PGRpdiBpZD0iZGItcm93cyIgY2xhc3M9Im10MTAgYnRkIG1iMTAiIHN0eWxlPSJtYXgtaGVpZ2h0OjQ1MHB4OyI+PC9kaXY+PGRpdj48ZGl2IGlkPSJzdHJlYW0tc3BlZWQiIGNsYXNzPSJ3MjVwIG81MCBmciB0YXIgbXQ1Ij48L2Rpdj48ZGl2IGlkPSJieXRlcyIgY2xhc3M9ImZyIHcyNXAgbXQ1IG83MCI+PC9kaXY+PGJ1dHRvbiBpZD0iYnRuLXN0b3AiIGNsYXNzPSJtcjUiPkFib3J0IHJlc3RvcmU8L2J1dHRvbj48L2Rpdj4nLHN0eWxlOnsiICI6ZnVuY3Rpb24oeCl7cmV0dXJuInN0cmVhbWluZyI9PXRoaXMuZGF0YS5zdGF0dXMmJngudHJpZ2dlcigibGF5b3V0IiksImZvbnQtc2l6ZToxNXB4OyBsaW5lLWhlaWdodDoxLjRlbTsifX0sUHJlcGFyZURCczpmdW5jdGlvbigpe3ZhciB4LGE9dGhpcyxiPWEuZGF0YSxjPShhLlVuemlwREJtYXAsYS5QaG8oIkFsbCIpKSxkPWEuUGhvKCJDb3VjaCIpLGU9T2JqZWN0LmlzT2JqZWN0LGY9W107aWYoYi5vcHRzLmZpbmQoImNyZWF0ZSIpKXt2YXIgZz1iLmRicy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtpZihjW2EubmFtZV0pcmV0dXJuIHg7Zi5wdXNoKGEubmFtZSk7dmFyIGc9JC5leHRlbmQoe25hbWU6YS5uYW1lLHNlY3VyaXR5OmIub3B0cy5maW5kKCJhY2wiKSYmZShhLnNlY3VyaXR5KT9hLnNlY3VyaXR5Om51bGwscGFydGl0aW9uZWQ6ZShhLnByb3BzKSYmISFhLnByb3BzLnBhcnRpdGlvbmVkfSxkLnZlcj4iMDAyLiImJmUoYS5jbHVzdGVyKT97cTorYS5jbHVzdGVyLnE+MD8rYS5jbHVzdGVyLnE6K2QucXx8MixuOigrYS5jbHVzdGVyLm58fDEpLmNsYW1wKDEsZC5ufHwxKX06e30pO3JldHVybiB4LnB1c2goZykseH0sW10pO3g9Zy5sZW5ndGg/YS5QaG8oIkNyZWF0ZURCcyIpKGcsITEpOiQuRGVmZXJyZWQoKS5yZXNvbHZlKFtdKX1lbHNlIHg9JC5EZWZlcnJlZCgpLnJlc29sdmUoKTtyZXR1cm4geC50aGVuKGZ1bmN0aW9uKCl7aWYoIWIub3B0cy5maW5kKCJhY2wiKSlyZXR1cm4hMDt2YXIgeD1jdy5saWIuYTJvKGYpLGM9Yi5kYnMucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIHhbYi5uYW1lXXx8bnVsbD09Yi5zZWN1cml0eT9hOihhLnB1c2goe2NyZWF0ZTohMSxuYW1lOmIubmFtZSxzZWN1cml0eTplKGIuc2VjdXJpdHkpP2Iuc2VjdXJpdHk6bnVsbH0pLGEpfSxbXSk7cmV0dXJuIWMubGVuZ3RofHxhLlBobygiQ3JlYXRlREJzIikoYywhMSl9KS5mYWlsKGZ1bmN0aW9uKCl7YS5BYm9ydCgpLGEubXkuY29tbWl0KCl9KX0sU2F2ZURvY3M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9e30sYz0wLGQ9YS5kb2NzVG9TYXZlLGU9YS5tYXhCdWZmZXIsZj1hLm1heFdyaXRlU3RyZWFtcyxnPWEubWF4UmVzdGFydHN8fDMsaD0hMSxpPSExLGo9eC5VbnppcERCbWFwLGs9MSxsPTAsbT0wLG49MCxvPTUwMCxwPTFlMy9vKjUscT1PYmplY3Quc2l6ZSxyPUEuZGVib3VuY2Uobykscz1FLnRocm90dGxlKDI1MCksdD0hIWEub3B0cy5maW5kKCJ4ZGVsIiksdT0hIWEub3B0cy5maW5kKCJ4cmV2cyIpO2QuZm9yRWFjaChmdW5jdGlvbih4KXtudWxsIT09eCYmKGsrPTEsYys9eC5zaXplKX0pO3ZhciB2PXguVW56aXBTdHJlYW07cmV0dXJuIHYubm90aWZ5KHcpLHYuaXNEb25lKCl8fHYuY29udGludWUoKSx5KCkscigpLEYuZGVsYXkoMWUzKSx7YWJvcnQ6ZnVuY3Rpb24oKXtkLmZvckVhY2goZnVuY3Rpb24oeCl7bnVsbCE9eCYmeC5yZXEmJih4LnJlcS5kYXRhPXZvaWQgMCl9KSxkLmxlbmd0aD0wLGk9ITB9fTtmdW5jdGlvbiB3KHgsYSl7ImRvYyI9PXg/KGsrPTEsISgoYys9YSk+ZXx8ZC5sZW5ndGg+MTUwKXx8di5pc1BhdXNlZCgpfHx2LmlzQWxsUmVhZCgpfHx2LnBhdXNlKCkseS5kZWxheSgyKSk6ImVuZGVkIj09eCYmeS5kZWxheSg1MCl9ZnVuY3Rpb24geSgpe2lmKCFpJiYhaClmb3IodmFyIHgsYT17fTtxKGIpPGYmJmQubGVuZ3RoJiZudWxsIT09YTspbnVsbD09KGE9ZC5zaGlmdCgpKT8wPT1xKGIpP2stPTE6ZC5wdXNoKG51bGwpOiFqW2Euc3JjZGJdfHx0JiYvXC9fZGVsZXRlZFwvLy50ZXN0KGEubmFtZSl8fHUmJi9cL19jb25mbGljdHNcLy8udGVzdChhLm5hbWUpPyhrLT0xLGMtPWEuc2l6ZSxhLnJlcS5kYXRhPXZvaWQgMCxtKz0xKTooeD16KGEpKSYmKGJbYS5uYW1lXT14KX1mdW5jdGlvbiB6KGUpe2lmKGkpcmV0dXJuICQuRGVmZXJyZWQoKS5yZWplY3QoKTt2YXIgZixoPWpbZS5zcmNkYl0sbT1hLmRicy5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LnNyYz09ZS5zcmNkYn0pO2lmKCFtKXJldHVybiB5LmRlYm91bmNlKDEwKSgpLHZvaWQgMDt7cmV0dXJuIGUucmVxLnVybD0iL3sxfS9fYnVsa19kb2NzIi5hc3NpZ24oSChoKSksZS5lcnJvcnMubGVuZ3RoPyhmPSQuRGVmZXJyZWQoKSxmdW5jdGlvbigpe3guUmVxKGUucmVxKS50aGVuKGZ1bmN0aW9uKHgpe2YucmVzb2x2ZSh4KX0sZnVuY3Rpb24oeCxhLGIpe2YucmVqZWN0KHgsYSxiKX0pfS5kZWJvdW5jZSgxZTMqWzEsMywxMCwzMF1bZS5lcnJvcnMubGVuZ3RoLmNsYW1wKDAsMyldKSgpKTpmPXguUmVxKGUucmVxKSxmLnRoZW4oZnVuY3Rpb24oeCl7eC5sZW5ndGgmJnhbMF0uZXJyb3I/byh4WzBdLmVycm9yKyIgIit4WzBdLnJlYXNvbik6KGstPTEsbS5kb25lRG9jcys9MSxjLT1lLnNpemUsZS5zYXZlZD0hMCxlLnJlcS5kYXRhPXZvaWQgMCxsKz0xKX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe28oeCsiOiAiK2ErIiAiK2IpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7bj0wLGRlbGV0ZSBiW2UubmFtZV0sYS5ieXRlcys9ZS5zaXplLHMoKSxEKCkseS5kZWxheSgxKX0pO2Z1bmN0aW9uIG8oYSl7aWYoZS5lcnJvcnMucHVzaChhKSxlLmVycm9ycy5sZW5ndGg8ZyludWxsPT09ZC5sYXN0KCk/KGQucG9wKCksZC5wdXNoKGUpLGQucHVzaChudWxsKSk6ZC5wdXNoKGUpO2Vsc2V7dmFyIGI9bS5uYW1lKyIvIitkZWNvZGVVUklDb21wb25lbnQoZS5uYW1lLmZyb20oZS5zcmNkYi5sZW5ndGgrMSkucmVwbGFjZSgvXC5qc29uJC8sIiIpKTtDKCJGYWlsZWQgc2F2aW5nIGRvYyB7MX0uICIuYXNzaWduKGIpKSx4Lm15LmZpbmQoIiNidG4tc3RvcCIpLnRyaWdnZXIoImNsaWNrLm15Iil9fX19ZnVuY3Rpb24gQSgpe2l8fGh8fChrPjA/KHkoKSxyKCksZC5sZW5ndGh8fDEhPWt8fHEoYil8fEcoKXx8KG4rPTEpPj1wJiYoZC5wdXNoKG51bGwpLGNvbnNvbGUubG9nKCJQdW1wIHN0YWxsZWQsIGVuZm9yY2UgcHVtcCBhYm9ydCIpKSk6QigpKX1mdW5jdGlvbiBCKCl7aD0hMCxzKCksdi5pc0FsbFJlYWQoKT8kLm15LnJhZGlvKCJkYmxpc3QiLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkpOih4LlNhdmVyLmFib3J0PWZ1bmN0aW9uKCl7fSx4LkFib3J0KCkpLGEuc3RhdHVzPSJkb25lIix4Lm15LmNvbW1pdCgpLGNvbnNvbGUubG9nKCJEb25lIHJlc3RvcmUsIHsxfSBkb2NzIHNhdmVkLiIuYXNzaWduKGwpKX1mdW5jdGlvbiBDKHgpe2N3LmxpYi5ub3RlKCJ7MX1SZXN0b3JlIGFib3J0ZWQsIHsyfSBvZiB7M30gZG9jcyBzYXZlZC4iLmFzc2lnbih4fHwiIixhLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZG9uZURvY3N9KS5zdW0oKSxhLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgudG90YWxEb2NzfSkuc3VtKCkpLCJlcnJvciIsOGUzKX1mdW5jdGlvbiBEKCl7IXYuaXNEb25lKCkmJnYuaXNQYXVzZWQoKSYmYzxlLzImJmQubGVuZ3RoPDUxMiYmdi5jb250aW51ZSgpLHIoKX1mdW5jdGlvbiBFKCl7eC5teS5jaGVjaygiI2J5dGVzIiksJC5teS5yYWRpbygidW5kdW1wV3JpdGVVcGRhdGUiLHt9KX1mdW5jdGlvbiBGKCl7aXx8aHx8KCQubXkucmFkaW8oImRibGlzdCIsT2JqZWN0LnZhbHVlcyhqKSksRi5kZWxheSg1ZTMpKX1mdW5jdGlvbiBHKCl7dmFyIHg9di5nZXRTdGF0cygpLGE9eC5pc1ppcFJlYWQsYj14LmZpbGVzO3guZHJvcDtyZXR1cm4hYXx8Yj5sK219ZnVuY3Rpb24gSCh4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfX0sREJSb3c6e2lkOiJjdy5QaG90b24uVW5kdW1wLkRCUm93Iixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3guaHRtbChhLkhUTUwpfSxkYXRhOntuYW1lOiIiLHRhcmdldDoiIix0b3RhbFNpemU6MCx0b3RhbERvY3M6MCxkb25lRG9jczowfSx1aTp7IiNudW0tdG90YWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyLmxlbmd0aDp4LnRvdGFsRG9jcztyZXR1cm4gYj9NYXRoLmZsb29yKHguZG9uZURvY3MvYioxMDApLmNsYW1wKDAsMTAwKSsiJSI6IiJ9LGxpc3Rlbjp7dW5kdW1wV3JpdGVVcGRhdGU6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNPYmplY3QoYSkpcmV0dXJuIG51bGx9fX0sIiNudW0tYmciOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz1PYmplY3QuaXNBcnJheSh4LmZpbHRlcik/eC5maWx0ZXIubGVuZ3RoOngudG90YWxEb2NzO2M/Yi5jc3Moe2hlaWdodDooeC5kb25lRG9jcy9jKjIuNSkuY2xhbXAoMCwyLjUpKyJlbSJ9KTpiLmNzcyh7aGVpZ2h0OiIwcHgifSl9LGxpc3Rlbjp7dW5kdW1wV3JpdGVVcGRhdGU6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNPYmplY3QoYSkpcmV0dXJuIG51bGx9fX0sIiNkYi1uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiB4Lm5hbWUudHJ1bmNhdGUoNDAsIm1pZGRsZSIsIi4uLiIpLmVzY2FwZUhUTUwoKX19LCIjZGItdG90YWxzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPU9iamVjdC5pc0FycmF5KHguZmlsdGVyKT94LmZpbHRlcjpbXSxjPWIubGVuZ3RoP2IubGVuZ3RoOngudG90YWxEb2NzO3JldHVybiBiLmxlbmd0aD8iezF9IGRvY3syfSIuYXNzaWduKGIubGVuZ3RoLGIubGVuZ3RoPjE/InMiOiIiKToiezF9IGRvY3syfSwgezN9IHJhdyIuYXNzaWduKGMsYz4xPyJzIjoiIix4LnRvdGFsU2l6ZS5ieXRlcygyKS5yZXBsYWNlKC9CJC8sImIiKSl9fX0sSFRNTDonPGRpdiBjbGFzcz0iZGItaW5mbyBkaWIgdmF0Ij48ZGl2IGlkPSJkYi1uYW1lIiBjbGFzcz0idzEwMHAgZnMxMjAgZnc0MDAgbncgb2ggZWxsIj48L2Rpdj48ZGl2IGlkPSJkYi10b3RhbHMiIGNsYXNzPSJ3MTAwcCBmczkwIG84MCBudyBvaCBlbGwiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im51bS1jb250IGRpYiB2YXQiPjxkaXYgaWQ9Im51bS1iZyIgY2xhc3M9IncxMDBwIj48L2Rpdj48ZGl2IGlkPSJudW0tdG90YWwiIGNsYXNzPSJ3MTAwcCB0YWMgZnMxMTAgZnczMDAgbzcwIGxoMjAwIHB0MSI+PC9kaXY+PC9kaXY+JyxzdHlsZTp7IiAubnVtLWNvbnQiOnsiIjoid2lkdGg6M2VtOyBoZWlnaHQ6Mi41ZW07IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlci1yYWRpdXM6IDJweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjojZjJmNWY4OyIsIiAjbnVtLWJnIjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyBsZWZ0OiAwOyBiYWNrZ3JvdW5kLWNvbG9yOiM5M2VlZGU7IHRyYW5zaXRpb246IGhlaWdodCAwLjJzOyJ9LCIgLmRiLWluZm8iOnsiIjoid2lkdGg6IGNhbGMoMTAwJSAtIDNlbSk7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmctbGVmdDogcmlnaHRlbTsifX19fSxEZG9jOntfaWQ6Il9kZXNpZ24vcGhvdG9uLXN5bmMiLGxhbmd1YWdlOiJqYXZhc2NyaXB0IixuYW1lOiJQaG90b24gc3luYyB1dGlscyIsdmVyc2lvbjoiMDEuMDEiLHN0YW1wOjAsb3B0aW9uczp7Y29uZmxpY3RzOiEwfSxmaWx0ZXJzOntleGNsdWRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9YS5xdWVyeXx8e30sYz14Ll9pZDtyZXR1cm4hKGIueGRlbCYmeC5fZGVsZXRlZHx8Yi54ZGRvYyYmIl9kZXNpZ24vIj09Yy5zdWJzdHIoMCw4KSl9fX0sc3RhbXA6MTY1MDA2ODYzOTcwMCxwYXJhbXM6e3N0cmljdDohMH19LCJjdy5TeXMuSlNPTiI6e2lkOiJjdy5TeXMuSlNPTiIsYnVpbGQ6NDAsVmVyc2lvbjoiMi45IixkYXRhOntkb2M6e30sbWF4RGVwdGg6MTUwLGxhYmVsV2lkdGg6MTMwLHRyZWU6e30sY21kOiIiLHRpdGxlOiJVbnRpdGxlZCBKU09OIixyYXc6IiIsdmlld3N0YXRlOnt9LHNlYXJjaDoiIixmb3VuZDp7fX0sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHg/dGhpc1t4XTp0aGlzfSxNUm9vdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm15LnJvb3QoKX0scGFyYW1zOntyZXN0eWxlOjEwMCxkZWxheTowLHN0cmljdDohMH0sTGliOntyZWxpc3Q6ZnVuY3Rpb24oeCxhKXthLkxpc3Q9YS5NYWtlTGlzdChhLmRhdGEpLHguZmluZCgiPi5pdmFsdWU+LmlsaXN0IikudHJpZ2dlcigicmVjYWxjIikseC5maW5kKCI+LmluYXY+LmlkZXNjIikudHJpZ2dlcigiY2hlY2siKX0sa2ljazpmdW5jdGlvbih4LGEpe2Zvcih2YXIgYiBpbiB4KWRlbGV0ZSB4W2JdO09iamVjdC5tZXJnZSh4LGEpLE9iamVjdC5pc0FycmF5KHgpJiYoeC5sZW5ndGg9YS5sZW5ndGgpfSxrZXlCaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYyxkPXRoaXMubGFiZWxXaWR0aC8zfDA7cmV0dXJuIDQmeC5zdGF0ZSYmdGhpcy5SVCgiU2VhcmNoUmUiKT9jPXgua2V5LnJlcGxhY2UodGhpcy5SVCgiU2VhcmNoUmUiKSwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9Imp2YWwtZm91bmQta2V5Ij4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iik6KHgua2V5Lmxlbmd0aD5kJiZiLmF0dHIoInRpdGxlIix4LmtleS5lc2NhcGVIVE1MKCkpLGM9L14ofFxzKykkLy50ZXN0KHgua2V5KT8nIicreC5rZXkuZXNjYXBlSFRNTCgpKyciJzp4LmtleS50cnVuY2F0ZShkLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSksY30sY29tbW9uSW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3guYWRkQ2xhc3MoImVkLW5vZGUtIithLlBhdGhTaWcoYi5wYXRoLGIua2V5KSkseC5odG1sKGEuSFRNTCl9fSxNZW1TdGF0ZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGE7YS52aWV3c3RhdGV8fChhLnZpZXdzdGF0ZT17fSk7dmFyIGI9dGhpcy5QYXRoU2lnKHgucGF0aCx4LmtleSk7YS52aWV3c3RhdGVbYl0hPXguc3RhdGUmJihhLnZpZXdzdGF0ZVtiXT14LnN0YXRlLGEuX2lkJiZ0aGlzLk1lbVN0YXRlU2F2ZSgpKX0sTWVtU3RhdGVTYXZlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhO2lmKHguX2lkJiZPYmplY3Quc2l6ZSh4LnZpZXdzdGF0ZSkpe3ZhciBhPU9iamVjdC5rZXlzKHgudmlld3N0YXRlKS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gMj09eC52aWV3c3RhdGVbYl0mJmEucHVzaChiKSxhfSxbXSk7dGhpcy5Mcygidmlld3N0YXRlLiIrY3cubGliLnNkYm0oKHguZGJuYW1lfHwiIikrIi8iK3guX2lkKSx7c3RhbXA6RGF0ZS5ub3coKSxzdGF0ZTphfSl9fSxNZW1TdGF0ZVJlc3RvcmU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLmRhdGE7aWYoeC5faWQpe3ZhciBhPXRoaXMuTHMoInZpZXdzdGF0ZS4iK2N3LmxpYi5zZGJtKCh4LmRibmFtZXx8IiIpKyIvIit4Ll9pZCkpO2lmKCFPYmplY3QuaXNPYmplY3QoYSkpcmV0dXJuO3gudmlld3N0YXRlPWEuc3RhdGUucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09Mix4fSx7fSl9fSxQYXRoU2lnOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LGFdLmNvbXBhY3QoKS5mbGF0KCkuam9pbigi4p2AIikpfSxSZWpvaW46ZnVuY3Rpb24oeCxhKXtmb3IodmFyIGIsYz10aGlzLkluZGV4LGQ9MDtkPGEubGVuZ3RoO2QrKyliPWFbZF0sL14ob2J8YXIpLy50ZXN0KGIudHlwZSl8fCh4LnZhbHVlW2Iua2V5XT1iLnZhbHVlKSxjLmRpcnR5PSEwfSxOb2RlVXBkYXRlZDpmdW5jdGlvbih4LGEsYil7fSxFZGl0b3JJbnZva2VkOmZ1bmN0aW9uKHgsYSl7fSxIZWxwOmZ1bmN0aW9uKHgpe3JldHVybnt0aXA6IiIsdXJsOiIifX0sU2VhcmNoUmU6ITEsaW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1hLmRhdGEsZD0oRGF0ZS5ub3coKSxPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuL15cJFthLXpdLy50ZXN0KHgpP3guZnJvbSgxKToiIn0pLmNvbXBhY3QoITApKSxlPU9iamVjdC5pc0FycmF5LGY9T2JqZWN0LmlzT2JqZWN0O2IuTHM9Yi5McygiIiksT2JqZWN0LmlzRnVuY3Rpb24oYi5EYikmJihiLkRiPWIuRGIoeCkpLHguaHRtbChiLkhUTUwuTWFpbiksYi5NZW1TdGF0ZVNhdmU9Yi5NZW1TdGF0ZVNhdmUuZGVib3VuY2UoNzAwKTt2YXIgZz0iUlQgUm9vdCBJbmxpbmVDTSBNYWtlTGlzdCBOb2RlVXBkYXRlZCBIZWxwIFBhdGhTaWciLnNwbGl0KCIgIik7aWYoZC5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWJbIiQiK3hdO2EubGFiZWxXaWR0aD1jLmxhYmVsV2lkdGgsZy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2FbeF09Ylt4XX0pLCJtdWx0aSI9PXg/YS5IVE1MPWIuSFRNTC5JdGVtQ29tcGxleDooYS5IVE1MfHwoYS5IVE1MPWIuSFRNTC5JdGVtU2ltcGxlKSxhLmluaXR8fChhLmluaXQ9Yi5MaWIuY29tbW9uSW5pdCksYS51aVsiLmlrZXkiXS5iaW5kfHwoYS51aVsiLmlrZXkiXS5iaW5kPWIuTGliLmtleUJpbmQpKSxhLnBhcmFtc3x8KGEucGFyYW1zPXt9KSxhLnBhcmFtcy5zdHJpY3Q9ITB9KSwkLmV4dGVuZChiLkRvYyx7c3RhdGU6MixsZXZlbDowLHBhdGg6W10sdHlwZToib2JqZWN0IixrZXk6IlJvb3QiLHZhbHVlOmEuZGF0YS5kb2N9KSxjLl9pZD1jLl9pZHx8Yy5kb2MuX2lkfHwiIixudWxsPT09Yy5kb2MuX3JldiYmZGVsZXRlIGMuZG9jLl9yZXYsWyJhZGQiLCJ0YWtlb3V0Il0uZm9yRWFjaChmdW5jdGlvbihhKXt4Lm9uKCJjbGljay5teSIsIi5idG4tIithLGIuRXZlbnRbYV0uZmlsbCh2b2lkIDAsdm9pZCAwLGIsYi5NUm9vdCgpKSl9KSx4Lm9uKCJjbGljay5teSIsIi5pZGVzYyIsZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgYT0kKHRoaXMpLm15KCkucm9vdCxiPWEubXkoImRhdGEiKS5tYW5pZmVzdDtyZXR1cm4vXlwkKG11bHRpfGZpbGVzKS8udGVzdChifHwiJG11bHRpIikmJmEuZmluZCgiPi5pYWN0Pi5idG4tanNvbiIpLnRyaWdnZXIoImNsaWNrIiksITF9KSx4Lm9uKCJjbGljay5teSIsIi5pa2V5IixmdW5jdGlvbih4KXt2YXIgYT0kKHguY3VycmVudFRhcmdldCksYj1hLm15KCkucm9vdCxjPWEubXkoKS5kYXRhO2UoYy52YWx1ZSl8fGYoYy52YWx1ZSk/MTYmYy5zdGF0ZSYmYi50cmlnZ2VyKCJlZGl0b3JjYW5jZWwubXkiKTpiLnRyaWdnZXIoImVkaXRvcmNhbmNlbC5teSIpfSkseC5vbigiY2xpY2subXkiLCIjZG9jPi5pYWN0Pi5idG4tZGVsIixmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLHgudHJpZ2dlcigiY2FuY2VsIil9KSxiLm9uSW5pdC5sZW5ndGgmJngudGhlbihmdW5jdGlvbigpe2Iub25Jbml0LmZvckVhY2goZnVuY3Rpb24oYyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGMpdHJ5e2MuY2FsbChiLHgsYSl9Y2F0Y2goeCl7fX0pfSksYi5NZW1TdGF0ZVJlc3RvcmUmJmIuTWVtU3RhdGVSZXN0b3JlKCksImNyZWF0ZSIhPWMuY21kJiZiLmRiJiZiLmFwcCYmYi5hcHAubG9jYWwpcmV0dXJuIGN3LmxpYi5zY3JvbGxZJiZjdy5saWIuc2Nyb2xsWSh4KSxiLmRiLmdldChjLmRvYy5faWQse2F0dGFjaG1lbnRzOiEwLHJldnNfaW5mbzohMCxjb25mbGljdHM6ITB9KS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKGMuZG9jLE9iamVjdC5zZWxlY3QoeCxbIl9hdHRhY2htZW50cyJdKSkseC5fY29uZmxpY3RzJiZ4Ll9jb25mbGljdHMubGVuZ3RoJiYoYy5kb2MuX2NvbmZsaWN0cz14Ll9jb25mbGljdHMuc2xpY2UoMCkpLGMuZG9jLl9yZXZzX2luZm89eC5fcmV2c19pbmZvLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4ibWlzc2luZyIhPXguc3RhdHVzfSl9KX0sb25Jbml0OltdLGRpZTpmdW5jdGlvbigpe3ZhciB4LGE9dGhpcy5CbG9icztmb3IoeCBpbiBhKVVSTC5yZXZva2VPYmplY3RVUkwoYVt4XSl9LEJsb2JzOnt9LERvYzp7fSxJbmRleDp7ZGlydHk6ITAsaWR4OltdfSx1aTp7IiNidG4tc2F2ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7bnVsbCE9YSYmYy5kYi5zYXZlKHguZG9jKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBkPXtkb2M6YX07Yy5MaWIua2ljayh4LmRvYyxhKTt2YXIgZT1jLkxzKCJ2aWV3c3RhdGUuIithLl9pZCk7ZSYmKGUuc3RhbXA+ZC5zdGFtcHx8IU9iamVjdC5zaXplKHgudmlld3N0YXRlKSkmJih4LnZpZXdzdGF0ZT1lLnN0YXRlKSx4Ll9pZD1hLl9pZHx8IiIsYS5fcmV2JiYoeC5fcmV2PWEuX3JldiksJC5leHRlbmQoYy5Eb2Mse3N0YXRlOjIsbGV2ZWw6MCxwYXRoOltdLHR5cGU6Im9iamVjdCIsa2V5OiJSb290Iix2YWx1ZTp4LmRvY30pLGIubXkoImZpbmQiLCIjZG9jIC5pa2V5dHJlZTplcSgwKSIpLnRyaWdnZXIoImNsaWNrIil9LGZ1bmN0aW9uKHgsYSl7Y3cubGliLm5vdGUoIlNhdmUgZmFpbGVkLCBzZWUgY29uc29sZSIsImVycm9yIiksY29uc29sZS5sb2coYSx4KX0pfX0sIiNkb2N0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguX2lkPXguZG9jLl9pZHx8eC5faWQseC5fcmV2PXguZG9jLl9yZXYseC50aXRsZT0oeC5kb2MuX2RifHwodGhpcy5kYnx8e25hbWU6Ik5vREIifSkubmFtZSkrIuKAiS/igIkiKyh4LmRvYy5faWR8fCIiKSx4LnRpdGxlfSx3YXRjaDpbIiNkb2MiXSxkZWxheTozMH0sIiNqc29uLXNlYXJjaCI6e2RlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zZWFyY2g7dmFyIGI9dGhpcyxjPXguc2VhcmNoO3JldHVybiB4LnNlYXJjaD1hLmxlbmd0aDwzPyIiOmEseC5zZWFyY2g/KGIuU2VhcmNoUmU9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZShhLmNvbXBhY3QoKSkrIikiLCJpIiksYi5TZWFyY2goKSxiLm15LnRyaWdnZXIoIiNkb2MgLmlrZXk6ZXEoMCkiLCJjbGljay5teSIpLGEpOihiLlNlYXJjaFJlPSExLHguZm91bmQ9e30sYyYmYi5teS50cmlnZ2VyKCIjZG9jIC5pa2V5OmVxKDApIiwiY2xpY2subXkiKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99LGV2ZW50czoiaW5wdXQubXkgY2hlY2subXkifSwiI2RvYyI6e2RlbGF5OjIwLGJpbmQ6InRoaXMuRG9jIixjaGVjazohMX19LGoyaDpmdW5jdGlvbih4LGEsYixjLGQpe3ZhciBlPWJ8fFtdLGY9Y3cubGliLmEybyhlKSxnPSEhZCxoPVtdO3JldHVybiBsKGooeCxhLDApKSxoO2Z1bmN0aW9uIGkoeCxhLGIpe3ZhciBkLGYsaCxpLGs9e2tleTpudWxsLHZhbDpudWxsLGVtcHR5OiExLHNpemU6MixsZWZ0OiJ7IixyaWdodDoifSIsdHJpbTowLHR5cGU6Im9iamVjdCIscm93czpbXX0sbD0wLG09e30sbj1PYmplY3Qua2V5cyh4KTtpZighbi5sZW5ndGgpcmV0dXJuIGsuZW1wdHk9ITAsay5zaXplPTIsay52YWw9IiIsaztpZihiPj1jfHxuLmxlbmd0aD41MClyZXR1cm4gay50cmltPW4ubGVuZ3RoLGsuc2l6ZT0yLGs7dmFyIG89KDEuNSphL24ubGVuZ3RofDApLmNsYW1wKDEwLC45KmF8MCkscD0wO209e307Zm9yKGQ9MDtkPGUubGVuZ3RoJiZsPGEtby8zO2QrKyludWxsIT14W2g9ZVtkXV0mJihtW2hdPSEwLGk9aC50cnVuY2F0ZSgoby8oZz8xOjIpKS5jbGFtcCgxMiwxMDApLCJyaWdodCIsIuKApiIpLCEvXHMvLnRlc3QoaSkmJml8fChpPSciJytpKyciJyksKGY9aih4W2hdLG8sYisxKSkua2V5PWksbCs9aS5sZW5ndGgrKGc/MDpmLnNpemUpLHArPTEsay5yb3dzLnB1c2goZikpO2ZvcihkPTA7ZDxuLmxlbmd0aCYmbDxhLW8vMztkKyspbVtoPW5bZF1dfHwoaT1oLnRydW5jYXRlKChvLyhnPzE6MikpLmNsYW1wKDEyLDEwMCksInJpZ2h0Iiwi4oCmIiksIS9ccy8udGVzdChpKSYmaXx8KGk9JyInK2krJyInKSwoZj1qKHhbaF0sbyxiKzEpKS5rZXk9aSxsKz1pLmxlbmd0aCsoZz8wOmYuc2l6ZSkscCs9MSxrLnJvd3MucHVzaChmKSk7cmV0dXJuIGsudHJpbT1uLmxlbmd0aC1wLGsuc2l6ZT1sLGt9ZnVuY3Rpb24gaih4LGEsYil7dmFyIGQsZSxmPXtrZXk6bnVsbCx2YWw6bnVsbCxlbXB0eTohMSxzaXplOjAsbGVmdDoiIixyaWdodDoiIix0cmltOjAsdHlwZToiIixyb3dzOltdfSxnPTAsaD0wLGs9MCxsPXR5cGVvZiB4O2lmKG51bGw9PT14fHwib2JqZWN0IiE9bClyZXR1cm4idW5kZWZpbmVkIj09bD8oZi50eXBlPSJ1bmRlZmluZWQiLGU9eCsiIik6InN0cmluZyIhPWw/KGYudHlwZT0ibnVtYmVyIiE9bD8ic2ltcGxlIjpsLGU9eCsiIik6KGYudHlwZT0ic3RyaW5nIiwoaD14Lmxlbmd0aCk8PWEtMT9lPXg6KGU9eC5zdWJzdHIoMCxhKSxmLnRyaW09aC1hKSxlLmxlbmd0aCYmIi0iIT1lWzBdJiYhL1xzLy50ZXN0KGUpfHwoZi5sZWZ0PWYucmlnaHQ9JyInLGcrPTIpKSxnKz1lLmxlbmd0aCxmLnNpemU9ZyxmLmVtcHR5PSFlLmxlbmd0aCxmLnZhbD1lLGY7aWYoIU9iamVjdC5pc0FycmF5KHgpKXJldHVybiBpKHgsYSxiKTtpZihmLnR5cGU9ImFycmF5IixmLmxlZnQ9IlsiLGYucmlnaHQ9Il0iLGcrPTIseC5sZW5ndGgpaWYoYjxjJiZ4Lmxlbmd0aDw1MCYmYS94Lmxlbmd0aD41KXtrPSgxLjUqYS94Lmxlbmd0aHwwKS5jbGFtcCgxMCwuOSphfDApLGg9MDt2YXIgbT0wO2ZvcihkPTA7ZDx4Lmxlbmd0aCYmaDxhLWsvMztkKyspZys9KGU9aih4W2RdLGssYisxKSkuc2l6ZSxoKz1lLnNpemUsbSs9MSxmLnJvd3MucHVzaChlKTtmLnRyaW09eC5sZW5ndGgtbX1lbHNlIGYudHJpbT14Lmxlbmd0aDtlbHNlIGYuZW1wdHk9ITAsZz0yLGYudmFsPSIiO3JldHVybiBmLnNpemU9ZyxmfWZ1bmN0aW9uIGsoeCxhKXtoLnB1c2goW3gsYV0pfWZ1bmN0aW9uIGwoeCl7aWYobnVsbCE9eC5rZXkmJihrKCJrZXkiLHgua2V5KSxnfHxrKCIiLCI6ICIpKSx4LmVtcHR5KXJldHVybiBrKCJlbXB0eSIseC5sZWZ0Kyh4LnZhbHx8IiIpK3gucmlnaHQpLHZvaWQgMDt2YXIgYj14LnR5cGUsYz0hMTtpZihudWxsIT14LnZhbCl7aWYoeC5sZWZ0JiZrKCJicmFja2V0Iix4LmxlZnQpLHgudmFsLmxlbmd0aDxhLzUmJmZbeC5rZXldJiYoYz0hMCksKCFnfHxjKSYmKGcmJmMmJmsoIiIsIjogIiksayhiLHgudmFsLmVzY2FwZUhUTUwoKSkseC50cmltKSl7dmFyIGQ9IisiO2soInRyaW0iLCJvYmplY3QiPT1ifHwiYXJyYXkiPT1iP2QreC50cmltOiLigKYiKX14LnJpZ2h0JiZrKCJicmFja2V0Iix4LnJpZ2h0KSxjfHwhZ3x8eC5yaWdodHx8InNpbXBsZSI9PWJ8fCJudW1iZXIiPT1ifHxrKCJicmFja2V0Iiwic3RyaW5nIj09Yj8nIiInOiJvYmplY3QiPT1iPyJ7fSI6IltdIil9ZWxzZSBpZih4LnJvd3MubGVuZ3RoKXt4LmxlZnQmJmsoImJyYWNrZXQiLHgubGVmdCk7dmFyIGUsaD14LnJvd3MubGVuZ3RoO2ZvcihlPTA7ZTxoO2UrKylsKHgucm93c1tlXSksKGUhPWgtMXx8eC50cmltKSYmaygiIiwiLCAiKTtpZih4LnRyaW0pe2Q9IisiO2soInRyaW0iLCJvYmplY3QiPT1ifHwiYXJyYXkiPT1iP2QreC50cmltOiLigKYiKX14LnJpZ2h0JiZrKCJicmFja2V0Iix4LnJpZ2h0KX1lbHNlIHgudHJpbSYmKCJvYmplY3QiPT1iP2soInNob3J0IiwieyIreC50cmltKyJ9Iik6ImFycmF5Ij09YiYmaygic2hvcnQiLCJbIit4LnRyaW0rIl0iKSl9fSxJbmxpbmVDTTpmdW5jdGlvbih4LGEsYil7dmFyIGM9YS5kYXRhLGQ9JC50eXBlKGMudmFsdWUpLGU9L14ob2J8YXIpLy50ZXN0KGQpLGY9YS5SVCgiTUVkaXQiKS5wYXJzZVN0cmluZyxnPWEuUlQoIkxpYiIpLmtpY2ssaD1hLlJUKCIkbnVtYmVyIikuRi5DYWxjO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIGEubXkucm9vdCgpLmZpbmQoeCl9ZnVuY3Rpb24gaih4LGIpe2lmKGMuaGFzaD1jdy5saWIuc2RibShbYy5pZCxjLnZhbHVlXSksaSgiPi5pbmF2Pi5pZWRpdG9yIikubXkoInJlbW92ZSIpLGkoIj4uaW5hdiIpLnJlbW92ZUNsYXNzKCJpc2VkaXRvciIpLGUpe2Muc3RhdGU9eD8yMzkmYy5zdGF0ZToyMzcmYy5zdGF0ZXwxLDEmYy5zdGF0ZT9hLkxpc3Q9W106YS5MaXN0PWEuTWFrZUxpc3QoYyk7dmFyIGQ9aSgiPi5pbmF2Pi5pZGVzYyIpLGY9aSgiPi5pdmFsdWU+LmlsaXN0IiksZz1pKCI+LmluYXY+LmlrZXkiKTtkLnJlbW92ZUNsYXNzKCJoaWRlIiksYnx8KGYudHJpZ2dlcigicmVjYWxjIiksZi50cmlnZ2VyKCJjaGVjayIpKSxkLnRyaWdnZXIoImNoZWNrIiksZy50cmlnZ2VyKCJjaGVjayIpfWVsc2UgYy5zdGF0ZT0xLGkoIj4uaW5hdj4uaXZhbHVlIikucmVtb3ZlQ2xhc3MoImhpZGUiKX14Lm9uKCJjbGljay5teSIsZnVuY3Rpb24oYil7dmFyIGQ9JChiLnRhcmdldCk7aWYoIWQuaXMoImEiKSYmIWQuaXMoImltZyIpJiYoIWV8fDE2JmMuc3RhdGUpKXt2YXIgZj1pKCI+LmluYXYiKTtpZighZi5oYXNDbGFzcygiaXNlZGl0b3IiKSl7dmFyIGc9YS5SVCgiTGliIikuaXNTeXN0ZW0uY2FsbChhLGMpO2cmJmN3LmxpYi5ub3RlKE9iamVjdC5pc1N0cmluZyhnKT9nOiJUaGlzIHByb3AgaXMgcmVhZC1vbmx5LiIsIndhcm5pbmciKSxjLnN0YXRlPWU/MTZ8Yy5zdGF0ZToyLGYuYWRkQ2xhc3MoImlzZWRpdG9yIiksaShlPyI+LmluYXY+LmlkZXNjIjoiPi5pbmF2Pi5pdmFsdWUiKS5hZGRDbGFzcygiaGlkZSIpLGkoIj4uaW5hdj4uaWVkaXRvciIpLm15KGEuUlQoIk1FZGl0Iikse3RleHQ6ZT8iKCIrSlNPTi5zdHJpbmdpZnkoYy52YWx1ZSxudWxsLCIgICIpKyIpIjpjLnZhbHVlKyIiLG1vZGU6YS5DTXx8ImF1dG8iLHJlYWRvbmx5OmcsZXhwZWN0OiQudHlwZShjLnZhbHVlKX0pLnRoZW4oZnVuY3Rpb24oKXt2YXIgYj1hLlJUKCJFZGl0b3JJbnZva2VkIik7ImZ1bmN0aW9uIj09dHlwZW9mIGImJmIoeCxhKX0pfX19LmRlYm91bmNlKDE1KSksYS5teS5yb290KCkub24oImVkaXRvcmNvbW1pdC5teSIsZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgYz1pKCI+LmluYXYiKSxrPWEuZGF0YSxsPSIiO2lmKGMuaGFzQ2xhc3MoImlzZWRpdG9yIikpe3ZhciBtLG4sbz1rLnZhbHVlLHA9T2JqZWN0LmNsb25lKG8sITApLHE9aSgiPi5pbmF2Pi5pZWRpdG9yIikubXkoImRhdGEiKS50ZXh0O2U/KG09ZihxKSwkLnR5cGUobyk9PSQudHlwZShtKT8oZyhrLnZhbHVlLG0pLGEubXkucmVkcmF3KCkpOigobj1hLm15LnBhcmVudCgpKS5kYXRhLnZhbHVlW2sua2V5XT1tLGsudmFsdWU9bi5kYXRhLnZhbHVlW2sua2V5XSxhLlJUKCJMaWIiKS5yZWxpc3Qobi5teS5yb290KCksbikpKToibnVtYmVyIj09ZD9udWxsIT1oKHEsbnVsbCk/ay52YWx1ZT1oKHEsbnVsbCk6bD0iRXhwcmVzc2lvbiBtdXN0IHJldHVybiBhIG51bWJlciI6ay52YWx1ZT1xLGw/Y3cubGliLm5vdGUobCwiZXJyb3IiLDNlMyk6KGEuTm9kZVVwZGF0ZWQoW2sucGF0aCxrLmtleV0scCxrLnZhbHVlKSxmdW5jdGlvbigpe2ooITApLCJmdW5jdGlvbiI9PXR5cGVvZiBiP2Ioay52YWx1ZSxvKTplfHxpKCI+LmluYXY+Lml2YWx1ZSIpLnRyaWdnZXIoImNoZWNrIil9LmRlbGF5KDEwKSl9fSkub24oImVkaXRvcmNhbmNlbC5teSIsZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKSxqKGUsITApfSl9LE11dGF0ZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9Yi5kb2MsZD1iLnZpZXdzdGF0ZSxlPU9iamVjdC5pc09iamVjdCxmPU9iamVjdC5pc0FycmF5LGc9YS5QYXRoU2lnO0pTT04uc3RyaW5naWZ5O2lmKCFlKHgpKXJldHVybntlcnJvcjoiSW52YWxpZCBwYXJhbXMifTt2YXIgaD0kLmV4dGVuZCh7cGF0aDpudWxsLGN0eDpudWxsLG9wOiJ1cGQiLHZhbDp2b2lkIDAsZXhwYW5kOiExLGJsaW5rOiExLGVkaXQ6ITF9LHgpO2lmKCFmKGgucGF0aCkpcmV0dXJue2Vycm9yOiJJbnZhbGlkIHBhdGgifTt2YXIgaT1bIlJvb3QiXS5jb25jYXQoaC5wYXRoLmZsYXQoKSksaj1pLnBvcCgpLGs9aS5zbGljZSgxKSxsPS9eKG5vcHxpbnN8ZGVsfHVwZCkkLy50ZXN0KGgub3ApP2gub3A6bnVsbDtpZihudWxsPT1sKXJldHVybntlcnJvcjoiSW52YWxpZCBvcCJ9O2lmKC9eKGluc3x1cGQpJC8udGVzdChsKSYmdm9pZCAwPT09aC52YWwpcmV0dXJue2Vycm9yOiJObyB2YWx1ZSJ9O3ZhciBtLG4sbyxwLHE9e30scj0wO2lmKCJub3AiIT09bCl7aWYobnVsbD09KG09eihjLGspKSlyZXR1cm57ZXJyb3I6Ik5vZGUgaXMgdW5yZWFjaGVhYmxlIn07aWYoZihtKSl7aWYoaj0raixpc05hTihqKXx8ajwwfHxqIT0oMHxqKSlyZXR1cm57ZXJyb3I6IkludmFsaWQgbm9kZSBpbmRleCJ9O2lmKCJpbnMiPT1sJiZqPm0ubGVuZ3RoJiYoaj1tLmxlbmd0aCksL14oZGVsfHVwZCkkLy50ZXN0KGwpJiZqPm0ubGVuZ3RoLTEpcmV0dXJue2Vycm9yOiJOb2RlIGluZGV4IGlzIG91dCBvZiBhcnJheSJ9fX1lKG0pJiYhbS5oYXNPd25Qcm9wZXJ0eShqKSYmaC5jdHgmJihsPSJpbnMiKSwidXBkIj09bD9tW2pdPWgudmFsOiJkZWwiPT1sP2YobSk/bS5yZW1vdmVBdChqKTpkZWxldGUgbVtqXToiaW5zIj09bCYmKGYobSk/bS5pbnNlcnQoZihoLnZhbCk/W2gudmFsXTpoLnZhbCxqKTohKG89aC5jdHgpfHwhZihvKXx8by5sZW5ndGg8Mj9tW2pdPWgudmFsOigocD0obj1PYmplY3Qua2V5cyhtKSkuaW5kZXhPZihvWzBdKSk+LTE/cj1wKzE6KHA9bi5pbmRleE9mKG9bMV0pKT4tMSYmKHI9cC5jbGFtcCgwLDFlNikpLG4uc2xpY2UocikuZm9yRWFjaChmdW5jdGlvbih4KXtxW3hdPW1beF0sZGVsZXRlIG1beF19KSxtW2pdPWgudmFsLG4uc2xpY2UocikuZm9yRWFjaChmdW5jdGlvbih4KXttW3hdPXFbeF0sZGVsZXRlIHFbeF19KSkpO3ZhciBzLHQsdT1nKGksaiksdj1bXSx3PSIiO2lmKCh2PWkubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGcoaS50byhhKzEpKX0pLnNsaWNlKDEpKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3c9d3x8Mj09ZFt4XT93Onh9KSx3fHwodz12Lmxhc3QoKXx8Y3cubGliLnNkYm0oIlJvb3QiKSkscz1hLm15LmZpbmQoIi5lZC1ub2RlLSIrdykubXkoIm1hbmlmZXN0IiksaC5leHBhbmQmJih2LmZvckVhY2goZnVuY3Rpb24oeCl7ZFt4XT0yfSksZFt1XT1mKGgudmFsKXx8ZShoLnZhbCk/MjoxLHMuZGF0YS5zdGF0ZT0yKSwyPT1zLmRhdGEuc3RhdGUmJihzLkxpc3Q9cy5NYWtlTGlzdChzLmRhdGEpKSx0PWEubXkuZmluZCgiLmVkLW5vZGUtIit1KSwidXBkIj09bCYmdC5sZW5ndGgmJiQudHlwZSh0Lm15KCJkYXRhIikudmFsdWUpPT0kLnR5cGUoaC52YWwpKXt2YXIgeT10Lm15KCJkYXRhIik7eS52YWx1ZT1oLnZhbCwiJG11bHRpIj09eS5tYW5pZmVzdCYmMiZ5LnN0YXRlJiYodC5teSgibWFuaWZlc3QiKS5MaXN0PXQubXkoIm1hbmlmZXN0IikuTWFrZUxpc3QoeSkpLHQubXkoInJlZHJhdyIpfWVsc2UgMj09cy5kYXRhLnN0YXRlJiYocy5MaXN0PXMuTWFrZUxpc3Qocy5kYXRhKSkscy5teS5yZWRyYXcoKTtyZXR1cm4gaC5leHBhbmQmJmEuTWVtU3RhdGVTYXZlKCksaC5leHBhbmQmJmguYmxpbmsmJmZ1bmN0aW9uKCl7dmFyIHg9YS5teS5maW5kKCIuZWQtbm9kZS0iKygiZGVsIiE9bD91OnYubGFzdCgpKSksYj1PYmplY3QuaXNTdHJpbmcoaC5ibGluayk/aC5ibGluazoib3JhbmdlIjt4LmFkZENsYXNzKGIpLGZ1bmN0aW9uKCl7eC5yZW1vdmVDbGFzcyhiKX0uZGVsYXkoNTAwKX0uZGVsYXkoMTAwKSx7b2s6ITAsZXhwYW5kZWQ6dn07ZnVuY3Rpb24geih4LGEpe2Zvcih2YXIgYj14LGM9YS5sZW5ndGgsZD0wO2Q8YyYmbnVsbCE9YjtkKyspYj1iW2FbZF1dLGUoYil8fGYoYil8fChiPW51bGwpO3JldHVybiBifX0sU2VhcmNoOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj17fSxjPWEuU2VhcmNoUmV8fHg7aWYoIWMpcmV0dXJuIGEuZGF0YS5mb3VuZD17fTthLkluZGV4LmRpcnR5JiYoYS5JbmRleC5pZHg9ayhhLkRvYy52YWx1ZSksYS5JbmRleC5kaXJ0eT0hMSk7Zm9yKHZhciBkLGU9Y3cubGliLnNkYm0sZj0wLGc9YS5JbmRleC5pZHgsaD0wLGk9MDtoPGcubGVuZ3RoO2grKylpZihmPTAsaT0oZD1nW2hdKS5wLmxlbmd0aCxjLnRlc3QoZC5rKSYmKGZ8PTQpLGQudiYmYy50ZXN0KGQudikmJihmfD04KSxmKWZvcih2YXIgaj0xO2o8aTtqKyspYltlKGQucC5zbGljZSgwLGopLmpvaW4oIuKdgCIpKyLinYAiK2QucFtqXSldPWo9PWktMT9mOjM7cmV0dXJuIGEuZGF0YS5mb3VuZD1iO2Z1bmN0aW9uIGsoeCl7dmFyIGE9WyJSb290Il0sYj1bXTtmdW5jdGlvbiBjKHgpe09iamVjdC5rZXlzKHgpLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGU9JC50eXBlKHhbZF0pOyJvYmplY3QiPT1lfHwiYXJyYXkiPT1lPyhhLnB1c2goZCksYyh4W2RdKSxiLnB1c2goe2s6ZC50b0xvd2VyQ2FzZSgpLHA6YS5zbGljZSgwKSx2OiExfSksYS5wb3AoKSk6InN0cmluZyI9PWU/Yi5wdXNoKHtrOmQudG9Mb3dlckNhc2UoKSxwOmEuc2xpY2UoMCkuYWRkKGQpLHY6eFtkXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tcclxuXHRcc10rL2csIiAiKX0pOmIucHVzaCh7azpkLnRvTG93ZXJDYXNlKCkscDphLnNsaWNlKDApLmFkZChkKSx2OnhbZF0rIiJ9KX0pfXJldHVybiBjKHgpLGJ9fSxFdmVudDp7YWRkOmZ1bmN0aW9uKHgsYSxiLGMpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKSxlPWQucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxmPWUuZGF0YSgibXkiKS5kYXRhLGc9ZS5kYXRhKCJteSIpLm1hbmlmZXN0LGg9JC50eXBlKGYudmFsdWUpLGk9ImFycmF5Ij09aCxqPShlLm15KCJkYXRhIikua2V5LGIuTHMoIkNsaXAiKXx8e3R5cGU6IiJ9KSxrPXtvYmplY3Q6e30sYXJyYXk6W10sc3RyaW5nOiIiLGJvb2xlYW46ITAsbnVtYmVyOjB9O2QucGFyZW50KCkuYWRkQ2xhc3MoImhvdmVyIiksZS5hZGRDbGFzcygiaG92ZXIiKSwkKHRoaXMpLm1vZGFsKHttYW5pZmVzdDpiLk1BZGQsZGF0YTp7Y21kOiJwcmVwZW5kIix0ZXh0OlsiTmV3ICIsaT8ibWVtYmVyIjoicHJvcGVydHkiLCcgaW4mbmJzcDs8c3BhbiBjbGFzcz0iYm9sZGVyIG53Ij4nLGYua2V5LnRydW5jYXRlKDI1LCJtaWRkbGUiLCLigKYiKS5lc2NhcGVIVE1MKCksaT8iOltdIjoiOnt9IiwiPC9zcGFuPiJdLmpvaW4oIiIpLHByZXBlbmQ6aT8iSW5zZXJ0IjoiUHJlcGVuZCIsYXBwZW5kOmk/IiI6IkFwcGVuZCIsaXNhcnJheTppLGtleTppPyIwIjoiIixjbGlwOmosa2V5czppP3t9Ok9iamVjdC5rZXlzKGYudmFsdWUpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPSEwLHh9LHt9KSxmaWxlOnt9fSx3aWR0aDozMTAsYWxpZ246InRvcDoxMDMlO3JpZ2h0Oi0xMTRweDsiLHJvb3Q6Yyxib3VuZDoxLG5vc2U6InRvcCIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixjbG9zZTohMSxlc2M6ITAsZW50ZXI6ITB9KS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhLGMsZD14LmNtZCxqPSEwLGw9W10sbT1bXTtpZih4LmNsaXAudHlwZSYmImNsaXAiPT14LnR5cGUmJihrLmNsaXA9eC5jbGlwLnZhbHVlKSxjPU9iamVjdC5jbG9uZSgiZmlsZSI9PXgudHlwZT94LmZpbGU6a1t4LnR5cGVdLCEwKSx4LmlzYXJyYXl8fCgic3RyaW5nIj09eC50eXBlJiZ4LmZpbGUuZGF0YT9jPSJkYXRhOiIreC5maWxlLmNvbnRlbnRfdHlwZSsiO2Jhc2U2NCwiK3guZmlsZS5kYXRhOmRlbGV0ZSBjLm5hbWUpLDE9PWYubGV2ZWwmJi9eKF9pZHxfcmV2KSQvLnRlc3QoeC5rZXkpKXJldHVybiBjdy5saWIubm90ZSgiQ2Fu4oCZdCBjaGFuZ2Ugc3lzdGVtIHByb3BlcnRpZXMuIiwiZXJyb3IiKSx2b2lkIDA7aWYoL14ob2IpLy50ZXN0KGgpKWlmKCJhcHBlbmQiPT1kfHxudWxsIT1mLnZhbHVlW3gua2V5XSlmLnZhbHVlW3gua2V5XT1jLG4oKTtlbHNlIGlmKCJwcmVwZW5kIj09ZCl7Zm9yKGEgaW4gbD1PYmplY3Qua2V5cyhmLnZhbHVlKSltLnB1c2goZi52YWx1ZVtsW2FdXSksZGVsZXRlIGYudmFsdWVbbFthXV07Zm9yKGEgaW4gZi52YWx1ZVt4LmtleV09YyxsKWxbYV0hPT14LmtleSYmKGYudmFsdWVbbFthXV09bVthXSk7bT1sPW51bGwsbigpfWVsc2Ugaj0hMTtlbHNlIGk/KHgua2V5PSgreC5rZXl8fDApLmNsYW1wKDAsZi52YWx1ZS5sZW5ndGgpKyIiLGYudmFsdWUuaW5zZXJ0KE9iamVjdC5pc0FycmF5KGMpP1tjXTpjLHgua2V5KSxuKCkpOmo9ITE7ZnVuY3Rpb24gbigpe2IuTm9kZVVwZGF0ZWQoW2YucGF0aCxmLmtleSx4LmtleV0sdm9pZCAwLGMpfWomJihnLkxpc3Q9Yi5NYWtlTGlzdChmKSxmLnN0YXRlPTIsZS5maW5kKCIuaWRlc2M6ZXEoMCkiKS50cmlnZ2VyKCJjaGVjayIpLGUuZmluZCgiLmlsaXN0OmVxKDApIikudHJpZ2dlcigicmVjYWxjIikpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKSxlLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9LHRha2VvdXQ6ZnVuY3Rpb24oeCxhLGIsYyl7eC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZD0kKHRoaXMpLGU9ZC5wYXJlbnRzKCIubXktZm9ybSIpLmVxKDApLGY9ZS5kYXRhKCJteSIpLmRhdGEsZz1lLmRhdGEoIm15IikubWFuaWZlc3QsaD1PYmplY3QsaT0oaC5zaXplLGguY2xvbmUpLGo9aC5tZXJnZTtkLnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGUuYWRkQ2xhc3MoImhvdmVyIiksZC5tb2RhbCh7bWFuaWZlc3Q6Yi5NVGFrZW91dCxkYXRhOntqc29uOkpTT04uc3RyaW5naWZ5KGYudmFsdWUsbnVsbCwiICAiKSxwYXRoOmYucGF0aCxrZXk6Zi5rZXkscmVwbGFjZTpoLnNpemUoZi52YWx1ZSk/IlJlcGxhY2UiOiJTYXZlIixleHRlbmQ6aC5zaXplKGYudmFsdWUpPyJFeHRlbmQiOiIifSx3aWR0aDooZS53aWR0aCgpLTE2MCkuY2xhbXAoNTAwLDFlMyksYWxpZ246InRvcDoxMDMlO3JpZ2h0Oi03NnB4OyIscm9vdDpjLmZpbmQoInNlY3Rpb24jZWRpdG9yIikuZXEoMCksbm9zZToidG9wIixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGNsb3NlOiEwLGVzYzohMCxlbnRlcjohMCxib3VuZDoyfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYSxjLGQsaz0hMDtmdW5jdGlvbiBsKCl7Yi5Ob2RlVXBkYXRlZChbZi5wYXRoLGYua2V5XSxjLGYudmFsdWUpfWE9Yi5teS5wYXJlbnQoKSYmYi5teS5wYXJlbnQoKS5kYXRhLmlzTmV3P3gubm9kZTowPT1mLmxldmVsP2gucmVqZWN0KHgubm9kZSwvXihfaWR8X3JldikkLyk6eC5ub2RlLCJleHRlbmQiPT14LmNtZD8oYz1pKGYudmFsdWUsITApLGooZi52YWx1ZSxhLCEwKSk6InJlcGxhY2UiPT14LmNtZD8oYz1pKGYudmFsdWUsITApLGQ9e30sMD09Zi5sZXZlbCYmZi52YWx1ZS5fcmV2JiYoZD1oLnNlbGVjdChmLnZhbHVlLC9eKF9pZHxfcmV2KSQvKSksYi5SVCgiTGliIikua2ljayhmLnZhbHVlLGEpLDA9PWYubGV2ZWwmJmooZi52YWx1ZSxkKSk6az0hMSxrJiYoZi5zdGF0ZT0yLGwoKSxiLlJUKCJMaWIiKS5yZWxpc3QoZSxnKSl9KS5hbHdheXMoZnVuY3Rpb24oKXtkLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJob3ZlciIpLGUucmVtb3ZlQ2xhc3MoImhvdmVyIil9KX19LEhUTUw6e01haW46JzxzZWN0aW9uIHN0eWxlPSIiPjxzZWN0aW9uIGlkPSJlZGl0b3IiIGNsYXNzPSJkaWIgdzEwMHAiPjxkaXYgY2xhc3M9InBiNSBmczEzMCBub2N3bWluIj48ZGl2IGlkPSJkb2N0aXRsZSIgY2xhc3M9ImZzMTEwIHc2MHAgcHQ0IGJvbGRlciBkaWIgdmF0IHhncmF5IG53IG9oIGVsbCBwcjEwIiA+PC9kaXY+PGRpdiBjbGFzcz0idzIwcCBmczkwIGRpYiB2YXQiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgeGdyYXkgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ianNvbi1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS50cmlnZ2VyKFwnY2hlY2subXlcJykiPjwvc3Bhbj48L2Rpdj48YnV0dG9uIGNsYXNzPSJidXR0b24gbXIwIGZyIHcxNTAgZnM5MCIgaWQ9ImJ0bi1zYXZlIj5TYXZlPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZG9jIiBjbGFzcz0iaXJvd1x0eGdyYXkiPjwvZGl2Pjwvc2VjdGlvbj48L3NlY3Rpb24+JyxJdGVtU2ltcGxlOic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXlzaW1wbGUiPjwvZGl2PjxkaXYgY2xhc3M9Iml2YWx1ZSI+PC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiIHRpdGxlPSJEZWwgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLEl0ZW1Db21wbGV4Oic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXl0cmVlIj48L2Rpdj48c2VjdGlvbiBjbGFzcz0iaWRlc2MgY3AiPuKAkzwvc2VjdGlvbj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48c2VjdGlvbiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWFkZCBidXR0b24gZ3JlZW4iIHRpdGxlPSJBZGQgbmV3IHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1wbHVzIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tanNvbiBoaWRlIj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiICB0aXRsZT0iRGVsIG5vZGUiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nfSxzdHlsZTp7IiAiOiJmb250LXNpemU6MTVweDtmb250LWZhbWlseTogJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxIZWx2ZXRpY2EsVGFob21hLFZlcmRhbmEsU2Fucy1zZXJpZjtmb250LXdlaWdodDozMDA7bWluLWhlaWdodDo1MDBweDttYXgtd2lkdGg6MTkwMHB4OyIsIiAuYm9sZGVyIjoiZm9udC13ZWlnaHQ6Ym9sZGVyOyIsIiAjZG9jdGl0bGUiOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4id2lkdGg6IisoeC53aWR0aCgpLmNsYW1wKDAsMTUwMCktMjIwLTIwLTE0NCkrInB4In0sIiAgLmlyb3ciOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhLmxhYmVsV2lkdGg7cmV0dXJueyIgLmlrZXkiOiJ3aWR0aDoiK3grInB4OyIsIiAuaW5hdiI6InBhZGRpbmctbGVmdDoiK3grInB4OyIsIiAuaW5hdj4uaWtleSI6Im1hcmdpbi1sZWZ0Oi0iK3grInB4OyJ9fSwiIC5qdmFsLWJyYWNrZXQiOiJmb250LXdlaWdodDppbmhlcml0O2NvbG9yOiByZ2JhKDAsMTgxLDE2MSwwLjcyKTsiLCIgLmp2YWwtdHJpbSI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6MnB4O3BhZGRpbmc6MHB4IDJweCAxcHggMnB4O2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOnJnYmEoMjEzLCA0OCwgODksIDAuNjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MywxMDcsMTkyLDAuMDcpOyIsIiAuanZhbC1zaG9ydCI6ImNvbG9yOnJnYmEoODgsMTAxLDEyMywwLjYzKTsiLCIgLmp2YWwtZW1wdHkiOiJjb2xvcjpyZ2JhKDg4LDEwMSwxMjMsMC42Myk7IiwiIC5qdmFsLWtleSI6ImZvbnQtd2VpZ2h0OmluaGVyaXQ7bWFyZ2luLWxlZnQ6M3B4OyIsIiAuanZhbC1icmFja2V0Ky5qdmFsLWtleSI6Im1hcmdpbi1sZWZ0OjFweDsiLCIgLmp2YWwtc2ltcGxlIjoiY29sb3I6cmdiYSgyNTUsOTcsMCwwLjg3KTsiLCIgLmp2YWwtdW5kZWZpbmVkIjoiY29sb3I6cmdiYSgyMjAsMjI3LDIzMCwwLjg3KTsiLCIgLmp2YWwtbnVtYmVyIjoiY29sb3I6cmdiYSg1MiwxNDMsMjcsMC44KSIsIiAuanZhbC1udWxsIjoiY29sb3I6cmdiYSgyMTQsMCwyNiwwLjgpIiwiIC5qdmFsLXN0cmluZyI6ImNvbG9yOnJnYmEoMzAsNjUsMTY0LDAuOCk7IiwiIC5qdmFsLWZ1bmN0aW9uIjoiY29sb3I6cmdiYSgxNDMsMzYsMTU4LDAuOCk7IiwiIC5qdmFsLWZvdW5kLWtleSI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjIxLDAsMC43KTtwYWRkaW5nLWxlZnQ6MXB4O3BhZGRpbmctcmlnaHQ6MXB4O2JvcmRlci1yYWRpdXM6MnB4OyIsIiAuaXJvb3Q+LmllZGl0b3IgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMTIwcHgpOyBoZWlnaHQ6MTAwJTsgb3ZlcmZsb3cteTpzY3JvbGw7IiwiIjp7IiB0ZXh0YXJlYSI6ImZvbnQtZmFtaWx5OkNvdXNpbmUsJ1BUIE1vbm8nLE1vbmFjbywnTHVjaWRhIENvbnNvbGUnLG1vbm9zcGFjZTsiLCIgLmlyb3ciOiJ3aWR0aDpjYWxjKDEwMCUgLSAxcHgpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHBhZGRpbmc6MHB4IDBweCAwcHggMjVweDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoNzAsMTA1LDEzNSwwLjI1KTsgbGluZS1oZWlnaHQ6MS4zZW07IG1hcmdpbi1sZWZ0OjFweDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1czsiLCIgLmlyb3c6YmVmb3JlIjonY29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTVweDtsZWZ0OjA7d2lkdGg6MThweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDcwLDEwNSwxMzUsMC4yNSk7JywiIC5pcm93Omxhc3QtY2hpbGQiOiJib3JkZXI6bm9uZTsiLCIgLmlyb3c6bGFzdC1jaGlsZDphZnRlciI6J2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxNXB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDcwLDEwNSwxMzUsMC4yNSk7JywiIC5pcm93OmhvdmVyLC5pcm93LmhvdmVyIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIwNiwgMjE0LCAyMjYsIDAuMik7IiwiIC5pa2V5IjoicGFkZGluZy1yaWdodDoxMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyB3b3JkLWJyZWFrOmJyZWFrLWFsbDtmb250LXNpemU6OTUlOyBsaW5lLWhlaWdodDoxLjJlbTtvcGFjaXR5OjAuODsgb3ZlcmZsb3c6aGlkZGVuO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW46MC4yNWVtIDAgMC4zZW0gMHB4OyIsIiAuaWtleXRyZWUiOiJjdXJzb3I6IHBvaW50ZXI7IiwiIC5pbGFiZWwiOiJmb250LXNpemU6ODAlO3BhZGRpbmc6MCA1cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4wNSk7IGJvcmRlci1yYWRpdXM6MnB4O29wYWNpdHk6MC45OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOi0xcHggNXB4IDAgMHB4OyIsIiAuYWRvd24sIC5hcmlnaHQiOiJmb250LXNpemU6NTAlOyBsaW5lLWhlaWdodDoxZW07IGZvbnQtd2VpZ2h0OjQwMCFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MCAwIDFweCAzcHg7IG9wYWNpdHk6MC4zOyIsIiAuYXJpZ2h0OmFmdGVyIjonY29udGVudDoi4pa277iOIjsnLCIgLmFkb3duOmFmdGVyIjonY29udGVudDoi4pa8IjsnLCIgLml2YWx1ZSwgLmlsaXN0Ijoid29yZC1icmVhazogYnJlYWstYWxsOyIsIiAuaXZhbHVlIjoibGluZS1oZWlnaHQ6IDEuNmVtO2N1cnNvcjpwb2ludGVyOyIsIiAuaWRlc2MiOiJsaW5lLWhlaWdodDogMS41ZW07IiwiIC5pdmFsdWUsIC5pbGlzdCwgLmlkZXNjIjoid2lkdGg6MTAwJTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiLCIgLmlkZXNjIC5pbW9kZSI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGZvbnQtc2l6ZTo5NSU7IGxpbmUtaGVpZ2h0OjEuNWVtOyBtYXJnaW4tbGVmdDoyMHB4OyIsIiAuaW1vZGUgPiBzcGFuIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MGVtIDAuNWVtOyBtYXJnaW4tcmlnaHQ6MC4wZW07IGJvcmRlci1yYWRpdXM6MnB4OyBib3JkZXI6IDFweCBzb2xpZCAjNDM0ZTVkMDA7IGNvbG9yOiM0MzRlNWQ5MDsiLCIgLmltb2RlLm1vZGUtdHJlZSAubW9kZS10cmVlLCAuaW1vZGUubW9kZS1qc29uIC5tb2RlLWpzb24sIC5pbW9kZS5tb2RlLWpzIC5tb2RlLWpzLCAuaW1vZGUubW9kZS1kaWZmIC5tb2RlLWRpZmYiOiJjb2xvcjojNDM0ZTVkYzA7IGJhY2tncm91bmQtY29sb3I6ICM0MzRlNWQxYTsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsiLCIgLmltdWx0aS5pdmFsdWUiOiJjdXJzb3I6aW5oZXJpdDsiLCIgLmlzZWRpdG9yIC5pdmFsdWUiOiJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOnByZTsgcGFkZGluZzowLjJlbSAwLjNlbSAwLjJlbSAwLjRlbTsgZm9udC1mYW1pbHk6Q291c2luZSwnUFQgTW9ubycsTW9uYWNvLCdMdWNpZGEgQ29uc29sZScsbW9ub3NwYWNlOyBtYXgtaGVpZ2h0OjQwMHB4OyBvdmVyZmxvdzphdXRvO292ZXJmbG93Om92ZXJsYXk7IG91dGxpbmU6bm9uZTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7IGZvbnQtc2l6ZTo5MCU7IGJvcmRlci1yYWRpdXM6MnB4O21hcmdpbjotMXB4IDAgLTFweCAwOyB0YWItc2l6ZToyOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNDAsMC44KTsgY3Vyc29yOnRleHQ7IiwiIC5pc2VkaXRvcn4uaXZhbHVlIjoiZGlzcGxheTpub25lOyIsIiAuaWJvb2xlYW4tdGFnIjoicGFkZGluZzowIDlweCAxcHggOXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXItcmFkaXVzOjEwMHB4OyIsIiAuaXNlZGl0b3IgLmllZHR5cGUiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjZweDsgcmlnaHQ6ODZweDsgZm9udC1zaXplOiAwLjhlbTsgbGluZS1oZWlnaHQ6IDEuMmVtOyBib3JkZXItcmFkaXVzOjIwcHg7IHBhZGRpbmc6IDAgNXB4IDFweCA1cHg7IiwiIC5pbmF2IjoibWFyZ2luOjJweCAwOyIsIiAuaW5hdiAuaWVkaXRvciI6IndpZHRoOjEwMCU7ZGlzcGxheTpub25lO3dvcmQtYnJlYWs6bm9ybWFsOyIsIiAuaW5hdiAuaXZhbHVlLmhpZGV+LmllZGl0b3IiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLmluYXYgLmlkZXNjLmhpZGV+LmllZGl0b3IiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLmluYXYgLmllZGl0b3IgLmljbWZyYW1lIjoib3ZlcmZsb3c6aGlkZGVuOyBib3JkZXI6MXB4IHNvbGlkICNkMWRmZTk7IGJvcmRlci1yYWRpdXM6MnB4OyIsIiAuaW5hdiAuaWVkaXRvciAuYnV0dG9uIjoicGFkZGluZzogMC4yNWVtIDAuN2VtIDAuMTVlbSAwLjdlbTttYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAwOyIsIiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZToxMy4ycHg7IGZvbnQtZmFtaWx5OkNvdXNpbmUsJ1BUIE1vbm8nLE1vbmFjbyxtb25vc3BhY2U7IGxpbmUtaGVpZ2h0OjEuNGVtOyBjb2xvcjogIzQzNGU1ZDsiLCIgLkNvZGVNaXJyb3IgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtYXgtaGVpZ2h0OmNhbGMoMjAgKiAxNnB4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiIC5lZC1lcnJvciAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgLkNvZGVNaXJyb3IgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLkNvZGVNaXJyb3IgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLkNvZGVNaXJyb3IgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyIsIiAuQ29kZU1pcnJvci5yZWFkb25seSI6ImJhY2tncm91bmQtY29sb3I6I2Y4ZjlmYTsgb3BhY2l0eTogMC44OyIsIiAubXktbW9kYWwtZm9ybSAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAubXktbW9kYWwtZm9ybSAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjE1MHB4OyIsIiAuaW5hdiAuaWVkaXRvciAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MjVweDsgaGVpZ2h0OmF1dG87IiwiIC5pYWN0IjoicG9zaXRpb246YWJzb2x1dGU7IHRvcDozcHg7IHJpZ2h0OjNweDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDAuM3M7Ym9yZGVyLXJhZGl1czozcHg7IiwiIC5pYWN0OmhvdmVyLCAuaWFjdC5ob3ZlciI6ImRpc3BsYXk6YmxvY2s7b3BhY2l0eToxIWltcG9ydGFudDsiLCIgLmluYXY6aG92ZXJ+LmlhY3QiOiJkaXNwbGF5OmJsb2NrO29wYWNpdHk6MC43OyIsIiAuaWFjdCAuYnV0dG9uIjoicGFkZGluZzowLjI1ZW0gMCAwLjE1ZW0gMDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjM2cHg7d2hpdGUtc3BhY2U6bm93cmFwOyIsIiAuaW5hdi5pc2VkaXRvcn4uaWFjdCI6ImRpc3BsYXk6bm9uZTsiLCIgI2RvYyI6InBhZGRpbmc6MDsgYm9yZGVyOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTsiLCIgI2RvYzpiZWZvcmUsICNkb2M6YWZ0ZXIiOiJkaXNwbGF5Om5vbmU7IiwiICNkb2M6aG92ZXIiOiJiYWNrZ3JvdW5kOndoaXRlOyIsIiAjZG9jPi5pbmF2IjoicGFkZGluZy1sZWZ0OjEyMHB4OyIsIiAjZG9jPi5pbmF2IC5pa2V5IjoiZm9udC1zaXplOjEwNSU7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MCAwIDAgLTEyMHB4O3dpZHRoOjEyMHB4OyIsIiAjZG9jPi5pYWN0Ijoib3BhY2l0eTowLjM7dG9wOjA7cmlnaHQ6MDsiLCIgLnRhZy5hY3RpdmUiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzNSwgMjEyLCAwLCAwLjE3KSFpbXBvcnRhbnQ7Y29sb3I6IHJnYig2NSwgMTMyLCAwKSFpbXBvcnRhbnQ7IiwiIC5idXR0b25zIGJ1dHRvbiI6ImJvcmRlci1yYWRpdXM6MDttYXJnaW4tcmlnaHQ6MnB4OyBwYWRkaW5nOjAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO3dpZHRoOjM2cHg7Zm9udC1zaXplOjkwJTsiLCIgLmJ1dHRvbnMgYnV0dG9uOmxhc3QtY2hpbGQiOiJib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDsgbWFyZ2luLXJpZ2h0OjA7IiwiIC5idXR0b25zIGJ1dHRvbjpmaXJzdC1jaGlsZCI6ImJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDsiLCIgLmJ1dHRvbnMgLmJ1dHRvbiI6ImJvcmRlci1yYWRpdXM6MDttYXJnaW4tcmlnaHQ6MnB4OyIsIiAuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQiOiJib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDsgbWFyZ2luLXJpZ2h0OjA7IiwiIC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQiOiJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHg7IiwiIGEuYmFzZTY0aW1hZ2UgaW1nIjoiYmFja2dyb3VuZDogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQhaW1wb3J0YW50OyBwYWRkaW5nOiAzcHg7IG1heC13aWR0aDogMTAlOyBtaW4td2lkdGg6IDIlOyBtYXgtaGVpZ2h0OiA2MHB4OyIsIiAuYmFzZTY0aW1hZ2V+ZGl2Ijoid2lkdGg6ODclOyIsIiAuYmFzZTY0aWNvfmRpdiI6IndpZHRoOjg3JTsiLCIgLnc1NSI6IndpZHRoOjU1cHg7IiwiIC5oNTUiOiJoZWlnaHQ6NTVweDsifX0sTVRha2VvdXQ6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2IuU3RhcnRIYXNoPSQubXkuZi5zZGJtQ29kZShhLmRhdGEuanNvbiksYi5kYXRhLmpzb249IigiK2IuZGF0YS5qc29uKyIpIix4Lmh0bWwoYi5IVE1MKX0sSFRNTDonPGRpdiBpZD0idGl0bGUiIGNsYXNzPSJtYjUgZnMxMDUgYm9sZGVyIj48L2Rpdj48ZGl2IGNsYXNzPSJuZWVkc2NsaWNrIiBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBtYXJnaW46MnB4IDAgOHB4IDA7Ym9yZGVyLXJhZGl1czoycHgiPjx0ZXh0YXJlYSBpZD0ianNvbiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIj48L3RleHRhcmVhPjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iZnIgZ3JheSBwdDUiIGlkPSJpbmZvIj48L2Rpdj48ZGl2IGNsYXNzPSJidXR0b25zIGRpYiB2YXQgZnMxMTAgbXQ0Ij48YnV0dG9uIGNsYXNzPSJidXR0b24gdzkwIiBpZD0iYnRuLXJlcGxhY2UiPlJlcGxhY2U8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidXR0b24gdzkwIiBpZD0iYnRuLWV4dGVuZCI+RXh0ZW5kPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHc5MCIgaWQ9ImJ0bi1jYW5jZWwiPkNhbmNlbDwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImxncmF5IHBsMzAgZGliIHZhdCBwdDUiIGlkPSJpbmZvIj5KU09OIG9yIGpzIGV4cHJlc3Npb24g4oehPC9kaXY+PGRpdiBjbGFzcz0icGwzMCBkaWIgdmF0IHB0NSBvNzAiPjxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiIgaWQ9ImJ0bi1zdHJpcCIgdGl0bGU9IlJlbW92ZXMgYWxsIF8qIHN5c3RlbSBmaWVsZHMgZXhjZXB0IF9pZCBhbmQgX2F0dGFjaG1lbnRzIj5TdHJpcCBfIGtleXM8L3NwYW4+PC9kaXY+PC9kaXY+Jyx1aTp7IiN0aXRsZSI6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiJKU09OIGZvciAiK3gucGF0aC5zbGljZSgwKS5hZGQoeC5rZXkpLmpvaW4oIi8iKS50cnVuY2F0ZSg3MCwibWlkZGxlIiwi4oCmIil9LCIjanNvbiI6e2RlbGF5OjIwLGJpbmQ6Impzb24iLGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLmRhdGEuanNvbi5sZW5ndGg8NWU1O0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Yj8iamF2YXNjcmlwdCI6InRleHQiLGxpbmVOdW1iZXJzOmIsdmlld3BvcnRNYXJnaW46MTAwLGluZGVudFdpdGhUYWJzOiEwLGluZGVudFVuaXQ6MixzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLGF1dG9mb2N1czohMH0pfX0sIiNidG4tcmVwbGFjZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBudWxsIT1hJiYoeC5ub2RlPXRoaXMuUGFyc2VkLHguY21kPSJyZXBsYWNlIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LnJlcGxhY2V9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5EaXJ0eXx8IXRoaXMuUGFyc2VkfSwic2VsZjpvcmFuZ2UiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuRGlydHkmJiEhdGhpcy5QYXJzZWR9fSx3YXRjaDoiI2luZm8ifSwiI2J0bi1leHRlbmQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHgubm9kZT10aGlzLlBhcnNlZCx4LmNtZD0iZXh0ZW5kIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LmV4dGVuZH0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLkRpcnR5fHwhdGhpcy5QYXJzZWR9LCJzZWxmOm9yYW5nZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5EaXJ0eSYmISF0aGlzLlBhcnNlZH0sInNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZXh0ZW5kfX0sd2F0Y2g6IiNpbmZvIn0sIiNidG4tY2FuY2VsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmYi50cmlnZ2VyKCJjYW5jZWwiKX19LCIjYnRuLXN0cmlwIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcy5QYXJzZWQsZD1bIl9pZCIsIl9hdHRhY2htZW50cyJdLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB2b2lkIDAhPT1jW2FdJiYoeFthXT1jW2FdKSx4fSx7fSk7dGhpcy5QYXJzZWQ9JC5leHRlbmQoZCxPYmplY3QucmVqZWN0KHRoaXMuUGFyc2VkLC9eXy8pKSx4Lmpzb249IigiK0pTT04uc3RyaW5naWZ5KHRoaXMuUGFyc2VkLG51bGwsIiAgIikrIikiLHRoaXMubXkucmVjYWxjKCIjanNvbiIpfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLlBhcnNlZHx8IU9iamVjdC5rZXlzKHRoaXMuUGFyc2VkKS5maW5kQWxsKC9eXy8pLnJlbW92ZSgiX2lkIikucmVtb3ZlKCJfYXR0YWNobWVudHMiKS5sZW5ndGh9fSx3YXRjaDoiI2luZm8ifSwiI2luZm8iOntkZWxheTo0MDAsYmluZDpmdW5jdGlvbihkLHYsJG8pe3ZhciBwYXJzZSxzPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChkLmpzb24pKS5sZW5ndGg7dHJ5e3BhcnNlPWV2YWwoIigiK2QuanNvbisiKSIpLHBhcnNlPU9iamVjdC5pc09iamVjdChwYXJzZSl8fE9iamVjdC5pc0FycmF5KHBhcnNlKT9KU09OLnBhcnNlKCQubXkudG9qc29uKHBhcnNlKSk6bnVsbH1jYXRjaCh4KXt9cmV0dXJuIHRoaXMuUGFyc2VkPXBhcnNlfHxudWxsLCRvLm15KCkucm9vdC50b2dnbGVDbGFzcygiZWQtZXJyb3IiLCFwYXJzZSksdGhpcy5IYXNoPSQubXkuZi5zZGJtQ29kZShkLmpzb24pLHRoaXMuRGlydHk9dGhpcy5TdGFydEhhc2ghPXRoaXMuSGFzaCxzLm1ldHJpYygyKSsiYiJ9LHdhdGNoOiIjanNvbiJ9fSxzdHlsZTp7IiAjanNvbiI6ImJvcmRlcjogbm9uZTsgd2lkdGg6IDEwMCU7ZGlzcGxheTogYmxvY2s7aGVpZ2h0OiAzMDBweDtmb250LXNpemU6IDAuN2VtO3dvcmQtd3JhcDogbm9ybWFsOyBvdmVyZmxvdy14OiBoaWRkZW47IiwiIC5Db2RlTWlycm9yIjp7IiI6Im1pbi1oZWlnaHQ6MTUwcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjEzcHghaW1wb3J0YW50OyIsIiAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHghaW1wb3J0YW50OyIsIiAuY20tcHJvcGVydHkiOiJjb2xvcjojNDM0ZTVkOyIsIiAuY20tdmFyaWFibGUiOiJjb2xvcjojMzNiZmFkOyIsIiAuY20ta2V5d29yZCI6ImNvbG9yOiM5MDI1OWU7In19fSxNQWRkOntpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczt4LmZvcm1nZW4oYi5IVE1MKSxhLmRhdGEuaXNhcnJheSYmeC5maW5kKCIjbmtleSIpLmF0dHIoInR5cGUiLCJudW1iZXIiKX0sZGF0YTp7Y21kOiIiLGtleToiIix0eXBlOiJzdHJpbmciLGlzYXJyYXk6ITEsdGV4dDoiQ3JlYXRlIG5ldyBwcm9wZXJ0eSIscHJlcGVuZDoiUHJlcGVuZCIsYXBwZW5kOiJBcHBlbmQiLHVwbG9hZDonPHNwYW4gY2xhc3M9InBzZXVkb2xpbmsgZGliIHcxMDBwIHZhdCB0YWMiPlNlbGVjdCBmaWxlLi4uPC9zcGFuPicsa2V5czp7fSxmaWxlOnt9fSx1aTp7IiNudGV4dCI6InRleHQiLCIjbmtleSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguaXNhcnJheT94LmtleT1hLnJlcGxhY2UoL1xEL2csIiIpOngua2V5PWEpLHgua2V5fSx3YXRjaDoiI250eXBlIn0sIiNudHlwZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBudWxsIT1hJiYoeC50eXBlPWEsIkNsaXAiIT1hfHx4LmtleXx8eC5pc2FycmF5fHwoeC5rZXk9eC5jbGlwLmtleSkpLHgudHlwZX0saW5pdDpmdW5jdGlvbih4LGEpe3gudGFncyh7dGFnczpbW3sie09ian0iOiJvYmplY3QifSx7IltBcnJdIjoiYXJyYXkifSx7TnVtOiJudW1iZXIifSx7Qm9vbDoiYm9vbGVhbiJ9LHtGaWxlOiJmaWxlIn1dXSxlbXB0eTp7JyJTdHIiJzoic3RyaW5nIn0sdGFnY3NzOiJ0YWcgYmx1ZSBjcCBwbDUgcHI1Iix0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0pfSxyZWNhbGM6IiNua2V5dHlwZSJ9LCIjbmtleXR5cGUiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlzYXJyYXk/IkluZGV4IjoiS2V5In0sIiN4dXBsb2FkIjp7d2F0Y2g6IiNudHlwZSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJmaWxlIiE9eC50eXBlfX19LCIjdXBsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZCxlPXt9O251bGwhPWEmJmEmJigoYz1iWzBdLmZpbGVzWzBdKS5zaXplPngubGltaXQ/KGN3Lm5vdGUoIk1heCB1cGxvYWQgZmlsZSBzaXplIGlzICIrKDEqeC5saW1pdCkuYWJicigxKSsiYiIsImVycm9yIiksYi53cmFwKCI8Zm9ybT4iKS5jbG9zZXN0KCJmb3JtIikuZ2V0KDApLnJlc2V0KCkpOmMmJmZ1bmN0aW9uKCl7ZS5uYW1lPWMubmFtZSxlLmNvbnRlbnRfdHlwZT1jLnR5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iO3ZhciBhLGY9bmV3IEZpbGVSZWFkZXIsZz1bXTtmLm9ubG9hZD1mdW5jdGlvbihmKXthPW5ldyBVaW50OEFycmF5KGYudGFyZ2V0LnJlc3VsdCk7Zm9yKHZhciBoPTA7aDxhLmxlbmd0aDtoKyspZy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYVtoXSkpO2Q9d2luZG93LmJ0b2EoZy5qb2luKCIiKSksZS5kYXRhPWQsZS5sZW5ndGg9Zy5sZW5ndGgsJC5leHRlbmQoeC5maWxlLGUpLHgua2V5fHx4LmlzYXJyYXl8fCh4LmtleT1jLm5hbWUpLCF4LmtleSYmeC5pc2FycmF5LGIud3JhcCgiPGZvcm0+IikuY2xvc2VzdCgiZm9ybSIpLmdldCgwKS5yZXNldCgpLGIubXkoImZpbmQiLCIuY3ctYXR0LXVwbG9hZD5zcGFuIikudGV4dChjLm5hbWUudHJ1bmNhdGUoMTUsIm1pZGRsZSIsIuKApiIpKyIgIitlLmxlbmd0aC5tZXRyaWMoMiwhMSkrImIiKSx4LmtleT09Yy5uYW1lJiZiLm15KCJmaW5kIiwiI25rZXkiKS52YWwoeC5rZXkpLnRyaWdnZXIoImJsdXIiKX0sZi5yZWFkQXNBcnJheUJ1ZmZlcihjKX0oKSl9LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC51cGxvYWR9fX0sIi5jdy1hdHQtdXBsb2FkIjoidXBsb2FkIiwiI2J0bi10bzAiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHguY21kPSJwcmVwZW5kIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LmtleXNbeC5rZXldJiYheC5pc2FycmF5PyJSZXBsYWNlIjp4LnByZXBlbmR9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgua2V5fSwic2VsZjpyZWQiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmtleXNbeC5rZXldJiYheC5pc2FycmF5fX0sd2F0Y2g6IiNua2V5In0sIiNidG4tdG8xIjp7YmluZDpmdW5jdGlvbih4LGEsYil7cmV0dXJuIG51bGwhPWEmJih4LmNtZD0iYXBwZW5kIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LmFwcGVuZH0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4heC5rZXl9LCJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmFwcGVuZHx8L15cZCskLy50ZXN0KHgua2V5KXx8eC5rZXlzW3gua2V5XX19LHdhdGNoOiIjbmtleSJ9LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJmIudHJpZ2dlcigiY2FuY2VsIil9fSxIVE1MOlsnPGRpdiBpZD0ibnRleHQiPjwvZGl2Picse2xhYmVsOiI1MHB4Iixyb3c6IjEwMCUiLHJvd0NzczoibXktcm93IHB0NSBwYjUiLGxhYmVsQ3NzOiJteS1sYWJlbCBncmF5IGZzOTAifSxbJzxzcGFuIGlkPSJua2V5dHlwZSI+S2V5PC9zcGFuPicsImlucCNua2V5LncxMDBwIiwibXNnLm10Mi5tYi0yIl0sWyJUeXBlIiwic3BuI250eXBlLmRpdi52YXQuZnM5NSJdLCc8ZGl2IGlkPSJ4dXBsb2FkIiBjbGFzcz0icGw2MCBtdDUgbWIxMCBoaWRlIj4nLCc8c3BhbiBjbGFzcz0iY3ctYXR0LXVwbG9hZCBidXR0b24gdzEwMHAiPjwvc3Bhbj4nLCc8aW5wdXQgaWQ9InVwbG9hZCIgY2xhc3M9InBsNjAiIHR5cGU9ImZpbGUiIC8+JywiPC9kaXY+Iix7cm93Q3NzOiJteS1yb3cgcHQ1IHBiMiBidXR0b25zIHBsNTAifSxbIiIsImJ1dCNidG4tdG8wLmJ1dHRvbi5ncmVlbi53OTUiLHt0eHQ6IlByZXBlbmQifSwiYnV0I2J0bi10bzEuYnV0dG9uLmdyZWVuLnc4NSIse3R4dDoiQXBwZW5kIn0sImJ1dCNidG4tY2FuY2VsLmJ1dHRvbi53NzUubXIwIix7dHh0OiJDYW5jZWwifV1dLHN0eWxlOnsiIC5jdy1hdHQtaXRlbSI6IndoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjAuMmVtIDAgMC4yZW0gMDsgbGluZS1oZWlnaHQ6MS40ZW07IiwiIGlucHV0W3R5cGU9ZmlsZV0iOiJ3aWR0aDoyNDBweDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjA7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6NjBweDtoZWlnaHQ6MzVweDsifX0sTUVkaXQ6e2RhdGE6e3RleHQ6IiIsbW9kZToiYXV0byIscmVhZG9ubHk6ITEsY29tbWl0S2V5czpbXSxjb21taXRUeXBlS2V5czp7fSxjYW5jZWxLZXlzOltdLGNhbmNlbFR5cGVLZXlzOnt9LGV4cGVjdDoic3RyaW5nIix0eXBlOiJzdHJpbmcifSxpbml0Oic8ZGl2IHN0eWxlPSJ3aWR0aDpjYWxjKDEwMCUgLSA4MHB4KTsiIGNsYXNzPSJpY21mcmFtZSBkaWIgdmF0IG10LTEgbWItMSI+PHRleHRhcmVhIGlkPSJpZWQiIHN0eWxlID0id2lkdGg6MTAwJTt4bWF4LWhlaWdodDozMDBweDsiIGNsYXNzPSJ4Z3JheSI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGlkPSJpZWR0eXBlIiBjbGFzcz0iaWVkdHlwZSBoaWRlIHdoaXRlIGJvbGQiIHN0eWxlPSIiPmFycmF5PC9kaXY+PGRpdiBjbGFzcz0iYnV0dG9ucyB3ODAgZGliIHZhdCB0YXIgbzEwMCBwcjMgcHQwIj48YnV0dG9uIGlkPSJidG4tY2hhbmdlIiBjbGFzcz0iYnV0dG9uIGdyZWVuIHczNiIgdGl0bGU9IkFwcGx5IGNoYW5nZXMiPjxzcGFuIGNsYXNzPSJmaS1jaGVjayI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kaXNjYXJkIiBjbGFzcz0iYnV0dG9uIHczNiIgdGl0bGU9IkRpc2NhcmQgY2hhbmdlcyI+PHNwYW4gY2xhc3M9ImZpLXgiPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nLHVpOnsiI2llZCI6e2JpbmQ6InRleHQiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9Yi5kYXRhLGQ9Yy50ZXh0LGU9Yy5tb2RlLGY9Im51bWJlciI9PWUsZz0hMDtpZigiYXV0byI9PWUpaWYoKChhPWQuc3Vic3RyKDAsODAwKSkubWF0Y2goLyh2YXJcc3xjb25zdFxzfGZ1bmN0aW9uW1xzXChdfHJldHVyblxzfFtcc1x0XWlmXHMpL2cpfHxbXSkubGVuZ3RoPjIpe2U9InRleHQvamF2YXNjcmlwdCI7dmFyIGg9MDtkLmxpbmVzKCkuZm9yRWFjaChmdW5jdGlvbih4LGEpe2E+MjAwfHx4Lmxlbmd0aD5oJiYoaD14Lmxlbmd0aCl9KSxoPjE1MCYmaDwxZTMmJiEwfWVsc2UvPFwvKGRpdnxzcGFufHB8YXxzY3JpcHR8aGVhZHx0aXRsZXxzdmd8cGF0aCkvLnRlc3QoYSl8fC88KHN2Z3xwYXRofGdyb3VwKVxzLy50ZXN0KGEpPyhlPSJ0ZXh0L2h0bWwiLCEwKTpDb2RlTWlycm9yLm1vZGVzLmVybGFuZyYmL14oJSVbXlxyXG5dKltcclxuXSspKltcclxuXHNcdF0qZnVuW1xyXG5cc1x0XSpcKFtcclxuXHNcdF0qXHs/Ly50ZXN0KGEpPyhlPSJlcmxhbmciLCEwKTooZT0idGV4dCIsL1tcclxuXS8udGVzdChhKXx8KCEwLGQubGVuZ3RoPDgwMCYmKGc9ITEpKSk7ZnVuY3Rpb24gaSgpe2IubXkudHJpZ2dlcigiI2llZCIsImVkaXRvcmNvbW1pdC5teSIpfWZ1bmN0aW9uIGooKXtiLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3JjYW5jZWwubXkiKX0ibnVtYmVyIj09ZT8oZT0idGV4dC9qYXZhc2NyaXB0IixnPSExKToiYjY0Ij09ZSYmKGU9InRleHQvcGxhaW4iLCEwLGc9ITEpLENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6ZSx2aWV3cG9ydE1hcmdpbjoxMDAsbGluZU51bWJlcnM6ZyxpbmRlbnRXaXRoVGFiczohMCxpbmRlbnRVbml0OjIsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTpjLnJlYWRvbmx5LGF1dG9mb2N1czohMCxsaW5lV3JhcHBpbmc6ITAsZXh0cmFLZXlzOiQuZXh0ZW5kKHtFc2M6aiwiQ3RybC1FbnRlciI6aS5kZWJvdW5jZSgyMCksIkNtZC1FbnRlciI6aS5kZWJvdW5jZSgyMCl9LGY/e0VudGVyOml9Ont9LGMuY29tbWl0S2V5cy5jb25jYXQoYy5jb21taXRUeXBlS2V5c1tjLm1vZGVdP2MuY29tbWl0VHlwZUtleXNbYy5tb2RlXTpbXSkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09aSx4fSx7fSksYy5jYW5jZWxLZXlzLmNvbmNhdChjLmNhbmNlbFR5cGVLZXlzW2MubW9kZV0/Yy5jYW5jZWxUeXBlS2V5c1tjLm1vZGVdOltdKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthXT1qLHh9LHt9KSxjLmNvbW1pdFR5cGVLZXlzW2MubW9kZV0/Yy5jb21taXRUeXBlS2V5c1tjLm1vZGVdOltdKX0pLGMucmVhZG9ubHkmJngubmV4dCgpLmFkZENsYXNzKCJyZWFkb25seSIpfX0sIiNidG4tY2hhbmdlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2llZCIsImVkaXRvcmNvbW1pdC5teSIpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiEheC5yZWFkb25seX19fSwiI2J0bi1kaXNjYXJkIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2llZCIsImVkaXRvcmNhbmNlbC5teSIpfX0sIiNpZWR0eXBlIjp7ZGVsYXk6MzAwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ib2JqZWN0IiE9eC5leHBlY3QmJiJhcnJheSIhPXguZXhwZWN0fHwoeC50eXBlPSQudHlwZSh0aGlzLnBhcnNlU3RyaW5nKHgudGV4dCkpKSx4LnR5cGV9LGNzczp7ImJnLXJlZDEiOmZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGUhPXguZXhwZWN0fSwiYmctZ3JheTIiOmZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGU9PXguZXhwZWN0fSxoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEoIm9iamVjdCI9PXguZXhwZWN0fHwiYXJyYXkiPT14LmV4cGVjdCl9fSx3YXRjaDpbIiNpZWQiXX19LHBhcnNlU3RyaW5nOmZ1bmN0aW9uIF9wYXJzZVN0cmluZyh2YWwpe3ZhciBvLGVycjt0cnl7bz1KU09OLnBhcnNlKHZhbCl9Y2F0Y2goeCl7ZXJyPSEwfWlmKGVycil7dHJ5e289ZXZhbCgiKCIrdmFsKyIpIiksZXJyPSExfWNhdGNoKHgpe2Vycj0hMH0hZXJyJiYvXihvYnxhcikvLnRlc3QoJC50eXBlKG8pKSYmKG89SlNPTi5wYXJzZShjdy5saWIuanNvbihvKSkpfXJldHVybiBlcnJ8fHZvaWQgMD09PW8/dmFsOm99fSwkbXVsdGk6e2lkOiJTeXMuSlNPTi5PYmplY3QiLHBhcmFtczp7bm9ybWFsaXplZDohMH0sZGF0YTp7fSxMaXN0OltdLENNOiJ0ZXh0L2phdmFzY3JpcHQiLEY6e30sVHh0OntvYmplY3Q6WyJPYmplY3QgeyIsIn0iXSxhcnJheTpbIkFycmF5IFsiLCJdIl19LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO3guYWRkQ2xhc3MoImVkLW5vZGUtIitiLlBhdGhTaWcoYy5wYXRoLGMua2V5KSkseC5odG1sKGIuSFRNTCksYy5zdGF0ZT4xJiYoYi5MaXN0PWIuTWFrZUxpc3QoYi5kYXRhKSkseC50aGVuKGZ1bmN0aW9uKCl7eC5vbigiY2xpY2subXkiLCIuaWxpc3Q6ZXEoMCkgLmJ0bi1kZWwiLGZ1bmN0aW9uKGMpe2Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKS5wYXJlbnRzKCIubXktZm9ybSIpLmVxKDApLGU9ZC5wYXJlbnQoKS5kYXRhKCJteSIpLmRhdGEsZj1iLlJUKCJMaWIiKS5pc1N5c3RlbS5jYWxsKGQubXkoIm1hbmlmZXN0IiksZC5teSgiZGF0YSIpKSxnPSQudHlwZShlLnZhbHVlKSxoPWQubXkoImRhdGEiKS5rZXksaT1udWxsO2lmKGYpY3cubGliLm5vdGUoIkRlbGV0aW9uIGlzIG5vdCBhbGxvd2VkIiwiZXJyb3IiKTtlbHNle2lmKCJvYmplY3QiPT1nKXt2YXIgaj1PYmplY3Qua2V5cyhlLnZhbHVlKSxrPWouaW5kZXhPZihoKTtpPVtudWxsLG51bGxdLGs+MCYmKGlbMF09altrLTFdKSxrPGoubGVuZ3RoLTEmJihpWzFdPWpbaysxXSl9Yi5Ob2RlVXBkYXRlZChbZS5wYXRoLGUua2V5LGhdLGUudmFsdWVbaF0sdm9pZCAwLGkpLCJvYmplY3QiPT1nP2RlbGV0ZSBlLnZhbHVlW2hdOiJhcnJheSI9PWcmJmUudmFsdWUucmVtb3ZlQXQoaCksYi5SVCgiTGliIikucmVsaXN0KHgsYixhKX19KX0pfSx1aTp7Ii5pdmFsdWUiOntkZWxheTowLGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLkxpc3QubGVuZ3RofX19LCIuYnRuLWpzb24iOntkZWxheTouMDEsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuSW5saW5lQ00oeCxhKX0sYmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7eC5zdGF0ZT0xNnx4LnN0YXRlfX0scmVjYWxjOlsiLmlrZXkiLCIuaWRlc2MiXX0sIi5pa2V5Ijp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLGU9ZC5sYWJlbFdpZHRoLzN8MCxmPSIkbXVsdGkiPT14Lm1hbmlmZXN0LGc9ISEoMTYmeC5zdGF0ZSksaD1PYmplY3Quc2l6ZSh4LnZhbHVlKTtyZXR1cm4gbnVsbD09YXx8Z3x8KGg8PWQuUlQoImRhdGEiKS5tYXhEZXB0aD8oeC5zdGF0ZT0xJnguc3RhdGUmJighZnx8aCl8fCF4LmxldmVsPzI1NCZ4LnN0YXRlfDI6MjUzJnguc3RhdGV8MSwyJnguc3RhdGU/ZC5MaXN0PWQuTWFrZUxpc3QoeCk6KGQuTGlzdD1bXSxkLlNob3dJdGVtcz1udWxsKSk6KGQuTGlzdD1bXSxkLlNob3dJdGVtcz1udWxsLHguc3RhdGU9MjUzJnguc3RhdGV8MSxkLm15LmZpbmQoIi5pZGVzYyIpLnRyaWdnZXIoImNsaWNrLm15IikpLGQuUlQoIk1lbVN0YXRlIikoeCkpLDQmeC5zdGF0ZSYmZC5SVCgiU2VhcmNoUmUiKT9jPXgua2V5LnJlcGxhY2UoZC5SVCgiU2VhcmNoUmUiKSwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9Imp2YWwtZm91bmQta2V5Ij4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iik6KHgua2V5Lmxlbmd0aD5lJiZiLmF0dHIoInRpdGxlIix4LmtleS5lc2NhcGVIVE1MKCkpLGM9L14ofFxzKykkLy50ZXN0KHgua2V5KT8nIicreC5rZXkuZXNjYXBlSFRNTCgpKyciJzp4LmtleS50cnVuY2F0ZShlLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSwxOCZ4LnN0YXRlPyhjPSc8c3BhbiBjbGFzcz0iZnc1MDAiPicrYysiPC9zcGFuPiIsMTYmeC5zdGF0ZXx8IWh8fChjKz0nPHNwYW4gY2xhc3M9ImFkb3duIj48L3NwYW4+JykpOmgmJihjKz0nPHNwYW4gY2xhc3M9ImFyaWdodCI+PC9zcGFuPicpKSxjfSxldmVudHM6ImNsaWNrLm15IixyZWNhbGM6WyIuaXZhbHVlIiwiLmlkZXNjIiwiLmlsaXN0Il19LCIuaWRlc2MiOntkZWxheTowLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD0oYy5MaXN0LGMuVHh0W3gudHlwZV0sT2JqZWN0LnNpemUoeC52YWx1ZSkpLGU9KHgubWFuaWZlc3QsIiIpO2lmKG51bGw9PWEpe2lmKDE2Jnguc3RhdGUpZT0iIjtlbHNlIGlmKGMuTGlzdC5sZW5ndGgpZT0ib2JqZWN0Ij09eC50eXBlPyJPYmplY3QgeyIrZCsifSI6IkFycmF5IFsiK2QrIl0iO2Vsc2UgaWYoIWMuUlQoIlNlYXJjaFJlIil8fHgucGF0aC5sZW5ndGgpe3ZhciBmPWMuUlQoImoyaCIpKHgudmFsdWUsNTAsWyJpZCIsIm5hbWUiLCJsZW5ndGgiLCJzdGF0dXMiXSwiYXJyYXkiIT14LnR5cGU/MToyLCJhcnJheSIhPXgudHlwZSk7MT09Zi5sZW5ndGgmJiJzaG9ydCI9PWZbMF1bMF0mJigieyI9PWZbMF1bMV1bMF0/ZlswXVsxXT0iT2JqZWN0ICIrZlswXVsxXToiWyI9PWZbMF1bMV1bMF0mJihmWzBdWzFdPSJBcnJheSAiK2ZbMF1bMV0pKSxlKz1mLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geFswXT8nPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiI6eFsxXX0pLmpvaW4oIiIpfWVsc2UgZT0nPHNwYW4gY2xhc3M9ImxoMTE1IGRpYiB2YXQiPkZvdW5kIG5vIG5vZGVzIGNvbnRhaW5pbmcgPHNwYW4gY2xhc3M9ImJvbGRlciI+ezF9PC9zcGFuPjwvc3Bhbj4nLmFzc2lnbihjLlJUKCJkYXRhIikuc2VhcmNoLmVzY2FwZUhUTUwoKSk7Yi5odG1sKGUpfX0scmVjYWxjOlsiLml2YWx1ZSIsIi5pa2V5IiwiLmlsaXN0Il19LCIuaWxpc3QiOntkZWxheTowLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lm9uKCJjaGFuZ2UubXkiLGZ1bmN0aW9uKCl7YS5SVCgiUmVqb2luIikoYS5kYXRhLGEuTGlzdCl9LmRlYm91bmNlKDMwMCkpfSxiaW5kOiJ0aGlzLkxpc3QiLGxpc3Q6JzxkaXYgY2xhc3M9Imlyb3ciPjwvZGl2PicsaWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIlgiK3guaWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIlgiK3guaGFzaH0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcztyZXR1cm4gYS5SVCh4Lm1hbmlmZXN0KXx8YS5SVCgiJHN0cmluZyIpfX19fSwkc3RyaW5nOntpZDoiU3lzLkpTT04uU3RyaW5nIixDTToiYXV0byIsRjp7fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5JbmxpbmVDTSh4LGEpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIDIhPXguc3RhdGU/Yih4LnZhbHVlKToobnVsbCE9YSYmKHgudmFsdWU9YSksYih4LnZhbHVlKSk7ZnVuY3Rpb24gYih4KXt2YXIgYT0nPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPicsYj0nPHNwYW4gY2xhc3M9Im8zMCI+4oCJwrbigIk8L3NwYW4+JztyZXR1cm4geC5sZW5ndGg+MTQwP2ErPXgudHJ1bmNhdGUoMTQwKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgvXG4vZyxiKSsnJnF1b3Q7IDxzcGFuIGNsYXNzPSJpbGFiZWwiPicreC5sZW5ndGgrIiBjaGFyczwvc3Bhbj4iOmErPXguZXNjYXBlSFRNTCgpLnJlcGxhY2UoL1xuL2csYikrJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGF9fSxldmVudHM6ImlucHV0Lm15In19fSwkZm91bmQ6e2lkOiJTeXMuSlNPTi5Gb3VuZCIsQ006ImF1dG8iLEY6e30sdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2EuSW5saW5lQ00oeCxhKX0sYmluZDpmdW5jdGlvbih4LGEpe3RoaXMubGFiZWxXaWR0aDt2YXIgYixjPXgudmFsdWU7cmV0dXJuIDgmeC5zdGF0ZSYmdGhpcy5SVCgiU2VhcmNoUmUiKT9bJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLChiPWMucmVwbGFjZSh0aGlzLlJUKCJTZWFyY2hSZSIpLCLvv7EkMe+/sSIpLnNwbGl0KCLvv7EiKSlbMF0udHJ1bmNhdGUoMTQwLCJsZWZ0Iiwi4oCmIikuZXNjYXBlSFRNTCgpLCc8c3BhbiBjbGFzcz0ianZhbC1mb3VuZC1rZXkiPicrYlsxXS5lc2NhcGVIVE1MKCkrIjwvc3Bhbj4iLGJbMl0udHJ1bmNhdGUoMTQwLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSwnPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPicsYy5sZW5ndGg+MjgwPyc8c3BhbiBjbGFzcz0iaWxhYmVsIj4nK2MubGVuZ3RoKyIgY2hhcnM8L3NwYW4+IjoiIl0uam9pbigiIik6MiE9eC5zdGF0ZT9kKHgudmFsdWUpOihudWxsIT1hJiYoeC52YWx1ZT1hKSxkKHgudmFsdWUpKTtmdW5jdGlvbiBkKHgpe3ZhciBhPSc8c3BhbiBjbGFzcz0ianZhbC1icmFja2V0Ij4mcXVvdDs8L3NwYW4+JztyZXR1cm4geC5sZW5ndGg+MTQwP2ErPXgudHJ1bmNhdGUoMTQwKS5lc2NhcGVIVE1MKCkrJyZxdW90OyA8c3BhbiBjbGFzcz0iaWxhYmVsIj4nK3gubGVuZ3RoKyIgY2hhcnM8L3NwYW4+IjphKz14LmVzY2FwZUhUTUwoKSsnPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPicsYX19LGV2ZW50czoiaW5wdXQubXkifX19LCRmdW5jdGlvbjp7aWQ6IlN5cy5KU09OLkZ1bmN0aW9uIixDTToidGV4dC9qYXZhc2NyaXB0IixGOnt9LHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7aW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7Yi5kYXRhO2IuSW5saW5lQ00oeCxiKX0sYmluZDpmdW5jdGlvbih4LGEpe2lmKDIhPXguc3RhdGUpe3ZhciBiPSIiLGM9L15bXHNcclxuXHRdKlwoP1tcc1xyXG5cdF0qZnVuY3Rpb24vLGQ9L1tcc1xyXG5cdF0qXClbXHNcclxuXHRdKiQvO2lmKHgudmFsdWUubGVuZ3RoPjEwMCl7dmFyIGU9eC52YWx1ZS5zcGxpdCgiKSIsMSlbMF07Yis9Wyc8c3BhbiBjbGFzcz0ianZhbC1mdW5jdGlvbiI+ZnVuY3Rpb24gPC9zcGFuPiAnLGUucmVwbGFjZShjLCIiKS5zcGxpdCgiKCIpWzBdLnRyaW0oKSwiKCIsZS5zcGxpdCgiKCIpWzFdKyIpIHsiLCcgPHNwYW4gY2xhc3M9ImlsYWJlbCBsaDE0MCI+JywoeC52YWx1ZS5tYXRjaCgvW1xyXG5dKy9nKXx8IiIpLmxlbmd0aCsxKyIgTE9DLCAiLHgudmFsdWUubGVuZ3RoKyIgY2hhcnMiLCI8L3NwYW4+ICIsIn0iXS5qb2luKCIiKX1lbHNlIGI9JzxzcGFuIGNsYXNzPSJqdmFsLWZ1bmN0aW9uIj5mdW5jdGlvbjwvc3Bhbj4nK3gudmFsdWUucmVwbGFjZShjLCIiKS5yZXBsYWNlKGQsIiIpLmVzY2FwZUhUTUwoKTtyZXR1cm4gYn1yZXR1cm4gbnVsbCE9YSYmKHgudmFsdWU9YSkseC52YWx1ZX0sZXZlbnRzOiJpbnB1dC5teSJ9fX0sJGJhc2U2NDp7aWQ6IlN5cy5KU09OLkJhc2U2NCIsQ006ImI2NCIsRjp7fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2IuZGF0YTtiLklubGluZUNNKHgsYil9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPSIiLGQ9dGhpcy5SVCgiQmxvYnMiKSxlPS9eaW1hZ2VcLy8udGVzdCh4Lm1pbWUrIiIpJiZ4LnZhbHVlLmxlbmd0aDw1ZTU/ZFt4Lmhhc2hdOm51bGwsZj0iIjtpZigyIT14LnN0YXRlKXt2YXIgZz1iLndpZHRoKCk7ZT8oYys9Wyc8YSBocmVmPSInK2UrJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJiYXNlNjRpbWFnZSI+JywnPGltZyBzcmM9IicrZSsnIiBjbGFzcz0iZmwgbXIxMCIvPicsIjwvYT4iXS5qb2luKCIiKSxnLT04MCk6eC5taW1lJiZ4LmZuYW1lJiYoZj14LmZuYW1lfHwidW50aXRsZWQuYmluIixjKz0nPGEgaHJlZj0iJytkW3guaGFzaF0rJyIgIGNsYXNzPSJiYXNlNjRpY28gdzU1IGg1NSB0YWMgZGliIHZhdCBtcjEwIGxncmF5IGZzMjAwIGJnLWxncmF5IGJyMiIgZG93bmxvYWQ9IicrZisnIiAgdGl0bGU9IkRvd25sb2FkICcrZisnIiAgc3R5bGU9ImxpbmUtaGVpZ2h0OjU1cHgiPjxzcGFuIGNsYXNzPSInKyh4Lmljb3x8ImZpLWFyY2hpdmUiKSsnIj48L3NwYW4+PC9hPicsZy09ODApO3ZhciBoPShnLzEwKjIuNXwwKS5jbGFtcCgxNDAsNjAwKTtyZXR1cm4gYys9JzxkaXYgY2xhc3M9ImRpYiB2YXQgYmFzZTY0c3RyaW5nIj4nLGMrPSciJyx4LnZhbHVlLmxlbmd0aD5oP2MrPXgudmFsdWUudHJ1bmNhdGUoaCkrJyImbmJzcDs8YSBocmVmPSInK2RbeC5oYXNoXSsnIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImlsYWJlbCB0ZG4iPicrKGU/Ik9wZW4iOiJEb3dubG9hZCIpKyImbmJzcDsiK3guc2l6ZS5tZXRyaWMoMikrImI8L2E+IjpjKz14LnZhbHVlKyciJyxlJiYoYys9IjwvZGl2PiIpLGN9cmV0dXJuIG51bGwhPWEmJih4LnZhbHVlPWEpLHgudmFsdWV9LGV2ZW50czpbImlucHV0Lm15Il19fSxNaW1lOnsiYXBwbGljYXRpb24veC1jb21wcmVzc2VkIjovXC56aXAkL2ksImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCI6L1wueGxzeD8kL2ksImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI6L1wuKGNkcnxkYXR8cmFyKSQvaSwiYXBwbGljYXRpb24vanNvbiI6L1wuKGpzbnxqc29uKSQvaSwiYXBwbGljYXRpb24vamF2YXNjcmlwdCI6L1wuanMkL2ksImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50IjovXC5kb2N4JC9pLCJhcHBsaWNhdGlvbi9tc3dvcmQiOi9cLmRvYz8kL2ksImFwcGxpY2F0aW9uL3BkZiI6L1wucGRmJC9pLCJ0ZXh0L3BsYWluIjovXC50eHQkL2ksInRleHQvaHRtbCI6L1wuKFt4XT9odG1bbF0/KSQvaSwidGV4dC94bWwiOi9cLih4bWx8eHNkfHhzZnx4c2x8eHNsdCkkL2ksImltYWdlL3BuZyI6L1wucG5nJC9pLCJpbWFnZS9qcGVnIjovXC5qcGU/ZyQvaSwiaW1hZ2UvZ2lmIjovXC5naWYkL2ksImltYWdlL3N2Zyt4bWwiOi9cLnN2ZyQvaX0sSWNvOnsiZmktcGhvdG8iOi9cLihwbmd8anBbZV0/Z3xnaWZ8dGlmW2ZdP3xibXB8c3ZnKSQvaSwiZmktc29jaWFsLWFkb2JlIjovXC4ocGRmfGFpfHBzZCkkL2ksImZpLXBhZ2UtZG9jIjovXC4oZG9jW3hdP3x0eHR8cnRmKSQvaSwiZmktZ3JhcGgtcGllIjovXC4oeGxzW3hdP3xjc3YpJC9pLCJmaS1hcmNoaXZlIjovXC4oemlwfHJhcnw3enw3emlwKSQvaSwiZmktaHRtbDUgcGwyIjovXC4oaHRtW2xdfHBocCkkL2ksImZpLWNzczMgcGwyIjovXC5jc3MkL2ksImZpLXdpZGdldCI6L1wuKGpzW29uXT98cGhwfGFzcHxqYXJ8Y3xlcmwpJC9pLCJmaS1zb3VuZCI6L1wuKHdhdnxhaWZmfG1wM3xvZ2d8bXBlZzMpJC9pfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YTtpZih4LmFkZENsYXNzKCJlZC1ub2RlLSIrYi5QYXRoU2lnKGMucGF0aCxjLmtleSkpLHguaHRtbChiLkhUTUwpLCFjLnNpZyl7dmFyIGQ9L15kYXRhOmltYWdlXC8oanBlZ3xwbmd8Z2lmfHN2Z1wreG1sKTtiYXNlNjQsLyxlPWQudGVzdChjLnZhbHVlKSxmPWU/Yy52YWx1ZS5yZXBsYWNlKGQsIiIpOmMudmFsdWU7aWYoYy5zaXplPShmLmxlbmd0aC80KjMpLmZsb29yKCksYy5zaWc9YT13aW5kb3cuYXRvYihmLnRvKDQwMCkpLGUpYy5taW1lPWMudmFsdWUudG8oMzApLnNwbGl0KCI7YmFzZTY0IilbMF0uc3BsaXQoIjoiKVsxXTtlbHNlIGlmKCLDv8OYw7/DoCI9PT1hLnRvKDQpP2MubWltZT0iaW1hZ2UvanBlZyI6IsKJUE5HIj09PWEudG8oNCk/Yy5taW1lPSJpbWFnZS9wbmciOi9ePFw/eG1sLy50ZXN0KGEpJiYvPHN2Z1xzdmVyc2lvblxzKj1ccyoiMVwuXGQiLy50ZXN0KGEpJiYoYy5taW1lPSJpbWFnZS9zdmcreG1sIiksIWMubWltZSYmMz09Yy5wYXRoLmxlbmd0aCYmIl9hdHRhY2htZW50cyI9PWMucGF0aFsxXSl7dmFyIGcsaD0iZmktcGFwZXJjbGlwIixpPSJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLGo9Yy5wYXRoWzJdO2ZvcihnIGluIGIuTWltZSliLk1pbWVbZ10udGVzdChqKSYmKGk9Zyk7Zm9yKGcgaW4gYi5JY28pYi5JY29bZ10udGVzdChqKSYmKGg9Zyk7Yy5taW1lPWksYy5pY289aCxjLmZuYW1lPWp9Yy5taW1lPWMubWltZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsYi5SVCgiQmxvYnMiKVtjLmhhc2hdPVVSTC5jcmVhdGVPYmplY3RVUkwoJC5teS5mLmJhc2U2NDJibG9iKGMudmFsdWUucmVwbGFjZSgvXmRhdGE6aW1hZ2VcLyhqcGVnfHBuZ3xnaWZ8c3ZnXCt4bWwpO2Jhc2U2NCwvLCIiKSxudWxsLGMubWltZSkpfX19LCRudW1iZXI6e2lkOiJTeXMuSlNPTi5OdW1iZXIiLENNOiJudW1iZXIiLEY6e04yUzpmdW5jdGlvbih4KXt2YXIgYT0nPHNwYW4gY2xhc3M9Imp2YWwtbnVtYmVyIj4nK3gudG9TdHJpbmcoKSsiPC9zcGFuPiI7cmV0dXJuIHg8MWUxMyYmeD44ZTExJiZ4PT09KCt4KS5mbG9vcigpJiYoYSs9JyA8c3BhbiBjbGFzcz0iaWxhYmVsIHhncmF5IGxoMTQwIHZhdCBtdDQiPjxzcGFuIGNsYXNzPSJmaS1jbG9jayI+PC9zcGFuPiAnK0RhdGUuY3JlYXRlKHgpLmZvcm1hdCgie2R9IHtNb259IHt5eXl5fSwge0h9OnttbX06e3NzfSwgTG9jYWwiKSsiPC9zcGFuPiIpLGF9LENhbGM6ZnVuY3Rpb24ocyxwcmV2KXtpZighaXNOYU4ocykpcmV0dXJuK3M7dmFyIG49bnVsbDt0cnl7bj1ldmFsKCIoIitzKyIpIil9Y2F0Y2goeCl7fXJldHVybiBudWxsPT09bnx8aXNOYU4obik/cHJldjorbn19LHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7aW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGE7Yi5JbmxpbmVDTSh4LGIsZnVuY3Rpb24oYSxkKXtjLnZhbHVlPWIuRi5DYWxjKGEsZCkseC50cmlnZ2VyKCJjaGVjayIpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPXgudmFsdWUrIiI7cmV0dXJuIDgmeC5zdGF0ZSYmdGhpcy5SVCgiU2VhcmNoUmUiKT9bKGI9Yy5yZXBsYWNlKHRoaXMuUlQoIlNlYXJjaFJlIiksIu+/sSQx77+xIikuc3BsaXQoIu+/sSIpKVswXS50cnVuY2F0ZSgxNDAsImxlZnQiLCLigKYiKS5lc2NhcGVIVE1MKCksJzxzcGFuIGNsYXNzPSJqdmFsLWZvdW5kLWtleSI+JytiWzFdLmVzY2FwZUhUTUwoKSsiPC9zcGFuPiIsYlsyXS50cnVuY2F0ZSgxNDAsInJpZ2h0Iiwi4oCmIikuZXNjYXBlSFRNTCgpXS5qb2luKCIiKToxPT14LnN0YXRlfHw0PT14LnN0YXRlP3RoaXMuRi5OMlMoeC52YWx1ZSk6KG51bGwhPWEmJih4LnZhbHVlPXRoaXMuRi5DYWxjKGEseC52YWx1ZSkpLHRoaXMuRi5OMlMoeC52YWx1ZSkpfSxldmVudHM6ImlucHV0Lm15In19fSwkYm9vbGVhbjp7aWQ6IlN5cy5KU09OLkJvb2xlYW4iLHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC52YWx1ZT0heC52YWx1ZSx0aGlzLk5vZGVVcGRhdGVkKFt4LnBhdGgseC5rZXldLCF4LnZhbHVlLHgudmFsdWUpKSx0aGlzLlZbeC52YWx1ZT8xOjBdfSxldmVudHM6ImNsaWNrLm15In19LFY6Wyc8c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIGdyYXkgbWwtOSI+dHJ1ZTwvc3Bhbj48c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIHllbGxvdy0xIGJnLXllbGxvdzUiPmZhbHNlPC9zcGFuPicsJzxzcGFuIGNsYXNzPSJpYm9vbGVhbi10YWcgYmx1ZS0xIGJnLWJsdWU0IG84MCBtbC05Ij50cnVlPC9zcGFuPjxzcGFuIGNsYXNzPSJpYm9vbGVhbi10YWcgZ3JheSI+ZmFsc2U8L3NwYW4+J119LCRudWxsOntpZDoiU3lzLkpTT04uTnVsbCIsdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuJzxzcGFuIGNsYXNzPSJyZWQgbzgwIj5udWxsPC9zcGFuPid9fX19LHN0YW1wOjE2NDI4NjA2MTkxNzV9LCJjdy5Db3VjaC5Nb25pdG9yIjp7aWQ6ImN3LkNvdWNoLk1vbml0b3IiLGJ1aWxkOjY0LFZlcnNpb246IjIuMSIscGFyYW1zOntyZXN0eWxlOjQwLHN0cmljdDohMH0sZGF0YTp7c2VhcmNoOiIiLGNtZDoiIixkb2M6e25hbWU6IlVubmFtZWQgbWVzaCIsdHlwZToiY291Y2hzdGF0cyIsY3J5cHRvOiItIixub2RlczpbXSxsb2c6W119fSxDb25maWc6e3N0YXRzU2NhbGVZOjEuNSxzdGF0c01heEdyYXBoczo0LHN0YXRzTWF4VGltZWZyYW1lOjkwMCxzdGF0c1JlZnJlc2g6MTAsc2VyaWVNYXhMZW5ndGg6MWU0fSxDZmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5Db25maWd9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLmRhdGEsYS5kYXRhLmRvYyk7aWYoYS5Nb3VudCh4KSxiLm5vZGVzLmxlbmd0aHx8Yi5ub2Rlcy5wdXNoKCQuZXh0ZW5kKCEwLHt9LGEuZGVmYXVsdE5vZGVzWyIxLngiXSkpLGIubm9kZXMuZm9yRWFjaChhLkFwcGx5UHJlc2V0cyksWyJOb2RlIiwiU2VyaWUiLCJHYXVnZSJdLmZvckVhY2goZnVuY3Rpb24oeCl7WyJzZWxlY3QyIiwiUmVxIl0uZm9yRWFjaChmdW5jdGlvbihiKXthW3hdW2JdPWFbYl19KX0pLHguaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2EuVGltZXI9ZnVuY3Rpb24oKXskLm15LnJhZGlvKCJjb3VjaF9tb25pdG9yX3RpbWVyIixEYXRlLm5vdygpKX0uZXZlcnkoMmUzKX0uZGVib3VuY2UoMTAwKSksY3cubGliLnNjcm9sbFkmJmN3LmxpYi5zY3JvbGxZKHgpLCFjdy5tZSgpKXJldHVybiAkLkRlZmVycmVkKCkucmVqZWN0KDQwMSwiWW91IG5lZWQgdG8gbG9nIGluIHRvIHNlZSBzdGF0cyIse29rOiExLHJlYXNvbjoiY29uZmlnIn0pLnByb21pc2UoKX0sdWk6eyIjbW5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuKHguZG9jLm5hbWV8fCJVbnRpdGxlZCBtb25pdG9yaW5nIGdyb3VwIikuZXNjYXBlSFRNTCgpfX0sIiNub2RlcyI6e2JpbmQ6ImRvYy5ub2RlcyIsbGlzdDonPGRpdiBjbGFzcz0ibm5vZGUiPjwvZGl2PicsaWQ6WyJuYW1lIl0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuTm9kZX0sY3NzOntub3RpdGxlOmZ1bmN0aW9uKHgpe3JldHVybiB4LmRvYy5ub2Rlcy5sZW5ndGg8Mn19fSwiI2J0bi11cGRhdGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmJC5teS5yYWRpbygiY291Y2hfbW9uaXRvcl9yZWZyZXNoIiwhMCl9fX0sZGllOmZ1bmN0aW9uKCl7dGhpcy5UaW1lci5jYW5jZWwoKX0sc2VsZWN0MjpmdW5jdGlvbih4LGEpe3JldHVybiB4LnNlbGVjdDIoYSl9LEF1dG9TYXZlTm9kZTpmdW5jdGlvbigpe30sTHM6ZnVuY3Rpb24oKXt9LE1vdW50OmZ1bmN0aW9uKCl7fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCB4Z3JheSBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzEycCBmczk1IG1sNiBoaWRlIj48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsiIG9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCI+PGJ1dHRvbiBpZD0iYnRuLXVwZGF0ZSIgY2xhc3M9Inc0MCBtcjIiIHRpdGxlPSJVcGRhdGUiPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0ibW5hbWUiIGNsYXNzPSJkaWIgZnMxODAgbGgxMjAgbXQtMiBib2xkZXIgdmF0IG53IG9oIGVsbCBwcjYgcGw2IiBzdHlsZT0id2lkdGg6Y2FsYygzNSUgLSA0MnB4KTsiPjwvZGl2PjxkaXYgaWQ9Im1jb250cm9scyIgY2xhc3M9ImZyIG5vY3dtaW4gdGFyIiBzdHlsZT0id2lkdGg6Y2FsYyg1MyUgLSA2cHgpOyI+PGRpdiBjbGFzcz0iZmwiPjxidXR0b24gaWQ9ImJ0bi1hZGQiIGNsYXNzPSJ0ZWFsIG1yMTAgdGFjIj48c3BhbiBjbGFzcz0iZmktcGx1cyBvNTAiPjwvc3Bhbj4gQWRkLi4uPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCB3NjBwIHRhbCIgc3R5bGU9Im1heC13aWR0aDoyNTBweDsiPjxpbnB1dCBpZD0iZW5jcnlwdCIgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIGZzMTEwIHZhdCBwcjIiPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1zYXZlIiBjbGFzcz0iZ3JlZW4gbXIyIHRhYyI+wqBTYXZlwqA8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tY2xvc2UiIGNsYXNzPSJ0YWMiPsKgQ2xvc2XCoDwvYnV0dG9uPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJub2RlLXRpbGVzIiBjbGFzcz0icGFuZWxoZWlnaHQgcGwyMCBmZWF0aGVyIHcxMDBwIj48ZGl2IGlkPSJub2RlcyIgY2xhc3M9Im5ub2RlcyB4Z3JheSB3MTAwcCBwYW5lbGhlaWdodCI+PC9kaXY+PC9zZWN0aW9uPicsUHJlc2V0czp7UlBTOntuYW1lOiJSZXF1ZXN0IHJhdGUiLG1vZGU6InN1bSIsbmFtZXM6WyJSZXF1ZXN0IHJhdGUiLCIyMFgiLCI0MFgiLCI1MDAiXSx1bml0czpbInJlcS9zIiwicmVxIiwicmVxIiwicmVxIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDUwLDIwOSwwLDAuNjkpIiwiIHJnYmEoMjU1LDEyMywwLDAuNjkpIiwiIHJnYmEoMjI5LDAsMjM1LDAuNjkpIl0sZmllbGRzOltbIjIwMCIsIjIwMSIsIjIwMiIsIjQwMCIsIjQwMSIsIjQwMyIsIjQwNCIsIjQwOSIsIjUwMCJdLFsiMjAwIiwiMjAxIiwiMjAyIl0sWyI0MDAiLCI0MDEiLCI0MDMiLCI0MDQiLCI0MDkiXSxbIjUwMCJdXSxyb3dzOltbMF0sWzBdLFswXSxbMF1dLHRpbWU6WzEwXX0sREJSVzp7bmFtZToiREJzIHJlYWRzL3dyaXRlcyByYXRlIixtb2RlOiJzdW0iLG5hbWVzOlsiUlcgcmF0ZSIsIlJlYWRzIiwiV3JpdGVzIiwiVmlldyByZWFkcyJdLHVuaXRzOlsiREIgb3BzL3MiLCJvcHMiLCJvcHMiLCJvcHMiXSxjb2xvcnM6WyJpbmhlcml0IiwiIHJnYmEoMzUsMTM3LDI1NSwwLjU4KSIsIiByZ2JhKDI1NSwzOCwxMTcsMC41OCkiLCIgcmdiYSgyNTUsMTk1LDAsMC44KSJdLGZpZWxkczpbWyJkYXRhYmFzZV9yZWFkcyIsImRhdGFiYXNlX3dyaXRlcyJdLFsiZGF0YWJhc2VfcmVhZHMiXSxbImRhdGFiYXNlX3dyaXRlcyJdLFsidmlld19yZWFkcyJdXSxyb3dzOltbMF0sWzBdLFswXV0sdGltZTpbMTBdfSxBVVRIOntuYW1lOiJBdXRoIGhpdHMgYW5kIG1pc3NlcyIsbW9kZToic3VtIixuYW1lczpbIkF1dGggaGl0cy9taXNzZXMgcnBzIiwiSGl0cyIsIk1pc3NlcyJdLHVuaXRzOlsiYXV0aCBycHMiLCJyZXEiLCJyZXEiXSxjb2xvcnM6WyJpbmhlcml0IiwiIHJnYmEoMjAsMjMyLDAsMC42OSkiLCIgcmdiYSgyNTUsMzgsMzgsMC42OSkiXSxmaWVsZHM6W1siYXV0aF9jYWNoZV9oaXRzIiwiYXV0aF9jYWNoZV9taXNzZXMiXSxbImF1dGhfY2FjaGVfaGl0cyJdLFsiYXV0aF9jYWNoZV9taXNzZXMiXV0scm93czpbWzBdLFswXSxbMF1dLHRpbWU6WzEwXX0sRkVFRFM6e25hbWU6Ik51bWJlciBvZiBjb250aW51b3VzIF9jaGFuZ2VzIGZlZWRzIGFjdGl2ZSIsbmFtZXM6WyJDb250aW51b3VzIF9jaGFuZ2VzIGZlZWRzIiwiRmVlZHMiXSx1bml0czpbInN5bmMgZmVlZHMiLCIiXSxjb2xvcnM6WyJpbmhlcml0IiwiIHJnYmEoODYsMTIzLDE3MiwwLjYyKSJdLGZpZWxkczpbWyJjbGllbnRzX3JlcXVlc3RpbmdfY2hhbmdlcyJdLFsiY2xpZW50c19yZXF1ZXN0aW5nX2NoYW5nZXMiXV0scm93czpbWzBdLFswXV0sdGltZTpbMTBdLG1vZGU6ImN1cnJlbnQifSxGSUxFUzp7bmFtZToiT3BlbiBPUyBmaWxlcyIsbmFtZXM6WyJGaWxlcyIsIkZpbGVzIl0sdW5pdHM6WyJvcGVuIGZpbGVzIiwiIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDg2LDEyMywxNzIsMC42MikiXSxmaWVsZHM6W1sib3Blbl9vc19maWxlcyJdLFsib3Blbl9vc19maWxlcyJdXSxyb3dzOltbMF0sWzBdXSx0aW1lOlsxMF0sbW9kZToiY3VycmVudCJ9LFJBTTp7bmFtZToiUkFNIixuYW1lczpbIlJBTSwgTWIiLCJOb2RlIFJBTSwgTWIiXSx1bml0czpbIk1iIFJBTSIsIk1iIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDYzLDE2OSwxNTgsMC42MikiXSxkZW5vbWluYXRvcjoxMDQ4NTc2LGZpZWxkczpbWyJhdG9tIiwiYmluYXJ5IiwiY29kZSIsImV0cyIsIm90aGVyIiwicHJvY2Vzc2VzIl0sWyJhdG9tIiwiYmluYXJ5IiwiY29kZSIsImV0cyIsIm90aGVyIiwicHJvY2Vzc2VzIl1dLHJvd3M6W1swXSxbMF1dLHRpbWU6WzEwXSxtb2RlOiJjdXJyZW50In0sVVBUSU1FOntuYW1lOiJVcHRpbWUiLG5hbWVzOlsiVXB0aW1lLCBkYXlzIiwiRGF5cyJdLHVuaXRzOlsiZGF5cyB1cHRpbWUiLCJkYXlzIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDYzLDE2OSwxNTgsMC42MikiXSxkZW5vbWluYXRvcjo4NjQwMCxmaWVsZHM6W1sidXB0aW1lIl0sWyJ1cHRpbWUiXV0scm93czpbWzBdLFswXV0sdGltZTpbMTBdLG1vZGU6ImN1cnJlbnQifX0sZGVmYXVsdE5vZGVzOnsiMS54Ijp7bmFtZToiTm9kZSAxIixjb3VjaDoiMS54Iix1cmw6Ii8iLGhlYWx0aDoiIixnYXVnZXM6W3tuYW1lOiJPcGVuIGZpbGVzIixwcmVzZXQ6IkZJTEVTIn0se25hbWU6IkFjdGl2ZSBfY2hhbmdlcyBmZWVkcyIscHJlc2V0OiJGRUVEUyJ9XSxzZXJpZXM6W3tuYW1lOiJSZXF1ZXN0IHJhdGUiLHByZXNldDoiUlBTIn0se25hbWU6IkRCcyBSL1cgcmF0ZSIscHJlc2V0OiJEQlJXIn1dfSwiMi54Ijp7bmFtZToiTm9kZSAxIixjb3VjaDoiMi54Iix1cmw6Ii8iLGhlYWx0aDoiIixnYXVnZXM6W3tuYW1lOiJPcGVuIGZpbGVzIixwcmVzZXQ6IkZJTEVTIn0se25hbWU6IkFjdGl2ZSBfY2hhbmdlcyBmZWVkcyIscHJlc2V0OiJGRUVEUyJ9LHtuYW1lOiJVcHRpbWUiLHByZXNldDoiVVBUSU1FIn1dLHNlcmllczpbe25hbWU6IlJlcXVlc3QgcmF0ZSIscHJlc2V0OiJSUFMifSx7bmFtZToiREJzIFIvVyByYXRlIixwcmVzZXQ6IkRCUlcifSx7bmFtZToiUkFNIixwcmVzZXQ6IlJBTSJ9XX19LFJlcTpmdW5jdGlvbih4KXt2YXIgYT0kLmV4dGVuZCghMCx7fSx4KTtyZXR1cm4gJC5hamF4KGEpfSxBcHBseVByZXNldHM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QcmVzZXRzLGI9T2JqZWN0LmlzQXJyYXk7cmV0dXJuKHguc2VyaWVzfHxbXSkuZm9yRWFjaChjKSwoeC5nYXVnZXN8fFtdKS5mb3JFYWNoKGMpLHg7ZnVuY3Rpb24gYyhjKXtpZihjLnByZXNldCYmYVtjLnByZXNldF0pe3ZhciBkPWFbYy5wcmVzZXRdLGU9T2JqZWN0LnNlbGVjdChjLFsicm93cyIsInRpbWUiXSk7cmV0dXJuICQuZXh0ZW5kKGMsT2JqZWN0LmNsb25lKGQsITApLGUpLGIoYy5yb3dzKSYmYihjLnRpbWUpfHwoYy5yb3dzPU9iamVjdC5jbG9uZShkLnJvd3MsITApLGMudGltZT1bMTBdKSxjLnJvd3MubGVuZ3RoPGMuZmllbGRzLmxlbmd0aCYmKGMucm93cz1jLnJvd3MuYWRkKE9iamVjdC5jbG9uZShkLnJvd3MsITApKS50byhjLmZpZWxkcy5sZW5ndGgpKSx4fX19LEdlbkF4aXM6ZnVuY3Rpb24oeCl7dmFyIGE9eC5DZmcoKS5zdGF0c01heFRpbWVmcmFtZSxiPTYwKnguQ2ZnKCkuc3RhdHNTY2FsZVksYz14LlQuUGl2b3RYLGQ9eC5ULlBpdm90WSxlPXguVC5QaXZvdFRleHQsZj1bXSxnPVtdO3JldHVybiB4LkF4aXMuaDYwPT1iP3guQXhpczooNy4udGltZXMoZnVuY3Rpb24oeCl7Zi51bnNoaWZ0KGMuYXNzaWduKCJNMCx7Mn0gTHsxfSx7Mn0gIi5hc3NpZ24oYSsyMDAseCooYi82KSsuNSksIiByZ2JhKDE1OCwxNzQsMTkyLCIrKHg/Nj09eD8iMC40KSI6IjAuMTUpIjoiMC4yNSkiKSkpfSksKGEvNjApLnRpbWVzKGZ1bmN0aW9uKHgpe3ZhciBhPXgrMTtnLnVuc2hpZnQoZC5hc3NpZ24oIk17MX0sMCBMezF9LHsyfSAiLmFzc2lnbig2MCphLGIpLCIgcmdiYSgxNTgsMTc0LDE5MiwwLjM1KSIpK2UuYXNzaWduKDYwKmErMiwi4oiSIithKyJtaW4iKSl9KSx4LkF4aXM9e2g2MDpiLGF4aXN4OmZbMF0scGl2b3RzeDpmLnNsaWNlKDEpLmpvaW4oIiIpLHBpdm90c3k6Zy5qb2luKCIiKX0pfSxHZW5HcmFwaHM6ZnVuY3Rpb24oeCl7dmFyIGE9eC5kYXRhLGI9eC5oQmFyLGM9eC5DZmcoKS5zdGF0c01heFRpbWVmcmFtZSxkPXguQ2ZnKCkuc3RhdHNNYXhHcmFwaHMsZT14LkNmZygpLnN0YXRzU2NhbGVZLGY9NjAqZSxnPWEuZmllbGRzLmxlbmd0aCxoPWEucm93cy5zbGljZSgwKSxpPWEudGltZS5zbGljZSgxKSxqPWEuY29sb3JzLGs9YS5uYW1lcyxsPWEudW5pdHMsbT1hLmRlbm9taW5hdG9yfHwxLG49YS50aW1lWzBdLzEwLG89eC5BeGlzLHA9by5heGlzeCxxPW8ucGl2b3RzeCxyPW8ucGl2b3RzeSxzPXguVC5CYXIsdD14LlQuR3JhcGgsdT14LlQuTGluZSx2PXguVC5CYXJUaXAsdz1bXTtFKCksaS5sZW5ndGgudGltZXMoZnVuY3Rpb24oeCl7dmFyIGo9aVt4XS8xMCxvPTEscD1bXTtpZihuLT1qLGo+Yyl7aWYody5sZW5ndGg+PWQpcmV0dXJuO3ZhciBxPUUobixqKTtvPXEvaixqPXF9Zy50aW1lcyhmdW5jdGlvbihkKXtpZihkKXt2YXIgZz1oW2RdW3grMV18fDAsaT13WzBdLmxpbmVzW2RdLGs9d1swXS5kdCxsPXdbMF0uZHg7aWYocC5wdXNoKGcpLCEobCtrPjIqYysyMDApKXt2YXIgbj0iY3VycmVudCI9PWEubW9kZT9mKy41LWIoZypvL20sMSkqZTpmKzEtYihnKm8vbSxqKSplKi45OTE4O2krPWk/Ikx7MX0sezN9IEx7Mn0sezN9ICIuYXNzaWduKEQobCtrKyhqLzMpLmNsYW1wKDAsMykpLEQobCtrK2opLG4pOiJNezF9LHszfSBMezJ9LHszfSAiLmFzc2lnbihEKGwpLEQobCtrK2opLG4pLHdbMF0ubGluZXNbZF09aX19fSksd1swXS5kdCs9aix3WzBdLmNvdmVycys9cy5hc3NpZ24oIiIsaix2LmFzc2lnbih7dGltZTpEYXRlLmNyZWF0ZSgxZTMqKG4raikpLmZvcm1hdCgie2R9IHtNb259IHt5eXl5fSwge0hIfTp7bW19Ontzc30iKSxkdXI6IkR1cmF0aW9uOiAiK2oucm91bmQoMSkrInMiLHJvd3M6cC5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4ga1thKzFdKyI6ICIrKG8qeC9tKS5yb3VuZCgxKSsiICIrbFthKzFdfSkuam9pbigiXG4iKX0pKX0pLHcucmV2ZXJzZSgpO3ZhciB5PXgubXkucm9vdCgpLndpZHRoKCl8fDAsej0oeT4wPyh5LTEwMC00MSkuY2xhbXAoMzAwLDNlMyk6eC5QcmV2V2lkdGgpfHwzMDAsQT1HKHdbMF0uZHQpLEI9d1sxXT93WzFdLmR0OjAsQz13WzJdP3dbMl0uZHQ6MDtyZXR1cm4geC5QcmV2V2lkdGg9eix3WzBdLndpZHRoPXosejw0NTA/dy5sZW5ndGg9MTp6PDcyMD9CPyhCPUIuY2xhbXAoMTUwLHovMyksd1swXS53aWR0aD1BPSh6LUIpLmNsYW1wKDMwMCwxZTYpLHdbMV0ud2lkdGg9ei1BLTMxLHcubGVuZ3RoPTIpOncubGVuZ3RoPTE6QiYmIUM/KEI9RyhCLmNsYW1wKDEyMCx6LzMpKSx3WzBdLndpZHRoPUE9KHotQikuY2xhbXAoMzAwLDFlNiksd1sxXS53aWR0aD16LUEtMzEsdy5sZW5ndGg9Mik6Qz8od1sxXS53aWR0aD1CPUIuY2xhbXAoMTIwLHovMy41LTMxKSx3WzJdLndpZHRoPUM9Qy5jbGFtcCgxMjAsei8xLjgtQi02MSksd1swXS53aWR0aD16LUItQy02MSx3Lmxlbmd0aD0zKTp3Lmxlbmd0aD0xLHcuZm9yRWFjaChGKSx3O2Z1bmN0aW9uIEQoeCl7cmV0dXJuIHguY2xhbXAoLWMtMjAwLGMrMjAwKS5yb3VuZCgyKX1mdW5jdGlvbiBFKHgsYSl7dmFyIGI9e2VuZDoiIix3aWR0aDowLGR4OjAsZHQ6MCxsaW5lczpbIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiJdLnRvKGcpLGNvdmVyczoiIixzdmc6IiJ9LGM9MDtpZih4KXt2YXIgZD1EYXRlLmNyZWF0ZShNYXRoLnJvdW5kKDFlMyp4KSkuY2xvbmUoITApLmNsb25lKCEwKTtkLnNldE1pbGxpc2Vjb25kcygwKSxkLnNldFNlY29uZHMoMCksZC5hZGRNaW51dGVzKDEpLE1hdGguYWJzKHgtZC52YWx1ZU9mKCkvMWUzKTw1JiZkLmFkZE1pbnV0ZXMoMSksYz1NYXRoLnJvdW5kKGQudmFsdWVPZigpLzEwMCkvMTAteCxiLmVuZD1kLmZvcm1hdCgne0hIfTp7bW19PGJyPjxzcGFuIGNsYXNzPSJmczgwIG83MCI+e3l5eXl9wrd7TU19wrd7ZGR9PC9zcGFuPicpfXJldHVybiB3LnVuc2hpZnQoYiksY3x8YX1mdW5jdGlvbiBGKHgsYSl7eC5zdmc9dC5hc3NpZ24oeC53aWR0aC0xLGYrMSxxKyhhP3I6IiIpK3gubGluZXMubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGE/dS5hc3NpZ24oeCxqW2FdKToiIn0pLmpvaW4oIiIpK3ApfWZ1bmN0aW9uIEcoeCl7cmV0dXJuIDYwKihNYXRoLmZsb29yKHgvNjApKzEpfX0sc3R5bGU6eyIiOiJmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS40ZW07IiwiICNub2RlLXRpbGVzIjoiIiwiIC53MTJwIjoid2lkdGg6MTIlOyIsIiAudzE4cCI6IndpZHRoOjE4JTsiLCIgLm5ub2RlcyI6eyIiOiJwYWRkaW5nOjE2cHggNHB4IDBweCAwcHg7IiwiIC5ubm9kZSI6eyIiOlsiYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwyMTksMjM0LDApOyBib3JkZXItcmFkaXVzOiAzcHg7ICIsInBhZGRpbmc6MnB4IDE1cHggMTBweCAxNXB4OyBtYXJnaW46IDBweCAxNnB4IDE2cHggMDtiYWNrZ3JvdW5kOiNmNGY4ZmE7Il0sIiAubnNlcmllcyI6IndpZHRoOiBjYWxjKDEwMCUgLSAxMTBweCk7IiwiIC5udGl0bGUiOiJib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgcmdiYSgxNjAsMTc2LDE5MiwwLjU2KTsiLCIgLnBhbGViZyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiIC5ndW5pdHMiOiJmb250LXNpemU6MTA1JTsgbGluZS1oZWlnaHQ6MS4yZW07IiwiIC5ndmFsIjoiZm9udC1zaXplOjE4MCU7IGxpbmUtaGVpZ2h0OjFlbTsiLCIgLmduYW1lcyI6eyIiOiJvcGFjaXR5OiAwLjM7IHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgZm9udC1zaXplOjAuN2VtOyBsaW5lLWhlaWdodDoxLjE1ZW07IGZvbnQtd2VpZ2h0OjUwMDsiLCI+c3BhbiI6IiB3aGl0ZS1zcGFjZTogbm93cmFwOyJ9LCIucmVkMSI6eyIgLnJoaXN0byAucnNoaW0iOiJib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2ZmNzE4MDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxMjcsMTI5LDAuMik7IiwiIC5yaGlzdG8gLnJzaGltPmRpdiI6ImJvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDI1NSwxMjcsMTI5LDAuNyk7In19LCIubm90aXRsZSI6eyIgLm50aXRsZSI6ImRpc3BsYXk6bm9uZTsiLCIgLm5ub2RlIjoicGFkZGluZy10b3A6OHB4OyJ9fSwiIC5yZ2F1Z2UiOmZ1bmN0aW9uKCl7dmFyIHg9NjAqdGhpcy5DZmcoKS5zdGF0c1NjYWxlWTtyZXR1cm57IiI6ImRpc3BsYXk6YmxvY2s7IHBhZGRpbmctdG9wOiA1cHg7IGhlaWdodDp7MX1weDsgIi5hc3NpZ24oeCsxNiksIjphZnRlciI6Wydjb250ZW50OiIiOyBoZWlnaHQ6ezF9cHg7IHdpZHRoOjFweDsgdG9wOjhweDsgcmlnaHQ6MHB4OycuYXNzaWduKHgrNCksInBvc2l0aW9uOmFic29sdXRlOyBib3JkZXItcmlnaHQ6MXB4IGRvdHRlZCByZ2JhKDE2MCwxNzYsMTkyLDAuNTYpOyAiXX19LCIgLnJzZXJpZSI6eyIiOmZ1bmN0aW9uKCl7dmFyIHg9NjAqdGhpcy5DZmcoKS5zdGF0c1NjYWxlWTtyZXR1cm4iZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgcGFkZGluZy10b3A6IDVweDsgaGVpZ2h0OnsxfXB4OyBvdmVyZmxvdzpoaWRkZW47Ii5hc3NpZ24oeCsxNil9LCI6aG92ZXIiOnsiIC5nbmFtZXMiOiJvcGFjaXR5OjE7IiwiIC5wYWxlYmciOiJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7In0sIiAucmhpc3RvIjpmdW5jdGlvbigpe3ZhciB4PTYwKnRoaXMuQ2ZnKCkuc3RhdHNTY2FsZVl8MDtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7IiI6IndpZHRoOmNhbGMoMTAwJSAtIDEwMHB4KTsgcGFkZGluZy10b3A6NXB4OyBmb250LXdlaWdodDo0MDA7IiwiIC5yc2NhbGUiOnsiIjoid2lkdGg6NDBweDsgaGVpZ2h0OntoNjF9cHg7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6ICM4MDkwYTA7IiwiPmRpdiI6IndpZHRoOjEwMCU7IGhlaWdodDp7aDEwfXB4OyBmb250LXNpemU6OXB4OyBsaW5lLWhlaWdodDo3LjJweDsgcGFkZGluZy1yaWdodDo0cHg7IHRleHQtYWxpZ246cmlnaHQ7IG92ZXJmbG93OmhpZGRlbjsiLCI+ZGl2OmZpcnN0LWNoaWxkIjoibWFyZ2luLXRvcDotMnB4OyIsIj5kaXY6YWZ0ZXIiOidjb250ZW50OiIgIjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IHJpZ2h0OjA7IHdpZHRoOjJweDsgb3ZlcmZsb3c6aGlkZGVuOyBib3JkZXItdG9wOjFweCBzb2xpZCAjYTBiMGMwOyd9LCIgLnJzaGltIjp7IiI6ImhlaWdodDp7aDYxfXB4OyB3aWR0aDowOyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2EwYjBjMDsgb3ZlcmZsb3c6aGlkZGVuOyIsIj5kaXYiOiJoZWlnaHQ6e2gxMH1weDsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggZG90dGVkIHJnYmEoMTYwLDE3NiwxOTIsMC4zNyk7In0sIiAucnZhbHVlcyI6eyIiOiJ4d2lkdGg6Y2FsYygxMDAlIC0gNDFweCk7IHdpZHRoOmF1dG87IGhlaWdodDp7aDYxfXB4O292ZXJmbG93OmhpZGRlbjsgY29sb3I6ICM4MDkwYTA7IiwiIC5yYmFycyI6eyI+LnJiYXIiOnsiIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6e2g2MH1weDsiLCI+ZGl2IjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7In0sIiAucmNvdmVyIjp7IiI6InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB6LWluZGV4OisyOyIsIj4ucmJhciI6eyIiOlsiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgb3ZlcmZsb3c6aGlkZGVuOyIsImhlaWdodDp7aDYxfXB4OyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zczsiLCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwxOTMsMzksMCk7Il0sIjpob3ZlciI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDE5MywzOSwwLjQzKTsifX19LCIgLnhyc3ZnIjp7IiI6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTYwLDE3NiwxOTIsMC4zNyk7In0sIiAucnRpbWUiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xcHg7IGxlZnQ6MnB4OyBmb250LXNpemU6MTBweDsgbGluZS1oZWlnaHQ6MTVweDsgY29sb3I6cmdiYSgxNjAsMTc2LDE5MiwwLjgxKTsifSwiIC5yYm91bmRzIjoiYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMTYwLDE3NiwxOTIsMC40KTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDE2MCwxNzYsMTkyLDAuNCk7IiwiIHRzcGFuIjoiZmlsbDpyZ2JhKDE2MCwxNzYsMTkyLDAuODEpOyIsIiAjdGFpbCAucmdyYXBoIjoibWF4LXdpZHRoOjYwMHB4OyBvdmVyZmxvdzpoaWRkZW47IiwiICN5YXhpcyI6InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB6LWluZGV4OisxOyJ9KS5hc3NpZ24oe2gxMDp4LzYsaDYwOngsaDYxOngrMSxoNjI6eCsyLGg2Mzp4KzN9KSl9fSwiIC5hcHAtaGVhZCI6eyIiOiJkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiA1MnB4OyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsifX0sTm9kZTp7aWQ6ImN3LkNvdWNoLk1vbml0b3IuTm9kZSIscGFyYW1zOntyZXN0eWxlOjUwfSxpbmhlcml0OlsiU2VyaWUiLCJHYXVnZSIsIkNmZyIsIkdlbkdyYXBocyIsIkdlbkF4aXMiLCJBdXRvU2F2ZU5vZGUiXSxSVDpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxkYXRhOntuYW1lOiJOb2RlIixoZWFsdGg6IiIsdXJsOiIvIixzZXJpZXM6W10sZ2F1Z2VzOltdfSxQZW5kaW5nOm51bGwsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KGEuZGF0YSxhLkNmZygpLnN0YXRzUmVmcmVzaCk7cmV0dXJuIHguaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2EuR2V0U3RhdHMuZGVib3VuY2UoMWUzKSgpLGEuR2V0U3RhdHMuZGVib3VuY2UoMWUzKmIvMykoKSxhLlRpbWVyPWZ1bmN0aW9uKCl7YS5HZXRTdGF0cygpfS5ldmVyeSgxZTMqYil9LmRlYm91bmNlKDEpKSxhLkdldFN0YXRzKCEwKX0sdWk6eyIjbm5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubmFtZS5zcGxpdCgiQCIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVIVE1MKCl9KS5qb2luKCc8c3BhbiBjbGFzcz0ibzYwIHBsMiBwcjIiPkA8L3NwYW4+Jyl9LGNzczp7cmVkOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJyZWQxIiwhIXguaGVhbHRoKSwhMX19fSwiI25zZXJpZXMiOntiaW5kOiJzZXJpZXMiLGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LnJvd3MseC50aW1lXSl9LGxpc3Q6JzxkaXYgY2xhc3M9InJzZXJpZSI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5TZXJpZX19LCIjbmdhdWdlcyI6e2JpbmQ6ImdhdWdlcyIsaGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gucm93cyx4LnRpbWVdKX0sbGlzdDonPGRpdiBjbGFzcz0icmdhdWdlIj48L2Rpdj4nLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLkdhdWdlfX0sIiNucHJveHkiOntiaW5kOmZ1bmN0aW9uKCl7fSxsaXN0ZW46e2NvdWNoX21vbml0b3JfcmVmcmVzaDpmdW5jdGlvbih4LGEpe3RoaXMuR2V0U3RhdHMoKX0sY291Y2hfbW9uaXRvcl9jZmdfY2hhbmdlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztiLlRpbWVyLmNhbmNlbCgpLGIuVGltZXI9ZnVuY3Rpb24oKXtiLkdldFN0YXRzKCl9LmV2ZXJ5KDFlMypiLkNmZygpLnN0YXRzUmVmcmVzaCksYi5HZXRTdGF0cygpfX19fSxkaWU6ZnVuY3Rpb24oKXt0aGlzLlRpbWVyLmNhbmNlbCgpfSxIVE1MOic8ZGl2IGNsYXNzPSJudGl0bGUgcGI1IG1iNSI+PGRpdiBpZD0ibm5hbWUiIGNsYXNzPSJubmFtZSBmczE2MCBsaDE0MCBwdDIgYm9sZGVyIj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJuZ2F1Z2VzIiBjbGFzcz0ibmdhdWdlcyB3MTEwIGRpYiB2YXQiPjwvZGl2PjxkaXYgaWQ9Im5zZXJpZXMiIGNsYXNzPSJuc2VyaWVzIGRpYiB2YXQiPjwvZGl2PjxkaXYgaWQ9Im5wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PicsR2V0U3RhdHM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWN3LmxpYi5tYXNrLGQ9JC5EZWZlcnJlZCgpLGU9T2JqZWN0LmlzT2JqZWN0LGY9T2JqZWN0LmlzTnVtYmVyLGc9e307aWYoYS5QZW5kaW5nKXJldHVybiBhLlBlbmRpbmc7dmFyIGg9W10saT0iIixqPTkwMCphLkNmZygpLnN0YXRzUmVmcmVzaCxrPWIuY291Y2g8IjIuIj9bIl9zdGF0cyJdOlsiX3N0YXRzIiwiX3N5c3RlbSJdO3JldHVybiBiLmNvdWNoPj0iMi4iJiYhL1wvX25vZGUvLnRlc3QoYi51cmwpJiYoaT0iX25vZGUvX2xvY2FsLyIpLGIuaGVhbHRoPSIiLGsuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYz17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn07Yi5iYXNpYyYmKGMuQXV0aG9yaXphdGlvbj0iQmFzaWMgIitiLmJhc2ljKSxoLnB1c2goYS5SZXEoe3VybDpiLnVybCsoIi8iIT1iLnVybC5zdWJzdHIoLTEpPyIvIjoiIikraSt4LG1ldGhvZDoiZ2V0IixkYXRhVHlwZToianNvbiIsaGVhZGVyczpjLHRpbWVvdXQ6an0pLnRoZW4oZnVuY3Rpb24oeCl7JC5leHRlbmQoZyxsKHgpKX0pLmZhaWwoZnVuY3Rpb24oeCxhLGMpe2IuaGVhbHRoPWMrIiJ9KSl9KSxhLlBlbmRpbmc9US5hbGxTZXR0bGVkKGgpLnRoZW4oZnVuY3Rpb24oKXtiLmhlYWx0aHx8bShnKSx4fHwoYS5teS5maW5kKCIjbnNlcmllcyIpLnRyaWdnZXIoInJlY2FsYyIpLGEubXkuZmluZCgiI25nYXVnZXMiKS50cmlnZ2VyKCJyZWNhbGMiKSk7dHJ5e2EuQXV0b1NhdmVOb2RlKGIpfWNhdGNoKHgpe319KS5maW5hbGx5KGZ1bmN0aW9uKCl7YS5QZW5kaW5nPW51bGwseHx8YS5teS5maW5kKCIjbm5hbWUiKS50cmlnZ2VyKCJjaGVjayIpLGQucmVzb2x2ZSgpfSksYS5QZW5kaW5nO2Z1bmN0aW9uIGwoeCl7dmFyIGE9e307cmV0dXJuIHgubWVtb3J5JiZ4LnVwdGltZT9KU09OLnN0cmluZ2lmeSh4LGZ1bmN0aW9uKHgsYil7cmV0dXJuIGYoYikmJihhW3hdPWIpLGJ9KTpKU09OLnN0cmluZ2lmeSh4LGZ1bmN0aW9uKHgsYil7cmV0dXJuIGUoYikmJihmKGIuc3VtKXx8ZihiLnZhbHVlKSkmJihhW3hdPWIuc3VtfHxiLnZhbHVlfHwwKSxifSksYX1mdW5jdGlvbiBtKHgpe3ZhciBkPWEuQ2ZnKCkuc2VyaWVNYXhMZW5ndGg7ZnVuY3Rpb24gZShhLGIpe3ZhciBlPU1hdGgucm91bmQoRGF0ZS5ub3coKS8xMDApO2EudGltZVswXT1lLWEudGltZVswXSxhLnRpbWUudW5zaGlmdChlKSxhLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKGIsZCl7dmFyIGU9Yyh4LGIpLnN1bSgpfHwwOyJjdXJyZW50IiE9YS5tb2RlJiYoYS5yb3dzW2RdWzBdPWUtYS5yb3dzW2RdWzBdKSxhLnJvd3NbZF0udW5zaGlmdChlKSwyPT1hLnRpbWUubGVuZ3RoJiYoYS5yb3dzW2RdWzFdPTApfSksYS5yb3dzWzBdLmxlbmd0aD4xMCYmKGEucm93c1swXS5sZW5ndGg9MTApLDI9PWEudGltZS5sZW5ndGg/KGEudGltZVsxXT0zMCxhLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKHgsYil7YS5yb3dzW2JdWzFdPTB9KSk6YS50aW1lLmxlbmd0aD5kJiYoYS50aW1lLmxlbmd0aD1kLGEucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7eC5sZW5ndGg+ZCYmKHgubGVuZ3RoPWQpfSkpfWIuc2VyaWVzLmZvckVhY2goZSksYi5nYXVnZXMuZm9yRWFjaChlKX19fSxTZXJpZTp7aWQ6ImN3LkNvdWNoLk1vbml0b3IuU2VyaWUiLHBhcmFtczp7cmVzdHlsZTo2MH0saW5oZXJpdDpbIkNmZyIsIkdlbkdyYXBocyIsIkdlbkF4aXMiXSxkYXRhOntuYW1lOiJSb3ciLGRlbm9taW5hdG9yOjEsbmFtZXM6W10sY29sb3JzOltdLGZpZWxkczpbXSxyb3dzOltdLHRpbWU6W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5HZW5BeGlzKGEpLHguaHRtbChhLkhUTUwpfSx1aTp7Ii5ndmFsIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPTA7cmV0dXJuIGI9ImN1cnJlbnQiPT14Lm1vZGU/K3gucm93c1swXVswXXx8MDp4LnRpbWVbMV0/MTAqKCt4LnJvd3NbMF1bMV18fDApL3gudGltZVsxXTowLChiLz14LmRlbm9taW5hdG9yfHwxKTwxP2Iucm91bmQoMikrIiI6Yj45OSYmYjwxZTQ/KDB8YikrIiI6Yi5yb3VuZCgxKS5tZXRyaWMoMywzKS5yZXBsYWNlKC8oXGRcZFxkP1wuXGQpXGR7MSwyfS8sIiQxIil9LHdhdGNoOiIjcHJpbWUifSwiLmd1bml0cyI6e2JpbmQ6InVuaXRzLjAifSwiLnJzaGltIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbD09YSl7dmFyIGM9TWF0aC5yb3VuZChEYXRlLm5vdygpLzFlMy14LnRpbWVbMF0vMTApO2IuY3NzKHt3aWR0aDpjKyJweCJ9KX19LGxpc3Rlbjp7Y291Y2hfbW9uaXRvcl90aW1lcjpmdW5jdGlvbih4LGEpe3JldHVybiEwfX19LCIjeWF4aXMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuR2VuQXhpcyhiKTtpZihudWxsPT1hKXJldHVybiBiLlQuR3JhcGguYXNzaWduKGIuQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsNjAqYi5DZmcoKS5zdGF0c1NjYWxlWSxjLnBpdm90c3kpfSx3YXRjaDoiI3ByaW1lIn0sIi5nbmFtZXMiOmZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWVzLnNsaWNlKDEpLm1hcChmdW5jdGlvbihhLGIpe3JldHVybic8c3BhbiBzdHlsZT0iY29sb3I6ezJ9Ij57MX08L3NwYW4+Jy5hc3NpZ24oYSx4LmNvbG9yc1tiKzFdKX0pLmpvaW4oIiAiKX0sIiNwcmltZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzLGM9KGIuR2VuQXhpcyhiKSxiLkdlbkdyYXBocyhiKSksZD1iLlQuVGFpbEdyYXBoLGU9Yi5DZmcoKS5zdGF0c01heFRpbWVmcmFtZSxmPSd7MX08ZGl2IGNsYXNzPSJyY292ZXIiPnsyfTwvZGl2Pic7cmV0dXJuIGIubXkuZmluZCgiI3RhaWwiKS5odG1sKGMuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBkLmFzc2lnbihmLmFzc2lnbih4LnN2Zyx4LmNvdmVycykseC5lbmQpfSkuam9pbigiIikpLGIubXkuZmluZCgiI3RpY2tpbmciKS5jc3Moe3dpZHRoOmNbMF0ud2lkdGguY2xhbXAoMzAxLGUrMSkrInB4In0pLGYuYXNzaWduKGNbMF0uc3ZnLGNbMF0uY292ZXJzKX19fX0saEJhcjpmdW5jdGlvbih4LGEpe3ZhciBiPSgreHx8MCkuY2xhbXAoMCwxZTUzKSxjPSgrYXx8MCkuY2xhbXAoMSwxZTUzKTtyZXR1cm4oMTAqTWF0aC5sb2cxMCgxKzEwKmIvYykpLmNsYW1wKDAsNjEpLnJvdW5kKDEpfSxIVE1MOic8ZGl2IGNsYXNzPSJnYmxvY2sgZGliIHZhdCB3MTAwIj48ZGl2IGNsYXNzPSJndmFsIHRhciBvODAgbXQtMSI+PC9kaXY+PGRpdiBjbGFzcz0iZ3VuaXRzIHRhciBvOTAiPjwvZGl2PjxkaXYgY2xhc3M9ImduYW1lcyB0YXIgbXQyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJyaGlzdG8gZGliIHZhdCBudyBvaCI+PGRpdiBjbGFzcz0icnNjYWxlIGRpYiB2YXQiPjxkaXY+MTAwSzwvZGl2PjxkaXY+MTBLPC9kaXY+PGRpdj4xMDAwPC9kaXY+PGRpdj4xMDA8L2Rpdj48ZGl2PjEwPC9kaXY+PGRpdj4xPC9kaXY+PC9kaXY+PGRpdiBpZD0idGlja2luZyIgY2xhc3M9InJ2YWx1ZXMgZGliIHZhdCBudyByYm91bmRzIj48ZGl2IGlkPSJ5YXhpcyIgY2xhc3M9InlheGlzIj48L2Rpdj48ZGl2IGNsYXNzPSJyc2hpbSBkaWIgdmF0IHBhbGViZyI+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0icHJpbWUiIGNsYXNzPSJyYmFycyBkaWIgdmF0IG53IHBhbGViZyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icnZhbHVlcyBkaWIgdmF0Ij48ZGl2IGlkPSJ0YWlsIiBjbGFzcz0icmJhcnMgZGliIHZhdCBudyI+PC9kaXY+PC9kaXY+PC9kaXY+JyxBeGlzOntwaXZvdHN4OiIiLHBpdm90c3k6IiIsYXhpc3g6IiJ9LFQ6e0JhcjonPGRpdiBjbGFzcz0icmJhciIgc3R5bGU9IndpZHRoOnsyfXB4OyIgdGl0bGU9InszfSI+ezF9PC9kaXY+JyxCYXJUaXA6Int0aW1lfVxue2R1cn1cbntyb3dzfSIsR3JhcGg6JzxzdmcgY2xhc3M9InJzdmciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgc3R5bGU9IndpZHRoOnsxfXB4O2hlaWdodDp7Mn1weDsiIHg9IjAiIHk9IjAiIHdpZHRoPSJ7MX0iIGhlaWdodD0iezJ9IiB2aWV3Qm94PSIwLCAwLCB7MX0sIHsyfSI+ezN9PC9zdmc+JyxUYWlsR3JhcGg6JzxkaXYgY2xhc3M9ImRpYiB2YXQgbWwzMCByYm91bmRzIHJncmFwaCBwYWxlYmciPjxkaXYgY2xhc3M9InJ0aW1lIj57Mn08L2Rpdj57MX08ZGl2IGNsYXNzPSJyY292ZXIiPjwvZGl2PjwvZGl2PicsTGluZTonPHBhdGggZD0iezF9IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iezJ9IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+JyxQaXZvdFg6JzxwYXRoIGQ9InsxfSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9InsyfSIgc3Ryb2tlLXdpZHRoPSIxIi8+JyxQaXZvdFk6JzxwYXRoIGQ9InsxfSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9InsyfSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIxLDEiLz4nLFBpdm90VGV4dDonPHRleHQ+PHRzcGFuIHg9InsxfSIgeT0iMTAiIGZvbnQtc2l6ZT0iMTAiIHhmaWxsPSIjNUU1RDUzIj57Mn08L3RzcGFuPjwvdGV4dD4nfX0sR2F1Z2U6e2lkOiJjdy5Db3VjaC5Nb25pdG9yLkdhdWdlIixwYXJhbXM6e3Jlc3R5bGU6NjB9LGluaGVyaXQ6WyJDZmciXSxkYXRhOntuYW1lOiJSb3ciLG1vZGU6IiIsbmFtZXM6W10sY29sb3JzOltdLGZpZWxkczpbXSxyb3dzOltdLHRpbWU6W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtiLmZpZWxkcy5sZW5ndGg9MSxiLnJvd3MubGVuZ3RoPTEseC5odG1sKGEuSFRNTCl9LHVpOnsiLmd2YWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9MDtyZXR1cm4gYj0iY3VycmVudCI9PXgubW9kZT8reC5yb3dzWzBdWzBdfHwwOngudGltZVsxXT8xMCooK3gucm93c1swXVsxXXx8MCkveC50aW1lWzFdOjAsKGIvPXguZGVub21pbmF0b3J8fDEpPDE/Yi5yb3VuZCgyKSsiIjpiPjk5JiZiPDFlND8oMHxiKSsiIjpiLnJvdW5kKDEpLm1ldHJpYygzLDMpLnJlcGxhY2UoLyhcZFxkXGQ/XC5cZClcZHsxLDJ9LywiJDEiKX19LCIuZ3VuaXRzIjp7YmluZDoidW5pdHMuMCJ9fSxIVE1MOic8ZGl2IGNsYXNzPSJnYmxvY2sgcHIxMCB3MTEwIGRpYiB2YXQiPjxkaXYgY2xhc3M9Imd2YWwgbzgwIG10LTEiPjwvZGl2PjxkaXYgY2xhc3M9Imd1bml0cyBvOTAiPjwvZGl2PjwvZGl2Pid9LHN0YW1wOjE2NDY4NzMwODUzMjB9fSksJChmdW5jdGlvbigpe3ZhciB4PW5ldyBVUkwobG9jYXRpb24uaHJlZiksYT14LnBhdGhuYW1lLnJlcGxhY2UoL15cLy8sIiIpLnNwbGl0KCIvIikucmV2ZXJzZSgpLm1hcChtKSxiPSJfZGVzaWduIj09YVsyXSxjPSJfcGhvdG9uIj09YVsxXSxkPWEuZnJvbShiPzQ6MykucmV2ZXJzZSgpLGU9e2Jhc2U6eC5vcmlnaW4rIi8iKyhkLmxlbmd0aD9kLm1hcChsKS5qb2luKCIvIikrIi8iOiIiKSxkYjphW2M/MTpiPzM6Ml0sZG9jOmM/Il9kZXNpZ24vcGhvdG9uIjpiPyJfZGVzaWduLyIrYVsxXTphWzFdfTskLm15Lm1vZGFsLnBhcmVudCgiI2N3LWJvZHkiKSwkKHdpbmRvdykub24oInJlc2l6ZSIsZnVuY3Rpb24oKXskKCIubXktbW9kYWwiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJsYXlvdXQiKX0pfS5kZWJvdW5jZSgzMCkpLHdpbmRvdy5jdy5tZT1mdW5jdGlvbih4KXt2YXIgYT0od2luZG93LkRET0N8fHt9KS5fbWV8fHtuYW1lOiIiLHJvbGVzOltdLGxvY2FsZToiZW4ifTtyZXR1cm4gbnVsbD09PXg/YTp2b2lkIDA9PT14P2EubmFtZTphW3hdfTt2YXIgZj13aW5kb3cuRERPQz0kLmV4dGVuZCh3aW5kb3cuRERPQyx7X2Jhc2U6ZS5iYXNlLF9kYjplLmRiLF9kb2M6ZS5kb2N9KTtyZXR1cm4gZygpLnRoZW4oaCkudGhlbihpKS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjb25zb2xlLmxvZyh4LGEsYiksY3cubGliLm5vdGUoIlBob3RvbiAxLjIwIGZhaWxlZCB0byBzdGFydCwgc2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiLCJlcnJvciIsM2U0KX0pLE9iamVjdC5rZXlzKGYuYXBwc3x8e30pLmZvckVhY2goZnVuY3Rpb24oeCl7JC5teS5jYWNoZShmLmFwcHNbeF0pfSksayh7Y3RybF96OmZ1bmN0aW9uKHgsYSl7aWYoIkJPRFkiPT14LnRhcmdldC5ub2RlTmFtZSl7dmFyIGI9JCgiI2wtYXBwcz4ubC1hcHA6bm90KC5oaWRlKSIpLm15KCJtYW5pZmVzdCIpLmNtZFVuZG87aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIpe3gucHJldmVudERlZmF1bHQoKTt0cnl7YigpfWNhdGNoKHgpe31yZXR1cm4hMX19fSxjdHJsX3M6ZnVuY3Rpb24oeCxhKXtpZigiQk9EWSI9PXgudGFyZ2V0Lm5vZGVOYW1lKXt2YXIgYj0kKCIjbC1hcHBzPi5sLWFwcDpub3QoLmhpZGUpIikubXkoIm1hbmlmZXN0IikuY21kU2F2ZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYil7eC5wcmV2ZW50RGVmYXVsdCgpO3RyeXtiKCl9Y2F0Y2goeCl7fXJldHVybiExfX19fSksdm9pZCAwO2Z1bmN0aW9uIGcoKXtyZXR1cm4gUS5hbGwoW2ooZS5iYXNlKyhlLmRiP2woZS5kYikrIi8iOiIiKStlLmRvYykudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZCghMCxmLE9iamVjdC5zZWxlY3QoeCwiX2lkIF9yZXYgbmFtZSBzdGFtcCBzZXR0aW5ncyB2ZXJzaW9uIHZlcnNpb25zIi5zcGxpdCgiICIpKSl9KSxqKGUuYmFzZSsiX3Nlc3Npb24iKS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKCEwLGYuX21lLHgudXNlckN0eHx8e30pfSldKS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhPWYuX21lO3JldHVybiBhLm5hbWU9YS5uYW1lfHwiIixhLnJvbGVzLmZvckVhY2goZnVuY3Rpb24oeCl7L15sYW5nXC1bYS16XXsyfSQvLnRlc3QoeCkmJihhLmxvY2FsZT14LnNwbGl0KCItIilbMV0sJC5teS5sb2NhbGUoYS5sb2NhbGUpKX0pLGZ9KX1mdW5jdGlvbiBoKCl7dHJ5e3ZhciB4PUpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJjdy5QaG90b24uQ2ZnIil8fCJ7fSIpLnRoZW1lfHwiIjsiYXV0byI9PXgmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/JCgiYm9keSIpLmFkZENsYXNzKCJ0aGVtZS1kYXJrIik6eCYmJCgiYm9keSIpLmFkZENsYXNzKCJ0aGVtZS0iK3gpfWNhdGNoKHgpe319ZnVuY3Rpb24gaSgpe3ZhciB4PWYucnVuLGE9W107cmV0dXJuIHguZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYj0kKHguY29udGFpbmVyKTthLnB1c2goYi5teSh4Lm1hbmlmZXN0LHguZGF0YXx8e30pKX0pLFEuYWxsKGEpfWZ1bmN0aW9uIGooeCl7cmV0dXJuICQuYWpheCgkLmV4dGVuZCh7bWV0aG9kOiJnZXQiLGRhdGFUeXBlOiJqc29uIixoZWFkZXJzOnthY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifSxjYWNoZTohMX0se3VybDp4fSkpfWZ1bmN0aW9uIGsoeCl7aWYoITE9PT14KXJldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGEpO3g9eHx8e307ZnVuY3Rpb24gYShhKXt2YXIgYj1bYS5zaGlmdEtleT8ic2hpZnQiOiIiLGEuY3RybEtleXx8YS5tZXRhS2V5PyJjdHJsIjoiIixhLmFsdEtleT8iYWx0IjoiIixTdHJpbmcuZnJvbUNoYXJDb2RlKGEua2V5Q29kZSkudG9Mb3dlckNhc2UoKV0uY29tcGFjdCghMCkuam9pbigiXyIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4W2JdKXJldHVybiB4W2JdKGEsYil9fWZ1bmN0aW9uIGwoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX1mdW5jdGlvbiBtKHgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoeCl9fSk7" }, "favicon.png": { "content_type": "image/png",