{"id":6009,"date":"2026-07-06T00:59:40","date_gmt":"2026-07-06T00:59:40","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-1-test-1-reading\/"},"modified":"2026-07-12T03:25:21","modified_gmt":"2026-07-12T03:25:21","slug":"celpip-set-1-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-1-test-1-reading\/","title":{"rendered":"CELPIP Set 1 Test 1 \u2013 Reading Practice Test"},"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 1<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgR3JhbmRwYSw8L3A+XG48cD5UaGFuayB5b3Ugc28gbXVjaCEgSSB3YXMgc3VycHJpc2VkIGFuZCBkZWxpZ2h0ZWQgdG8gcmVjZWl2ZSB5b3VyIHBhcmNlbCBhbmQgb3BlbiB5b3VyIHRob3VnaHRmdWwgcHJlc2VudC4gQSB0d28tcGVyc29uIGNhbXBpbmcgdGVudCBpcyBqdXN0IHdoYXQgSSBuZWVkZWQuIEkndmUgdXNlZCBpdCBhbHJlYWR5OyBteSBmcmllbmQgUnlhbiBhbmQgSSBzcGVudCBhIHdlZWsgY2FtcGluZyBpbiB0aGUgS29vdGVuYXkgcmVnaW9uIG9mIEJDLiBXZSBqdXN0IGdvdCBiYWNrLiBJIHdhcyBnb2luZyB0byB1c2Ugb3VyIG9sZCBmYW1pbHkgdGVudCwgYnV0IGl0J3Mgbm90IG9ubHkgdG9vIGJpZywgaXQgaXMgYWxzbyBnZXR0aW5nIHByZXR0eSB3b3JuIG91dCwgc28geW91ciBnaWZ0IHdhcyBwZXJmZWN0LjwvcD5cbjxwPldlIHBsYW5uZWQgb24gY2FtcGluZyBhdCB2YXJpb3VzIGxvY2F0aW9ucyBpbiB0aGUgS29vdGVuYXkgcmVnaW9uLCBidXQgd2UgZW5kZWQgdXAgc3RheWluZyBhdCBvdXIgZmlyc3QgY2FtcHNpdGUgZm9yIHRoZSB3aG9sZSB0cmlwLiBUaGUgY2FtcGdyb3VuZCwgbG9jYXRlZCBvbiB0aGUgZWFzdCBzaWRlIG9mIEFycm93IExha2UsIHdhcyBjYWxsZWQgTWNEb25hbGQgQ3JlZWsgUHJvdmluY2lhbCBQYXJrLiBXZSB3ZXJlIGxvb2tpbmcgZm9yd2FyZCB0byB0aGUgd2hpdGUgc2FuZCBiZWFjaCwgYnV0IHdoZW4gd2UgYXJyaXZlZCwgdGhlIHBhcmsgcmFuZ2VyIGluZm9ybWVkIHVzIHRoYXQgYWxsIHRoZSByZWNlbnQgcmFpbmZhbGwgaGFkIGNhdXNlZCB0aGUgbGFrZSB0byBmbG9vZCBhIGNvdXBsZSBtZXRyZXMgaGlnaGVyIHRoYW4gbm9ybWFsLiBUaGUgYmVhY2ggd2FzIGNvbXBsZXRlbHkgc3VibWVyZ2VkLiBXZSBzdGlsbCBoYWQgYSBncmVhdCB0aW1lLCB0aG91Z2gsIGhpa2luZyBpbiB0aGUgYmVhdXRpZnVsIHdpbGRlcm5lc3MuPC9wPlxuPHA+V2UgZHJvdmUgYSBkaWZmZXJlbnQgcm91dGUgdG8gZ2V0IGhvbWUgc28gd2UgY291bGQgcGFzcyB0aHJvdWdoIHRoZSBjaXR5IG9mIE5lbHNvbi4gSXQgbG9va3MgZGlmZmVyZW50IGZyb20gdGhlIGxhc3QgdGltZSBJIHdhcyB0aGVyZSwgYnV0IHRoYXQncyBub3QgdG9vIHN1cnByaXNpbmc7IEkgd2FzIHRoZXJlIGp1c3QgYSBjb3VwbGUgdGltZXMgYXMgYSBraWQuIExhc3QgdGltZSB3ZSB3ZXJlIHRoZXJlLCBEYWQgc2hvd2VkIG1lIHRoZSBob3VzZSB3aGVyZSBoZSBoYWQgYmVlbiBib3JuLCBhbmQgYWxzbyB5b3VyIG9sZCBjbG90aGluZyBzdG9yZS4gSSBkcm92ZSBhcm91bmQgYW5kIEkgY291bGRuJ3QgZmluZCB5b3VyIG9sZCBob3VzZSwgR3JhbmRwYTsgaG93ZXZlciwgSSBkaWQgZmluZCB5b3VyIG9sZCBzdG9yZSEgSXQncyBhIGNhZmUgbm93LCBidXQgdGhleSBrZXB0IHlvdXIgb2xkIHNob3Agc2lnbiBhcyBhIGRlY29yYXRpb24gaW4gdGhlIGNhZmUuIEkgZ290IHByZXR0eSBlbW90aW9uYWwgd2hlbiBJIHNhdyBpdC4gSSBmZWx0IHJlYWxseSBwcm91ZCBvZiBvdXIgZmFtaWx5IGhpc3RvcnkuPC9wPlxuPHA+Tm93IEknbSBiYWNrIGluIENhbGdhcnksIGJ1dCB0aGUgdHJpcCB0byBOZWxzb24gbWFkZSBtZSByZWFsaXplIGhvdyBtdWNoIEkgbWlzcyB5b3UuIFNvLCBJIHdhcyB0aGlua2luZyB0aGF0IG1heWJlIEkgc2hvdWxkIGZseSBvdmVyIHRvIHZpc2l0IHlvdS4gSSBoYXZlIDIgd2Vla3MgYmVmb3JlIGNvbGxlZ2Ugc3RhcnRzLCBzbyBJIGNvdWxkIGNvbWUgZm9yIGEgd2VlayBvciBzby4gSSBoYXZlIGVub3VnaCBtb25leSBzYXZlZCB1cCBmcm9tIG15IHN1bW1lciBqb2IgdG8gcGF5IGZvciB0aGUgdGlja2V0IHRvIE1vbnRyZWFsLiBIb3cgZG9lcyB0aGF0IHNvdW5kPyBQZXJoYXBzIHRoZSB0d28gb2YgdXMgY2FuIGdvIGNhbXBpbmcgbGlrZSBpbiB0aGUgb2xkIGRheXMuIFdlIGhhdmVuJ3QgZG9uZSB0aGF0IHNpbmNlIHlvdSBtb3ZlZCBlYXN0LiBJJ2xsIGJyaW5nIHRoZSBuZXcgdGVudCE8L3A+XG48cD5Mb3ZlLCBHcmVnPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIG1lc3NhZ2UuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IkdyZWciLCJvcHRpb25zIjpbImdvdCB1c2VkIHRvIGhpcyBvbGQgZmFtaWx5IHRlbnQuIiwiZ290IGEgbmV3IHRlbnQgaW4gdGhlIG1haWwuIiwibmVlZHMgYSBuZXcgdGVudCBmb3IgaGlzIHRyaXAuIiwiYm91Z2h0IGEgbmV3IHRlbnQuIl0sImtleSI6Mn0seyJuIjoyLCJwcmUiOiJHcmVnIGFuZCBSeWFuIiwib3B0aW9ucyI6WyJ0b3VyZWQgc2V2ZXJhbCBjYW1wc2l0ZXMgaW4gdGhlIEtvb3RlbmF5IHJlZ2lvbi4iLCJlbmpveWVkIHRoZSBwcm92aW5jaWFsIHBhcmsncyB3aGl0ZSBzYW5kIGJlYWNoZXMuIiwid2VyZSBzdXJwcmlzZWQgYnkgdGhlIHdhdGVyIGxldmVsIGF0IHRoZSBsYWtlLiIsIndlcmUgdW5hYmxlIHRvIHRvdXIgYW5kIGNhbXAgYmVjYXVzZSBvZiB0aGUgcmFpbmZhbGwuIl0sImtleSI6M30seyJuIjozLCJwcmUiOiJHcmVnIHRvb2sgYW4gYWx0ZXJuYXRpdmUgd2F5IGJhY2sgYmVjYXVzZSIsIm9wdGlvbnMiOlsiaGUgd2FudGVkIHRvIHJldmlzaXQgaGlzIGRhZCdzIGhvbWV0b3duLiIsImhpcyBncmFuZHBhIHN0aWxsIG93bnMgYSBzaG9wIHRoZXJlLiIsImhlIHdhbnRlZCB0byBwYXkgaGlzIGZhdGhlciBhIHZpc2l0LiIsImhlIHVzZWQgdG8gbGl2ZSB0aGVyZSBhcyBhIGNoaWxkLiJdLCJrZXkiOjF9LHsibiI6NCwicHJlIjoiR3JlZyBiZWNhbWUgZW1vdGlvbmFsIHdoZW4iLCJvcHRpb25zIjpbImhlIGZvdW5kIG91dCBoaXMgZ3JhbmRwYSdzIGJ1c2luZXNzIGhhZCBzaHV0IGRvd24uIiwiaGlzIGZhdGhlciB0b2xkIGhpbSBzdG9yaWVzIGFib3V0IGhpcyBjaGlsZGhvb2QuIiwiaGUgc2F3IHRoZSBob3VzZSB3aGVyZSBoaXMgZmF0aGVyIGdyZXcgdXAuIiwiaGUgc2F3IHNvbWV0aGluZyB0aGF0IGJlbG9uZ2VkIHRvIGhpcyBncmFuZGZhdGhlci4iXSwia2V5Ijo0fSx7Im4iOjUsInByZSI6IkdyZWcgaXMgaG9waW5nIHRvIiwib3B0aW9ucyI6WyJ1c2UgdGhlIHRlbnQgZm9yIHRoZSBmaXJzdCB0aW1lLiIsInRyYXZlbCB0byBNb250cmVhbCB2ZXJ5IHNvb24uIiwiYmUgYWNjZXB0ZWQgaW4gY29sbGVnZSB0aGlzIHllYXIuIiwiZ2V0IGEgc3VtbWVyIGpvYiBiZWZvcmUgc3RhcnRpbmcgc2Nob29sLiJdLCJrZXkiOjJ9LHsibiI6NiwicHJlIjoiR3JlZydzIGdyYW5kcGEiLCJvcHRpb25zIjpbImlzIGNvbWluZyB0byBDYWxnYXJ5IGZvciBhIGZldyB3ZWVrcy4iLCJib3VnaHQgR3JlZyBhIHRpY2tldCBiYWNrIHRvIE5lbHNvbi4iLCJ1c2VkIHRvIGdvIGNhbXBpbmcgd2l0aCBHcmVnLiIsImlzIG1vdmluZyBiYWNrIHRvIENhbGdhcnkuIl0sImtleSI6M31dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiSGVyZSBpcyBhIHJlc3BvbnNlIHRvIHRoZSBtZXNzYWdlLiBDb21wbGV0ZSB0aGUgcmVzcG9uc2UgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiR3JlZyxcblxuSXQgZ29lcyB3aXRob3V0IHNheWluZyB0aGF0IEknZCBsb3ZlIHRvICIseyJiIjo3LCJvcHRpb25zIjpbInZpc2l0IE1vbnRyZWFsLiIsInZpc2l0IHRoZSBLb290ZW5heXMuIiwiZ28gdG8gQ2FsZ2FyeS4iLCJzZWUgeW91IGhlcmUuIl0sImtleSI6NH0sIiBOb3cgd2l0aCBteSBvbGQgYm9uZXMsIEknbSBub3Qgc28gc3VyZSB0aGF0ICIseyJiIjo4LCJvcHRpb25zIjpbImZseWluZyBoZXJlIGlzIHdpc2UsIiwiSSBjYW4gbWFrZSBpdCB0byBDYWxnYXJ5LCIsIndlIHNob3VsZCB2aXNpdCB0aGUgb2xkIGNhZmUsIiwiY2FtcGluZyBpcyBhIGdyZWF0IGlkZWEsIl0sImtleSI6NH0sIiBidXQgZXZlbiBpZiBpdCdzIG5vdCwgSSB0aGluayB3ZSBzaG91bGQgZG8gaXQgYW55d2F5LiBBZnRlciBhbGwsIHdlIGhhdmUgdG8gcHV0IHRoZSB0ZW50IHRvIGdvb2QgdXNlISBZb3UganVzdCBlbWFpbCBtZSB5b3VyIHRyYXZlbCBwbGFucy4gQWxzbywgdGhlcmUncyBubyBuZWVkIHRvICIseyJiIjo5LCJvcHRpb25zIjpbInBsYW4gYSBjYW1waW5nIHRyaXAgZm9yIHVzOyIsInNwZW5kIHlvdXIgb3duIG1vbmV5IG9uIGEgdGlja2V0OyIsImJ1eSBhIG5ldyB0ZW50IGZvciB0aGlzIHRyaXA7IiwiZHJpdmUgYWxsIHRoZSB3YXkgdG8gTW9udHJlYWw7Il0sImtleSI6Mn0sIiBJIGNhbiB0YWtlIGNhcmUgb2YgdGhhdCwgeW91IHNob3VsZCBrZWVwIHlvdXIgc2F2aW5ncyBmb3IgdHVpdGlvbi5cblxuV2VsbCwgSSBjYW4ndCBzYXkgSSd2ZSBiZWVuIHRvIE5lbHNvbiBzaW5jZSBJIHNvbGQgbXkgYnVzaW5lc3MgdGhlcmUgbWFueSB5ZWFycyBhZ28uIERpZCB5b3UgdGFrZSBhbnkgcGhvdG9zIG9mICIseyJiIjoxMCwib3B0aW9ucyI6WyJ0aGUgb2xkIHN0b3JlIHNpZ24\/IiwidGhlIG9sZCBjYWZlPyIsInlvdXIgZmF0aGVyIGF0IHRoZSBjYWZlPyIsInRoZSBob3VzZSB3aGVyZSB5b3VyIGRhZCB3YXMgYm9ybj8iXSwia2V5IjoxfSwiIElmIHlvdSBkaWQsIEknZCBsb3ZlIHRvIHNlZSB0aGVtLiBJJ20gc29ycnkgeW91ICIseyJiIjoxMSwib3B0aW9ucyI6WyJkaWRuJ3QgZmluZCB0aGUgb2xkIGhvdXNlLiIsImRpZG4ndCBmaW5kIHRoZSBvbGQgc3RvcmUuIiwiZGlkbid0IHJlY29nbml6ZSB0aGUgY2FmZS4iLCJjb3VsZG4ndCBidXkgdGhlIG9sZCBzaWduLiJdLCJrZXkiOjF9LCIgSSBkb24ndCBldmVuIGtub3cgaWYgaXQncyBzdGlsbCBzdGFuZGluZy4gSWYgaXQgaXMsIGl0IHdvdWxkIGJlIGEgaHVuZHJlZCB5ZWFycyBvbGQuXG5cbkFueXdheSwgZW1haWwgbWUgYXMgc29vbiBhcyB5b3UgYm9vayB0aGUgZmxpZ2h0IG92ZXIgaGVyZS5cblxuR3JhbmRwYSJdfV19LHsiaWQiOjIsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMjogUmVhZGluZyB0byBBcHBseSBhIERpYWdyYW0iLCJ0aW1lIjoiOCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGRpYWdyYW0uIiwiaHRtbCI6IjxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjE0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjQ1O2NvbG9yOiMxZTI3MzNcIj48ZGl2IHN0eWxlPVwiZmxleDoxIDEgMzAwcHg7bWF4LXdpZHRoOjQwMHB4O2JvcmRlcjoxcHggc29saWQgI0M0Q0NEODtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE0cHggMTZweDtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNpemluZzpib3JkZXItYm94XCI+PHAgc3R5bGU9XCJmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjE5cHg7Y29sb3I6IzBEMjM1MjttYXJnaW46MCAwIDRweFwiPktBUkFURTwvcD48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O2NvbG9yOiMzMzQ7bWFyZ2luOjAgMCA4cHhcIj4zMCBZZWFycyBJbiBCdXJuYWJ5PC9wPjxwIHN0eWxlPVwibWFyZ2luOjNweCAwXCI+RWRtb25kcyBDb21tdW5pdHkgQ2VudGVyPC9wPjxwIHN0eWxlPVwibWFyZ2luOjNweCAwXCI+Qm9uc29yIENvbW11bml0eSBDZW50ZXI8L3A+PHAgc3R5bGU9XCJtYXJnaW46OHB4IDAgMDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzBEMjM1MlwiPkNvbnRhY3Q6IERhdmlkIExlZTogNjA0IDQzMyAzMzEzPC9wPjwvZGl2PjxkaXYgc3R5bGU9XCJmbGV4OjEgMSAzMDBweDttYXgtd2lkdGg6NDAwcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTRweCAxNnB4O2JhY2tncm91bmQ6I2ZmZjtib3gtc2l6aW5nOmJvcmRlci1ib3hcIj48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTlweDtjb2xvcjojMEQyMzUyO21hcmdpbjowIDAgNHB4XCI+QTEgTWF0aCBhbmQgQ2hlc3M8L3A+PHAgc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzLjVweDtjb2xvcjojMzM0O21hcmdpbjowIDAgOHB4XCI+Sy0xMiBtYXRoIHR1dG9yaW5nICZhbXA7IGVucmljaG1lbnQ8L3A+PHAgc3R5bGU9XCJtYXJnaW46M3B4IDBcIj4tIFJhaXNlIG1hdGggbWFya3M8L3A+PHAgc3R5bGU9XCJtYXJnaW46M3B4IDBcIj4tIEJ1aWxkIHByb2JsZW0gc29sdmluZyBmb3VuZGF0aW9uPC9wPjxwIHN0eWxlPVwibWFyZ2luOjNweCAwXCI+LSBJbXByb3ZlIGNyaXRpY2FsIHRoaW5raW5nPC9wPjxwIHN0eWxlPVwibWFyZ2luOjhweCAwIDA7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRDIzNTJcIj5Db250YWN0OiBCb2IgQ2hlbjogNjA0IDMyNCA0MTExPC9wPjwvZGl2PjxkaXYgc3R5bGU9XCJmbGV4OjEgMSAzMDBweDttYXgtd2lkdGg6NDAwcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTRweCAxNnB4O2JhY2tncm91bmQ6I2ZmZjtib3gtc2l6aW5nOmJvcmRlci1ib3hcIj48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTlweDtjb2xvcjojMEQyMzUyO21hcmdpbjowIDAgNHB4XCI+VHJpbWJsZSBEYW5jZSBTdHVkaW88L3A+PHAgc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzLjVweDtjb2xvcjojMzM0O21hcmdpbjowIDAgOHB4XCI+QWZ0ZXIgc2Nob29sIGFuZCB3ZWVrZW5kczwvcD48cCBzdHlsZT1cIm1hcmdpbjozcHggMFwiPkFnZXMgNiB0byAxMjwvcD48cCBzdHlsZT1cIm1hcmdpbjozcHggMFwiPnJlZ2lzdGVyIG9ubGluZTogd3d3LnRyaW1ibGVkYW5jZS5jYTwvcD48L2Rpdj48ZGl2IHN0eWxlPVwiZmxleDoxIDEgMzAwcHg7bWF4LXdpZHRoOjQwMHB4O2JvcmRlcjoxcHggc29saWQgI0M0Q0NEODtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE0cHggMTZweDtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNpemluZzpib3JkZXItYm94XCI+PHAgc3R5bGU9XCJmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjE5cHg7Y29sb3I6IzBEMjM1MjttYXJnaW46MCAwIDRweFwiPksxMiBQbHVzIExlYXJuaW5nPC9wPjxwIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6IzMzNDttYXJnaW46MCAwIDhweFwiPk1hdGggJm5ic3A7IFNjaWVuY2UgJm5ic3A7IEVuZ2xpc2ggJm5ic3A7IEZyZW5jaCAmbmJzcDsgRVNMICZuYnNwOyBDaGluZXNlICZhbXA7IG1vcmU8L3A+PHAgc3R5bGU9XCJtYXJnaW46M3B4IDBcIj53d3cuazEycGx1cy5jYTwvcD48cCBzdHlsZT1cIm1hcmdpbjo4cHggMCAwO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+Q2FsbDogNjA0IDQzMiAxMjM0PC9wPjwvZGl2PjxkaXYgc3R5bGU9XCJmbGV4OjEgMSAzMDBweDttYXgtd2lkdGg6NDAwcHg7Ym9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTRweCAxNnB4O2JhY2tncm91bmQ6I2ZmZjtib3gtc2l6aW5nOmJvcmRlci1ib3hcIj48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTlweDtjb2xvcjojMEQyMzUyO21hcmdpbjowIDAgNHB4XCI+RWFzdGJ1cm4gU29jY2VyPC9wPjxwIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6IzMzNDttYXJnaW46MCAwIDhweFwiPkJveXMgYW5kIGdpcmxzIHNvY2NlciBsZWFndWVzLjwvcD48cCBzdHlsZT1cIm1hcmdpbjozcHggMFwiPkFmdGVyIHNjaG9vbCB0cmFpbmluZy4gV2Vla2VuZCBnYW1lczwvcD48cCBzdHlsZT1cIm1hcmdpbjozcHggMFwiPnd3dy5lYXN0YnVybnNvY2Nlci5jYTwvcD48cCBzdHlsZT1cIm1hcmdpbjo4cHggMCAwO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEQyMzUyXCI+Q2FsbCBKZXJyeSBXb25nOiA2MDQgNDQzIDMzMTM8L3A+PC9kaXY+PGRpdiBzdHlsZT1cImZsZXg6MSAxIDMwMHB4O21heC13aWR0aDo0MDBweDtib3JkZXI6MXB4IHNvbGlkICNDNENDRDg7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxNHB4IDE2cHg7YmFja2dyb3VuZDojZmZmO2JveC1zaXppbmc6Ym9yZGVyLWJveFwiPjxwIHN0eWxlPVwiZm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxOXB4O2NvbG9yOiMwRDIzNTI7bWFyZ2luOjAgMCA0cHhcIj5ObyBNb3JlIFBvb3IgTWF0aCBUZXN0IFNjb3JlcyE8L3A+PHAgc3R5bGU9XCJmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzLjVweDtjb2xvcjojMzM0O21hcmdpbjowIDAgOHB4XCI+Sy0xMiBPbmUtb24tT25lIE1hdGggVHV0b3Jpbmc8L3A+PHAgc3R5bGU9XCJtYXJnaW46M3B4IDBcIj4tIE92ZXJjb21lIE1hdGggQW54aWV0eTwvcD48cCBzdHlsZT1cIm1hcmdpbjozcHggMFwiPi0gSW5jcmVhc2UgU2VsZiBFc3RlZW08L3A+PHAgc3R5bGU9XCJtYXJnaW46M3B4IDBcIj5DYWxsIE5vdyEgNjA0LTU2NS1NQVRIICg2Mjg0KTwvcD48cCBzdHlsZT1cIm1hcmdpbjozcHggMFwiPnd3dy5oZWxsb21hdGguY2E8L3A+PHAgc3R5bGU9XCJtYXJnaW46M3B4IDBcIj5HZXQgYW4gRXh0cmEgNjAgTWludXRlcyBGUkVFISBMaWtlIHVzIG9uIEZhY2Vib29rIG9yIGJvb2sgYSB0dXRvciBvbmxpbmUuIGNvbnRhY3RAaGVsbG9tYXRoLmNhPC9wPjwvZGl2PjwvZGl2PiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsLiBDb21wbGV0ZSB0aGUgZW1haWwgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiU3ViamVjdDogS2lkcyBBY3Rpdml0aWVzXG5UbzogTWFyeSBTIDx0LnNtaXRoZXJzQGZyaW1wdG9uLmJjLmNhPlxuRnJvbTogU2FuZHkgUm9ja3RvbiA8c3JvY2t0b25Ac3RlcmxpbmdzLmNhPlxuXG5IaSBNYXJ5LFxuXG5JdCB3YXMgYSBwbGVhc3VyZSBtZWV0aW5nIHlvdSBhbmQgdGhlIGtpZHMgYXQgdGhlIHBhcmsgb24gU3VuZGF5LiBJIGhvcGUgeW91J3JlIHNldHRsaW5nIGludG8gb3VyIG5laWdoYm9yaG9vZC4gWW91IHNhaWQgeW91IHdlcmUgbG9va2luZyBmb3IgIix7ImIiOjEsIm9wdGlvbnMiOlsic29tZSBhZnRlciBzY2hvb2wgYWN0aXZpdGllcyBmb3IgeW91ciBraWRzLiIsInNvbWUgaGVscGZ1bCBlZHVjYXRpb25hbCB3ZWJzaXRlcy4iLCJiYWJ5c2l0dGluZyBzZXJ2aWNlcyBmb3IgeW91ciBjaGlsZHJlbi4iLCJvbmxpbmUgY2xhc3NlcyBmb3IgeW91ciBzb24uIl0sImtleSI6MX0sIiBJIHNhdyBhIGZldyBwb3NzaWJpbGl0aWVzIGluIHRoZSBsYXRlc3QgQnVybmFieSBQYXJrcyBhbmQgUmVjcmVhdGlvbiBicm9jaHVyZS4gSSByZW1lbWJlciB5b3Ugc2F5aW5nIHRoYXQgQWxleCBpcyBjb250ZW1wbGF0aXZlLiAiLHsiYiI6Miwib3B0aW9ucyI6WyJUcmltYmxlIFN0dWRpbyIsImhlbGxvbWF0aC5jYSIsIkExIE1hdGggYW5kIENoZXNzIiwiRWFzdGJ1cm4gU29jY2VyIl0sImtleSI6M30sIiBzZWVtcyBhIGdyZWF0IGNob2ljZSBmb3IgdGhpbmtlcnMgbGlrZSBBbGV4LiBIZSB3aWxsIGdldCB0byB0aGluayBoYXJkIGFuZCBsZWFybiBzb21lIGFkZGl0aW9uYWwgbWF0aCBza2lsbHMuIFlvdSBzYWlkIE1lbGlzc2EgaXMgcXVpdGUgc2NhcmVkIG9mIG1hdGgsIGluIHdoaWNoIGNhc2UgeW91IGNvdWxkIGNoZWNrIG91dCAiLHsiYiI6Mywib3B0aW9ucyI6WyJFYXN0YnVybiBTb2NjZXIuIiwiVHJpbWJsZSBTdHVkaW8uIiwiS2FyYXRlLiIsInRoZSBoZWxsb21hdGguY2Egd2Vic2l0ZS4iXSwia2V5Ijo0fSwiIFRoZXkgbWF5IGhlbHAgaGVyIGZlZWwgYmV0dGVyIGFib3V0IGhlciBzY2hvb2x3b3JrLlxuXG5TcGVha2luZyBvZiBNZWxpc3NhLCBzaGUgbWF5IHdhbnQgdG8gam9pbiBteSBkYXVnaHRlciBDaW5keSBpbiB0aGUgeW91bmcgdGVlbnMnIHNvY2NlciBsZWFndWUuIFRoaXMgaXMgcXVpdGUgYSBjb21taXRtZW50IGFzIHRoZXJlIGlzICIseyJiIjo0LCJvcHRpb25zIjpbImEgYm95cyBhbmQgZ2lybHMgc29jY2VyIGxlYWd1ZS4iLCJ0cmFpbmluZyBpbiB0aGUgd2VlayBhbmQgYSB3ZWVrZW5kIGdhbWUuIiwiYSB3ZWJzaXRlIHdoZXJlIHlvdSBjYW4gZ2V0IGluZm9ybWF0aW9uLiIsImEgd2VlayBsb25nIHN1bW1lciB0cmFpbmluZyBzZXNzaW9uLiJdLCJrZXkiOjJ9LCIgSWYgdGhhdCdzIGEgcHJvYmxlbSwgc2hlIGNvdWxkIHRyeSBrYXJhdGUuIEknbSBub3Qgc3VyZSBhYm91dCB0aGUgY2xhc3MgdGltZXMgIix7ImIiOjUsIm9wdGlvbnMiOlsidGhlcmUncyBubyB3ZWJzaXRlLiIsInRoZXkgYXJlIG5vdCB3ZWxsIGVzdGFibGlzaGVkLiIsInRoZXJlJ3Mgbm8gY29udGFjdCBpbmZvcm1hdGlvbi4iLCJJIGRvbid0IGtub3cgd2hlcmUgdGhleSBwcmFjdGljZS4iXSwia2V5IjoxfSwiIFlvdSdsbCBoYXZlIHRvIGNhbGwgYW5kIGFzay5cblxuQ2hlZXJzLFxuU2FuZHkiXX0seyJ0eXBlIjoic3RlbWxpc3QiLCJpbnN0ciI6IlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbi4iLCJpdGVtcyI6W3sibiI6NiwicHJlIjoiTWFyeSBhbmQgU2FuZHkiLCJvcHRpb25zIjpbImhhdmUgYmVlbiBmcmllbmRzIGZvciBhIGxvbmcgdGltZS4iLCJtZXQgYXQgdGhlaXIga2lkcycgc29jY2VyIHByYWN0aWNlLiIsIm5vdyBsaXZlIGluIHRoZSBzYW1lIGFyZWEuIiwid2VyZSBuZWlnaGJvdXJzIGluIHRoZSBwYXN0LiJdLCJrZXkiOjN9LHsibiI6NywicHJlIjoiU2FuZHkiLCJvcHRpb25zIjpbImlzIGxvb2tpbmcgZm9yIGFjdGl2aXRpZXMgZm9yIGhlciBvd24gY2hpbGRyZW4uIiwiaXMgc3VnZ2VzdGluZyBhY3Rpdml0aWVzIGluIHRoZSBuZWlnaGJvdXJob29kLiIsIndvcmtzIGZvciBCdXJuYWJ5IFBhcmtzIGFuZCBSZWNyZWF0aW9uLiIsImhhcyBjb21taXR0ZWQgdG8gZHJpdmUgdGhlIGdpcmxzIHRvIHNvY2NlciBwcmFjdGljZS4iXSwia2V5IjoyfSx7Im4iOjgsInByZSI6Ik1lbGlzc2EiLCJvcHRpb25zIjpbInByZWZlcnMgaW5kaXZpZHVhbCB0byB0ZWFtIGFjdGl2aXRpZXMuIiwiZG9lc24ndCBoYXZlIHRoZSB3ZWVrZW5kcyBvZmYuIiwiZG9lc24ndCBlbmpveSBtYXRoIGFzIG11Y2ggYXMgQWxleC4iLCJpcyB0b28geW91bmcgdG8gcGxheSB0ZWFtIHNwb3J0cy4iXSwia2V5IjozfV19XX0seyJpZCI6MywibmFtZSI6IlJlYWRpbmcgUGFydCAzOiBSZWFkaW5nIGZvciBJbmZvcm1hdGlvbiIsInRpbWUiOiI5IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgcGFzc2FnZS4iLCJodG1sIjoiPHA+PGI+QS48L2I+IFRoZSBmaXJzdCByZWNvcmQgb2YgY2hld2luZyBndW0gZGF0ZXMgYmFjayB0byBGaW5sYW5kIGFib3V0IDUsMDAwIHllYXJzIGFnby4gTmVvbGl0aGljLXBlcmlvZCBjaGV3aW5nIGd1bSB3YXMgbWFkZSBvZiBiYXJrIHRhciBhbmQgd2FzIHdpZGVseSB1dGlsaXplZCBmb3IgaXRzIGFudGlzZXB0aWMgYW5kIG1lZGljaW5hbCBwcm9wZXJ0aWVzLiBJbiBBbWVyaWNhLCBjaGV3aW5nIGd1bSB3YXMgZmlyc3QgaW50cm9kdWNlZCB0byBzZXR0bGVycyBieSB0aGUgQW1lcmljYW4gSW5kaWFucyB3aG8gY2hld2VkIHJlc2luIG1hZGUgZnJvbSB0aGUgc2FwIG9mIHNwcnVjZSB0cmVlcy4gQWZ0ZXIgV29ybGQgV2FyIElJIGNoZXdpbmcgZ3VtIHdhcyBtYWRlIG9mIGEgbGF0ZXggc2FwIHN1YnN0YW5jZSBjYWxsZWQgY2hpY2xlLCB3aGljaCBoYXMgYmVlbiBzdGVhZGlseSBlbmdpbmVlcmVkIGFuZCByZXBsYWNlZCBieSBzeW50aGV0aWMgcnViYmVycyBhbmQgYXJ0aWZpY2lhbCBzd2VldGVuZXJzIHRoYXQgYWxsb3cgZm9yIGdyZWF0ZXIgZmxhdm91cmluZywgY29sb3VyaW5nLCBhbmQgdGV4dHVyZS4gTW9kZXJuIGNoZXdpbmcgZ3VtIGhhcmRseSByZXNlbWJsZXMgaXRzIHByZWRlY2Vzc29ycyBpbiBhcHBlYXJhbmNlIGFuZCBmbGF2b3VyLiBJdCBoYXMgYWxzbyBnYWluZWQgdW5wcmVjZWRlbnRlZCBwb3B1bGFyaXR5LCBiZWNvbWluZyBhIDIwLWJpbGxpb24tZG9sbGFyIGluZHVzdHJ5IGluIE5vcnRoIEFtZXJpY2EuPC9wPlxuPHA+PGI+Qi48L2I+IE92ZXIgdGhlIHBhc3QgZGVjYWRlcywgdGhlIGJhZCByZXB1dGF0aW9uIGNoZXdpbmcgZ3VtIGVhcm5lZCBmb3IgY2F1c2luZyBjYXZpdGllcyBhbmQgZ3VtIGRpc2Vhc2UgaGFzIGFsc28gYmVndW4gdG8gZHdpbmRsZS4gV2l0aCB0aGUgYWR2ZW50IG9mIHN1Z2FybGVzcyBjaGV3aW5nIGd1bSwgbW9zdCBkZW50aXN0cyB0b2RheSBkZWVtIGNoZXdpbmcgZ3VtIGluIG1vZGVyYXRpb24gdG8gYmUgaGFybWxlc3MsIG9yIGV2ZW4gcG90ZW50aWFsbHkgYmVuZWZpY2lhbCB0byBvcmFsIGh5Z2llbmUuIEluIGFkZGl0aW9uLCBmdW5jdGlvbmFsIGNoZXdpbmcgZ3VtLCBhIHNwZWNpYWwgY2F0ZWdvcnkgb2YgZ3VtIHRoYXQgaW1wYXJ0cyBhIHByYWN0aWNhbCBmdW5jdGlvbiBpbiBhZGRpdGlvbiB0bywgb3IgYXMgYSByZXBsYWNlbWVudCBmb3IsIHRoZSB1c3VhbCBlbmpveW1lbnQgcHJvdmlkZWQgYnkgYSBjb25mZWN0aW9uYXJ5IGd1bSwgaGFzIGJlY29tZSBpbmNyZWFzaW5nbHkgcHJlc2NyaWJlZCBieSBkZW50aXN0cyBhbmQgZG9jdG9ycyBhbGlrZS4gQ29uZGl0aW9ucyBzdWNoIGFzIGJhZCBicmVhdGggYW5kIHRvYmFjY28gYWRkaWN0aW9ucyBhcmUgbm93IGNvbW1vbmx5IHRyZWF0ZWQgd2l0aCBmdW5jdGlvbmFsIGd1bS4gU3VyZ2VvbnMgYWxzbyBwcmVzY3JpYmUgZnVuY3Rpb25hbCBjaGV3aW5nIGd1bSBmb3IgcGF0aWVudHMgcmVjb3ZlcmluZyBmcm9tIGdhc3Ryb2ludGVzdGluYWwgc3VyZ2VyaWVzLjwvcD5cbjxwPjxiPkMuPC9iPiBSZWNlbnQgcmVzZWFyY2ggc3VnZ2VzdHMgdGhlIGJlbmVmaXRzIG9mIGd1bSBtYXkgbm90IGJlIGxpbWl0ZWQgdG8gbWVkaWNhdGVkIGd1bS4gQ2hld2luZyByZWd1bGFyIGd1bSBoYXMgYmVlbiBmb3VuZCB0byBib29zdCBjb2duaXRpdmUgcGVyZm9ybWFuY2UgaW4gbWFueSB3YXlzIGluY2x1ZGluZyBpbXByb3ZlZCByZWFjdGlvbiB0aW1lLCBtb3RvciBjb250cm9sLCBhbmQgYWxlcnRuZXNzLiBUaGVzZSBlZmZlY3RzIGhhdmUgYmVlbiBmb3VuZCB0byBjb21lIGF0IGFuIGV4cGVuc2UsIGhvd2V2ZXIuIEFsdGhvdWdoIGFzIG1hbnkgYXMgZWlnaHQgYXJlYXMgb2YgdGhlIGJyYWluIGFyZSBhY3RpdmF0ZWQgYnkgdGhlIHNpbXBsZSBhY3Qgb2YgY2hld2luZyBndW0sIHRoZSBjb2duaXRpdmUgZ2FpbnMgb2YgbWFzdGljYXRpb24taW5kdWNlZCBhcm91c2FsIGNhbiBvbmx5IGJlIHN1c3RhaW5lZCBmb3IgYSBzaG9ydCBwZXJpb2QuIE1vcmVvdmVyLCBjaGV3aW5nIGd1bSB3YXMgb2JzZXJ2ZWQgdG8gaW50ZXJmZXJlIHdpdGggdmVyYmFsLWZsdWVuY3kgYW5kIHNob3J0LW1lbW9yeSB0YXNrcy48L3A+XG48cD48Yj5ELjwvYj4gT3JhbCBoZWFsdGggcmVzZWFyY2hlcnMgcG9zaXQgdGhlIHNob3J0LWxpdmVkIGNvZ25pdGl2ZSBnYWlucyBvZiBjaGV3aW5nIGd1bSBwYWxlIGluIGNvbXBhcmlzb24gdG8gdGhlaXIgcG90ZW50aWFsbHkgaGF6YXJkb3VzIGhlYWx0aCBlZmZlY3RzLiBUaGV5IGNsYWltIHRoZSBpbm5vY3VvdXNuZXNzIG9mIHN1Z2FybGVzcyBndW0gaXMgYSBteXRoLCBleHBvdW5kaW5nIHRoYXQgc3VnYXIgc3Vic3RpdHV0ZXMgc3VjaCBhcyBhc3BhcnRhbWUgaGF2ZSBiZWVuIGluY3JlYXNpbmdseSBsaW5rZWQgdG8gZGlmZmVyZW50IHR5cGVzIG9mIGNhbmNlciBhbmQgYXV0b2ltbXVuZSBkaXNlYXNlcy4gVGhleSBhbHNvIHBvaW50IHRvIHBvc3NpYmxlIGNocm9uaWMgaXJyZXZlcnNpYmxlIGNvbmRpdGlvbnMgdGhhdCBtYXkgZW5zdWUgZnJvbSBleGNlc3NpdmUgZ3VtIGNoZXdpbmcgc3VjaCBhcyBoZWFkYWNoZXMsIHRpZ2h0bmVzcyBpbiBqYXcgbXVzY2xlcyBhbmQgbmVydmVzLCBtZXRhYm9saWMgaW1iYWxhbmNlcywgYW5kIGlycmVndWxhcml0aWVzIGluIG1hc3RpY2F0aW9uIHRoYXQgcmFuZ2UgZnJvbSB0b290aCBkZWNheSB0byBib25lIGxvc3MuPC9wPlxuPHA+PGI+RS48L2I+IE5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIGFib3ZlIHBhcmFncmFwaHMuPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJtYXRjaCIsImluc3RyIjoiRGVjaWRlIHdoaWNoIHBhcmFncmFwaCwgQSB0byBELCBoYXMgdGhlIGluZm9ybWF0aW9uIGdpdmVuIGluIGVhY2ggc3RhdGVtZW50IGJlbG93LiBTZWxlY3QgRSBpZiB0aGUgaW5mb3JtYXRpb24gaXMgbm90IGdpdmVuIGluIGFueSBvZiB0aGUgcGFyYWdyYXBocy4iLCJsZXR0ZXJzIjpbIkEiLCJCIiwiQyIsIkQiLCJFIl0sIml0ZW1zIjpbeyJuIjoxLCJ0ZXh0IjoiRXZpZGVuY2Ugc3VnZ2VzdHMgZ3VtIGNoZXdpbmcgY2FuIGVuaGFuY2Ugc29tZSBicmFpbiBmdW5jdGlvbnMuIiwia2V5IjozfSx7Im4iOjIsInRleHQiOiJUaGUgY2hlbWljYWwgYmFzZXMgb2YgY2hld2luZyBndW0gaGF2ZSBiZWVuIHJlZm9ybXVsYXRlZC4iLCJrZXkiOjF9LHsibiI6MywidGV4dCI6IkNoZXdpbmcgZ3VtIGlzIHVzZWQgcG9zdC1vcGVyYXRpdmVseSBhcyBhIGhlYWxpbmcgYWlkLiIsImtleSI6Mn0seyJuIjo0LCJ0ZXh0IjoiVGhlcmUgY2FuIGJlIGxpZmVsb25nIGRhbWFnZSBhc3NvY2lhdGVkIHdpdGggcmVndWxhciBpbnRha2Ugb2Ygc3ludGhldGljIHN1Z2Fycy4iLCJrZXkiOjR9LHsibiI6NSwidGV4dCI6IkNoZXdpbmcgZ3VtIGNhbiBjdXJiIHNvbWUgdW5oZWFsdGh5IGRlcGVuZGVuY2UgYmVoYXZpb3Vycy4iLCJrZXkiOjJ9LHsibiI6NiwidGV4dCI6IlNvbWUgcmVzZWFyY2hlcnMgb3Bwb3NlIHRoZSByZXBvcnRlZCBiZW5lZml0cyBvZiBjaGV3aW5nIGd1bS4iLCJrZXkiOjR9LHsibiI6NywidGV4dCI6IlBhdGllbnRzIHdobyBjaGV3IGd1bSByZWd1bGFybHkgdGVuZCB0byBiZSBtb3JlIG5lZ2xlY3RmdWwgb2YgdGhlaXIgb3JhbCBoeWdpZW5lLiIsImtleSI6NX0seyJuIjo4LCJ0ZXh0IjoiRWFybHkgY2hld2luZyBndW0gd2FzIGVudGlyZWx5IG5hdHVyYWwuIiwia2V5IjoxfSx7Im4iOjksInRleHQiOiJUaGUgYmVuZWZpdHMgb2Ygc3VnYXItZnJlZSBndW0gYXJlIHJlY29nbml6ZWQuIiwia2V5IjoyfV19XX0seyJpZCI6NCwibmFtZSI6IlJlYWRpbmcgUGFydCA0OiBSZWFkaW5nIGZvciBWaWV3cG9pbnRzIiwidGltZSI6IjEyIG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZSBmcm9tIGEgd2Vic2l0ZS4iLCJodG1sIjoiPHA+U3RlcGhhbmllIExlZSBpcyBhIHNjaWVuY2UgdGVhY2hlciBhdCBSeWVyc29uIFNlY29uZGFyeSB3aG8gYmVsaWV2ZXMgdGhhdCByZWFsIHNjaWVuY2Ugc2hvdWxkIGVuY291cmFnZSBjcml0aWNhbCB0aGlua2luZywgZXZlbiBpZiBpdCBtZWFucyBjaGFsbGVuZ2luZyB3aGF0J3Mgd3JpdHRlbiBpbiB0aGUgdGV4dGJvb2suIFBhcnQgb2YgdGhlIGN1cnJpY3VsdW0gaW52b2x2ZXMgbGVhcm5pbmcgYWJvdXQgY2xpbWF0ZSBjaGFuZ2UsIGFuZCBMZWUgd2FzIGRpc21heWVkIHRvIGZpbmQgdGhlIHRleHRib29rIG1hdGVyaWFsIHRvIGJlIFwibGl0dGxlIG1vcmUgdGhhbiBwcm9wYWdhbmRhLCB3aGljaCBjbGFpbXMgdGhhdCBnbG9iYWwgd2FybWluZyBpcyBjaGllZmx5IGEgaHVtYW4tY2F1c2VkIHBoZW5vbWVub24uXCI8L3A+XG48cD5MZWUgYXJndWVzIHRoYXQgZWR1Y2F0aW9uIGlzIHN1cHBvc2VkIHRvIHRlYWNoIHN0dWRlbnRzIGhvdyB0byBzZWUgb2JqZWN0aXZlbHksIHlldCB0ZXh0Ym9va3Mgb2Z0ZW4gbW9ub3BvbGl6ZSBjZXJ0YWluIHZpZXdwb2ludHMgYW5kIHB1c2ggdGhlbSBhcyB0aGUgb25seSB0cnV0aC4gSW4gdGhlIGNhc2Ugb2YgY2xpbWF0ZSBjaGFuZ2UsIExlZSB3YXMgYXBwYWxsZWQgdG8gZmluZCB0aGF0IG5vIGFsdGVybmF0aXZlIHRoZW9yaWVzIHdlcmUgcHJlc2VudGVkLiBcIlRoZSBhYnNlbmNlIG9mIG90aGVyIHBlcnNwZWN0aXZlcyBzZWVtcyB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0b3BpYyBvZiBnbG9iYWwgd2FybWluZyBoYXMgYmVlbiBtYWRlIGludG8gYSBzb3J0IG9mIGRvY3RyaW5lIHdoaWNoIHNlZWtzIHRvIGRpbWluaXNoIHRoZSBjcmVkaWJpbGl0eSBvZiBvdGhlciBwb2ludHMgb2YgdmlldyxcIiBMZWUgc2F5cy4gTGVlIHRhdWdodCBoZXIgc3R1ZGVudHMgYWRkaXRpb25hbCBwZXJzcGVjdGl2ZXMuIE5vdCBvbmx5IGRpZCBzaGUgdGVhY2ggdGhlIHRoZW9yeSBvZiBhbnRocm9wb2dlbmljIGdsb2JhbCB3YXJtaW5nLCB0aGF0IGlzLCB0aGF0IGdsb2JhbCB3YXJtaW5nIGlzIGNhdXNlZCBieSBodW1hbiBjb25zdW1wdGlvbiBvZiBmb3NzaWwgZnVlbHMgYW5kIHRoZSByZWxlYXNlIG9mIGNhcmJvbiBkaW94aWRlIGludG8gdGhlIGF0bW9zcGhlcmUsIGJ1dCBhbHNvIHRhdWdodCB0aGF0IHRocm91Z2hvdXQgaGlzdG9yeSwgdGhlIGVhcnRoJ3MgdGVtcGVyYXR1cmUgaGFzIG5hdHVyYWxseSByaXNlbiBhbmQgZmFsbGVuLjwvcD5cbjxwPk90aGVyIHNjaWVuY2UgdGVhY2hlcnMgYXQgTGVlJ3Mgc2Nob29sIGhhdmUgcmFpc2VkIGNvbmNlcm5zIHRoYXQgTGVlJ3MgYXBwcm9hY2ggaXMgb25seSBjb25mdXNpbmcgc3R1ZGVudHMuIENhcm9sIEhhcnZleSBhcmd1ZXMgdGhhdCB0aGUgZ3JlZW5ob3VzZSBnYXMgZWZmZWN0IGFuZCBzdWJzZXF1ZW50IGdsb2JhbCB3YXJtaW5nIGlzIG5vdCBhIGNvbnRyb3ZlcnN5IGluIHRoZSBzY2llbnRpZmljIGNvbW11bml0eS4gSXQgaGFzIGJlZW4gcHJvdmVuIHRoYXQgaHVtYW5zIGhhdmUgaW5jcmVhc2VkIHRoZSBhbW91bnQgb2YgZ3JlZW5ob3VzZSBnYXNlcyBpbiB0aGUgYXRtb3NwaGVyZSBieSByb3VnaGx5IDMwJSBpbiB0aGUgbGFzdCAxMDAgeWVhcnMuIFwiT3VyIHRleHRib29rcyBhcmUgdXAgdG8gZGF0ZSwgYW5kIExlZSBpcyBvbmx5IHByb21wdGluZyBzdHVkZW50cyB0byBkaXNtaXNzIHZhbHVhYmxlIHRleHRib29rIGluZm9ybWF0aW9uLFwiIEhhcnZleSBzYXlzLjwvcD5cbjxwPkxlZSBkaXNhZ3JlZXMsIGFzc2VydGluZyB0aGF0IHNjaWVuY2Ugc2hvdWxkIG5vdCBzaHkgYXdheSBmcm9tIGV2YWx1YXRpbmcgbXVsdGlwbGUgcGVyc3BlY3RpdmVzLiBcIkNhcmJvbiBkaW94aWRlIGNoYW5nZXMgaGF2ZSBub3QgYmVlbiBwcm92ZW4gdG8gYmUgdGhlIHByaW1hcnkgY2F1c2Ugb2YgZ2xvYmFsIHdhcm1pbmcsXCIgTGVlIHNheXMuIFwiSW4gZmFjdCwgcmVzZWFyY2ggaW5kaWNhdGVzIHRoZSByZXZlcnNlIG1pZ2h0IGJlIGhhcHBlbmluZzogZ2xvYmFsIHdhcm1pbmcgbWlnaHQgYmUgY2F1c2luZyBjaGFuZ2VzIGluIGNhcmJvbiBkaW94aWRlIGxldmVscy4gRWl0aGVyIHdheSwgbXkgam9iIGlzIHRvIGhlbHAgc3R1ZGVudHMgdG8gYW5hbHl6ZSBib3RoIHRoZW9yaWVzLCBub3Qgc2ltcGx5IGFjY2VwdCB0aGUgb25lIHByZXNlbnRlZCBpbiB0aGUgdGV4dGJvb2suXCI8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJDaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIHRvIGNvbXBsZXRlIGVhY2ggc3RhdGVtZW50IGFib3V0IHRoZSBhcnRpY2xlLiIsIml0ZW1zIjpbeyJuIjoxLCJwcmUiOiJTdGVwaGFuaWUgTGVlJ3MgbWFpbiBvYmplY3RpdmUgaW4gdGVhY2hpbmcgc2NpZW5jZSBpcyB0byIsIm9wdGlvbnMiOlsibWFrZSBzdXJlIHN0dWRlbnRzIGhhdmUgbWFzdGVyZWQgdGhlIHRleHRib29rIGNvbnRlbnQuIiwidGVhY2ggYWJvdXQgdGhlIGltcGFjdCBvZiBodW1hbiBhY3Rpdml0aWVzIGluIGdsb2JhbCB3YXJtaW5nLiIsImNoYWxsZW5nZSB3ZWxsIGVzdGFibGlzaGVkIGVkdWNhdGlvbmFsIHB1YmxpY2F0aW9ucy4iLCJwcm9tb3RlIHJlZmxlY3Rpb24gb24gZGlmZmVyZW50IHNjaWVudGlmaWMgcGVyc3BlY3RpdmVzLiJdLCJrZXkiOjR9LHsibiI6MiwicHJlIjoiQWNjb3JkaW5nIHRvIExlZSwgdGhlIG1haW4gaXNzdWUgd2l0aCB0ZXh0Ym9va3MgaXMgdGhhdCIsIm9wdGlvbnMiOlsidGhleSByZWZsZWN0IHJlc2VhcmNoIHNwb25zb3JlZCBieSBwcml2YXRlIGJ1c2luZXNzZXMuIiwidGhleSB0eXBpY2FsbHkgcHJlc2VudCBpbmZvcm1hdGlvbiBmcm9tIHBhcnRpY3VsYXIgdmFudGFnZSBwb2ludHMuIiwidGhleSBwcm9tb3RlIGxvdy1zdGFuZGFyZCByZXNlYXJjaCB3aXRoIG5vIHNjaWVudGlmaWMgY3JlZGliaWxpdHkuIiwidGhleSBjb250ZXN0IGxlc3MtcG9wdWxhciB0aGVvcmllcyBhYm91dCBnbG9iYWwgd2FybWluZy4iXSwia2V5IjoyfSx7Im4iOjMsInByZSI6IkxlZSdzIG9waW5pb24gb24gY2xpbWF0ZSBjaGFuZ2UgZGlmZmVycyBmcm9tIHNjaWVuY2UgdGV4dGJvb2tzIGluIHRoYXQiLCJvcHRpb25zIjpbInNoZSBhZ3JlZXMgaXQgaXMgYWN0dWFsbHkgYSBjaGllZmx5IGh1bWFuLWNhdXNlZCBwaGVub21lbm9uLiIsInNoZSBhcmd1ZXMgdGhhdCBmb3NzaWwgZnVlbCBjb25zdW1wdGlvbiBpcyBtb3N0bHkgdG8gYmxhbWUuIiwic2hlIG9ic2VydmVzIHRoYXQgaGlzdG9yaWNhbGx5IHRoZSBlYXJ0aCdzIHRlbXBlcmF0dXJlIGhhcyBmbHVjdHVhdGVkLiIsInNoZSBkZW1vbnN0cmF0ZXMgdGhhdCB0aGUgdGVtcGVyYXR1cmUgYXJvdW5kIHRoZSB3b3JsZCBoYXMgbWFpbmx5IGRyb3BwZWQuIl0sImtleSI6M30seyJuIjo0LCJwcmUiOiJUaGUgbWFpbiBjcml0aWNpc20gb2YgTGVlJ3MgdGVhY2hpbmcgYXBwcm9hY2ggaXMgdGhhdCIsIm9wdGlvbnMiOlsiaXQgaWdub3JlcyBjb250cm92ZXJzeSBpbiB0aGUgc2NpZW50aWZpYyBjb21tdW5pdHkuIiwiaXQgY291bGQgYmUgbWlzbGVhZGluZyBmb3Igc29tZSBzdHVkZW50cy4iLCJpdCBpZ25vcmVzIHRoZSB2aWV3cyBwcmVzZW50ZWQgaW4gdGhlIHRleHRib29rLiIsIml0IGxhY2tzIGEgaGlzdG9yaWNhbCBwZXJzcGVjdGl2ZS4iXSwia2V5IjoyfSx7Im4iOjUsInByZSI6IkxlZSByZXNwb25kcyB0byBjcml0aWNpc20gb2YgaGVyIHRlYWNoaW5nIGFwcHJvYWNoIGJ5Iiwib3B0aW9ucyI6WyJhcmd1aW5nIG11bHRpcGxlIHBlcnNwZWN0aXZlcyBvdWdodCB0byBiZSBwYXJ0IG9mIGxlYXJuaW5nIHNjaWVuY2UuIiwicmVpdGVyYXRpbmcgdGhhdCBnbG9iYWwgd2FybWluZyBpcyB5ZXQgdG8gYmUgc2NpZW50aWZpY2FsbHkgY29uZmlybWVkLiIsInF1ZXN0aW9uaW5nIGhlciBjb2xsZWFndWVzJyBzY2llbnRpZmljIGtub3dsZWRnZS4iLCJoaWdobGlnaHRpbmcgaG93IHdlbGwgaGVyIHN0dWRlbnRzIGhhdmUgYWNjZXB0ZWQgaGVyIGFwcHJvYWNoLiJdLCJrZXkiOjF9XX0seyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IlRoZSBmb2xsb3dpbmcgaXMgYSBjb21tZW50IGJ5IGEgdmlzaXRvciB0byB0aGUgd2Vic2l0ZSBwYWdlLiBDb21wbGV0ZSB0aGUgY29tbWVudCBieSBjaG9vc2luZyB0aGUgYmVzdCBvcHRpb24gdG8gZmlsbCBpbiBlYWNoIGJsYW5rLiIsImJvZHkiOlsiTGVlIGlzIHJpZ2h0IHRoYXQgc2Nob29scyAiLHsiYiI6Niwib3B0aW9ucyI6WyJzaG91bGQgbm90IGhpcmUgdW5kZXJxdWFsaWZpZWQgc2NpZW5jZSB0ZWFjaGVycy4iLCJzaG91bGQgbm90IGhhdmUgYSBmaXhlZCBzY2llbmNlIGN1cnJpY3VsdW0uIiwic2hvdWxkIHRlYWNoIG11bHRpcGxlIHBlcnNwZWN0aXZlcyBvbiBhIHN1YmplY3QuIiwic2hvdWxkIHRlYWNoIGNoaWxkcmVuIGFib3V0IHRoZSBwb2xpdGljcyBvZiByZXNlYXJjaC4iXSwia2V5IjozfSwiIFRoZSB0cm91YmxlIGlzIGhvdyB3ZSBkZWNpZGUgd2hpY2ggcG9pbnRzIG9mIHZpZXcgd2UgdGVhY2ggYW5kIHdobyBkZWNpZGVzLiBPbiB0aGUgb25lIGhhbmQsIGFzIExlZSBub3RlcywgIix7ImIiOjcsIm9wdGlvbnMiOlsid2UgY2Fubm90IHJlbHkgb24gdGV4dGJvb2tzIHRvIHByb3ZpZGUgYSBiYWxhbmNlZCB2aWV3LiIsInRlYWNoZXJzIGFyZSB1bndpbGxpbmcgdG8gc3VwcGxlbWVudCB0aGUgY29udGVudCBvZiB0aGVpciBjbGFzc2VzLiIsInBhcnQgb2YgdGhlIHNjaG9vbCBkYXkgc2hvdWxkIGJlIHNwZW50IGludmVzdGlnYXRpbmcgcmVzZWFyY2ggYXJ0aWNsZXMuIiwic3R1ZGVudHMgaGF2ZSBhc3N1bWVkIGEgcmF0aGVyIHBhc3NpdmUgaW50ZXJlc3QgaW4gc2NpZW50aWZpYyByZXNlYXJjaC4iXSwia2V5IjoxfSwiIE9uIHRoZSBvdGhlciBoYW5kLCBhcmUgdGVhY2hlcnMgYW55IGJldHRlciBhdCBwcmVzZW50aW5nIGFuIHVuYmlhc2VkIHBlcnNwZWN0aXZlPyAiLHsiYiI6OCwib3B0aW9ucyI6WyJUaGUgcmVzcG9uc2liaWxpdHkgb2Ygc2NpZW5jZSB0ZWFjaGVycyIsIlRoZSBxdWVzdGlvbiBvZiBjaGFuZ2luZyB0aGUgc2Nob29sJ3MgY3VycmljdWx1bSIsIlRoZSB2YWx1ZSBvZiByZWFkaW5nIG9yaWdpbmFsIHJlc2VhcmNoIGluIGNsYXNzIiwiVGhlIGlzc3VlIG9mIGNsaW1hdGUgY2hhbmdlIGFuZCBnbG9iYWwgd2FybWluZyJdLCJrZXkiOjR9LCIgdXBvbiB3aGljaCBMZWUgc2VlbXMgdG8gZm9jdXMgaXMgdmVyeSBjb21wbGV4LiBUaGUgc2NpZW50aXN0cyB0aGVtc2VsdmVzIGhhdmUgeWV0IHRvIG1ha2UgdXAgdGhlaXIgbWluZHMgYW5kIHlldCBMZWUgYmVsaWV2ZXMgdGhhdCBzY2llbmNlIHRlYWNoZXJzIGFyZSBxdWFsaWZpZWQgdG8gIix7ImIiOjksIm9wdGlvbnMiOlsiY3JlYXRlIHRlc3RzIHRoYXQgbWVhc3VyZSBzY2llbnRpZmljIGtub3dsZWRnZS4iLCJkaWN0YXRlIGhvdyByZXNlYXJjaGVycyBzaG91bGQgY2Fycnkgb3V0IHRoZWlyIGludmVzdGlnYXRpb25zLiIsIm1ha2UgY2hvaWNlcyBhYm91dCB3aGljaCB0aGVvcmllcyBzaG91bGQgYmUgdGF1Z2h0LiIsInRlYWNoIHN0dWRlbnRzIGFib3V0IHRoZSBpbXBhY3Qgb2YgZ2xvYmFsIHdhcm1pbmcuIl0sImtleSI6M30sIiBUaGlzIGlzIGEgY29tcGxpY2F0ZWQgcHJvYmxlbS4gSW4gdGhlIGVuZCwgaG93ZXZlciwgSSB0ZW5kIHRvIHNpZGUgd2l0aCBMZWUuIFRlYWNoZXJzICIseyJiIjoxMCwib3B0aW9ucyI6WyJzaG91bGQgcHJlc2VudCBkaXZlcnNlIHBvc2l0aW9ucyIsInN0b3AgdXNpbmcgdGhlIHRleHRib29rIiwiZm9jdXMgb24gZW52aXJvbm1lbnRhbCBwcm9ibGVtcyIsImhpcmUgYmV0dGVyLXByZXBhcmVkIHRlYWNoZXJzIl0sImtleSI6MX0sIiBvbiBhIHRvcGljIGFuZCBhbGxvdyBzdHVkZW50cyB0byBkcmF3IHRoZWlyIG93biBjb25jbHVzaW9ucy5cblxuTS4gTGFkbmVyIl19XX1dfTsKCmZ1bmN0aW9uIGNsYkVzdGltYXRlUihyYXcpewogIGlmIChyYXcgPj0gMzUpIHJldHVybiB7IGxldmVsOidDRUxQSVAgMTBcdTIwMTMxMicsIG5vdGU6J0FkdmFuY2VkIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMzApIHJldHVybiB7IGxldmVsOidDRUxQSVAgOScsICBub3RlOidFZmZlY3RpdmUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyNykgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA4JywgIG5vdGU6J0dvb2QgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyMikgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA3JywgIG5vdGU6J0FkZXF1YXRlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNicsICBub3RlOidEZXZlbG9waW5nIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTEpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNScsICBub3RlOidBY3F1aXJpbmcgcHJvZmljaWVuY3knIH07CiAgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA0IG9yIGJlbG93Jywgbm90ZTonS2VlcCBwcmFjdGljaW5nIScgfTsKfQoKKGZ1bmN0aW9uKCl7CiAgLyogLS0tLSBpbmplY3Qgc2NvcGVkIENTUyAoV29yZFByZXNzLXNhZmU6IDxzdHlsZT4gaW4gY29udGVudCBjYW4gYmUgc3RyaXBwZWQpIC0tLS0gKi8KICB2YXIgQ1NTID0gYAouY2xwci13cmFwey0tbmF2eTojMDUwRTIwOy0tYjkwMDojMEQyMzUyOy0tYjcwMDojMTI0NUE4Oy0tYjUwMDojMjU2M0VCOy0tYjQwMDojM0I4MkY2Oy0tYjIwMDojOTNDNUZEOy0tYjEwMDojREJFQUZFOy0tYjUwOiNFRkY2RkY7LS10ZWFsOiMwRDk0ODg7LS1jeWFuOiMwNkI2RDQ7LS1ncmVlbjojMTBCOTgxOy0tZ3JlZW41MDojRUNGREY1Oy0tcm9zZTojRjQzRjVFOy0tdGV4dDojMEYxNzJBOy0tbXV0ZWQ6IzQ3NTU2OTstLXN1YnRsZTojOTRBM0I4Oy0tYm9yZGVyOiNFMkU4RjA7LS1iYXItYmc6I0U4RUJFRjstLWJhci1ib3JkZXI6I0QzRDlFMDstLWJhci10ZXh0OiMxRjI5Mzc7LS1wYW5lbC1wLWJnOiNGNEY1Rjc7LS1wYW5lbC1wLWJvcmRlcjojRTNFNkVBOy0tcGFuZWwtcS1iZzojRTlGNEY3Oy0tcGFuZWwtcS1ib3JkZXI6I0Q2RThFRDstLWRkLW9wZW4tYmc6I0NCRUJGNDtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxzYW5zLXNlcmlmO2NvbG9yOnZhcigtLXRleHQpO21heC13aWR0aDoxMTgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjE2cHggMTZweCA1NnB4O2xpbmUtaGVpZ2h0OjEuNTtmb250LXNpemU6MTZweDt9Ci5jbHByLXdyYXAgKiwuY2xwci13cmFwICo6OmJlZm9yZSwuY2xwci13cmFwICo6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9Ci5jbHByLXdyYXAgYnV0dG9ue2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7fQouY2xwci13cmFwIGgxLC5jbHByLXdyYXAgaDIsLmNscHItd3JhcCBoMywuY2xwci13cmFwIHB7bWFyZ2luOjA7fQouY2xwci1oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjIycHg7YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTtjb2xvcjojZmZmO3BhZGRpbmc6MzRweCAzOHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEzcHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtib3gtc2hhZG93OjAgMjBweCA0MHB4IC0yMHB4IHJnYmEoNSwxNCwzMiwuNDUpO30KLmNscHItYXVyb3Jhe3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5jbHByLWF1cm9yYSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7ZmlsdGVyOmJsdXIoNDZweCk7b3BhY2l0eTouNTU7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMSl7d2lkdGg6NDIwcHg7aGVpZ2h0OjQyMHB4O2xlZnQ6LTEyMHB4O3RvcDotMjAwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMxMjQ1QTggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgyKXt3aWR0aDozODBweDtoZWlnaHQ6MzgwcHg7cmlnaHQ6LTgwcHg7dG9wOi0xNjBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzBEOTQ4OCAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDMpe3dpZHRoOjM0MHB4O2hlaWdodDozNDBweDtyaWdodDoyMiU7Ym90dG9tOi0yNDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItaGVyby1iYWRnZXN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWJhZGdlLWJyYW5ke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1iOTAwKTtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo0cHggMTFweDtib3JkZXItcmFkaXVzOjk5OXB4O2xldHRlci1zcGFjaW5nOi4wMWVtO30KLmNscHItYmFkZ2Utc2V0e2NvbG9yOnZhcigtLWIyMDApO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDt9Ci5jbHByLWhlcm8gaDF7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDQwcHgpO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07bGluZS1oZWlnaHQ6MS4xMjt9Ci5jbHByLWhlcm8tc3Vie3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiNDN0QyRTM7Zm9udC1zaXplOjE0LjVweDttYXgtd2lkdGg6NzYwcHg7fQouY2xwci1oZXJvLWNoaXBze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30KLmNscHItY2hpcHtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojRTVFRUZCO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO3BhZGRpbmc6NXB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLWN0YXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjZweDtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNXB4O3BhZGRpbmc6MTJweCAyMnB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMTJweCAyNHB4IC0xMHB4IHJnYmEoMzcsOTksMjM1LC44KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzLGJhY2tncm91bmQgLjE1czt9Ci5jbHByLWN0YTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtiYWNrZ3JvdW5kOnZhcigtLWI0MDApO30KLmNscHItdG9vbGJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtwYWRkaW5nOjEwcHggMTRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgNnB4IDE4cHggLTEycHggcmdiYSgxNSwyMyw0MiwuMjUpO3Bvc2l0aW9uOnN0aWNreTt0b3A6OHB4O3otaW5kZXg6MzA7fQouY2xwci10b29sYmFyW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItdG9vbGJhci1zcGFjZXJ7ZmxleDoxO30KLmNscHItc2NvcmUtY2hpcHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O30KLmNscHItdGJ0bntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2NvbG9yOnZhcigtLXRleHQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTNweDtwYWRkaW5nOjhweCAxNXB4O2JvcmRlci1yYWRpdXM6MTBweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJveC1zaGFkb3cgLjEyczt9Ci5jbHByLXRidG46aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNHB4IC04cHggcmdiYSgxNSwyMyw0MiwuMyk7fQouY2xwci10YnRuLWNoZWNre2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2JvcmRlci1jb2xvcjp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLXRidG4tY2hlY2s6aG92ZXJ7YmFja2dyb3VuZDojMGNhNjc4O30KLmNscHItdGJ0bltkaXNhYmxlZF17b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7Ym94LXNoYWRvdzpub25lO30KLmNscHItc2lte21hcmdpbi10b3A6MTZweDt9Ci5jbHByLXNpbVtoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLWRvdHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2luOjAgMCAxMnB4IDJweDtmbGV4LXdyYXA6d3JhcDt9Ci5jbHByLWRvdHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4O2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMTVzO30KLmNscHItZG90IGJ7ZGlzcGxheTppbmxpbmUtZmxleDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjEwMCk7Y29sb3I6dmFyKC0tYjkwMCk7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjExcHg7fQouY2xwci1kb3QuY2xwci1jdXJ7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjt9Ci5jbHByLWRvdC5jbHByLWN1ciBie2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjUpO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1kb25lIGJ7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLWNhdHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAxMHB4IDMwcHggLTE4cHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjExcHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1iYXItdGl0bGV7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWJhci10ZXh0KTtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1iYXItdGltZXJ7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tYmFyLXRleHQpO3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5jbHByLWJhci10aW1lciBie2ZvbnQtd2VpZ2h0OjgwMDt9Ci5jbHByLWNvbHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDowO30KLmNscHItcGFzc2FnZXtwYWRkaW5nOjIwcHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXAtYmcpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1xY29se3BhZGRpbmc6MThweCAyMnB4O2JhY2tncm91bmQ6dmFyKC0tcGFuZWwtcS1iZyk7bWF4LWhlaWdodDoxMjAwcHg7b3ZlcmZsb3c6YXV0bzt9Ci5jbHByLXBsYWJlbCwuY2xwci1pbnN0cntkaXNwbGF5OmZsZXg7Z2FwOjlweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTttYXJnaW4tYm90dG9tOjEycHg7fQouY2xwci1wbGFiZWw6OmJlZm9yZSwuY2xwci1pbnN0cjo6YmVmb3Jle2NvbnRlbnQ6ImkiO2ZsZXg6bm9uZTt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTppdGFsaWM7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MXB4O30KLmNscHItcGFzc2FnZSBwe2ZvbnQtc2l6ZToxNC41cHg7Y29sb3I6IzFlMmEzYTttYXJnaW4tYm90dG9tOjExcHg7bGluZS1oZWlnaHQ6MS43Mjt9Ci5jbHByLXBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTpibG9jazt9Ci5jbHByLWJsb2Nre2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXEtYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxNnB4IDE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O30KLmNscHItc3RlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7ZmxleC13cmFwOndyYXA7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7cGFkZGluZzo5cHggMDtsaW5lLWhlaWdodDoxLjc7fQouY2xwci1zdGVtICsgLmNscHItc3RlbXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLXNudW17Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO30KLmNscHItY2xvemV7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6Mi4xNTt9Ci5jbHByLWNsb3plIC5jbHByLXBhcmF7bWFyZ2luLWJvdHRvbToxMnB4O3doaXRlLXNwYWNlOnByZS13cmFwO30KLmNscHItbWF0Y2gtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMnB4O3BhZGRpbmc6MTFweCAwO2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS42O30KLmNscHItbWF0Y2gtcm93ICsgLmNscHItbWF0Y2gtcm93e2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRTZFREYxO30KLmNscHItbWF0Y2gtcm93IC5jbHByLXNudW17bWFyZ2luLXRvcDo1cHg7fQovKiBkcm9wZG93biB3aWRnZXQgKi8KLmNscHItZGR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjJweCAycHg7fQouY2xwci1kZC1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6NjRweDttYXgtd2lkdGg6MzQwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0I3QzJDRTtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjVweCA5cHg7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS10ZXh0KTtsaW5lLWhlaWdodDoxLjM1O3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEycyxib3JkZXItY29sb3IgLjEyczt9Ci5jbHByLWRkLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWRkLW9wZW4tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLXR4dHtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1kZC10eHQuY2xwci1lbXB0eXtjb2xvcjp2YXIoLS1zdWJ0bGUpO2xldHRlci1zcGFjaW5nOjNweDt9Ci5jbHByLWRkLWNhcmV0e2ZvbnQtc2l6ZTo5cHg7Y29sb3I6dmFyKC0tYjcwMCk7ZmxleDpub25lO30KLmNscHItZGQtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjYwO3RvcDpjYWxjKDEwMCUgKyA0cHgpO2xlZnQ6MDttaW4td2lkdGg6MjQwcHg7bWF4LXdpZHRoOjM2MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNDNkQwREE7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDE2cHggMzRweCAtMTJweCByZ2JhKDE1LDIzLDQyLC40KTtwYWRkaW5nOjVweDtkaXNwbGF5Om5vbmU7fQouY2xwci1kZC5jbHByLW9wZW4gLmNscHItZGQtbWVudXtkaXNwbGF5OmJsb2NrO30KLmNscHItZGQtb3B0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo5cHg7cGFkZGluZzo4cHggOXB4O2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS40O30KLmNscHItZGQtb3B0OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjUwKTt9Ci5jbHByLWRkLW9wdCAuY2xwci1yYWRpb3tmbGV4Om5vbmU7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MS41cHggc29saWQgIzlBQTdCNDttYXJnaW4tdG9wOjFweDt9Ci5jbHByLWRkLW9wdC5jbHByLXNlbCAuY2xwci1yYWRpb3tib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgNDIlLCNmZmYgNDclKTt9Ci5jbHByLWRkLmNscHItcmlnaHQgLmNscHItZGQtYnRue2JhY2tncm91bmQ6dmFyKC0tZ3JlZW41MCk7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ncmVlbik7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItZGQtYnRue2JhY2tncm91bmQ6I0ZGRjFGMjtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXJvc2UpO2NvbG9yOiNCRTEyM0M7fQouY2xwci1zb2x2ZWR7ZGlzcGxheTpub25lO21hcmdpbi1sZWZ0OjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDQ3ODU3O30KLmNscHItZGQuY2xwci13cm9uZyAuY2xwci1zb2x2ZWR7ZGlzcGxheTppbmxpbmU7fQouY2xwci1uYXZ7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTRweCAxOHB4O2JhY2tncm91bmQ6dmFyKC0tYmFyLWJnKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bntiYWNrZ3JvdW5kOnZhcigtLWI5MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7cGFkZGluZzo5cHggMjBweDtib3JkZXItcmFkaXVzOjlweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJhY2tncm91bmQgLjEyczt9Ci5jbHByLW5hdmJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI3MDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO30KLmNscHItbmF2YnRuLmNscHItZ2hvc3R7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItbmF2YnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZTt9Ci5jbHByLXJlc3VsdHN7bWFyZ2luLXRvcDoxOHB4O30KLmNscHItcmVzdWx0c1toaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXJlcy1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MjRweCAyNnB4O2JveC1zaGFkb3c6MCAxNnB4IDQwcHggLTIycHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1yZXMtdG9we2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1yZXMtc2NvcmV7Zm9udC1zaXplOjQ0cHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO2xpbmUtaGVpZ2h0OjE7fQouY2xwci1yZXMtc2NvcmUgc3Bhbntmb250LXNpemU6MjBweDtjb2xvcjp2YXIoLS1zdWJ0bGUpO30KLmNscHItcmVzLWNsYntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMHB4IDE2cHg7fQouY2xwci1yZXMtY2xiIGJ7ZGlzcGxheTpibG9jaztmb250LXNpemU6MThweDtjb2xvcjp2YXIoLS1iOTAwKTt9Ci5jbHByLXJlcy1jbGIgc21hbGx7Y29sb3I6dmFyKC0tbXV0ZWQpO30KLmNscHItcmVzLWJyZWFre2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1yZXMtcGlsbHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2JhY2tncm91bmQ6I0YxRjVGOTtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NnB4IDEzcHg7fQouY2xwci1yZXMtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4O2ZsZXgtd3JhcDp3cmFwO30KQG1lZGlhKG1heC13aWR0aDo4MjBweCl7LmNscHItY29sc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30uY2xwci1wYXNzYWdle2JvcmRlci1yaWdodDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0Om5vbmU7fS5jbHByLXFjb2x7bWF4LWhlaWdodDpub25lO319CmA7CiAgdmFyIHN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsgc3QudGV4dENvbnRlbnQgPSBDU1M7IGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3QpOwogIHZhciB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJXcmFwJyk7CiAgdmFyIHN0YXJ0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTdGFydCcpOwogIHZhciB0b29sYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJUb29sYmFyJyk7CiAgdmFyIHNpbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU2ltJyk7CiAgdmFyIGRvdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByRG90cycpOwogIHZhciBjYXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2F0Jyk7CiAgdmFyIHJlc3VsdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmVzdWx0cycpOwogIHZhciBzY29yZUNoaXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNjb3JlQ2hpcCcpOwogIHZhciBjaGVja0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2hlY2snKTsKICB2YXIgcmVzZXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc2V0Jyk7CgogIHZhciBRID0gW107CiAgdmFyIGN1clBhcnQgPSAwOwogIHZhciBjaGVja2VkID0gZmFsc2U7CgogIGZ1bmN0aW9uIGVsKHRhZywgY2xzLCBodG1sKXsgdmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpOyBpZihjbHMpZS5jbGFzc05hbWU9Y2xzOyBpZihodG1sIT1udWxsKWUuaW5uZXJIVE1MPWh0bWw7IHJldHVybiBlOyB9CgogIC8qIEJ1aWxkIHRoZSBwZXJzaXN0ZW50IHF1ZXN0aW9uIGxpc3QgT05DRTsgYXR0YWNoIC5fcSB0byBlYWNoIGl0ZW0vYmxhbmsgc28KICAgICByZS1yZW5kZXJpbmcgYSBwYXJ0IHJldXNlcyB0aGUgc2FtZSBzdGF0ZSBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LiAqLwogIGZ1bmN0aW9uIGluaXRRdWVzdGlvbnMoKXsKICAgIFEgPSBbXTsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCl7CiAgICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxrKXsKICAgICAgICBpZihibGsudHlwZT09PSdjbG96ZScpewogICAgICAgICAgYmxrLmJvZHkuZm9yRWFjaChmdW5jdGlvbih0b2speyBpZih0eXBlb2YgdG9rPT09J29iamVjdCcpeyB0b2suX3E9e3NlbDpudWxsLGtleTp0b2sua2V5LG46dG9rLmIscGFydDpwYXJ0LmlkfTsgUS5wdXNoKHRvay5fcSk7IH0gfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJsay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsgaXQuX3E9e3NlbDpudWxsLGtleTppdC5rZXksbjppdC5uLHBhcnQ6cGFydC5pZH07IFEucHVzaChpdC5fcSk7IH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIG1ha2VEcm9wZG93bihvcHRpb25zLCBxcmVmKXsKICAgIHZhciBkZCA9IGVsKCdzcGFuJywnY2xwci1kZCcpOwogICAgdmFyIGJ0biA9IGVsKCdidXR0b24nLCdjbHByLWRkLWJ0bicpOwogICAgdmFyIHR4dCA9IGVsKCdzcGFuJywnY2xwci1kZC10eHQgY2xwci1lbXB0eScsJyAgICcpOwogICAgdmFyIGNhcmV0ID0gZWwoJ3NwYW4nLCdjbHByLWRkLWNhcmV0JywnXHUyNWJlJyk7CiAgICBidG4uYXBwZW5kQ2hpbGQodHh0KTsgYnRuLmFwcGVuZENoaWxkKGNhcmV0KTsKICAgIHZhciBzb2x2ZWQgPSBlbCgnc3BhbicsJ2NscHItc29sdmVkJywnJyk7CiAgICB2YXIgbWVudSA9IGVsKCdzcGFuJywnY2xwci1kZC1tZW51Jyk7CiAgICBvcHRpb25zLmZvckVhY2goZnVuY3Rpb24ob3B0LCBpKXsKICAgICAgdmFyIG8gPSBlbCgnc3BhbicsJ2NscHItZGQtb3B0Jyk7CiAgICAgIG8uYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXJhZGlvJykpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLG9wdCkpOwogICAgICBvLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgICBxcmVmLnNlbCA9IGkrMTsKICAgICAgICB0eHQudGV4dENvbnRlbnQgPSBvcHQ7IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgICBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLXNlbCcpO30pOwogICAgICAgIG8uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgICAgICBjbG9zZUFsbCgpOwogICAgICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgICB9KTsKICAgICAgbWVudS5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgaWYoY2hlY2tlZCkgcmV0dXJuOwogICAgICB2YXIgd2FzT3BlbiA9IGRkLmNsYXNzTGlzdC5jb250YWlucygnY2xwci1vcGVuJyk7CiAgICAgIGNsb3NlQWxsKCk7CiAgICAgIGlmKCF3YXNPcGVuKSBkZC5jbGFzc0xpc3QuYWRkKCdjbHByLW9wZW4nKTsKICAgIH0pOwogICAgZGQuYXBwZW5kQ2hpbGQoYnRuKTsgZGQuYXBwZW5kQ2hpbGQoc29sdmVkKTsgZGQuYXBwZW5kQ2hpbGQobWVudSk7CiAgICBxcmVmLmRkRWwgPSBkZDsgcXJlZi50eHRFbCA9IHR4dDsgcXJlZi5zb2x2ZWRFbCA9IHNvbHZlZDsgcXJlZi5vcHRpb25zID0gb3B0aW9uczsKICAgIGlmKHFyZWYuc2VsIT1udWxsKXsKICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0aW9uc1txcmVmLnNlbC0xXTsgdHh0LmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOwogICAgICB2YXIgc28gPSBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpW3FyZWYuc2VsLTFdOyBpZihzbykgc28uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgIH0KICAgIHJldHVybiBkZDsKICB9CiAgZnVuY3Rpb24gY2xvc2VBbGwoKXsgd3JhcC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC5jbHByLW9wZW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1vcGVuJyk7fSk7IH0KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlQWxsKTsKCiAgZnVuY3Rpb24gYnVpbGRQYXJ0KHBpKXsKICAgIHZhciBwYXJ0ID0gUkRBVEEucGFydHNbcGldOwogICAgY2F0RWwuaW5uZXJIVE1MPScnOwogICAgdmFyIGJhciA9IGVsKCdkaXYnLCdjbHByLWJhcicpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aXRsZScsICdQcmFjdGljZSBUZXN0IDEgXHUyMDEzICcrcGFydC5uYW1lKSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItYmFyLXRpbWVyJywnU3VnZ2VzdGVkIHRpbWU6IDxiPicrcGFydC50aW1lKyc8L2I+JykpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQoYmFyKTsKICAgIHZhciBjb2xzID0gZWwoJ2RpdicsJ2NscHItY29scycpOwogICAgdmFyIGxlZnQgPSBlbCgnZGl2JywnY2xwci1wYXNzYWdlJyk7CiAgICBsZWZ0LmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLXBsYWJlbCcsIHBhcnQucGFzc2FnZS5sYWJlbCkpOwogICAgaWYocGFydC5wYXNzYWdlLnR5cGU9PT0naW1hZ2UnKXsKICAgICAgdmFyIGltZyA9IGVsKCdpbWcnLCdjbHByLXBpbWcnKTsgaW1nLnNyYyA9IHBhcnQucGFzc2FnZS5zcmM7IGltZy5hbHQgPSBwYXJ0LnBhc3NhZ2UuYWx0fHwnJzsgbGVmdC5hcHBlbmRDaGlsZChpbWcpOwogICAgfSBlbHNlIHsKICAgICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JyxudWxsLCBwYXJ0LnBhc3NhZ2UuaHRtbCkpOwogICAgfQogICAgdmFyIHJpZ2h0ID0gZWwoJ2RpdicsJ2NscHItcWNvbCcpOwogICAgcGFydC5ibG9ja3MuZm9yRWFjaChmdW5jdGlvbihibG9jayl7IHJpZ2h0LmFwcGVuZENoaWxkKGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpKTsgfSk7CiAgICBjb2xzLmFwcGVuZENoaWxkKGxlZnQpOyBjb2xzLmFwcGVuZENoaWxkKHJpZ2h0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGNvbHMpOwogICAgdmFyIG5hdiA9IGVsKCdkaXYnLCdjbHByLW5hdicpOwogICAgdmFyIHByZXYgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4gY2xwci1naG9zdCcsJ1x1MjE5MCBQcmV2aW91cyBwYXJ0Jyk7CiAgICB2YXIgbmV4dCA9IGVsKCdidXR0b24nLCdjbHByLW5hdmJ0bicsJ05leHQgcGFydCBcdTIxOTInKTsKICAgIHByZXYuZGlzYWJsZWQgPSAocGk9PT0wKTsgbmV4dC5kaXNhYmxlZCA9IChwaT09PVJEQVRBLnBhcnRzLmxlbmd0aC0xKTsKICAgIHByZXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBpZihwaT4wKSBnbyhwaS0xKTsgfSk7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk8UkRBVEEucGFydHMubGVuZ3RoLTEpIGdvKHBpKzEpOyB9KTsKICAgIG5hdi5hcHBlbmRDaGlsZChwcmV2KTsgbmF2LmFwcGVuZENoaWxkKG5leHQpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQobmF2KTsKICAgIGlmKGNoZWNrZWQpIGFwcGx5TWFya3MoKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpewogICAgdmFyIHdyYXBCID0gZWwoJ2RpdicsJ2NscHItYmxvY2snKTsKICAgIHdyYXBCLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWluc3RyJywgYmxvY2suaW5zdHIpKTsKICAgIGlmKGJsb2NrLnR5cGU9PT0nc3RlbWxpc3QnKXsKICAgICAgYmxvY2suaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7CiAgICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCdjbHByLXN0ZW0nKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXNudW0nLCBpdC5uKycuJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwgaXQucHJlKycgJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24oaXQub3B0aW9ucywgaXQuX3EpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J2Nsb3plJyl7CiAgICAgIHZhciBib3ggPSBlbCgnZGl2JywnY2xwci1jbG96ZScpOwogICAgICBibG9jay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsKICAgICAgICBpZih0eXBlb2YgdG9rPT09J3N0cmluZycpewogICAgICAgICAgdmFyIHNlZ3MgPSB0b2suc3BsaXQoJ1xuXG4nKTsKICAgICAgICAgIHNlZ3MuZm9yRWFjaChmdW5jdGlvbihzZWcsIGlkeCl7CiAgICAgICAgICAgIGlmKGlkeD4wKXsgYm94LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCc8YnI+PGJyPicpKTsgfQogICAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc2VnKSk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgYm94LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bih0b2sub3B0aW9ucywgdG9rLl9xKSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQoYm94KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J21hdGNoJyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1tYXRjaC1yb3cnKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGJsb2NrLmxldHRlcnMsIGl0Ll9xKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnRleHQpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0KICAgIHJldHVybiB3cmFwQjsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkRG90cygpewogICAgZG90c0VsLmlubmVySFRNTD0nJzsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocCwgaSl7CiAgICAgIHZhciBkID0gZWwoJ2J1dHRvbicsJ2NscHItZG90JysoaT09PWN1clBhcnQ\/JyBjbHByLWN1cic6JycpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnYicsbnVsbCwoaSsxKSkpOwogICAgICBkLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLFsnQ29ycmVzcG9uZGVuY2UnLCdBcHBseSBhIERpYWdyYW0nLCdJbmZvcm1hdGlvbicsJ1ZpZXdwb2ludHMnXVtpXSkpOwogICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oaSk7IH0pOwogICAgICBkb3RzRWwuYXBwZW5kQ2hpbGQoZCk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gZ28ocGkpeyBjdXJQYXJ0PXBpOyBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KHBpKTsgY2F0RWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsgfQoKICBmdW5jdGlvbiB1cGRhdGVTY29yZUNoaXAoKXsKICAgIHZhciBhbnMgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWwhPW51bGw7fSkubGVuZ3RoOwogICAgc2NvcmVDaGlwLnRleHRDb250ZW50ID0gY2hlY2tlZCA\/IChRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGgrJyAvICcrUS5sZW5ndGgrJyBjb3JyZWN0JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoYW5zKycgLyAnK1EubGVuZ3RoKycgYW5zd2VyZWQnKTsKICB9CgogIGZ1bmN0aW9uIGFwcGx5TWFya3MoKXsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgICAgaWYoIXEuZGRFbCkgcmV0dXJuOwogICAgICBxLmRkRWwuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1yaWdodCcsJ2NscHItd3JvbmcnKTsKICAgICAgaWYocS5zZWw9PT1xLmtleSl7IHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXJpZ2h0Jyk7IH0KICAgICAgZWxzZSB7CiAgICAgICAgcS5kZEVsLmNsYXNzTGlzdC5hZGQoJ2NscHItd3JvbmcnKTsKICAgICAgICBpZihxLnNvbHZlZEVsKSBxLnNvbHZlZEVsLnRleHRDb250ZW50ID0gJ1x1MjcxMyAnK3Eub3B0aW9uc1txLmtleS0xXTsKICAgICAgICBpZihxLnNlbD09bnVsbCAmJiBxLnR4dEVsKXsgcS50eHRFbC50ZXh0Q29udGVudD0nKG5vIGFuc3dlciknOyBxLnR4dEVsLmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOyB9CiAgICAgIH0KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gZG9DaGVjaygpewogICAgY2hlY2tlZCA9IHRydWU7CiAgICBhcHBseU1hcmtzKCk7CiAgICB2YXIgY29ycmVjdCA9IFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbD09PXEua2V5O30pLmxlbmd0aDsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgY2hlY2tCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgdmFyIGJ5UGFydCA9IHt9OwogICAgUS5mb3JFYWNoKGZ1bmN0aW9uKHEpeyBieVBhcnRbcS5wYXJ0XT1ieVBhcnRbcS5wYXJ0XXx8e2M6MCx0OjB9OyBieVBhcnRbcS5wYXJ0XS50Kys7IGlmKHEuc2VsPT09cS5rZXkpYnlQYXJ0W3EucGFydF0uYysrOyB9KTsKICAgIHZhciBlc3QgPSBjbGJFc3RpbWF0ZVIoY29ycmVjdCk7CiAgICB2YXIgcGlsbHMgPSBSREFUQS5wYXJ0cy5tYXAoZnVuY3Rpb24ocCl7IHZhciBiPWJ5UGFydFtwLmlkXXx8e2M6MCx0OjB9OyByZXR1cm4gJzxzcGFuIGNsYXNzPSJjbHByLXJlcy1waWxsIj5QYXJ0ICcrcC5pZCsnOiAnK2IuYysnLycrYi50Kyc8L3NwYW4+JzsgfSkuam9pbignJyk7CiAgICByZXN1bHRzRWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImNscHItcmVzLWNhcmQiPicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtdG9wIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXNjb3JlIj4nK2NvcnJlY3QrJzxzcGFuPi8nK1EubGVuZ3RoKyc8L3NwYW4+PC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jbGIiPjxiPicrZXN0LmxldmVsKyc8L2I+PHNtYWxsPicrZXN0Lm5vdGUrJyAmbWlkZG90OyBlc3RpbWF0ZWQgUmVhZGluZyBiYW5kPC9zbWFsbD48L2Rpdj4nCiAgICAgICsgJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYnJlYWsiPicrcGlsbHMrJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iY2xwci1uYXZidG4gY2xwci1naG9zdCIgaWQ9ImNscHJSZXZpZXciPlJldmlldyBhbnN3ZXJzIGluIGVhY2ggcGFydDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIiBpZD0iY2xwclJldHJ5Ij5UcnkgYWdhaW48L2J1dHRvbj48L2Rpdj4nCiAgICAgICsgJzxwIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Zm9udC1zaXplOjEyLjVweDtjb2xvcjp2YXIoLS1tdXRlZCkiPkVzdGltYXRlZCBiYW5kIGlzIGEgc3R1ZHkgZ3VpZGUgb25seSwgbm90IGFuIG9mZmljaWFsIENFTFBJUCBzY29yZS4gQ29ycmVjdCBhbnN3ZXJzIGFyZSBzaG93biB3aXRoIGEgZ3JlZW4gY2hlY2sgb24gZWFjaCBkcm9wLWRvd24geW91IGFuc3dlcmVkIGluY29ycmVjdGx5LjwvcD4nCiAgICAgICsgJzwvZGl2Pic7CiAgICByZXN1bHRzRWwuaGlkZGVuID0gZmFsc2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldHJ5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldmlldycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oMCk7IH0pOwogICAgcmVzdWx0c0VsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgfQoKICBmdW5jdGlvbiByZXNldEFsbCgpewogICAgY2hlY2tlZD1mYWxzZTsgaW5pdFF1ZXN0aW9ucygpOyBjdXJQYXJ0PTA7CiAgICBjaGVja0J0bi5kaXNhYmxlZD1mYWxzZTsKICAgIHJlc3VsdHNFbC5oaWRkZW49dHJ1ZTsgcmVzdWx0c0VsLmlubmVySFRNTD0nJzsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIHNpbS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgc3RhcnRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogICAgd3JhcC5xdWVyeVNlbGVjdG9yKCcuY2xwci1oZXJvJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICB0b29sYmFyLmhpZGRlbj1mYWxzZTsgc2ltLmhpZGRlbj1mYWxzZTsKICAgIGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOyBjaGVja2VkPWZhbHNlOwogICAgYnVpbGREb3RzKCk7IGJ1aWxkUGFydCgwKTsgdXBkYXRlU2NvcmVDaGlwKCk7CiAgfSk7CiAgY2hlY2tCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBkb0NoZWNrKTsKICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0QWxsKTsKfSkoKTs=\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 1 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-6009","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6009","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=6009"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6009\/revisions"}],"predecessor-version":[{"id":6611,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6009\/revisions\/6611"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}