{"id":6402,"date":"2026-07-11T01:11:06","date_gmt":"2026-07-11T01:11:06","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-6-test-1-reading\/"},"modified":"2026-07-12T03:24:35","modified_gmt":"2026-07-12T03:24:35","slug":"celpip-set-6-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-6-test-1-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 6 \u00b7 Practice Test 1"},"content":{"rendered":"<div class=\"clpr-wrap\" id=\"clprWrap\">\n<section class=\"clpr-hero\">\n<div class=\"clpr-aurora\"><span><\/span><span><\/span><span><\/span><\/div>\n<div class=\"clpr-hero-badges\"> <span class=\"clpr-badge-brand\">AllEnglish4U<\/span> <span class=\"clpr-badge-set\">CELPIP General &middot; Set 6<\/span> <\/div>\n<h1>Reading Practice Test 1<\/h1>\n<p class=\"clpr-hero-sub\">4 parts &middot; 38 questions &middot; about 55 minutes. Read each passage and choose the best option for every drop-down. Official Paragon question set with verified answer key.<\/p>\n<div class=\"clpr-hero-chips\"> <span class=\"clpr-chip\">Part 1 &middot; Correspondence<\/span> <span class=\"clpr-chip\">Part 2 &middot; Apply a Diagram<\/span> <span class=\"clpr-chip\">Part 3 &middot; Information<\/span> <span class=\"clpr-chip\">Part 4 &middot; Viewpoints<\/span> <\/div>\n<p> <button class=\"clpr-cta\" id=\"clprStart\">Start the Reading Test<\/button> <\/section>\n<div class=\"clpr-toolbar\" id=\"clprToolbar\" hidden> <span class=\"clpr-score-chip\" id=\"clprScoreChip\">0 \/ 38 answered<\/span> <span class=\"clpr-toolbar-spacer\"><\/span> <button class=\"clpr-tbtn\" id=\"clprReset\">Reset<\/button> <button class=\"clpr-tbtn clpr-tbtn-check\" id=\"clprCheck\">Check answers<\/button> <\/div>\n<div class=\"clpr-sim\" id=\"clprSim\" hidden>\n<div class=\"clpr-dots\" id=\"clprDots\"><\/div>\n<div class=\"clpr-cat\" id=\"clprCat\"><\/div>\n<\/p><\/div>\n<div class=\"clpr-results\" id=\"clprResults\" hidden><\/div>\n<\/p><\/div>\n<p><script>eval(atob(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgTXIuIFN0ZXZlbnMsPC9wPjxwPkkgYW0gd3JpdGluZyBpbiByZXNwb25zZSB0byB5b3VyIGFydGljbGUgdGhhdCBhcHBlYXJlZCBpbiB0aGUgQXByaWwgMjJuZCBlZGl0aW9uIG9mIHRoZSBWYW5jb3V2ZXIgU3VuLiBJbiB5b3VyIGFydGljbGUsIHlvdSBzdWdnZXN0ZWQgdGhhdCBwZW9wbGUgZG8gbm90IHRha2UgcHVibGljIHRyYW5zaXQgdG8gZ2V0IHRvIHdvcmsgYmVjYXVzZSBvZiBpbmZyZXF1ZW50IHNlcnZpY2UuIFlvdSB1c2VkIHRoZSBleGFtcGxlIG9mIGhvdywgcmVjZW50bHksIHlvdSBoYWQgdG8gd2FpdCAyNSBtaW51dGVzIGZvciBhIGJ1cyB0byB0aGUgZG93bnRvd24gYXJlYS4gQXMgYSB0cmFuc2l0IG9wZXJhdG9yLCBJIGNhbiBhc3N1cmUgeW91IHRoYXQgaW5jaWRlbnRzIHN1Y2ggYXMgeW91cnMgYXJlIHJhcmVseSB0aGUgZmF1bHQgb2YgdGhlIGJ1cyBzZXJ2aWNlLiBQZXJoYXBzIHRoZSBmb2N1cyBvZiB5b3VyIGZydXN0cmF0aW9uIHNob3VsZCBiZSBkaXJlY3RlZCB0byBjaXR5IHBsYW5uaW5nIG9mZmljaWFscyBhbmQgcmVzaWRlbnRzJnJzcXVvOyBjb21tdXRpbmcgaGFiaXRzLjwvcD48cD5CdXNlcyBkZXBhcnQgZnJvbSB0aGVpciBmaXJzdCBzdGF0aW9uIGF0IGEgcGFydGljdWxhciB0aW1lLCBhbmQgdGhlIHNjaGVkdWxlIG9mIHN0b3BzIGFsb25nIHRoZSByb3V0ZSBpcyBhcHByb3hpbWF0ZWx5IGNhbGN1bGF0ZWQgdG8gYmUgY29ycmVjdC4gSG93ZXZlciwgdmFyaW91cyBmYWN0b3JzIGNhbiBpbnRlcmZlcmUgd2l0aCB0aGUgc2NoZWR1bGUuIFRoZSBidXMgbWF5IGJlIGRlbGF5ZWQgYmVjYXVzZSBvZiBleGNlcHRpb25hbGx5IGhlYXZ5IHJvYWR3YXkgY29uZ2VzdGlvbiBvciBhY2NpZGVudHMuPC9wPjxwPkkgaGF2ZSBiZWVuIHdvcmtpbmcgZm9yIHRoZSBSZWdpb25hbCBUcmFuc2l0IFN5c3RlbSBmb3IgMTAgeWVhcnMuIFdoZW4gSSBmaXJzdCBzdGFydGVkLCB0aGVyZSB3ZXJlIG5vdCBlbm91Z2ggYnVzZXMgb3BlcmF0aW5nIHRvIG1lZXQgY29tbXV0ZXIgbmVlZHMuIEhvd2V2ZXIsIHRoaW5ncyBoYXZlIGltcHJvdmVkIGdyZWF0bHkgaW4gdGhlIHBhc3QgZmV3IHllYXJzLiBUaGV5IGhhdmUgaW5jcmVhc2VkIHRoZSBudW1iZXIgb2YgYnVzZXMgYW5kIHRoZSBmcmVxdWVuY3kgb2Ygc2VydmljZS4gQXMgd2VsbCwgdGhleSBoYXZlIGludHJvZHVjZWQgbmV3IGJ1cyByb3V0ZXMgZnJvbSBzZXZlcmFsIFZhbmNvdXZlciBzdWJ1cmJzIGludG8gdGhlIGRvd250b3duIGNvcmUuIER1cmluZyBwZWFrIGhvdXJzIChNb25kYXkgdG8gRnJpZGF5IGZyb20gNzozMCBhLm0uIHRvIDk6MzAgYS5tLiBhbmQgNDozMCBwLm0uIHRvIDc6MDAgcC5tLiksIHdlIGRvdWJsZSB0aGUgbnVtYmVyIG9mIGJ1c2VzIGluIG9wZXJhdGlvbi4gSW4gZmFjdCwgaW4gR3JlYXRlciBWYW5jb3V2ZXIsIHRoZSB0eXBpY2FsIHdhaXRpbmcgdGltZSBmb3IgYSBidXMgY29tbXV0ZXIgZHVyaW5nIHBlYWsgaG91cnMgbm93IGF2ZXJhZ2VzIDQgdG8gOCBtaW51dGVzLCBtdWNoIGxvd2VyIHRoYW4gb3RoZXIgY2l0aWVzIHN1Y2ggYXMgQ2FsZ2FyeSBhbmQgRWRtb250b24uPC9wPjxwPkkgYXNzdXJlIHlvdSB0aGF0IHRoZSBtYWluIHByb2JsZW0gaW4gcHVibGljIHRyYW5zaXQgdG9kYXkgaXMgdGhhdCB3ZSBhcmUgc2V2ZXJlbHkgb3V0bnVtYmVyZWQgYnkgc2luZ2xlLXBhc3NlbmdlcnMmcnNxdW87IHByaXZhdGVseS1vd25lZCB2ZWhpY2xlcy4gRGVzcGl0ZSBpbmNlbnRpdmVzIHRvIGVuY291cmFnZSBwdWJsaWMgdHJhbnNwb3J0LCBzdWNoIGFzIGFmZm9yZGFibGUgcHJpY2VzIGFuZCBmcmVlIHBhcmtpbmcgbG90cyBhdCB0aGUgc3RhdGlvbnMsIHRoZSBudW1iZXIgb2YgY2FycyBvbiB0aGUgcm9hZCBzdWdnZXN0cyB0aGUgcHVibGljIHN0aWxsIGZpbmRzIGl0IG1vcmUgY29udmVuaWVudCB0byBkcml2ZSB0byB3b3JrLiBIb3dldmVyLCBpZiB0aGV5IGNvbnNpZGVyZWQgdGhlIGZpbmFuY2lhbCBjb3N0cyBvZiBkcml2aW5nLCBhcyB3ZWxsIGFzIHRoZSBlZmZlY3Qgb2YgY2FyIGV4aGF1c3Qgb24gdGhlIGVudmlyb25tZW50LCB0aGV5IHdvdWxkIGZpbmQgdGhhdCBwdWJsaWMgdHJhbnNpdCBvZmZlcnMgYSBwcmFjdGljYWwgYW5kIHdvcnRod2hpbGUgYWx0ZXJuYXRpdmUsIG5vdCB0byBtZW50aW9uIHRoYXQgaXQgd291bGQgYWxsb3cgeW91IHRvIGFycml2ZSB0byB3b3JrIG9uIHRpbWUuPC9wPjxwPlNpbmNlcmVseSw8YnI+RWQgSG9vcGVyPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIG1lc3NhZ2UuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6Ik1yLiBTdGV2ZW5zXHUyMDE5IG9waW5pb24gd2FzIGJhc2VkIG9uIiwib3B0aW9ucyI6WyJleHBlcnQgb3BpbmlvbnMuIiwiYSBwZXJzb25hbCBleHBlcmllbmNlLiIsInB1YmxpYyBpbnRlcnZpZXdzLiIsImEgY2l0eSBwbGFubmluZyBzdHVkeS4iXSwia2V5IjoyfSx7Im4iOjIsInByZSI6Ik1yLiBTdGV2ZW5zIHJlY2VpdmVkIHRoaXMgbGV0dGVyIGJlY2F1c2UgaGUiLCJvcHRpb25zIjpbIndyb3RlIGFuIGFydGljbGUgZm9yIGEgbG9jYWwgcGFwZXIuIiwid29ya3MgaW4gdGhlIGNpdHkgcGxhbm5pbmcgZGVwYXJ0bWVudC4iLCJ3cm90ZSBhIGxldHRlciBvZiBjb21wbGFpbnQgdG8gTXIuIEhvb3Blci4iLCJpcyBvbmUgb2YgdGhlIGNpdHlcdTIwMTlzIHRyYW5zaXQgc3lzdGVtIGV4cGVydHMuIl0sImtleSI6MX0seyJuIjozLCJwcmUiOiJFZCBIb29wZXIgYmVsaWV2ZXMgbGF0ZSBidXNlcyBhcmUgY2F1c2VkIGJ5Iiwib3B0aW9ucyI6WyJ0b28gbXVjaCB0cmFmZmljLiIsIm1pc3Rha2VzIGluIGJ1cyBzY2hlZHVsZXMuIiwiYmFkIHJvdXRlIHBsYW5uaW5nLiIsInBvb3JseSB0cmFpbmVkIGJ1cyBkcml2ZXJzLiJdLCJrZXkiOjF9LHsibiI6NCwicHJlIjoiQWNjb3JkaW5nIHRvIEVkLCB0cmFuc2l0IHNlcnZpY2VzIiwib3B0aW9ucyI6WyJpbXByb3ZlZCBvbmx5IGluIHN1YnVyYmFuIGFyZWFzLiIsImFyZSBsZWFybmluZyBmcm9tIG90aGVyIGNpdGllcy4iLCJhcmUgbGVzcyBwb3B1bGFyIHRoYW4gcHJpdmF0ZSBjYXJzLiIsIm5lZWQgbW9yZSByb3V0ZXMgdG8gdGhlIGRvd250b3duIGNvcmUuIl0sImtleSI6M30seyJuIjo1LCJwcmUiOiJNci4gSG9vcGVyIHRoaW5rcyBwdWJsaWMgdHJhbnNwb3J0IGlzIGJldHRlciBiZWNhdXNlIiwib3B0aW9ucyI6WyJpdCBpcyBzYWZlciB0aGFuIGRyaXZpbmcgaW4gdGhlIHdpbnRlci4iLCJidXNlcyBjb25uZWN0IHRoZSBjaXR5IHdpdGggdGhlIGNvdW50cnlzaWRlLiIsIml0XHUyMDE5cyBtb3JlIGVudmlyb25tZW50YWxseSBmcmllbmRseS4iLCJ0aGUgbnVtYmVyIG9mIGNvbW11dGVycyBoYXMgaW5jcmVhc2VkIGdyZWF0bHkuIl0sImtleSI6M30seyJuIjo2LCJwcmUiOiJIb3cgZG9lcyBSZWdpb25hbCBUcmFuc2l0IFNlcnZpY2VzIHRyeSB0byBrZWVwIGJ1c2VzIG9uIHRpbWU\/Iiwib3B0aW9ucyI6WyJyZWR1Y2luZyB0aGUgbnVtYmVyIG9mIGJ1cyBzdG9wcyBvbiB0aGUgcm91dGUiLCJtYWtpbmcgc3VyZSBidXNlcyBzdGFydCB0aGUgcm91dGUgb24gdGltZSIsInJlZHVjaW5nIHRoZSBudW1iZXIgb2YgY2FycyBvbiB0aGUgcm9hZCIsImltcHJvdmluZyB0aGUgdHJhbnNpdCBzZXJ2aWNlIGNvbXB1dGVyIHN5c3RlbXMiXSwia2V5IjoyfV19LHsidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJIZXJlIGlzIGEgcmVzcG9uc2UgdG8gdGhlIG1lc3NhZ2UuIENvbXBsZXRlIHRoZSByZXNwb25zZSBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwiYm9keSI6WyJJIGNvbXBsZXRlbHkgYWdyZWUgd2l0aCBNci4gSG9vcGVyIHRoYXQgYnVzIGRyaXZlcnMgYW5kIG90aGVyIHRyYW5zaXQgd29ya2VycyAiLHsiYiI6Nywib3B0aW9ucyI6WyJzaG91bGQgdGFrZSBjaGFyZ2UiLCJhcmUgb2Z0ZW4gdW5yZWxpYWJsZSIsInNob3cgZ3JlYXQgcHJvbWlzZSIsImFpbSB0byBiZSBvbiB0aW1lIl0sImtleSI6NH0sIi4gSSBhbHNvIGFncmVlIHRoYXQgYnVzIHNlcnZpY2VzICIseyJiIjo4LCJvcHRpb25zIjpbImhhdmUgZGV0ZXJpb3JhdGVkIiwiYXJlIGluY29udmVuaWVudCIsImhhdmUgZ290dGVuIGJldHRlciIsImFyZSB0b28gc2xvdyJdLCJrZXkiOjN9LCIsIGF0IGxlYXN0IGluIHNvbWUgcGxhY2VzLiBIb3dldmVyLCBNci4gSG9vcGVyIG5lZWRzIHRvIGFwcHJlY2lhdGUgdGhpcyBwcm9ibGVtIGZyb20gdGhlIHBhc3Nlbmdlclx1MjAxOXMgcG9pbnQgb2Ygdmlldy4gQWx0aG91Z2ggaXQgaXMgdHJ1ZSB0aGF0IHRoZXJlIGFyZSBhIGxvdCBtb3JlICIseyJiIjo5LCJvcHRpb25zIjpbInJvYWRzIiwiYnVzZXMiLCJhY2NpZGVudHMiLCJ0cmFpbnMiXSwia2V5IjoyfSwiIG5vdywgdGhlcmUgYXJlIGEgbG90IG1vcmUgcGVvcGxlLCB0b28uIFNvbWV0aW1lcyBJIGNhblx1MjAxOXQgZXZlbiBnZXQgb24gYmVjYXVzZSBpdCBpcyBmdWxsLiBJdFx1MjAxOXMgbmljZSB0byBzZWUgcmVjZW50IGltcHJvdmVtZW50cyBzdWNoIGFzICIseyJiIjoxMCwib3B0aW9ucyI6WyJiaWdnZXIgYnVzZXMiLCJkaXNjb3VudGVkIGJ1cyB0aWNrZXRzIiwiY2FyIHBvb2wgcHJvZ3JhbXMiLCJleHBhbmRlZCBzZXJ2aWNlcyJdLCJrZXkiOjR9LCIuIEhvd2V2ZXIsIG1vcmUgbmVlZHMgdG8gYmUgZG9uZSwgYXMgaW4gc29tZSBhcmVhcywgc2VydmljZSBzdGlsbCBuZWVkcyBpbXByb3ZlbWVudC5cblxuSSBkb25cdTIwMTl0IGJsYW1lIHRoZSBidXMgZHJpdmVycywgYnV0IHRoZSBSZWdpb25hbCBUcmFuc2l0IFN5c3RlbSBpcyB1bnJlbGlhYmxlLiBBbHRob3VnaCBJIGFncmVlIHdpdGggTXIuIEhvb3BlciB0aGF0IHRha2luZyBhIGJ1cyBtYXkgYmUgIix7ImIiOjExLCJvcHRpb25zIjpbIm11Y2ggbW9yZSBpbnRlcmVzdGluZyIsImxlc3MgdGltZSBjb25zdW1pbmciLCJmYXIgbGVzcyBjb3N0bHkiLCJtdWNoIG1vcmUgY29udmVuaWVudCJdLCJrZXkiOjN9LCIgdGhhbiBkcml2aW5nLCBJIHRoaW5rIHRoYXQgbWFueSBwZW9wbGUgbGlrZWx5IHByZWZlciBjb21mb3J0LiBEcml2aW5nIG1pZ2h0IGJlIHRoZSBvbmx5IG9wdGlvbi4iXX1dfSx7ImlkIjoyLCJuYW1lIjoiUmVhZGluZyBQYXJ0IDI6IFJlYWRpbmcgdG8gQXBwbHkgYSBEaWFncmFtIiwidGltZSI6IjggbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBkaWFncmFtLiIsImh0bWwiOiI8c3R5bGU+LmFlLWNsZmx5e2JvcmRlcjoxcHggc29saWQgI2NiZDVlMTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE0cHg7YmFja2dyb3VuZDojZmZmfS5hZS1jbGhlYWR7YmFja2dyb3VuZDojMmY4NmM5O2NvbG9yOiNmZmY7cGFkZGluZzoxMnB4IDE0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLWNsaGVhZCBoM3ttYXJnaW46MDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtc3R5bGU6aXRhbGljO2xldHRlci1zcGFjaW5nOi41cHh9LmFlLWNsZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjFweDtiYWNrZ3JvdW5kOiNjYmQ1ZTF9LmFlLWNsYm94e2JhY2tncm91bmQ6I2YyZjdmYjtwYWRkaW5nOjEwcHggMTJweH0uYWUtY2xib3ggaDR7bWFyZ2luOjAgMCA2cHg7Y29sb3I6IzFkNWY5Njtmb250LXNpemU6MTVweH0uYWUtY2xib3ggcHttYXJnaW46MCAwIDZweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjQ1fS5hZS1jbGF2e21hcmdpbjo2cHggMCAycHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzVjN2ExZTtmb250LXdlaWdodDpib2xkfS5hZS1jbHNlc3ttYXJnaW46MCAwIDRweDtmb250LXNpemU6MTNweDtjb2xvcjojNmI3YzNmfS5hZS1hbHJ0e21hcmdpbjo0cHggMCAwO2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6I2IyM2IzYjtmb250LXN0eWxlOml0YWxpY30uYWUtdnRhZ3tjb2xvcjojNjlhNDY5O2ZvbnQtd2VpZ2h0OmJvbGR9LmFlLWF0YWd7Y29sb3I6I2Q5ODM4Mztmb250LXdlaWdodDpib2xkfS5hZS1jbGZvb3R7cGFkZGluZzoxMHB4IDE0cHg7Zm9udC1zaXplOjEzcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NiZDVlMX0uYWUtY2xmb290IHB7bWFyZ2luOjAgMCA2cHh9QG1lZGlhKG1heC13aWR0aDo1NjBweCl7LmFlLWNsZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfX08L3N0eWxlPjxkaXYgY2xhc3M9XCJhZS1jbGZseVwiPjxkaXYgY2xhc3M9XCJhZS1jbGhlYWRcIj48aDM+Q0hFRiBMRUUmcnNxdW87UyBDT09LSU5HIENMQVNTRVM8L2gzPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1jbGdyaWRcIj48ZGl2IGNsYXNzPVwiYWUtY2xib3hcIj48aDQ+QXV0aGVudGljIEluZGlhbiBDdWlzaW5lIEk8L2g0PjxwPlVubG9jayB0aGUgZmxhdm91cnMgb2YgdHJ1bHkgYXV0aGVudGljIEluZGlhbiBjb29raW5nISBJIHdpbGwgZm9jdXMgb24gdGhlIGtleSB0ZWNobmlxdWVzIHRoYXQgbWFrZSBhcm9tYXRpYyBJbmRpYW4gZm9vZC48L3A+PHAgY2xhc3M9XCJhZS1jbGF2XCI+Q2xhc3NlcyBBdmFpbGFibGU6PC9wPjxwIGNsYXNzPVwiYWUtY2xzZXNcIj5UdWUsIEZlYiAxMSwgNjowMCBwLm0uIC0gOTowMCBwLm0uICZuYnNwOygkOTApPGJyPk1vbiwgQXByIDcsIDY6MDAgcC5tLiAtIDk6MDAgcC5tLiAmbmJzcDsoJDkwKTxicj5Nb24sIEFwciAxNCwgNjowMCBwLm0uIC0gOTowMCBwLm0uICZuYnNwOygkNzUpPC9wPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1jbGJveFwiPjxoND5EZWxpZ2h0cyBvZiBNb3JvY2NvPC9oND48cD5JbnNwaXJlZCBieSBhIHJlY2VudCBjdWxpbmFyeSB0b3VyIG9mIE1vcm9jY28sIEkgaGF2ZSBwdXQgdG9nZXRoZXIgYSBjb29raW5nIGNsYXNzIHNob3djYXNpbmcgdGhlIGhpZ2hsaWdodHMgb2YgdGhpcyByZWdpb24uIEZ1bGwgbWVhbCBhbmQgcmVjaXBlIGJvb2tsZXQgaW5jbHVkZWQuPC9wPjxwIGNsYXNzPVwiYWUtY2xhdlwiPkNsYXNzZXMgQXZhaWxhYmxlOjwvcD48cCBjbGFzcz1cImFlLWNsc2VzXCI+U3VuLCBGZWIgMTYsIDU6MDAgcC5tLiAtIDg6MDAgcC5tLiAmbmJzcDsoJDYwKTwvcD48cCBjbGFzcz1cImFlLWFscnRcIj48c3BhbiBjbGFzcz1cImFlLWF0YWdcIj5BPC9zcGFuPiBBbGxlcmd5IEFsZXJ0OiBhbG1vbmRzLCBjYXNoZXdzIChjYW4gYmUgbGVmdCBvdXQgb2YgaW5kaXZpZHVhbCBwb3J0aW9ucyk8L3A+PC9kaXY+PGRpdiBjbGFzcz1cImFlLWNsYm94XCI+PGg0PkF1dGhlbnRpYyBJbmRpYW4gQ3Vpc2luZSBJLCBWZWdldGFyaWFuPC9oND48cD5UaGlzIGNsYXNzIGlzIHBlcmZlY3QgZm9yIHRob3NlIHdobyBsb3ZlIGN1cnJ5IGJ1dCBkb24mcnNxdW87dCBlYXQgbWVhdC4gSGlnaGxpZ2h0cyBvZiB0b25pZ2h0JnJzcXVvO3MgYWxsLXZlZ2V0YXJpYW4gbWVudSBpbmNsdWRlIGZyYWdyYW50IHRvbWF0byBjdXJyeSB3aXRoIGJhc21hdGkgcmljZS4gRnVsbCBtZWFsIGluY2x1ZGVkLjwvcD48cD48c3BhbiBjbGFzcz1cImFlLXZ0YWdcIj5WPC9zcGFuPjwvcD48cCBjbGFzcz1cImFlLWNsYXZcIj5DbGFzc2VzIEF2YWlsYWJsZTo8L3A+PHAgY2xhc3M9XCJhZS1jbHNlc1wiPlR1ZSwgRmViIDExLCA2OjAwIHAubS4gLSA5OjAwIHAubS4gJm5ic3A7KCQ3MCk8YnI+TW9uLCBBcHIgNywgNjowMCBwLm0uIC0gOTozMCBwLm0uICZuYnNwOygkOTApPC9wPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1jbGJveFwiPjxoND5TcGFuaXNoIEN1aXNpbmU8L2g0PjxwPkJ5IHBvcHVsYXIgZGVtYW5kISBEZWxpY2lvdXMgU3BhbmlzaCB0YXBhcywgYXV0aGVudGljIHNlYWZvb2QgcGFlbGxhLCBtb3V0aHdhdGVyaW5nIHZlZ2V0YWJsZXMsIGFuZCBkZXNzZXJ0cyB3aWxsIGJlIG9uIHRoZSBtZW51IGFzIHdlIGV4cGxvcmUgc29tZSBvZiB0aGUgaGlnaGxpZ2h0cyBvZiBTcGFuaXNoIGN1aXNpbmUuIEZ1bGwgbWVhbCBhbmQgcmVjaXBlIGJvb2tsZXQgaW5jbHVkZWQuPC9wPjxwIGNsYXNzPVwiYWUtYWxydFwiPjxzcGFuIGNsYXNzPVwiYWUtYXRhZ1wiPkE8L3NwYW4+IEFsbGVyZ3kgQWxlcnQ6IFRoaXMgbWVhbCBjb250YWlucyBzaHJpbXA8L3A+PHAgY2xhc3M9XCJhZS1jbGF2XCI+Q2xhc3NlcyBBdmFpbGFibGU6PC9wPjxwIGNsYXNzPVwiYWUtY2xzZXNcIj5Nb24sIEphbiAyNywgNjowMCBwLm0uIC0gOTowMCBwLm0uICZuYnNwOygkOTApPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1jbGZvb3RcIj48cD48c3Ryb25nPkxvY2F0aW9uOjwvc3Ryb25nPiBBbGwgY2xhc3NlcyB0YWtlIHBsYWNlIGF0IEdlc2lja2kgUmVjcmVhdGlvbiBDZW50cmUsIDM0MjEgRWRtb25kIFN0LiwgQnVybmFieSwgVjVIIDVWMzwvcD48cD5HbyB0byBteSB3ZWJzaXRlIDxzdHJvbmc+d3d3LmNoZWZsZWVjb29raW5nLmNhPC9zdHJvbmc+IHRvIGVudGVyIGEgY29udGVzdCBhbmQgV0lOIGEgbWVhbCBmb3IgdHdvIGF0IDxlbT5UaGUgQm9tYmF5IEN1cnJ5IEhvdXNlPC9lbT4uIFlvdSB3aWxsIGFsc28gZmluZCBtb3JlIHJlY2lwZXMgYW5kIGNvb2tpbmcgdGlwcy48L3A+PHA+PHNwYW4gY2xhc3M9XCJhZS1hdGFnXCI+QTwvc3Bhbj4gUG9zc2libGUgcmlzayBvZiBhbGxlcmdpYyByZWFjdGlvbiBmcm9tIGluZ3JlZGllbnRzPGJyPjxzcGFuIGNsYXNzPVwiYWUtdnRhZ1wiPlY8L3NwYW4+IE9ubHkgdXNlcyB2ZWdldGFyaWFuIGluZ3JlZGllbnRzPC9wPjwvZGl2PjwvZGl2PiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsIG1lc3NhZ2UgYWJvdXQgdGhlIGRpYWdyYW0gb24gdGhlIGxlZnQuIENvbXBsZXRlIHRoZSBlbWFpbCBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwiYm9keSI6WyJUbzogPGpqb2huQHdvcmxkbWFpbC5jb20+XG5Gcm9tOiA8Z2plbnNvbkB3b3JsZG1haWwuY29tPlxuU3ViamVjdDogQ29va2luZyBDbGFzc2VzXG5cbkhpIEpvaGFubmEsXG5cbkhlcmVcdTIwMTlzIGEgbGluayB0byB0aGUgaW5mbyBvbiB0aG9zZSBjbGFzc2VzIGJ5IHRoZSBjaGVmIHdob1x1MjAxOXMganVzdCBiZWVuIHRvICIseyJiIjoxLCJvcHRpb25zIjpbIk1vcm9jY28iLCJNZXhpY28iLCJTcGFpbiIsIkluZGlhIl0sImtleSI6MX0sIi4gSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGZ1biBpZiB3ZSB0b29rIGEgY2xhc3MgdG9nZXRoZXIuIElmIGl0IGRvZXNuXHUyMDE5dCBtYXR0ZXIgdG8geW91IHdoaWNoIG9uZSwgbWF5YmUgd2Ugc2hvdWxkIGp1c3QgcGljayAiLHsiYiI6Miwib3B0aW9ucyI6WyJWZWdldGFyaWFuIEluZGlhbiBDdWlzaW5lIiwiQXV0aGVudGljIEluZGlhbiBDdWlzaW5lIiwiRGVsaWdodHMgb2YgTW9yb2NjbyIsIlNwYW5pc2ggQ3Vpc2luZSJdLCJrZXkiOjN9LCIgYmVjYXVzZSB3ZSBib3RoIGxvdmUgY29va2luZyB3aXRoIG51dHMhIE9mIGNvdXJzZSwgSSBjb3VsZCB0YWtlIHRoZSBtZWF0IGN1cnJ5IGNsYXNzIHdoaWxlIHlvdSB0YWtlIHRoZSB2ZWdldGFyaWFuIHZlcnNpb24sIGFsdGhvdWdoIHRoZSBzY2hlZHVsaW5nIG9mIHRoZXNlIHR3byBjbGFzc2VzIG1ha2VzIG1lIHdvbmRlciBpZiBDaGVmIExlZSBpcyBhY3R1YWxseSAiLHsiYiI6Mywib3B0aW9ucyI6WyJnb2luZyB0byBlbmQgdGhlIGNsYXNzIG9uIHRpbWUiLCJwbGFubmluZyB0byBjYW5jZWwgQXByaWwgMTR0aCIsInVzaW5nIHF1YWxpdHkgaW5ncmVkaWVudHMiLCJ0ZWFjaGluZyBib3RoIG9mIHRoZW0iXSwia2V5Ijo0fSwiLiBJbiBhbnkgY2FzZSwgaWYgd2Ugd2VudCB3aXRoIHRoaXMgcGxhbiBvbiBGZWJydWFyeSAxMXRoLCB5b3VyIGNsYXNzIGFuZCBtaW5lIHdvdWxkIGVuZCAiLHsiYiI6NCwib3B0aW9ucyI6WyJpbiBhIGRlbGljaW91cyBmdWxsIGNvdXJzZSBtZWFsIiwiYXQgcHJldHR5IG11Y2ggdGhlIHNhbWUgdGltZSIsInVwIGNvc3RpbmcgdXMgdGhlIHNhbWUgYW1vdW50Iiwid2l0aGluIGhhbGYgYW4gaG91ciBvZiBlYWNoIG90aGVyIl0sImtleSI6Mn0sIi4gSWYgd2Ugd2FudGVkIHNvbWV0aGluZyBlYXJsaWVyIGluIHRoZSB5ZWFyLCB0aG91Z2gsIHRoZXJlXHUyMDE5cyB0aGUgIix7ImIiOjUsIm9wdGlvbnMiOlsiTW9yb2NjYW4iLCJJbmRpYW4iLCJTcGFuaXNoIiwiVmVnZXRhcmlhbiJdLCJrZXkiOjN9LCIgY29va2luZyBjbGFzcyB3aGljaCBzdGFydHMgYSB3ZWVrIG9yIHR3byBlYXJsaWVyIHRoYW4gdGhlIG90aGVycy5cblxuT3ZlciB0byB5b3UsXG5cbkdpbmEiXX0seyJ0eXBlIjoic3RlbWxpc3QiLCJpbnN0ciI6IlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbi4iLCJpdGVtcyI6W3sibiI6NiwicHJlIjoiR2luYSBzZWVrcyBKb2hhbm5hXHUyMDE5cyIsIm9wdGlvbnMiOlsiYXNzaXN0YW5jZS4iLCJwZXJtaXNzaW9uLiIsImFkdmljZS4iLCJpbnB1dC4iXSwia2V5Ijo0fSx7Im4iOjcsInByZSI6IlRoZSBvdmVyYWxsIGdvYWwgb2YgdGhlIG1lc3NhZ2UgaXMgdG8iLCJvcHRpb25zIjpbImNvbW11bmljYXRlIGEgZGVjaXNpb24uIiwic2NoZWR1bGUgYW4gYXBwb2ludG1lbnQuIiwiZGlzY3VzcyBhIHBvc3NpYmlsaXR5LiIsImV4cHJlc3MgYSBwcmVmZXJlbmNlLiJdLCJrZXkiOjN9LHsibiI6OCwicHJlIjoiR2luYSBhcHBlYXJzIHRvIGJlIiwib3B0aW9ucyI6WyJzZXJpb3VzLiIsImRlbWFuZGluZy4iLCJpbnRlcmVzdGVkLiIsInJlbHVjdGFudC4iXSwia2V5IjozfV19XX0seyJpZCI6MywibmFtZSI6IlJlYWRpbmcgUGFydCAzOiBSZWFkaW5nIGZvciBJbmZvcm1hdGlvbiIsInRpbWUiOiI5IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgcGFzc2FnZS4iLCJodG1sIjoiPHA+PHN0cm9uZz5BLjwvc3Ryb25nPiBcIlNub3diaXJkc1wiIGFyZSBjaGFyYWN0ZXJpc3RpYyBvZiwgYW5kIHBlcmhhcHMgZXZlbiB1bmlxdWUgdG8sIENhbmFkYS4gVGhlIHRlcm0gcmVmZXJzIG5vdCBvbmx5IHRvIGJpcmRzIHdobyBwcmVmZXIgdG8gYXZvaWQgdGhlIGZyaWdpZCB3ZWF0aGVyIGJ5IG1pZ3JhdGluZyBzb3V0aCwgYnV0IHRvIHBlb3BsZSwgbW9zdCB0eXBpY2FsbHkgcmV0aXJlZXMsIHdobyBkbyB0aGUgc2FtZS4gU2luY2UgQ2FuYWRpYW4gY2l0aXplbnMgYXJlIGFsbG93ZWQgdG8gcmVzaWRlIGluIHRoZSBVbml0ZWQgU3RhdGVzIGZvciBhIG1heGltdW0gb2YgMTgyIGRheXMgZHVyaW5nIGEgMTItbW9udGggcGVyaW9kLCBtYW55IHRha2UgYWR2YW50YWdlIG9mIHRoaXMgZXZlcnkgTm92ZW1iZXIgYnkgaGVhZGluZyBzb3V0aCB1bnRpbCBzcHJpbmcuIEZsb3JpZGEgaXMgcGVyaGFwcyB0aGUgbW9zdCBwb3B1bGFyIFVTIGRlc3RpbmF0aW9uIGZvciBzbm93YmlyZHMsIGJ1dCBvdGhlcnMgY2hvb3NlIHRvIHNwZW5kIHRoZSB3aW50ZXIgbW9udGhzIGluIFNvdXRoIENhcm9saW5hLCBHZW9yZ2lhLCBvciBBcml6b25hLjwvcD48cD48c3Ryb25nPkIuPC9zdHJvbmc+IFRob3VnaCBzZWVtaW5nbHkgaWRlYWwgdG8gbW9zdCBDYW5hZGlhbnMsIHRoZSBtYWluIGRyYXdiYWNrIG9mIHRoaXMgbGlmZXN0eWxlIGlzIHRoZSBleHBlbnNlIG9mIGJlaW5nIGEgc25vd2JpcmQuIEZpcnN0LCB0aGVyZSBpcyB0aGUgY29zdCBvZiB0aGUgdHJpcC4gU25vd2JpcmRzIHdobyBkcml2ZSB0byBzdW5ueSBVUyBkZXN0aW5hdGlvbnMgZWFjaCB5ZWFyIG11c3QgY29uc2lkZXIgdGhlIGNvc3Qgb2YgZnVlbCBhbmQsIGR1ZSB0byB0aGUgZGlzdGFuY2UgaW52b2x2ZWQsIHR5cGljYWxseSB0aGUgY29zdCBvZiBhdCBsZWFzdCBvbmUgbmlnaHQgaW4gYSBob3RlbC4gU29tZSBzbm93YmlyZHMgdHJhdmVsIGJ5IG1vdG9yaG9tZSB0byBhdm9pZCBob3RlbHMsIHRob3VnaCB3aGF0IGlzIHNhdmVkIGluIGFjY29tbW9kYXRpb24gY29zdHMgaXMgb2Z0ZW4gbWFkZSB1cCBmb3IgaW4gaGlnaGVyIGdhcyBzcGVuZGluZy4gU25vd2JpcmRzIHdobyBwcmVmZXIgdG8gZmx5IG11c3QgY29uc2lkZXIgdGhlIGNvc3Qgb2YgdGhlIHBsYW5lIHRpY2tldCwgYXMgd2VsbCBhcyB0aGUgYWRkZWQgZXhwZW5zZSBvZiByZW50aW5nIGEgdmVoaWNsZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZWlyIHN0YXkuPC9wPjxwPjxzdHJvbmc+Qy48L3N0cm9uZz4gVGhlIHNlY29uZCBhbmQgbW9zdCBjb25zaWRlcmFibGUgZXhwZW5zZSByZWxhdGVkIHRvIGdvaW5nIHNvdXRoIGlzIHRoZSBwcmljZSBvZiBvd25pbmcgb3IgcmVudGluZyBhIHNlY29uZCBob21lLiBTb21lIHNub3diaXJkcyBjaG9vc2UgdG8gaW52ZXN0IGluIGEgbW90b3Job21lLiBUaGlzIGlzIGEgaHVnZSBzdHJhaW4gb24gdGhlIGJ1ZGdldCBpbml0aWFsbHksIGJ1dCBiZWxpZXZlZCBieSBzb21lIHRvIGJlIG1vcmUgZWNvbm9taWNhbCBvdmVyIHRoZSBsb25nIHRlcm0uIEhvd2V2ZXIsIG1vc3Qgc25vd2JpcmRzIGVpdGhlciByZW50IG9yIG93biBhIGNvbmRvIG9yIGhvdXNlIGluIHRoZSBVbml0ZWQgU3RhdGVzLiBNYW55IHBlb3BsZSBiZWxpZXZlIHRoYXQgdGhpcyBleHBlbnNlIHdpbGwgYmUgb2Zmc2V0IGJ5IG5vdCB1c2luZyB0aGVpciBob21lIGJhY2sgaW4gQ2FuYWRhIGZvciB0aGUgd2ludGVyLCBidXQgdGhleSBzdGlsbCBoYXZlIHRvIHBheSBwcm9wZXJ0eSB0YXhlcyBkdXJpbmcgdGhlaXIgYWJzZW5jZS4gRnVydGhlcm1vcmUsIG1hbnkgbmVlZCB0byBjb250aW51ZSBwYXlpbmcgZm9yIGdhcyBhbmQgb3RoZXIgdXRpbGl0aWVzLiBGdXJ0aGVyIHN0aWxsLCBhbHRob3VnaCBzZXJ2aWNlcyBzdWNoIGFzIHBob25lLCB0ZWxldmlzaW9uLCBhbmQgaW50ZXJuZXQgY2FuIGJlIHN1c3BlbmRlZCwgdGhlcmUgaXMgb2Z0ZW4gYSBmZWUgaW52b2x2ZWQuPC9wPjxwPjxzdHJvbmc+RC48L3N0cm9uZz4gT3RoZXIgZXhwZW5zZXMsIHdoaWxlIGNvbXBhcmF0aXZlbHkgbm9taW5hbCwgYXJlIG5vbmV0aGVsZXNzIHZpdGFsLiBUaGVzZSBjYW4gaW5jbHVkZSBtb250aGx5IGluc3VyYW5jZSBhbmQgaG9tZS1tYWludGVuYW5jZSBmZWVzLiBBcyBDYW5hZGlhbiBwcm92aW5jaWFsIG1lZGljYWwgY292ZXJhZ2UgZG9lcyBub3QgYXBwbHkgdG8gbWVkaWNhbCBleHBlbnNlcyBpbmN1cnJlZCBpbiB0aGUgVW5pdGVkIFN0YXRlcywgc25vd2JpcmRzIG5lZWQgdG8gcHVyY2hhc2UgYWRlcXVhdGUgbWVkaWNhbCBjb3ZlcmFnZSBvbiB0aGVpciBvd24uIEEgc25vd2JpcmQmcnNxdW87cyBob21lLW1haW50ZW5hbmNlIGNvc3RzIHVzdWFsbHkgaW5jbHVkZSBwYXlpbmcgc29tZW9uZSBpbiBDYW5hZGEgdG8gc2hvdmVsIHRoZWlyIGRyaXZld2F5IGFuZCBwZXJpb2RpY2FsbHkgY2hlY2sgb24gdGhlaXIgcHJvcGVydHkgKHJlcXVpcmVkIHRvIGtlZXAgdXAgaG9tZS1pbnN1cmFuY2UgY292ZXJhZ2UpLCBmb3J3YXJkaW5nIG1haWwsIGFuZCBzbyBvbi48L3A+PHA+PHN0cm9uZz5FLjwvc3Ryb25nPiBOb3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBhYm92ZSBwYXJhZ3JhcGhzLjwvcD4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoibWF0Y2giLCJpbnN0ciI6IkRlY2lkZSB3aGljaCBwYXJhZ3JhcGgsIEEgdG8gRCwgaGFzIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiBlYWNoIHN0YXRlbWVudCBiZWxvdy4gU2VsZWN0IEUgaWYgdGhlIGluZm9ybWF0aW9uIGlzIG5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIHBhcmFncmFwaHMuIiwibGV0dGVycyI6WyJBIiwiQiIsIkMiLCJEIiwiRSJdLCJpdGVtcyI6W3sibiI6MSwidGV4dCI6IlRoZSBVbml0ZWQgU3RhdGVzIGlzIG9mdGVuIGNob3NlbiBieSBDYW5hZGlhbnMgYXMgYSB3aW50ZXIgdHJhdmVsIGRlc3RpbmF0aW9uLiIsImtleSI6MX0seyJuIjoyLCJ0ZXh0IjoiVGhlIGhpZ2hlc3QgY29zdCBmb3Igc25vd2JpcmRzIGlzIHBheWluZyBmb3IgYSBwbGFjZSB0byBsaXZlIGluIHRoZSBVbml0ZWQgU3RhdGVzLiIsImtleSI6M30seyJuIjozLCJ0ZXh0IjoiSW4gZ2VuZXJhbCwgQ2FuYWRpYW5zIHN0YXJ0IHRvIHByZXBhcmUgZm9yIGEgc25vd2JpcmQgbGlmZXN0eWxlIGluIHRoZWlyIDQwcy4iLCJrZXkiOjV9LHsibiI6NCwidGV4dCI6IkNhbmFkYSBoYXMgYSBzcGVjaWFsIGFycmFuZ2VtZW50IHdpdGggdGhlIFVuaXRlZCBTdGF0ZXMgY29uY2VybmluZyB0ZW1wb3JhcnkgcmVzaWRlbmNlLiIsImtleSI6MX0seyJuIjo1LCJ0ZXh0IjoiSG91c2luZyBvcHRpb25zIGluIHRoZSBVbml0ZWQgU3RhdGVzIGNhbiBiZSBjYWxsZWQgZXhwZW5zaXZlIG92ZXJhbGwuIiwia2V5IjozfSx7Im4iOjYsInRleHQiOiJXaGVuIGluIENhbmFkYSwgbW9zdCBzbm93YmlyZHMgcmVzaWRlIGluIGhvdXNlcyByYXRoZXIgdGhhbiBhcGFydG1lbnRzLiIsImtleSI6NH0seyJuIjo3LCJ0ZXh0IjoiVGhlIENhbmFkaWFuIHBvc3Qgb2ZmaWNlIGNoYXJnZXMgYSBmZWUgdG8gZm9yd2FyZCBtYWlsIHRvIHRoZSBVbml0ZWQgU3RhdGVzLiIsImtleSI6NH0seyJuIjo4LCJ0ZXh0IjoiSXQgaXMgbm90IHVudXN1YWwgZm9yIHJldGlyZWQgQ2FuYWRpYW5zIHRvIHNwZW5kIHRoZSB3aW50ZXIgaW4gdGhlIFVuaXRlZCBTdGF0ZXMuIiwia2V5IjoxfSx7Im4iOjksInRleHQiOiJUaGUgaW5jcmVhc2luZyBzdHJhdGEgZmVlcyBtYXkgbWFrZSBiZWluZyBhIHNub3diaXJkIGxlc3MgYXBwZWFsaW5nIG5vd2FkYXlzLiIsImtleSI6NX1dfV19LHsiaWQiOjQsIm5hbWUiOiJSZWFkaW5nIFBhcnQgNDogUmVhZGluZyBmb3IgVmlld3BvaW50cyIsInRpbWUiOiIxMiBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGUgZnJvbSBhIHdlYnNpdGUuIiwiaHRtbCI6IjxwPk9ubGluZSBzb2NpYWwgbWVkaWEgaGFzIGJlY29tZSB0aGUgbW9zdCBwb3B1bGFyIGZvcm0gb2YgY29tbXVuaWNhdGlvbiBhbW9uZ3N0IHN0dWRlbnRzIGluIE5vcnRoIEFtZXJpY2EuIFN0dWRlbnRzIGNvbW11bmljYXRlIG9ubGluZSBmb3IgYXMgbXVjaCBhcyA4IGhvdXJzIGEgZGF5LiBXaGlsZSB0aGUgZGViYXRlIGNvbnRpbnVlcyB3aGV0aGVyIHRoaXMgaXMgYSBtaWxlc3RvbmUgaW4gY29tbXVuaWNhdGlvbiwgb3IgYSBzdGVwLWJhY2sgaW4gcmVhbCBodW1hbiBpbnRlcmFjdGlvbiwgbWFueSBhcmUgbGVmdCB3b25kZXJpbmcgYWJvdXQgdGhlIGNoYW5nZXMgaW4gc29jaWFsIHByb3RvY29sLiBOaWNrIFRob21wc29uLCBhIHNjaWVuY2UgdGVhY2hlciBhdCBHcmF5c29uIFNlY29uZGFyeSBTY2hvb2wsIHJlY2VudGx5IHJlY2VpdmVkICZsZHF1bztmcmllbmQgcmVxdWVzdHMmcmRxdW87IG9uIGhpcyBwZXJzb25hbCBGYWNlYm9vayBhbmQgVHdpdHRlciBwYWdlcyBmcm9tIHNldmVyYWwgc3R1ZGVudHMuIFVuc3VyZSBob3cgdG8gcHJvY2VlZCwgVGhvbXBzb24gYWRkcmVzc2VkIHRoZSBpc3N1ZSBpbiBhIHN0YWZmIG1lZXRpbmcgYW5kIGZvdW5kIG90aGVyIHRlYWNoZXJzIHRvIGJlIGZhY2luZyB0aGUgc2FtZSBkaWxlbW1hLiBDb25zZXF1ZW50bHksIHRoZSBzY2hvb2wmcnNxdW87cyBzdGFmZiBhcmUgY29uZmVycmluZyBhYm91dCB3aGV0aGVyIHRvIGltcGxlbWVudCBhIHBvbGljeSB0aGF0IHByb2hpYml0cyBlZHVjYXRvcnMgY29ubmVjdGluZyB3aXRoIHRoZWlyIHN0dWRlbnRzIG9ubGluZS48L3A+PHA+QW5uZXR0ZSBDdXJ0aXMsIHRoZSBzY2hvb2wmcnNxdW87cyBwcmluY2lwYWwsIGNvbnN1bHRlZCB0d28gZXhwZXJ0cyB0byBmYWNpbGl0YXRlIGEgdmVyZGljdC4gR3JlZ29yeSBLaW5nLCBlZHVjYXRpb25hbCByZXNlYXJjaGVyIGF0IEJvc3R3aWNrIENvbGxlZ2UsIG1haW50YWlucyB0aGF0IG9ubGluZSByZWxhdGlvbnNoaXBzIHdpdGggc3R1ZGVudHMgaW5jcmVhc2UgdGhlIHJpc2sgb2YgdGVhY2hlciBtaXNjb25kdWN0LiAmbGRxdW87VGhlIHN1cmVzdCB3YXkgdG8gcHJldmVudCBpbmFwcHJvcHJpYXRlIGNvbmR1Y3QgaXMgdG8gZm9yYmlkIGNhc3VhbCBjb250YWN0IG9uIG9ubGluZSBwbGF0Zm9ybXMsJnJkcXVvOyBLaW5nIGFkdmlzZXMuICZsZHF1bztTdHVkZW50LXRlYWNoZXIgcmVsYXRpb25zaGlwcyBhZnRlci1ob3VycyBpcyBoYXJkbHkgYSByZXF1aXNpdGUgZm9yIGxlYXJuaW5nLCBhbmQgc29jaWFsIG1lZGlhIGlzIHNpbXBseSBhIGRpc3RyYWN0aW9uLiZyZHF1bzs8L3A+PHA+RGVzcGl0ZSBzdWNoIGNvbmNlcm5zLCBvdGhlciBleHBlcnRzIGNvbnRlbmQgdGhhdCBzdWNoIHJlc3RyaWN0aXZlIHBvbGljaWVzIGFyZSByZXRyb2dyZXNzaXZlIGFuZCBsaW1pdCB0aGUgcG90ZW50aWFsIGZvciBlZHVjYXRpb24gb3V0c2lkZSB0aGUgY2xhc3Nyb29tLiBNYXJpc3NhIExhbmcsIHByb2Zlc3NvciBvZiBpbnN0cnVjdGlvbmFsIHRlY2hub2xvZ3kgYXQgU2hlcm1hbiBJbnN0aXR1dGUgZm9yIFRlY2hub2xvZ3ksIGFyZ3VlcyBmb3IgdGhlIHBvc2l0aXZlIGNvbnRyaWJ1dGlvbnMgdGhhdCBzb2NpYWwgbWVkaWEgY2FuIG1ha2UuICZsZHF1bztTY2hvb2wgaXMgYSBsaW1pdGVkIGdlb2dyYXBoaWMgc3BhY2UsJnJkcXVvOyBMYW5nIGV4cGxhaW5zLiAmbGRxdW87RWR1Y2F0aW9uLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYm91bmRsZXNzLiBXZWJzaXRlcyBnZW5lcmF0ZSBhbiBpbXBvcnRhbnQgc2Vuc2Ugb2YgY29tbXVuYWwgbGVhcm5pbmcgdGhhdCBjb250aW51ZXMgZmFyIGJleW9uZCBjbGFzc3Jvb20gd2FsbHMsIGFsbG93aW5nIHN0dWRlbnRzIHRvIGNvbGxhYm9yYXRlIHdpdGggYm90aCBwZWVycyBhbmQgdGVhY2hlcnMuJnJkcXVvOzwvcD48cD5XaGlsZSB0aGVyZSBpcyBhbHdheXMgdGhlIHJpc2sgb2YgbWlzY29uZHVjdCBpbiBhbnkgc2Nob29sIHNpdHVhdGlvbiwgZ3VpZGVsaW5lcyBjYW4gcHJldmVudCBzdWNoIGlzc3Vlcy4gTGFuZyBhZHZpc2VzIHRoYXQgZWR1Y2F0b3JzIHVzZSBhIHByb2Zlc3Npb25hbCBhY2NvdW50IHRoYXQgaXMgYWx0b2dldGhlciBzZXBhcmF0ZSBmcm9tIHRoZWlyIHBlcnNvbmFsIHNvY2lhbCBuZXR3b3JrLiBUZWFjaGVycyBzaG91bGQgZ2V0IHBlcm1pc3Npb24gZnJvbSBwYXJlbnRzIHRvIHByb2NlZWQgd2l0aCBvbmxpbmUgY29tbXVuaWNhdGlvbnMsIGFuZCB1c2UgcHJpdmFjeSBzZXR0aW5ncyB0byBwcm90ZWN0IHRoZWlyIHBlcnNvbmFsIGluZm9ybWF0aW9uLiAmbGRxdW87VXNpbmcgdGhlc2UgcHJvdG9jb2xzLCBhbG9uZyB3aXRoIG1vbml0b3Jpbmcgd2hhdCBzdHVkZW50cyBwb3N0LCB3aWxsIGdvIGEgbG9uZyB3YXkgdG8gcHJldmVudGluZyBpbmFwcHJvcHJpYXRlIGJlaGF2aW91ciB3aGlsZSBjb25jdXJyZW50bHkgdXRpbGl6aW5nIHNvY2lhbCBtZWRpYSB0byBlbmhhbmNlIGVkdWNhdGlvbiwmcmRxdW87IExhbmcgc2F5cy4gJmxkcXVvO1dlIGxpdmUgaW4gYW4gYWdlIG9mIHRlY2hub2xvZ3k7IHdoeSBub3QgdXNlIGl0IHRvIGl0cyBiZXN0IGFkdmFudGFnZT8mcmRxdW87PC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gb24gdGhlIHdlYnNpdGUuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6Ik9ubGluZSBzb2NpYWwgbWVkaWEiLCJvcHRpb25zIjpbImRlY3JlYXNlZCB0aGUgYW1vdW50IG9mIHRpbWUgc3R1ZGVudHMgc3BlbnQgc3R1ZHlpbmcuIiwiaGFzIGRpbWluaXNoZWQgc29jaWFsIGludGVyYWN0aW9uIGluIHRoZSBzdHVkZW50IHBvcHVsYXRpb24uIiwiaGFzIGJlY29tZSBhIHBvcHVsYXIgdGhlbWUgaW4gc2Nob29sIGRlYmF0ZSBhY3Rpdml0aWVzLiIsImhhcyByYWlzZWQgcXVlc3Rpb25zIGFib3V0IGFjY2VwdGFibGUgc29jaWFsIGNvbmR1Y3QuIl0sImtleSI6NH0seyJuIjoyLCJwcmUiOiJUZWFjaGVycyBhcmUiLCJvcHRpb25zIjpbImNvbmNlcm5lZCBhYm91dCB0aGUgdXNlIG9mIHNvY2lhbCBtZWRpYSBpbiB0aGUgY2xhc3Nyb29tcy4iLCJ3b3JyaWVkIHRoYXQgc29jaWFsIG1lZGlhIG1heSBjcm9zcyBhIHByb2Zlc3Npb25hbCBib3VuZGFyeS4iLCJ1bndpbGxpbmcgdG8gYmVmcmllbmQgdGhlaXIgc3R1ZGVudHMgaW4gc29jaWFsIG1lZGlhLiIsImNvbmZ1c2VkIGJ5IHRoZSBwcm9saWZlcmF0aW9uIG9mIGNvbXBsZXggdGVjaG5vbG9naWNhbCBpbm5vdmF0aW9ucy4iXSwia2V5IjoyfSx7Im4iOjMsInByZSI6IlRoZSBzY2hvb2xcdTIwMTlzIHByaW5jaXBhbCIsIm9wdGlvbnMiOlsiaGFzIGNhbGxlZCBvbiBzcGVjaWFsaXN0cyB0byBoZWxwIGFkdmlzZSBvbiB0aGUgdGVhY2hlcnNcdTIwMTkgY29udW5kcnVtLiIsImhhcyBwcm9oaWJpdGVkIGFmdGVyLXNjaG9vbCBpbnRlcmFjdGlvbnMgYmV0d2VlbiB0ZWFjaGVycyBhbmQgc3R1ZGVudHMuIiwiY29uc2lkZXJzIG9ubGluZSBzb2NpYWwgbWVkaWEgdG8gYmUgYSBkaXN0cmFjdGlvbiB0aGF0IHNob3VsZCBiZSBhdm9pZGVkLiIsIndpbGwgY29uc2lkZXIgc3R1ZGVudC10ZWFjaGVyIGludGVyYWN0aW9ucyBhZnRlci1ob3VycyBhcyBtaXNjb25kdWN0LiJdLCJrZXkiOjF9LHsibiI6NCwicHJlIjoiQm90aCBleHBlcnRzIGFncmVlIHRoYXQgdGVhY2hlcnMgY29uZHVjdCBzaG91bGQgYmUgcmVzdHJpY3RlZCB0byIsIm9wdGlvbnMiOlsiaW50ZXJhY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGdpdmVuIGZvcm1hbCBwYXJlbnRhbCBjb25zZW50LiIsImRpc3RyaWJ1dGluZyBhbmQgZXhwbGFpbmluZyBlZHVjYXRpb25hbCBtYXRlcmlhbC4iLCJpbnRlcmFjdGlvbnMgb2NjdXJyaW5nIG9uIHNjaG9vbCBwcmVtaXNlcy4iLCJlZHVjYXRpb25hbCBhbmQgY291bnNlbGxpbmcgYWN0aXZpdGllcyBhcHByb3ZlZCBieSB0aGUgcHJpbmNpcGFsLiJdLCJrZXkiOjJ9LHsibiI6NSwicHJlIjoiTWFyaXNzYSBMYW5nIGJlbGlldmVzIHNvY2lhbCBtZWRpYSIsIm9wdGlvbnMiOlsiYnJvYWRlbnMgZWR1Y2F0aW9uYWwgYXZlbnVlcyBmb3IgbGVhcm5pbmcuIiwibWFrZXMgc3R1ZGVudHMgbW9yZSBzb2NpYWxseSBhd2FyZS4iLCJlbmNvdXJhZ2VzIHN0dWRlbnRzIHRvIHN0dWR5IG1vcmUuIiwicHJvbW90ZXMgdGVjaG5vbG9naWNhbCBlZHVjYXRpb24uIl0sImtleSI6MX1dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiVGhlIGZvbGxvd2luZyBpcyBhIGNvbW1lbnQgYnkgYSB2aXNpdG9yIHRvIHRoZSB3ZWJzaXRlIHBhZ2UuIENvbXBsZXRlIHRoZSBjb21tZW50IGJ5IGNob29zaW5nIHRoZSBiZXN0IG9wdGlvbiB0byBmaWxsIGluIGVhY2ggYmxhbmsuIiwiYm9keSI6WyJJIHRoaW5rIGl0IGlzICIseyJiIjo2LCJvcHRpb25zIjpbImVkdWNhdGlvbmFsbHkgc291bmQiLCJlbnRpcmVseSBpbmFwcHJvcHJpYXRlIiwiYW4gaW5qdXN0aWNlIiwiY2VydGFpbmx5IGV0aGljYWwiXSwia2V5IjoyfSwiIHRvIGhhdmUgdGVhY2hlcnMgY29ubmVjdGluZyB3aXRoIHN0dWRlbnRzIG9uIHNvY2lhbCBtZWRpYS4gRW1haWwgaXMgYWJvdXQgYXMgZmFyIGFzIGl0IHNob3VsZCBnbywgYW5kIG5vIGZ1cnRoZXIuIFJlYWxseSwgIix7ImIiOjcsIm9wdGlvbnMiOlsidGVhY2hlcnMgaXNzdWluZyBvbmxpbmUgYXNzaWdubWVudHMiLCJjb2xsYWJvcmF0aW9uIGFtb25nIHN0dWRlbnRzIiwidGVhY2hlcnMgbGlhaXNpbmcgd2l0aCBzdHVkZW50cyIsImEgcmVzdHJpY3RpdmUgZWR1Y2F0aW9uYWwgZm9ydW0iXSwia2V5IjozfSwiIG9uIHNvY2lhbCBuZXR3b3JrcyBpcyBubyBkaWZmZXJlbnQgdG8gZ29pbmcgaW50byB0aGUgc3R1ZGVudHNcdTIwMTkgbGl2aW5nIHJvb21zIGFmdGVyIHNjaG9vbC4gQ2VydGFpbmx5LCBJIGNhbiBzZWUgIix7ImIiOjgsIm9wdGlvbnMiOlsiYmVuZWZpdHMgZnJvbSBjb25uZWN0aW5nIHdpdGgiLCJzZXZlcmUgcmlza3MgYmVpbmcgY3JlYXRlZCBmb3IiLCJzb2NpYWwgaW5lcXVhbGl0aWVzIGVtZXJnaW5nIHdpdGgiLCJwb3NzaWJpbGl0aWVzIGZvciBjb3JydXB0aW9uIG9mIl0sImtleSI6MX0sIiBzdHVkZW50cyBvbmxpbmUuIEZvciBleGFtcGxlLCBzdHVkZW50cyBjb3VsZCBlYXNpbHkgZ2V0IGhlbHAgd2l0aCBhc3NpZ25tZW50cyBhbmQgdGVhY2hlcnMgY291bGQgcG9zdCBhZGRpdGlvbmFsIGNvdXJzZSBtYXRlcmlhbC4gQnV0IG1heWJlIHRoZSBhZHZhbnRhZ2VzIGNvbWUgYXQgYW4gaW5hcHByb3ByaWF0ZSBwcmljZS4gRm9yIGV4YW1wbGUsIHRoZXJlIGFyZSBiZW5lZml0cyB0byB0aGUgdGVhY2hlciBnb2luZyBpbnRvIGEgc3R1ZGVudFx1MjAxOXMgbGl2aW5nIHJvb20gYW5kIGdpdmluZyB0aGVtIGEgZnJlZSBsZXNzb24uIEl0IGRvZXNuXHUyMDE5dCBtZWFuIHRoYXQgIix7ImIiOjksIm9wdGlvbnMiOlsidGVhY2hlcnMgYXJlIGFjdGluZyBpbmFwcHJvcHJpYXRlbHkiLCJpdFx1MjAxOXMgYW4gZWR1Y2F0aW9uYWwgb3Bwb3J0dW5pdHkiLCJpdFx1MjAxOXMgYSBzZW5zaWJsZSB0aGluZyB0byBkbyIsInN0dWRlbnRzIHJlcXVpcmUgYWRkaXRpb25hbCB0dWl0aW9uIl0sImtleSI6Mn0sIi4gQnkgd2F5IG9mIGFuYWxvZ3ksIGl0IHdvdWxkIGJlIG5pY2UgdG8gaGFuZyB3aXRoIG15IHBzeWNob2xvZ2lzdCBvciBteSBkb2N0b3Igb25saW5lLCBidXQgcHN5Y2hvbG9naXN0cyBhbmQgZG9jdG9ycyAiLHsiYiI6MTAsIm9wdGlvbnMiOlsic29jaWFsaXplIHdpdGggdGhlaXIgY2xpZW50cyIsImFsd2F5cyBjaGFyZ2UgZm9yIHNlcnZpY2VzIiwiZnJhdGVybml6ZSB3aXRoIGNsaWVudHMiLCJzZXQgbGltaXRzIHRvIHRoZWlyIHByYWN0aWNlIl0sImtleSI6NH0sIiBhbmQgc28gc2hvdWxkIHRlYWNoZXJzLiJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 6 Practice Test 1: 4 parts, 38 questions in the real exam format with instant scoring and answer key. About 55 minutes. Free, no sign-up.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-6402","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=6402"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6402\/revisions"}],"predecessor-version":[{"id":6560,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6402\/revisions\/6560"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}