Date: Thu, 26 Feb 2015 10:26:50 +0200 From: Ercan Deger <ercandeger76@gmail.com> To: Kevin Oberman <rkoberman@gmail.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: Cant Access Web site Message-ID: <CAKjZa6VyB5GEoaJcPDbTHEbZ9Q3HChOBgEO52akRuDO8or3o5w@mail.gmail.com> In-Reply-To: <CAN6yY1t4Xq7W8%2Bq5uRhKQKLq%2BV94Nyf42rmtE8%2Bu3xevQC9fTA@mail.gmail.com> References: <CAKjZa6Xg5805QdzJD23PBrKSQKNoiLa%2BphXwbd-fXvyMHc80rw@mail.gmail.com> <CAN6yY1t4Xq7W8%2Bq5uRhKQKLq%2BV94Nyf42rmtE8%2Bu3xevQC9fTA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--001a11c3a2c282d52c050ff983f0 Content-Type: text/plain; charset=UTF-8 I added captured packed, when I open this file via wireshark It shows lots of Fragmented IP Protocol (proto=TCP 6, off=0, id=cbxx) when I change the outside interface mtu to 1492 I can access via squid this site but still cant access without squid I think MTU specific problem but cant solve :( >> > The data you provided shows little. It would be nice to see both sides of > the session. > > I really suggest that you capture the whole session. Something like > "tcpdump -p -s0 -w some_file.bpf tcp port 81 and host 85.96.xx.xx" will > save the packet data to "some_file.bpf" and then you can use other tools to > analyze it. I use wireshark. It's free, in ports and works quite well. It > will flag packets which have issues and handle breaking down the prorocols. > Since port 81 is not the "normal" http port, you will need to tell > wireshark that. I have not had to do that in a while, but it was pretty > obvious. > > wireshark can also do the capture directly, but I'll admit that after > years of using tcpdump (two of the authors used to sit down the hall from > me), I have never tried to use wireshark for packet capture. > -- > Kevin Oberman, Network Engineer, Retired > E-mail: rkoberman@gmail.com > --001a11c3a2c282d52c050ff983f0 Content-Type: application/octet-stream; name="dumped.bpf" Content-Disposition: attachment; filename="dumped.bpf" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6lvi90d0 1MOyoQIABAAAAAAAAAAAAP//AAABAAAAZsXuVFeADQA8AAAAPAAAAAAEdsgDBwAaTU98EQgARQAA KGehQACABr2qwKgAylVgvrHIoQBRy4rhvnzAS2xQEUE1WrEAAAAAAAAAAGbF7lT+hQ0AQgAAAEIA AAAABHbIAwcAGk1PfBEIAEUAADRnokAAgAa9ncCoAMpVYL6xyLgAUYdTjN8AAAAAgAIgAJxVAAAC BAW0AQMDAgEBBAJmxe5UDrENADYAAAA2AAAAABpNT3wRAAR2yAMHCABFAAAoAABAADUGcExVYL6x wKgAygBRyKF8wEtsAAAAAFAEAABJPQAAZsXuVNq2DQBCAAAAQgAAAAAaTU98EQAEdsgDBwgARQAA NAAAQAA1BnBAVWC+scCoAMoAUci4e1aSoodTjOCAEjkIdUsAAAIEBawBAQQCAQMDAmbF7lQFuA0A PAAAADwAAAAABHbIAwcAGk1PfBEIAEUAAChno0AAgAa9qMCoAMpVYL6xyLgAUYdTjOB7VpKjUBBB Oq3eAAAAAAAAAABmxe5UV74NAOEBAADhAQAAAAR2yAMHABpNT3wRCABFAAHTZ6RAAIAGu/zAqADK VWC+sci4AFGHU4zge1aSo1AYQTrprwAAR0VUIC9sb2dpbi5yc3AgSFRUUC8xLjENCkhvc3Q6IDg1 Ljk2LjE5MC4xNzc6ODENCkNvbm5lY3Rpb246IGtlZXAtYWxpdmUNCkNhY2hlLUNvbnRyb2w6IG1h eC1hZ2U9MA0KQWNjZXB0OiB0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0 aW9uL3htbDtxPTAuOSxpbWFnZS93ZWJwLCovKjtxPTAuOA0KVXNlci1BZ2VudDogTW96aWxsYS81 LjAgKFdpbmRvd3MgTlQgNi4zOyBXT1c2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlr ZSBHZWNrbykgQ2hyb21lLzQwLjAuMjIxNC4xMTUgU2FmYXJpLzUzNy4zNg0KQWNjZXB0LUVuY29k aW5nOiBnemlwLCBkZWZsYXRlLCBzZGNoDQpBY2NlcHQtTGFuZ3VhZ2U6IHRyLVRSLHRyO3E9MC44 LGVuLVVTO3E9MC42LGVuO3E9MC40DQpDb29raWU6IGxhbmd1YWdlX2NoPWZhbHNlDQoNCmbF7lRb 8w0ANgAAADYAAAAAGk1PfBEABHbIAwcIAEUAACiNwkAANQbiiVVgvrHAqADKAFHIuHtWkqOHU46L UBAPTt4fAABnxe5UEpUIAEcAAABHAAAAABpNT3wRAAR2yAMHCABFAAA5jcNAADUG4ndVYL6xwKgA ygBRyLh7VpKjh1OOi1AYD04eQgAASFRUUC8xLjAgMjAwIE9LDQpnxe5U3QkJAOIFAADiBQAAABpN T3wRAAR2yAMHCABFAAXUjcQgADUG/NtVYL6xwKgAygBRyLh7VpK0h1OOi1AQD071ugAAQ29udGVu dC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgKU2VydmVyOiBHTlUgcnNwLzEuMApDb250 ZW50LUxhbmd1YWdlOiBlbgpFeHBpcmVzOiAtMQpQM1A6IENQPSdJREMgRFNQIENPUiBBRE0gREVW aSBUQUlpIFBTQSBQU0QgSVZBaSBJVkRpIENPTmkgSElTIE9VUiBJTkQgQ05UJwpDYWNoZS1Db250 cm9sOiBwcml2YXRlLCBtYXgtYWdlPTAKQ29ubmVjdGlvbjogY2xvc2UKRGF0ZTogVGh1LCAyNiBG ZWIgMjAxNSAwNzowMjozMCBHTVQKCu+7vzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9E VEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRt bDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3 LnczLm9yZy8xOTk5L3hodG1sIj4NCjxoZWFkPg0KICAgIDx0aXRsZT5EVlIgR8SwUsSwxZ48L3Rp dGxlPg0KICAgIDxsaW5rIGhyZWY9Ii4vSEFQUExFL3BhZ2VzL1N0eWxlcy9Mb2dpbk5ldy5jc3M/ djEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQogICAgPHNjcmlwdCBzcmM9 Ii4vSEFQUExFL2pzL2pxdWVyeS0xLjcuMS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+ PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL0hBUFBMRS9q cy9yc3BGcmFtZS5qcz92MTk1Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNyYz0iLi9IQVBQTEUv cGFnZXMvSlMvbG9naW4uanM/VjE2MSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4N CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQi Pg0KICAgICAgICBmdW5jdGlvbiBJRU9SRk9SRUZPWF9sb2coKSB7DQogICAgICAgICAgICB2YXIg aGVpZ2h0ID0gMDsNCiAgICAgICAgICAgIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpLy9EZXRl cm1pbmUgd2hldGhlciB0aGUgYnJvd3NlciBNb3ppbGxhLCBTb2ZhcmkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBoZWlnaHQgPSAoJCh3aW5kb3cpLmhlaWdodCgpIC0gMzk2KSAvIDI7 DQogICAgICAgICAgICAgICAgJCgiLmRpdkxvZ2luT25lIikuY3NzKCJtYXJnaW4tdG9wIiwgaGVp Z2h0ICsgInB4Iik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cu QWN0aXZlWE9iamVjdCkvLyBEZXRlcm1pbmUgd2hldGhlciBJRSBicm93c2VyDQogICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsNCiAg ICAgICAgICAgICAgICB2YXIgYl92ZXJzaW9uID0gbmF2aWdhdG9yLmFwcFZlcnNpb247DQogICAg ICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBiX3ZlcnNpb24uc3BsaXQoIjsiKTsNCiAgICAgICAg ICAgICAgICB2YXIgdHJpbV9WZXJzZ8XuVIFACQDiBQAA4gUAAAAaTU98EQAEdsgDBwgARQAF1I3F IAA1BvzaVWC+scCoAMoAUci4e1aYaIdTjotQEA9O5HoAAHJzaW9uWzFdLnJlcGxhY2UoL1sgXS9n LCAiIik7DQogICAgICAgICAgICAgICAgaGVpZ2h0ID0gKCQod2luZG93KS5oZWlnaHQoKSAtIDM5 NikgLyAyOw0KICAgICAgICAgICAgICAgIGlmIChicm93c2VyID09ICJNaWNyb3NvZnQgSW50ZXJu ZXQgRXhwbG9yZXIiICYmIHRyaW1fVmVyc2lvbiA9PSAiTVNJRTYuMCIpIHsNCiAgICAgICAgICAg ICAgICAgICAgalF1ZXJ5KCIuZGl2TG9naW5PbmUiKS5jc3MoIm1hcmdpbi10b3AiLCBoZWlnaHQg KyAicHgiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAg ICAgICAgICAgICAgICAgICQoIiNkaXZPbmUiKS5jc3MoIm1hcmdpbi10b3AiLCBoZWlnaHQgLSAx NSArICJweCIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0K ICAgICAgICB3aW5kb3cub25yZXNpemUgPSBmdW5jdGlvbigpIHtzZXRUaW1lb3V0KCJJRU9SRk9S RUZPWF9sb2coKSIsMTAwKTtwYWdlT25TaXplTW92ZU1lbnUoKTt9Ow0KDQogICAgICAgIGZ1bmN0 aW9uIHN1Ym1pdCgpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dp bmZvcm0iKS5zdWJtaXQoKTsgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgICQoZG9j dW1lbnQpLmtleWRvd24oZnVuY3Rpb24oZXZlbnQpIHsgICAvL0VudGVyIGV2ZW50DQogICAgICAg ICAgICB2YXIga2V5Y29kZSA9IGV2ZW50LndoaWNoOw0KICAgICAgICAgICAgaWYgKGtleWNvZGUg PT0gMTMpIHsNCgkJCQkNCgkJCQlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXNlcnB3ZDEi KSl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVzZXJwd2QxIikuaWQ9InVzZXJwd2QiO30NCgkJ CQlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXNlcnB3ZCIpLnZhbHVlPT0nUGFyb2xhJykN CgkJCQl7DQoJCQkJICAgICQoIi5kaXZfcmlnaHRfdHdvX2lucHV0X2JvcmRlciIpLmh0bWwoIjxp bnB1dCB0eXBlPSdwYXNzd29yZCcgbWF4bGVuZ3RoPScxNicgaWQ9J3VzZXJwd2QnIG5hbWU9J3Vz ZXJwd2QnIHZhbHVlPScnIC8+Iik7DQoJCQkJfQ0KCQkJCWlmKGRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJ1c2VybmFtZSIpLnZhbHVlPT0nS3VsbGFuxLFjxLEgQWTEsScpDQoJCQkJew0KCQkJCQlk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXNlcm5hbWUiKS52YWx1ZT0iIjsNCgkJCQl9DQoNCgkJ CQlpZihqUXVlcnkoIiN1c2VybmFtZSIpLnZhbCgpIT0iS3VsbGFuxLFjxLEgQWTEsSImJmpRdWVy eSgiI3VzZXJwd2QiKS52YWwoKSE9IlBhcm9sYSIpew0KICAgICAgICAgICAgICAgIAlkb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgibG9naW5mb3JtIikuc3VibWl0KCk7DQoJCQkJfQ0KICAgICAgICAg ICAgfQ0KICAgICAgICB9KTsNCgkJDQogICAgPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8IS0tW2lmIElF IDZdPmfF7lTNWwkAPAAAADwAAAAABHbIAwcAGk1PfBEIAEUAAChnpUAAgAa9psCoAMpVYL6xyLgA UYdTjot7VpK0UBBBNawnAAAAAAAAAABnxe5UJ3cJAOIFAADiBQAAABpNT3wRAAR2yAMHCABFAAXU jcYgADUG/NlVYL6xwKgAygBRyLh7Vp4ch1OOi1AQD054PAAAdCBsYW5ndWFnZT0iSmF2YVNjcmlw dCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vSEFQUExFL3BhZ2VzL0pTL19wbmcuanMi Pjwvc2NyaXB0Pg0KPHNjcmlwdD4NCkREX2JlbGF0ZWRQTkcuZml4KCdpbWcsLnBuZywubWVudSBs aScpOw0KPC9zY3JpcHQ+DQo8IVtlbmRpZl0tLT4NCjxib2R5IGlkPSJsb2dpbl9ib2R5IiBvbmxv YWQ9IklFT1JGT1JFRk9YX2xvZygpIj4NCg0KPGZvcm0gbmFtZT0ibG9naW5mb3JtIiBpZD0ibG9n aW5mb3JtIiBhY3Rpb249Ii4vbG9naW5jaGVjay5yc3A/dHlwZT0xIiBtZXRob2Q9InBvc3QiIG9u c3VibWl0PSJyZXR1cm4gUk0uTE9HSU4uY2hlY2tMb2dpbklucHV0KCkiPg0KICAgIDxkaXYgY2xh c3M9ImRpdkxvZ2luT25lIHBuZyIgaWQ9ImRpdk9uZSI+DQogICAgICAgIDxkaXYgY2xhc3M9ImRp dl9sZWZ0Qm90dG9tIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9J2xvZy1kdnItbG9nbyc+DQog ICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iIHBhZGRpbmctdG9wOjI2cHg7IHRleHQtYWxpZ246 Y2VudGVyOyB3aWR0aDoxMDAlIj4NCiAgICAgICAgICAgICAgICAgICAgPGltZyBpZD0ibG9naW5f bG9nb2ltZyIgc3JjPSIuL0hBUFBMRS9sb2dpbmxvZ28vSUVfMDQuNzk4X2xvZ2luLnBuZyIgY2xh c3M9InBuZyIgLz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0K ICAgICAgICAgICAgPGRpdiBjbGFzcz0nbG9nLWxhbmd1YWdlJz48bGFiZWwgaWQ9J2xvZ19sYW5n dWFnZV9ib3JkZXInIGNsYXNzPSdsb2ctbGFuZ3VhZ2Utb3V0JyAgb25tb3VzZW92ZXI9J21vdXNl T25MYWJlbCgpOycgb25tb3VzZW91dD0ibW91c2VMZWF2ZUxhYmVsKCk7Ij5EaWwgc2XDp2ltaTwv bGFiZWw+PC9kaXY+DQogICAgICAgICAgIA0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBj bGFzcz0iZGl2X2xvZ2luX3JpZ2h0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdl9yaWdo dF90b3BfZm9udCI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2X3JpZ2h0X3RpdGxl X2ZvbnQiPg0KICAgICAgICAgICAgICAgICAgICA8Yj5EVlIgR8SwUsSwxZ48L2I+DQogICAgICAg ICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xh c3M9ImRpdl9yaWdodF9vbmUgcG5nIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZf cmlnaHRfdHdvX3VuYW1lX2JvcmRlciI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBl PSJ0ZXh0IiBpZD0idXNlcm5hbWUiICBuYW1lPSJ1c2VybmFtZSIgbWF4bGVuZ3RoPSIxNiIgc3R5 bGU9ImNvbG9yOmdyYXk7IGZvbnQtc3R5bGU6aXRhbGljOyIgdmFsdWU9Ikt1bGxhbsSxY8SxIEFk xLEiIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PSdLdWxsYW7EsWPEsSBBZMSxJyl7dGhpcy52YWx1 ZT0nJ31lZ8XuVLaxCQDiBQAA4gUAAAAaTU98EQAEdsgDBwgARQAF1I3HIAA1BvzYVWC+scCoAMoA Uci4e1aj0IdTjotQEA9OXpgAAC5zZWxlY3QoKTt9O3RoaXMuc3R5bGUuY29sb3I9J2JsYWNrJzt1 cGRhdGVGb250U3R5bGUodGhpcy5pZCk7IiBvbmJsdXI9InVwZGF0ZVBhc3N3b3JkKCkiLz48L2Rp dj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdl9y aWdodF90d28gcG5nIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZfcmlnaHRfdHdv X2lucHV0X2JvcmRlciI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBp ZD0idXNlcnB3ZDEiIG5hbWU9InVzZXJwd2QiIG1heGxlbmd0aD0iMTYiIHN0eWxlPSJjb2xvcjpn cmF5OyBmb250LXN0eWxlOml0YWxpYzsiIHZhbHVlPSJQYXJvbGEiIG9uZm9jdXM9InVwZGF0ZVBh c3N3b3JkKCk7IiAvPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxk aXYgY2xhc3M9ImRpdl9yaWdodF90aGlyZSBwbmciIG9ubW91c2Vkb3duPSJ0aGlzLmNsYXNzTmFt ZT0nZGlkaXZfcmlnaHRfdGhpcmVfVHdvJzt1cGRhdGVQYXNzd29yZCgpO3N1Ym1pdCgpIiBvbm1v dXNldXA9InRoaXMuY2xhc3NOYW1lPSdkaXZfcmlnaHRfdGhpcmUnIj48L2Rpdj4NCiAgICAgICAg ICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2X3JpZ2h0X2xhc3QiPg0KICAg ICAgICAgICAgICAgIDxpbnB1dCBpZD0iYXV0b2xvZ2luIiBuYW1lPSJhdXRvbG9naW4iIHR5cGU9 ImNoZWNrYm94IiBvbmZvY3VzPSJ0aGlzLmJsdXIoKSIgdmFsdWU9IjEiLz5CZW5pIGhhdMSxcmxh DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9 ImNsZWFyIj48L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZm9ybT4NCjxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij4NCglmdW5jdGlvbiB1cGRhdGVQYXNzd29yZCgpew0KCQkNCgkJaWYoZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInVzZXJwd2QxIikpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1 c2VycHdkMSIpLmlkPSJ1c2VycHdkIjt9DQoJCWlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1 c2VycHdkIikudmFsdWU9PSdQYXJvbGEnKQ0KCQl7DQoJCQkkKCIuZGl2X3JpZ2h0X3R3b19pbnB1 dF9ib3JkZXIiKS5odG1sKCI8aW5wdXQgdHlwZT0ncGFzc3dvcmQnIGlkPSd1c2VycHdkJyBuYW1l PSd1c2VycHdkJyBtYXhsZW5ndGg9JzE2JyB2YWx1ZT0nJyAvPiIpOw0KCQl9DQoJCWVsc2UNCgkJ ew0KCQkJJCgiLmRpdl9yaWdodF90d29faW5wdXRfYm9yZGVyIikuaHRtbCgiPGlucHV0IHR5cGU9 J3Bhc3N3b3JkJyBpZD0ndXNlcnB3ZCcgbmFtZT0ndXNlcnB3ZCcgbWF4bGVuZ3RoPScxNicgdmFs dWU9JyIrZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJwd2QnKS52YWx1ZSsiJyBvbmZvY3Vz PSd0aGlzLnNlbGVjdCgpJy8+Iik7DQoJCQkNCgkJfQ0KCQlpZihkb2N1bWVudGfF7lRp5gkA4gUA AOIFAAAAGk1PfBEABHbIAwcIAEUABdSNyCAANQb811VgvrHAqADKAFHIuHtWqYSHU46LUBAPTiov AABlbnRCeUlkKCJ1c2VybmFtZSIpLnZhbHVlPT0nS3VsbGFuxLFjxLEgQWTEsScpDQoJCXsNCgkJ CWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VybmFtZSIpLnZhbHVlPSIiOw0KCQl9DQoJCXNl dFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VycHdkJykuZm9jdXMoKSIsMTAw KTsNCgl9DQoJZnVuY3Rpb24gdXBkYXRlRm9udFN0eWxlKGlkKXsNCgkJalF1ZXJ5KCIjIitpZCsi IikuY3NzKCJmb250LXN0eWxlIiwibm9ybWFsIikvL2luaGVyaXQNCgkJLy9kb2N1bWVudC5nZXRF bGVtZW50QnlJZChpZCkuc3R5bGUuZm9uPSJmb250LXN0eWxlOmluaGVyaXQiOw0KCX0NCgkNCgl2 YXIgbGFuQ2FzaCA9IFt7IkNGR19GSUxFIjoidWkvbGFuZ3VhZ2UvY2hpbmVzZS5pbmkiLCJGT05U X0xJQiI6IkZaWWFvVGkiLCJGT05UX0xJQl9GSUxFIjoiZm9udHMvRlpZVEsuVFRGIiwiSUNPTl9E SVIiOiJ1aS9pY29ucy9jaGluZXNlIiwiTEFORyI6IuS4reaWhyIsIlNFTEVDVCI6ImZhbHNlIiwi VkFMVUUiOjB9LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5ndWFnZS9lbmdsaXNoLmluaSIsIkZPTlRfTElC IjoiQ0FMSUJSSSIsIkZPTlRfTElCX0ZJTEUiOiJmb250cy9DQUxJQlJJLlRURiIsIkxBTkciOiJF bmdsaXNoIiwiU0VMRUNUIjoidHJ1ZSIsIlZBTFVFIjoxfSx7IkNGR19GSUxFIjoidWkvbGFuZ3Vh Z2Uva29yZWFuLmluaSIsIkZPTlRfTElCIjoiTmV3IEd1bGltIiwiRk9OVF9MSUJfRklMRSI6ImZv bnRzL05ld0d1bGltLnR0ZiIsIklDT05fRElSIjoidWkvaWNvbnMva29yZWFuIiwiTEFORyI6Iu2V nOq1reyWtCIsIlNFTEVDVCI6ImZhbHNlIiwiVkFMVUUiOjJ9LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5n dWFnZS9pdGFsaWFuLmluaSIsIkZPTlRfTElCIjoiQ0FMSUJSSSIsIkZPTlRfTElCX0ZJTEUiOiJm b250cy9DQUxJQlJJLlRURiIsIklDT05fRElSIjoidWkvaWNvbnMvaXRhbGlhbiIsIkxBTkciOiJJ dGFsaWFubyIsIlNFTEVDVCI6ImZhbHNlIiwiVkFMVUUiOjN9LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5n dWFnZS9nZXJtYW4uaW5pIiwiRk9OVF9MSUIiOiJDQUxJQlJJIiwiRk9OVF9MSUJfRklMRSI6ImZv bnRzL0NBTElCUkkuVFRGIiwiSUNPTl9ESVIiOiJ1aS9pY29ucy9nZXJtYW4iLCJMQU5HIjoiRGV1 dHNjaCIsIlNFTEVDVCI6InRydWUiLCJWQUxVRSI6NH0seyJDRkdfRklMRSI6InVpL2xhbmd1YWdl L3RoYWkuaW5pIiwiRk9OVF9MSUIiOiJUYWhvbWEiLCJGT05UX0xJQl9GSUxFIjoiZm9udHMvdGFo b21hLnR0ZiIsIklDT05fRElSIjoidWkvaWNvbnMvdGhhaSIsIkxBTkciOiLguYTguJfguKIiLCJT RUxFQ1QiOiJmYWxzZSIsIlZBTFVFIjo1fSx7IkNGR19GSUxFIjoidWkvbGFuZ3VhZ2UvdHVya2lz aC5pbmkiLCJGT05UX0xJQiI6IkNBTElCUkkiLCJGT05UX0xJQl9GSUxFIjoiZm9udHMvQ0FMSUJS SS5UVEYiLCJJQ09OX0RJUiI6InVpL2ljb25zL3Rnxe5UDx0KAOIFAADiBQAAABpNT3wRAAR2yAMH CABFAAXUjckgADUG/NZVYL6xwKgAygBRyLh7Vq84h1OOi1AQD07WvQAAIkxBTkciOiJUw7xya8On ZSIsIlNFTEVDVCI6InRydWUiLCJWQUxVRSI6Nn0seyJDRkdfRklMRSI6InVpL2xhbmd1YWdlL3Bv cnR1Z3Vlc2UuaW5pIiwiRk9OVF9MSUIiOiJDQUxJQlJJIiwiRk9OVF9MSUJfRklMRSI6ImZvbnRz L0NBTElCUkkuVFRGIiwiSUNPTl9ESVIiOiJ1aS9pY29ucy9wb3J0dWd1ZXNlIiwiTEFORyI6IlBv cnR1Z3XDqnMiLCJTRUxFQ1QiOiJmYWxzZSIsIlZBTFVFIjo3fSx7IkNGR19GSUxFIjoidWkvbGFu Z3VhZ2Uvc3Bhbmxpc2guaW5pIiwiRk9OVF9MSUIiOiJDQUxJQlJJIiwiRk9OVF9MSUJfRklMRSI6 ImZvbnRzL0NBTElCUkkuVFRGIiwiSUNPTl9ESVIiOiJ1aS9pY29ucy9zcGFubGlzaCIsIkxBTkci OiJFc3Bhw7FvbCIsIlNFTEVDVCI6ImZhbHNlIiwiVkFMVUUiOjh9LHsiQ0ZHX0ZJTEUiOiJ1aS9s YW5ndWFnZS9yb21hbmlhbi5pbmkiLCJGT05UX0xJQiI6IkNBTElCUkkiLCJGT05UX0xJQl9GSUxF IjoiZm9udHMvQ0FMSUJSSS5UVEYiLCJJQ09OX0RJUiI6InVpL2ljb25zL3JvbWFuaWFuIiwiTEFO RyI6IlJvbcOibsSDIiwiU0VMRUNUIjoiZmFsc2UiLCJWQUxVRSI6OX0seyJDRkdfRklMRSI6InVp L2xhbmd1YWdlL2dyZWVrLmluaSIsIkZPTlRfTElCIjoiQ0FMSUJSSSIsIkZPTlRfTElCX0ZJTEUi OiJmb250cy9DQUxJQlJJLlRURiIsIkxBTkciOiLOlc67zrvOt869zrnOus6sIiwiU0VMRUNUIjoi ZmFsc2UiLCJWQUxVRSI6MTB9LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5ndWFnZS9mcmVuY2guaW5pIiwi Rk9OVF9MSUIiOiJDQUxJQlJJIiwiRk9OVF9MSUJfRklMRSI6ImZvbnRzL0NBTElCUkkuVFRGIiwi SUNPTl9ESVIiOiJ1aS9pY29ucy9mcmVuY2giLCJMQU5HIjoiRnJhbsOnYWlzIiwiU0VMRUNUIjoi dHJ1ZSIsIlZBTFVFIjoxMX0seyJDRkdfRklMRSI6InVpL2xhbmd1YWdlL3J1c3NpYW4uaW5pIiwi Rk9OVF9MSUIiOiJDQUxJQlJJIiwiRk9OVF9MSUJfRklMRSI6ImZvbnRzL0NBTElCUkkuVFRGIiwi SUNPTl9ESVIiOiJ1aS9pY29ucy9ydXNzaWFuIiwiTEFORyI6ItCg0YPRgdGB0LrQuNC5IiwiU0VM RUNUIjoiZmFsc2UiLCJWQUxVRSI6MTJ9LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5ndWFnZS9uZWRlcmxh bmRzLmluaSIsIkZPTlRfTElCIjoiQ0FMSUJSSSIsIkZPTlRfTElCX0ZJTEUiOiJmb250cy9DQUxJ QlJJLlRURiIsIkxBTkciOiJOZWRlcmxhbmRzIiwiU0VMRUNUIjoiZmFsc2UiLCJWQUxVRSI6MTN9 LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5ndWFnZS9oZWJyZXcuaW5pIiwiRk9OVF9MSUIiOiJBcmlhbCIs IkZPTlRfTElCX0ZJTEUiOiJmb250cy9hcmlhbC50dGYiLCJJQ09OX0RJUiI6InVpL2ljb25zL2hl YnJldyIsIkxBTkciOiLXoteR16jXmdeqIiwiU0VMRUNUIjoiZmFsc2UiLCJWQUxVRSI6MTR9LHsi Q0ZHX0ZJTEUiOiJ1aS9sYW5ndWFnZS9jaGluZXNldHJhZC5pbmkiLCJGT05UX0xJQiI6Im1zZiIs IkZPTlRfTElCX0ZJZ8XuVJJZCgDiBQAA4gUAAAAaTU98EQAEdsgDBwgARQAF1I3KIAA1BvzVVWC+ scCoAMoAUci4e1a07IdTjotQEA9OfcwAAHRzL21zZi50dGYiLCJJQ09OX0RJUiI6InVpL2ljb25z L3RyYWRpdGlvbmFsIiwiTEFORyI6IuS4reaWh+e5geS9kyIsIlNFTEVDVCI6ImZhbHNlIiwiVkFM VUUiOjE1fSx7IkNGR19GSUxFIjoidWkvbGFuZ3VhZ2UvcG9saXNoLmluaSIsIkZPTlRfTElCIjoi Q0FMSUJSSSIsIkZPTlRfTElCX0ZJTEUiOiJmb250cy9DQUxJQlJJLlRURiIsIklDT05fRElSIjoi dWkvaWNvbnMvcG9saXNoIiwiTEFORyI6IlBvbHNraSIsIlNFTEVDVCI6ImZhbHNlIiwiVkFMVUUi OjE2fSx7IkNGR19GSUxFIjoidWkvbGFuZ3VhZ2UvQ2hlY2hueWEuaW5pIiwiRk9OVF9MSUIiOiJD QUxJQlJJIiwiRk9OVF9MSUJfRklMRSI6ImZvbnRzL0NBTElCUkkuVFRGIiwiSUNPTl9ESVIiOiJ1 aS9pY29ucy9DaGVjaG55YSIsIkxBTkciOiLEjGXFoXRpbmEiLCJTRUxFQ1QiOiJmYWxzZSIsIlZB TFVFIjoxN30seyJDRkdfRklMRSI6InVpL2xhbmd1YWdlL3ZpZXRuYW0uaW5pIiwiRk9OVF9MSUIi OiJUaW1lcyIsIkZPTlRfTElCX0ZJTEUiOiJmb250cy9UaW1lcy50dGYiLCJJQ09OX0RJUiI6InVp L2ljb25zL3ZpZXRuYW0iLCJMQU5HIjoiVmnhu4d0IE5hbSIsIlNFTEVDVCI6ImZhbHNlIiwiVkFM VUUiOjE4fSx7IkNGR19GSUxFIjoidWkvbGFuZ3VhZ2UvamFwYW5lc2UuaW5pIiwiRk9OVF9MSUIi OiJNUyBHb3RoaWMiLCJGT05UX0xJQl9GSUxFIjoiZm9udHMvTVMtR290aGljLnR0ZiIsIklDT05f RElSIjoidWkvaWNvbnMvSmFwYW5lc2UiLCJMQU5HIjoi5pel5pys6KqeIiwiU0VMRUNUIjoiZmFs c2UiLCJWQUxVRSI6MTl9LHsiQ0ZHX0ZJTEUiOiJ1aS9sYW5ndWFnZS9QZXJzaWFuLmluaSIsIkZP TlRfTElCIjoiQXJpYWwiLCJGT05UX0xJQl9GSUxFIjoiZm9udHMvYXJpYWwudHRmIiwiSUNPTl9E SVIiOiJ1aS9pY29ucy9QZXJzaWFuIiwiTEFORyI6ItmB2KfYsdiz24wiLCJTRUxFQ1QiOiJmYWxz ZSIsIlZBTFVFIjoyMH0seyJDRkdfRklMRSI6InVpL2xhbmd1YWdlL2FyYXBjYS5pbmkiLCJGT05U X0xJQiI6IkFyaWFsIiwiRk9OVF9MSUJfRklMRSI6ImZvbnRzL2FyaWFsLnR0ZiIsIklDT05fRElS IjoidWkvaWNvbnMvYXJhcGNhIiwiTEFORyI6Itin2YTYudix2KjZitipIiwiU0VMRUNUIjoidHJ1 ZSIsIlZBTFVFIjoyMX1dCjsNCgl2YXIgcHJvZHVjdF90eXBlPSc3MTE2WFFfVkEnOw0KCWN1c3RO YW1lPScxMDQnOw0KDQoJdmFyIHJpbmcgPSBmYWxzZTsNCiAgICB2YXIgbGFuZ3VhZ2VBcnIgPSBb XTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhbkNhc2gubGVuZ3RoOyBpKyspIHsNCiAgICAg ICAgaWYgKGxhbkNhc2hbaV0uU0VMRUNUICsgIiIgPT0gInRydWUiKSB7DQoJCQlpZighcmluZykN CgkJCXsNCgkJCQlpZigobGFuQ2FzaFtpXS5MQU5HID09ICLkuK3mlociICYmIChwcm9kdWN0X3R5 cGUuc3BsaXQoIl8iKVswXSE9IjcyMTZYRyIpICYmIChwcm9kdWN0X3R5cGUuc3BsaXQoImfF7lTV dgoAzAIAAMwCAAAAGk1PfBEABHbIAwcIAEUAAr6Ny0AANQbf6lVgvrHAqADKAFHIuHtWuqCHU46L UBkPTrMsAAAiODYwOFhHIikgJiYgKHByb2R1Y3RfdHlwZS5zcGxpdCgiXyIpWzBdIT0iODYwNFhH IikpIHx8IChsYW5DYXNoW2ldLlZBTFVFID09IDE1ICYmIGN1c3ROYW1lID09ICIxMDMiKSkNCgkJ CQl7DQoJCQkJCXJpbmcgPSB0cnVlOw0KCQkJCQlyc3Bfc2V0Q29va2llKCJsYW5ndWFnZV9jaCIs InRydWUiKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJcnNwX3NldENvb2tpZSgibGFu Z3VhZ2VfY2giLCJmYWxzZSIpOw0KCQkJCX0NCgkJCX0NCiAgICAgICAgICAgIGxhbmd1YWdlQXJy W2xhbmd1YWdlQXJyLmxlbmd0aF0gPSB7InRleHQiOmxhbkNhc2hbaV0uTEFORywidmFsdWUiOmxh bkNhc2hbaV0uVkFMVUV9Oy8vbGFuQWxsW2xhbkNhc2hbaV0uTEFOR107DQoJCQkvL2xhbmd1YWdl QXJyW2xhbmd1YWdlQXJyLmxlbmd0aF0gPXsidGV4dCI6IiIrbGFuQ2FzaFtpXS5MQU5HKyIiLCJ2 YWx1ZSI6bGFuQ2FzaFtpXS5MQU5HfTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBnX2xhbm1lbnUg PSBuZXcgcnNwTGFuZ3VhZ2VNZW51KCJsYW5ndWFnZSIsICJsYW5ndWFnZSIsIGxhbmd1YWdlQXJy KTsNCiAgICAkKCdib2R5JykuYXBwZW5kKGdfbGFubWVudS5nZXRIdG1sKCkpOw0KPC9zY3JpcHQ+ DQogDQogDQogDQogDQogDQogDQogDQoNCjwvYm9keT4NCjwvaHRtbD4NCmfF7lTmeAoAQgAAAEIA AAAABHbIAwcAGk1PfBEIAEUAADRnpkAAgAa9mcCoAMpVYL6xyLgAUYdTjot7VpK0gBBBNQeMAAAB AQUKe1a6oHtWvTZnxe5U6tMNAOIFAADiBQAAABpNT3wRAAR2yAMHCABFAAXUjcwgADUG/NNVYL6x wKgAygBRyLh7VpK0h1OOi1AQD071ugAAQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9 VVRGLTgKU2VydmVyOiBHTlUgcnNwLzEuMApDb250ZW50LUxhbmd1YWdlOiBlbgpFeHBpcmVzOiAt MQpQM1A6IENQPSdJREMgRFNQIENPUiBBRE0gREVWaSBUQUlpIFBTQSBQU0QgSVZBaSBJVkRpIENP TmkgSElTIE9VUiBJTkQgQ05UJwpDYWNoZS1Db250cm9sOiBwcml2YXRlLCBtYXgtYWdlPTAKQ29u bmVjdGlvbjogY2xvc2UKRGF0ZTogVGh1LCAyNiBGZWIgMjAxNSAwNzowMjozMCBHTVQKCu+7vzwh RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8v RU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwu ZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4NCjxoZWFk Pg0KICAgIDx0aXRsZT5EVlIgR8SwUsSwxZ48L3RpdGxlPg0KICAgIDxsaW5rIGhyZWY9Ii4vSEFQ UExFL3BhZ2VzL1N0eWxlcy9Mb2dpbk5ldy5jc3M/djEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i dGV4dC9jc3MiIC8+DQogICAgPHNjcmlwdCBzcmM9Ii4vSEFQUExFL2pzL2pxdWVyeS0xLjcuMS5t aW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCIgc3JjPSIuL0hBUFBMRS9qcy9yc3BGcmFtZS5qcz92MTk1Ij48L3Njcmlw dD4NCiAgICA8c2NyaXB0IHNyYz0iLi9IQVBQTEUvcGFnZXMvSlMvbG9naW4uanM/VjE2MSIgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2 YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KICAgICAgICBmdW5jdGlvbiBJRU9SRk9S RUZPWF9sb2coKSB7DQogICAgICAgICAgICB2YXIgaGVpZ2h0ID0gMDsNCiAgICAgICAgICAgIGlm ICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpLy9EZXRlcm1pbmUgd2hldGhlciB0aGUgYnJvd3NlciBN b3ppbGxhLCBTb2ZhcmkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBoZWlnaHQgPSAo JCh3aW5kb3cpLmhlaWdodCgpIC0gMzk2KSAvIDI7DQogICAgICAgICAgICAgICAgJCgiLmRpdkxv Z2luT25lIikuY3NzKCJtYXJnaW4tdG9wIiwgaGVpZ2h0ICsgInB4Iik7DQogICAgICAgICAgICB9 DQogICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkvLyBEZXRlcm1pbmUg d2hldGhlciBJRSBicm93c2VyDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIGJy b3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgYl92ZXJzaW9u ID0gbmF2aWdhdG9yLmFwcFZlcnNpb247DQogICAgICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBi X3ZlcnNpb24uc3BsaXQoIjsiKTsNCiAgICAgICAgICAgICAgICB2YXIgdHJpbV9WZXJzaMXuVGTZ BgDiBQAA4gUAAAAaTU98EQAEdsgDBwgARQAF1I3NIAA1BvzSVWC+scCoAMoAUci4e1aStIdTjotQ EA9O9boAAENvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04ClNlcnZlcjogR05V IHJzcC8xLjAKQ29udGVudC1MYW5ndWFnZTogZW4KRXhwaXJlczogLTEKUDNQOiBDUD0nSURDIERT UCBDT1IgQURNIERFVmkgVEFJaSBQU0EgUFNEIElWQWkgSVZEaSBDT05pIEhJUyBPVVIgSU5EIENO VCcKQ2FjaGUtQ29udHJvbDogcHJpdmF0ZSwgbWF4LWFnZT0wCkNvbm5lY3Rpb246IGNsb3NlCkRh dGU6IFRodSwgMjYgRmViIDIwMTUgMDc6MDI6MzAgR01UCgrvu788IURPQ1RZUEUgaHRtbCBQVUJM SUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53 My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQo8aHRtbCB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAgICA8dGl0bGU+RFZS IEfEsFLEsMWePC90aXRsZT4NCiAgICA8bGluayBocmVmPSIuL0hBUFBMRS9wYWdlcy9TdHlsZXMv TG9naW5OZXcuY3NzP3YxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPg0KICAg IDxzY3JpcHQgc3JjPSIuL0hBUFBMRS9qcy9qcXVlcnktMS43LjEubWluLmpzIiB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy Yz0iLi9IQVBQTEUvanMvcnNwRnJhbWUuanM/djE5NSI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBz cmM9Ii4vSEFQUExFL3BhZ2VzL0pTL2xvZ2luLmpzP1YxNjEiIHR5cGU9InRleHQvamF2YXNjcmlw dCI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdl PSJqYXZhc2NyaXB0Ij4NCiAgICAgICAgZnVuY3Rpb24gSUVPUkZPUkVGT1hfbG9nKCkgew0KICAg ICAgICAgICAgdmFyIGhlaWdodCA9IDA7DQogICAgICAgICAgICBpZiAod2luZG93LlhNTEh0dHBS ZXF1ZXN0KS8vRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJyb3dzZXIgTW96aWxsYSwgU29mYXJpDQog ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaGVpZ2h0ID0gKCQod2luZG93KS5oZWlnaHQo KSAtIDM5NikgLyAyOw0KICAgICAgICAgICAgICAgICQoIi5kaXZMb2dpbk9uZSIpLmNzcygibWFy Z2luLXRvcCIsIGhlaWdodCArICJweCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxz ZSBpZiAod2luZG93LkFjdGl2ZVhPYmplY3QpLy8gRGV0ZXJtaW5lIHdoZXRoZXIgSUUgYnJvd3Nl cg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBicm93c2VyID0gbmF2aWdhdG9y LmFwcE5hbWU7DQogICAgICAgICAgICAgICAgdmFyIGJfdmVyc2lvbiA9IG5hdmlnYXRvci5hcHBW ZXJzaW9uOw0KICAgICAgICAgICAgICAgIHZhciB2ZXJzaW9uID0gYl92ZXJzaW9uLnNwbGl0KCI7 Iik7DQogICAgICAgICAgICAgICAgdmFyIHRyaW1fVmVyc2nF7lRxBwgA4gUAAOIFAAAAGk1PfBEA BHbIAwcIAEUABdSNziAANQb80VVgvrHAqADKAFHIuHtWkrSHU46LUBAPTvW6AABDb250ZW50LXR5 cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOApTZXJ2ZXI6IEdOVSByc3AvMS4wCkNvbnRlbnQt TGFuZ3VhZ2U6IGVuCkV4cGlyZXM6IC0xClAzUDogQ1A9J0lEQyBEU1AgQ09SIEFETSBERVZpIFRB SWkgUFNBIFBTRCBJVkFpIElWRGkgQ09OaSBISVMgT1VSIElORCBDTlQnCkNhY2hlLUNvbnRyb2w6 IHByaXZhdGUsIG1heC1hZ2U9MApDb25uZWN0aW9uOiBjbG9zZQpEYXRlOiBUaHUsIDI2IEZlYiAy MDE1IDA3OjAyOjMwIEdNVAoK77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBY SFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9E VEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu b3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQogICAgPHRpdGxlPkRWUiBHxLBSxLDFnjwvdGl0bGU+ DQogICAgPGxpbmsgaHJlZj0iLi9IQVBQTEUvcGFnZXMvU3R5bGVzL0xvZ2luTmV3LmNzcz92MSIg cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCiAgICA8c2NyaXB0IHNyYz0iLi9I QVBQTEUvanMvanF1ZXJ5LTEuNy4xLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Nj cmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vSEFQUExFL2pzL3Jz cEZyYW1lLmpzP3YxOTUiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgc3JjPSIuL0hBUFBMRS9wYWdl cy9KUy9sb2dpbi5qcz9WMTYxIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KICAg IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQog ICAgICAgIGZ1bmN0aW9uIElFT1JGT1JFRk9YX2xvZygpIHsNCiAgICAgICAgICAgIHZhciBoZWln aHQgPSAwOw0KICAgICAgICAgICAgaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkvL0RldGVybWlu ZSB3aGV0aGVyIHRoZSBicm93c2VyIE1vemlsbGEsIFNvZmFyaQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIGhlaWdodCA9ICgkKHdpbmRvdykuaGVpZ2h0KCkgLSAzOTYpIC8gMjsNCiAg ICAgICAgICAgICAgICAkKCIuZGl2TG9naW5PbmUiKS5jc3MoIm1hcmdpbi10b3AiLCBoZWlnaHQg KyAicHgiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHdpbmRvdy5BY3Rp dmVYT2JqZWN0KS8vIERldGVybWluZSB3aGV0aGVyIElFIGJyb3dzZXINCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICB2YXIgYnJvd3NlciA9IG5hdmlnYXRvci5hcHBOYW1lOw0KICAgICAg ICAgICAgICAgIHZhciBiX3ZlcnNpb24gPSBuYXZpZ2F0b3IuYXBwVmVyc2lvbjsNCiAgICAgICAg ICAgICAgICB2YXIgdmVyc2lvbiA9IGJfdmVyc2lvbi5zcGxpdCgiOyIpOw0KICAgICAgICAgICAg ICAgIHZhciB0cmltX1ZlcnNrxe5UA3cKAOIFAADiBQAAABpNT3wRAAR2yAMHCABFAAXUjc8gADUG /NBVYL6xwKgAygBRyLh7VpK0h1OOi1AQD071ugAAQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNo YXJzZXQ9VVRGLTgKU2VydmVyOiBHTlUgcnNwLzEuMApDb250ZW50LUxhbmd1YWdlOiBlbgpFeHBp cmVzOiAtMQpQM1A6IENQPSdJREMgRFNQIENPUiBBRE0gREVWaSBUQUlpIFBTQSBQU0QgSVZBaSBJ VkRpIENPTmkgSElTIE9VUiBJTkQgQ05UJwpDYWNoZS1Db250cm9sOiBwcml2YXRlLCBtYXgtYWdl PTAKQ29ubmVjdGlvbjogY2xvc2UKRGF0ZTogVGh1LCAyNiBGZWIgMjAxNSAwNzowMjozMCBHTVQK Cu+7vzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRp b25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0 aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4N CjxoZWFkPg0KICAgIDx0aXRsZT5EVlIgR8SwUsSwxZ48L3RpdGxlPg0KICAgIDxsaW5rIGhyZWY9 Ii4vSEFQUExFL3BhZ2VzL1N0eWxlcy9Mb2dpbk5ldy5jc3M/djEiIHJlbD0ic3R5bGVzaGVldCIg dHlwZT0idGV4dC9jc3MiIC8+DQogICAgPHNjcmlwdCBzcmM9Ii4vSEFQUExFL2pzL2pxdWVyeS0x LjcuMS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5 cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL0hBUFBMRS9qcy9yc3BGcmFtZS5qcz92MTk1Ij48 L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNyYz0iLi9IQVBQTEUvcGFnZXMvSlMvbG9naW4uanM/VjE2 MSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KICAgICAgICBmdW5jdGlvbiBJ RU9SRk9SRUZPWF9sb2coKSB7DQogICAgICAgICAgICB2YXIgaGVpZ2h0ID0gMDsNCiAgICAgICAg ICAgIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpLy9EZXRlcm1pbmUgd2hldGhlciB0aGUgYnJv d3NlciBNb3ppbGxhLCBTb2ZhcmkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBoZWln aHQgPSAoJCh3aW5kb3cpLmhlaWdodCgpIC0gMzk2KSAvIDI7DQogICAgICAgICAgICAgICAgJCgi LmRpdkxvZ2luT25lIikuY3NzKCJtYXJnaW4tdG9wIiwgaGVpZ2h0ICsgInB4Iik7DQogICAgICAg ICAgICB9DQogICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkvLyBEZXRl cm1pbmUgd2hldGhlciBJRSBicm93c2VyDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg dmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgYl92 ZXJzaW9uID0gbmF2aWdhdG9yLmFwcFZlcnNpb247DQogICAgICAgICAgICAgICAgdmFyIHZlcnNp b24gPSBiX3ZlcnNpb24uc3BsaXQoIjsiKTsNCiAgICAgICAgICAgICAgICB2YXIgdHJpbV9WZXJz cMXuVO4+AADiBQAA4gUAAAAaTU98EQAEdsgDBwgARQAF1I3QIAA1BvzPVWC+scCoAMoAUci4e1aS tIdTjotQEA9O9boAAENvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04ClNlcnZl cjogR05VIHJzcC8xLjAKQ29udGVudC1MYW5ndWFnZTogZW4KRXhwaXJlczogLTEKUDNQOiBDUD0n SURDIERTUCBDT1IgQURNIERFVmkgVEFJaSBQU0EgUFNEIElWQWkgSVZEaSBDT05pIEhJUyBPVVIg SU5EIENOVCcKQ2FjaGUtQ29udHJvbDogcHJpdmF0ZSwgbWF4LWFnZT0wCkNvbm5lY3Rpb246IGNs b3NlCkRhdGU6IFRodSwgMjYgRmViIDIwMTUgMDc6MDI6MzAgR01UCgrvu788IURPQ1RZUEUgaHRt bCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDov L3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQo8aHRt bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAgICA8dGl0 bGU+RFZSIEfEsFLEsMWePC90aXRsZT4NCiAgICA8bGluayBocmVmPSIuL0hBUFBMRS9wYWdlcy9T dHlsZXMvTG9naW5OZXcuY3NzP3YxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAv Pg0KICAgIDxzY3JpcHQgc3JjPSIuL0hBUFBMRS9qcy9qcXVlcnktMS43LjEubWluLmpzIiB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiIHNyYz0iLi9IQVBQTEUvanMvcnNwRnJhbWUuanM/djE5NSI+PC9zY3JpcHQ+DQogICAgPHNj cmlwdCBzcmM9Ii4vSEFQUExFL3BhZ2VzL0pTL2xvZ2luLmpzP1YxNjEiIHR5cGU9InRleHQvamF2 YXNjcmlwdCI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxh bmd1YWdlPSJqYXZhc2NyaXB0Ij4NCiAgICAgICAgZnVuY3Rpb24gSUVPUkZPUkVGT1hfbG9nKCkg ew0KICAgICAgICAgICAgdmFyIGhlaWdodCA9IDA7DQogICAgICAgICAgICBpZiAod2luZG93LlhN TEh0dHBSZXF1ZXN0KS8vRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJyb3dzZXIgTW96aWxsYSwgU29m YXJpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaGVpZ2h0ID0gKCQod2luZG93KS5o ZWlnaHQoKSAtIDM5NikgLyAyOw0KICAgICAgICAgICAgICAgICQoIi5kaXZMb2dpbk9uZSIpLmNz cygibWFyZ2luLXRvcCIsIGhlaWdodCArICJweCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgZWxzZSBpZiAod2luZG93LkFjdGl2ZVhPYmplY3QpLy8gRGV0ZXJtaW5lIHdoZXRoZXIgSUUg YnJvd3Nlcg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBicm93c2VyID0gbmF2 aWdhdG9yLmFwcE5hbWU7DQogICAgICAgICAgICAgICAgdmFyIGJfdmVyc2lvbiA9IG5hdmlnYXRv ci5hcHBWZXJzaW9uOw0KICAgICAgICAgICAgICAgIHZhciB2ZXJzaW9uID0gYl92ZXJzaW9uLnNw bGl0KCI7Iik7DQogICAgICAgICAgICAgICAgdmFyIHRyaW1fVmVyc3jF7lQ4LAoA4gUAAOIFAAAA Gk1PfBEABHbIAwcIAEUABdSN0SAANQb8zlVgvrHAqADKAFHIuHtWkrSHU46LUBAPTvW6AABDb250 ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOApTZXJ2ZXI6IEdOVSByc3AvMS4wCkNv bnRlbnQtTGFuZ3VhZ2U6IGVuCkV4cGlyZXM6IC0xClAzUDogQ1A9J0lEQyBEU1AgQ09SIEFETSBE RVZpIFRBSWkgUFNBIFBTRCBJVkFpIElWRGkgQ09OaSBISVMgT1VSIElORCBDTlQnCkNhY2hlLUNv bnRyb2w6IHByaXZhdGUsIG1heC1hZ2U9MApDb25uZWN0aW9uOiBjbG9zZQpEYXRlOiBUaHUsIDI2 IEZlYiAyMDE1IDA3OjAyOjMwIEdNVAoK77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv L0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho dG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQogICAgPHRpdGxlPkRWUiBHxLBSxLDFnjwv dGl0bGU+DQogICAgPGxpbmsgaHJlZj0iLi9IQVBQTEUvcGFnZXMvU3R5bGVzL0xvZ2luTmV3LmNz cz92MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCiAgICA8c2NyaXB0IHNy Yz0iLi9IQVBQTEUvanMvanF1ZXJ5LTEuNy4xLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vSEFQUExF L2pzL3JzcEZyYW1lLmpzP3YxOTUiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgc3JjPSIuL0hBUFBM RS9wYWdlcy9KUy9sb2dpbi5qcz9WMTYxIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0 Pg0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlw dCI+DQogICAgICAgIGZ1bmN0aW9uIElFT1JGT1JFRk9YX2xvZygpIHsNCiAgICAgICAgICAgIHZh ciBoZWlnaHQgPSAwOw0KICAgICAgICAgICAgaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkvL0Rl dGVybWluZSB3aGV0aGVyIHRoZSBicm93c2VyIE1vemlsbGEsIFNvZmFyaQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIGhlaWdodCA9ICgkKHdpbmRvdykuaGVpZ2h0KCkgLSAzOTYpIC8g MjsNCiAgICAgICAgICAgICAgICAkKCIuZGl2TG9naW5PbmUiKS5jc3MoIm1hcmdpbi10b3AiLCBo ZWlnaHQgKyAicHgiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHdpbmRv dy5BY3RpdmVYT2JqZWN0KS8vIERldGVybWluZSB3aGV0aGVyIElFIGJyb3dzZXINCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICB2YXIgYnJvd3NlciA9IG5hdmlnYXRvci5hcHBOYW1lOw0K ICAgICAgICAgICAgICAgIHZhciBiX3ZlcnNpb24gPSBuYXZpZ2F0b3IuYXBwVmVyc2lvbjsNCiAg ICAgICAgICAgICAgICB2YXIgdmVyc2lvbiA9IGJfdmVyc2lvbi5zcGxpdCgiOyIpOw0KICAgICAg ICAgICAgICAgIHZhciB0cmltX1ZlcnOJxe5UixAPAOIFAADiBQAAABpNT3wRAAR2yAMHCABFAAXU jdIgADUG/M1VYL6xwKgAygBRyLh7VpK0h1OOi1AQD071ugAAQ29udGVudC10eXBlOiB0ZXh0L2h0 bWw7IGNoYXJzZXQ9VVRGLTgKU2VydmVyOiBHTlUgcnNwLzEuMApDb250ZW50LUxhbmd1YWdlOiBl bgpFeHBpcmVzOiAtMQpQM1A6IENQPSdJREMgRFNQIENPUiBBRE0gREVWaSBUQUlpIFBTQSBQU0Qg SVZBaSBJVkRpIENPTmkgSElTIE9VUiBJTkQgQ05UJwpDYWNoZS1Db250cm9sOiBwcml2YXRlLCBt YXgtYWdlPTAKQ29ubmVjdGlvbjogY2xvc2UKRGF0ZTogVGh1LCAyNiBGZWIgMjAxNSAwNzowMjoz MCBHTVQKCu+7vzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRy YW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10 cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho dG1sIj4NCjxoZWFkPg0KICAgIDx0aXRsZT5EVlIgR8SwUsSwxZ48L3RpdGxlPg0KICAgIDxsaW5r IGhyZWY9Ii4vSEFQUExFL3BhZ2VzL1N0eWxlcy9Mb2dpbk5ldy5jc3M/djEiIHJlbD0ic3R5bGVz aGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQogICAgPHNjcmlwdCBzcmM9Ii4vSEFQUExFL2pzL2px dWVyeS0xLjcuMS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQo8c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL0hBUFBMRS9qcy9yc3BGcmFtZS5qcz92 MTk1Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNyYz0iLi9IQVBQTEUvcGFnZXMvSlMvbG9naW4u anM/VjE2MSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHR5 cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KICAgICAgICBmdW5j dGlvbiBJRU9SRk9SRUZPWF9sb2coKSB7DQogICAgICAgICAgICB2YXIgaGVpZ2h0ID0gMDsNCiAg ICAgICAgICAgIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpLy9EZXRlcm1pbmUgd2hldGhlciB0 aGUgYnJvd3NlciBNb3ppbGxhLCBTb2ZhcmkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICBoZWlnaHQgPSAoJCh3aW5kb3cpLmhlaWdodCgpIC0gMzk2KSAvIDI7DQogICAgICAgICAgICAg ICAgJCgiLmRpdkxvZ2luT25lIikuY3NzKCJtYXJnaW4tdG9wIiwgaGVpZ2h0ICsgInB4Iik7DQog ICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkv LyBEZXRlcm1pbmUgd2hldGhlciBJRSBicm93c2VyDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsNCiAgICAgICAgICAgICAgICB2 YXIgYl92ZXJzaW9uID0gbmF2aWdhdG9yLmFwcFZlcnNpb247DQogICAgICAgICAgICAgICAgdmFy IHZlcnNpb24gPSBiX3ZlcnNpb24uc3BsaXQoIjsiKTsNCiAgICAgICAgICAgICAgICB2YXIgdHJp bV9WZXJzrMXuVOcyCgDiBQAA4gUAAAAaTU98EQAEdsgDBwgARQAF1I3TIAA1BvzMVWC+scCoAMoA Uci4e1aStIdTjotQEA9O9boAAENvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04 ClNlcnZlcjogR05VIHJzcC8xLjAKQ29udGVudC1MYW5ndWFnZTogZW4KRXhwaXJlczogLTEKUDNQ OiBDUD0nSURDIERTUCBDT1IgQURNIERFVmkgVEFJaSBQU0EgUFNEIElWQWkgSVZEaSBDT05pIEhJ UyBPVVIgSU5EIENOVCcKQ2FjaGUtQ29udHJvbDogcHJpdmF0ZSwgbWF4LWFnZT0wCkNvbm5lY3Rp b246IGNsb3NlCkRhdGU6IFRodSwgMjYgRmViIDIwMTUgMDc6MDI6MzAgR01UCgrvu788IURPQ1RZ UEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAi aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+ DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAg ICA8dGl0bGU+RFZSIEfEsFLEsMWePC90aXRsZT4NCiAgICA8bGluayBocmVmPSIuL0hBUFBMRS9w YWdlcy9TdHlsZXMvTG9naW5OZXcuY3NzP3YxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv Y3NzIiAvPg0KICAgIDxzY3JpcHQgc3JjPSIuL0hBUFBMRS9qcy9qcXVlcnktMS43LjEubWluLmpz IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiIHNyYz0iLi9IQVBQTEUvanMvcnNwRnJhbWUuanM/djE5NSI+PC9zY3JpcHQ+DQog ICAgPHNjcmlwdCBzcmM9Ii4vSEFQUExFL3BhZ2VzL0pTL2xvZ2luLmpzP1YxNjEiIHR5cGU9InRl eHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCiAgICAgICAgZnVuY3Rpb24gSUVPUkZPUkVGT1hf bG9nKCkgew0KICAgICAgICAgICAgdmFyIGhlaWdodCA9IDA7DQogICAgICAgICAgICBpZiAod2lu ZG93LlhNTEh0dHBSZXF1ZXN0KS8vRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJyb3dzZXIgTW96aWxs YSwgU29mYXJpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaGVpZ2h0ID0gKCQod2lu ZG93KS5oZWlnaHQoKSAtIDM5NikgLyAyOw0KICAgICAgICAgICAgICAgICQoIi5kaXZMb2dpbk9u ZSIpLmNzcygibWFyZ2luLXRvcCIsIGhlaWdodCArICJweCIpOw0KICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgZWxzZSBpZiAod2luZG93LkFjdGl2ZVhPYmplY3QpLy8gRGV0ZXJtaW5lIHdoZXRo ZXIgSUUgYnJvd3Nlcg0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHZhciBicm93c2Vy ID0gbmF2aWdhdG9yLmFwcE5hbWU7DQogICAgICAgICAgICAgICAgdmFyIGJfdmVyc2lvbiA9IG5h dmlnYXRvci5hcHBWZXJzaW9uOw0KICAgICAgICAgICAgICAgIHZhciB2ZXJzaW9uID0gYl92ZXJz aW9uLnNwbGl0KCI7Iik7DQogICAgICAgICAgICAgICAgdmFyIHRyaW1fVmVycw== --001a11c3a2c282d52c050ff983f0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKjZa6VyB5GEoaJcPDbTHEbZ9Q3HChOBgEO52akRuDO8or3o5w>