{"id":6426,"date":"2026-07-11T06:04:37","date_gmt":"2026-07-11T06:04:37","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-10-test-2-reading\/"},"modified":"2026-07-12T03:24:25","modified_gmt":"2026-07-12T03:24:25","slug":"celpip-set-10-test-2-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-10-test-2-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 10 \u00b7 Practice Test 2"},"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 10<\/span> <\/div>\n<h1>Reading Practice Test 2<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMiAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAyIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDIiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgS3Jpc3Rpbiw8L3A+PHA+SSBjYW4mcnNxdW87dCBiZWxpZXZlIEkmcnNxdW87bSBnb2luZyB0byBiZSB2aXNpdGluZyB5b3UgaW4gb25seSB0aHJlZSB3ZWVrcyEgU2luY2UgeW91IG1vdmVkIGF3YXksIHlvdSZyc3F1bzt2ZSBhbHJlYWR5IGNvbWUgYmFjayB0byBWYW5jb3V2ZXIgdG8gdmlzaXQuIEl0JnJzcXVvO3MgYWJvdXQgdGltZSBJIHJlcGFpZCB0aGUgZmF2b3VyLiBJIGNhbiZyc3F1bzt0IHdhaXQgdG8gc2VlIE5vcndheSBhdCBsYXN0LiBBbHRob3VnaCBJIGtub3cgeW91IHJlY2VudGx5IG1vdmVkIHRvIGFuIGFwYXJ0bWVudCBpbiBPc2xvLCBJJnJzcXVvO2QgbG92ZSB0byB2aXNpdCB5b3VyIHBhcmVudHMmcnNxdW87IGZhcm0gdGhhdCB5b3UmcnNxdW87dmUgdG9sZCBtZSBzbyBtdWNoIGFib3V0LCBlc3BlY2lhbGx5IHNpbmNlIEkmcnNxdW87bGwgYmUgdGhlcmUgaW4gc3ByaW5nLiBUaGUgcGljdHVyZXMgeW91IHNob3dlZCBtZSBvZiB0aGUgZmxvd2VycyBibG9vbWluZyBpbiB0aGUgaGlsbHMgd2VyZSBpbmNyZWRpYmxlLjwvcD48cD5BcyB3ZSBkaXNjdXNzZWQgYmVmb3JlLCBJJnJzcXVvO20gc3RpbGwgdXAgZm9yIHRyYXZlbGluZyBhcm91bmQgRXVyb3BlIGZvciBhIHdlZWsgYWZ0ZXIgeW91IHNob3cgbWUgYXJvdW5kIE5vcndheS4gSSBhZ3JlZSB3aXRoIHlvdSB0aGF0IGJ1eWluZyBhIHRyYWluIHBhc3MgYW5kIHN0b3BwaW5nIG9mZiBhdCB2YXJpb3VzIGNpdGllcyB3b3VsZCBiZSBmdW4sIGFuZCBhbHNvIHRoZSBsZWFzdCBleHBlbnNpdmUgd2F5IG9mIGdldHRpbmcgYXJvdW5kLiBJIGxvb2tlZCBpbnRvIG15IGJ1ZGdldCBhbmQgSSZyc3F1bzt2ZSBiZWVuIGFibGUgdG8gc2F2ZSBhIGxvdCBtb3JlIHRoYW4gSSBleHBlY3RlZCwgc28gd2UgY291bGQgZXZlbiB0cmF2ZWwgaW4gdGhlIENvbWZvcnQgY2xhc3MgcmF0aGVyIHRoYW4gdGhlIEVjb25vbXkgY2xhc3Mgd2hpY2ggd2UgaGFkIG9yaWdpbmFsbHkgaW50ZW5kZWQuIEZvciBhIDMtaG91ciB0cmFpbiByaWRlLCBDb21mb3J0IGNsYXNzIHRpY2tldHMgYXJlIGFyb3VuZCAkOTAsIGFuZCBFY29ub215IHRpY2tldHMgYXJlICQ2MC4gSSBkb24mcnNxdW87dCBtaW5kIGVpdGhlciB3YXksIGJ1dCB3aWRlciBzZWF0cyBzb3VuZCBhIGxvdCBtb3JlIGx1eHVyaW91cy4gSXQgaXMgdXAgdG8geW91LiBKdXN0IGxldCBtZSBrbm93IHdoYXQgeW91IGRlY2lkZS48L3A+PHA+SSBwcm9wb3NlIHdlIGZseSB0byBBbXN0ZXJkYW0gdG8gc3RhcnQgb2ZmIGFuZCB0aGVuIHRha2UgdGhlIHRyYWluIGZyb20gdGhlcmUuIEkmcnNxdW87ZCBsaWtlIHRvIHNwZW5kIGF0IGxlYXN0IGEgZmV3IGRheXMgZXhwbG9yaW5nIEFtc3RlcmRhbS4gTXkgbW90aGVyIGF0dGVuZGVkIGEgYnVzaW5lc3MgY29uZmVyZW5jZSB0aGVyZSBsYXN0IHllYXIgYW5kIHNoZSBzYWlkIEkmcnNxdW87ZCBsb3ZlIGl0LiBJJnJzcXVvO20gaW50ZXJlc3RlZCBpbiB2aXNpdGluZyB0aGUgbXVzZXVtIG9mIFZhbiBHb2doLCBhcyBoZSZyc3F1bztzIGFsd2F5cyBiZWVuIG15IGZhdm91cml0ZSBhcnRpc3QuIFRoZSBtdXNldW0gaGFzIHRoZSBiaWdnZXN0IGNvbGxlY3Rpb24gaW4gdGhlIHdvcmxkIG9mIFZhbiBHb2doJnJzcXVvO3MgYXJ0LCB3aXRoIHNvbWUgMjAwIHBhaW50aW5ncyBhbmQgb3ZlciA1NTAgc2tldGNoZXMuIFRoYXQgd291bGQgYmUgYW1hemluZyB0byBzZWUuPC9wPjxwPkFmdGVyIEFtc3RlcmRhbSwgSSZyc3F1bzttIG5vdCBwaWNreSB3aGVyZSB3ZSBnbyB3aXRoIHRoZSB0cmFpbiBwYXNzLiBJJnJzcXVvO2QgbG92ZSB0byB2aXNpdCBQYXJpcyBhbmQgQnJ1c3NlbHMsIGJ1dCB3ZSBjb3VsZCBhbHNvIGp1c3Qgbm90IHBsYW4gYW55dGhpbmcgYW5kIGRlY2lkZSBpbiB0aGUgbW9tZW50LiBBcyBsb25nIGFzIEkmcnNxdW87bSBiYWNrIGluIE9zbG8gb24gQXVnIDI3dGggZm9yIG15IGZsaWdodCBiYWNrIHRvIFZhbmNvdXZlciwgSSZyc3F1bzttIHVwIGZvciBhbnl0aGluZy48L3A+PHA+SSZyc3F1bztsbCBjYWxsIHlvdSBpbiBhIGZldyBkYXlzIHRvIGdpdmUgeW91IG15IGZsaWdodCBkZXRhaWxzLiBJJnJzcXVvO20gc28gZXhjaXRlZCB0byBzZWUgeW91ITwvcD48cD5BbGV4PC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIG1lc3NhZ2UuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IkFsZXggd3JvdGUgdGhpcyBsZXR0ZXIgdG8iLCJvcHRpb25zIjpbImFwb2xvZ2l6ZSBmb3IgY2FuY2VsbGluZyB0aGUgdHJpcC4iLCJwdXJjaGFzZSB0cmFpbiB0aWNrZXRzLiIsImNvbW1lbnQgb24gc29tZSBiZWF1dGlmdWwgZmxvd2Vycy4iLCJzZXQgYSB0ZW50YXRpdmUgdHJhdmVsIHNjaGVkdWxlLiJdLCJrZXkiOjR9LHsibiI6MiwicHJlIjoiV2hpY2ggY2l0eSBoYXMgS3Jpc3RpbiBiZWVuIHRvIGF0IGxlYXN0IHR3byB0aW1lcz8iLCJvcHRpb25zIjpbIkFtc3RlcmRhbSIsIlZhbmNvdXZlciIsIk9zbG8iLCJQYXJpcyJdLCJrZXkiOjJ9LHsibiI6MywicHJlIjoiS3Jpc3RpbiBsaXZlcyIsIm9wdGlvbnMiOlsib24gYSBmYXJtIHdpdGggaGVyIHBhcmVudHMuIiwiaW4gVmFuY291dmVyLiIsImluIEFtc3RlcmRhbS4iLCJpbiBhbiBhcGFydG1lbnQgaW4gT3Nsby4iXSwia2V5Ijo0fSx7Im4iOjQsInByZSI6IkFmdGVyIHNwZW5kaW5nIHRpbWUgaW4gTm9yd2F5LCBBbGV4IHdhbnRzIHRvIiwib3B0aW9ucyI6WyJoZWFkIGJhY2sgdG8gVmFuY291dmVyLiIsImNoZWNrIG91dCBCcnVzc2Vscy4iLCJzdGVlciBjbGVhciBvZiBQYXJpcy4iLCJob3Agb24gYSBwbGFuZSB0byBBbXN0ZXJkYW0uIl0sImtleSI6NH0seyJuIjo1LCJwcmUiOiJBbGV4IHdvdWxkIHByZWZlciB0byIsIm9wdGlvbnMiOlsidHJhdmVsIENvbWZvcnQgY2xhc3MuIiwidHJhdmVsIEVjb25vbXkgY2xhc3MuIiwicmVudCBhIGNhci4iLCJyZW50IGEgYmlrZS4iXSwia2V5IjoxfSx7Im4iOjYsInByZSI6IkFsZXggaGFzIGFscmVhZHkiLCJvcHRpb25zIjpbImV4cGxvcmVkIEFtc3RlcmRhbS4iLCJib3VnaHQgdHJhaW4gdGlja2V0cy4iLCJib29rZWQgYSBmbGlnaHQgYmFjayB0byBWYW5jb3V2ZXIuIiwiY2FsbGVkIEtyaXN0aW4gd2l0aCB0aGUgZmxpZ2h0IGRldGFpbHMuIl0sImtleSI6M31dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiSGVyZSBpcyBhIHJlc3BvbnNlIHRvIHRoZSBtZXNzYWdlLiBDb21wbGV0ZSB0aGUgcmVzcG9uc2UgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiRGVhciBBbGV4LFxuXG5JIHdhcyB0aHJpbGxlZCB0byBnZXQgeW91ciBsZXR0ZXIsIGFuZCBJXHUyMDE5bSByZWFsbHkgbG9va2luZyBmb3J3YXJkIHRvIHNlZWluZyB5b3UgYWdhaW4uIEkgYXBwcmVjaWF0ZSB5b3VyIix7ImIiOjcsIm9wdGlvbnMiOlsiZmxleGliaWxpdHkgd2l0aCIsImxvdyBjb3N0IiwidW5jZXJ0YWludHkgYWJvdXQiLCJ3b3JyeWluZyBhYm91dCJdLCJrZXkiOjF9LCJidWRnZXRpbmcuIEhvd2V2ZXIsIEkgdGhpbmsgSSBjYW4gZ28gYWxvbmcgd2l0aCB5b3VyIGJ1ZGdldC5cblxuTXkgYnJvdGhlciBpcyBkcml2aW5nIG91dCB0byBteSBwYXJlbnRzXHUyMDE5Iix7ImIiOjgsIm9wdGlvbnMiOlsicGxhY2UgaW4gdGhlIGNvdW50cnkiLCJhcGFydG1lbnQgZG93bnRvd24iLCJjb25kbyBpbiBPc2xvIiwiY2FiaW4gYnkgdGhlIGxha2UiXSwia2V5IjoxfSwidGhlIGRheSBhZnRlciB5b3UgYXJyaXZlLCBzbyB3ZSBjYW4gZ2V0IGEgcmlkZSB3aXRoIGhpbS4gRnJvbSB0aGVyZSB3ZSBjYW4gZ2V0IG9uIHRoZSB0cmFpbiBhbmQgc3RhcnQgb3VyIEV1cm9wZWFuIGFkdmVudHVyZS4gWW91XHUyMDE5cmUgcmlnaHQgYWJvdXQgc3BlbmRpbmcgYSBsaXR0bGUgbW9yZSBvbiB0aGUgdHJhaW4gdGlja2V0czsgdGhlIHNlYXRzIGFyZSBtdWNoIix7ImIiOjksIm9wdGlvbnMiOlsicHJldHRpZXIiLCJyb29taWVyIiwic29mdGVyIiwiZmFuY2llciJdLCJrZXkiOjJ9LCIsIG1ha2luZyB0aGUgdHJpcCBhIGxvdCBtb3JlIHBsZWFzYW50LlxuXG5PbmNlIHdlIHJlYWNoIEFtc3RlcmRhbSwgSVx1MjAxOWQgbG92ZSB0byBleHBsb3JlIHRoZSBhcmVhIGZvciBhIGNvdXBsZSBvZiBkYXlzIGFuZCIseyJiIjoxMCwib3B0aW9ucyI6WyJ2aXNpdCB0aGUgVmFuIEdvZ2ggTXVzZXVtIiwiZ2V0IGEgZmxpZ2h0IHRvIFBhcmlzIiwiYXR0ZW5kIHRoZSBidXNpbmVzcyBjb25mZXJlbmNlIiwidGhlbiBoZWFkIGJhY2sgaG9tZSJdLCJrZXkiOjF9LCIsIHdoaWNoIHNvdW5kcyBpbmNyZWRpYmxlLiBJIGFsc28gbG92ZSB5b3VyIGlkZWEgYWJvdXQgYmVpbmcgYSBiaXQiLHsiYiI6MTEsIm9wdGlvbnMiOlsibW9yZSBvcmdhbmlzZWQiLCJtb3JlIHNwb250YW5lb3VzIiwibGVzcyBidXN5IiwibGVzcyBjYXN1YWwiXSwia2V5IjoyfSwiZm9yIHRoZSBsYXR0ZXIgcGFydCBvZiB0aGUgdHJpcC5cblxuSVx1MjAxOWxsIGF3YWl0IHlvdXIgY2FsbCB3aXRoIHRoZSB0cmF2ZWwgZGV0YWlscy5cblxuWW91cnMgdHJ1bHksXG5LcmlzdGluIl19XX0seyJpZCI6MiwibmFtZSI6IlJlYWRpbmcgUGFydCAyOiBSZWFkaW5nIHRvIEFwcGx5IGEgRGlhZ3JhbSIsInRpbWUiOiI4IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgZGlhZ3JhbS4iLCJodG1sIjoiPHN0eWxlPi5hZS1tbnV7Ym9yZGVyOjFweCBzb2xpZCAjZTBjNGEwO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MTRweDtiYWNrZ3JvdW5kOiNmZmZ9LmFlLW1udS1oZWFke2JhY2tncm91bmQ6I2ZiZjZlZjtwYWRkaW5nOjE0cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2UwOGEyZX0uYWUtbW51LWhlYWQgaDN7bWFyZ2luOjA7Y29sb3I6I2UwN2IxYTtmb250LXNpemU6MjRweH0uYWUtbW51LWhlYWQgaDR7bWFyZ2luOjJweCAwIDA7Y29sb3I6I2UwN2IxYTtmb250LXNpemU6MTdweH0uYWUtbW51LW5vdGV7bWFyZ2luOjEwcHggMTRweCAwO2ZvbnQtc2l6ZToxMi41cHg7Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6IzU1NTt0ZXh0LWFsaWduOmNlbnRlcn0uYWUtbW51LWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDowIDIwcHg7cGFkZGluZzo4cHggMTZweCAxNnB4fS5hZS1tbnUtc2Vje21hcmdpbjoxMnB4IDAgNHB4O2NvbG9yOiNlMDdiMWE7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MTVweH0uYWUtbW51LXN1Ym5vdGV7bWFyZ2luOjAgMCA2cHg7Zm9udC1zaXplOjEyLjVweDtjb2xvcjojNjY2O2ZvbnQtc3R5bGU6aXRhbGljfS5hZS1tbnUtaXRlbXttYXJnaW46MCAwIDlweH0uYWUtbW51LWl0ZW0gLm5te2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzMzM30uYWUtbW51LWl0ZW0gLmRze2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEyLjVweDtjb2xvcjojNTU1O2xpbmUtaGVpZ2h0OjEuNH0uYWUtbW51LWl0ZW0gLnBye2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzJlN2QzMn1AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXsuYWUtbW51LWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19PC9zdHlsZT48ZGl2IGNsYXNzPVwiYWUtbW51XCI+PGRpdiBjbGFzcz1cImFlLW1udS1oZWFkXCI+PGgzPkVkd2FyZCZyc3F1bztzIEhvbWVzdHlsZSBSZXN0YXVyYW50PC9oMz48aDQ+QnJlYWtmYXN0IE1lbnU8L2g0PjwvZGl2PjxwIGNsYXNzPVwiYWUtbW51LW5vdGVcIj5BZGQgZXh0cmEgaGFzaGJyb3ducyB0byBhbnkgbWVhbCBmb3IganVzdCAkMC45OS4gQ29mZmVlIGp1c3QgJDAuOTkgd2hlbiB5b3Ugb3JkZXIgYW55IGJyZWFrZmFzdCBtZWFsLjwvcD48ZGl2IGNsYXNzPVwiYWUtbW51LWdyaWRcIj48ZGl2IGNsYXNzPVwiYWUtbW51LWNvbFwiPjxkaXYgY2xhc3M9XCJhZS1tbnUtc2VjXCI+RWR3YXJkJnJzcXVvO3MgRmF2b3VyaXRlczwvZGl2PjxkaXYgY2xhc3M9XCJhZS1tbnUtaXRlbVwiPjxzcGFuIGNsYXNzPVwibm1cIj5FZHdhcmQmcnNxdW87cyBIZWFydHkgQnJlYWtmYXN0PC9zcGFuPiA8c3BhbiBjbGFzcz1cInByXCI+JDEwLjk5PC9zcGFuPjxzcGFuIGNsYXNzPVwiZHNcIj5Ud28gZWdncyBhbnkgc3R5bGUsIHR3byBzYXVzYWdlcywgdHdvIHN0cmlwcyBvZiBjcmlzcHkgYmFjb24sIGhhc2hicm93bnMsIGFuZCB5b3VyIGNob2ljZSBvZiBGcmVuY2ggdG9hc3QsIHBhbmNha2VzLCBvciB0b2FzdC48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFlLW1udS1pdGVtXCI+PHNwYW4gY2xhc3M9XCJubVwiPlZlZ2dpZSBCcmVha2Zhc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPVwicHJcIj4kOS45OTwvc3Bhbj48c3BhbiBjbGFzcz1cImRzXCI+QSBzY3JhbWJsZWQgZWdnIHdpdGggZ3JlZW4gb25pb24sIGdyZWVuIHBlcHBlciwgbXVzaHJvb21zLCBkaWNlZCB0b21hdG8sIGFuZCByZWxpc2ggb24gb3VyIG5ldyBtdWx0aWdyYWluIGJ1bi4gU2VydmVkIHdpdGggZnJlc2ggZnJ1aXQuICg0NDAgY2Fsb3JpZXMsIDE1IGcgZmF0LCA0ODAgbWcgc29kaXVtLCAyMiBnIHByb3RlaW4pPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1tbnUtc2VjXCI+QmVuZWRpY3QgYW5kIEJ1cnJpdG88L2Rpdj48ZGl2IGNsYXNzPVwiYWUtbW51LWl0ZW1cIj48c3BhbiBjbGFzcz1cIm5tXCI+RWdncyBCZW5lZGljdDwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJwclwiPiQxMC45OTwvc3Bhbj48c3BhbiBjbGFzcz1cImRzXCI+RW5nbGlzaCBtdWZmaW4gdG9wcGVkIHdpdGggYmFjayBiYWNvbiwgdHdvIHBvYWNoZWQgZWdncywgYW5kIGhvbGxhbmRhaXNlIHNhdWNlLiBTZXJ2ZWQgd2l0aCBoYXNoYnJvd25zLjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtbW51LWl0ZW1cIj48c3BhbiBjbGFzcz1cIm5tXCI+QnJlYWtmYXN0IEJ1cnJpdG88L3NwYW4+IDxzcGFuIGNsYXNzPVwicHJcIj4kOS45OTwvc3Bhbj48c3BhbiBjbGFzcz1cImRzXCI+Um9hc3RlZCBjaGlja2VuIGJyZWFzdCwgc2NyYW1ibGVkIGVnZ3MsIGNoZWVzZSwgc2F1dCZlYWN1dGU7ZWQgdG9tYXRvZXMsIGFuZCBncmVlbiBwZXBwZXJzIHdyYXBwZWQgaW4gYSB3aG9sZXdoZWF0IHRvcnRpbGxhLiBTZXJ2ZWQgd2l0aCB0b21hdG8gc2Fsc2EsIHNvdXIgY3JlYW0sIGFuZCBoYXNoYnJvd25zLjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtbW51LWNvbFwiPjxkaXYgY2xhc3M9XCJhZS1tbnUtc2VjXCI+T21lbGV0dGVzPC9kaXY+PHAgY2xhc3M9XCJhZS1tbnUtc3Vibm90ZVwiPlNlcnZlZCB3aXRoIG91ciBoYXNoYnJvd25zIGFuZCB0b2FzdC48L3A+PGRpdiBjbGFzcz1cImFlLW1udS1pdGVtXCI+PHNwYW4gY2xhc3M9XCJubVwiPkJhY2sgQmFjb24sIENoZWRkYXIsIGFuZCBNdXNocm9vbSBPbWVsZXR0ZTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJwclwiPiQ4Ljk1PC9zcGFuPjxzcGFuIGNsYXNzPVwiZHNcIj5CYWNrIGJhY29uLCBzYXV0JmVhY3V0ZTtlZCBtdXNocm9vbXMsIGFuZCBjaGVlc2UuPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1tbnUtaXRlbVwiPjxzcGFuIGNsYXNzPVwibm1cIj5IZWFsdGh5IE11c2hyb29tLCBTcGluYWNoLCBhbmQgQ2hlZXNlIE9tZWxldHRlPC9zcGFuPiA8c3BhbiBjbGFzcz1cInByXCI+JDExLjk5PC9zcGFuPjxzcGFuIGNsYXNzPVwiZHNcIj5NdXNocm9vbXMsIGZyZXNoIHNwaW5hY2gsIHJlZCBwZXBwZXJzLCBhbmQgb25pb25zIHNhdXQmZWFjdXRlO2VkIHdpdGggRWdnIENyZWF0aW9ucywgdG9wcGVkIHdpdGggY2hlZXNlIGFuZCBzZXJ2ZWQgd2l0aCBmcmVzaCBmcnVpdCBpbnN0ZWFkIG9mIGhhc2hicm93bnMgYW5kIHRvYXN0LiAoMzcwIGNhbG9yaWVzLCA1IGcgZmF0LCA4NjAgbWcgc29kaXVtLCAyOSBnIHByb3RlaW4pPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1tbnUtc2VjXCI+V2FmZmxlcyBhbmQgTW9yZTwvZGl2PjxwIGNsYXNzPVwiYWUtbW51LXN1Ym5vdGVcIj5XaXRoIHlvdXIgY2hvaWNlIG9mIHdoaXBwZWQgY3JlYW0gb3IgdmFuaWxsYSBpY2UgY3JlYW0uPC9wPjxkaXYgY2xhc3M9XCJhZS1tbnUtaXRlbVwiPjxzcGFuIGNsYXNzPVwibm1cIj5FZHdhcmQmcnNxdW87cyBXYWZmbGU8L3NwYW4+IDxzcGFuIGNsYXNzPVwicHJcIj4kOC45OTwvc3Bhbj48c3BhbiBjbGFzcz1cImRzXCI+T3VyIGJ1dHRlcm1pbGsgd2FmZmxlIHNlcnZlZCB3aXRoIGJsdWViZXJyeSBvciBmcmVzaCBzdHJhd2JlcnJ5IHRvcHBpbmcuPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1tbnUtaXRlbVwiPjxzcGFuIGNsYXNzPVwibm1cIj5MaWZlc3R5bGUgT2F0bWVhbCBhbmQgRnJ1aXQ8L3NwYW4+IDxzcGFuIGNsYXNzPVwicHJcIj4kOC45OTwvc3Bhbj48c3BhbiBjbGFzcz1cImRzXCI+VG9wcGVkIHdpdGggeW9ndXJ0IGFuZCBtYXBsZSBzeXJ1cC4gKDQwMCBjYWxvcmllcywgMTAgZyBmYXQsIDQwMCBtZyBzb2RpdW0sIDE1IGcgcHJvdGVpbik8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz1cImFlLW1udS1zZWNcIj5LaWRzJnJzcXVvOyBNZWFscyAoJDUuOTkpPC9kaXY+PHAgY2xhc3M9XCJhZS1tbnUtc3Vibm90ZVwiPlNlcnZlZCB1bnRpbCAxMSBhLm0uIHdpdGggZnJ1aXQgYW5kIHlvdXIgY2hvaWNlIG9mIG1pbGsgb3IgZnJ1aXQganVpY2UuPC9wPjxkaXYgY2xhc3M9XCJhZS1tbnUtaXRlbVwiPjxzcGFuIGNsYXNzPVwibm1cIj5LaWRzJnJzcXVvOyBCcmVha2Zhc3Q8L3NwYW4+PHNwYW4gY2xhc3M9XCJkc1wiPk9uZSBlZ2csIGEgc2F1c2FnZSBsaW5rIG9yIHN0cmlwIG9mIGJhY29uLCBhbmQgMiBwYW5jYWtlcyBvciBhIHNsaWNlIG9mIHRvYXN0Ljwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtbW51LWl0ZW1cIj48c3BhbiBjbGFzcz1cIm5tXCI+UGFuY2FrZXM8L3NwYW4+PHNwYW4gY2xhc3M9XCJkc1wiPjQgcGFuY2FrZXMsIGJ1dHRlciwgYW5kIG1hcGxlIHN5cnVwLjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IlJlYWQgdGhlIGZvbGxvd2luZyBlbWFpbCBtZXNzYWdlIGFib3V0IHRoZSBkaWFncmFtIG9uIHRoZSBsZWZ0LiBDb21wbGV0ZSB0aGUgZW1haWwgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiU3ViamVjdDogRnJpZGF5IEJyZWFrZmFzdFxuVG86IDxvcGVyYXRpb25zZ3JvdXBAdGFyeW4uY2E+XG5Gcm9tOiBNb2lyYSBDb2hlbiA8bW9pcmFjb2hlbkB0YXJ5bi5jYT5cblxuSGkgYWxsLFxuXG5BIHF1aWNrIHJlbWluZGVyIGFib3V0IG91ciIseyJiIjoxLCJvcHRpb25zIjpbImNsaWVudCB2aXNpdCIsIm1vcm5pbmcgbWVldGluZyIsInJlc3RhdXJhbnQgaW5zcGVjdGlvbiIsImhlYWx0aCBhbmQgZGlldCBtZWV0aW5nIl0sImtleSI6Mn0sInRoaXMgRnJpZGF5LiBUaGUgcmVzdGF1cmFudCBpcyByb3VuZCB0aGUgY29ybmVyIGZyb20gb3VyIG9mZmljZS4gVHJ5IHRvIGRlY2lkZSBvbiB5b3VyIG9yZGVyIGFoZWFkIG9mIHRpbWUgKG1lbnUgYXR0YWNoZWQpLCBzbyB3ZSBjYW4gZ2V0IGRvd24gdG8gYnVzaW5lc3Mgd2hlbiB3ZSBnZXQgdGhlcmUuIFRoZXJlIGFyZSBhIGZldyB2ZWdldGFyaWFuIG9wdGlvbnMgaW5jbHVkaW5nIGEgdmVnZ2llIGJyZWFrZmFzdCBhbmQiLHsiYiI6Miwib3B0aW9ucyI6WyJhIGJ1cnJpdG8iLCJhbiBlZ2dzIGJlbmVkaWN0IiwiYSBoZWFydHkgYnJlYWtmYXN0IiwiYW4gb21lbGV0dGUiXSwia2V5Ijo0fSwiLiBGb3IgdGhvc2UgdGFraW5nIHBhcnQgaW4gdGhlIFx1MjAxY2JvZHkgZm9yIGxpZmVcdTIwMWQgb2ZmaWNlIGFjdGl2aXR5LCBJIHRoaW5rIHlvdVx1MjAxOWxsIGZpbmQgdGhlIix7ImIiOjMsIm9wdGlvbnMiOlsiTGlmZXN0eWxlIE9hdG1lYWwgYW5kIEZydWl0IiwiSGVhbHRoeSBNdXNocm9vbSwgU3BpbmFjaCwgYW5kIENoZWVzZSBPbWVsZXR0ZSIsIlZlZ2dpZSBCcmVha2Zhc3QiLCJFZ2dzIEJlbmVkaWN0Il0sImtleSI6Mn0sImlzIHRoZSBsZWFzdCBmYXR0ZW5pbmcgb3B0aW9uLiBGb3IgdGhvc2Ugb2YgeW91IHdobyBqdXN0IHdhbnQgYSBnb29kLCBmaWxsaW5nIHN0YXJ0IHRvIHRoZSBkYXksIHRoZXJlIGFyZSBwbGVudHkgb2YgY2hvaWNlcyBhbmQgYWRkaXRpb25hbCIseyJiIjo0LCJvcHRpb25zIjpbImhhc2hicm93bnMiLCJzYXVzYWdlcyIsImVnZ3MiLCJpY2UgY3JlYW0iXSwia2V5IjoxfSwiaWYgeW91IHdhbnQuIEFuZCB0byB0b3AgaXQgb2ZmLCBpdCBsb29rcyBsaWtlIHRoZSBjb2ZmZWUgaXMiLHsiYiI6NSwib3B0aW9ucyI6WyJhYm91dCBhIGxvb25pZSIsInRocm93biBpbiB0b28iLCJvbmx5IGEgdG9vbmllIiwib24gdGhlIGhvdXNlIl0sImtleSI6MX0sInNvIHlvdSBjYW4gZHJpbmsgYXMgbXVjaCBhcyB5b3UgbGlrZSAoYW5kIG91ciBjb21wYW55IHdpbGwgcGljayB1cCB0aGUgYmlsbCBhbnl3YXkpLlxuXG5DaGVlcnMsXG5Nb2lyYSJdfSx7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uLiIsIml0ZW1zIjpbeyJuIjo2LCJwcmUiOiJNb2lyYSBpcyB3cml0aW5nIHRvIGhlciIsIm9wdGlvbnMiOlsiY2xpZW50cy4iLCJ0ZWFtLiIsImVtcGxveWVycy4iLCJmcmllbmRzLiJdLCJrZXkiOjJ9LHsibiI6NywicHJlIjoiTW9pcmFcdTIwMTlzIHRvbmUgaXMiLCJvcHRpb25zIjpbImZvcm1hbC4iLCJleGNpdGVkLiIsImluZGVjaXNpdmUuIiwiaW1wYXRpZW50LiJdLCJrZXkiOjF9LHsibiI6OCwicHJlIjoiTW9pcmFcdTIwMTlzIHB1cnBvc2UgaXMgdG8iLCJvcHRpb25zIjpbImdhdGhlciBvcGluaW9ucy4iLCJhc2sgcGVybWlzc2lvbi4iLCJiZSBlZmZpY2llbnQuIiwic2V0dGxlIGEgZGlzcHV0ZS4iXSwia2V5IjozfV19XX0seyJpZCI6MywibmFtZSI6IlJlYWRpbmcgUGFydCAzOiBSZWFkaW5nIGZvciBJbmZvcm1hdGlvbiIsInRpbWUiOiI5IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgcGFzc2FnZS4iLCJodG1sIjoiPHA+PHN0cm9uZz5BLjwvc3Ryb25nPiBPbiBhbnkgc3VubnkgZGF5IGluIFRvcm9udG8sIG9uZSBpcyBndWFyYW50ZWVkIHRvIGZpbmQgY3Jvd2RzIGF0IHRoZSBKYWNrIExheXRvbiBGZXJyeSBUZXJtaW5hbCwgd2FpdGluZyB0byB0cmF2ZWwgdG8gdGhlIFRvcm9udG8gSXNsYW5kcy4gSW4gZmFjdCwgcm91Z2hseSBvbmUgbWlsbGlvbiBwZW9wbGUgdmlzaXQgdGhlIGlzbGFuZHMgYnkgYm9hdCBldmVyeSB5ZWFyLiBUaGUgVG9yb250byBJc2xhbmRzIGhhdmUgYW4gaW50cmlndWluZyBoaXN0b3J5IGR1ZSB0byB0aGVpciBjbG9zZSBwcm94aW1pdHkgdG8gdGhlIGRvd250b3duIGNvcmUuIEFuIGFpcnBvcnQsIGFuIGFtdXNlbWVudCBwYXJrLCBzZXZlcmFsIGJlYWNoZXMsIGFuZCBhYm91dCAyNTAgZmFtaWx5IGhvbWVzIGRyYXcgcGVvcGxlIHNvdXRoIGFjcm9zcyB0aGUgaGFyYm91ciwgZXNwZWNpYWxseSBpbiBzdW1tZXIgbW9udGhzLiBUaGUgaXNsYW5kcyBhcmUgdGhlIGxhcmdlc3QgY2FyLWZyZWUgdXJiYW4gY29tbXVuaXR5IGluIE5vcnRoIEFtZXJpY2EuIFRoZWlyIG5hdHVyYWwgYmVhdXR5LCBqdXh0YXBvc2VkIHdpdGggdGhlIHNvYXJpbmcgc2t5bGluZSBvZiBkb3dudG93biBUb3JvbnRvLCBwcm92aWRlcyBhIHBlYWNlZnVsIHJlcHJpZXZlIGZyb20gdGhlIGh1c3RsZSBhbmQgYnVzdGxlIG9mIHRoZSBjaXR5LjwvcD48cD48c3Ryb25nPkIuPC9zdHJvbmc+IFRoZSByZWdpb24gcmVmZXJyZWQgdG8gYXMgdGhlIFRvcm9udG8gSXNsYW5kcyB0b2RheSB3YXMgZm9ybWVybHkgYSBwZW5pbnN1bGEuIFdoZW4gdGhlIGNpdHkgd2FzIHNldHRsZWQgYnkgRXVyb3BlYW5zIGluIDE3NTAsIHRoZSBpc2xhbmRzIHdlcmUgY29ubmVjdGVkIHRvIHRoZSBtYWlubGFuZC4gVGhlIEdpYnJhbHRhciBQb2ludCBMaWdodGhvdXNlIHdhcyB0aGUgZmlyc3QgYnVpbGRpbmcgZXJlY3RlZCBvbiB0aGUgaXNsYW5kcyBpbiAxODA4LiBVcmJhbml6YXRpb24gc2xvd2VkIGFmdGVyIGEgcG93ZXJmdWwgc3Rvcm0gaW4gMTg1OCBmbG9vZGVkIHRoZSBlYXN0ZXJuIGVkZ2Ugb2YgdGhlIHBlbmluc3VsYS4gVW5iZWtub3duc3QgdG8gbG9jYWxzIGF0IHRoZSB0aW1lLCB0aGUgZmxvb2Qgd291bGQgY3JlYXRlIHdoYXQgd291bGQgYmVjb21lIG9uZSBvZiBUb3JvbnRvJnJzcXVvO3MgbW9zdCBwb3B1bGFyIHRvdXJpc3QgYXR0cmFjdGlvbnMuIERldmVsb3BtZW50IGNvbnRpbnVlZCB0aHJvdWdob3V0IHRoZSBuaW5ldGVlbnRoIGNlbnR1cnksIGhpZ2hsaWdodGVkIGJ5IHRoZSBjb25zdHJ1Y3Rpb24gb2YgYW4gYW11c2VtZW50IHBhcmsgYW5kIGJhc2ViYWxsIHN0YWRpdW0gYnkgdGhlIGZpcnN0IHllYXItcm91bmQgaW5oYWJpdGFudHMgb2YgdGhlIGlzbGFuZHMsIHRoZSBIYW5sYW4gZmFtaWx5LjwvcD48cD48c3Ryb25nPkMuPC9zdHJvbmc+IFByb3Bvc2FscyB0byByZWNvbm5lY3QgdGhlIGlzbGFuZHMgdG8gdGhlIGNpdHkgYnkgY29uc3RydWN0aW9uIG9mIGEgYnJpZGdlIG9yIHR1bm5lbCB3ZXJlIGNvbW1vbmx5IHN1cHBvcnRlZCBieSBsb2NhbCBpc2xhbmRlcnMgdGhyb3VnaG91dCBoaXN0b3J5LiBXaGVuIGEgY29ubmVjdGlvbiB0byB0aGUgbWFpbmxhbmQgYnkgdHVubmVsIHdhcyBjb21wbGV0ZWQgaW4gMjAxNSwgaXQgd2FzIGRvbmUgdGhyb3VnaCBwcml2YXRlIGZ1bmRpbmcgYW5kIHdpdGggdGhlIHNpbmd1bGFyIGdvYWwgb2YgaW1wcm92aW5nIGFjY2VzcyB0byB0aGUgQmlsbHkgQmlzaG9wIGFpcnBvcnQgZm9yIHRyYXZlbGxlcnMuIFRoaXMgdHVubmVsIGlzIGZvciBwZWRlc3RyaWFucyBvbmx5OyBhc2lkZSBmcm9tIHRoZSBhaXJwb3J0LCB0aGUgb25seSB2ZWhpY3VsYXIgYWNjZXNzIGZvciB0aG9zZSB3aG8gcmVzaWRlIG9uIHRoZSBpc2xhbmRzIGlzIGJ5IHByaXZhdGUgZmVycnkgYm9hdC4gVGhlIG51bWJlciBvZiBob3VzZXMgb24gdGhlIGlzbGFuZHMgcGVha2VkIGF0IHJvdWdobHkgNjUwIGluIHRoZSBtaWQtdHdlbnRpZXRoIGNlbnR1cnkuIEFmdGVyIGJ1aWxkaW5nIGEgZG93bnRvd24gd2F0ZXJmcm9udCBoaWdod2F5LCBjaXR5IG9mZmljaWFscyBkZWNpZGVkIHRvIHJlcGxhY2UgbG9zdCByZWNyZWF0aW9uYWwgc3BhY2Ugd2l0aCBiZWFjaGVzIGFuZCBwYXJrbGFuZCBvbiB0aGUgaXNsYW5kcy4gVHdvIGh1bmRyZWQgc2l4dHkgaG91c2VzIHN1cnZpdmVkIHRoZSBjaXR5JnJzcXVvO3MgYXR0ZW1wdHMgdG8gZGVtb2xpc2ggYWxsIG9mIHRoZSByZXNpZGVudGlhbCBkaXN0cmljdHMuPC9wPjxwPjxzdHJvbmc+RC48L3N0cm9uZz4gVG9kYXksIGluIHRoZSB3YXJtZXIgbW9udGhzLCB2aXNpdG9ycyBhcmUgY29uc3RhbnRseSBxdWV1ZWQgdXAgdG8gdGFrZSB0aGUgaXNsYW5kIGZlcnJpZXMuIE1hbnkgY2hvb3NlIHRvIHJlbnQgYmljeWNsZXMgdG8gZXhwbG9yZSB0aGUgaXNsYW5kLiBUb3VyaXN0cyBjb21tb25seSBzZWVrIG91dCB0aGUgaXNsYW5kcyZyc3F1bzsgbWFueSBpY29uaWMgYXR0cmFjdGlvbnMsIGluY2x1ZGluZyB0aGUgb2xkIGxpZ2h0aG91c2UsIHRoZSBPbHltcGljIElzbGFuZCBCcmlkZ2UsIGFuZCB0aGUgQ2VudHJldmlsbGUgQW11c2VtZW50IFBhcmssIGJ1aWx0IGluIDE5NjcuIFNvbWUgYWxzbyBjb21lIHRvIHN3aW0gYW5kIHN1bmJhdGhlLiBMb2NhdGVkIG9uIHRoZSB3ZXN0ZXJuIHBhcnQgb2YgdGhlIFRvcm9udG8gSXNsYW5kcywgSGFubGFuJnJzcXVvO3MgUG9pbnQgQmVhY2ggaXMgbm90IG9ubHkgcmVjb2duaXplZCBmb3IgaXRzIGNvbm5lY3Rpb24gaW4gbmFtZSB0byB0aGUgYXJlYSZyc3F1bztzIGZpcnN0IGZhbWlseSwgYnV0IGFsc28gZm9yIGl0cyBzdGF0dXMgYXMgb25lIG9mIENhbmFkYSZyc3F1bztzIHR3byBjbG90aGluZy1vcHRpb25hbCBiZWFjaGVzLjwvcD48cD48c3Ryb25nPkUuPC9zdHJvbmc+IE5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIGFib3ZlIHBhcmFncmFwaHMuPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJtYXRjaCIsImluc3RyIjoiRGVjaWRlIHdoaWNoIHBhcmFncmFwaCwgQSB0byBELCBoYXMgdGhlIGluZm9ybWF0aW9uIGdpdmVuIGluIGVhY2ggc3RhdGVtZW50IGJlbG93LiBTZWxlY3QgRSBpZiB0aGUgaW5mb3JtYXRpb24gaXMgbm90IGdpdmVuIGluIGFueSBvZiB0aGUgcGFyYWdyYXBocy4iLCJsZXR0ZXJzIjpbIkEiLCJCIiwiQyIsIkQiLCJFIl0sIml0ZW1zIjpbeyJuIjoxLCJ0ZXh0IjoiQm9hdGluZyBlbnRodXNpYXN0cyBlbmpveSBzYWlsaW5nIGFyb3VuZCB0aGUgaXNsYW5kcyBpbiBzdW1tZXIuIiwia2V5Ijo1fSx7Im4iOjIsInRleHQiOiJJbXByb3ZlZCBpbmZyYXN0cnVjdHVyZSBhbGxvd3MgZWFzaWVyIGFjY2VzcyB0byB0aGUgaXNsYW5kcyBmb3Igc29tZSBwZW9wbGUuIiwia2V5IjozfSx7Im4iOjMsInRleHQiOiJUaGUgZ2VvZ3JhcGh5IG9mIHRoZSBpc2xhbmQgYXJlYSB3YXMgaW1wYWN0ZWQgYnkgdGhlIHdlYXRoZXIuIiwia2V5IjoyfSx7Im4iOjQsInRleHQiOiJJbiB0aGUgcGFzdCwgcGVkZXN0cmlhbnMgY291bGQgc2ltcGx5IHdhbGsgZnJvbSB0aGUgbWFpbmxhbmQgdG8gdGhlIGlzbGFuZCBhcmVhLiIsImtleSI6Mn0seyJuIjo1LCJ0ZXh0IjoiSW5kaXZpZHVhbHMgbGl2aW5nIG9uIHRoZSBpc2xhbmRzIG11c3QgdXNlIGEgYm9hdCB0byB0cmF2ZWwgZG93bnRvd24uIiwia2V5IjozfSx7Im4iOjYsInRleHQiOiJBIHZpc2l0b3IgdG8gdGhlIGlzbGFuZHMgd291bGQgbm90IGJlIGFibGUgdG8gdXNlIGEgY2FyIHRoZXJlLiIsImtleSI6MX0seyJuIjo3LCJ0ZXh0IjoiVGhlIFRvcm9udG8gaXNsYW5kcyBhcmUgbG9jYXRlZCBpbiB0aGUgd2VzdGVybiBwYXJ0IG9mIExha2UgT250YXJpby4iLCJrZXkiOjV9LHsibiI6OCwidGV4dCI6Ik9uZSBvZiB0aGUgYXJlYVx1MjAxOXMgYXR0cmFjdGlvbnMgY2FycmllcyBhIHRpdGxlIHRoYXQgaG9ub3VycyBpdHMgcGFzdC4iLCJrZXkiOjR9LHsibiI6OSwidGV4dCI6IlRoZSBjb250cmFzdCBiZXR3ZWVuIHRoZSBjaXR5XHUyMDE5cyBza3lsaW5lIGFuZCB0aGUgZm9yZXN0ZWQgaXNsYW5kcyBpcyBzdHJpa2luZy4iLCJrZXkiOjF9XX1dfSx7ImlkIjo0LCJuYW1lIjoiUmVhZGluZyBQYXJ0IDQ6IFJlYWRpbmcgZm9yIFZpZXdwb2ludHMiLCJ0aW1lIjoiMTIgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZyb20gYSB3ZWJzaXRlLiIsImh0bWwiOiI8cD48c3Ryb25nPlRoZSBEZW1pc2Ugb2YgQnJpY2tzLWFuZC1Nb3J0YXIgUmV0YWlsZXJzPC9zdHJvbmc+PC9wPjxwPkFzIHlldCBhbm90aGVyIGRlcGFydG1lbnQgc3RvcmUgY2hhaW4gY2xvc2VzIGl0cyBkb29ycyBmb3JldmVyIHRvZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBvbiB0aGUgY3VzcCBvZiBhIHJldGFpbCByZXZvbHV0aW9uLiBUaGlzIHBhc3QgeWVhciwgbW9yZSB0aGFuIDMsMjAwIGJyaWNrcy1hbmQtbW9ydGFyIHJldGFpbGVycyBoYXZlIGNsb3NlZCwgYW5kIHRoYXQgbnVtYmVyIGlzIGV4cGVjdGVkIHRvIGV4Y2VlZCA4LDYwMCBwcmlvciB0byB0aGUgeWVhciZyc3F1bztzIGVuZC4gVG8gcHV0IHRoaXMgaW4gcGVyc3BlY3RpdmUsIDIwMDgsIHRoZSB3b3JzdCB5ZWFyIG9uIHJlY29yZCBmb3Igc3RvcmUgY2xvc3VyZXMsIHNhdyBhIHRvdGFsIG9mIDYsMTYzIGNsb3NpbmdzLjwvcD48cD5BZGRpbmcgc2FsdCB0byB0aGUgd291bmRzIG9mIG5vc2VkaXZpbmcgc3RvcmVzIGFyZSB0aGUgcmVjZW50IHN0YXRlbWVudHMgb2YgYmlsbGlvbmFpcmUgaW52ZXN0b3IgV2F5bmUgQnJhbnNvbi4gQnJhbnNvbiBmb3Jlc2VlcyBhIGNvbXBsZXRlIG92ZXJoYXVsIG9mIHRoZSByZXRhaWwgaW5kdXN0cnkgd2l0aGluIGEgZGVjYWRlOiAmbGRxdW87VGhlIHdvcmxkIGlzIGNvbnRpbnVhbGx5IGV2b2x2aW5nOyB0b2RheSZyc3F1bztzIGRlcGFydG1lbnQgc3RvcmUgaXMgb25saW5lLiZyZHF1bzsgQnJhbnNvbiBpcyBhbHNvIHB1dHRpbmcgaGlzIG1vbmV5IHdoZXJlIGhpcyBtb3V0aCBpcyBieSBzZWxsaW5nIGhpcyBzaGFyZXMgaW4gdGhlIHJldGFpbCBpbmR1c3RyeS4gJmxkcXVvO1JldGFpbCBoYXMgYWx3YXlzIGJlZW4gYSBjdXR0aHJvYXQgaW5kdXN0cnksIGFuZCBjcmFja2luZyB0aGUgY29kZSB0byBvbmxpbmUgc3VjY2VzcyBjYW4gZWx1ZGUgZXZlbiB0aGUgc2F2dmllc3Qgb2YgYnVzaW5lc3NwZW9wbGUsJnJkcXVvOyBoZSBhZG1pdHMuPC9wPjxwPkVjb25vbWlzdCBNYXggTGluZyBoaWdobGlnaHRzIHRoYXQgcmV0YWlsIGlzIGJlaW5nIGRyYW1hdGljYWxseSBhbHRlcmVkIGJ5IHRoZSByaXNlIG9mIGUtY29tbWVyY2UgYW5kIHNoaWZ0cyBpbiBjb25zdW1lciBzcGVuZGluZy4gJmxkcXVvO1Blb3BsZSBub3dhZGF5cyBhcmUgb3B0aW5nIHRvIHNwZW5kIG1vbmV5IG9uIGV4cGVyaWVuY2VzIHJhdGhlciB0aGFuIGdvb2RzLCBjaG9vc2luZyB0byBlbmpveSB0cmlwcywgbGl2ZSBtdXNpYywgY3VsaW5hcnkgZGVsaWdodHMsIGFuZCB0aGUgbGF0ZXN0IHRlY2ggZ2FkZ2V0cyByYXRoZXIgdGhhbiBwdXJjaGFzaW5nIGNsb3RoaW5nIGFuZCBhY2Nlc3Nvcmllcy4gSW52ZXN0b3JzIGJlbGlldmUgdGhpcyBzaWduYWxzIGEgcGVybWFuZW50IHNoaWZ0IGluIGNvbnN1bWVycyZyc3F1bzsgc3BlbmRpbmcgaGFiaXRzLCBzaW5jZSByZXRhaWwgZGVjbGluZSBpcyBvY2N1cnJpbmcgZGVzcGl0ZSBhIHJvYnVzdCBlY29ub215LCZyZHF1bzsgc2F5cyBMaW5nLjwvcD48cD5TdHJhdGVnaWMgcmV0YWlsIGFkdmlzb3IgU2ltb25lIFNjaHVsZSBpbnNpc3RzIHRoYXQgaXQgaXMgbm90IGFsbCBkb29tIGFuZCBnbG9vbSBmb3IgYWxsIGJyaWNrcy1hbmQtbW9ydGFyIHJldGFpbGVycy4gU2NodWxlIGFyZ3VlcyB0aGF0IHdlIGFyZSBzZWVpbmcgdGhlIGNvbGxhcHNlIG9mIHRoZSBtaWRkbGUgcm9hZDogdGhvc2Ugd2hvIG9mZmVyIGRlY2VudCBwcmljZXMsIGJ1dCBub3QgdGhlIGJlc3Q7IHRob3NlIHdobyBoYXZlIHNvbWUgc2VydmljZXMsIGJ1dCBub3RoaW5nIGltcHJlc3NpdmU7IG9yIHRob3NlIHdob3NlIHByb2R1Y3RzIGFyZSBhYnVuZGFudCwgYnV0IG5vdCB1bmlxdWUuIEFjY29yZGluZyB0byBTY2h1bGUsICZsZHF1bzticmFuZHMgdGhhdCBvZmZlciBncmVhdCB2YWx1ZSBhbmQgcHVyY2hhc2luZyBlZmZpY2llbmN5IGFyZSBzdWNjZWVkaW5nLiBUaGluayBvZiBhbnkgbnVtYmVyIG9mIGRvbGxhciBzdG9yZXMuIFRoZXNlIGNvbXBhbmllcyBhcmUgYWN0dWFsbHkgb3BlbmluZyBuZXcgbG9jYXRpb25zLiBUaGV5JnJzcXVvO3JlIHNlZWluZyBzdHJvbmcgZ3Jvd3RoLCBhcyBhcmUgbWFueSBsdXh1cnkgYnJhbmRzIGFuZCBoaWdoLWVuZCBzcGVjaWFsdHkgc3RvcmVzLiZyZHF1bzs8L3A+PHA+UGVyaGFwcyB0aGlzIGlzIHRoZSBlcmEgb2YgdGhlIGNvbnN1bWVyLiBUaGUgd3JpdGluZyBpcyBvbiB0aGUgd2FsbDogcmV0YWlsZXJzIG5lZWQgdG8gbWVldCB0aGUgbmVlZHMgb2YgY29uc3VtZXJzLCBhbmQgaWYgYnV5ZXJzJnJzcXVvOyBkZW1hbmRzIGZhbGwgb24gZGVhZiBlYXJzLCBzbyBsb25nITwvcD48cD5PbWFyIExvcGV6PC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJzdGVtbGlzdCIsImluc3RyIjoiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIGFjY29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gb24gdGhlIHdlYnNpdGUuIiwiaXRlbXMiOlt7Im4iOjEsInByZSI6IldoYXQgaXMgdGhpcyBhcnRpY2xlIG1haW5seSBhYm91dD8iLCJvcHRpb25zIjpbImVjb25vbWljIGRlY2xpbmUiLCJvbmxpbmUgdHJlbmRzIiwicmV0YWlsIHByaWNlcyIsImluZHVzdHJ5IGNoYW5nZXMiXSwia2V5Ijo0fSx7Im4iOjIsInByZSI6IldoYXQgd291bGQgV2F5bmUgQnJhbnNvbiBtb3N0IGxpa2VseSBhZHZpc2U\/Iiwib3B0aW9ucyI6WyJtb3ZpbmcgaW52ZXN0bWVudHMgdG8gb25saW5lIHJldGFpbGVycyIsIm1ha2luZyBpbnZlc3RtZW50cyBpbiBub24tcmV0YWlsIG1hcmtldHMiLCJidXlpbmcgcmV0YWlsIHNoYXJlcyBkdXJpbmcgdGhlIGN1cnJlbnQgZGVwcmVzc2lvbiIsInJlc2VhcmNoaW5nIGJyaWNrcy1hbmQtbW9ydGFyIHJldGFpbGVycyB0aG9yb3VnaGx5Il0sImtleSI6Mn0seyJuIjozLCJwcmUiOiJXaGF0IGRvZXMgV2F5bmUgQnJhbnNvbiBiZWxpZXZlIGlzIHRydWU\/Iiwib3B0aW9ucyI6WyJPbmxpbmUgc3VjY2VzcyBpcyBlYXN5IHRvIGFjaGlldmUuIiwiUmV0YWlsZXJzIGxhY2sgaW5ub3ZhdGl2ZSBpZGVhcy4iLCJPbmxpbmUgc3RvcmVzIGV2b2x2ZWQgdG9vIHF1aWNrbHkuIiwiUmV0YWlsZXJzIGZhY2UgYSBjaGFsbGVuZ2luZyBmdXR1cmUuIl0sImtleSI6NH0seyJuIjo0LCJwcmUiOiJXaGF0IGRvIGV4cGVydHMgc3VnZ2VzdCBhYm91dCB0aGUgY3VycmVudCByZXRhaWwgdHJlbmQ\/Iiwib3B0aW9ucyI6WyJJdCByZWZsZWN0cyBhIGNoYW5nZSBpbiBwcmVmZXJlbmNlcy4iLCJJdCBuZWdhdGl2ZWx5IGltcGFjdHMgdGhlIGVjb25vbXkuIiwiSXQgaXMgYSB0ZW1wb3JhcnkgY29uc3VtZXIgdHJlbmQuIiwiSXQgd2Vha2VucyBvbmxpbmUgcmV0YWlsIGFjdGl2aXRpZXMuIl0sImtleSI6MX0seyJuIjo1LCJwcmUiOiJUaGUgd3JpdGVyIGZlZWxzIHRoYXQgcmV0YWlsZXJzIHNob3VsZCBiZSIsIm9wdGlvbnMiOlsiZWZmaWNpZW50LiIsIm9wdGltaXN0aWMuIiwic3RyYXRlZ2ljLiIsImRlbWFuZGluZy4iXSwia2V5IjozfV19LHsidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCJib2R5IjpbIkRlc3BpdGUiLHsiYiI6Niwib3B0aW9ucyI6WyJ0aGUgaW5jbHVzaW9uIG9mIHN0YXRpc3RpY3MiLCJ0aGUgZW5kb3JzZW1lbnQgb2YgU2NodWxlIiwiaXRzIGZvY3VzIG9uIGdsb2JhbCByZXRhaWwiLCJpdHMgcHJvbWlzaW5nIG91dGxvb2siXSwia2V5IjoxfSwiLCBJIGNhblx1MjAxOXQgaGVscCBidXQgZmVlbCBMb3Blelx1MjAxOXMgYWNjb3VudCBpcyBpbmFjY3VyYXRlLiBDb250cmFyeSB0byIseyJiIjo3LCJvcHRpb25zIjpbIndoYXQgQnJhbnNvbiBpbXBsaWVzIiwiTWF4IExpbmdcdTIwMTlzIHByZWRpY3Rpb25zIiwiT21hciBMb3Blelx1MjAxOXMgcmVzZWFyY2giLCJ3aGF0IFNjaHVsZSBpbmRpY2F0ZXMiXSwia2V5IjoxfSwiLCBhIHN0dWR5IHJlbGVhc2VkIGxhc3Qgd2VlayBjbGFpbXMgdGhhdCB0aGUgdmFzdCBtYWpvcml0eSBvZiByZXRhaWwgcHVyY2hhc2VzIG9jY3VyIGluLXN0b3JlLiBDb25zdW1lcnMgcmVwb3J0ZWQgYSBwcmVmZXJlbmNlIGZvciBzaG9wcGluZyBpbiBwaHlzaWNhbCBzdG9yZXMgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBtYW55IGZlYXR1cmVzIGFuZCBzZXJ2aWNlcyB1bmF2YWlsYWJsZSBvbmxpbmUuIEFzIFNjaHVsZSBhc3NlcnRzLCBzaG9wcGVycyB0b2RheSB3YW50Iix7ImIiOjgsIm9wdGlvbnMiOlsiZnJpZW5kbHkgc2VydmljZSIsImV4Y2VwdGlvbmFsIGRlYWxzIiwidHJ1c3RlZCBicmFuZHMiLCJzZWN1cmUgcHVyY2hhc2luZyJdLCJrZXkiOjJ9LCIsIHJlZ2FyZGxlc3Mgb2YgdGhlIGNoYW5uZWwuIE5vbmV0aGVsZXNzLCBJIGRvIGZpbmQgdGhlIGZhY3QgdGhhdCIseyJiIjo5LCJvcHRpb25zIjpbInBlb3BsZSBhcmUgaW52ZXN0aW5nIGxlc3MgbW9uZXkiLCJjb25zdW1lcnMgYXJlIHNob3BwaW5nIG1vcmUiLCJoaWdoLWVuZCBzdG9yZXMgYXJlIGJvb21pbmciLCJ0aGUgZWNvbm9teSBpcyB0YWtpbmcgYSBkb3dudHVybiJdLCJrZXkiOjN9LCJ0aGVzZSBkYXlzIGEgYml0IHN1cnByaXNpbmcuIEkgZG8gYWdyZWUgb24gb25lIHBvaW50IG1hZGUsIGhvd2V2ZXIuIE15IHNwZW5kaW5nIGhhYml0cyByZWZsZWN0IHRob3NlIGRlc2NyaWJlZCBpbiB0aGUgYXJ0aWNsZS4gSSB3b3VsZCByYXRoZXIiLHsiYiI6MTAsIm9wdGlvbnMiOlsic2F2ZSBmb3IgZnV0dXJlIGRpZmZpY3VsdGllcyIsInNwZW5kIG15IG1vbmV5IG9ubGluZSIsInNldCBvZmYgb24gYW4gYWR2ZW50dXJlIiwiaW52ZXN0IG15IG1vbmV5IHdpc2VseSJdLCJrZXkiOjN9LCJ0aGFuIGhhdmUgdGhpbmdzLlxuXG5SaG9uZGEgQm91Y2hlciJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAyIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 10 Practice Test 2: 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-6426","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6426","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=6426"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6426\/revisions"}],"predecessor-version":[{"id":6549,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6426\/revisions\/6549"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}