<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Tungaloy Ib&#xE9;rica S.L.</provider_name><provider_url>https://tungaloy.com/tn/</provider_url><title>Ma&#xEE;triser le fraisage h&#xE9;lico&#xEF;dal : Guide complet pour la s&#xE9;lection d'outils, le calcul de l'angle de plong&#xE9;e et l'optimisation des param&#xE8;tres de coupe</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="4kzJI8GGkg"&gt;&lt;a href="https://tungaloy.com/tn/whats-new/tips_helical-milling/"&gt;Ma&#xEE;triser le fraisage h&#xE9;lico&#xEF;dal : Guide complet pour la s&#xE9;lection d&#x2019;outils, le calcul de l&#x2019;angle de plong&#xE9;e et l&#x2019;optimisation des param&#xE8;tres de coupe&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://tungaloy.com/tn/whats-new/tips_helical-milling/embed/#?secret=4kzJI8GGkg" width="600" height="338" title="&#x201C;Ma&#xEE;triser le fraisage h&#xE9;lico&#xEF;dal : Guide complet pour la s&#xE9;lection d&#x2019;outils, le calcul de l&#x2019;angle de plong&#xE9;e et l&#x2019;optimisation des param&#xE8;tres de coupe&#x201D; &#x2014; Tungaloy Ib&#xE9;rica S.L." data-secret="4kzJI8GGkg" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://tungaloy.com/wpdata/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><thumbnail_url>https://tungaloy.com/wpdata/wp-content/uploads/2026/07/01_TungForceRec_Helical_m-1.jpg</thumbnail_url><thumbnail_width>1200</thumbnail_width><thumbnail_height>898</thumbnail_height><description>[vc_row css_animation=&#x201D;&#x201D; row_type=&#x201D;row&#x201D; use_row_as_full_screen_section=&#x201D;no&#x201D; type=&#x201D;full_width&#x201D; angled_section=&#x201D;no&#x201D; text_align=&#x201D;left&#x201D; background_image_as_pattern=&#x201D;without_pattern&#x201D;][vc_column][vc_raw_html css=&#x201D;&#x201D;]PCEtLQ0KICBXb3JkUHJlc3MgQ3VzdG9tIEhUTUwgYmxvY2sgdmVyc2lvbi4NCiAgUmVwbGFjZSB7e0hFTElDQUxfQVNTRVRfQkFTRV9VUkx9fSB3aXRoIHRoZSB1cGxvYWRlZCBhc3NldCBmb2xkZXIgVVJMIGJlZm9yZSBwdWJsaXNoaW5nLg0KLS0+DQo8c3R5bGUgaWQ9ImhlbGljYWwtdGlwcy13cC1pbmxpbmUtY3NzIj4NCi8qIFdvcmRQcmVzcyBzY29wZWQgc3R5bGVzaGVldCBnZW5lcmF0ZWQgZnJvbSBhcnRpY2xlL2FydGljbGUuY3NzLiAqLw0KDQouaGVsaWNhbC1hcnRpY2xlIHsNCiAgZm9udC1mYW1pbHk6ICJOb3RvIFNhbnMgSlAiLCAiTWVpcnlvIiwgIkhpcmFnaW5vIEtha3UgR290aGljIFByb04iLCBzYW5zLXNlcmlmOw0KICBsaW5lLWhlaWdodDogMS44Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHsNCiAgLS1icmFuZDogI2Q0MDAyNTsNCiAgLS1icmFuZC1kYXJrOiAjYTAwMDIwOw0KICAtLWluazogIzMzMzsNCiAgLS1oZWFkaW5nOiAjMjIyOw0KICAtLW11dGVkOiAjNjY2Ow0KICAtLWxpbmU6ICNlMGUwZTA7DQogIC0tc29mdDogI2Y4ZjhmODsNCiAgLS1ub3RlOiAjZmVmOWYwOw0KICAtLW9rOiAjMTQ3YTNmOw0KICAtLXdhcm46ICNhNDVmMDA7DQogIC0tZXJyb3I6ICNiMDAwMjA7DQogIC0taW5mbzogIzMxNWE4YzsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSBidXR0b24sDQouaGVsaWNhbC1hcnRpY2xlIGlucHV0LA0KLmhlbGljYWwtYXJ0aWNsZSBzZWxlY3Qgew0KICBmb250OiBpbmhlcml0Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHsNCiAgbWF4LXdpZHRoOiA5NjBweDsNCiAgbWFyZ2luOiAwIGF1dG87DQogIHBhZGRpbmc6IDAgMjBweCA1NnB4Ow0KICBjb2xvcjogdmFyKC0taW5rKTsNCiAgd29yZC13cmFwOiBicmVhay13b3JkOw0KICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlICosDQouaGVsaWNhbC1hcnRpY2xlICo6OmJlZm9yZSwNCi5oZWxpY2FsLWFydGljbGUgKjo6YWZ0ZXIgew0KICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIGgxLA0KLmhlbGljYWwtYXJ0aWNsZSBoMiwNCi5oZWxpY2FsLWFydGljbGUgaDMsDQouaGVsaWNhbC1hcnRpY2xlIGg0LA0KLmhlbGljYWwtYXJ0aWNsZSBwIHsNCiAgbWFyZ2luLXRvcDogMDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSBwLA0KLmhlbGljYWwtYXJ0aWNsZSBsaSwNCi5oZWxpY2FsLWFydGljbGUgdGQsDQouaGVsaWNhbC1hcnRpY2xlIHRoIHsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBsaW5lLWhlaWdodDogMjhweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSBwIHsNCiAgbWFyZ2luLWJvdHRvbTogMThweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAudG9wLWNvbnRlbnRzIHsNCiAgbWFyZ2luLWJvdHRvbTogNDBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc2VjdGlvbi10aXRsZSB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIHBhZGRpbmctYm90dG9tOiAxMnB4Ow0KICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdmFyKC0tYnJhbmQpOw0KICBjb2xvcjogdmFyKC0taGVhZGluZyk7DQogIGZvbnQtc2l6ZTogMjhweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgbGluZS1oZWlnaHQ6IDEuNDsNCiAgbGV0dGVyLXNwYWNpbmc6IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmxlYWQgew0KICBtYXJnaW4tYm90dG9tOiAyNHB4Ow0KICBjb2xvcjogdmFyKC0taW5rKTsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBsaW5lLWhlaWdodDogMjhweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaGVyby1maWd1cmUsDQouaGVsaWNhbC1hcnRpY2xlIC5jb250ZW50LWZpZ3VyZSB7DQogIG1hcmdpbjogMCAwIDI0cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmltYWdlLWR1bW15IHsNCiAgZGlzcGxheTogZ3JpZDsNCiAgcGxhY2UtaXRlbXM6IGNlbnRlcjsNCiAgbWluLWhlaWdodDogMzYwcHg7DQogIHBhZGRpbmc6IDMycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7DQogIGJhY2tncm91bmQ6ICNmNWY1ZjU7DQogIGNvbG9yOiAjNTU1Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmltYWdlLWR1bW15IHNwYW4gew0KICBkaXNwbGF5OiBibG9jazsNCiAgY29sb3I6IHZhcigtLWJyYW5kKTsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KICBsaW5lLWhlaWdodDogMS40Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5pbWFnZS1kdW1teSBzbWFsbCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXJnaW4tdG9wOiA4cHg7DQogIGNvbG9yOiB2YXIoLS1tdXRlZCk7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgbGluZS1oZWlnaHQ6IDI0cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmN1dHRlci1pbWFnZXMgew0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LXdyYXA6IHdyYXA7DQogIGdhcDogMThweDsNCiAgbWFyZ2luOiA0cHggMCAyMnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jdXR0ZXItaW1hZ2Ugew0KICBtYXJnaW46IDA7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY3V0dGVyLWltYWdlIGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogMTUwcHg7DQogIGhlaWdodDogMTUwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOw0KICBiYWNrZ3JvdW5kOiAjZjVmNWY1Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jdXR0ZXItaW1hZ2UgZmlnY2FwdGlvbiB7DQogIG1hcmdpbi10b3A6IDZweDsNCiAgY29sb3I6IHZhcigtLW11dGVkKTsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICBsaW5lLWhlaWdodDogMS41Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jb21wYXJpc29uLWxpc3Qgew0KICBkaXNwbGF5OiBncmlkOw0KICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7DQogIGdhcDogMThweDsNCiAgbWFyZ2luOiAxOHB4IDAgMjRweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY29tcGFyaXNvbi1saXN0ID4gZGl2IHsNCiAgcGFkZGluZzogMThweCAyMHB4Ow0KICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsNCiAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICBiYWNrZ3JvdW5kOiB2YXIoLS1zb2Z0KTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY29tcGFyaXNvbi1saXN0IGg0IHsNCiAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgY29sb3I6IHZhcigtLWhlYWRpbmcpOw0KICBmb250LXNpemU6IDE4cHg7DQogIGxpbmUtaGVpZ2h0OiAxLjU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNvbXBhcmlzb24tbGlzdCB1bCB7DQogIG1hcmdpbi1ib3R0b206IDA7DQogIHBhZGRpbmctbGVmdDogMjBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAudmlkZW8tZW1iZWQgew0KICBkaXNwbGF5OiBmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgbWFyZ2luOiAyNHB4IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnZpZGVvLWVtYmVkIGlmcmFtZSB7DQogIHdpZHRoOiBtaW4oMzM5cHgsIDEwMCUpOw0KICBoZWlnaHQ6IGF1dG87DQogIGFzcGVjdC1yYXRpbzogMzM5IC8gNjAyOw0KICBib3JkZXI6IDA7DQogIGJhY2tncm91bmQ6ICMwMDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnRvcC1jb250ZW50cy1saXN0IHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgcGFkZGluZzogMTZweCAyNHB4IDIwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOw0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIGJhY2tncm91bmQ6IHZhcigtLXNvZnQpOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC50b3AtY29udGVudHMtbGlzdCBoMyB7DQogIG1hcmdpbjogMjBweCAwIDEwcHg7DQogIGNvbG9yOiB2YXIoLS1oZWFkaW5nKTsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC50b3AtY29udGVudHMtbGlzdCB1bCB7DQogIG1hcmdpbjogMDsNCiAgcGFkZGluZy1sZWZ0OiAwOw0KICBsaXN0LXN0eWxlOiBub25lOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC50b3AtY29udGVudHMtbGlzdCBsaSB7DQogIG1hcmdpbjogMDsNCiAgcGFkZGluZzogNnB4IDA7DQogIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2NjYzsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsaW5lLWhlaWdodDogMS42Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC50b3AtY29udGVudHMtbGlzdCBsaTpsYXN0LWNoaWxkIHsNCiAgYm9yZGVyLWJvdHRvbTogbm9uZTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAudG9jLWxpbmsgew0KICBjb2xvcjogdmFyKC0tYnJhbmQpOw0KICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogIHRyYW5zaXRpb246IGNvbG9yIC4yczsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAudG9jLWxpbms6aG92ZXIgew0KICBjb2xvcjogdmFyKC0tYnJhbmQtZGFyayk7DQogIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHNlY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiA0OHB4Ow0KICBwYWRkaW5nLXRvcDogMjBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucmVkbGluZSB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIHBhZGRpbmctYm90dG9tOiAxMHB4Ow0KICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFyKC0tYnJhbmQpOw0KICBjb2xvcjogdmFyKC0taGVhZGluZyk7DQogIGZvbnQtc2l6ZTogMjRweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgbGluZS1oZWlnaHQ6IDEuNDsNCiAgbGV0dGVyLXNwYWNpbmc6IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnN1Yi10aXRsZSB7DQogIG1hcmdpbjogMjhweCAwIDE0cHg7DQogIHBhZGRpbmctbGVmdDogMTRweDsNCiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1icmFuZCk7DQogIGNvbG9yOiB2YXIoLS1oZWFkaW5nKTsNCiAgZm9udC1zaXplOiAyMHB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KICBsaW5lLWhlaWdodDogMS40Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5lbS1yZWQgew0KICBjb2xvcjogdmFyKC0tYnJhbmQpOw0KICBmb250LXdlaWdodDogNzAwOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5obCB7DQogIHBhZGRpbmc6IDAgMnB4Ow0KICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgNjAlLCAjZmZmM2NkIDYwJSk7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm5vdGUtYm94IHsNCiAgbWFyZ2luOiAyNHB4IDA7DQogIHBhZGRpbmc6IDIwcHggMjRweDsNCiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYnJhbmQpOw0KICBib3JkZXItcmFkaXVzOiA4cHg7DQogIGJhY2tncm91bmQ6IHZhcigtLW5vdGUpOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5ub3RlLWhlYWQgew0KICBtYXJnaW4tYm90dG9tOiA4cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm5vdGUtaGVhZCBoNCB7DQogIG1hcmdpbjogOHB4IDAgMDsNCiAgY29sb3I6IHZhcigtLWhlYWRpbmcpOw0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIGxpbmUtaGVpZ2h0OiAxLjU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm5vdGUtYm94IHA6bGFzdC1jaGlsZCB7DQogIG1hcmdpbi1ib3R0b206IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmJhZGdlIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICBwYWRkaW5nOiAzcHggMTJweDsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZCk7DQogIGNvbG9yOiAjZmZmOw0KICBmb250LXNpemU6IDEzcHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIGxpbmUtaGVpZ2h0OiAxLjQ7DQogIGxldHRlci1zcGFjaW5nOiAuNXB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zbWFsbC1ub3RlIHsNCiAgY29sb3I6IHZhcigtLW11dGVkKTsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICBsaW5lLWhlaWdodDogMjRweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSB1bCwNCi5oZWxpY2FsLWFydGljbGUgb2wgew0KICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICBwYWRkaW5nLWxlZnQ6IDI0cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgbGkgew0KICBtYXJnaW4tYm90dG9tOiA2cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnN0ZXAtbGlzdCB7DQogIGNvdW50ZXItcmVzZXQ6IHN0ZXAtY291bnRlcjsNCiAgcGFkZGluZy1sZWZ0OiAwOw0KICBsaXN0LXN0eWxlOiBub25lOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zdGVwLWxpc3QgbGkgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIG1hcmdpbi1ib3R0b206IDEycHg7DQogIHBhZGRpbmctbGVmdDogNDBweDsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICBsaW5lLWhlaWdodDogMjhweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc3RlcC1saXN0IGxpOjpiZWZvcmUgew0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHRvcDogMnB4Ow0KICBsZWZ0OiAwOw0KICB3aWR0aDogMjhweDsNCiAgaGVpZ2h0OiAyOHB4Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsNCiAgY29sb3I6ICNmZmY7DQogIGNvbnRlbnQ6IGNvdW50ZXIoc3RlcC1jb3VudGVyKTsNCiAgY291bnRlci1pbmNyZW1lbnQ6IHN0ZXAtY291bnRlcjsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICBmb250LXdlaWdodDogNzAwOw0KICBsaW5lLWhlaWdodDogMjhweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zdGVwLWxpc3QgLnN0ZXAtaW1hZ2Ugew0KICBtYXJnaW46IDE0cHggMCAyNnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zdGVwLWxpc3QgLmltYWdlLWR1bW15IHsNCiAgbWluLWhlaWdodDogMjYwcHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm1ldGhvZC1pbWFnZSB7DQogIG1hcmdpbjogMTZweCAwIDI0cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm1ldGhvZC1pbWFnZS5pbWFnZS1kdW1teSB7DQogIG1pbi1oZWlnaHQ6IDI2MHB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHRhYmxlIHsNCiAgd2lkdGg6IDEwMCU7DQogIG1hcmdpbjogMjBweCAwOw0KICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHRoLA0KLmhlbGljYWwtYXJ0aWNsZSB0ZCB7DQogIHBhZGRpbmc6IDEycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHZlcnRpY2FsLWFsaWduOiB0b3A7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgdGhlYWQgdGggew0KICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZCk7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHRib2R5IHRoIHsNCiAgYmFja2dyb3VuZDogI2Y1ZjVmNTsNCiAgY29sb3I6IHZhcigtLWhlYWRpbmcpOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7DQogIGJhY2tncm91bmQ6ICNmOWY5Zjk7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgY29kZSB7DQogIHBhZGRpbmc6IDJweCA2cHg7DQogIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgYmFja2dyb3VuZDogI2Y1ZjVmNTsNCiAgY29sb3I6ICMyMjI7DQogIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOw0KICBmb250LXNpemU6IC45NWVtOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIHByZSB7DQogIG92ZXJmbG93LXg6IGF1dG87DQogIG1hcmdpbjogMThweCAwIDI0cHg7DQogIHBhZGRpbmc6IDE2cHggMThweDsNCiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7DQogIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgYmFja2dyb3VuZDogI2Y4ZjhmODsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSBwcmUgY29kZSB7DQogIHBhZGRpbmc6IDA7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5wLWNvbnRlbnRzLWJ0bi1hcmVhIHsNCiAgZGlzcGxheTogZmxleDsNCiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogIGdhcDogMTZweDsNCiAgbWFyZ2luOiAxNnB4IDA7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucC1idG4sDQouaGVsaWNhbC1hcnRpY2xlIC5wcmltYXJ5LWJ1dHRvbiwNCi5oZWxpY2FsLWFydGljbGUgLmdob3N0LWJ1dHRvbiB7DQogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4ycywgYm9yZGVyLWNvbG9yIC4yczsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucC1idG4gew0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogIHBhZGRpbmc6IDE0cHggMzJweDsNCiAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZCk7DQogIGNvbG9yOiAjZmZmOw0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnAtYnRuOmhvdmVyIHsNCiAgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtZGFyayk7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5wLWJ0bi5zZWNvbmRhcnkgew0KICBiYWNrZ3JvdW5kOiAjNTU1Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5kaXNhYmxlZCwNCi5oZWxpY2FsLWFydGljbGUgLmlzLWRpc2FibGVkIHsNCiAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogIGN1cnNvcjogZGVmYXVsdDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucC1idG4uZGlzYWJsZWQsDQouaGVsaWNhbC1hcnRpY2xlIC5wcmltYXJ5LWJ1dHRvbi5pcy1kaXNhYmxlZCB7DQogIGJhY2tncm91bmQ6ICNhYWE7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIHsNCiAgbWFyZ2luOiAyNHB4IDA7DQogIHBhZGRpbmc6IDE4cHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOw0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIGJhY2tncm91bmQ6ICNmOGY4Zjg7DQogIG92ZXJmbG93OiBoaWRkZW47DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGMtaGVhZGVyIHsNCiAgZGlzcGxheTogZ3JpZDsNCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heChtaW4oMTAwJSwgMjgwcHgpLCAxZnIpKTsNCiAgZ2FwOiAxNnB4Ow0KICBhbGlnbi1pdGVtczogc3RyZXRjaDsNCiAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgcGFkZGluZy1ib3R0b206IDE2cHg7DQogIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1icmFuZCk7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmV5ZWJyb3cgew0KICBtYXJnaW46IDAgMCA0cHg7DQogIGNvbG9yOiB2YXIoLS1icmFuZCk7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsYy1oZWFkZXIgaDMgew0KICBtYXJnaW4tYm90dG9tOiA4cHg7DQogIGNvbG9yOiB2YXIoLS1oZWFkaW5nKTsNCiAgZm9udC1zaXplOiAyMHB4Ow0KICBsaW5lLWhlaWdodDogMS40Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjLWhlYWRlciBwOmxhc3QtY2hpbGQgew0KICBtYXJnaW4tYm90dG9tOiAwOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5oZWFkZXItbWV0cmljcyB7DQogIGRpc3BsYXk6IGdyaWQ7DQogIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgobWluKDEwMCUsIDE4MHB4KSwgMWZyKSk7DQogIGdhcDogMTBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaGVhZGVyLW1ldHJpY3MgZGl2LA0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsYy1wYW5lbCwNCi5oZWxpY2FsLWFydGljbGUgLm1ldHJpYywNCi5oZWxpY2FsLWFydGljbGUgLnN1Yi1yZXN1bHRzID4gZGl2IHsNCiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7DQogIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgYmFja2dyb3VuZDogI2ZmZjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaGVhZGVyLW1ldHJpY3MgZGl2IHsNCiAgcGFkZGluZzogMTJweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaGVhZGVyLW1ldHJpY3MgZGl2W2hpZGRlbl0sDQouaGVsaWNhbC1hcnRpY2xlIC5yZXN1bHQtZ3JpZCBbaGlkZGVuXSB7DQogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaGVhZGVyLW1ldHJpY3MgLm1haW4tcmVzdWx0LXN1bW1hcnkgew0KICBncmlkLWNvbHVtbjogMSAvIC0xOw0KICBib3JkZXItY29sb3I6IHJnYmEoMjEyLCAwLCAzNywgLjY1KTsNCiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZiwgI2ZmZjRmNik7DQogIGJveC1zaGFkb3c6IDAgOHB4IDE4cHggcmdiYSgyMTIsIDAsIDM3LCAuMTApOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5oZWFkZXItbWV0cmljcyBzcGFuIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiB2YXIoLS1icmFuZCk7DQogIGZvbnQtc2l6ZTogMjJweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgbGluZS1oZWlnaHQ6IDEuMjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaGVhZGVyLW1ldHJpY3Mgc21hbGwsDQouaGVsaWNhbC1hcnRpY2xlIC5tZXRyaWMgc21hbGwgew0KICBjb2xvcjogdmFyKC0tbXV0ZWQpOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5oZWFkZXItbWV0cmljcyAubWFpbi1yZXN1bHQtc3VtbWFyeSBzcGFuIHsNCiAgZm9udC1zaXplOiAzMnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5oZWFkZXItbWV0cmljcyAubWFpbi1yZXN1bHQtc3VtbWFyeSBzbWFsbCB7DQogIGNvbG9yOiB2YXIoLS1oZWFkaW5nKTsNCiAgZm9udC13ZWlnaHQ6IDgwMDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci13b3Jrc3BhY2Ugew0KICBkaXNwbGF5OiBncmlkOw0KICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KG1pbigxMDAlLCAzNjBweCksIDFmcikpOw0KICBnYXA6IDIwcHg7DQogIGFsaWduLWl0ZW1zOiBzdGFydDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsYy1wYW5lbCB7DQogIG1pbi13aWR0aDogMDsNCiAgcGFkZGluZzogMThweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucGFuZWwtaGVhZCB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGdhcDogMTJweDsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5wYW5lbC1oZWFkIGgzIHsNCiAgbWFyZ2luOiAwOw0KICBjb2xvcjogdmFyKC0taGVhZGluZyk7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGluZS1oZWlnaHQ6IDEuNDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuZ2hvc3QtYnV0dG9uIHsNCiAgbWluLWhlaWdodDogMzhweDsNCiAgcGFkZGluZzogN3B4IDEycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJyYW5kKTsNCiAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBjb2xvcjogdmFyKC0tYnJhbmQpOw0KICBmb250LXdlaWdodDogNzAwOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmdob3N0LWJ1dHRvbjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICNmZmY1ZjU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm1vZGUtZmllbGQgew0KICBtYXJnaW46IDAgMCAxNnB4Ow0KICBwYWRkaW5nOiAwOw0KICBib3JkZXI6IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm1vZGUtZmllbGQgbGVnZW5kIHsNCiAgbWFyZ2luLWJvdHRvbTogOHB4Ow0KICBjb2xvcjogdmFyKC0tbXV0ZWQpOw0KICBmb250LXdlaWdodDogNzAwOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zZWdtZW50ZWQgew0KICBkaXNwbGF5OiBncmlkOw0KICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KG1pbigxMDAlLCAyNjBweCksIDFmcikpOw0KICBnYXA6IDEwcHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnNlZ21lbnRlZCBsYWJlbCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnNlZ21lbnRlZCBpbnB1dCB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgb3BhY2l0eTogMDsNCiAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnNlZ21lbnRlZCBzcGFuIHsNCiAgZGlzcGxheTogZ3JpZDsNCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA4OHB4IG1pbm1heCgwLCAxZnIpOw0KICBncmlkLXRlbXBsYXRlLWFyZWFzOg0KICAgICJpY29uIHRpdGxlIg0KICAgICJpY29uIGNvcHkiOw0KICBnYXA6IDJweCAxMHB4Ow0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBtaW4taGVpZ2h0OiAxMDRweDsNCiAgcGFkZGluZzogMTJweDsNCiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7DQogIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgYmFja2dyb3VuZDogI2ZmZjsNCiAgY29sb3I6IHZhcigtLWluayk7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIGN1cnNvcjogcG9pbnRlcjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc2VnbWVudGVkIGlucHV0OmNoZWNrZWQgKyBzcGFuIHsNCiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCk7DQogIGJhY2tncm91bmQ6ICNmZmY1ZjU7DQogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCByZ2JhKDIxMiwgMCwgMzcsIDAuMTIpOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zZWdtZW50ZWQgLm1vZGUtaWNvbiB7DQogIGdyaWQtYXJlYTogaWNvbjsNCiAgZGlzcGxheTogYmxvY2s7DQogIHdpZHRoOiA4MnB4Ow0KICBoZWlnaHQ6IDgycHg7DQogIGJvcmRlci1yYWRpdXM6IDhweDsNCiAgb2JqZWN0LWZpdDogY29udGFpbjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc2VnbWVudGVkIHN0cm9uZyB7DQogIGdyaWQtYXJlYTogdGl0bGU7DQogIGNvbG9yOiB2YXIoLS1oZWFkaW5nKTsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICBsaW5lLWhlaWdodDogMS4zOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zZWdtZW50ZWQgc21hbGwgew0KICBncmlkLWFyZWE6IGNvcHk7DQogIGNvbG9yOiB2YXIoLS1tdXRlZCk7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgbGluZS1oZWlnaHQ6IDEuNDU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnNlZ21lbnRlZCBpbnB1dDpjaGVja2VkICsgc3BhbiBzdHJvbmcgew0KICBjb2xvcjogdmFyKC0tYnJhbmQpOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zZWdtZW50ZWQgc3Bhbi5oYXMtbWlzc2luZy1pY29uIHsNCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7DQogIGdyaWQtdGVtcGxhdGUtYXJlYXM6DQogICAgInRpdGxlIg0KICAgICJjb3B5IjsNCiAgbWluLWhlaWdodDogODJweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc2VnbWVudGVkIHNwYW4uaGFzLW1pc3NpbmctaWNvbiAubW9kZS1pY29uIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaW5wdXQtcGFyYW1ldGVyLWd1aWRlIHsNCiAgbWFyZ2luOiAwIDAgMTZweDsNCiAgcGFkZGluZzogMTBweDsNCiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7DQogIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgYmFja2dyb3VuZDogI2ZmZjsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuaW5wdXQtcGFyYW1ldGVyLWd1aWRlIGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiBhdXRvOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5pbnB1dC1wYXJhbWV0ZXItZ3VpZGUuaXMtaW1hZ2UtbWlzc2luZywNCi5oZWxpY2FsLWFydGljbGUgLmRlcHRoLXBsYW4tZ3VpZGUuaXMtaW1hZ2UtbWlzc2luZyB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmZvcm0tZ3JpZCB7DQogIGRpc3BsYXk6IGdyaWQ7DQogIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgobWluKDEwMCUsIDE4MHB4KSwgMWZyKSk7DQogIGdhcDogMTJweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCBsYWJlbCB7DQogIGRpc3BsYXk6IGdyaWQ7DQogIGdhcDogNXB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIGxhYmVsIHNwYW4gew0KICBjb2xvcjogdmFyKC0taGVhZGluZyk7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCAuZmllbGQtbGFiZWwgew0KICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgZmxleC13cmFwOiB3cmFwOw0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBnYXA6IDZweDsNCiAgbWluLXdpZHRoOiAwOw0KICBsaW5lLWhlaWdodDogMS40NTsNCiAgd29yZC1icmVhazoga2VlcC1hbGw7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgLmZpZWxkLWljb24gew0KICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogIGZsZXg6IDAgMCBhdXRvOw0KICB3aWR0aDogMjhweDsNCiAgaGVpZ2h0OiAyMnB4Ow0KICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMCwgMzcsIDAuNDUpOw0KICBib3JkZXItcmFkaXVzOiA0cHg7DQogIGJhY2tncm91bmQ6ICNmZmY1ZjU7DQogIGNvbG9yOiB2YXIoLS1icmFuZCk7DQogIGZvbnQtc2l6ZTogMTFweDsNCiAgZm9udC13ZWlnaHQ6IDgwMDsNCiAgbGluZS1oZWlnaHQ6IDE7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgLmZpZWxkLWljb24ud2lkZSB7DQogIHdpZHRoOiA0MnB4Ow0KICBmb250LXNpemU6IDEwcHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgbGFiZWwgZW0gew0KICBjb2xvcjogdmFyKC0tbXV0ZWQpOw0KICBmb250LXN0eWxlOiBub3JtYWw7DQogIGZvbnQtd2VpZ2h0OiA0MDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgaW5wdXQsDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIHNlbGVjdCB7DQogIHdpZHRoOiAxMDAlOw0KICBtaW4taGVpZ2h0OiA0MHB4Ow0KICBwYWRkaW5nOiA4cHggMTBweDsNCiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBjb2xvcjogdmFyKC0taW5rKTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCBpbnB1dDpmb2N1cywNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgc2VsZWN0OmZvY3VzLA0KLmhlbGljYWwtYXJ0aWNsZSAucHJpbWFyeS1idXR0b246Zm9jdXMsDQouaGVsaWNhbC1hcnRpY2xlIC5naG9zdC1idXR0b246Zm9jdXMgew0KICBvdXRsaW5lOiAzcHggc29saWQgcmdiYSgyMTIsIDAsIDM3LCAuMTgpOw0KICBvdXRsaW5lLW9mZnNldDogMnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5mdWxsLXJvdyB7DQogIG1hcmdpbi10b3A6IDEycHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmlzLWhpZGRlbiB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmZvcm0tZ3JpZCBbaGlkZGVuXSB7DQogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc3RhdGUtYmFkZ2Ugew0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogIG1pbi1oZWlnaHQ6IDI2cHg7DQogIHBhZGRpbmc6IDNweCAxMHB4Ow0KICBib3JkZXItcmFkaXVzOiA0cHg7DQogIGJhY2tncm91bmQ6IHZhcigtLWluZm8pOw0KICBjb2xvcjogI2ZmZjsNCiAgZm9udC1zaXplOiAxM3B4Ow0KICBmb250LXdlaWdodDogNzAwOw0KICBsaW5lLWhlaWdodDogMjBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc3RhdGUtYmFkZ2Uub2sgew0KICBiYWNrZ3JvdW5kOiB2YXIoLS1vayk7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnN0YXRlLWJhZGdlLndhcm5pbmcgew0KICBiYWNrZ3JvdW5kOiB2YXIoLS13YXJuKTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc3RhdGUtYmFkZ2UuZXJyb3Igew0KICBiYWNrZ3JvdW5kOiB2YXIoLS1lcnJvcik7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnJlc3VsdC1ncmlkIHsNCiAgZGlzcGxheTogZ3JpZDsNCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heChtaW4oMTAwJSwgMjEwcHgpLCAxZnIpKTsNCiAgZ2FwOiAxMHB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5tZXRyaWMgew0KICBtaW4taGVpZ2h0OiA4OHB4Ow0KICBwYWRkaW5nOiAxMnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5tZXRyaWMgc3Ryb25nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1hcmdpbi10b3A6IDZweDsNCiAgY29sb3I6IHZhcigtLWhlYWRpbmcpOw0KICBmb250LXNpemU6IDIwcHg7DQogIGxpbmUtaGVpZ2h0OiAxLjI1Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIC5tZXRyaWMtbGFiZWwgew0KICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgZmxleC13cmFwOiB3cmFwOw0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBnYXA6IDZweDsNCiAgbWluLXdpZHRoOiAwOw0KICBsaW5lLWhlaWdodDogMS4zNTsNCiAgd29yZC1icmVhazoga2VlcC1hbGw7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgLm1ldHJpYy1pY29uIHsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICBmbGV4OiAwIDAgYXV0bzsNCiAgd2lkdGg6IDI2cHg7DQogIGhlaWdodDogMjFweDsNCiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDAsIDM3LCAwLjQwKTsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBiYWNrZ3JvdW5kOiAjZmZmNWY1Ow0KICBjb2xvcjogdmFyKC0tYnJhbmQpOw0KICBmb250LXNpemU6IDExcHg7DQogIGZvbnQtd2VpZ2h0OiA4MDA7DQogIGxpbmUtaGVpZ2h0OiAxOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIC5tZXRyaWMtaWNvbi53aWRlIHsNCiAgd2lkdGg6IDQ4cHg7DQogIGZvbnQtc2l6ZTogMTBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAubWV0cmljLm1haW4tcmVzdWx0IHsNCiAgZ3JpZC1jb2x1bW46IDEgLyAtMTsNCiAgbWluLWhlaWdodDogMTE2cHg7DQogIGJvcmRlci1jb2xvcjogcmdiYSgyMTIsIDAsIDM3LCAuNjUpOw0KICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmZmLCAjZmZmNGY2KTsNCiAgYm94LXNoYWRvdzogMCA4cHggMThweCByZ2JhKDIxMiwgMCwgMzcsIC4xMCk7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm1ldHJpYy5tYWluLXJlc3VsdCBzbWFsbCB7DQogIGNvbG9yOiB2YXIoLS1oZWFkaW5nKTsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICBmb250LXdlaWdodDogODAwOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5tZXRyaWMubWFpbi1yZXN1bHQgc3Ryb25nIHsNCiAgY29sb3I6IHZhcigtLWJyYW5kKTsNCiAgZm9udC1zaXplOiAzMnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5tZXRyaWMuYWNjZW50IHsNCiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIxMiwgMCwgMzcsIC41NSk7DQogIGJhY2tncm91bmQ6ICNmZmY4Zjg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLm1ldHJpYy5hY2NlbnQgc3Ryb25nIHsNCiAgY29sb3I6IHZhcigtLWJyYW5kKTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc3ViLXJlc3VsdHMgew0KICBkaXNwbGF5OiBncmlkOw0KICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsNCiAgZ2FwOiAxNnB4Ow0KICBtYXJnaW4tdG9wOiAxNnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zdWItcmVzdWx0cyA+IGRpdiB7DQogIHBhZGRpbmc6IDE4cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmRlcHRoLXJlc3VsdC1sYXlvdXQgew0KICBkaXNwbGF5OiBncmlkOw0KICBnYXA6IDE0cHg7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmRlcHRoLXBsYW4tZ3VpZGUgew0KICBtYXJnaW46IDA7DQogIHBhZGRpbmc6IDEwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOw0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIGJhY2tncm91bmQ6ICNmZmY7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmRlcHRoLXBsYW4tZ3VpZGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IGF1dG87DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnN1Yi1yZXN1bHRzIGgzLA0KLmhlbGljYWwtYXJ0aWNsZSAuY2hlY2tzIGgzIHsNCiAgbWFyZ2luLWJvdHRvbTogOHB4Ow0KICBjb2xvcjogdmFyKC0taGVhZGluZyk7DQogIGZvbnQtc2l6ZTogMThweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCBkbCB7DQogIGRpc3BsYXk6IGdyaWQ7DQogIGdhcDogOHB4Ow0KICBtYXJnaW46IDA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgZGwgZGl2IHsNCiAgZGlzcGxheTogZmxleDsNCiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICBnYXA6IDEycHg7DQogIHBhZGRpbmctYm90dG9tOiA2cHg7DQogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIGR0IHsNCiAgY29sb3I6IHZhcigtLW11dGVkKTsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCBkZCB7DQogIG1hcmdpbjogMDsNCiAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgdGV4dC1hbGlnbjogcmlnaHQ7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgLmRlcHRoLXJlc3VsdC1saXN0IHsNCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heChtaW4oMTAwJSwgMTUwcHgpLCAxZnIpKTsNCiAgZ2FwOiAxMHB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIC5kaXN0YW5jZS1yZXN1bHQtbGlzdCB7DQogIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgobWluKDEwMCUsIDE3MHB4KSwgMWZyKSk7DQogIGdhcDogMTBweDsNCn0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCAuZGVwdGgtcmVzdWx0LWxpc3QgZGl2LA0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCAuZGlzdGFuY2UtcmVzdWx0LWxpc3QgZGl2IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1pbi1oZWlnaHQ6IDc4cHg7DQogIHBhZGRpbmc6IDEycHg7DQogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUpOw0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIGJhY2tncm91bmQ6ICNmZmY7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgLmRlcHRoLXJlc3VsdC1saXN0IGR0LA0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCAuZGlzdGFuY2UtcmVzdWx0LWxpc3QgZHQgew0KICBtYXJnaW4tYm90dG9tOiA4cHg7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgbGluZS1oZWlnaHQ6IDEuMzU7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLmNhbGN1bGF0b3ItZW1iZWQgLmRlcHRoLXJlc3VsdC1saXN0IGRkLA0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCAuZGlzdGFuY2UtcmVzdWx0LWxpc3QgZGQgew0KICBjb2xvcjogdmFyKC0tYnJhbmQpOw0KICBmb250LXNpemU6IDIwcHg7DQogIGxpbmUtaGVpZ2h0OiAxLjI1Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jaGVja3Mgew0KICBtYXJnaW4tdG9wOiAxNnB4Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jaGVja3MgdWwgew0KICBkaXNwbGF5OiBncmlkOw0KICBnYXA6IDhweDsNCiAgbWFyZ2luOiAwOw0KICBwYWRkaW5nOiAwOw0KICBsaXN0LXN0eWxlOiBub25lOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jaGVja3MgbGkgew0KICBtYXJnaW46IDA7DQogIHBhZGRpbmc6IDlweCAxMXB4Ow0KICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWluZm8pOw0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jaGVja3MgbGkub2sgew0KICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tb2spOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jaGVja3MgbGkud2FybmluZywNCi5oZWxpY2FsLWFydGljbGUgLmNoZWNrcyBsaS5jYXV0aW9uIHsNCiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXdhcm4pOw0KICBiYWNrZ3JvdW5kOiAjZmZmYWYyOw0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5jaGVja3MgbGkuZXJyb3Igew0KICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZXJyb3IpOw0KICBiYWNrZ3JvdW5kOiAjZmZmNWY1Ow0KfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5wcmltYXJ5LWJ1dHRvbiB7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgbWluLWhlaWdodDogNDRweDsNCiAgcGFkZGluZzogMTFweCAxOHB4Ow0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kKTsNCiAgY29sb3I6ICNmZmY7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIHdoaXRlLXNwYWNlOiBub3dyYXA7DQp9DQoNCi5oZWxpY2FsLWFydGljbGUgLnByaW1hcnktYnV0dG9uOmhvdmVyIHsNCiAgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtZGFyayk7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQpAbWVkaWEgKG1heC13aWR0aDogOTIwcHgpIHsNCi5oZWxpY2FsLWFydGljbGUgLmNhbGMtaGVhZGVyLA0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci13b3Jrc3BhY2Ugew0KICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOw0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgLmhlYWRlci1tZXRyaWNzIHsNCiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucmVzdWx0LWdyaWQgew0KICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsNCiAgfQ0KfQ0KDQpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsNCi5oZWxpY2FsLWFydGljbGUgew0KICAgIHBhZGRpbmc6IDAgMTZweCA0OHB4Ow0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgLnNlY3Rpb24tdGl0bGUgew0KICAgIGZvbnQtc2l6ZTogMjJweDsNCiAgfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5yZWRsaW5lIHsNCiAgICBmb250LXNpemU6IDIwcHg7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuc3ViLXRpdGxlIHsNCiAgICBmb250LXNpemU6IDE4cHg7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAudG9wLWNvbnRlbnRzLWxpc3Qgew0KICAgIHBhZGRpbmc6IDEycHggMTZweCAxNnB4Ow0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgLm5vdGUtYm94LA0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCB7DQogICAgcGFkZGluZzogMTZweCAxOHB4Ow0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgdGFibGUgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIG92ZXJmbG93LXg6IGF1dG87DQogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOw0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgbGkgew0KICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICBsaW5lLWhlaWdodDogMjZweDsNCiAgfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5pbWFnZS1kdW1teSB7DQogICAgbWluLWhlaWdodDogMjQwcHg7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuZm9ybS1ncmlkLA0KLmhlbGljYWwtYXJ0aWNsZSAucmVzdWx0LWdyaWQsDQouaGVsaWNhbC1hcnRpY2xlIC5zdWItcmVzdWx0cywNCi5oZWxpY2FsLWFydGljbGUgLmNvbXBhcmlzb24tbGlzdCB7DQogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAuY2FsY3VsYXRvci1lbWJlZCAuZGVwdGgtcmVzdWx0LWxpc3QsDQouaGVsaWNhbC1hcnRpY2xlIC5jYWxjdWxhdG9yLWVtYmVkIC5kaXN0YW5jZS1yZXN1bHQtbGlzdCB7DQogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAubWV0cmljLm1haW4tcmVzdWx0IHsNCiAgICBncmlkLWNvbHVtbjogc3BhbiAxOw0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgLnNlZ21lbnRlZCB7DQogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7DQogIH0NCg0KLmhlbGljYWwtYXJ0aWNsZSAucGFuZWwtaGVhZCB7DQogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5wLWNvbnRlbnRzLWJ0bi1hcmVhIHsNCiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgLnAtYnRuLA0KLmhlbGljYWwtYXJ0aWNsZSAucHJpbWFyeS1idXR0b24gew0KICAgIHdpZHRoOiAxMDAlOw0KICB9DQp9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgew0KLmhlbGljYWwtYXJ0aWNsZSAuc2VjdGlvbi10aXRsZSB7DQogICAgZm9udC1zaXplOiAyMHB4Ow0KICB9DQoNCi5oZWxpY2FsLWFydGljbGUgLnJlZGxpbmUgew0KICAgIGZvbnQtc2l6ZTogMThweDsNCiAgfQ0KDQouaGVsaWNhbC1hcnRpY2xlIC5zdWItdGl0bGUgew0KICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgfQ0KfQ0KPC9zdHlsZT4NCg0KPG1haW4gY2xhc3M9ImhlbGljYWwtYXJ0aWNsZSIgaWQ9ImhlbGljYWwtdGlwcy1hcnRpY2xlIj4NCiAgICA8c2VjdGlvbiBjbGFzcz0idG9wLWNvbnRlbnRzIiBpZD0idG9wIj4NCiAgICAgIDxoMSBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RmluaSBsZXMgYXBwcm94aW1hdGlvbnMgZGFucyBsZSBmcmFpc2FnZSBow6lsaWNvw69kYWw8YnI+VW4gZ3VpZGUgcHJhdGlxdWUgcG91ciBsYSBzw6lsZWN0aW9uIGQnb3V0aWxzLCBsZSBjYWxjdWwgZGUgbCdhbmdsZSBkZSBwbG9uZ8OpZSBldCBsZXMgY29uZGl0aW9ucyBkZSBjb3VwZTwvaDE+DQogICAgICA8cCBjbGFzcz0ibGVhZCI+QXZlei12b3VzIGTDqWrDoCBldSBiZXNvaW4gZCd1c2luZXIgdW4gdHJvdSBvdSB1bmUgcG9jaGUgb8O5IHVuIGZvcmV0IG4nYXZhaXQgcGFzIGxlIGJvbiBkaWFtw6h0cmUsIG91IG/DuSB1biB0cm91IGRlIGdyYW5kIGRpYW3DqHRyZSBuw6ljZXNzaXRhaXQgcGx1cyBkZSBmbGV4aWJpbGl0w6kgPyBEYW5zIGRlIHRlbHMgY2FzLCBsZSA8c3Ryb25nIGNsYXNzPSJlbS1yZWQiPmZyYWlzYWdlIGjDqWxpY2/Dr2RhbDwvc3Ryb25nPiwgb8O5IHVuIEN1dHRlciBzdWl0IHVuZSBpbnRlcnBvbGF0aW9uIGNpcmN1bGFpcmUgdG91dCBlbiBhdmFuw6dhbnQgZGFucyBsYSBkaXJlY3Rpb24gWiwgcGV1dCDDqnRyZSB1bmUgb3B0aW9uIHRyw6hzIGVmZmljYWNlLjwvcD4NCiAgICAgIDxwIGNsYXNzPSJsZWFkIj5MZSBmcmFpc2FnZSBow6lsaWNvw69kYWwgZXN0IHV0aWxlIHBvdXIgb3V2cmlyIGRlcyB0cm91cyBzYW5zIGF2YW50LXRyb3UgZXQgcG91ciB1c2luZXIgZGUgZ3JhbmRzIHRyb3VzIGRpZmZpY2lsZXMgw6AgcsOpYWxpc2VyIGF2ZWMgZGVzIGZvcmV0cy4gVW4gYXZhbnRhZ2UgY2zDqSBlc3QgcXUnPHN0cm9uZyBjbGFzcz0iZW0tcmVkIj51biBzZXVsIEN1dHRlciBwZXV0IHNvdXZlbnQgY291dnJpciBwbHVzaWV1cnMgZGlhbcOodHJlcyBkZSB0cm91PC9zdHJvbmc+LiBDZWxhIHBldXQgYWlkZXIgw6AgcsOpZHVpcmUgbCdpbnZlbnRhaXJlIGQnb3V0aWxzIGV0IMOgIHNpbXBsaWZpZXIgbGVzIHByb2Nlc3N1cyBkJ3VzaW5hZ2UuPC9wPg0KICAgICAgPHAgY2xhc3M9ImxlYWQiPkQndW4gYXV0cmUgY8O0dMOpLCB1bmUgZm9pcyBxdWUgdm91cyBjb21tZW5jZXogw6AgZMOpZmluaXIgbGVzIGNvbmRpdGlvbnMgcsOpZWxsZXMsIGRlIG5vbWJyZXVzZXMgdsOpcmlmaWNhdGlvbnMgc29udCBuw6ljZXNzYWlyZXMgOiBxdWVsIGRpYW3DqHRyZSBkZSBDdXR0ZXIgY29udmllbnQgYXUgZGlhbcOodHJlIGRlIHRyb3UgY2libGUsIHF1ZWxsZSBwZXV0IMOqdHJlIGxhIHRhaWxsZSBkdSBwYXMgaMOpbGljb8OvZGFsLCBzaSBsJ2FuZ2xlIGRlIHBsb25nw6llIGVzdCBjb25mb3JtZSBhdXggc3DDqWNpZmljYXRpb25zIGRlIGwnb3V0aWwsIGV0IHNpIHVuZSBjb3JyZWN0aW9uIGQnYXZhbmNlIGVzdCBuw6ljZXNzYWlyZS4gRW4gZCdhdXRyZXMgdGVybWVzLCBsZSBmcmFpc2FnZSBow6lsaWNvw69kYWwgZXN0IDxzdHJvbmc+PHNwYW4gY2xhc3M9ImhsIj50csOocyB1dGlsZSBsb3JzcXUnaWwgZXN0IGFwcGxpcXXDqSBjb3JyZWN0ZW1lbnQsIG1haXMgaWwgZXN0IGZhY2lsZSBkZSBzJ3kgcGVyZHJlIGxvcnMgZGUgbGEgc8OpbGVjdGlvbiBkZXMgb3V0aWxzIGV0IGRlcyBjb25kaXRpb25zPC9zcGFuPjwvc3Ryb25nPi48L3A+DQogICAgICA8cCBjbGFzcz0ibGVhZCI+Q2V0IGFydGljbGUgZXhwbGlxdWUgbGVzIHByaW5jaXBlcyBmb25kYW1lbnRhdXggZHUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsLCBsZSBwcm9jZXNzdXMgZGUgc8OpbGVjdGlvbiBkJ291dGlscywgbGUgY2FsY3VsIGRlIGwnYW5nbGUgZGUgcGxvbmfDqWUgZXQgZHUgcGFzLCBhaW5zaSBxdWUgbGVzIHByw6ljYXV0aW9ucyBkJ3VzaW5hZ2UgY2zDqXMgZGFucyB1biBvcmRyZSBwcmF0aXF1ZS4gSWwgcHLDqXNlbnRlIMOpZ2FsZW1lbnQgdW4gY2FsY3VsYXRldXIgaW50w6lncsOpIMOgIGxhIHBhZ2UgZXQgdW4gc8OpbGVjdGV1ciBkJ291dGlscyBzw6lwYXLDqSBxdWkgYWlkZSDDoCB0cm91dmVyIGRlcyBDdXR0ZXJzIFR1bmdhbG95IGNhbmRpZGF0cyDDoCBwYXJ0aXIgZGUgdm9zIGNvbmRpdGlvbnMgZCdlbnRyw6llLjwvcD4NCg0KICAgICAgPGZpZ3VyZSBjbGFzcz0iaGVyby1maWd1cmUiIGFyaWEtbGFiZWw9Ik1haW4gaGVsaWNhbCBtaWxsaW5nIGltYWdlIj4NCiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdHVuZ2Fsb3kuY29tL3dwZGF0YS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNy8wMV9UdW5nRm9yY2VSZWNfSGVsaWNhbF9tLmpwZyIgYWx0PSJJbWFnZSBkZSBmcmFpc2FnZSBow6lsaWNvw69kYWwiPg0KICAgICAgPC9maWd1cmU+DQoNCiAgICAgIDxkaXYgY2xhc3M9InRvcC1jb250ZW50cy1saXN0Ij4NCiAgICAgICAgPGgzPkNlIHF1ZSB2b3VzIGFwcHJlbmRyZXo8L2gzPg0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPjxhIGNsYXNzPSJ0b2MtbGluayIgaHJlZj0iI3NlY3Rpb24xIj5RdSdlc3QtY2UgcXVlIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbDwvYT48L2xpPg0KICAgICAgICAgIDxsaT48YSBjbGFzcz0idG9jLWxpbmsiIGhyZWY9IiNzZWN0aW9uMiI+VHJvaXMgdmFsZXVycyBjbMOpcyBkYW5zIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbDwvYT48L2xpPg0KICAgICAgICAgIDxsaT48YSBjbGFzcz0idG9jLWxpbmsiIGhyZWY9IiNzZWN0aW9uMyI+UG9pbnRzIGRlIHPDqWxlY3Rpb24gZCdvdXRpbHMgcG91ciBsZSBmcmFpc2FnZSBow6lsaWNvw69kYWw8L2E+PC9saT4NCiAgICAgICAgICA8bGk+PGEgY2xhc3M9InRvYy1saW5rIiBocmVmPSIjc2VjdGlvbjQiPlByb2PDqWR1cmUgZGUgc8OpbGVjdGlvbiBkJ291dGlsczwvYT48L2xpPg0KICAgICAgICAgIDxsaT48YSBjbGFzcz0idG9jLWxpbmsiIGhyZWY9IiNzZWN0aW9uNSI+UHLDqWNhdXRpb25zIHBlbmRhbnQgbGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsPC9hPjwvbGk+DQogICAgICAgICAgPGxpPjxhIGNsYXNzPSJ0b2MtbGluayIgaHJlZj0iI3NlY3Rpb242Ij5VbiBjYWxjdWxhdGV1ciBwcmF0aXF1ZSBwb3VyIGxlIHBhcyBldCBsJ2FuZ2xlIGRlIHBsb25nw6llPC9hPjwvbGk+DQogICAgICAgICAgPGxpPjxhIGNsYXNzPSJ0b2MtbGluayIgaHJlZj0iI3NlY3Rpb243Ij5JbnRyb2R1Y3Rpb24gYXUgc8OpbGVjdGV1ciBkJ291dGlsczwvYT48L2xpPg0KICAgICAgICAgIDxsaT48YSBjbGFzcz0idG9jLWxpbmsiIGhyZWY9IiNzdW1tYXJ5Ij5Sw6lzdW3DqTwvYT48L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgPC9kaXY+DQogICAgPC9zZWN0aW9uPg0KDQogICAgPHNlY3Rpb24gaWQ9InNlY3Rpb24xIj4NCiAgICAgIDxoMiBjbGFzcz0icmVkbGluZSI+MS4gUXUnZXN0LWNlIHF1ZSBsZSBmcmFpc2FnZSBow6lsaWNvw69kYWwgPzwvaDI+DQogICAgICA8cD5MZSBmcmFpc2FnZSBow6lsaWNvw69kYWwgZXN0IHVuZSBtw6l0aG9kZSBkJ3VzaW5hZ2UgZGFucyBsYXF1ZWxsZSBsJ291dGlsIHN1aXQgdW5lIGludGVycG9sYXRpb24gY2lyY3VsYWlyZSB0b3V0IGVuIGF2YW7Dp2FudCBzaW11bHRhbsOpbWVudCBkYW5zIGxhIGRpcmVjdGlvbiBaLiBBdSBsaWV1IGRlIHBsb25nZXIgZGlyZWN0ZW1lbnQsIGwnb3V0aWwgPHN0cm9uZyBjbGFzcz0iZW0tcmVkIj5zZSBkw6lwbGFjZSB2ZXJzIGxlIGJhcyBwZXRpdCDDoCBwZXRpdCB0b3V0IGVuIGTDqWNyaXZhbnQgdW4gY2VyY2xlPC9zdHJvbmc+LCBjcsOpYW50IHVuZSB0cmFqZWN0b2lyZSBkJ291dGlsIGjDqWxpY2/Dr2RhbGUuPC9wPg0KICAgICAgPHA+Q2V0dGUgbcOpdGhvZGUgZXN0IHV0aWxpc8OpZSBwb3VyIGxhIHLDqWFsaXNhdGlvbiBkZSB0cm91cywgbCd1c2luYWdlIGQnZW50csOpZSBkZSBwb2NoZSwgbGVzIGxhbWFnZXMgZXQgbCdvdXZlcnR1cmUgZGUgdHJvdXMgc2FucyBhdmFudC10cm91LiBFbGxlIGZhY2lsaXRlIGwndXNpbmFnZSBkZSBkaWFtw6h0cmVzIGRlIHRyb3Ugc3Vww6lyaWV1cnMgYXUgZGlhbcOodHJlIGR1IEN1dHRlciwgZXQgbGUgbcOqbWUgQ3V0dGVyIHBldXQgc291dmVudCDDqnRyZSB1dGlsaXPDqSBwb3VyIHBsdXNpZXVycyB0YWlsbGVzIGRlIHRyb3UuPC9wPg0KICAgICAgPHA+Q2VwZW5kYW50LCBlbiBmcmFpc2FnZSBow6lsaWNvw69kYWwsIGwnb3V0aWwgZW50cmUgdG91am91cnMgZGFucyBsYSBwacOoY2Ugw6AgdW4gYW5nbGUgaW5jbGluw6kuIENvbnRyYWlyZW1lbnQgYXUgZnJhaXNhZ2UgbGF0w6lyYWwgb3UgYXUgcmFpbnVyYWdlIG9yZGluYWlyZSwgdm91cyBkZXZleiB2w6lyaWZpZXIgbCc8c3Ryb25nPjxzcGFuIGNsYXNzPSJobCI+YW5nbGUgZGUgcGxvbmfDqWUsIGxlIHBhcyBow6lsaWNvw69kYWwsIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsIGV0IGxhIGNvcnJlY3Rpb24gZCdhdmFuY2U8L3NwYW4+PC9zdHJvbmc+LjwvcD4NCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtYm94Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1oZWFkIj48c3BhbiBjbGFzcz0iYmFkZ2UiPlBPSU5UIENMw4k8L3NwYW4+PGg0PkxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCBjb21iaW5lIGwnaW50ZXJwb2xhdGlvbiBjaXJjdWxhaXJlIGV0IGwnYXZhbmNlIHN1ciBsJ2F4ZSBaPC9oND48L2Rpdj4NCiAgICAgICAgPHA+TGVzIHByaW5jaXBhbGVzIHbDqXJpZmljYXRpb25zIHNvbnQgZGUgc2F2b2lyIHNpIGwnb3V0aWwgcHJlbmQgZW4gY2hhcmdlIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCwgc2kgbCdhbmdsZSBkZSBwbG9uZ8OpZSBlc3QgYXBwcm9wcmnDqSwgc2kgbGUgcGFzIG4nZXN0IHBhcyB0cm9wIGdyYW5kIGV0IHNpIGxhIGNvcnJlY3Rpb24gZCdhdmFuY2UgZXN0IGfDqXLDqWUgY29ycmVjdGVtZW50LjwvcD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0idmlkZW8tZW1iZWQiPg0KICAgICAgICA8aWZyYW1lIHdpZHRoPSIzMzkiIGhlaWdodD0iNjAyIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3FKdlpUYWUyWWRRP3N0YXJ0PTExJmVuZD0xNSZwbGF5c2lubGluZT0xIiB0aXRsZT0iRG9GZWVkVHJpIC0gVXNpbmFnZSDDoCBHcmFuZGUtYXZhbmNlIGF2ZWMgY2VudHJlIGQndXNpbmFnZSBob3Jpem9udGFsICEiIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlIiByZWZlcnJlcnBvbGljeT0ic3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIgYWxsb3dmdWxsc2NyZWVuPSIiPjwvaWZyYW1lPg0KICAgICAgPC9kaXY+DQogICAgPC9zZWN0aW9uPg0KDQogICAgPHNlY3Rpb24gaWQ9InNlY3Rpb24yIj4NCiAgICAgIDxoMiBjbGFzcz0icmVkbGluZSI+Mi4gVHJvaXMgdmFsZXVycyBjbMOpcyBkYW5zIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbDwvaDI+DQogICAgICA8cD5Mb3JzIGRlIGxhIGTDqWZpbml0aW9uIGRlcyBjb25kaXRpb25zIGRlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCwgY29tbWVuY2V6IHBhciBsZXMgdHJvaXMgdmFsZXVycyBzdWl2YW50ZXMuPC9wPg0KICAgICAgPHRhYmxlPg0KICAgICAgICA8dGhlYWQ+PHRyPjx0aD7DiWzDqW1lbnQ8L3RoPjx0aD5TeW1ib2xlPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PC90aGVhZD4NCiAgICAgICAgPHRib2R5Pg0KICAgICAgICAgIDx0cj48dGQ+RGlhbcOodHJlIGR1IHRyb3U8L3RkPjx0ZD5EaDwvdGQ+PHRkPkRpYW3DqHRyZSBkdSB0cm91IGNpYmxlIG91IGRpYW3DqHRyZSBkdSB0cm91IGjDqWxpY2/Dr2RhbDwvdGQ+PC90cj4NCiAgICAgICAgICA8dHI+PHRkPkRpYW3DqHRyZSBkdSBDdXR0ZXI8L3RkPjx0ZD5EYzwvdGQ+PHRkPkRpYW3DqHRyZSBkdSBDdXR0ZXIgdXRpbGlzw6k8L3RkPjwvdHI+DQogICAgICAgICAgPHRyPjx0ZD5QYXMgaMOpbGljb8OvZGFsPC90ZD48dGQ+UGg8L3RkPjx0ZD5Nb3V2ZW1lbnQgc3VyIGwnYXhlIFogcGFyIHRvdXIgZCdvdXRpbDwvdGQ+PC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgIDwvdGFibGU+DQogICAgICA8cD5VbmUgZm9pcyBjZXMgdHJvaXMgdmFsZXVycyBkw6lmaW5pZXMsIGxlIGRpYW3DqHRyZSBkZSBsYSB0cmFqZWN0b2lyZSBkdSBjZW50cmUgZGUgbCdvdXRpbCBldCBsYSBkaXN0YW5jZSBkZSBkw6lwbGFjZW1lbnQgZHUgY2VudHJlIGRlIGwnb3V0aWwgcGFyIHRvdXIgcGV1dmVudCDDqnRyZSBkw6l0ZXJtaW7DqXMuPC9wPg0KICAgICAgPHByZT48Y29kZT5Ub29sLWNlbnRlciBwYXRoIGRpYW1ldGVyID0gRGggLSBEYw0KVG9vbC1jZW50ZXIgdHJhdmVsIGRpc3RhbmNlIHBlciByZXZvbHV0aW9uID0gKERoIC0gRGMpIHggcGk8L2NvZGU+PC9wcmU+DQoNCiAgICAgIDxmaWd1cmUgY2xhc3M9ImNvbnRlbnQtZmlndXJlIiBhcmlhLWxhYmVsPSJIb2xlIGRpYW1ldGVyIGFuZCB0b29sLWNlbnRlciBwYXRoIGRpYWdyYW0iPg0KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly90dW5nYWxveS5jb20vd3BkYXRhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L2hlbGljYWwtYmFzaXMucG5nIiBhbHQ9IlJlbGF0aW9uIGVudHJlIGxlIGRpYW3DqHRyZSBkdSB0cm91IERoLCBsZSBkaWFtw6h0cmUgZHUgQ3V0dGVyIERjIGV0IGxlIGRpYW3DqHRyZSBkZSBsYSB0cmFqZWN0b2lyZSBkdSBjZW50cmUgZGUgbCdvdXRpbCBEaCAtIERjIj4NCiAgICAgIDwvZmlndXJlPg0KDQogICAgICA8aDMgY2xhc3M9InN1Yi10aXRsZSI+Q29tbWVudCBhYm9yZGVyIGwnYW5nbGUgZGUgcGxvbmfDqWU8L2gzPg0KICAgICAgPHA+VW5lIGZvaXMgbGUgcGFzIGjDqWxpY2/Dr2RhbCBkw6lmaW5pLCBsJ2FuZ2xlIGRlIHBsb25nw6llIHBldXQgw6p0cmUgY2FsY3Vsw6kuPC9wPg0KICAgICAgPHByZT48Y29kZT5SYW1waW5nIGFuZ2xlID0gYXRhbihoZWxpY2FsIHBpdGNoIC8gdG9vbC1jZW50ZXIgdHJhdmVsIGRpc3RhbmNlIHBlciByZXZvbHV0aW9uKTwvY29kZT48L3ByZT4NCiAgICAgIDxwPlBhciBleGVtcGxlLCBsb3JzcXVlIGxlIGRpYW3DqHRyZSBkdSB0cm91IGVzdCBkZSA1MCBtbSwgbGUgZGlhbcOodHJlIGR1IEN1dHRlciBlc3QgZGUgMTAgbW0gZXQgbGUgcGFzIGjDqWxpY2/Dr2RhbCBlc3QgZGUgNSBtbSA6PC9wPg0KICAgICAgPHByZT48Y29kZT5Ub29sLWNlbnRlciBwYXRoIGRpYW1ldGVyID0gNTAuMCAtIDEwLjAgPSA0MC4wIG1tDQpUb29sLWNlbnRlciB0cmF2ZWwgZGlzdGFuY2UgcGVyIHJldm9sdXRpb24gPSA0MC4wIHggcGkgPSAxMjUuNyBtbQ0KUmFtcGluZyBhbmdsZSA9IGF0YW4oNS4wIC8gMTI1LjcpID0gYXBwcm94LiAyLjMgZGVnPC9jb2RlPjwvcHJlPg0KICAgICAgPHA+U2kgdm91cyBzb3VoYWl0ZXogZMOpZmluaXIgbCdhbmdsZSBkZSBwbG9uZ8OpZSBlbiBwcmVtaWVyLCBjYWxjdWxleiBsZSBwYXMgaMOpbGljb8OvZGFsIGF2ZWMgbGEgZm9ybXVsZSBzdWl2YW50ZS48L3A+DQogICAgICA8cHJlPjxjb2RlPkhlbGljYWwgcGl0Y2ggPSB0b29sLWNlbnRlciB0cmF2ZWwgZGlzdGFuY2UgcGVyIHJldm9sdXRpb24geCB0YW4ocmFtcGluZyBhbmdsZSk8L2NvZGU+PC9wcmU+DQogICAgICA8ZGl2IGNsYXNzPSJub3RlLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZCI+PHNwYW4gY2xhc3M9ImJhZGdlIj5QT0lOVCBDTMOJPC9zcGFuPjxoND5MYSBiYXNlIGRlIGNhbGN1bCBlc3QgbGUgZGlhbcOodHJlIGRlIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsLCBldCBub24gbGUgZGlhbcOodHJlIGR1IHRyb3UgbHVpLW3Dqm1lPC9oND48L2Rpdj4NCiAgICAgICAgPHA+RGFucyBsZXMgY2FsY3VscyBkZSBmcmFpc2FnZSBow6lsaWNvw69kYWwsIGlsIGVzdCBpbXBvcnRhbnQgZCd1dGlsaXNlciBsZSA8c3Ryb25nIGNsYXNzPSJlbS1yZWQiPmRpYW3DqHRyZSBkZSBsYSB0cmFqZWN0b2lyZSB0cmFjw6llIHBhciBsZSBjZW50cmUgZGUgbCdvdXRpbDwvc3Ryb25nPiwgZXQgbm9uIGxlIGRpYW3DqHRyZSBkdSB0cm91IGx1aS1tw6ptZS48L3A+DQogICAgICA8L2Rpdj4NCiAgICA8L3NlY3Rpb24+DQoNCiAgICA8c2VjdGlvbiBpZD0ic2VjdGlvbjMiPg0KICAgICAgPGgyIGNsYXNzPSJyZWRsaW5lIj4zLiBQb2ludHMgZGUgc8OpbGVjdGlvbiBkJ291dGlscyBwb3VyIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbDwvaDI+DQogICAgICA8cD5FbiBmcmFpc2FnZSBow6lsaWNvw69kYWwsIHRvdXQgQ3V0dGVyIHF1aSByZW50cmUgZGFucyBsZSBkaWFtw6h0cmUgZHUgdHJvdSBuJ2VzdCBwYXMgYXV0b21hdGlxdWVtZW50IGFkYXB0w6kuIFZvdXMgZGV2ZXogY29uZmlybWVyIHNpIGwnb3V0aWwgcHJlbmQgZW4gY2hhcmdlIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCwgc2kgbGUgZGlhbcOodHJlIGR1IHRyb3Ugc2Ugc2l0dWUgZGFucyBsYSBwbGFnZSBtaW5pbWFsZSBldCBtYXhpbWFsZSBkZSB0cm91cyBow6lsaWNvw69kYXV4IHByaXMgZW4gY2hhcmdlLCBldCBzaSBsZSBwYXMgZXQgbCdhbmdsZSBkZSBwbG9uZ8OpZSBzb250IGNvbmZvcm1lcyBhdXggc3DDqWNpZmljYXRpb25zIGRlIGwnb3V0aWwuPC9wPg0KICAgICAgPGgzIGNsYXNzPSJzdWItdGl0bGUiPlR5cGVzIGRlIEN1dHRlcnMgdXRpbGlzw6lzIHBvdXIgbGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsPC9oMz4NCiAgICAgIDxwPkxlcyBwcmluY2lwYXV4IGNhbmRpZGF0cyBzb250IGxlcyA8c3Ryb25nIGNsYXNzPSJlbS1yZWQiPkN1dHRlcnMgU2hvdWxkZXIgbWlsbGluZyBhdmVjIGNhcGFjaXTDqSBkZSBwbG9uZ8OpZTwvc3Ryb25nPiBldCBsZXMgPHN0cm9uZyBjbGFzcz0iZW0tcmVkIj5DdXR0ZXJzIEdyYW5kZS1hdmFuY2UgYXZlYyBjYXBhY2l0w6kgZGUgcGxvbmfDqWU8L3N0cm9uZz4uIFBvdXIgbGVzIGRldXggdHlwZXMsIGNvbmZpcm1leiBzaSBsJ291dGlsIHBldXQgw6p0cmUgdXRpbGlzw6kgcG91ciBsZSBmcmFpc2FnZSBow6lsaWNvw69kYWwsIHF1ZWwgZXN0IGwnYW5nbGUgZGUgcGxvbmfDqWUgbWF4aW1hbCwgZXQgc2kgbGUgZGlhbcOodHJlIGNpYmxlIHNlIHNpdHVlIGRhbnMgbGEgcGxhZ2UgbWluaW1hbGUgZXQgbWF4aW1hbGUgZGUgdHJvdXMgaMOpbGljb8OvZGF1eC48L3A+DQogICAgICA8ZGl2IGNsYXNzPSJjdXR0ZXItaW1hZ2VzIj4NCiAgICAgICAgPGZpZ3VyZSBjbGFzcz0iY3V0dGVyLWltYWdlIj4NCiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly90dW5nYWxveS5jb20vd3BkYXRhL3dwLWNvbnRlbnQvdXBsb2Fkcy9wcm9kdWN0X01pbGxpbmdfVHVuZ0ZvcmNlLVJlYy0xNTB4MTUwLnBuZyIgYWx0PSJJbWFnZSBkZSBDdXR0ZXIgU2hvdWxkZXIgbWlsbGluZyIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiPg0KICAgICAgICAgIDxmaWdjYXB0aW9uPkltYWdlIGRlIEN1dHRlciBTaG91bGRlciBtaWxsaW5nPC9maWdjYXB0aW9uPg0KICAgICAgICA8L2ZpZ3VyZT4NCiAgICAgICAgPGZpZ3VyZSBjbGFzcz0iY3V0dGVyLWltYWdlIj4NCiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly90dW5nYWxveS5jb20vd3BkYXRhL3dwLWNvbnRlbnQvdXBsb2Fkcy9tXzU0NV90XzAxLTE1MHgxNTAucG5nIiBhbHQ9IkltYWdlIGRlIEN1dHRlciBHcmFuZGUtYXZhbmNlIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+DQogICAgICAgICAgPGZpZ2NhcHRpb24+SW1hZ2UgZGUgQ3V0dGVyIEdyYW5kZS1hdmFuY2U8L2ZpZ2NhcHRpb24+DQogICAgICAgIDwvZmlndXJlPg0KICAgICAgPC9kaXY+DQogICAgICA8aDMgY2xhc3M9InN1Yi10aXRsZSI+UG91ciBsJ8OpYmF1Y2hlLCBsZXMgQ3V0dGVycyBHcmFuZGUtYXZhbmNlIHNvbnQgZ8OpbsOpcmFsZW1lbnQgbGUgcHJlbWllciBjaG9peDwvaDM+DQogICAgICA8cD5Mb3JzcXVlIGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCBlc3QgdXRpbGlzw6kgY29tbWUgcHJvY2Vzc3VzIGQnw6liYXVjaGUsIGlsIGVzdCByYWlzb25uYWJsZSBkZSBjb21tZW5jZXIgcGFyIGNvbnNpZMOpcmVyIHVuIDxzdHJvbmcgY2xhc3M9ImVtLXJlZCI+Q3V0dGVyIEdyYW5kZS1hdmFuY2U8L3N0cm9uZz4uIEJpZW4gcXVlIGxlcyBDdXR0ZXJzIEdyYW5kZS1hdmFuY2UgcHVpc3NlbnQgYXZvaXIgdW5lIHByb2ZvbmRldXIgZGUgY291cGUgbWF4aW1hbGUgQVBNWCBwbHVzIHBldGl0ZSwgaWxzIHBldXZlbnQgc291dmVudCBhcHBsaXF1ZXIgdW4gdGF1eCBkJ2F2YW5jZSBwbHVzIMOpbGV2w6ksIGNlIHF1aSBlc3QgYXZhbnRhZ2V1eCBwb3VyIGxhIHByb2R1Y3Rpdml0w6kuPC9wPg0KICAgICAgPHA+U2Vsb24gbGEgZGlzdGFuY2UgZCd1c2luYWdlIGV0IGxlIGRpYW3DqHRyZSBkZSBsYSB0cmFqZWN0b2lyZSBkdSBjZW50cmUgZGUgbCdvdXRpbCwgbCdhbmdsZSBkZSBwbG9uZ8OpZSBtYXhpbWFsIGQndW4gQ3V0dGVyIFNob3VsZGVyIG1pbGxpbmcgcGV1dCBkZXZlbmlyIGxlIGZhY3RldXIgbGltaXRhbnQsIGVtcMOqY2hhbnQgbGUgQ3V0dGVyIGQndXRpbGlzZXIgcGxlaW5lbWVudCBzYSBjYXBhY2l0w6kgQVBNWCBkaXNwb25pYmxlLiBQYXIgY29uc8OpcXVlbnQsIDxzdHJvbmc+PHNwYW4gY2xhc3M9ImhsIj51biBDdXR0ZXIgR3JhbmRlLWF2YW5jZSBwZXV0IMOqdHJlIGF2YW50YWdldXggbcOqbWUgbG9yc3F1ZSBzb24gQVBNWCBlc3QgcGx1cyBwZXRpdCwgY2FyIGlsIHBldXQgYXBwbGlxdWVyIGRlcyBjb25kaXRpb25zIGQnYXZhbmNlIHBsdXMgw6lsZXbDqWVzPC9zcGFuPjwvc3Ryb25nPi48L3A+DQogICAgICA8ZGl2IGNsYXNzPSJjb21wYXJpc29uLWxpc3QiPg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxoND5RdWFuZCBjb21tZW5jZXIgYXZlYyB1biBDdXR0ZXIgR3JhbmRlLWF2YW5jZTwvaDQ+DQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+w4liYXVjaGUgOjwvc3Ryb25nPiBQb3VyIHVuIHVzaW5hZ2UgYXjDqSBzdXIgbGEgcHJvZHVjdGl2aXTDqSwgY29tbWVuY2V6IHBhciB1biBDdXR0ZXIgR3JhbmRlLWF2YW5jZS48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+VHJvdXMgcHJvZm9uZHMgOjwvc3Ryb25nPiBMZXMgQ3V0dGVycyBHcmFuZGUtYXZhbmNlIG9udCB0ZW5kYW5jZSDDoCByw6lzaXN0ZXIgYXUgYnJvdXRhZ2UgbG9ycyBkJ3VzaW5hZ2VzIMOgIGxvbmcgcG9ydGUtw6AtZmF1eCBldCBhc3N1cmVudCB1bmUgYm9ubmUgw6l2YWN1YXRpb24gZGVzIENvcGVhdXguPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPkxvcnNxdWUgbGEgcsOpZHVjdGlvbiBkdSB0ZW1wcyBkJ3VzaW5hZ2UgZXN0IGltcG9ydGFudGUgOjwvc3Ryb25nPiBNw6ptZSBhdmVjIHVuIEFQTVggcGx1cyBwZXRpdCwgZGVzIGNvbmRpdGlvbnMgZGUgR3JhbmRlLWF2YW5jZSBwZXV2ZW50IMOqdHJlIGFwcGxpcXXDqWVzIHBsdXMgZmFjaWxlbWVudC48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+TWF0w6lyaWF1eCBkdXJzIG91IGRpZmZpY2lsZXMgw6AgY291cGVyIDo8L3N0cm9uZz4gVW4gZmFpYmxlIGFuZ2xlIGQnYXR0YXF1ZSBwZXV0IGFtaW5jaXIgbGUgQ29wZWF1eCBldCByw6lkdWlyZSBsYSBjaGFyZ2UgZGUgbCdvdXRpbC48L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxoND5Db21tZW50IGNvbXBhcmVyIGF2ZWMgbGVzIEN1dHRlcnMgU2hvdWxkZXIgbWlsbGluZzwvaDQ+DQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+Q3V0dGVyIFNob3VsZGVyIG1pbGxpbmcgOjwvc3Ryb25nPiBNw6ptZSBsb3JzcXVlIGwnQVBNWCBlc3QgZ3JhbmQsIGxhIGxpbWl0ZSBkJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWxlIHBldXQgZW1ww6pjaGVyIGwndXRpbGlzYXRpb24gY29tcGzDqHRlIGRlIGNldHRlIGNhcGFjaXTDqS48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+Q3V0dGVyIEdyYW5kZS1hdmFuY2UgOjwvc3Ryb25nPiBNw6ptZSBhdmVjIHVuIEFQTVggcGx1cyBwZXRpdCwgbGVzIGNvbmRpdGlvbnMgZGUgR3JhbmRlLWF2YW5jZSBwZXV2ZW50IGxlIHJlbmRyZSBhdmFudGFnZXV4IGVuIMOpYmF1Y2hlLjwvbGk+DQogICAgICAgICAgPC91bD4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIDxoMyBjbGFzcz0ic3ViLXRpdGxlIj5Pw7kgbGVzIEN1dHRlcnMgU2hvdWxkZXIgbWlsbGluZyBzb250IGVmZmljYWNlczwvaDM+DQogICAgICA8cD5JbCBleGlzdGUgw6lnYWxlbWVudCBkZXMgY2FzIG/DuSBsZXMgQ3V0dGVycyBTaG91bGRlciBtaWxsaW5nIHNvbnQgYXZhbnRhZ2V1eC4gRW52aXNhZ2V6IHVuIEN1dHRlciBTaG91bGRlciBtaWxsaW5nIGxvcnNxdWUgbGEgcmlnaWRpdMOpIGRlIGxhIHBpw6hjZSBlc3QgZmFpYmxlIG91IGxvcnNxdWUgbCdhcHBhcmVuY2UgZGUgbGEgcGFyb2kgZHUgdHJvdSB1c2luw6kgZXN0IGltcG9ydGFudGUuPC9wPg0KICAgICAgPHRhYmxlPg0KICAgICAgICA8dGhlYWQ+PHRyPjx0aD5TaXR1YXRpb24gYWRhcHTDqWUgYXV4IEN1dHRlcnMgU2hvdWxkZXIgbWlsbGluZzwvdGg+PHRoPlJhaXNvbjwvdGg+PC90cj48L3RoZWFkPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgPHRyPjx0ZD5GYWlibGUgcmlnaWRpdMOpIGRlIGxhIHBpw6hjZTwvdGQ+PHRkPkxlcyBDdXR0ZXJzIFNob3VsZGVyIG1pbGxpbmcgcGV1dmVudCBhaWRlciDDoCByw6lkdWlyZSBsYSBjb21wb3NhbnRlIHJhZGlhbGUgZGUgbGEgZm9yY2UgZGUgY291cGUgZXQgw6Agc3VwcHJpbWVyIGxhIGZvcmNlIHBvdXNzYW50IGxhIHBpw6hjZS48L3RkPjwvdHI+DQogICAgICAgICAgPHRyPjx0ZD5VbmUgbWVpbGxldXJlIGFwcGFyZW5jZSBkZSBsYSBwYXJvaSBkdSB0cm91IGVzdCByZXF1aXNlPC90ZD48dGQ+TGVzIEN1dHRlcnMgR3JhbmRlLWF2YW5jZSBwZXV2ZW50IGxhaXNzZXIgdW5lIHN1cmZhY2Ugw6ljYWlsbGV1c2Ugc3VyIGxhIHBhcm9pIGR1IHRyb3UuIFNpIGxhIGZpbml0aW9uIGRlIGxhIHBhcm9pIGVzdCBpbXBvcnRhbnRlLCB1biBDdXR0ZXIgU2hvdWxkZXIgbWlsbGluZyBwZXV0IMOqdHJlIHVuIG1laWxsZXVyIGNhbmRpZGF0LjwvdGQ+PC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgIDwvdGFibGU+DQogICAgICA8ZGl2IGNsYXNzPSJub3RlLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZCI+PHNwYW4gY2xhc3M9ImJhZGdlIj5QT0lOVCBDTMOJPC9zcGFuPjxoND5VdGlsaXNleiBsZXMgQ3V0dGVycyBHcmFuZGUtYXZhbmNlIGNvbW1lIGJhc2UgZCfDqWJhdWNoZSA7IGVudmlzYWdleiBsZXMgQ3V0dGVycyBTaG91bGRlciBtaWxsaW5nIHBvdXIgbGVzIHBpw6hjZXMgw6AgZmFpYmxlIHJpZ2lkaXTDqSBvdSB1bmUgbWVpbGxldXJlIGFwcGFyZW5jZSBkZSBwYXJvaTwvaDQ+PC9kaXY+DQogICAgICAgIDxwPkxvcnMgZGUgbGEgc8OpbGVjdGlvbiByw6llbGxlLCB2w6lyaWZpZXogdG91am91cnMgbm9uIHNldWxlbWVudCBsZSB0eXBlIGRlIEN1dHRlciwgbWFpcyBhdXNzaSBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwgZGUgY2hhcXVlIG91dGlsLCBsZSBkaWFtw6h0cmUgZGUgdHJvdSBow6lsaWNvw69kYWwgbWluaW11bSBldCBtYXhpbXVtLCBsJ0FQTVggZXQgbGVzIHBsYXF1ZXR0ZXMgY29tcGF0aWJsZXMuPC9wPg0KICAgICAgPC9kaXY+DQogICAgICA8dGFibGU+DQogICAgICAgIDx0aGVhZD48dHI+PHRoPsOJbMOpbWVudCDDoCB2w6lyaWZpZXI8L3RoPjx0aD5Qb3VycXVvaSBjJ2VzdCBpbXBvcnRhbnQ8L3RoPjx0aD5SaXNxdWUgc2kgaWdub3LDqTwvdGg+PC90cj48L3RoZWFkPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgPHRyPjx0ZD5MJ291dGlsIHByZW5kLWlsIGVuIGNoYXJnZSBsZSBmcmFpc2FnZSBow6lsaWNvw69kYWwgPzwvdGQ+PHRkPkxhIGfDqW9tw6l0cmllIGRlIGwnb3V0aWwsIGxhIHLDqXNpc3RhbmNlIGRlIGwnYXLDqnRlIGV0IGwnw6l2YWN1YXRpb24gZGVzIENvcGVhdXggZG9pdmVudCDDqnRyZSBhcHByb3ByacOpZXMuPC90ZD48dGQ+w4ljYWlsbGFnZSwgYnJvdXRhZ2UsIGJvdXJyYWdlIGRlIENvcGVhdXg8L3RkPjwvdHI+DQogICAgICAgICAgPHRyPjx0ZD5MZSBkaWFtw6h0cmUgZXN0LWlsIGRhbnMgbGEgcGxhZ2UgbWluL21heCBkZSB0cm91cyBow6lsaWNvw69kYXV4ID88L3RkPjx0ZD5Db25maXJtZXIgcXVlIGwnb3V0aWwgcGV1dCBjb3V2cmlyIGxlIGRpYW3DqHRyZSBkdSB0cm91IGNpYmxlLjwvdGQ+PHRkPkludGVyZsOpcmVuY2UgZGUgbCdvdXRpbCwgY2hhcmdlIGV4Y2Vzc2l2ZTwvdGQ+PC90cj4NCiAgICAgICAgICA8dHI+PHRkPkxlIHBhcyBlc3QtaWwgZGFucyBsJ0FQTVggPzwvdGQ+PHRkPkNvbmZpcm1lciBxdWUgbGEgcHJvZm9uZGV1ciBzdXIgbCdheGUgWiBwYXIgdG91ciBlc3QgY29uZm9ybWUgYXV4IHNww6ljaWZpY2F0aW9ucyBkZSBsJ291dGlsLjwvdGQ+PHRkPlJ1cHR1cmUgZCdhcsOqdGUsIG1hdXZhaXNlIHF1YWxpdMOpIGRlIHN1cmZhY2U8L3RkPjwvdHI+DQogICAgICAgICAgPHRyPjx0ZD5MJ2FuZ2xlIGRlIHBsb25nw6llIGVzdC1pbCBkYW5zIGxhIGxpbWl0ZSA/PC90ZD48dGQ+Q29uZmlybWVyIHF1ZSBsYSBjaGFyZ2UgZGUgbCdvdXRpbCBsb3JzIGRlIGwnZW50csOpZSBpbmNsaW7DqWUgcmVzdGUgYWNjZXB0YWJsZS48L3RkPjx0ZD7DiWNhaWxsYWdlLCBicm91dGFnZSwgc3VyY2hhcmdlPC90ZD48L3RyPg0KICAgICAgICAgIDx0cj48dGQ+TGEgdHJhamVjdG9pcmUgZHUgY2VudHJlIGRlIGwnb3V0aWwgcGV1dC1lbGxlIMOqdHJlIHPDqWN1cmlzw6llID88L3RkPjx0ZD5Db25maXJtZXIgcXVlIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIgbidlc3QgcGFzIHRyb3AgcHJvY2hlIGR1IGRpYW3DqHRyZSBkdSB0cm91LjwvdGQ+PHRkPkwnYW5nbGUgZGUgcGxvbmfDqWUgYSB0ZW5kYW5jZSDDoCBkZXZlbmlyIHRyb3AgZ3JhbmQ8L3RkPjwvdHI+DQogICAgICAgICAgPHRyPjx0ZD5MYSBwcm9mb25kZXVyIGQndXNpbmFnZSBldCBsZSBwb3J0ZS3DoC1mYXV4IHNvbnQtaWxzIGFjY2VwdGFibGVzID88L3RkPjx0ZD7DiXZpdGVyIGwnaW50ZXJmw6lyZW5jZSBkZSBsJ291dGlsIG91IGR1IHBvcnRlLW91dGlsLjwvdGQ+PHRkPkludGVyZsOpcmVuY2UgZHUgcG9ydGUtb3V0aWwsIHJpZ2lkaXTDqSBpbnN1ZmZpc2FudGU8L3RkPjwvdHI+DQogICAgICAgICAgPHRyPjx0ZD5MYSBudWFuY2UgZXQgbGUgYnJpc2UtQ29wZWF1eCBjb252aWVubmVudC1pbHMgYXUgbWF0w6lyaWF1ID88L3RkPjx0ZD5MJ2Fyw6p0ZSBkZSBjb3VwZSBkb2l0IGNvcnJlc3BvbmRyZSBhdSBtYXTDqXJpYXUgw6AgdXNpbmVyLjwvdGQ+PHRkPlVzdXJlLCDDiWNhaWxsYWdlLCBhcsOqdGUgcmFwcG9ydMOpZTwvdGQ+PC90cj4NCiAgICAgICAgICA8dHI+PHRkPkwnw6l2YWN1YXRpb24gZGVzIENvcGVhdXggZXN0LWVsbGUgYXNzdXLDqWUgPzwvdGQ+PHRkPkxlcyBDb3BlYXV4IG9udCB1biBlc3BhY2UgZCfDqXZhY3VhdGlvbiBsaW1pdMOpIMOgIGwnaW50w6lyaWV1ciBkJ3VuIHRyb3UuPC90ZD48dGQ+UmVjb3VwZSBkZXMgQ29wZWF1eCwgZW5kb21tYWdlbWVudCBkZSBsJ291dGlsPC90ZD48L3RyPg0KICAgICAgICAgIDx0cj48dGQ+TGEgY29uZGl0aW9uIGVzdC1lbGxlIGRhbnMgbGVzIGNhcGFjaXTDqXMgZGUgbGEgbWFjaGluZSA/PC90ZD48dGQ+VsOpcmlmaWVyIGxhIHZpdGVzc2UgZGUgYnJvY2hlLCBsJ2F2YW5jZSBldCBsYSBwdWlzc2FuY2UgZGUgYnJvY2hlLjwvdGQ+PHRkPlVzaW5hZ2UgaW5zdGFibGUsIGluY2FwYWNpdMOpIMOgIGF0dGVpbmRyZSBsZXMgY29uZGl0aW9uczwvdGQ+PC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgIDwvdGFibGU+DQogICAgICA8ZGl2IGNsYXNzPSJub3RlLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZCI+PHNwYW4gY2xhc3M9ImJhZGdlIj5QT0lOVCBDTMOJPC9zcGFuPjxoND5Ww6lyaWZpZXIgZW5zZW1ibGUgbGUgZGlhbcOodHJlIGR1IHRyb3UsIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIsIGwnQVBNWCBldCBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWw8L2g0PjwvZGl2Pg0KICAgICAgICA8cD5Qb3VyIGxhIHPDqWxlY3Rpb24gZCdvdXRpbHMgZGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsLCB2w6lyaWZpZXogbGUgPHN0cm9uZyBjbGFzcz0iZW0tcmVkIj5kaWFtw6h0cmUgZHUgdHJvdSwgbGUgZGlhbcOodHJlIGR1IEN1dHRlciwgbGUgZGlhbcOodHJlIGRlIHRyb3UgaMOpbGljb8OvZGFsIG1pbmltdW0gZXQgbWF4aW11bSwgbCdBUE1YIGV0IGwnYW5nbGUgZGUgcGxvbmfDqWUgbWF4aW1hbDwvc3Ryb25nPiBjb21tZSB1biBlbnNlbWJsZS48L3A+DQogICAgICA8L2Rpdj4NCiAgICA8L3NlY3Rpb24+DQoNCiAgICA8c2VjdGlvbiBpZD0ic2VjdGlvbjQiPg0KICAgICAgPGgyIGNsYXNzPSJyZWRsaW5lIj40LiBQcm9jw6lkdXJlIGRlIHPDqWxlY3Rpb24gZCdvdXRpbHM8L2gyPg0KICAgICAgPHA+Q2V0dGUgc2VjdGlvbiBkw6ljcml0IGxlIHByb2Nlc3N1cyBwcmF0aXF1ZSBkZSBzw6lsZWN0aW9uIGQndW4gQ3V0dGVyIHBvdXIgbGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsLiBUb3V0IGQnYWJvcmQsIGTDqWZpbmlzc2V6IGxlIGRpYW3DqHRyZSBkZSBDdXR0ZXIgY2FuZGlkYXQgZXQgY29uZmlybWV6IHNpIGwnb3V0aWwgcGV1dCBjb3V2cmlyIGxlIGRpYW3DqHRyZSBkdSB0cm91IGNpYmxlLiBFbnN1aXRlLCBsZSBwcm9jZXNzdXMgc2UgcmFtaWZpZSBzZWxvbiBxdWUgdm91cyBkw6ljaWRleiBkJ2Fib3JkIGR1IHBhcyBow6lsaWNvw69kYWwgb3UgZGUgbCdhbmdsZSBkZSBwbG9uZ8OpZS48L3A+DQogICAgICA8b2wgY2xhc3M9InN0ZXAtbGlzdCI+DQogICAgICAgIDxsaT48c3Ryb25nPkTDqWZpbmlyIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIgOjwvc3Ryb25nPiBEw6lmaW5pciBsZSBkaWFtw6h0cmUgZHUgQ3V0dGVyIG91IGxlIGRpYW3DqHRyZSBkZSBsJ291dGlsIGNhbmRpZGF0LjwvbGk+DQogICAgICAgIDxmaWd1cmUgY2xhc3M9ImNvbnRlbnQtZmlndXJlIHN0ZXAtaW1hZ2UiIGFyaWEtbGFiZWw9IkN1dHRlciBkaWFtZXRlciBzZXR0aW5nIGltYWdlIj4NCiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly90dW5nYWxveS5jb20vd3BkYXRhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L3NlbGVjdFRvb2wucG5nIiBhbHQ9IkltYWdlIGRlIGxhIGTDqWZpbml0aW9uIGR1IGRpYW3DqHRyZSBkdSBDdXR0ZXIgRGMgZXQgZGUgbCdvdXRpbCBjYW5kaWRhdCI+DQogICAgICAgIDwvZmlndXJlPg0KICAgICAgICA8bGk+PHN0cm9uZz5Tw6lsZWN0aW9ubmVyIHRlbXBvcmFpcmVtZW50IHVuIG91dGlsIGRhbnMgbGEgcGxhZ2UgbWluL21heCBkZSB0cm91cyBow6lsaWNvw69kYXV4IDo8L3N0cm9uZz4gQ29uZmlybWVyIHNpIGxlIGRpYW3DqHRyZSBjaWJsZSBzZSBzaXR1ZSBkYW5zIGxhIHBsYWdlIGFwcGxpY2FibGUgZGUgbCdvdXRpbC48L2xpPg0KICAgICAgICA8ZmlndXJlIGNsYXNzPSJjb250ZW50LWZpZ3VyZSBzdGVwLWltYWdlIiBhcmlhLWxhYmVsPSJNaW4vbWF4IGhlbGljYWwtaG9sZSByYW5nZSBjaGVjayBpbWFnZSI+DQogICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdHVuZ2Fsb3kuY29tL3dwZGF0YS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNy9waG9yYW5nbGUucG5nIiBhbHQ9IkltYWdlIGRlIGxhIGNvbXBhcmFpc29uIGR1IGRpYW3DqHRyZSBkdSB0cm91IGNpYmxlIGF2ZWMgbGEgcGxhZ2UgbWluL21heCBkZSB0cm91cyBow6lsaWNvw69kYXV4IGRlIGwnb3V0aWwgY2FuZGlkYXQiPg0KICAgICAgICA8L2ZpZ3VyZT4NCiAgICAgICAgPGxpPjxzdHJvbmc+Q2FsY3VsZXIgbGUgZGlhbcOodHJlIGRlIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsIGV0IGxhIGRpc3RhbmNlIGRlIGTDqXBsYWNlbWVudCA6PC9zdHJvbmc+IFVuZSBmb2lzIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIgZMOpZmluaSwgbGEgYmFzZSBwb3VyIGxlIGNhbGN1bCBkZSBsJ2FuZ2xlIGRlIHBsb25nw6llIGV0IGR1IHBhcyBlc3QgZml4w6llLjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPkNob2lzaXIgc2kgbGUgcGFzIG91IGwnYW5nbGUgZGUgcGxvbmfDqWUgdmllbnQgZW4gcHJlbWllciA6PC9zdHJvbmc+IExlcyBkZXV4IGFwcHJvY2hlcyBzb250IHBvc3NpYmxlcyA7IGF1IGZpbmFsLCBjb25maXJtZXogw6AgbGEgZm9pcyBsJ0FQTVggZXQgbCdhbmdsZSBkZSBwbG9uZ8OpZSBtYXhpbWFsLjwvbGk+DQogICAgICAgIDxmaWd1cmUgY2xhc3M9ImNvbnRlbnQtZmlndXJlIHN0ZXAtaW1hZ2UiIGFyaWEtbGFiZWw9IlRvb2wtY2VudGVyIHBhdGggZGlhbWV0ZXIsIHRyYXZlbCBkaXN0YW5jZSwgcGl0Y2gsIGFuZCByYW1waW5nLWFuZ2xlIGZsb3cgaW1hZ2UiPg0KICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL3R1bmdhbG95LmNvbS93cGRhdGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvQ2hlY2tDYXBhYmlsaXR5LTIucG5nIiBhbHQ9IlByb2Nlc3N1cyBkdSBkaWFtw6h0cmUgZGUgbGEgdHJhamVjdG9pcmUgZHUgY2VudHJlIGRlIGwnb3V0aWwgRGggLSBEYywgZGlzdGFuY2UgZGUgZMOpcGxhY2VtZW50IHBhciB0b3VyLCBzw6lsZWN0aW9uIGR1IHBhcyBlbiBwcmVtaWVyIGV0IGRlIGwnYW5nbGUgZGUgcGxvbmfDqWUgZW4gcHJlbWllciI+DQogICAgICAgIDwvZmlndXJlPg0KICAgICAgPC9vbD4NCiAgICAgIDx0YWJsZT4NCiAgICAgICAgPHRoZWFkPjx0cj48dGg+TcOpdGhvZGU8L3RoPjx0aD5WYWxldXIgZMOpY2lkw6llIGVuIHByZW1pZXI8L3RoPjx0aD5WYWxldXIgY2FsY3Vsw6llIGVuc3VpdGU8L3RoPjx0aD5Ww6lyaWZpY2F0aW9ucyBwcmluY2lwYWxlczwvdGg+PC90cj48L3RoZWFkPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgPHRyPjx0ZD5Nw6l0aG9kZSAxPC90ZD48dGQ+UGFzIGjDqWxpY2/Dr2RhbDwvdGQ+PHRkPkFuZ2xlIGRlIHBsb25nw6llPC90ZD48dGQ+QVBNWCBldCBhbmdsZSBkZSBwbG9uZ8OpZSBtYXhpbWFsPC90ZD48L3RyPg0KICAgICAgICAgIDx0cj48dGQ+TcOpdGhvZGUgMjwvdGQ+PHRkPkFuZ2xlIGRlIHBsb25nw6llPC90ZD48dGQ+UGFzIGjDqWxpY2/Dr2RhbDwvdGQ+PHRkPkFuZ2xlIGRlIHBsb25nw6llIG1heGltYWwgZXQgQVBNWDwvdGQ+PC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgIDwvdGFibGU+DQogICAgICA8aDMgY2xhc3M9InN1Yi10aXRsZSI+TcOpdGhvZGUgMS4gRMOpY2lkZXIgZHUgcGFzIGjDqWxpY2/Dr2RhbCBlbiBwcmVtaWVyPC9oMz4NCiAgICAgIDxwPkxvcnNxdWUgdm91cyBkw6ljaWRleiBkdSBwYXMgaMOpbGljb8OvZGFsIGVuIHByZW1pZXIsIHbDqXJpZmlleiBzaSBsZSBwYXMgZMOpcGFzc2UgbCdBUE1YIGRlIGwnb3V0aWwuIFMnaWwgZXN0IGFjY2VwdGFibGUsIGFwcGxpcXVleiBjZSBwYXMgZXQgY2FsY3VsZXogbCdhbmdsZSBkZSBwbG9uZ8OpZSDDoCBwYXJ0aXIgZGUgbGEgZGlzdGFuY2UgZGUgZMOpcGxhY2VtZW50IGR1IGNlbnRyZSBkZSBsJ291dGlsIGV0IGR1IHBhcy48L3A+DQogICAgICA8ZmlndXJlIGNsYXNzPSJjb250ZW50LWZpZ3VyZSBtZXRob2QtaW1hZ2UiIGFyaWEtbGFiZWw9IlBpdGNoLWZpcnN0IGZsb3ciPg0KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly90dW5nYWxveS5jb20vd3BkYXRhL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L3ByaW9yUGl0Y2gtMS5wbmciIGFsdD0iUHJvY2Vzc3VzIHBvdXIgZMOpY2lkZXIgZHUgcGFzIGjDqWxpY2/Dr2RhbCBlbiBwcmVtaWVyLCB2w6lyaWZpZXIgbCdBUE1YLCBwdWlzIGNhbGN1bGVyIGwnYW5nbGUgZGUgcGxvbmfDqWUiPg0KICAgICAgPC9maWd1cmU+DQogICAgICA8cHJlPjxjb2RlPlJhbXBpbmcgYW5nbGUgPSBhdGFuKGhlbGljYWwgcGl0Y2ggLyB0b29sLWNlbnRlciB0cmF2ZWwgZGlzdGFuY2UgcGVyIHJldm9sdXRpb24pPC9jb2RlPjwvcHJlPg0KICAgICAgPHA+RW5maW4sIGNvbmZpcm1leiBxdWUgbCdhbmdsZSBkZSBwbG9uZ8OpZSBjYWxjdWzDqSBzZSBzaXR1ZSBkYW5zIGwnYW5nbGUgZGUgcGxvbmfDqWUgbWF4aW1hbCBkZSBsJ291dGlsIGNhbmRpZGF0LiBTJ2lsIG4neSBhIHBhcyBkZSBwcm9ibMOobWUsIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIsIGwnw6lsw6ltZW50IGQnb3V0aWwsIGxlIHBhcyBow6lsaWNvw69kYWwgZXQgbCdhbmdsZSBkZSBwbG9uZ8OpZSBwZXV2ZW50IMOqdHJlIGZpbmFsaXPDqXMuPC9wPg0KICAgICAgPGgzIGNsYXNzPSJzdWItdGl0bGUiPk3DqXRob2RlIDIuIETDqWNpZGVyIGRlIGwnYW5nbGUgZGUgcGxvbmfDqWUgZW4gcHJlbWllcjwvaDM+DQogICAgICA8cD5Mb3JzcXVlIHZvdXMgZMOpY2lkZXogZGUgbCdhbmdsZSBkZSBwbG9uZ8OpZSBlbiBwcmVtaWVyLCB2w6lyaWZpZXogc2kgbCdhbmdsZSBkw6lwYXNzZSBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwgZGUgbCdvdXRpbCBjYW5kaWRhdC4gUydpbCBlc3QgYWNjZXB0YWJsZSwgYXBwbGlxdWV6IGNldCBhbmdsZSBkZSBwbG9uZ8OpZSBldCBjYWxjdWxleiBsZSBwYXMgaMOpbGljb8OvZGFsIMOgIHBhcnRpciBkZSBsYSBkaXN0YW5jZSBkZSBkw6lwbGFjZW1lbnQgZHUgY2VudHJlIGRlIGwnb3V0aWwgZXQgZGUgbCdhbmdsZSBkZSBwbG9uZ8OpZS48L3A+DQogICAgICA8ZmlndXJlIGNsYXNzPSJjb250ZW50LWZpZ3VyZSBtZXRob2QtaW1hZ2UiIGFyaWEtbGFiZWw9IlJhbXBpbmctYW5nbGUtZmlyc3QgZmxvdyI+DQogICAgICAgIDxpbWcgc3JjPSJodHRwczovL3R1bmdhbG95LmNvbS93cGRhdGEvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvcHJpb3JBbmdsZS0xLnBuZyIgYWx0PSJQcm9jZXNzdXMgcG91ciBkw6ljaWRlciBkZSBsJ2FuZ2xlIGRlIHBsb25nw6llIGVuIHByZW1pZXIsIHbDqXJpZmllciBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwsIHB1aXMgY2FsY3VsZXIgbGUgcGFzIGjDqWxpY2/Dr2RhbCI+DQogICAgICA8L2ZpZ3VyZT4NCiAgICAgIDxwcmU+PGNvZGU+SGVsaWNhbCBwaXRjaCA9IHRvb2wtY2VudGVyIHRyYXZlbCBkaXN0YW5jZSBwZXIgcmV2b2x1dGlvbiB4IHRhbihyYW1waW5nIGFuZ2xlKTwvY29kZT48L3ByZT4NCiAgICAgIDxwPkVuZmluLCBjb25maXJtZXogcXVlIGxlIHBhcyBow6lsaWNvw69kYWwgY2FsY3Vsw6kgc2Ugc2l0dWUgZGFucyBsJ0FQTVggZGUgbCdvdXRpbCBjYW5kaWRhdC4gUydpbCBuJ3kgYSBwYXMgZGUgcHJvYmzDqG1lLCBsZSBkaWFtw6h0cmUgZHUgQ3V0dGVyLCBsJ8OpbMOpbWVudCBkJ291dGlsLCBsJ2FuZ2xlIGRlIHBsb25nw6llIGV0IGxlIHBhcyBow6lsaWNvw69kYWwgcGV1dmVudCDDqnRyZSBmaW5hbGlzw6lzLjwvcD4NCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtYm94Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1oZWFkIj48c3BhbiBjbGFzcz0iYmFkZ2UiPlBPSU5UIENMw4k8L3NwYW4+PGg0PkxlcyB2w6lyaWZpY2F0aW9ucyBmaW5hbGVzIHNvbnQgbGVzIG3Dqm1lcywgcXVlIHZvdXMgY29tbWVuY2lleiBwYXIgbGUgcGFzIG91IGwnYW5nbGU8L2g0PjwvZGl2Pg0KICAgICAgICA8cD5Db25maXJtZXogcXVlIGxhIGNvbmRpdGlvbiBlc3QgPHN0cm9uZyBjbGFzcz0iZW0tcmVkIj5kYW5zIGwnQVBNWCwgZGFucyBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwgZXQgw6AgbCdpbnTDqXJpZXVyIGRlIGxhIHBsYWdlIG1pbi9tYXggZGUgdHJvdXMgaMOpbGljb8OvZGF1eCBkZSBsJ291dGlsPC9zdHJvbmc+LjwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvc2VjdGlvbj4NCg0KICAgIDxzZWN0aW9uIGlkPSJzZWN0aW9uNSI+DQogICAgICA8aDIgY2xhc3M9InJlZGxpbmUiPjUuIFByw6ljYXV0aW9ucyBwZW5kYW50IGxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbDwvaDI+DQogICAgICA8cD5QYXJjZSBxdWUgbCdvdXRpbCBlbnRyZSBlbiBiaWFpcyB0b3V0IGVuIHNlIGTDqXBsYcOnYW50IGxlIGxvbmcgZCd1bmUgdHJhamVjdG9pcmUgY2lyY3VsYWlyZSwgbGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsIG7DqWNlc3NpdGUgcGx1cyBkZSB2w6lyaWZpY2F0aW9ucyBkZSBjb25kaXRpb25zIHF1ZSBsZSBmcmFpc2FnZSBsYXTDqXJhbCBvcmRpbmFpcmUuIEVuIHBhcnRpY3VsaWVyLCB2w6lyaWZpZXogdG91am91cnMgbCdhbmdsZSBkZSBwbG9uZ8OpZSwgbGUgcGFzLCBsYSBjb3JyZWN0aW9uIGQnYXZhbmNlIGV0IGwnw6l2YWN1YXRpb24gZGVzIENvcGVhdXguPC9wPg0KICAgICAgPGgzIGNsYXNzPSJzdWItdGl0bGUiPk5lIHBhcyByZW5kcmUgbCdhbmdsZSBkZSBwbG9uZ8OpZSB0cm9wIGdyYW5kPC9oMz4NCiAgICAgIDxwPsOAIG1lc3VyZSBxdWUgbCdhbmdsZSBkZSBwbG9uZ8OpZSBhdWdtZW50ZSwgbGEgY2hhcmdlIHN1ciBsJ8OpcGF1bGVtZW50IGR1IEN1dHRlciBldCBsJ2luc2VydCBhdWdtZW50ZS4gTcOqbWUgbG9yc3F1ZSBsJ2FuZ2xlIGVzdCBkYW5zIGxhIGxpbWl0ZSBkZSBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwsIGR1IGJyb3V0YWdlIG91IGRlIGwnw4ljYWlsbGFnZSBwZXV0IHNlIHByb2R1aXJlIGVuIGZvbmN0aW9uIGR1IG1hdMOpcmlhdSDDoCB1c2luZXIsIGRlIGxhIHJpZ2lkaXTDqSBkZSBsYSBtYWNoaW5lIGV0IGRlIGxhIGxvbmd1ZXVyIGR1IHBvcnRlLcOgLWZhdXguPC9wPg0KICAgICAgPGgzIGNsYXNzPSJzdWItdGl0bGUiPk1haW50ZW5pciBsZSBwYXMgaMOpbGljb8OvZGFsIGRhbnMgbCdBUE1YPC9oMz4NCiAgICAgIDxwPkxlIHBhcyBow6lsaWNvw69kYWwgZXN0IGxhIHF1YW50aXTDqSBkZSBwcm9mb25kZXVyIHN1ciBsJ2F4ZSBaIHBhciB0b3VyLiBTaSBsZSBwYXMgZXN0IHRyb3AgZ3JhbmQsIGlsIHBldXQgZMOpcGFzc2VyIGwnQVBNWCBkZSBsJ291dGlsIGV0IGVudHJhw65uZXIgdW4gYm91cnJhZ2UgZGUgQ29wZWF1eCBvdSBkdSBicm91dGFnZS48L3A+DQogICAgICA8aDMgY2xhc3M9InN1Yi10aXRsZSI+QXR0ZW50aW9uIDogbGUgZMOpcGxhY2VtZW50IGR1IGNlbnRyZSBkZSBsJ291dGlsIGV0IGxlIGTDqXBsYWNlbWVudCBkZSBsJ2Fyw6p0ZSBkZSBjb3VwZSBzb250IGRpZmbDqXJlbnRzPC9oMz4NCiAgICAgIDxwPkVuIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCwgbGVzIGNvbW1hbmRlcyBDTiBzb250IGJhc8OpZXMgc3VyIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsLiBDZXBlbmRhbnQsIGxhIGNvdXBlIHLDqWVsbGUgc2UgcHJvZHVpdCDDoCBsYSBww6lyaXBow6lyaWUgZGUgbCdvdXRpbC48L3A+DQogICAgICA8cD5FbiBmcmFpc2FnZSBow6lsaWNvw69kYWwgaW50ZXJuZSwgbGUgZGlhbcOodHJlIGRlIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsIGVzdCBwbHVzIHBldGl0IHF1ZSBsZSBkaWFtw6h0cmUgZHUgdHJvdSB1c2luw6kuIFBhciBjb25zw6lxdWVudCwgPHN0cm9uZz48c3BhbiBjbGFzcz0iaGwiPmxhIGRpc3RhbmNlIGRlIGTDqXBsYWNlbWVudCBkdSBjZW50cmUgZGUgbCdvdXRpbCBldCBsYSBkaXN0YW5jZSBkZSBkw6lwbGFjZW1lbnQgZGUgbCdhcsOqdGUgZGUgY291cGUgbmUgc29udCBwYXMgbGVzIG3Dqm1lczwvc3Bhbj48L3N0cm9uZz4uPC9wPg0KICAgICAgPHA+U2kgbGVzIHZhbGV1cnMgZCdhdmFuY2UgZHUgY2F0YWxvZ3VlIHNvbnQgY29tbWFuZMOpZXMgZGlyZWN0ZW1lbnQgY29tbWUgYXZhbmNlIGR1IGNlbnRyZSBkZSBsJ291dGlsLCBsJ2F2YW5jZSByw6llbGxlIMOgIGwnYXLDqnRlIGRlIGNvdXBlIHBldXQgZGV2ZW5pciBwbHVzIGdyYW5kZSBxdWUgcHLDqXZ1LiBWw6lyaWZpZXogbCdhdmFuY2UgY29tbWFuZMOpZSBkdSBjZW50cmUgZGUgbCdvdXRpbCBldCBsYSBjb3JyZWN0aW9uIGQnYXZhbmNlIGFmaW4gcXVlIGwnYXZhbmNlIMOgIGwnYXLDqnRlIGRlIGNvdXBlIG5lIGRldmllbm5lIHBhcyBleGNlc3NpdmUuPC9wPg0KICAgICAgPHByZT48Y29kZT5Ub29sLWNlbnRlciBjb21tYW5kIGZlZWQgPSB1bmNvcnJlY3RlZCBmZWVkIHggKERoIC0gRGMpIC8gRGg8L2NvZGU+PC9wcmU+DQogICAgICA8cCBjbGFzcz0ic21hbGwtbm90ZSI+UmVtYXJxdWUgOiBTZWxvbiBsYSBtYWNoaW5lLCBsYSBjb21tYW5kZSBudW3DqXJpcXVlIG91IGxlIHN5c3TDqG1lIEZBTywgbGEgY29ycmVjdGlvbiBkJ2F2YW5jZSBjaXJjdWxhaXJlIHBldXQgw6p0cmUgZ8OpcsOpZSBhdXRvbWF0aXF1ZW1lbnQuIENvbmZpcm1leiBsZXMgc3DDqWNpZmljYXRpb25zIGRlIGNvbnRyw7RsZSBkZSBsYSBtYWNoaW5lIHV0aWxpc8OpZSBwb3VyIGxlIHByb2dyYW1tZSByw6llbC48L3A+DQogICAgICA8aDMgY2xhc3M9InN1Yi10aXRsZSI+QXNzdXJlciBsJ8OpdmFjdWF0aW9uIGRlcyBDb3BlYXV4PC9oMz4NCiAgICAgIDxwPkxvcnMgZHUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsIMOgIGwnaW50w6lyaWV1ciBkJ3VuIHRyb3UsIGxlcyBDb3BlYXV4IG9udCB1biBlc3BhY2UgZCfDqXZhY3VhdGlvbiBsaW1pdMOpLiBMZSBib3VycmFnZSBkZSBDb3BlYXV4IHBldXQgZW50cmHDrm5lciBkZSBsJ8OJY2FpbGxhZ2UsIHVuZSBtYXV2YWlzZSBxdWFsaXTDqSBkZSBzdXJmYWNlLCB1biBicnVpdCBhbm9ybWFsIGV0IGR1IGJyb3V0YWdlLjwvcD4NCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtYm94Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1oZWFkIj48c3BhbiBjbGFzcz0iYmFkZ2UiPkFUVEVOVElPTjwvc3Bhbj48aDQ+TGVzIHZhbGV1cnMgY2FsY3Vsw6llcyBzb250IHVuIGd1aWRlIHBvdXIgdsOpcmlmaWVyIGxhIGZhaXNhYmlsaXTDqTwvaDQ+PC9kaXY+DQogICAgICAgIDxwPkZpbmFsaXNleiBsZXMgY29uZGl0aW9ucyBkZSBjb3VwZSBhcHLDqHMgYXZvaXIgY29uZmlybcOpIGxlcyBzcMOpY2lmaWNhdGlvbnMgZGUgbCdvdXRpbCwgbGUgbWF0w6lyaWF1IMOgIHVzaW5lciwgbGEgcmlnaWRpdMOpIGRlIGxhIG1hY2hpbmUsIGxhIHJpZ2lkaXTDqSBkdSBicmlkYWdlIGV0IGxlcyBjb25kaXRpb25zIGRlIGx1YnJpZmljYXRpb24uPC9wPg0KICAgICAgPC9kaXY+DQogICAgPC9zZWN0aW9uPg0KDQogICAgPHNlY3Rpb24gaWQ9InNlY3Rpb242Ij4NCiAgICAgIDxoMiBjbGFzcz0icmVkbGluZSI+Ni4gVW4gY2FsY3VsYXRldXIgcHJhdGlxdWUgcG91ciBsZSBwYXMgZXQgbCdhbmdsZSBkZSBwbG9uZ8OpZTwvaDI+DQogICAgICA8cD5Db21tZSBkw6ljcml0IGNpLWRlc3N1cywgbGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsIG7DqWNlc3NpdGUgZGUgdsOpcmlmaWVyIHPDqXF1ZW50aWVsbGVtZW50IGxlIGRpYW3DqHRyZSBkdSB0cm91LCBsZSBkaWFtw6h0cmUgZHUgQ3V0dGVyLCBsZSBwYXMsIGwnYW5nbGUgZGUgcGxvbmfDqWUgZXQgbGEgY29ycmVjdGlvbiBkJ2F2YW5jZS48L3A+DQogICAgICA8cD5MZXMgZm9ybXVsZXMgZWxsZXMtbcOqbWVzIG5lIHNvbnQgcGFzIGRpZmZpY2lsZXMsIG1haXMgZWZmZWN0dWVyIGxlcyBjYWxjdWxzIG1hbnVlbGxlbWVudCDDoCBjaGFxdWUgZm9pcyBwcmVuZCBkdSB0ZW1wcy4gU2kgbGVzIHbDqXJpZmljYXRpb25zIGRlIGwnQVBNWCBvdSBkZSBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwgc29udCBvbWlzZXMsIGxhIGNvbmRpdGlvbiBwZXV0IGTDqXBhc3NlciBsZXMgc3DDqWNpZmljYXRpb25zIGRlIGwnb3V0aWwuPC9wPg0KICAgICAgPHA+UG91ciBjZXR0ZSByYWlzb24sIGwndXRpbGlzYXRpb24gZCd1biBjYWxjdWxhdGV1ciBxdWkgY2FsY3VsZSBhdXRvbWF0aXF1ZW1lbnQgbCdhbmdsZSBkZSBwbG9uZ8OpZSBldCBsZSBwYXMgZXN0IHVuIG1veWVuIGVmZmljYWNlIGRlIHJldm9pciBsZXMgY29uZGl0aW9ucyBkZSBmcmFpc2FnZSBow6lsaWNvw69kYWwuIExlIGNhbGN1bGF0ZXVyIGNpLWRlc3NvdXMgcGV1dCBiYXNjdWxlciBlbnRyZSBsZXMgbW9kZXMgZGUgY2FsY3VsIHBhcy12ZXJzLWFuZ2xlIGV0IGFuZ2xlLXZlcnMtcGFzLjwvcD4NCg0KICAgICAgPGRpdiBjbGFzcz0iY2FsY3VsYXRvci1lbWJlZCIgaWQ9ImNhbGN1bGF0b3IiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjYWxjLWhlYWRlciI+DQogICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJleWVicm93Ij5DYWxjdWxhdGV1ciBkZSBmcmFpc2FnZSBow6lsaWNvw69kYWw8L3A+DQogICAgICAgICAgICA8aDM+Q2FsY3VsYXRldXIgZCdhbmdsZSBkZSBwbG9uZ8OpZSBldCBkZSBwYXM8L2gzPg0KICAgICAgICAgICAgPHA+VsOpcmlmaWVyIGVuc2VtYmxlIGxlIGRpYW3DqHRyZSBkdSB0cm91LCBsZSBkaWFtw6h0cmUgZHUgQ3V0dGVyLCBsZSBwYXMsIGwnYW5nbGUgZGUgcGxvbmfDqWUgZXQgbGEgY29ycmVjdGlvbiBkJ2F2YW5jZS48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLW1ldHJpY3MiPg0KICAgICAgICAgICAgPGRpdiBpZD0ic3VtbWFyeS1hbmdsZS1jYXJkIiBjbGFzcz0ibWFpbi1yZXN1bHQtc3VtbWFyeSI+PHNwYW4gaWQ9InN1bW1hcnktYW5nbGUiPi0tPC9zcGFuPjxzbWFsbD5BbmdsZSBkZSBwbG9uZ8OpZTwvc21hbGw+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGlkPSJzdW1tYXJ5LXBpdGNoLWNhcmQiIGhpZGRlbj0iIj48c3BhbiBpZD0ic3VtbWFyeS1waXRjaCI+LS08L3NwYW4+PHNtYWxsPlBhczwvc21hbGw+PC9kaXY+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImNhbGN1bGF0b3Itd29ya3NwYWNlIj4NCiAgICAgICAgICA8Zm9ybSBpZD0iY2FsY3VsYXRvci1mb3JtIiBjbGFzcz0iY2FsYy1wYW5lbCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkIj4NCiAgICAgICAgICAgICAgPGgzPkNvbmRpdGlvbnMgZCdlbnRyw6llPC9oMz4NCiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJnaG9zdC1idXR0b24iIGlkPSJsb2FkLWV4YW1wbGUiPkNoYXJnZXIgbCdleGVtcGxlPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0ibW9kZS1maWVsZCI+DQogICAgICAgICAgICAgIDxsZWdlbmQ+TW9kZSBkZSBjYWxjdWw8L2xlZ2VuZD4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudGVkIiByb2xlPSJyYWRpb2dyb3VwIiBhcmlhLWxhYmVsPSJDYWxjdWxhdGlvbiBtb2RlIj4NCiAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJtb2RlIiB2YWx1ZT0icGl0Y2giIGNoZWNrZWQ+PHNwYW4+PGltZyBjbGFzcz0ibW9kZS1pY29uIiBzcmM9Int7SEVMSUNBTF9BU1NFVF9CQVNFX1VSTH19L2ljb24tcGl0Y2gtdG8tYW5nbGUucG5nIiBhbHQ9IiIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+UGFzIHZlcnMgYW5nbGU8L3N0cm9uZz48c21hbGw+RW50cmVyIFBoIHBvdXIgY2FsY3VsZXIgbCdhbmdsZTwvc21hbGw+PC9zcGFuPjwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ibW9kZSIgdmFsdWU9ImFuZ2xlIj48c3Bhbj48aW1nIGNsYXNzPSJtb2RlLWljb24iIHNyYz0ie3tIRUxJQ0FMX0FTU0VUX0JBU0VfVVJMfX0vaWNvbi1hbmdsZS10by1waXRjaC5wbmciIGFsdD0iIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5BbmdsZSB2ZXJzIHBhczwvc3Ryb25nPjxzbWFsbD5FbnRyZXIgbCdhbmdsZSBwb3VyIGNhbGN1bGVyIFBoPC9zbWFsbD48L3NwYW4+PC9sYWJlbD4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2ZpZWxkc2V0Pg0KICAgICAgICAgICAgPGZpZ3VyZSBjbGFzcz0iaW5wdXQtcGFyYW1ldGVyLWd1aWRlIj4NCiAgICAgICAgICAgICAgPGltZyBzcmM9Int7SEVMSUNBTF9BU1NFVF9CQVNFX1VSTH19L2lucHV0LXBhcmFtZXRlci1ndWlkZS5zdmciIGFsdD0iUmVsYXRpb24gZW50cmUgbGUgZGlhbcOodHJlIGR1IHRyb3UsIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIsIGxlIGRpYW3DqHRyZSBkZSBsYSB0cmFqZWN0b2lyZSBkdSBjZW50cmUgZGUgbCdvdXRpbCwgbGUgcGFzIGjDqWxpY2/Dr2RhbCBldCBsJ2FuZ2xlIGRlIHBsb25nw6llIj4NCiAgICAgICAgICAgIDwvZmlndXJlPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncmlkIj4NCiAgICAgICAgICAgICAgPGxhYmVsPjxzcGFuIGNsYXNzPSJmaWVsZC1sYWJlbCI+PGIgY2xhc3M9ImZpZWxkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj5EaDwvYj5EaWFtw6h0cmUgZHUgdHJvdSBEaCA8ZW0+bW08L2VtPjwvc3Bhbj48aW5wdXQgaWQ9ImhvbGUtZGlhbWV0ZXIiIHR5cGU9Im51bWJlciIgaW5wdXRtb2RlPSJkZWNpbWFsIiBtaW49IjAiIHN0ZXA9IjAuMSIgdmFsdWU9IjUwLjAiPjwvbGFiZWw+DQogICAgICAgICAgICAgIDxsYWJlbD48c3BhbiBjbGFzcz0iZmllbGQtbGFiZWwiPjxiIGNsYXNzPSJmaWVsZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+RGM8L2I+RGlhbcOodHJlIGR1IEN1dHRlciBEYyA8ZW0+bW08L2VtPjwvc3Bhbj48aW5wdXQgaWQ9ImN1dHRlci1kaWFtZXRlciIgdHlwZT0ibnVtYmVyIiBpbnB1dG1vZGU9ImRlY2ltYWwiIG1pbj0iMCIgc3RlcD0iMC4xIiB2YWx1ZT0iMTAuMCI+PC9sYWJlbD4NCiAgICAgICAgICAgICAgPGxhYmVsIGlkPSJwaXRjaC1maWVsZCI+PHNwYW4gY2xhc3M9ImZpZWxkLWxhYmVsIj48YiBjbGFzcz0iZmllbGQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPlBoPC9iPlBhcyBow6lsaWNvw69kYWwgUGggPGVtPm1tL3JldjwvZW0+PC9zcGFuPjxpbnB1dCBpZD0icGl0Y2giIHR5cGU9Im51bWJlciIgaW5wdXRtb2RlPSJkZWNpbWFsIiBtaW49IjAiIHN0ZXA9IjAuMSIgdmFsdWU9IjUuMCI+PC9sYWJlbD4NCiAgICAgICAgICAgICAgPGxhYmVsIGlkPSJhbmdsZS1maWVsZCIgY2xhc3M9ImlzLWhpZGRlbiIgaGlkZGVuPSIiPjxzcGFuIGNsYXNzPSJmaWVsZC1sYWJlbCI+PGIgY2xhc3M9ImZpZWxkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj7OuDwvYj5BbmdsZSBkZSBwbG9uZ8OpZSB0aMOqdGEgPGVtPmRlZzwvZW0+PC9zcGFuPjxpbnB1dCBpZD0icmFtcC1hbmdsZSIgdHlwZT0ibnVtYmVyIiBpbnB1dG1vZGU9ImRlY2ltYWwiIG1pbj0iMCIgc3RlcD0iMC4xIiB2YWx1ZT0iMi4zIj48L2xhYmVsPg0KICAgICAgICAgICAgICA8bGFiZWw+PHNwYW4gY2xhc3M9ImZpZWxkLWxhYmVsIj48YiBjbGFzcz0iZmllbGQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPlo8L2I+UHJvZm9uZGV1ciBkJ3VzaW5hZ2UgPGVtPm1tPC9lbT48L3NwYW4+PGlucHV0IGlkPSJkZXB0aCIgdHlwZT0ibnVtYmVyIiBpbnB1dG1vZGU9ImRlY2ltYWwiIG1pbj0iMCIgc3RlcD0iMC4xIiB2YWx1ZT0iMjAuMCI+PC9sYWJlbD4NCiAgICAgICAgICAgICAgPGxhYmVsPjxzcGFuIGNsYXNzPSJmaWVsZC1sYWJlbCI+PGIgY2xhc3M9ImZpZWxkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj5BcDwvYj5Qcm9mb25kZXVyIGRlIGNvdXBlIG1heCBBUE1YIDxlbT5tbTwvZW0+PC9zcGFuPjxpbnB1dCBpZD0iYXBteCIgdHlwZT0ibnVtYmVyIiBpbnB1dG1vZGU9ImRlY2ltYWwiIG1pbj0iMCIgc3RlcD0iMC4xIiB2YWx1ZT0iNi4wIj48L2xhYmVsPg0KICAgICAgICAgICAgICA8bGFiZWw+PHNwYW4gY2xhc3M9ImZpZWxkLWxhYmVsIj48YiBjbGFzcz0iZmllbGQtaWNvbiB3aWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+zrhtYXg8L2I+QW5nbGUgZGUgcGxvbmfDqWUgbWF4IDxlbT5kZWc8L2VtPjwvc3Bhbj48aW5wdXQgaWQ9Im1heC1yYW1wLWFuZ2xlIiB0eXBlPSJudW1iZXIiIGlucHV0bW9kZT0iZGVjaW1hbCIgbWluPSIwIiBzdGVwPSIwLjEiIHZhbHVlPSIzLjAiPjwvbGFiZWw+DQogICAgICAgICAgICAgIDxsYWJlbD48c3BhbiBjbGFzcz0iZmllbGQtbGFiZWwiPjxiIGNsYXNzPSJmaWVsZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+VmM8L2I+Q3V0dGluZyBzcGVlZCBWYyA8ZW0+bS9taW48L2VtPjwvc3Bhbj48aW5wdXQgaWQ9ImN1dHRpbmctc3BlZWQiIHR5cGU9Im51bWJlciIgaW5wdXRtb2RlPSJkZWNpbWFsIiBtaW49IjAiIHN0ZXA9IjAuMSIgdmFsdWU9IjE1MC4wIj48L2xhYmVsPg0KICAgICAgICAgICAgICA8bGFiZWw+PHNwYW4gY2xhc3M9ImZpZWxkLWxhYmVsIj48YiBjbGFzcz0iZmllbGQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPno8L2I+RGVudHMgZWZmZWN0aXZlcyB6PC9zcGFuPjxpbnB1dCBpZD0idGVldGgiIHR5cGU9Im51bWJlciIgaW5wdXRtb2RlPSJudW1lcmljIiBtaW49IjAiIHN0ZXA9IjEiIHZhbHVlPSI0Ij48L2xhYmVsPg0KICAgICAgICAgICAgICA8bGFiZWw+PHNwYW4gY2xhc3M9ImZpZWxkLWxhYmVsIj48YiBjbGFzcz0iZmllbGQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPmZ6PC9iPkZlZWQgcGVyIHRvb3RoIGZ6IDxlbT5tbS96PC9lbT48L3NwYW4+PGlucHV0IGlkPSJmZWVkLXBlci10b290aCIgdHlwZT0ibnVtYmVyIiBpbnB1dG1vZGU9ImRlY2ltYWwiIG1pbj0iMCIgc3RlcD0iMC4xIiB2YWx1ZT0iMC4xIj48L2xhYmVsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPC9mb3JtPg0KDQogICAgICAgICAgPGRpdiBjbGFzcz0iY2FsYy1wYW5lbCByZXN1bHQtcGFuZWwiIGFyaWEtbGl2ZT0icG9saXRlIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWQiPjxoMz5Sw6lzdWx0YXRzIGR1IGNhbGN1bDwvaDM+PHNwYW4gaWQ9InJlc3VsdC1zdGF0ZSIgY2xhc3M9InN0YXRlLWJhZGdlIj5DYWxjdWwgZW4gY291cnM8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtZ3JpZCI+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+PHNtYWxsIGNsYXNzPSJtZXRyaWMtbGFiZWwiPjxiIGNsYXNzPSJtZXRyaWMtaWNvbiB3aWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+RHBhdGg8L2I+RGlhbcOodHJlIGRlIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsIERwYXRoPC9zbWFsbD48c3Ryb25nIGlkPSJjZW50ZXItcGF0aCI+LS08L3N0cm9uZz48L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj48c21hbGwgY2xhc3M9Im1ldHJpYy1sYWJlbCI+PGIgY2xhc3M9Im1ldHJpYy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+TDwvYj5Ew6lwbGFjZW1lbnQgZHUgY2VudHJlIGRlIGwnb3V0aWwgcGFyIHRvdXI8L3NtYWxsPjxzdHJvbmcgaWQ9InBhdGgtbGVuZ3RoIj4tLTwvc3Ryb25nPjwvZGl2Pg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiIGlkPSJyZXN1bHQtcGl0Y2gtY2FyZCIgaGlkZGVuPSIiPjxzbWFsbCBjbGFzcz0ibWV0cmljLWxhYmVsIj48YiBjbGFzcz0ibWV0cmljLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj5QaDwvYj5QYXMgaMOpbGljb8OvZGFsIFBoPC9zbWFsbD48c3Ryb25nIGlkPSJyZXN1bHQtcGl0Y2giPi0tPC9zdHJvbmc+PC9kaXY+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyBtYWluLXJlc3VsdCIgaWQ9InJlc3VsdC1hbmdsZS1jYXJkIj48c21hbGwgY2xhc3M9Im1ldHJpYy1sYWJlbCI+PGIgY2xhc3M9Im1ldHJpYy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+zrg8L2I+QW5nbGUgZGUgcGxvbmfDqWUgdGjDqnRhPC9zbWFsbD48c3Ryb25nIGlkPSJyZXN1bHQtYW5nbGUiPi0tPC9zdHJvbmc+PC9kaXY+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+PHNtYWxsIGNsYXNzPSJtZXRyaWMtbGFiZWwiPjxiIGNsYXNzPSJtZXRyaWMtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPm48L2I+Vml0ZXNzZSBkZSBicm9jaGUgbjwvc21hbGw+PHN0cm9uZyBpZD0icnBtIj4tLTwvc3Ryb25nPjwvZGl2Pg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPjxzbWFsbCBjbGFzcz0ibWV0cmljLWxhYmVsIj48YiBjbGFzcz0ibWV0cmljLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj5GZTwvYj5BdmFuY2Ugbm9uIGNvcnJpZ8OpZSBGX2VkZ2U8L3NtYWxsPjxzdHJvbmcgaWQ9ImVkZ2UtZmVlZCI+LS08L3N0cm9uZz48L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljIj48c21hbGwgY2xhc3M9Im1ldHJpYy1sYWJlbCI+PGIgY2xhc3M9Im1ldHJpYy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+SzwvYj5GYWN0ZXVyIGRlIGNvcnJlY3Rpb24gZCdhdmFuY2U8L3NtYWxsPjxzdHJvbmcgaWQ9ImZlZWQtZmFjdG9yIj4tLTwvc3Ryb25nPjwvZGl2Pg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMgYWNjZW50Ij48c21hbGwgY2xhc3M9Im1ldHJpYy1sYWJlbCI+PGIgY2xhc3M9Im1ldHJpYy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+RmM8L2I+QXZhbmNlIGNvbW1hbmTDqWUgZHUgY2VudHJlIGRlIGwnb3V0aWwgRl9jZW50ZXI8L3NtYWxsPjxzdHJvbmcgaWQ9ImNlbnRlci1mZWVkIj4tLTwvc3Ryb25nPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItcmVzdWx0cyI+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlcHRoLXJlc3VsdC1jYXJkIj48aDM+UHJvZm9uZGV1ciBkJ3VzaW5hZ2U8L2gzPjxkaXYgY2xhc3M9ImRlcHRoLXJlc3VsdC1sYXlvdXQiPjxmaWd1cmUgY2xhc3M9ImRlcHRoLXBsYW4tZ3VpZGUiPjxpbWcgc3JjPSJ7e0hFTElDQUxfQVNTRVRfQkFTRV9VUkx9fS9kZXB0aC1wbGFuLWd1aWRlLnN2ZyIgYWx0PSJFeGVtcGxlIGQnYXR0ZWludGUgZCd1bmUgcHJvZm9uZGV1ciBkZSAyMCwwIG1tIGVuIDQgdG91cnMgYXZlYyB1biBwYXMgZGUgNSwwIG1tL3RvdXIiPjwvZmlndXJlPjxkbCBjbGFzcz0iZGVwdGgtcmVzdWx0LWxpc3QiPjxkaXY+PGR0PlRvdXJzIHJlcXVpczwvZHQ+PGRkIGlkPSJ0dXJucy1yYXciPi0tPC9kZD48L2Rpdj48ZGl2PjxkdD5Ub3VycyBwcm9ncmFtbcOpczwvZHQ+PGRkIGlkPSJ0dXJucy1wcm9ncmFtIj4tLTwvZGQ+PC9kaXY+PGRpdj48ZHQ+UGFzIGFkYXB0w6kgw6AgbGEgcHJvZm9uZGV1cjwvZHQ+PGRkIGlkPSJmaXQtcGl0Y2giPi0tPC9kZD48L2Rpdj48ZGl2PjxkdD5BbmdsZSBhZGFwdMOpIMOgIGxhIHByb2ZvbmRldXI8L2R0PjxkZCBpZD0iZml0LWFuZ2xlIj4tLTwvZGQ+PC9kaXY+PC9kbD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGlzdGFuY2UtcmVzdWx0LWNhcmQiPjxoMz5EaXN0YW5jZSBldCB0ZW1wczwvaDM+PGRsIGNsYXNzPSJkaXN0YW5jZS1yZXN1bHQtbGlzdCI+PGRpdj48ZHQ+RMOpcGxhY2VtZW50IDNEIHBhciB0b3VyPC9kdD48ZGQgaWQ9ImhlbGljYWwtbGVuZ3RoIj4tLTwvZGQ+PC9kaXY+PGRpdj48ZHQ+RW52LiBkw6lwbGFjZW1lbnQgdG90YWw8L2R0PjxkZCBpZD0idG90YWwtbGVuZ3RoIj4tLTwvZGQ+PC9kaXY+PGRpdj48ZHQ+RW52LiB0ZW1wcyBkJ3VzaW5hZ2U8L2R0PjxkZCBpZD0iZXN0aW1hdGVkLXRpbWUiPi0tPC9kZD48L2Rpdj48L2RsPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja3MiPjxoMz5KdWdlbWVudCBldCBwcsOpY2F1dGlvbnM8L2gzPjx1bCBpZD0iY2hlY2stbGlzdCI+PC91bD48L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICA8L3NlY3Rpb24+DQoNCiAgICA8c2VjdGlvbiBpZD0ic2VjdGlvbjciPg0KICAgICAgPGgyIGNsYXNzPSJyZWRsaW5lIj43LiBJbnRyb2R1Y3Rpb24gYXUgc8OpbGVjdGV1ciBkJ291dGlsczwvaDI+DQogICAgICA8cD5BcHLDqHMgYXZvaXIgY2FsY3Vsw6kgbCdhbmdsZSBkZSBwbG9uZ8OpZSBldCBsZSBwYXMgaMOpbGljb8OvZGFsLCBsYSBxdWVzdGlvbiBzdWl2YW50ZSBlc3QgZGUgc2F2b2lyIHF1ZWxzIEN1dHRlcnMgcGV1dmVudCDDqnRyZSB1dGlsaXPDqXMgZGFucyBjZXMgY29uZGl0aW9ucy4gRW4gZnJhaXNhZ2UgaMOpbGljb8OvZGFsLCBsZSBkaWFtw6h0cmUgZHUgdHJvdSwgbGUgZGlhbcOodHJlIGR1IEN1dHRlciwgbCdBUE1YLCBsJ2FuZ2xlIGRlIHBsb25nw6llIG1heGltYWwgZXQgbGEgcGxhZ2UgbWluL21heCBkZSB0cm91cyBow6lsaWNvw69kYXV4IGRvaXZlbnQgw6p0cmUgdsOpcmlmacOpcyBlbnNlbWJsZSwgY2UgcXVpIHBldXQgcmVuZHJlIGxhIHJlY2hlcmNoZSBiYXPDqWUgc3VyIGNhdGFsb2d1ZSBjaHJvbm9waGFnZS48L3A+DQogICAgICA8cD5Qb3VyIGZhY2lsaXRlciBjZXR0ZSB2w6lyaWZpY2F0aW9uLCB1biBzw6lsZWN0ZXVyIGQnb3V0aWxzIHPDqXBhcsOpIGVzdCBkaXNwb25pYmxlIHBvdXIgdHJvdXZlciBkZXMgQ3V0dGVycyBUdW5nYWxveSBjYW5kaWRhdHMgw6AgcGFydGlyIGRlIHZvcyBjb25kaXRpb25zIGQnZW50csOpZS4gRW4gYWZmaW5hbnQgbGVzIEN1dHRlcnMgY2FuZGlkYXRzIGRhbnMgbGUgc8OpbGVjdGV1ciBkJ291dGlscywgdm91cyBwb3V2ZXogZXhhbWluZXIgbGVzIGNvbmRpdGlvbnMgZGUgZnJhaXNhZ2UgaMOpbGljb8OvZGFsIHBsdXMgZmFjaWxlbWVudC48L3A+DQogICAgICA8ZGl2IGNsYXNzPSJub3RlLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZCI+PHNwYW4gY2xhc3M9ImJhZGdlIj5DQVMgRCdVVElMSVNBVElPTjwvc3Bhbj48aDQ+VXRpbGlzZXIgbGUgY2FsY3VsYXRldXIgZXQgbGUgc8OpbGVjdGV1ciBkJ291dGlscyBwb3VyIGRlcyByw7RsZXMgZGlmZsOpcmVudHM8L2g0PjwvZGl2Pg0KICAgICAgICA8cD5VdGlsaXNleiBsZSA8c3Ryb25nIGNsYXNzPSJlbS1yZWQiPmNhbGN1bGF0ZXVyPC9zdHJvbmc+IHBvdXIgdsOpcmlmaWVyIGwnYW5nbGUgZGUgcGxvbmfDqWUsIGxlIHBhcywgbGEgY29ycmVjdGlvbiBkJ2F2YW5jZSBldCBsYSBkaXN0YW5jZSBkJ3VzaW5hZ2UuIFV0aWxpc2V6IGxlIDxzdHJvbmcgY2xhc3M9ImVtLXJlZCI+c8OpbGVjdGV1ciBkJ291dGlsczwvc3Ryb25nPiBwb3VyIHRyb3V2ZXIgZGVzIEN1dHRlcnMgVHVuZ2Fsb3kgY2FuZGlkYXRzIHF1aSBjb3JyZXNwb25kZW50IMOgIGNlcyBjb25kaXRpb25zLjwvcD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0icC1jb250ZW50cy1idG4tYXJlYSI+DQogICAgICAgIDxhIGNsYXNzPSJwLWJ0biIgaHJlZj0iaHR0cHM6Ly90dW5nYWxveS5jb20vaGVsaWNhbC10b29sLXNlbGVjdG9yLyI+T3V2cmlyIGxlIHPDqWxlY3RldXIgZCdvdXRpbHM8L2E+DQogICAgICA8L2Rpdj4NCiAgICAgIDxwIGNsYXNzPSJzbWFsbC1ub3RlIj5SZW1hcnF1ZSA6IExlIHPDqWxlY3RldXIgZCdvdXRpbHMgdm91cyBhaWRlIMOgIHbDqXJpZmllciBsZXMgQ3V0dGVycyBUdW5nYWxveSBjYW5kaWRhdHMgcXVpIGNvcnJlc3BvbmRlbnQgw6Agdm9zIGNvbmRpdGlvbnMgZCdlbnRyw6llLjwvcD4NCiAgICA8L3NlY3Rpb24+DQoNCiAgICA8c2VjdGlvbiBpZD0ic3VtbWFyeSI+DQogICAgICA8aDIgY2xhc3M9InJlZGxpbmUiPlLDqXN1bcOpPC9oMj4NCiAgICAgIDxwPkxlIGZyYWlzYWdlIGjDqWxpY2/Dr2RhbCBlc3QgdW5lIG3DqXRob2RlIGQndXNpbmFnZSBkYW5zIGxhcXVlbGxlIGwnb3V0aWwgc3VpdCB1bmUgaW50ZXJwb2xhdGlvbiBjaXJjdWxhaXJlIHRvdXQgZW4gYXZhbsOnYW50IGRhbnMgbGEgZGlyZWN0aW9uIFouIElsIGVzdCB1dGlsZSBwb3VyIGxlcyBncmFuZHMgdHJvdXMgZGlmZmljaWxlcyDDoCB1c2luZXIgYXZlYyBkZXMgZm9yZXRzIGV0IHBvdXIgbCd1c2luYWdlIGQnZW50csOpZSBkZSBwb2NoZSwgbWFpcyB1biByw6lnbGFnZSBpbmNvcnJlY3QgZGVzIGNvbmRpdGlvbnMgcGV1dCBhdWdtZW50ZXIgY29uc2lkw6lyYWJsZW1lbnQgbGEgY2hhcmdlIGRlIGwnb3V0aWwuPC9wPg0KICAgICAgPG9sIGNsYXNzPSJzdGVwLWxpc3QiPg0KICAgICAgICA8bGk+RW4gZnJhaXNhZ2UgaMOpbGljb8OvZGFsLCB2w6lyaWZpZXogbGUgZGlhbcOodHJlIGR1IHRyb3UgRGgsIGxlIGRpYW3DqHRyZSBkdSBDdXR0ZXIgRGMgZXQgbGUgZGlhbcOodHJlIGRlIGxhIHRyYWplY3RvaXJlIGR1IGNlbnRyZSBkZSBsJ291dGlsLjwvbGk+DQogICAgICAgIDxsaT5DYWxjdWxleiBsZSBwYXMgaMOpbGljb8OvZGFsIGV0IGwnYW5nbGUgZGUgcGxvbmfDqWUgZW4gZm9uY3Rpb24gZGUgbGEgZGlzdGFuY2UgZGUgZMOpcGxhY2VtZW50IGR1IGNlbnRyZSBkZSBsJ291dGlsLjwvbGk+DQogICAgICAgIDxsaT5Qb3VyIGxhIHPDqWxlY3Rpb24gZCdvdXRpbHMsIHbDqXJpZmlleiB0b3Vqb3VycyBsZSBkaWFtw6h0cmUgZGUgdHJvdSBow6lsaWNvw69kYWwgbWluL21heCwgbCdBUE1YIGV0IGwnYW5nbGUgZGUgcGxvbmfDqWUgbWF4aW1hbC48L2xpPg0KICAgICAgICA8bGk+UXVlIHZvdXMgY29tbWVuY2lleiBwYXIgbGUgcGFzIG91IGwnYW5nbGUsIGNvbmZpcm1leiBxdWUgbGEgY29uZGl0aW9uIGZpbmFsZSBlc3QgY29uZm9ybWUgYXV4IHNww6ljaWZpY2F0aW9ucyBkZSBsJ291dGlsLjwvbGk+DQogICAgICAgIDxsaT5QYXJjZSBxdWUgbGUgZMOpcGxhY2VtZW50IGR1IGNlbnRyZSBkZSBsJ291dGlsIGV0IGxlIGTDqXBsYWNlbWVudCBkZSBsJ2Fyw6p0ZSBkZSBjb3VwZSBzb250IGRpZmbDqXJlbnRzLCBmYWl0ZXMgYXR0ZW50aW9uIMOgIGxhIGNvcnJlY3Rpb24gZCdhdmFuY2UuPC9saT4NCiAgICAgICAgPGxpPlNpIGxlIGNhbGN1bCBtYW51ZWwgZXN0IGZhc3RpZGlldXgsIHV0aWxpc2V6IGxlIGNhbGN1bGF0ZXVyIHBvdXIgdsOpcmlmaWVyIGxlcyBjb25kaXRpb25zLjwvbGk+DQogICAgICAgIDxsaT5VdGlsaXNleiBsZSBzw6lsZWN0ZXVyIGQnb3V0aWxzIHPDqXBhcsOpIHBvdXIgdsOpcmlmaWVyIGxlcyBvdXRpbHMgY2FuZGlkYXRzLjwvbGk+DQogICAgICA8L29sPg0KICAgICAgPHA+RW4gZnJhaXNhZ2UgaMOpbGljb8OvZGFsLCBsZXMgY2FsY3VscyBldCBsYSBzw6lsZWN0aW9uIGQnb3V0aWxzIG5lIGRvaXZlbnQgcGFzIMOqdHJlIGNvbnNpZMOpcsOpcyBzw6lwYXLDqW1lbnQuIElsIGVzdCBpbXBvcnRhbnQgZGUgdsOpcmlmaWVyIGxlIGRpYW3DqHRyZSBkdSB0cm91LCBsZSBkaWFtw6h0cmUgZHUgQ3V0dGVyLCBsZSBwYXMsIGwnYW5nbGUgZGUgcGxvbmfDqWUsIGxhIGNvcnJlY3Rpb24gZCdhdmFuY2UgZXQgbGVzIHNww6ljaWZpY2F0aW9ucyBkZSBsJ291dGlsIGNvbW1lIHVuIGZsdXggZGUgdHJhdmFpbCBjb250aW51LjwvcD4NCiAgICAgIDxkaXYgY2xhc3M9InAtY29udGVudHMtYnRuLWFyZWEiPg0KICAgICAgICA8YSBjbGFzcz0icC1idG4iIGhyZWY9IiNjYWxjdWxhdG9yIj5DYWxjdWxlciBsJ2FuZ2xlIGRlIHBsb25nw6llIGV0IGxlIHBhczwvYT4NCiAgICAgIDwvZGl2Pg0KICAgIDwvc2VjdGlvbj4NCiAgPC9tYWluPg0KDQo8c2NyaXB0IGlkPSJoZWxpY2FsLWNhbGN1bGF0b3Itd3AtaW5saW5lLWpzIj4NCihmdW5jdGlvbiAoKSB7DQogICJ1c2Ugc3RyaWN0IjsNCg0KICBjb25zdCBFWEFNUExFID0gew0KICAgIGhvbGVEaWFtZXRlcjogNTAsDQogICAgY3V0dGVyRGlhbWV0ZXI6IDEwLA0KICAgIHBpdGNoOiA1LA0KICAgIHJhbXBBbmdsZTogMi4zLA0KICAgIGRlcHRoOiAyMCwNCiAgICBhcG14OiA2LA0KICAgIG1heFJhbXBBbmdsZTogMywNCiAgICBjdXR0aW5nU3BlZWQ6IDE1MCwNCiAgICB0ZWV0aDogNCwNCiAgICBmZWVkUGVyVG9vdGg6IDAuMQ0KICB9Ow0KDQogIGNvbnN0IERJU1BMQVlfRElHSVRTID0gMTsNCg0KICBjb25zdCBpZHMgPSB7DQogICAgZm9ybTogImNhbGN1bGF0b3ItZm9ybSIsDQogICAgbG9hZEV4YW1wbGU6ICJsb2FkLWV4YW1wbGUiLA0KICAgIHBpdGNoRmllbGQ6ICJwaXRjaC1maWVsZCIsDQogICAgYW5nbGVGaWVsZDogImFuZ2xlLWZpZWxkIiwNCiAgICBob2xlRGlhbWV0ZXI6ICJob2xlLWRpYW1ldGVyIiwNCiAgICBjdXR0ZXJEaWFtZXRlcjogImN1dHRlci1kaWFtZXRlciIsDQogICAgcGl0Y2g6ICJwaXRjaCIsDQogICAgcmFtcEFuZ2xlOiAicmFtcC1hbmdsZSIsDQogICAgZGVwdGg6ICJkZXB0aCIsDQogICAgYXBteDogImFwbXgiLA0KICAgIG1heFJhbXBBbmdsZTogIm1heC1yYW1wLWFuZ2xlIiwNCiAgICBjdXR0aW5nU3BlZWQ6ICJjdXR0aW5nLXNwZWVkIiwNCiAgICB0ZWV0aDogInRlZXRoIiwNCiAgICBmZWVkUGVyVG9vdGg6ICJmZWVkLXBlci10b290aCIsDQogICAgcmVzdWx0U3RhdGU6ICJyZXN1bHQtc3RhdGUiLA0KICAgIHN1bW1hcnlBbmdsZUNhcmQ6ICJzdW1tYXJ5LWFuZ2xlLWNhcmQiLA0KICAgIHN1bW1hcnlQaXRjaENhcmQ6ICJzdW1tYXJ5LXBpdGNoLWNhcmQiLA0KICAgIHN1bW1hcnlBbmdsZTogInN1bW1hcnktYW5nbGUiLA0KICAgIHN1bW1hcnlQaXRjaDogInN1bW1hcnktcGl0Y2giLA0KICAgIGNlbnRlclBhdGg6ICJjZW50ZXItcGF0aCIsDQogICAgcGF0aExlbmd0aDogInBhdGgtbGVuZ3RoIiwNCiAgICByZXN1bHRQaXRjaENhcmQ6ICJyZXN1bHQtcGl0Y2gtY2FyZCIsDQogICAgcmVzdWx0QW5nbGVDYXJkOiAicmVzdWx0LWFuZ2xlLWNhcmQiLA0KICAgIHJlc3VsdFBpdGNoOiAicmVzdWx0LXBpdGNoIiwNCiAgICByZXN1bHRBbmdsZTogInJlc3VsdC1hbmdsZSIsDQogICAgcnBtOiAicnBtIiwNCiAgICBlZGdlRmVlZDogImVkZ2UtZmVlZCIsDQogICAgZmVlZEZhY3RvcjogImZlZWQtZmFjdG9yIiwNCiAgICBjZW50ZXJGZWVkOiAiY2VudGVyLWZlZWQiLA0KICAgIHR1cm5zUmF3OiAidHVybnMtcmF3IiwNCiAgICB0dXJuc1Byb2dyYW06ICJ0dXJucy1wcm9ncmFtIiwNCiAgICBmaXRQaXRjaDogImZpdC1waXRjaCIsDQogICAgZml0QW5nbGU6ICJmaXQtYW5nbGUiLA0KICAgIGhlbGljYWxMZW5ndGg6ICJoZWxpY2FsLWxlbmd0aCIsDQogICAgdG90YWxMZW5ndGg6ICJ0b3RhbC1sZW5ndGgiLA0KICAgIGVzdGltYXRlZFRpbWU6ICJlc3RpbWF0ZWQtdGltZSIsDQogICAgY2hlY2tMaXN0OiAiY2hlY2stbGlzdCINCiAgfTsNCg0KICBjb25zdCBlbCA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhpZHMpLm1hcCgoW2tleSwgaWRdKSA9PiBba2V5LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCldKSk7DQogIGlmICghZWwuZm9ybSB8fCAhZWwubG9hZEV4YW1wbGUgfHwgIWVsLmNoZWNrTGlzdCkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGZ1bmN0aW9uIG1hcmtNaXNzaW5nSW1hZ2VzKCkgew0KICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYWxjdWxhdG9yLWVtYmVkIGltZyIpLmZvckVhY2goKGltYWdlKSA9PiB7DQogICAgICBjb25zdCBtYXJrTWlzc2luZyA9ICgpID0+IHsNCiAgICAgICAgaWYgKGltYWdlLmNsYXNzTGlzdC5jb250YWlucygibW9kZS1pY29uIikpIHsNCiAgICAgICAgICBpbWFnZS5jbG9zZXN0KCIuc2VnbWVudGVkIHNwYW4iKT8uY2xhc3NMaXN0LmFkZCgiaGFzLW1pc3NpbmctaWNvbiIpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGltYWdlLmNsb3Nlc3QoImZpZ3VyZSIpPy5jbGFzc0xpc3QuYWRkKCJpcy1pbWFnZS1taXNzaW5nIik7DQogICAgICAgIH0NCiAgICAgIH07DQoNCiAgICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgbWFya01pc3NpbmcpOw0KICAgICAgaWYgKGltYWdlLmNvbXBsZXRlICYmIGltYWdlLm5hdHVyYWxXaWR0aCA9PT0gMCkgew0KICAgICAgICBtYXJrTWlzc2luZygpOw0KICAgICAgfQ0KICAgIH0pOw0KICB9DQoNCiAgZnVuY3Rpb24gbnVtYmVyVmFsdWUoZWxlbWVudCkgew0KICAgIGlmICghZWxlbWVudCB8fCBlbGVtZW50LnZhbHVlLnRyaW0oKSA9PT0gIiIpIHsNCiAgICAgIHJldHVybiBudWxsOw0KICAgIH0NCiAgICBjb25zdCB2YWx1ZSA9IE51bWJlcihlbGVtZW50LnZhbHVlKTsNCiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogbnVsbDsNCiAgfQ0KDQogIGZ1bmN0aW9uIGdldE1vZGUoKSB7DQogICAgY29uc3Qgc2VsZWN0ZWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dFtuYW1lPSdtb2RlJ106Y2hlY2tlZCIpOw0KICAgIHJldHVybiBzZWxlY3RlZCA/IHNlbGVjdGVkLnZhbHVlIDogInBpdGNoIjsNCiAgfQ0KDQogIGZ1bmN0aW9uIGZvcm1hdE51bWJlcih2YWx1ZSwgZGlnaXRzID0gRElTUExBWV9ESUdJVFMpIHsNCiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpIHsNCiAgICAgIHJldHVybiAiLS0iOw0KICAgIH0NCiAgICBjb25zdCBmcmFjdGlvbkRpZ2l0cyA9IE1hdGgubWF4KDAsIGRpZ2l0cyk7DQogICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIsIHsNCiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogZnJhY3Rpb25EaWdpdHMsDQogICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IGZyYWN0aW9uRGlnaXRzDQogICAgfSk7DQogIH0NCg0KICBmdW5jdGlvbiB3aXRoVW5pdCh2YWx1ZSwgdW5pdCwgZGlnaXRzKSB7DQogICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSB7DQogICAgICByZXR1cm4gIi0tIjsNCiAgICB9DQogICAgcmV0dXJuIGAke2Zvcm1hdE51bWJlcih2YWx1ZSwgZGlnaXRzKX0gJHt1bml0fWA7DQogIH0NCg0KICBmdW5jdGlvbiBmb3JtYXRJbnB1dFZhbHVlKHZhbHVlLCBkaWdpdHMgPSBESVNQTEFZX0RJR0lUUykgew0KICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSkgew0KICAgICAgcmV0dXJuICIiOw0KICAgIH0NCiAgICByZXR1cm4gdmFsdWUudG9GaXhlZChNYXRoLm1heCgwLCBkaWdpdHMpKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIHNldFRleHQodGFyZ2V0LCB2YWx1ZSkgew0KICAgIHRhcmdldC50ZXh0Q29udGVudCA9IHZhbHVlOw0KICB9DQoNCiAgZnVuY3Rpb24gYWRkQ2hlY2soY2hlY2tzLCBsZXZlbCwgbWVzc2FnZSkgew0KICAgIGNoZWNrcy5wdXNoKHsgbGV2ZWwsIG1lc3NhZ2UgfSk7DQogIH0NCg0KICBmdW5jdGlvbiByZWFkSW5wdXRzKCkgew0KICAgIHJldHVybiB7DQogICAgICBtb2RlOiBnZXRNb2RlKCksDQogICAgICBob2xlRGlhbWV0ZXI6IG51bWJlclZhbHVlKGVsLmhvbGVEaWFtZXRlciksDQogICAgICBjdXR0ZXJEaWFtZXRlcjogbnVtYmVyVmFsdWUoZWwuY3V0dGVyRGlhbWV0ZXIpLA0KICAgICAgcGl0Y2g6IG51bWJlclZhbHVlKGVsLnBpdGNoKSwNCiAgICAgIHJhbXBBbmdsZTogbnVtYmVyVmFsdWUoZWwucmFtcEFuZ2xlKSwNCiAgICAgIGRlcHRoOiBudW1iZXJWYWx1ZShlbC5kZXB0aCksDQogICAgICBhcG14OiBudW1iZXJWYWx1ZShlbC5hcG14KSwNCiAgICAgIG1heFJhbXBBbmdsZTogbnVtYmVyVmFsdWUoZWwubWF4UmFtcEFuZ2xlKSwNCiAgICAgIGN1dHRpbmdTcGVlZDogbnVtYmVyVmFsdWUoZWwuY3V0dGluZ1NwZWVkKSwNCiAgICAgIHRlZXRoOiBudW1iZXJWYWx1ZShlbC50ZWV0aCksDQogICAgICBmZWVkUGVyVG9vdGg6IG51bWJlclZhbHVlKGVsLmZlZWRQZXJUb290aCkNCiAgICB9Ow0KICB9DQoNCiAgZnVuY3Rpb24gY2FsY3VsYXRlKGlucHV0KSB7DQogICAgY29uc3QgY2hlY2tzID0gW107DQogICAgY29uc3QgZXJyb3JzID0gW107DQoNCiAgICBpZiAoIShpbnB1dC5ob2xlRGlhbWV0ZXIgPiAwKSkgew0KICAgICAgZXJyb3JzLnB1c2goIkVudGVyIGEgaG9sZSBkaWFtZXRlciBncmVhdGVyIHRoYW4gMC4iKTsNCiAgICB9DQogICAgaWYgKCEoaW5wdXQuY3V0dGVyRGlhbWV0ZXIgPiAwKSkgew0KICAgICAgZXJyb3JzLnB1c2goIkVudGVyIGEgY3V0dGVyIGRpYW1ldGVyIGdyZWF0ZXIgdGhhbiAwLiIpOw0KICAgIH0NCiAgICBpZiAoZXJyb3JzLmxlbmd0aCkgew0KICAgICAgcmV0dXJuIHsgaW5wdXQsIGNoZWNrczogZXJyb3JzLm1hcCgobWVzc2FnZSkgPT4gKHsgbGV2ZWw6ICJlcnJvciIsIG1lc3NhZ2UgfSkpLCBoYXNFcnJvcjogdHJ1ZSB9Ow0KICAgIH0NCg0KICAgIGNvbnN0IGNlbnRlclBhdGhEaWFtZXRlciA9IGlucHV0LmhvbGVEaWFtZXRlciAtIGlucHV0LmN1dHRlckRpYW1ldGVyOw0KICAgIGlmIChjZW50ZXJQYXRoRGlhbWV0ZXIgPD0gMCkgew0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgaW5wdXQsDQogICAgICAgIGNlbnRlclBhdGhEaWFtZXRlciwNCiAgICAgICAgY2hlY2tzOiBbeyBsZXZlbDogJnF1b3Q7ZXJyb3ImcXVvdDssIG1lc3NhZ2U6ICZxdW90O0ZvciBpbnRlcm5hbCBoZWxpY2FsIG1pbGxpbmcsIHRoZSBjdXR0ZXIgZGlhbWV0ZXIgaXMgZXF1YWwgdG8gb3IgbGFyZ2VyIHRoYW4gdGhlIGhvbGUgZGlhbWV0ZXIsIHNvIGEgdG9vbC1jZW50ZXIgcGF0aCBjYW5ub3QgYmUgY3JlYXRlZC4mcXVvdDsgfV0sDQogICAgICAgIGhhc0Vycm9yOiB0cnVlDQogICAgICB9Ow0KICAgIH0NCg0KICAgIGNvbnN0IGNlbnRlclBhdGhMZW5ndGggPSBjZW50ZXJQYXRoRGlhbWV0ZXIgKiBNYXRoLlBJOw0KICAgIGNvbnN0IGZlZWRDb3JyZWN0aW9uRmFjdG9yID0gY2VudGVyUGF0aERpYW1ldGVyIC8gaW5wdXQuaG9sZURpYW1ldGVyOw0KICAgIGxldCBwaXRjaCA9IGlucHV0LnBpdGNoOw0KICAgIGxldCBhbmdsZSA9IGlucHV0LnJhbXBBbmdsZTsNCg0KICAgIGlmIChpbnB1dC5tb2RlID09PSAicGl0Y2giKSB7DQogICAgICBpZiAoIShwaXRjaCA+IDApKSB7DQogICAgICAgIGFkZENoZWNrKGNoZWNrcywgImVycm9yIiwgIkVudGVyIGEgaGVsaWNhbCBwaXRjaCBncmVhdGVyIHRoYW4gMC4iKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGFuZ2xlID0gTWF0aC5hdGFuKHBpdGNoIC8gY2VudGVyUGF0aExlbmd0aCkgKiAxODAgLyBNYXRoLlBJOw0KICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICBpZiAoIShhbmdsZSA+IDApKSB7DQogICAgICAgIGFkZENoZWNrKGNoZWNrcywgImVycm9yIiwgIkVudGVyIGEgcmFtcGluZyBhbmdsZSBncmVhdGVyIHRoYW4gMC4iKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHBpdGNoID0gY2VudGVyUGF0aExlbmd0aCAqIE1hdGgudGFuKGFuZ2xlICogTWF0aC5QSSAvIDE4MCk7DQogICAgICB9DQogICAgfQ0KDQogICAgaWYgKCEocGl0Y2ggPiAwKSB8fCAhKGFuZ2xlID4gMCkpIHsNCiAgICAgIHJldHVybiB7DQogICAgICAgIGlucHV0LA0KICAgICAgICBjZW50ZXJQYXRoRGlhbWV0ZXIsDQogICAgICAgIGNlbnRlclBhdGhMZW5ndGgsDQogICAgICAgIGNoZWNrcywNCiAgICAgICAgaGFzRXJyb3I6IGNoZWNrcy5zb21lKChjaGVjaykgPT4gY2hlY2subGV2ZWwgPT09ICJlcnJvciIpDQogICAgICB9Ow0KICAgIH0NCg0KICAgIGlmIChpbnB1dC5hcG14ID09IG51bGwpIHsNCiAgICAgIGFkZENoZWNrKGNoZWNrcywgImNhdXRpb24iLCAiQVBNWCBpcyBub3QgZW50ZXJlZCwgc28gdGhlIHBpdGNoIGNhbm5vdCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIHRvb2wgbGltaXQuIik7DQogICAgfSBlbHNlIGlmIChwaXRjaCA+IGlucHV0LmFwbXgpIHsNCiAgICAgIGFkZENoZWNrKGNoZWNrcywgImVycm9yIiwgYEhlbGljYWwgcGl0Y2ggJHtmb3JtYXROdW1iZXIocGl0Y2gpfSBtbSBleGNlZWRzIEFQTVggJHtmb3JtYXROdW1iZXIoaW5wdXQuYXBteCl9IG1tLmApOw0KICAgIH0gZWxzZSBpZiAocGl0Y2ggPiBpbnB1dC5hcG14ICogMC45KSB7DQogICAgICBhZGRDaGVjayhjaGVja3MsICJ3YXJuaW5nIiwgIkhlbGljYWwgcGl0Y2ggaXMgOTAlIG9yIG1vcmUgb2YgQVBNWC4gQ29uZmlybSB0b29sIHNwZWNpZmljYXRpb25zIGFuZCBtYWNoaW5pbmcgc3RhYmlsaXR5LiIpOw0KICAgIH0gZWxzZSB7DQogICAgICBhZGRDaGVjayhjaGVja3MsICJvayIsICJIZWxpY2FsIHBpdGNoIGlzIHdpdGhpbiBBUE1YLiIpOw0KICAgIH0NCg0KICAgIGlmIChpbnB1dC5tYXhSYW1wQW5nbGUgPT0gbnVsbCkgew0KICAgICAgYWRkQ2hlY2soY2hlY2tzLCAiY2F1dGlvbiIsICJNYXhpbXVtIHJhbXBpbmcgYW5nbGUgaXMgbm90IGVudGVyZWQsIHNvIHRoZSBhbmdsZSBjYW5ub3QgYmUgY2hlY2tlZCBhZ2FpbnN0IHRoZSB0b29sIGxpbWl0LiIpOw0KICAgIH0gZWxzZSBpZiAoYW5nbGUgPiBpbnB1dC5tYXhSYW1wQW5nbGUpIHsNCiAgICAgIGFkZENoZWNrKGNoZWNrcywgImVycm9yIiwgYFJhbXBpbmcgYW5nbGUgJHtmb3JtYXROdW1iZXIoYW5nbGUpfSBkZWcgZXhjZWVkcyB0aGUgbWF4aW11bSByYW1waW5nIGFuZ2xlICR7Zm9ybWF0TnVtYmVyKGlucHV0Lm1heFJhbXBBbmdsZSl9IGRlZy5gKTsNCiAgICB9IGVsc2UgaWYgKGFuZ2xlID4gaW5wdXQubWF4UmFtcEFuZ2xlICogMC45KSB7DQogICAgICBhZGRDaGVjayhjaGVja3MsICJ3YXJuaW5nIiwgIlJhbXBpbmcgYW5nbGUgaXMgOTAlIG9yIG1vcmUgb2YgdGhlIG1heGltdW0gcmFtcGluZyBhbmdsZS4gU3RhcnQgZnJvbSBhIHNhZmVyIGNvbmRpdGlvbi4iKTsNCiAgICB9IGVsc2Ugew0KICAgICAgYWRkQ2hlY2soY2hlY2tzLCAib2siLCAiUmFtcGluZyBhbmdsZSBpcyB3aXRoaW4gdGhlIG1heGltdW0gcmFtcGluZyBhbmdsZS4iKTsNCiAgICB9DQoNCiAgICBpZiAoZmVlZENvcnJlY3Rpb25GYWN0b3IgPCAwLjI1KSB7DQogICAgICBhZGRDaGVjayhjaGVja3MsICJ3YXJuaW5nIiwgIlRoZSB0b29sLWNlbnRlciBwYXRoIGRpYW1ldGVyIGlzIHNtYWxsLCBzbyByYW1waW5nIGFuZ2xlIGFuZCBmZWVkIGNvcnJlY3Rpb24gaGF2ZSBhIGxhcmdlIGluZmx1ZW5jZS4iKTsNCiAgICB9DQoNCiAgICBjb25zdCBycG0gPSBpbnB1dC5jdXR0aW5nU3BlZWQgPiAwID8gKDEwMDAgKiBpbnB1dC5jdXR0aW5nU3BlZWQpIC8gKE1hdGguUEkgKiBpbnB1dC5jdXR0ZXJEaWFtZXRlcikgOiBudWxsOw0KICAgIGNvbnN0IGVkZ2VGZWVkID0gcnBtICYmIGlucHV0LnRlZXRoID4gMCAmJiBpbnB1dC5mZWVkUGVyVG9vdGggPiAwID8gcnBtICogaW5wdXQudGVldGggKiBpbnB1dC5mZWVkUGVyVG9vdGggOiBudWxsOw0KICAgIGNvbnN0IGNlbnRlckZlZWQgPSBlZGdlRmVlZCA/IGVkZ2VGZWVkICogZmVlZENvcnJlY3Rpb25GYWN0b3IgOiBudWxsOw0KDQogICAgaWYgKHJwbSA9PSBudWxsIHx8IGVkZ2VGZWVkID09IG51bGwpIHsNCiAgICAgIGFkZENoZWNrKGNoZWNrcywgImNhdXRpb24iLCAiVmMsIGVmZmVjdGl2ZSB0ZWV0aCwgb3IgZmVlZCBwZXIgdG9vdGggaXMgbWlzc2luZywgc28gc3BpbmRsZSBzcGVlZCBvciBmZWVkIHJhdGUgY2Fubm90IGJlIGNhbGN1bGF0ZWQuIik7DQogICAgfQ0KICAgIGFkZENoZWNrKGNoZWNrcywgIm9rIiwgIlRvb2wtY2VudGVyIGNvbW1hbmQgZmVlZCBjYW4gYmUgdXNlZCBhcyBhIGd1aWRlIGZvciB0aGUgTkMgY29tbWFuZCB2YWx1ZS4iKTsNCg0KICAgIGxldCBkZXB0aFBsYW4gPSBudWxsOw0KICAgIGxldCBkaXN0YW5jZVBsYW4gPSBudWxsOw0KICAgIGlmIChpbnB1dC5kZXB0aCA+IDApIHsNCiAgICAgIGNvbnN0IHR1cm5zUmF3ID0gaW5wdXQuZGVwdGggLyBwaXRjaDsNCiAgICAgIGNvbnN0IHR1cm5zUHJvZ3JhbSA9IE1hdGgubWF4KDEsIE1hdGguY2VpbCh0dXJuc1JhdykpOw0KICAgICAgY29uc3QgZml0UGl0Y2ggPSBpbnB1dC5kZXB0aCAvIHR1cm5zUHJvZ3JhbTsNCiAgICAgIGNvbnN0IGZpdEFuZ2xlID0gTWF0aC5hdGFuKGZpdFBpdGNoIC8gY2VudGVyUGF0aExlbmd0aCkgKiAxODAgLyBNYXRoLlBJOw0KICAgICAgZGVwdGhQbGFuID0geyB0dXJuc1JhdywgdHVybnNQcm9ncmFtLCBmaXRQaXRjaCwgZml0QW5nbGUgfTsNCg0KICAgICAgY29uc3QgaGVsaWNhbExlbmd0aFBlclR1cm4gPSBNYXRoLnNxcnQoY2VudGVyUGF0aExlbmd0aCAqKiAyICsgcGl0Y2ggKiogMik7DQogICAgICBjb25zdCB0b3RhbEhlbGljYWxMZW5ndGggPSBoZWxpY2FsTGVuZ3RoUGVyVHVybiAqIHR1cm5zUmF3Ow0KICAgICAgY29uc3QgZXN0aW1hdGVkVGltZSA9IGNlbnRlckZlZWQgPyB0b3RhbEhlbGljYWxMZW5ndGggLyBjZW50ZXJGZWVkIDogbnVsbDsNCiAgICAgIGRpc3RhbmNlUGxhbiA9IHsgaGVsaWNhbExlbmd0aFBlclR1cm4sIHRvdGFsSGVsaWNhbExlbmd0aCwgZXN0aW1hdGVkVGltZSB9Ow0KDQogICAgICBpZiAodHVybnNSYXcgPCAxKSB7DQogICAgICAgIGFkZENoZWNrKGNoZWNrcywgImNhdXRpb24iLCAiTWFjaGluaW5nIGRlcHRoIGlzIGxlc3MgdGhhbiBvbmUgcGl0Y2guIENvbmZpcm0gZmluYWwtcGFzcyBoYW5kbGluZyBhbmQgcHJvZ3JhbW1pbmcgbWV0aG9kLiIpOw0KICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICBhZGRDaGVjayhjaGVja3MsICJjYXV0aW9uIiwgIk1hY2hpbmluZyBkZXB0aCBpcyBub3QgZW50ZXJlZCwgc28gcmVxdWlyZWQgcmV2b2x1dGlvbnMgY2Fubm90IGJlIGNhbGN1bGF0ZWQuIik7DQogICAgfQ0KDQogICAgcmV0dXJuIHsNCiAgICAgIGlucHV0LA0KICAgICAgY2VudGVyUGF0aERpYW1ldGVyLA0KICAgICAgY2VudGVyUGF0aExlbmd0aCwNCiAgICAgIHBpdGNoLA0KICAgICAgYW5nbGUsDQogICAgICBmZWVkQ29ycmVjdGlvbkZhY3RvciwNCiAgICAgIHJwbSwNCiAgICAgIGVkZ2VGZWVkLA0KICAgICAgY2VudGVyRmVlZCwNCiAgICAgIGRlcHRoUGxhbiwNCiAgICAgIGRpc3RhbmNlUGxhbiwNCiAgICAgIGNoZWNrcywNCiAgICAgIGhhc0Vycm9yOiBjaGVja3Muc29tZSgoY2hlY2spID0+IGNoZWNrLmxldmVsID09PSAiZXJyb3IiKSwNCiAgICAgIGhhc1dhcm5pbmc6IGNoZWNrcy5zb21lKChjaGVjaykgPT4gY2hlY2subGV2ZWwgPT09ICJ3YXJuaW5nIiB8fCBjaGVjay5sZXZlbCA9PT0gImNhdXRpb24iKQ0KICAgIH07DQogIH0NCg0KICBmdW5jdGlvbiByZW5kZXJDaGVja3MocmVzdWx0KSB7DQogICAgZWwuY2hlY2tMaXN0LmlubmVySFRNTCA9ICIiOw0KICAgIHJlc3VsdC5jaGVja3MuZm9yRWFjaCgoY2hlY2spID0+IHsNCiAgICAgIGNvbnN0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOw0KICAgICAgaXRlbS5jbGFzc05hbWUgPSBjaGVjay5sZXZlbDsNCiAgICAgIGl0ZW0udGV4dENvbnRlbnQgPSBjaGVjay5tZXNzYWdlOw0KICAgICAgZWwuY2hlY2tMaXN0LmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgIH0pOw0KICB9DQoNCiAgZnVuY3Rpb24gcmVuZGVyKHJlc3VsdCkgew0KICAgIGNvbnN0IG1vZGUgPSByZXN1bHQuaW5wdXQgPyByZXN1bHQuaW5wdXQubW9kZSA6IGdldE1vZGUoKTsNCiAgICBjb25zdCBzaG93QW5nbGVSZXN1bHQgPSBtb2RlID09PSAicGl0Y2giOw0KICAgIGNvbnN0IHNob3dQaXRjaFJlc3VsdCA9ICFzaG93QW5nbGVSZXN1bHQ7DQoNCiAgICBjb25zdCBzdGF0ZSA9IHJlc3VsdC5oYXNFcnJvciA/ICJlcnJvciIgOiByZXN1bHQuaGFzV2FybmluZyA/ICJ3YXJuaW5nIiA6ICJvayI7DQogICAgZWwucmVzdWx0U3RhdGUuY2xhc3NOYW1lID0gYHN0YXRlLWJhZGdlICR7c3RhdGV9YDsNCiAgICBlbC5yZXN1bHRTdGF0ZS50ZXh0Q29udGVudCA9IHJlc3VsdC5oYXNFcnJvciA/ICJOZWVkcyBjb3JyZWN0aW9uIiA6IHJlc3VsdC5oYXNXYXJuaW5nID8gIkNoZWNrIiA6ICJPSyI7DQoNCiAgICBlbC5zdW1tYXJ5QW5nbGVDYXJkLmhpZGRlbiA9ICFzaG93QW5nbGVSZXN1bHQ7DQogICAgZWwuc3VtbWFyeVBpdGNoQ2FyZC5oaWRkZW4gPSAhc2hvd1BpdGNoUmVzdWx0Ow0KICAgIGVsLnN1bW1hcnlBbmdsZUNhcmQuY2xhc3NMaXN0LnRvZ2dsZSgibWFpbi1yZXN1bHQtc3VtbWFyeSIsIHNob3dBbmdsZVJlc3VsdCk7DQogICAgZWwuc3VtbWFyeVBpdGNoQ2FyZC5jbGFzc0xpc3QudG9nZ2xlKCJtYWluLXJlc3VsdC1zdW1tYXJ5Iiwgc2hvd1BpdGNoUmVzdWx0KTsNCiAgICBlbC5yZXN1bHRBbmdsZUNhcmQuaGlkZGVuID0gIXNob3dBbmdsZVJlc3VsdDsNCiAgICBlbC5yZXN1bHRQaXRjaENhcmQuaGlkZGVuID0gIXNob3dQaXRjaFJlc3VsdDsNCiAgICBlbC5yZXN1bHRBbmdsZUNhcmQuY2xhc3NMaXN0LnRvZ2dsZSgibWFpbi1yZXN1bHQiLCBzaG93QW5nbGVSZXN1bHQpOw0KICAgIGVsLnJlc3VsdFBpdGNoQ2FyZC5jbGFzc0xpc3QudG9nZ2xlKCJtYWluLXJlc3VsdCIsIHNob3dQaXRjaFJlc3VsdCk7DQoNCiAgICBzZXRUZXh0KGVsLnN1bW1hcnlBbmdsZSwgcmVzdWx0LmFuZ2xlID8gYCR7Zm9ybWF0TnVtYmVyKHJlc3VsdC5hbmdsZSl9IGRlZ2AgOiAiLS0iKTsNCiAgICBzZXRUZXh0KGVsLnN1bW1hcnlQaXRjaCwgcmVzdWx0LnBpdGNoID8gYCR7Zm9ybWF0TnVtYmVyKHJlc3VsdC5waXRjaCl9IG1tYCA6ICItLSIpOw0KICAgIHNldFRleHQoZWwuY2VudGVyUGF0aCwgd2l0aFVuaXQocmVzdWx0LmNlbnRlclBhdGhEaWFtZXRlciwgIm1tIikpOw0KICAgIHNldFRleHQoZWwucGF0aExlbmd0aCwgd2l0aFVuaXQocmVzdWx0LmNlbnRlclBhdGhMZW5ndGgsICJtbS9yZXYiKSk7DQogICAgc2V0VGV4dChlbC5yZXN1bHRQaXRjaCwgd2l0aFVuaXQocmVzdWx0LnBpdGNoLCAibW0vcmV2IikpOw0KICAgIHNldFRleHQoZWwucmVzdWx0QW5nbGUsIHdpdGhVbml0KHJlc3VsdC5hbmdsZSwgImRlZyIpKTsNCiAgICBzZXRUZXh0KGVsLnJwbSwgd2l0aFVuaXQocmVzdWx0LnJwbSwgIm1pbi0xIikpOw0KICAgIHNldFRleHQoZWwuZWRnZUZlZWQsIHdpdGhVbml0KHJlc3VsdC5lZGdlRmVlZCwgIm1tL21pbiIpKTsNCiAgICBzZXRUZXh0KGVsLmZlZWRGYWN0b3IsIE51bWJlci5pc0Zpbml0ZShyZXN1bHQuZmVlZENvcnJlY3Rpb25GYWN0b3IpID8gZm9ybWF0TnVtYmVyKHJlc3VsdC5mZWVkQ29ycmVjdGlvbkZhY3RvcikgOiAiLS0iKTsNCiAgICBzZXRUZXh0KGVsLmNlbnRlckZlZWQsIHdpdGhVbml0KHJlc3VsdC5jZW50ZXJGZWVkLCAibW0vbWluIikpOw0KDQogICAgY29uc3QgZGVwdGhQbGFuID0gcmVzdWx0LmRlcHRoUGxhbiB8fCB7fTsNCiAgICBzZXRUZXh0KGVsLnR1cm5zUmF3LCBOdW1iZXIuaXNGaW5pdGUoZGVwdGhQbGFuLnR1cm5zUmF3KSA/IGAke2Zvcm1hdE51bWJlcihkZXB0aFBsYW4udHVybnNSYXcpfSByZXZgIDogIi0tIik7DQogICAgc2V0VGV4dChlbC50dXJuc1Byb2dyYW0sIE51bWJlci5pc0Zpbml0ZShkZXB0aFBsYW4udHVybnNQcm9ncmFtKSA/IGAke2Zvcm1hdE51bWJlcihkZXB0aFBsYW4udHVybnNQcm9ncmFtLCAwKX0gcmV2YCA6ICItLSIpOw0KICAgIHNldFRleHQoZWwuZml0UGl0Y2gsIHdpdGhVbml0KGRlcHRoUGxhbi5maXRQaXRjaCwgIm1tL3JldiIpKTsNCiAgICBzZXRUZXh0KGVsLmZpdEFuZ2xlLCB3aXRoVW5pdChkZXB0aFBsYW4uZml0QW5nbGUsICJkZWciKSk7DQoNCiAgICBjb25zdCBkaXN0YW5jZVBsYW4gPSByZXN1bHQuZGlzdGFuY2VQbGFuIHx8IHt9Ow0KICAgIHNldFRleHQoZWwuaGVsaWNhbExlbmd0aCwgd2l0aFVuaXQoZGlzdGFuY2VQbGFuLmhlbGljYWxMZW5ndGhQZXJUdXJuLCAibW0iKSk7DQogICAgc2V0VGV4dChlbC50b3RhbExlbmd0aCwgd2l0aFVuaXQoZGlzdGFuY2VQbGFuLnRvdGFsSGVsaWNhbExlbmd0aCwgIm1tIikpOw0KICAgIHNldFRleHQoZWwuZXN0aW1hdGVkVGltZSwgTnVtYmVyLmlzRmluaXRlKGRpc3RhbmNlUGxhbi5lc3RpbWF0ZWRUaW1lKSA/IGAke2Zvcm1hdE51bWJlcihkaXN0YW5jZVBsYW4uZXN0aW1hdGVkVGltZSAqIDYwKX0gc2VjYCA6ICItLSIpOw0KDQogICAgcmVuZGVyQ2hlY2tzKHJlc3VsdCk7DQogIH0NCg0KICBmdW5jdGlvbiB1cGRhdGVNb2RlRmllbGRzKCkgew0KICAgIGNvbnN0IG1vZGUgPSBnZXRNb2RlKCk7DQogICAgY29uc3QgaXNQaXRjaE1vZGUgPSBtb2RlID09PSAicGl0Y2giOw0KICAgIGVsLnBpdGNoRmllbGQuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtaGlkZGVuIiwgIWlzUGl0Y2hNb2RlKTsNCiAgICBlbC5hbmdsZUZpZWxkLmNsYXNzTGlzdC50b2dnbGUoImlzLWhpZGRlbiIsIGlzUGl0Y2hNb2RlKTsNCiAgICBlbC5waXRjaEZpZWxkLmhpZGRlbiA9ICFpc1BpdGNoTW9kZTsNCiAgICBlbC5hbmdsZUZpZWxkLmhpZGRlbiA9IGlzUGl0Y2hNb2RlOw0KICAgIGVsLnBpdGNoRmllbGQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsIFN0cmluZyghaXNQaXRjaE1vZGUpKTsNCiAgICBlbC5hbmdsZUZpZWxkLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCBTdHJpbmcoaXNQaXRjaE1vZGUpKTsNCiAgICBlbC5waXRjaC5kaXNhYmxlZCA9ICFpc1BpdGNoTW9kZTsNCiAgICBlbC5yYW1wQW5nbGUuZGlzYWJsZWQgPSBpc1BpdGNoTW9kZTsNCiAgfQ0KDQogIGZ1bmN0aW9uIGNhbGN1bGF0ZUFuZFJlbmRlcigpIHsNCiAgICB1cGRhdGVNb2RlRmllbGRzKCk7DQogICAgcmVuZGVyKGNhbGN1bGF0ZShyZWFkSW5wdXRzKCkpKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIGxvYWRFeGFtcGxlKCkgew0KICAgIGVsLmhvbGVEaWFtZXRlci52YWx1ZSA9IGZvcm1hdElucHV0VmFsdWUoRVhBTVBMRS5ob2xlRGlhbWV0ZXIpOw0KICAgIGVsLmN1dHRlckRpYW1ldGVyLnZhbHVlID0gZm9ybWF0SW5wdXRWYWx1ZShFWEFNUExFLmN1dHRlckRpYW1ldGVyKTsNCiAgICBlbC5waXRjaC52YWx1ZSA9IGZvcm1hdElucHV0VmFsdWUoRVhBTVBMRS5waXRjaCk7DQogICAgZWwucmFtcEFuZ2xlLnZhbHVlID0gZm9ybWF0SW5wdXRWYWx1ZShFWEFNUExFLnJhbXBBbmdsZSk7DQogICAgZWwuZGVwdGgudmFsdWUgPSBmb3JtYXRJbnB1dFZhbHVlKEVYQU1QTEUuZGVwdGgpOw0KICAgIGVsLmFwbXgudmFsdWUgPSBmb3JtYXRJbnB1dFZhbHVlKEVYQU1QTEUuYXBteCk7DQogICAgZWwubWF4UmFtcEFuZ2xlLnZhbHVlID0gZm9ybWF0SW5wdXRWYWx1ZShFWEFNUExFLm1heFJhbXBBbmdsZSk7DQogICAgZWwuY3V0dGluZ1NwZWVkLnZhbHVlID0gZm9ybWF0SW5wdXRWYWx1ZShFWEFNUExFLmN1dHRpbmdTcGVlZCk7DQogICAgZWwudGVldGgudmFsdWUgPSBmb3JtYXRJbnB1dFZhbHVlKEVYQU1QTEUudGVldGgsIDApOw0KICAgIGVsLmZlZWRQZXJUb290aC52YWx1ZSA9IGZvcm1hdElucHV0VmFsdWUoRVhBTVBMRS5mZWVkUGVyVG9vdGgpOw0KICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W25hbWU9J21vZGUnXVt2YWx1ZT0ncGl0Y2gnXSIpLmNoZWNrZWQgPSB0cnVlOw0KICAgIGNhbGN1bGF0ZUFuZFJlbmRlcigpOw0KICB9DQoNCiAgZWwuZm9ybS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIGNhbGN1bGF0ZUFuZFJlbmRlcik7DQogIGVsLmZvcm0uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgY2FsY3VsYXRlQW5kUmVuZGVyKTsNCiAgZWwubG9hZEV4YW1wbGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBsb2FkRXhhbXBsZSk7DQogIG1hcmtNaXNzaW5nSW1hZ2VzKCk7DQogIGNhbGN1bGF0ZUFuZFJlbmRlcigpOw0KfSkoKTsNCjwvc2NyaXB0Pg0K[/vc_raw_html][/vc_column][/vc_row]</description></oembed>
