{"id":6400,"date":"2026-07-11T01:11:03","date_gmt":"2026-07-11T01:11:03","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-5-test-1-reading\/"},"modified":"2026-07-12T03:24:37","modified_gmt":"2026-07-12T03:24:37","slug":"celpip-set-5-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-5-test-1-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 5 \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 5<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgTXIuIEFsYmVydHNvbiw8L3A+PHA+V2UgYXJlIGludGVyZXN0ZWQgaW4gcmVudGluZyB5b3VyIGNoYXJtaW5nIGNvdHRhZ2UgZm9yIHRoZSBmaXJzdCB0d28gd2Vla3Mgb2YgU2VwdGVtYmVyLiBJIGZvdW5kIHlvdXIgYWQgb24gdGhlIGludGVybmV0LCBhbmQgdGhlIHBpY3R1cmVzIGFyZSByZWFsbHkgYXR0cmFjdGl2ZS4gTGl2aW5nIHRoYXQgY2xvc2UgdG8gdGhlIG9jZWFuIHdvdWxkIGJlIGEgcmVhbCB0cmVhdCBmb3IgYSBmZXcgd2Vla3MuIEkgY2FuIGFscmVhZHkgc21lbGwgdGhlIHJlZnJlc2hpbmcgc2FsdCBhaXIhPC9wPjxwPkkmcnNxdW87dmUgaGVhcmQgdGhhdCB0aGUgQXRsYW50aWMgT2NlYW4gaXMgcXVpdGUgY29sZCBhbmQgdGhhdCBzd2ltbWluZyBpc24mcnNxdW87dCBhbHdheXMgcG9zc2libGUuIElzIHRoYXQgdHJ1ZT8gWW91ciBhZCBtZW50aW9ucyBuZWFyYnkgTWFydGluaXF1ZSBCZWFjaCwgYSA1LWttLWxvbmcgd2hpdGUgc2FuZCBiZWFjaCB3aXRoIGJlYXV0aWZ1bCB3YXZlcyBlbmpveWVkIGJ5IHN1cmZlcnMuIFRoZSBwaWN0dXJlcyBJJnJzcXVvO3ZlIHNlZW4gc2hvdyBzdXJmZXJzIGluIHByb3RlY3RpdmUgd2V0c3VpdHMsIGJ1dCBwZXJoYXBzIHRoYXQmcnNxdW87cyB3aW50ZXIgc3VyZmluZz8gV2UmcnNxdW87cmUgaG9waW5nIHRvIHB1dCBpbiBsb25nIGhvdXJzIGx5aW5nIG9uIHRoZSBiZWFjaCwgYW5kIHRoZW4gY29vbGluZyBvZmYgaW4gdGhlIGZyZXNoIG9jZWFuIHdhdGVyLjwvcD48cD5Bbm90aGVyIHRoaW5nIEkmcnNxdW87dmUgaGVhcmQgaXMgdGhhdCBOb3ZhIFNjb3RpYSBnZXRzIGh1cnJpY2FuZXMsIGVzcGVjaWFsbHkgaW4gU2VwdGVtYmVyLiBJcyB0aGF0IHRydWU\/IEkmcnNxdW87dmUgcmVhZCBhbGwgYWJvdXQgSHVycmljYW5lIEp1YW4gdGhhdCBoaXQgaW4gbGF0ZSBTZXB0ZW1iZXIsIDIwMDMuIEkgbGVhcm5lZCB0aGF0IHRoZSBwb3dlciB3YXMgb3V0IGZvciBzb21lIHJlc2lkZW50cyBmb3IgYXMgbG9uZyBhcyB0aHJlZSB3ZWVrcy4gSG93IGNhbiBhbnlvbmUgc3Vydml2ZSB3aXRob3V0IGVsZWN0cmljaXR5IGZvciB0aGF0IGxvbmc\/IEl0JnJzcXVvO3MgdW5pbWFnaW5hYmxlLiBJbiBhIHNpdHVhdGlvbiBzdWNoIGFzIHRoaXMsIHdoYXQgZG8geW91IGRvIGZvciBmb29kIGFuZCBjb2ZmZWUsIGZvciBoZWF0IGFuZCB3YXRlcj8gRG8geW91IGtlZXAgZW1lcmdlbmN5IHN1cHBsaWVzIGFuZCBpbmZvcm1hdGlvbiBpbiB0aGUgY290dGFnZT8gSSBqdXN0IGNhbiZyc3F1bzt0IGltYWdpbmUgd2luZHMgb2YgMTYwIGttL2ghIFdvdy4gVGhlIHdhdmVzIG11c3QgYmUgc3BlY3RhY3VsYXIgd2l0aCB0aGF0IG11Y2ggd2luZC4gSXQgd291bGQgYmUgZmFudGFzdGljIHdhdGNoaW5nIHRoZSB3YXZlcyBmcm9tIHRoZSBjb21mb3J0IG9mIHlvdXIgbG92ZWx5IGNvdHRhZ2UhPC9wPjxwPldlIHJlYWxseSBlbmpveSBzYW1wbGluZyB0aGUgbG9jYWwgY3Vpc2luZSwgYW5kIHdlJnJzcXVvO3ZlIHJlYWQgYWJvdXQgTm92YSBTY290aWFuIHNwZWNpYWx0aWVzIHN1Y2ggYXMgbG9ic3RlciBhbmQgc2NhbGxvcHMuIE9uIHRoZSBpbnRlcm5ldCBJIGZvdW5kIG9uZSBmb29kIHBsYWNlJm1kYXNoO2l0IGNhbiZyc3F1bzt0IHJlYWxseSBiZSBjYWxsZWQgYSByZXN0YXVyYW50Jm1kYXNoO3RoYXQgc2VydmVzIHNlYWZvb2QuIFRoaXMgaXMgU2NhbGxvcGluaSZyc3F1bztzLCB3aGljaCBpcyBzdXBwb3NlZCB0byBiZSBhIHNob3J0IGRyaXZlIGZyb20geW91ciBjb3R0YWdlLiBJdCBmZWF0dXJlcyB0d28gZGlzaGVzIHdvcnRoIHRyeWluZywgYSBzY2FsbG9wIHNhdXQmZWFjdXRlOyBhbmQgYSBjb2xkIGxvYnN0ZXIgcm9sbC4gV291bGQgeW91IHJlY29tbWVuZCBTY2FsbG9waW5pJnJzcXVvO3MsIG9yIHNob3VsZCB3ZSBnbyBpbnRvIHRoZSBjaXR5IHRvIGEgcmVhbCByZXN0YXVyYW50PzwvcD48cD5Bbnl3YXksIHdlIHdvdWxkIGxpa2UgdG8gcmVzZXJ2ZSB5b3VyIGNvdHRhZ2UuIFBsZWFzZSBsZXQgbWUga25vdyB3aGF0IGRldGFpbHMgeW91IG5lZWQgYW5kIGhvdyB0byBzZW5kIHRoZSBkZXBvc2l0LjwvcD48cD5UaGFua3MsPGJyPkFsaXNvbiBNYWNHcmVnb3I8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiB0aGUgbWVzc2FnZS4iLCJpdGVtcyI6W3sibiI6MSwicHJlIjoiQWxpc29uXHUyMDE5cyBtYWluIHJlYXNvbiBmb3Igd3JpdGluZyB0aGUgZW1haWwgaXMgdG8iLCJvcHRpb25zIjpbIm1ha2UgYSBjb3R0YWdlIHJlc2VydmF0aW9uLiIsImFzayBhYm91dCB0aGUgbmVhcmJ5IGJlYWNoLiIsImxlYXJuIG1vcmUgYWJvdXQgdGhlIGNvdHRhZ2UuIiwidW5kZXJzdGFuZCBtb3JlIGFib3V0IGh1cnJpY2FuZXMuIl0sImtleSI6MX0seyJuIjoyLCJwcmUiOiJBbGlzb24gaXMgaW50ZXJlc3RlZCBpbiIsIm9wdGlvbnMiOlsid2F0Y2hpbmcgYSBzdXJmaW5nIGNvbXBldGl0aW9uLiIsImJ1eWluZyBhIGhvdXNlIGJ5IHRoZSBvY2Vhbi4iLCJlYXRpbmcgaW4gcXVhbGl0eSByZXN0YXVyYW50cy4iLCJyZWFkaW5nIG1vcmUgYWJvdXQgaHVycmljYW5lcy4iXSwia2V5IjozfSx7Im4iOjMsInByZSI6IldoeSBkb2VzIEFsaXNvbiB0aGluayB0aGUgQXRsYW50aWMgT2NlYW4gbWlnaHQgYmUgY29sZD8iLCJvcHRpb25zIjpbIlNoZSBrbm93cyBvY2VhbnMgYXJlIGNvbGQuIiwiU2hlIHdhcyB0b2xkIHRoYXQgaXRcdTIwMTlzIGNvbGQuIiwiU2hlIGhhcyBhIGZyaWVuZCB3aG8gc3VyZnMgdGhlcmUuIiwiU2hlIHJlYWQgYWJvdXQgQXRsYW50aWMgdGVtcGVyYXR1cmVzLiJdLCJrZXkiOjJ9LHsibiI6NCwicHJlIjoiQWxpc29uIGlzIHdvcnJpZWQgYWJvdXQgaHVycmljYW5lcyBiZWNhdXNlIiwib3B0aW9ucyI6WyJzaGUgbmVlZHMgc3Vydml2YWwgdHJhaW5pbmcuIiwic2hlIHJlYWQgYWJvdXQgYSBmYW1vdXMgb25lLiIsInRoZSB3YXZlcyB3b3VsZCBiZSB0b28gYmlnLiIsInRoZSB3aW5kIG1heSBiZSB0b28gc3Ryb25nLiJdLCJrZXkiOjJ9LHsibiI6NSwicHJlIjoiQWxpc29uIGhhcyBuZXZlciBleHBlcmllbmNlZCIsIm9wdGlvbnMiOlsiY2hlYXAgcmVzdGF1cmFudHMuIiwiY29sZCB3YXRlci4iLCJzYW5kIGJlYWNoZXMuIiwic2V2ZXJlIHdlYXRoZXIuIl0sImtleSI6NH0seyJuIjo2LCJwcmUiOiJXaHkgZG9lcyBBbGlzb24gd2FudCB0byByZW50IHRoaXMgY290dGFnZT8iLCJvcHRpb25zIjpbIkl0XHUyMDE5cyBuZWFyIHRoZSBvY2Vhbi4iLCJJdFx1MjAxOXMgZmFtb3VzIHdpdGggc3VyZmVycy4iLCJJdFx1MjAxOXMgY2xvc2UgdG8gcmVzdGF1cmFudHMuIiwiSXRcdTIwMTlzIGluIE5vdmEgU2NvdGlhLiJdLCJrZXkiOjF9XX0seyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IkhlcmUgaXMgYSByZXNwb25zZSB0byB0aGUgbWVzc2FnZS4gQ29tcGxldGUgdGhlIHJlc3BvbnNlIGJ5IGZpbGxpbmcgaW4gdGhlIGJsYW5rcy4gU2VsZWN0IHRoZSBiZXN0IGNob2ljZSBmb3IgZWFjaCBibGFuayBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKS4iLCJib2R5IjpbIkRlYXIgTXMuIE1hY0dyZWdvcixcblxuV2Ugd291bGQgYmUgZGVsaWdodGVkIHRvIGhhdmUgeW91IHJlbnQgb3VyIGNvdHRhZ2UgaW4gU2VwdGVtYmVyLiBDb25zaWRlciBpdCBib29rZWQuXG5cbkFuc3dlcmluZyB5b3VyIHF1ZXN0aW9uIGFib3V0IHRoZSAiLHsiYiI6Nywib3B0aW9ucyI6WyJob3Qgd2hpdGUgc2FuZCIsIm9jZWFuIGJlaW5nIGNvbGQiLCJiZWF1dHkgb2YgdGhlIGJlYWNoIiwiY29sZCBzYWx0IGFpciJdLCJrZXkiOjJ9LCIsIGl0IG1heSBiZSB0cnVlLCBkZXBlbmRpbmcgb24gd2hhdCB5b3VcdTIwMTlyZSB1c2VkIHRvLiBXZSB0aGluayBpdFx1MjAxOXMgcGxlYXNhbnQsIGFuZCBlYXJseSBTZXB0ZW1iZXIgaXMgd2hlbiBpdFx1MjAxOXMgd2FybWVzdC4gSWYgeW91XHUyMDE5cmUgaW50ZXJlc3RlZCBpbiBzdXJmaW5nLCB5b3UgbmVlZCB0byBicmluZyB5b3VyIG93biAiLHsiYiI6OCwib3B0aW9ucyI6WyJzd2ltc3VpdHMiLCJnb2dnbGVzIiwidG93ZWxzIiwid2V0c3VpdHMiXSwia2V5Ijo0fSwiLCBidXQgd2UgcHJvdmlkZSB0aGUgYm9hcmRzLlxuXG5QZW9wbGUgZXhwZXJpZW5jZSBjb25zaWRlcmFibGUgIix7ImIiOjksIm9wdGlvbnMiOlsiaW5jb252ZW5pZW5jZSIsImV4Y2l0ZW1lbnQiLCJzdXBwb3J0IiwicGxlYXN1cmUiXSwia2V5IjoxfSwiIHdoZW4gaHVycmljYW5lcyBoaXQsIGJ1dCB0aGVzZSBzdG9ybXMgdXN1YWxseSBtaXNzIHVzLCB3aGljaCBpcyB3aHkgeW91XHUyMDE5dmUgcmVhZCBhYm91dCBqdXN0IG9uZSwgSnVhbi4gVGhlIGJlbGllZiBpcyB0aGF0IGEgYmFkIG9uZSBoaXRzIGV2ZXJ5IDUwIHllYXJzLCBzbyB5b3UgZG9uXHUyMDE5dCBuZWVkIHRvIHdvcnJ5LiBUbyBhbnN3ZXIgeW91ciBxdWVzdGlvbnMsIHRoZSBjb3R0YWdlIGhhcyAiLHsiYiI6MTAsIm9wdGlvbnMiOlsiYSBudW1iZXIgb2YgdXNlZnVsIHRvb2xzIiwiYSBsb3Qgb2YgcmFpbmNvYXRzIiwiYW4gZW1lcmdlbmN5IHN1cHBseSBraXQiLCJhIG5ldyB3ZWxsLWJ1aWx0IHJvb2YiXSwia2V5IjozfSwiLlxuXG5ZZXMsIHdlIHJlY29tbWVuZCBTY2FsbG9waW5pXHUyMDE5cywgYW5kIHRoZXJlIGFyZSBzZXZlcmFsIG90aGVyIGV4Y2VsbGVudCAiLHsiYiI6MTEsIm9wdGlvbnMiOlsic3BvdHMgdG8gZGluZSIsInBsYWNlcyB0byBmaXNoIiwic291dmVuaXIgc2hvcHMiLCJjb3R0YWdlIHJlbnRhbHMiXSwia2V5IjoxfSwiIGNsb3NlIGJ5LlxuXG5TZWUgeW91IGluIFNlcHRlbWJlciFcblxuSm9obiBBbGJlcnRzb24iXX1dfSx7ImlkIjoyLCJuYW1lIjoiUmVhZGluZyBQYXJ0IDI6IFJlYWRpbmcgdG8gQXBwbHkgYSBEaWFncmFtIiwidGltZSI6IjggbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBkaWFncmFtLiIsImh0bWwiOiI8c3R5bGU+LmFlLXNzYntib3JkZXI6MXB4IHNvbGlkICNjYmQ1ZTE7Ym9yZGVyLXJhZGl1czo4cHg7b3ZlcmZsb3c6aGlkZGVuO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDU7YmFja2dyb3VuZDojZmZmfS5hZS1zc2J0b3B7YmFja2dyb3VuZDojZjZhODAwO3BhZGRpbmc6MTJweCAxNHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcn0uYWUtc3NidG9wIGgze21hcmdpbjowO2NvbG9yOiMxMTE7Zm9udC1zaXplOjIycHh9LmFlLXNzYnRvcCBwe21hcmdpbjo0cHggMCAwO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzVjM2QwMH0uYWUtc3NibmF2e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtiYWNrZ3JvdW5kOiNkOTdiMjl9LmFlLXNzYm5hdiBzcGFue3BhZGRpbmc6NnB4IDlweDtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNmZmY7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjYzI2YTFlfS5hZS1zc2JoZXJve2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MXB4O2JhY2tncm91bmQ6I2NiZDVlMTtib3JkZXItdG9wOjFweCBzb2xpZCAjY2JkNWUxfS5hZS1zc2JoZXJvIGRpdntiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxMnB4fS5hZS1zc2J3ZWxjb21le3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxN3B4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6I2Q5OWEwMH0uYWUtc3NiZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyO2dhcDoxcHg7YmFja2dyb3VuZDojY2JkNWUxfS5hZS1zc2Jjb2x7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MCAwIDhweH0uYWUtc3NiY29sIGg0e21hcmdpbjowIDAgOHB4O2JhY2tncm91bmQ6IzJlNzRiNTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NnB4IDRweDtmb250LXNpemU6MTRweH0uYWUtc3NiY29sIHB7bWFyZ2luOjAgMTBweCA4cHg7Zm9udC1zaXplOjEyLjVweH0uYWUtc3NiZm9vdHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2JkNWUxO3BhZGRpbmc6OHB4IDEycHg7Zm9udC1zaXplOjEycHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLXNibGlua3tjb2xvcjojYzAwMDAwO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXsuYWUtc3NiZ3JpZCwuYWUtc3NiaGVyb3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfX08L3N0eWxlPjxkaXYgY2xhc3M9XCJhZS1zc2JcIj48ZGl2IGNsYXNzPVwiYWUtc3NidG9wXCI+PGgzPlNvdXRoZXJuIFNjaG9vbCBCb2FyZDwvaDM+PHA+RXZlcnlvbmUgV2VsY29tZSwgRXZlcnlvbmUgTGVhcm5zPC9wPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1zc2JuYXZcIj48c3Bhbj5Ib21lPC9zcGFuPjxzcGFuPkFib3V0PC9zcGFuPjxzcGFuPlNjaG9vbHM8L3NwYW4+PHNwYW4+UHJvZ3JhbXM8L3NwYW4+PHNwYW4+U3R1ZGVudHM8L3NwYW4+PHNwYW4+UGFyZW50czwvc3Bhbj48c3Bhbj5Db21tdW5pdHk8L3NwYW4+PHNwYW4+RW1wbG95bWVudDwvc3Bhbj48c3Bhbj5Cb2FyZDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtc3NiaGVyb1wiPjxkaXY+PHAgY2xhc3M9XCJhZS1zc2J3ZWxjb21lXCI+V2VsY29tZSB0byBLaW5kZXJnYXJ0ZW4hPC9wPjwvZGl2PjxkaXY+PHA+U1NCIGlzIHBsZWFzZWQgdG8gbm93IG9mZmVyIGZ1bGwtZGF5IGtpbmRlcmdhcnRlbiBpbiBhbGwgMjYgb2Ygb3VyIGVsZW1lbnRhcnkgc2Nob29scyEgPHNwYW4gY2xhc3M9XCJhZS1zYmxpbmtcIj5GaW5kIG91dCBtb3JlITwvc3Bhbj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXNzYmdyaWRcIj48ZGl2IGNsYXNzPVwiYWUtc3NiY29sXCI+PGg0PkxhdGVzdCBOZXdzPC9oND48cD48c3Ryb25nPkRheWNhcmUgU3BhY2VzIEFwcHJvdmVkIGZvciBTb3V0aGVybiBEaXN0cmljdDwvc3Ryb25nPjwvcD48cD5XZSBhcmUgZGVsaWdodGVkIHRvIGFubm91bmNlIHRoYXQgNTAwIGRheWNhcmUgc3BhY2VzIGZvciBpbmZhbnRzLCB0b2RkbGVycywgYW5kIHByZXNjaG9vbGVycyB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlLCBzdGFydGluZyBpbiBTZXB0ZW1iZXIgMjAxNiwgdGhyb3VnaCBwcm92aW5jaWFsIGZ1bmRpbmcuIFNwYWNlIHdpbGwgYmUgZHJhd24gZnJvbSB1bmRlcnV0aWxpemVkIHNjaG9vbHMgaW4gdGhlIGRpc3RyaWN0LiBSZWdpc3RlciA8c3BhbiBjbGFzcz1cImFlLXNibGlua1wiPmhlcmU8L3NwYW4+LjwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtc3NiY29sXCI+PGg0PlVwY29taW5nIEV2ZW50czwvaDQ+PHA+Vm9sdW50ZWVyIEluZm8gTmlnaHQgVGh1cnNkYXksIEZlYi4gMTJ0aCBhdCA2OjMwIHAubS4gPHNwYW4gY2xhc3M9XCJhZS1zYmxpbmtcIj5Nb3JlIGRldGFpbHMmaGVsbGlwOzwvc3Bhbj48L3A+PHA+S2luZGVyZ2FydGVuIHJlZ2lzdHJhdGlvbiBiZWdpbnMgc29vbiEgRGF0ZXMgVEJBLjwvcD48cD5Cb2FyZC13aWRlIGluaXRpYXRpdmVzIG1lZXRpbmcgb24gTWFyY2ggMXN0LiBTdGF5IHR1bmVkIGZvciBtb3JlIGRldGFpbHMhPC9wPjxwPlNwcmluZyBicmVhayZtZGFzaDthbGwgU1NCIHNjaG9vbHMmbWRhc2g7TWFyY2ggMTAtMTR0aC4gPHNwYW4gY2xhc3M9XCJhZS1zYmxpbmtcIj5Nb3JlIGV2ZW50cyZoZWxsaXA7PC9zcGFuPjwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtc3NiY29sXCI+PGg0PkUtTGVhcm5pbmcgUG9ydGFsPC9oND48cD5TU0IgaXMgdGVjaC1zYXZ2eSEgT3VyIG5ldyBlLWxlYXJuaW5nIHBvcnRhbCBpcyBub3cgYWNjZXNzaWJsZSBmb3IgPHU+YWxsPC91PiBzdHVkZW50cywgZnJvbSBlbGVtZW50YXJ5IHRvIGFkdWx0IGxlYXJuZXJzLiBDbGljayA8c3BhbiBjbGFzcz1cImFlLXNibGlua1wiPmhlcmU8L3NwYW4+IHRvIGxhdW5jaC48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXNzYmZvb3RcIj4mY29weTsgMjAxNiBTb3V0aGVybiBTY2hvb2wgQm9hcmQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIENvbnRhY3QgdXM6IDEtODAwLTU1NS05OTM3IG9yIDxzcGFuIGNsYXNzPVwiYWUtc2JsaW5rXCI+aW5mb0Bzc2IuY2E8L3NwYW4+PC9kaXY+PC9kaXY+In0sImJsb2NrcyI6W3sidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJSZWFkIHRoZSBmb2xsb3dpbmcgZW1haWwgbWVzc2FnZSBhYm91dCB0aGUgZGlhZ3JhbSBvbiB0aGUgbGVmdC4gQ29tcGxldGUgdGhlIGVtYWlsIGJ5IGZpbGxpbmcgaW4gdGhlIGJsYW5rcy4gU2VsZWN0IHRoZSBiZXN0IGNob2ljZSBmb3IgZWFjaCBibGFuayBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKS4iLCJib2R5IjpbIlRvOiA8ZmFycmFoQG5ld21haWwuY29tPlxuRnJvbTogPG1hcmphbjI5QGdvbWFpbC5jYT5cblN1YmplY3Q6IEluZm9ybWF0aW9uXG5cbkhpIEZhcnJhaCxcblxuTmljZSBtZWV0aW5nIHlvdSB0b2RheSEgQXMgcHJvbWlzZWQsIGhlcmUgaXMgdGhlICIseyJiIjoxLCJvcHRpb25zIjpbImNvbnRhY3QgaW5mb3JtYXRpb24gZm9yIHRoZSB0ZWFjaGVyIiwiZGV0YWlscyBhYm91dCB0aGUgZS1sZWFybmluZyBjb3Vyc2UiLCJsb2NhbCBzY2hvb2wgYm9hcmQgd2Vic2l0ZSIsImJyb2NodXJlIGZvciBteSBkYXVnaHRlcidzIHNjaG9vbCJdLCJrZXkiOjN9LCIuIChUbyBnbyB0byBpdCwganVzdCBjbGljayBIRVJFLikgQXMgSSBtZW50aW9uZWQsIEkgdGhpbmsgeW91ciBmYW1pbHkgaXMgaW4gdGhlIFRob21wc29uIFB1YmxpYyBTY2hvb2wgYXJlYSBsaWtlIHVzLCBidXQgaWYgeW91IGNsaWNrIG9uIHRoZSAiLHsiYiI6Miwib3B0aW9ucyI6WyJTY2hvb2xzIiwiRS1sZWFybmluZyBQb3J0YWwiLCJFbXBsb3ltZW50IiwiTmV3cyJdLCJrZXkiOjF9LCIgdGFiIG5lYXIgdGhlIHRvcCwgeW91IHNob3VsZCBiZSBhYmxlIHRvIGZpbmQgeW91ciBkZXNpZ25hdGVkIGxvY2F0aW9uLlxuXG5JIG5vdGljZWQgdGhhdCB0aGUgZGF0ZXMgaGF2ZSBub3QgeWV0IGJlZW4gYW5ub3VuY2VkIGZvciAiLHsiYiI6Mywib3B0aW9ucyI6WyJraW5kZXJnYXJ0ZW4gcmVnaXN0cmF0aW9uIiwic3ByaW5nIGJyZWFrIiwidm9sdW50ZWVyIGluZm9ybWF0aW9uIHNlc3Npb25zIiwiYm9hcmQtd2lkZSBtZWV0aW5ncyJdLCJrZXkiOjF9LCIsIHNvIEkgZ3Vlc3MgeW91XHUyMDE5bGwgaGF2ZSB0byBrZWVwIGNoZWNraW5nLiBBbHNvLCBJIHNhdyB0aGF0IHRoZXkgaGFkIHNvbWUgbmV3cyBhYm91dCBjaGlsZGNhcmUgc3BhY2VzICIseyJiIjo0LCJvcHRpb25zIjpbImF0IHRoZSBwcm92aW5jaWFsIGdvdmVybm1lbnQgc2l0ZXMiLCJwYWlkIGZvciBieSB0aGUgcHJvdmluY2lhbCBnb3Zlcm5tZW50IiwidGhyb3VnaG91dCB0aGUgcHJvdmluY2UiLCJmb3IgYSBsaW1pdGVkIHRpbWUgb25seSJdLCJrZXkiOjJ9LCIgd2hpY2ggbWF5IGJlIG9mIGludGVyZXN0IHRvIHlvdS5cblxuQnkgdGhlIHdheSwgYXMgZXZlbmluZyBFU0wgc3R1ZGVudHMgYXQgdGhlIHNjaG9vbCwgaXQgbG9va3MgbGlrZSB3ZSBhcmUgZWxpZ2libGUgZm9yICIseyJiIjo1LCJvcHRpb25zIjpbImZyZWUgZGF5Y2FyZSIsInZvbHVudGVlciB0cmFpbmluZyIsIm9ubGluZSBsZWFybmluZyIsImVtcGxveW1lbnQgb3Bwb3J0dW5pdGllcyJdLCJrZXkiOjN9LCIhIElcdTIwMTltIGV4Y2l0ZWQgdG8gdHJ5IHRoYXQgb3V0IGluIHRoZSBldmVuaW5ncyFcblxuU2VlIHlvdSB0b21vcnJvdyFcblxuTWFyamFuIl19LHsidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwiaXRlbXMiOlt7Im4iOjYsInByZSI6IkZhcnJhaCBhbmQgTWFyamFuIGFyZSBsaWtlbHkiLCJvcHRpb25zIjpbIm9sZCBmcmllbmRzLiIsIm5ldyBjbGFzc21hdGVzLiIsImZvcm1lciBjb2xsZWFndWVzLiIsInNjaG9vbCB0ZWFjaGVycy4iXSwia2V5IjoyfSx7Im4iOjcsInByZSI6IkZhcnJhaCBwcm9iYWJseSBoYXMgYSIsIm9wdGlvbnMiOlsieW91bmcgY2hpbGQgbGl2aW5nIHdpdGggaGVyLiIsImxvdCBvZiBleHBlcmllbmNlIHdpdGggdm9sdW50ZWVyaW5nLiIsImJhY2tncm91bmQgaW4gdGVjaG5vbG9neS4iLCJqb2IgaW4gdGhlIGV2ZW5pbmdzLiJdLCJrZXkiOjF9LHsibiI6OCwicHJlIjoiVGhlIG92ZXJhbGwgcHVycG9zZSBvZiBNYXJqYW4ncyBtZXNzYWdlIGlzIHRvIiwib3B0aW9ucyI6WyJjb25maXJtIGFuIGluZm9ybWFsIG1lZXRpbmcuIiwiZ2l2ZSBzb21lIHJlcXVlc3RlZCBhZHZpY2UuIiwicHJvdmlkZSBoZWxwZnVsIGluc3RydWN0aW9ucy4iLCJzaGFyZSB1c2VmdWwgaW5mb3JtYXRpb24uIl0sImtleSI6NH1dfV19LHsiaWQiOjMsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMzogUmVhZGluZyBmb3IgSW5mb3JtYXRpb24iLCJ0aW1lIjoiOSBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIHBhc3NhZ2UuIiwiaHRtbCI6IjxwPjxzdHJvbmc+QS48L3N0cm9uZz4gRm9yIHNvbWUsIGl0IG1heSBiZSBoYXJkIHRvIGltYWdpbmUgaG93IGEgc21hbGwgc3RhaW5sZXNzIHN0ZWVsIG5lZWRsZSBwdXQgaW50byBvbmUmcnNxdW87cyBsZWZ0IHBhbG0gY2FuIHNvb3RoZSBhIHN0b21hY2hhY2hlLiBZZXQgaW4gdGhlIHByYWN0aWNlIG9mIGFjdXB1bmN0dXJlLCBzdWNoIGZpbmUgbmVlZGxlcyBhcmUgdXNlZCB0byBwaWVyY2Ugc3BlY2lmaWMgcG9pbnRzIG9uIHRoZSBib2R5IGZvciBwYWluIHJlbGllZiBvciB0aGVyYXBldXRpYyBwdXJwb3Nlcy4gQWN1cHVuY3R1cmUgYmVnYW4gaW4gQ2hpbmEgdGhvdXNhbmRzIG9mIHllYXJzIGFnbyBhbmQgcmVtYWlucyBhIGxlYWRpbmcgZm9ybSBvZiBtZWRpY2FsIHRyZWF0bWVudCBpbiBzb21lIEFzaWFuIGN1bHR1cmVzLiBIb3dldmVyLCB0aGUgcHJhY3RpY2Ugb2YgYWN1cHVuY3R1cmUgaGFzIG9ubHkgdGFrZW4gaG9sZCBiZXlvbmQgaXRzIHRyYWRpdGlvbmFsIGhvbWVsYW5kcyBvdmVyIHRoZSBsYXN0IHRocmVlIGRlY2FkZXMuIE92ZXIgdGhhdCB0aW1lLCBpdHMgcG9wdWxhcml0eSBpbiBXZXN0ZXJuIGN1bHR1cmUgaGFzIGdyZWF0bHkgaW5jcmVhc2VkLiBJdCBpcyBub3cgYmVpbmcgaGFpbGVkIGJ5IG1hbnkgV2VzdGVybmVycyBhcyBhIHNhZmUsIGRydWctZnJlZSByZW1lZHkgZm9yIGFpbG1lbnRzIHN1Y2ggYXMgYXJ0aHJpdGlzLCBjaHJvbmljIHBhaW4sIGFkZGljdGlvbiwgYW5kIGRlcHJlc3Npb24uPC9wPjxwPjxzdHJvbmc+Qi48L3N0cm9uZz4gVHJhZGl0aW9uYWwgYWN1cHVuY3R1cmUgaXMgYmFzZWQgb24gdGhlIEVhc3QgQXNpYW4gYmVsaWVmIHRoYXQgdGhlIGJvZHkmcnNxdW87cyBpbnRlcm5hbCBvcmdhbnMgYXJlIGNvbm5lY3RlZCBieSBhIHN5c3RlbSBvZiBlbmVyZ3kgY2hhbm5lbHMuIEEgdmVyeSBzaW1wbGUgZXhwbGFuYXRpb24gaXMgdGhhdCB2aXRhbCBlbmVyZ3kgdHJhdmVscyBhbG9uZyB0aGVzZSBjaGFubmVscyBpbiB0aGUgYm9keSwgbGlrZSB3YXRlciBpbiBhIHN0cmVhbS4gRGlzZWFzZXMgYXJlIGNhdXNlZCBieSBhIGJsb2NrYWdlIGluIHRoZXNlIG5hdHVyYWwgZW5lcmd5IGZsb3dzLCBqdXN0IGFzIGEgZmFsbGVuIHRyZWUgd291bGQgb2JzdHJ1Y3QgYSBzdHJlYW0uIFRoZSBhY3VwdW5jdHVyaXN0IG11c3QgZmluZCB0aGUgb2JzdHJ1Y3Rpb24sIGlzb2xhdGUgdGhlIGFyZWEsIGFuZCBjbGVhciB0aGUgYmxvY2thZ2UuIFRvIGRvIHRoaXMsIGZpbmUgc3RhaW5sZXNzIHN0ZWVsIG5lZWRsZXMgYXJlIGluc2VydGVkIGludG8gYSByZWxhdGVkIGFjdXB1bmN0dXJlIHBvaW50LiBUaGVzZSBkaXNwb3NhYmxlIG5lZWRsZXMgYXJlIGdlbnRseSB0d2lybGVkIGFuZCB0aGVuIHJlbW92ZWQsIGFuZCB0aGUgZW5lcmd5IGZsb3cgY2FuIGJlIHJlc3RvcmVkIHRvIGEgbmF0dXJhbCBzdGF0ZS48L3A+PHA+PHN0cm9uZz5DLjwvc3Ryb25nPiBQZW9wbGUgd2hvIGhhdmUgYmVlbiBoZWxwZWQgYnkgYWN1cHVuY3R1cmUgaGF2ZSBsaXR0bGUgcHJvYmxlbSBhY2NlcHRpbmcgaXRzIHN1Y2Nlc3MuIFlldCBzb21lIGluIHRoZSBXZXN0ZXJuIG1lZGljYWwgY29tbXVuaXR5IGZpbmQgdGhlIHVuZmFtaWxpYXIgY29uY2VwdHMgb2YgZW5lcmd5IGFuZCBjaGFubmVscyBoYXJkIHRvIGJlbGlldmUuIEFzIGEgcmVzdWx0LCBleHBlcnRzIGluIHRoaXMgY29tbXVuaXR5IGhhdmUgdHJpZWQgdG8gZmluZCBtb3JlIHNjaWVudGlmaWMgcmVhc29ucyBmb3IgaG93IGFjdXB1bmN0dXJlIHdvcmtzLiBBZnRlciBkZWNhZGVzIG9mIHJlc2VhcmNoLCBzb21lIFdlc3Rlcm4gbWVkaWNhbCByZXNlYXJjaGVycyBoYXZlIHByb3Bvc2VkIHRoZW9yaWVzLjwvcD48cD48c3Ryb25nPkQuPC9zdHJvbmc+IEV4cGVyaW1lbnRhbCByZXNlYXJjaCBzdWdnZXN0cyB0aGF0IGFjdXB1bmN0dXJlIG5lZWRsZXMgcHV0IGludG8gY2VydGFpbiBwb2ludHMgb24gdGhlIGJvZHkgY2FuIHN0aW11bGF0ZSB0aGUgY2VudHJhbCBuZXJ2b3VzIHN5c3RlbSAoYnJhaW4gYW5kIHNwaW5hbCBjb3JkKS4gT25jZSBzdGltdWxhdGVkLCB0aGUgY2VudHJhbCBuZXJ2b3VzIHN5c3RlbSBjYW4gcmVsZWFzZSAmbGRxdW87ZmVlbCBnb29kJnJkcXVvOyBjaGVtaWNhbHMgaW50byB0aGUgbXVzY2xlcywgc3BpbmFsIGNvcmQsIGFuZCBicmFpbi4gVGhlc2UgbmF0dXJhbCBwYWlua2lsbGVycyBibG9jayBwYWluIHNpZ25hbHMgZnJvbSBnb2luZyB0byB0aGUgYnJhaW4sIGxlYWRpbmcgdG8gYSBmZWVsaW5nIG9mIHBoeXNpY2FsIGFuZCBlbW90aW9uYWwgd2VsbC1iZWluZy4gSW4gbGlnaHQgb2YgdGhlIHJlc2VhcmNoLCBhIGdyb3dpbmcgbnVtYmVyIG9mIHNjaWVudGlzdHMgYW5kIG1lZGljYWwgcHJhY3RpdGlvbmVycyBhcmUgc3VnZ2VzdGluZyB0aGUgdXNlIG9mIGFjdXB1bmN0dXJlIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4gSW4gZmFjdCwgaXQgaXMgYmVjb21pbmcgc28gcG9wdWxhciB0aGF0IG1hbnkgcGVvcGxlIGluIE5vcnRoIEFtZXJpY2EgYXJlIHVzaW5nIGl0IHRvIHRyZWF0IHRoZWlyIGFpbGluZyBob3VzZWhvbGQgcGV0cyE8L3A+PHA+PHN0cm9uZz5FLjwvc3Ryb25nPiBOb3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBhYm92ZSBwYXJhZ3JhcGhzLjwvcD4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoibWF0Y2giLCJpbnN0ciI6IkRlY2lkZSB3aGljaCBwYXJhZ3JhcGgsIEEgdG8gRCwgaGFzIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiBlYWNoIHN0YXRlbWVudCBiZWxvdy4gU2VsZWN0IEUgaWYgdGhlIGluZm9ybWF0aW9uIGlzIG5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIHBhcmFncmFwaHMuIiwibGV0dGVycyI6WyJBIiwiQiIsIkMiLCJEIiwiRSJdLCJpdGVtcyI6W3sibiI6MSwidGV4dCI6IlNrZXB0aWNpc20gaGFzIGxlZCB0byBpbnZlc3RpZ2F0aW9ucyBpbnRvIGFjdXB1bmN0dXJlXHUyMDE5cyBlZmZpY2FjeS4iLCJrZXkiOjN9LHsibiI6MiwidGV4dCI6IkluIGFjdXB1bmN0dXJlLCBpbGxuZXNzIGNhbiBiZSBhbGxldmlhdGVkIGJ5IGNsZWFyaW5nIG9ic3RydWN0aW9ucyB3aXRoaW4gdGhlIGJvZHkuIiwia2V5IjoyfSx7Im4iOjMsInRleHQiOiJTb21lIHN0dWRpZXMgaGF2ZSBzaG93biB0aGF0IGFjdXB1bmN0dXJlIGhhcyBsaXR0bGUgbW9yZSB0aGFuIGEgcGxhY2VibyBlZmZlY3QuIiwia2V5Ijo1fSx7Im4iOjQsInRleHQiOiJTb21lIGJlbGlldmUgdGhhdCBhY3VwdW5jdHVyZSB3b3JrcyBiZWNhdXNlIGl0IGNhdXNlcyB0aGUgYm9keSB0byBwcm9kdWNlIGl0cyBvd24gYW5lc3RoZXRpYy4iLCJrZXkiOjR9LHsibiI6NSwidGV4dCI6IkFjdXB1bmN0dXJlIGlzIGEgd2VsbCBlc3RhYmxpc2hlZCBtZWRpY2FsIHByYWN0aWNlIGluIEVhc3QgQXNpYS4iLCJrZXkiOjF9LHsibiI6NiwidGV4dCI6Ik9ubHkgaW4gcmVjZW50IHllYXJzIGhhcyBhY3VwdW5jdHVyZSBiZWNvbWUgYW4gYWNjZXB0ZWQgdHJlYXRtZW50IGFyb3VuZCB0aGUgd29ybGQuIiwia2V5IjoxfSx7Im4iOjcsInRleHQiOiJUaGUgYW5hbG9neSBvZiBhY3VwdW5jdHVyZSBpcyBha2luIHRvIGh5ZHJvLWlycmlnYXRpb24gc3lzdGVtcy4iLCJrZXkiOjJ9LHsibiI6OCwidGV4dCI6IlNjaWVudGlmaWMgc3R1ZGllcyBhcmUgYmVnaW5uaW5nIHRvIHByb3ZpZGUgZXZpZGVuY2UgZm9yIHRoZSBlZmZpY2FjeSBvZiBhY3VwdW5jdHVyZS4iLCJrZXkiOjR9LHsibiI6OSwidGV4dCI6IlNjaWVudGlmaWMgZXZpZGVuY2Ugc2hvd3MgdGhhdCBhY3VwdW5jdHVyZSBjdXJlcyBkYW1hZ2VkIG5lcnZlcyBhbmQgbXVzY2xlcy4iLCJrZXkiOjV9XX1dfSx7ImlkIjo0LCJuYW1lIjoiUmVhZGluZyBQYXJ0IDQ6IFJlYWRpbmcgZm9yIFZpZXdwb2ludHMiLCJ0aW1lIjoiMTIgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZyb20gYSB3ZWJzaXRlLiIsImh0bWwiOiI8cD5UaGUgQ2FuYWRhIFBlbnNpb24gUGxhbiAoQ1BQKSBjb3ZlcnMgYWxsIGVsaWdpYmxlIENhbmFkaWFucy4gQmFzZWQgb24gdGhlIGFtb3VudCBvZiBlYXJuaW5ncywgYSBkZWR1Y3Rpb24gaXMgbWFkZSBmcm9tIGVhY2ggcGF5IGNoZXF1ZSBhbmQgZGVwb3NpdGVkIGludG8gQ2FuYWRhJnJzcXVvO3MgUGVuc2lvbiBQbGFuIGZ1bmQuIEVtcGxveWVycyBhcmUgYWxzbyByZXF1aXJlZCB0byBjb250cmlidXRlIHRvIHRoZSBwbGFuIGZvciBlYWNoIG9mIHRoZWlyIGVtcGxveWVlcy4gV2hlbiBhbiBlbXBsb3llZSByZWFjaGVzIDY1IHllYXJzIG9mIGFnZSwgaGUgb3Igc2hlIGlzIGVudGl0bGVkIHRvIHJlY2VpdmUgcGF5bWVudHMgZnJvbSB0aGUgcGxhbi48L3A+PHA+TWFueSBwZW9wbGUgYmVsaWV2ZSB0aGF0IHBhcnRpY2lwYXRpb24gc2hvdWxkIGJlIHZvbHVudGFyeSwgYnV0IGhhdmluZyBhIGd1YXJhbnRlZWQgc3RyZWFtIG9mIHJldmVudWUgaW50byB0aGUgcGxhbiBtZWFucyB0aGF0IHRoZSBnb3Zlcm5tZW50IGNhbiBob3BlZnVsbHkgcHJvdmlkZSBhIHN0YWJsZSByZXR1cm4gdG8gY29udHJpYnV0b3JzLjwvcD48cD5Bbm90aGVyIGNyaXRpY2lzbSBvZiB0aGUgcGxhbiBpcyB0aGF0IHRoZSBwZW9wbGUgd2hvIG5lZWQgaXQgdGhlIG1vc3QgYXJlIHRoZSBvbmVzIHdobyByZWNlaXZlIHRoZSBsZWFzdC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBzaXplIG9mIHBheW1lbnRzIGRlcGVuZHMgb24gdGhlIGFtb3VudCBjb250cmlidXRlZCwgYW5kIHRoZSBhbW91bnQgY29udHJpYnV0ZWQgZGVwZW5kcyBvbiBvbmUmcnNxdW87cyBsZXZlbCBvZiBpbmNvbWUuIFBlb3BsZSB3aG8gaGF2ZSBoYWQgbGl0dGxlIG9yIGxvdy1wYXlpbmcgZW1wbG95bWVudCB0aHVzIHJlY2VpdmUgbG93IHBheW1lbnRzLiBBbmQgeWV0IHRoZXkgYXJlIHRoZSBvbmVzIHdobyBoYXZlIGJlZW4gbGVhc3QgYWJsZSB0byBwdXQgYXNpZGUgbW9uZXkgb2YgdGhlaXIgb3duIGZvciB0aGVpciBvbGQgYWdlLiBJdCBzaG91bGQgYmUgbm90ZWQsIGhvd2V2ZXIsIHRoYXQgb3RoZXIgZ292ZXJubWVudCBwcm9ncmFtcyBjYW4gcHJvdmlkZSBmaW5hbmNpYWwgYXNzaXN0YW5jZSBmb3IgcGVvcGxlIGluIG5lZWQuPC9wPjxwPlNvbWUgY29tcGFuaWVzIChlc3BlY2lhbGx5IGxhcmdlIG9uZXMpIGhhdmUsIGluIGFkZGl0aW9uIHRvIHRoaXMgZ292ZXJubWVudCBwbGFuLCB0aGVpciBvd24gcGVuc2lvbiBwbGFucyB0aGF0IHdvcmsgaW4gZXNzZW50aWFsbHkgdGhlIHNhbWUgd2F5LiBEZWR1Y3Rpb25zIGFyZSBhbHNvIGJhc2VkIG9uIGxldmVsIG9mIGluY29tZSwgYnV0IHBhcnQtdGltZSBlbXBsb3llZXMgYXJlIG9mdGVuIG5vdCBlbGlnaWJsZSBhdCBhbGwuIFRoaXMgYWdhaW4gc2VlbXMgdG8gcHV0IHRob3NlIHdpdGggbG93ZXIgaW5jb21lcyBhdCBhIGRpc2FkdmFudGFnZS4gRXZlbiBpZiBzb21lb25lIGhhcyB0d28gcGFydC10aW1lIGpvYnMgdGhhdCB0b2dldGhlciBlcXVhbCBhIGZ1bGwtdGltZSBqb2IsIGhlIG9yIHNoZSB3b3VsZCBiZSBlbGlnaWJsZSB0byBwYXJ0aWNpcGF0ZSBvbmx5IGluIHRoZSBDYW5hZGEgUGVuc2lvbiBQbGFuIGFuZCBwcm9iYWJseSBub3QgaW4gdGhlIHBlbnNpb24gcGxhbnMgb2ZmZXJlZCBieSBlaXRoZXIgZW1wbG95ZXIuIEJ1dCBhZ2FpbiwgdGhlcmUgYXJlIG90aGVyIHByb2dyYW1zLjwvcD48cD5Tb21lIGNyaXRpY3MgY29uc2lkZXIgYm90aCB0aGUgZ292ZXJubWVudCBhbmQgZW1wbG95ZXIgcGVuc2lvbiBwbGFucyB0byBiZSBwYXRyb25pemluZy4gVGhleSBiZWxpZXZlIHRoYXQgcGVvcGxlIHNob3VsZCBoYXZlIGNvbXBsZXRlIGZyZWVkb20gaW4gd2hldGhlciBhbmQgaG93IG11Y2ggdGhleSBzYXZlIGZvciB0aGVpciBvbGQgYWdlLCBhbG9uZyB3aXRoIGhvdyB0aGV5IGludmVzdCB3aGF0IHRoZXkgc2F2ZS4gU3VjaCBjcml0aWNzIHNlZW0gdG8gZm9yZ2V0IHRoYXQgdGhleSB0aGVuIHdvdWxkbiZyc3F1bzt0IGJlbmVmaXQgZnJvbSBnb3Zlcm5tZW50IG9yIGVtcGxveWVyIGNvbnRyaWJ1dGlvbnMhPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gb24gdGhlIHdlYnNpdGUuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IlRoZSBhdXRob3IncyBwdXJwb3NlIG9mIHRoZSBmaXJzdCBwYXJhZ3JhcGggaXMgdG8iLCJvcHRpb25zIjpbIm1ha2UgYSBwcmVkaWN0aW9uLiIsInByb3ZpZGUgYmFja2dyb3VuZCBpbmZvcm1hdGlvbi4iLCJpbmRpY2F0ZSBhIHNvbHV0aW9uLiIsInByZXNlbnQgYSBwZXJzb25hbCBhbmVjZG90ZS4iXSwia2V5IjoyfSx7Im4iOjIsInByZSI6IlRoZSBDUFAgYW5kIGNvbXBhbnkgcGVuc2lvbiBwbGFucyBhcmUgc2ltaWxhciB3aXRoIHJlc3BlY3QgdG8iLCJvcHRpb25zIjpbImxvdy1pbmNvbWUgZWFybmVycy4iLCJlbGlnaWJpbGl0eSBjcml0ZXJpYS4iLCJnb3Zlcm5tZW50IGNvbnRyaWJ1dGlvbnMuIiwiaW52ZXN0bWVudCBkZWNpc2lvbnMuIl0sImtleSI6MX0seyJuIjozLCJwcmUiOiJBdCA2NSB5ZWFycyBvZiBhZ2UsIHBlb3BsZSB3aXRoIGxvdy1pbmNvbWUgcGFydC10aW1lIGpvYnMgd2lsbCBtb3N0IGxpa2VseSIsIm9wdGlvbnMiOlsidXRpbGl6ZSBjb21wYW55IHBlbnNpb24gcGxhbnMuIiwiYmUgY29udGVudCB3aXRoIENQUCBwYXltZW50cy4iLCJyZXF1aXJlIG1vbmV0YXJ5IHN1cHBvcnQuIiwia2VlcCB3b3JraW5nIGF0IHRoZWlyIGpvYnMuIl0sImtleSI6M30seyJuIjo0LCJwcmUiOiJJZiBwZW5zaW9uIHBsYW5zIHdlcmUgdm9sdW50YXJ5LCB0aGUgY3JpdGljcyBtZW50aW9uZWQgaW4gdGhlIGxhc3QgcGFyYWdyYXBoIHdvdWxkIGxpa2VseSIsIm9wdGlvbnMiOlsicmVmcmFpbiBmcm9tIHBhcnRpY2lwYXRpbmcuIiwibWFrZSBoaWdoLXJpc2sgaW52ZXN0bWVudHMuIiwibG9zZSBhbGwgdGhlaXIgcmV0aXJlbWVudCBtb25leS4iLCJzZWVrIGdvdmVybm1lbnQgYXNzaXN0YW5jZS4iXSwia2V5IjoxfSx7Im4iOjUsInByZSI6IkNyaXRpY3MgYmVsaWV2ZSB0aGF0IHRoZSBwZW5zaW9uIHBsYW5zIGFyZSBwYXRyb25pemluZyBiZWNhdXNlIiwib3B0aW9ucyI6WyJ0aGV5IGFyZSBtYW5kYXRvcnkuIiwidGhleSBhZHZhbnRhZ2UgZnVsbC10aW1lIGVtcGxveWVlcy4iLCJjb21wYW5pZXMgcHJvdmlkZSBwZW5zaW9uIHBsYW5zLiIsImVtcGxveWVycyBtYWtlIGNvbnRyaWJ1dGlvbnMuIl0sImtleSI6MX1dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiVGhlIGZvbGxvd2luZyBpcyBhIGNvbW1lbnQgYnkgYSB2aXNpdG9yIHRvIHRoZSB3ZWJzaXRlIHBhZ2UuIENvbXBsZXRlIHRoZSBjb21tZW50IGJ5IGNob29zaW5nIHRoZSBiZXN0IG9wdGlvbiB0byBmaWxsIGluIGVhY2ggYmxhbmsuIiwiYm9keSI6WyJJIGRvbid0IHVuZGVyc3RhbmQgd2h5IGVtcGxveWVycyBhcmUgcmVxdWlyZWQgdG8gbWFrZSBDUFAgY29udHJpYnV0aW9ucy4gSXQgc2hvdWxkbid0IGJlIHRoZWlyIHJlc3BvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgZ292ZXJubWVudCBoYXMgYSBjb25zdGFudCBzb3VyY2Ugb2YgIix7ImIiOjYsIm9wdGlvbnMiOlsicmV2ZW51ZSIsImVtcGxveWVlcyIsImFjY291bnRzIiwidGF4ZXMiXSwia2V5IjoxfSwiIGZvciByZS1pbnZlc3RtZW50cy4gTXkgZ3Vlc3MgaXMgdGhhdCBoYXZpbmcgdG8gY29udHJpYnV0ZSB0byB0aGUgQ1BQICIseyJiIjo3LCJvcHRpb25zIjpbImRpc2FkdmFudGFnZXMiLCJjb25mdXNlcyIsImZ1ZWxzIiwiY29udHJvbHMiXSwia2V5IjoxfSwiIG1hbnkgYnVzaW5lc3Nlcy4gRXZlbiBmb3IgbGFyZ2VyIGNvbXBhbmllcywgSSB3YXMgc3VycHJpc2VkIGJ5IHRoZSBhdXRob3IncyBvcGluaW9uLiBXaHkgaXMgaXQgcHJvYmxlbWF0aWMgdGhhdCBtb3N0IGVtcGxveWVyIHBlbnNpb24gcHJvZ3JhbXMgIix7ImIiOjgsIm9wdGlvbnMiOlsiZW5jb3VyYWdlIGVtcGxveWVlcyB0byBtYWtlIGV4dHJhIENQUCBwYXltZW50cyIsIm1ha2Ugc21hbGxlciBkZWR1Y3Rpb25zIGZvciBwYXJ0LXRpbWUgd29ya2VycyIsImZ1bmQgb25seSBhIGNvbXBhbnlcdTIwMTlzIGZ1bGwtdGltZSBlbXBsb3llZXMiLCJtYWtlIGEgcHJvZml0IGZyb20gZW1wbG95ZWUgY29udHJpYnV0aW9ucyJdLCJrZXkiOjN9LCI\/IENvbXBhbmllcyBhbmQgaW5kaXZpZHVhbHMgc2hvdWxkIGJlIGZyZWUgdG8gZG8gd2hhdCB0aGV5IHdhbnQgd2l0aCB0aGVpciBtb25leS4gSSBjYW4gdW5kZXJzdGFuZCBwcm92aWRpbmcgIix7ImIiOjksIm9wdGlvbnMiOlsicmVjcmVhdGlvbiBmYWNpbGl0aWVzIiwiaGVhbHRoIGNhcmUgcGxhbnMiLCJneW0gbWVtYmVyc2hpcHMiLCJpbnZlc3RtZW50IGFkdmljZSJdLCJrZXkiOjJ9LCI7IGVtcGxveWVycyB3YW50IHRvIHNlZSB0aGVpciBlbXBsb3llZXMgYXQgdGhlIHdvcmtwbGFjZSBhcyBtdWNoIGFzIHBvc3NpYmxlLCBub3QgYWJzZW50IGR1ZSB0byBpbGxuZXNzLiBIb3dldmVyLCBJIGFncmVlIHdpdGggdGhlIGNyaXRpY3MsIGV2ZW4gaWYgaXQgbWVhbnMgSSBtaXNzIG91dCBvbiAiLHsiYiI6MTAsIm9wdGlvbnMiOlsiZW1wbG95ZXIgY29udHJpYnV0aW9ucyIsImNhcmVlciBvcHBvcnR1bml0aWVzIiwiZWFybHkgcmV0aXJlbWVudCIsImV4dGVuZGVkIGhlYWx0aGNhcmUiXSwia2V5IjoxfSwiLiJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 5 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-6400","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6400","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=6400"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6400\/revisions"}],"predecessor-version":[{"id":6562,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6400\/revisions\/6562"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}