<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>155989</bug_id>
          
          <creation_ts>2016-03-29 14:22:46 -0700</creation_ts>
          <short_desc>Add WebKit Nightly Archives, WebKit Nightly Start, and Downloads page</short_desc>
          <delta_ts>2016-03-29 17:40:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Website</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Davis">jond</reporter>
          <assigned_to name="Jon Davis">jond</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jond</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1178806</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Davis">jond</who>
    <bug_when>2016-03-29 14:22:46 -0700</bug_when>
    <thetext>Add WebKit Nightly Archives page with revision search, a new WebKit Nightly Start page, and a Downloads page for WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178815</commentid>
    <comment_count>1</comment_count>
      <attachid>275137</attachid>
    <who name="Jon Davis">jond</who>
    <bug_when>2016-03-29 14:46:02 -0700</bug_when>
    <thetext>Created attachment 275137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178817</commentid>
    <comment_count>2</comment_count>
      <attachid>275137</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-03-29 14:55:06 -0700</bug_when>
    <thetext>Comment on attachment 275137
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=275137&amp;action=review

&gt; Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php:36
&gt; +        add_action( &apos;update_webkit_nightly_builds&apos;, function () {

Stray extra space.

&gt; Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php:144
&gt; +
&gt; +

Extra newline.

&gt; Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php:160
&gt; +        return ( $build &gt;= $start &amp;&amp; $build &lt;= $end );

No need for the ().

&gt; Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php:170
&gt; +        return ( $target &gt; $older &amp;&amp; $target &lt; $newer );

Ditto.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:68
&gt; +

We usually don&apos;t add these empty lines.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:73
&gt; +

Ditto.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:77
&gt; +

Ditto.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:81
&gt; +

Ditto.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:85
&gt; +

Ditto.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:89
&gt; +

Ditto.

&gt; Websites/webkit.org/wp-content/themes/webkit/downloads.php:99
&gt; +
&gt; +

Double newline.

&gt; Websites/webkit.org/wp-content/themes/webkit/functions.php:55
&gt; +    return (string)json_encode($builds);

Why is the type cast needed?

&gt; Websites/webkit.org/wp-content/themes/webkit/functions.php:151
&gt; +// remove_filter(&apos;the_content&apos;, &apos;wpautop&apos;);

Did you mean to do this? Keep or delete.

&gt; Websites/webkit.org/wp-content/themes/webkit/images/spinner.svg:3
&gt; +	&lt;rect x=&apos;46.5&apos; y=&apos;40&apos; width=&apos;7&apos; height=&apos;20&apos; rx=&apos;3.5&apos; ry=&apos;3.5&apos; fill=&apos;black&apos; transform=&apos;rotate(0 50 50) translate(0 -30)&apos;&gt;  

Use double quotes for everything.

&gt; Websites/webkit.org/wp-content/themes/webkit/images/spinner.svg:4
&gt; +		&lt;animate attributeName=&apos;opacity&apos; from=&apos;1&apos; to=&apos;0&apos; dur=&apos;1s&apos; begin=&apos;0s&apos; repeatCount=&apos;indefinite&apos;/&gt;

Clever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178862</commentid>
    <comment_count>3</comment_count>
      <attachid>275149</attachid>
    <who name="Jon Davis">jond</who>
    <bug_when>2016-03-29 16:47:16 -0700</bug_when>
    <thetext>Created attachment 275149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178889</commentid>
    <comment_count>4</comment_count>
      <attachid>275149</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-29 17:40:26 -0700</bug_when>
    <thetext>Comment on attachment 275149
Patch

Clearing flags on attachment: 275149

Committed r198816: &lt;http://trac.webkit.org/changeset/198816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178890</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-29 17:40:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275137</attachid>
            <date>2016-03-29 14:46:02 -0700</date>
            <delta_ts>2016-03-29 16:47:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155989-20160329144606.patch</filename>
            <type>text/plain</type>
            <size>34898</size>
            <attacher name="Jon Davis">jond</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Nzg5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IDYyZWRm
ZTEwNThmM2M4MTY1NjZhMDgzMGQ5Mjc5NWZlMTlkNDkwYzcuLjNlN2JlMWNlZDg0NGU5MzRjYTBi
MTA4ZTk5M2Y0MjFiNjc5NWI3NWUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hh
bmdlTG9nCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMg
QEAKIDIwMTYtMDMtMjkgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCisgICAgICAgIEFk
ZCBXZWJLaXQgTmlnaHRseSBBcmNoaXZlcywgV2ViS2l0IE5pZ2h0bHkgU3RhcnQsIGFuZCBEb3du
bG9hZHMgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3AtY29udGVudC9wbHVnaW5zL3N5bmMtbmlnaHRseS1idWlsZHMucGhwOiBBZGRlZC4K
KyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvZG93bmxvYWRzLnBocDogQWRkZWQu
CisgICAgICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L2Z1bmN0aW9ucy5waHA6CisgICAg
ICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L2ltYWdlcy9kb3dubG9hZC5zdmc6CisgICAg
ICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L2ltYWdlcy9zcGlubmVyLnN2ZzogQWRkZWQu
CisgICAgICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L25pZ2h0bHktYXJjaGl2ZXMucGhw
OiBBZGRlZC4KKyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvbmlnaHRseS1zdGFy
dC5waHA6IEFkZGVkLgorICAgICAgICAqIHdwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5
LnBocDoKKyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvc2NyaXB0cy9zZWFyY2hi
dWlsZHMuanM6IEFkZGVkLgorICAgICAgICAoaW5pdHNlYXJjaC54aHJQcm9taXNlLik6CisgICAg
ICAgIChpbml0c2VhcmNoKToKKyAgICAgICAgKGluaXRzZWFyY2guZGlzcGxheVJlc3VsdHMuYWRk
RW50cnkpOgorICAgICAgICAoaW5pdHNlYXJjaC5kaXNwbGF5UmVzdWx0cyk6CisgICAgICAgIChp
bml0c2VhcmNoLmRpc3BsYXlFcnJvcik6CisgICAgICAgIChpbml0c2VhcmNoLmNsZWFyRXJyb3Jz
KToKKyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvc3R5bGUuY3NzOgorICAgICAg
ICAoaW5wdXRbdHlwZT10ZXh0XSk6CisgICAgICAgIChpbnB1dFt0eXBlPXN1Ym1pdF0pOgorICAg
ICAgICAoYXJ0aWNsZSAuYnlsaW5lKToKKyAgICAgICAgKGFydGljbGUgLmFib3ZldGl0bGUpOgor
CisyMDE2LTAzLTI5ICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KKwogICAgICAgICBTdXBw
b3J0IGltYWdlcyBhYm92ZSB0aGUgdGl0bGUgb24gd2Via2l0Lm9yZyBwb3N0cwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1OTc5CiAKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC9wbHVnaW5zL3N5bmMtbmlnaHRseS1i
dWlsZHMucGhwIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3BsdWdpbnMvc3luYy1u
aWdodGx5LWJ1aWxkcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFmNWExNTMzYzY1ZmNjNzk2MjZmMjI0MjRk
N2UyMmNkODNmMzk5NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3At
Y29udGVudC9wbHVnaW5zL3N5bmMtbmlnaHRseS1idWlsZHMucGhwCkBAIC0wLDAgKzEsMTczIEBA
Cis8P3BocAorLyoKK1BsdWdpbiBOYW1lOiBTeW5jIE5pZ2h0bHkgQnVpbGRzCitEZXNjcmlwdGlv
bjogVXBkYXRlcyBXZWJLaXQgbmlnaHRseSBidWlsZCBpbmZvcm1hdGlvbgorVmVyc2lvbjogICAg
IDEuMAorQXV0aG9yOiAgICAgIEpvbmF0aGFuIERhdmlzCitBdXRob3IgVVJJOiAgaHR0cDovL3dl
YmtpdC5vcmcKKyovCisKK1N5bmNXZWJLaXROaWdodGx5QnVpbGRzOjpvYmplY3QoKTsKKworY2xh
c3MgU3luY1dlYktpdE5pZ2h0bHlCdWlsZHMgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgJG9iamVj
dCA9IG51bGw7CisKKyAgICBjb25zdCBNQVhfU0VBUkNIX1JFU1VMVFMgPSA1MDsKKyAgICBjb25z
dCBXRUJLSVRfTklHSFRMWV9BUkNISVZFX1VSTCA9ICdodHRwczovL25pZ2h0bHkud2Via2l0Lm9y
Zy9idWlsZHMvdHJ1bmsvJXMvYWxsJzsKKworICAgIHByaXZhdGUgJGFyY2hpdmVzID0gYXJyYXko
CisgICAgICAgICdtYWMnID0+ICdidWlsZHMuY3N2JywKKyAgICAgICAgJ3NyYycgPT4gJ3NvdXJj
ZS5jc3YnCisgICAgKTsKKworICAgIHByaXZhdGUgJHVwbG9hZHNfZGlyID0gJyc7CisKKyAgICBw
dWJsaWMgc3RhdGljIGZ1bmN0aW9uIG9iamVjdCgpIHsKKyAgICAgICAgaWYgKHNlbGY6OiRvYmpl
Y3QgPT09IG51bGwpCisgICAgICAgICAgICBzZWxmOjokb2JqZWN0ID0gbmV3IHNlbGYoKTsKKyAg
ICAgICAgcmV0dXJuIHNlbGY6OiRvYmplY3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlv
biBfX2NvbnN0cnVjdCgpIHsKKyAgICAgICAgJHVwbG9hZF9kaXJfaW5mbyA9IHdwX3VwbG9hZF9k
aXIoKTsKKyAgICAgICAgJHRoaXMtPnVwbG9hZHNfZGlyID0gdHJhaWxpbmdzbGFzaGl0KCR1cGxv
YWRfZGlyX2luZm9bJ2Jhc2VkaXInXSk7CisKKyAgICAgICAgYWRkX2FjdGlvbiggJ3VwZGF0ZV93
ZWJraXRfbmlnaHRseV9idWlsZHMnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBmb3JlYWNo
ICgkdGhpcy0+YXJjaGl2ZXMgYXMgJGVuZHBvaW50ID0+ICRmaWxlbmFtZSkgeworICAgICAgICAg
ICAgICAgIC8vIERvd25sb2FkIGEgY29weSBvZiB0aGUgYXJjaGl2ZXMKKyAgICAgICAgICAgICAg
ICAkdXJsID0gc3ByaW50ZihzZWxmOjpXRUJLSVRfTklHSFRMWV9BUkNISVZFX1VSTCwgJGVuZHBv
aW50KTsKKworICAgICAgICAgICAgICAgIGlmICghY29weSgkdXJsLCAkdGhpcy0+dXBsb2Fkc19k
aXIuICRmaWxlbmFtZSkpICB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yX2xvZygiQ291bGRu
J3QgZG93bmxvYWQgdGhlICRmaWxlbmFtZSBhcmNoaXZlIGluZGV4LiAoeyRlcnJvcnNbJ3R5cGUn
XX0pIHskZXJyb3JzWydtZXNzYWdlJ119Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9KTsKKworICAgICAgICByZWdpc3Rlcl9hY3RpdmF0aW9uX2hvb2soX19G
SUxFX18sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICghd3BfbmV4dF9zY2hlZHVsZWQo
J3VwZGF0ZV93ZWJraXRfbmlnaHRseV9idWlsZHMnKSkKKyAgICAgICAgICAgICAgICB3cF9zY2hl
ZHVsZV9ldmVudChjdXJyZW50X3RpbWUoJ3RpbWVzdGFtcCcpLCAnaG91cmx5JywgJ3VwZGF0ZV93
ZWJraXRfbmlnaHRseV9idWlsZHMnKTsKKworICAgICAgICAgICAgZG9fYWN0aW9uKCd1cGRhdGVf
d2Via2l0X25pZ2h0bHlfYnVpbGRzJyk7CisgICAgICAgIH0pOworCisKKyAgICAgICAgYWRkX2Fj
dGlvbiggJ3dwX2FqYXhfc2VhcmNoX25pZ2h0bHlfYnVpbGRzJywgYXJyYXkoJHRoaXMsICdzZWFy
Y2gnKSk7CisKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gbGF0ZXN0KCRhcmNoaXZlID0g
J2J1aWxkcycpIHsKKyAgICAgICAgJHJlY29yZHMgPSAkdGhpcy0+cmVjb3JkcygkYXJjaGl2ZSk7
CisgICAgICAgIHJldHVybiAoYXJyYXkpJHJlY29yZHNbMF07CisgICAgfQorCisgICAgcHVibGlj
IGZ1bmN0aW9uIHJlY29yZHMoJGFyY2hpdmUsICRlbnRyaWVzID0gMjUpIHsKKyAgICAgICAgaWYg
KCFpbl9hcnJheSgiJGFyY2hpdmUuY3N2IiwgJHRoaXMtPmFyY2hpdmVzKSkgcmV0dXJuIGFycmF5
KCk7CisKKyAgICAgICAgJGZpbGVuYW1lID0gIiRhcmNoaXZlLmNzdiI7CisgICAgICAgIGlmICgh
ZmlsZV9leGlzdHMoJHRoaXMtPnVwbG9hZHNfZGlyIC4gJy8nIC4gJGZpbGVuYW1lKSkgeworICAg
ICAgICAgICAgZG9fYWN0aW9uKCd1cGRhdGVfd2Via2l0X25pZ2h0bHlfYnVpbGRzJyk7CisgICAg
ICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCR0aGlzLT51cGxvYWRzX2RpciAuICcvJyAuICRmaWxl
bmFtZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCk7CisgICAgICAgIH0KKworICAg
ICAgICAkcmVjb3JkcyA9IGFycmF5KCk7CisgICAgICAgICRyZXNvdXJjZSA9IGZvcGVuKCR0aGlz
LT51cGxvYWRzX2RpciAuICcvJyAuICRmaWxlbmFtZSwgJ3InKTsKKworICAgICAgICBmb3IgKCRp
ID0gMDsgJGkgPCAkZW50cmllczsgJGkrKykgeworICAgICAgICAgICAgJGxpbmUgPSBmZ2V0cygk
cmVzb3VyY2UsIDEyOCk7CisgICAgICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOworICAgICAg
ICAgICAgaWYgKCBlbXB0eSgkbGluZSkgKSBicmVhazsKKyAgICAgICAgICAgIGxpc3QoJGJ1aWxk
LCAkdGltZXN0YW1wLCAkZG93bmxvYWQpID0gZXhwbG9kZSgnLCcsICRsaW5lKTsKKyAgICAgICAg
ICAgICRyZWNvcmRzWyRpXSA9IGFycmF5KCRidWlsZCwgZGF0ZSgiRiBqLCBZIGc6aSBBIiwgJHRp
bWVzdGFtcCkgLiAiIEdNVCIsICRkb3dubG9hZCk7CisgICAgICAgIH0KKyAgICAgICAgZmNsb3Nl
KCRyZXNvdXJjZSk7CisgICAgICAgIHJldHVybiAoYXJyYXkpJHJlY29yZHM7CisgICAgfQorCisg
ICAgcHVibGljIGZ1bmN0aW9uIHNlYXJjaCgpIHsKKyAgICAgICAgLy8gaHR0cDovL3dlYmtpdC5k
ZXYvd3Avd3AtYWRtaW4vYWRtaW4tYWpheC5waHA/YWN0aW9uPXNlYXJjaF9uaWdodGx5X2J1aWxk
cyZzZWFyY2g9MTk0MTQyCisgICAgICAgIC8vIGh0dHA6Ly93ZWJraXQuZGV2L3dwL3dwLWFkbWlu
L2FkbWluLWFqYXgucGhwP2FjdGlvbj1zZWFyY2hfbmlnaHRseV9idWlsZHMmc2VhcmNoPTE5NDEK
KyAgICAgICAgLy8gaHR0cDovL3dlYmtpdC5kZXYvd3Avd3AtYWRtaW4vYWRtaW4tYWpheC5waHA/
YWN0aW9uPXNlYXJjaF9uaWdodGx5X2J1aWxkcyZzZWFyY2g9MTkzNzYwLTE5NDE0MgorICAgICAg
ICAvLyBodHRwOi8vd2Via2l0LmRldi93cC93cC1hZG1pbi9hZG1pbi1hamF4LnBocD9hY3Rpb249
c2VhcmNoX25pZ2h0bHlfYnVpbGRzJnNlYXJjaD0xOTM3NjAKKworICAgICAgICAkbWF4cmVzdWx0
cyA9IHNlbGY6Ok1BWF9TRUFSQ0hfUkVTVUxUUzsKKworICAgICAgICAvLyBDbGVhbiB1cCBzZWFy
Y2ggcXVlcnkKKyAgICAgICAgJHNlYXJjaCA9IHRyaW0oJF9HRVRbJ3F1ZXJ5J10pOworICAgICAg
ICAkc2VhcmNoID0gdHJpbSgkc2VhcmNoLCAnLScpOworICAgICAgICAkc2VhcmNoID0gc3RyX3Jl
cGxhY2UoJ3InLCAnJywgJHNlYXJjaCk7CisKKyAgICAgICAgaWYgKGVtcHR5KCRzZWFyY2gpKSB7
CisgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCcnKTsKKyAgICAgICAgICAgIHdwX2RpZSgp
OworICAgICAgICB9CisKKyAgICAgICAgJHJlY29yZHMgPSAkdGhpcy0+cmVjb3JkcygnYnVpbGRz
JywgMTAwMDAwKTsKKworICAgICAgICAkcmVzdWx0cyA9IGFycmF5KCk7CisgICAgICAgICRtYXRj
aGVzID0gYXJyYXkoKTsKKyAgICAgICAgJGJ1aWxkcyA9IGFycmF5KCk7CisgICAgICAgIGZvcmVh
Y2ggKCRyZWNvcmRzIGFzICRyZWNvcmQpCisgICAgICAgICAgICAkYnVpbGRzW10gPSAkcmVjb3Jk
WzBdOworCisKKyAgICAgICAgJG1ldGhvZHMgPSBhcnJheSgncHJlZml4bWF0Y2gnLCAncmFuZ2Vt
YXRjaCcsICduZWFybWF0Y2gnKTsKKworICAgICAgICAkbWF0Y2hlZCA9IDA7CisgICAgICAgIC8v
IE1hbnVhbCBleGFjdCBtYXRjaCBmb3IgcGVyZm9ybWFuY2UKKyAgICAgICAgJGV4YWN0bWF0Y2gg
PSBhcnJheV9zZWFyY2goJHNlYXJjaCwgJGJ1aWxkcyk7CisgICAgICAgIGlmICgkZXhhY3RtYXRj
aCAhPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICRtYXRjaGVzWydleGFjdG1hdGNoJ11bInIiIC4g
JHJlY29yZHNbJGV4YWN0bWF0Y2hdWzBdXSA9ICRyZWNvcmRzWyRleGFjdG1hdGNoXTsKKyAgICAg
ICAgICAgICRtYXRjaGVkID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvcmVh
Y2ggKCRidWlsZHMgYXMgJGluZGV4ID0+ICRidWlsZCkgeworICAgICAgICAgICAgICAgIGZvcmVh
Y2ggKCRtZXRob2RzIGFzICRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRtYXRj
aGVkID49ICRtYXhyZXN1bHRzKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlz
LT4kbWV0aG9kKCRzZWFyY2gsICRidWlsZHMsICRidWlsZCwgJGluZGV4KSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgJG1hdGNoZXNbJG1ldGhvZF1bInIkYnVpbGQiXSA9ICRyZWNvcmRzWyRp
bmRleF07CisgICAgICAgICAgICAgICAgICAgICAgICAkbWF0Y2hlZCsrOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgLy8gQ29tcGlsZSByZXN1bHRzCisgICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzIGFz
ICRncm91cCkKKyAgICAgICAgICAgICRyZXN1bHRzID0gYXJyYXlfbWVyZ2UoJHJlc3VsdHMsICRn
cm91cCk7CisKKyAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheV92YWx1ZXMoJHJlc3VsdHMp
KTsKKworICAgICAgICB3cF9kaWUoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyBmdW5jdGlvbiBw
cmVmaXhtYXRjaCgkc2VhcmNoLCAmJGJ1aWxkcywgJGJ1aWxkKSB7CisgICAgICAgIHJldHVybiBz
dWJzdHIoJGJ1aWxkLCAwLCBzdHJsZW4oJHNlYXJjaCkpID09ICRzZWFyY2g7CisgICAgfQorCisg
ICAgcHVibGljIGZ1bmN0aW9uIHJhbmdlbWF0Y2goJHNlYXJjaCwgJiRidWlsZHMsICRidWlsZCkg
eworICAgICAgICBpZiAoIHN0cnBvcygkc2VhcmNoLCAnLScpID09PSBmYWxzZSApIHJldHVybiBm
YWxzZTsKKworICAgICAgICAkcmFuZ2VzID0gZXhwbG9kZSgnLScsICRzZWFyY2gpOworICAgICAg
ICAkcmFuZ2VzID0gYXJyYXlfbWFwKCdpbnR2YWwnLCAkcmFuZ2VzKTsKKyAgICAgICAgc29ydCgk
cmFuZ2VzKTsKKyAgICAgICAgbGlzdCgkc3RhcnQsICRlbmQpID0gJHJhbmdlczsKKyAgICAgICAg
JGJ1aWxkID0gaW50dmFsKCRidWlsZCk7CisKKyAgICAgICAgaWYgKCAkZW5kIDwgMSApICRlbmQg
PSBQSFBfSU5UX01BWDsKKworICAgICAgICByZXR1cm4gKCAkYnVpbGQgPj0gJHN0YXJ0ICYmICRi
dWlsZCA8PSAkZW5kICk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIG5lYXJtYXRjaCgk
c2VhcmNoLCAmJGJ1aWxkcywgJGJ1aWxkLCAkaW5kZXgpIHsKKyAgICAgICAgJHRhcmdldCA9IGlu
dHZhbCgkc2VhcmNoKTsKKyAgICAgICAgaWYgKCR0YXJnZXQgPCAxKSByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgJG5ld2VyID0gaXNzZXQoJGJ1aWxkc1sgJGluZGV4IC0gMSBdKSA/ICRidWlsZHNb
ICRpbmRleCAtIDEgXSA6IFBIUF9JTlRfTUFYOworICAgICAgICAkb2xkZXIgPSBpc3NldCgkYnVp
bGRzWyAkaW5kZXggKyAxIF0pID8gJGJ1aWxkc1sgJGluZGV4ICsgMSBdIDogMDsKKworICAgICAg
ICByZXR1cm4gKCAkdGFyZ2V0ID4gJG9sZGVyICYmICR0YXJnZXQgPCAkbmV3ZXIgKTsKKyAgICB9
CisKK30gLy8gZW5kIGNsYXNzIFN5bmNXZWJLaXROaWdodGx5QnVpbGRzClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50
L3RoZW1lcy93ZWJraXQvZG93bmxvYWRzLnBocCBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29u
dGVudC90aGVtZXMvd2Via2l0L2Rvd25sb2Fkcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcwYzVjODVkMzA4
MDVkMTQ5NmVkOThkMmNjY2RhZWRhZGJkMWNlNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVz
L3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L2Rvd25sb2Fkcy5waHAKQEAgLTAs
MCArMSwxMTMgQEAKKzw/cGhwCisvKioKKyAqIFRlbXBsYXRlIE5hbWU6IERvd25sb2FkcworICoq
LworCithZGRfZmlsdGVyKCd0aGVfY29udGVudCcsIGZ1bmN0aW9uICgkY29udGVudCkgeworICAg
ICAgICAKKyAgICAkYnVpbGQgPSBnZXRfbmlnaHRseV9idWlsZCgpOworICAgICRzb3VyY2UgPSBn
ZXRfbmlnaHRseV9zb3VyY2UoKTsKKyAgICAKKyAgICBpZiAoIGVtcHR5KCRidWlsZCkgfHwgZW1w
dHkoJHNvdXJjZSkgKQorICAgICAgICByZXR1cm4gJGNvbnRlbnQ7CisgICAgCisgICAgJGNvbnRl
bnQgPSBzcHJpbnRmKCRjb250ZW50LCAkYnVpbGRbMl0sICRzb3VyY2VbMl0pOworICAgIAorICAg
IHJldHVybiAkY29udGVudDsKK30pOworCithZGRfZmlsdGVyKCd3cF9oZWFkJywgZnVuY3Rpb24o
KSB7ID8+CisKKzxzdHlsZT4KKy5wYWdlLmRvd25sb2FkcyBoMSB7CisgICAgdGV4dC1hbGlnbjog
Y2VudGVyOworICAgIG1hcmdpbi1ib3R0b206IDA7Cit9CisKKy5wYWdlLmRvd25sb2FkcyBibG9j
a3F1b3RlOmZpcnN0LWNoaWxkIHsKKyAgICBjb2xvcjogIzhFOEU5MzsKKyAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7CisgICAgZm9udC1zaXplOiA0cmVtOworICAgIGxpbmUtaGVpZ2h0OiA2cmVtOwor
ICAgIGZvbnQtd2VpZ2h0OiAyMDA7Cit9CisKKy5ib2R5Y29weSA+IGRpdiB7CisgICAgYm94LXNp
emluZzogYm9yZGVyLWJveDsKKyAgICBwYWRkaW5nOiAwIDEuNXJlbSAzcmVtOworICAgIHdpZHRo
OiA1MCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZsb2F0OiBsZWZ0OworfQorCisj
cHJldmlldyB7CisgICAgZmxvYXQ6IG5vbmU7CisgICAgd2lkdGg6IDEwMCU7Cit9CisKKyNuaWdo
dGx5IHsKKyAgICBmbG9hdDogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lk
dGg6IDEwMHZ3OworICAgIGxlZnQ6IDUwJTsKKyAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAl
KTsKKyAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOworICAgIHBhZGRpbmctdG9wOiAzcmVtOworICAg
IGNvbG9yOiAjZmZmZmZmOworfQorCisucGFnZS5kb3dubG9hZHMgaDIgeworICAgIGZvbnQtc2l6
ZTogMy4ycmVtOworfQorCisuZG93bmxvYWRzIC5kb3dubG9hZCB7CisgICAgZm9udC1zaXplOiAz
cmVtOworfQorCitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkyMHB4KSB7CisK
KyAgICAuYm9keWNvcHkgPiBkaXYgeworICAgICAgICBmbG9hdDogbm9uZTsKKyAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgfQorCit9CisKK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZp
Y2Utd2lkdGg6IDc2OHB4KSBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDEzNjZweCkgeworCisgICAg
LmJvZHljb3B5IGRpdiBwOm50aC1jaGlsZCgzKSB7CisgICAgICAgIGRpc3BsYXk6IG5vbmU7Cisg
ICAgfQorCit9CisKK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDcz
NnB4KSB7CisKKyAgICAuYm9keWNvcHkgZGl2IHA6bnRoLWNoaWxkKDMpIHsKKyAgICAgICAgZGlz
cGxheTogbm9uZTsKKyAgICB9CisKK30KKzwvc3R5bGU+CisKKzw/cGhwCit9KTsKKworZ2V0X2hl
YWRlcigpOworPz4KKworCisgICAgPD9waHAgaWYgKGhhdmVfcG9zdHMoKSkgOiB3aGlsZSAoaGF2
ZV9wb3N0cygpKSA6IHRoZV9wb3N0KCk7ID8+CisKKyAgICAgICAgPGFydGljbGUgY2xhc3M9InBh
Z2UgZG93bmxvYWRzIj4KKyAgICAgICAgICAgIDxoMT48YSBocmVmPSI8P3BocCBlY2hvIGdldF9w
ZXJtYWxpbmsoKSA/PiIgcmVsPSJib29rbWFyayIgdGl0bGU9IlBlcm1hbmVudCBMaW5rOiA8P3Bo
cCB0aGVfdGl0bGUoKTsgPz4iPjw/cGhwIHRoZV90aXRsZSgpOyA/PjwvYT48L2gxPgorICAgICAg
ICAgICAgCisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Y29weSI+CisgICAgICAgICAgICAg
ICAgPD9waHAgdGhlX2NvbnRlbnQoJycpOyA/PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAg
ICAgICAKKyAgICAgICAgPC9hcnRpY2xlPgorCisgICAgPD9waHAgZW5kd2hpbGU7IGVuZGlmOyA/
PgorCis8P3BocCBnZXRfZm9vdGVyKCk7ID8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQv
ZnVuY3Rpb25zLnBocCBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Vi
a2l0L2Z1bmN0aW9ucy5waHAKaW5kZXggNmNhMzA4ODA4MWFlZDgzOGU2NGNlNjg2NzJmNTU4NWY0
YmRiMDYzZC4uZTJhNWRkMWZiYzkzYTk2MzkwODcxMWJiNDJiYzE3ZmFkMWI2YmJiNSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvZnVuY3Rp
b25zLnBocAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtp
dC9mdW5jdGlvbnMucGhwCkBAIC0zLDggKzMsNiBAQAogLy8gRGVjbGFyZSB0aGVtZSBmZWF0dXJl
cwogYWRkX3RoZW1lX3N1cHBvcnQoICdwb3N0LXRodW1ibmFpbHMnICk7CiAKLWZ1bmN0aW9uIHJl
Z2lzdGVyX21lbnVzKCkgewotfQogYWRkX2FjdGlvbiggJ2luaXQnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgcmVnaXN0ZXJfbmF2X21lbnUoJ3NpdGUtbmF2JywgX18oICdTaXRlIE5hdmlnYXRpb24nICkp
OwogICAgIHJlZ2lzdGVyX25hdl9tZW51KCdmb290ZXItbmF2JywgX18oICdGb290ZXIgTmF2aWdh
dGlvbicgKSk7CkBAIC0yMiw2ICsyMCw0MSBAQCBmdW5jdGlvbiBtb2RpZnlfY29udGFjdF9tZXRo
b2RzKCRwcm9maWxlX2ZpZWxkcykgewogICAgIHJldHVybiAkcHJvZmlsZV9maWVsZHM7CiB9CiAK
K2Z1bmN0aW9uIGdldF9uaWdodGx5X2J1aWxkICgkdHlwZSA9ICdidWlsZHMnKSB7CisgICAgaWYg
KCFjbGFzc19leGlzdHMoJ1N5bmNXZWJLaXROaWdodGx5QnVpbGRzJykpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKKyAgICAkV2ViS2l0QnVpbGRzID0gU3luY1dlYktpdE5pZ2h0bHlCdWls
ZHM6Om9iamVjdCgpOworICAgICRidWlsZCA9ICRXZWJLaXRCdWlsZHMtPmxhdGVzdCgkdHlwZSk7
CisgICAgcmV0dXJuICRidWlsZDsKK30KKworZnVuY3Rpb24gZ2V0X25pZ2h0bHlfc291cmNlICgp
IHsKKyAgICByZXR1cm4gZ2V0X25pZ2h0bHlfYnVpbGQoJ3NvdXJjZScpOworfQorCitmdW5jdGlv
biBnZXRfbmlnaHRseV9hcmNoaXZlcyAoJGxpbWl0KSB7CisgICAgaWYgKCFjbGFzc19leGlzdHMo
J1N5bmNXZWJLaXROaWdodGx5QnVpbGRzJykpCisgICAgICAgIHJldHVybiBhcnJheSgpOworICAg
IAorICAgICRXZWJLaXRCdWlsZHMgPSBTeW5jV2ViS2l0TmlnaHRseUJ1aWxkczo6b2JqZWN0KCk7
CisgICAgJGJ1aWxkcyA9ICRXZWJLaXRCdWlsZHMtPnJlY29yZHMoJ2J1aWxkcycsICRsaW1pdCk7
CisgICAgcmV0dXJuIChhcnJheSkkYnVpbGRzOworfQorCitmdW5jdGlvbiBnZXRfbmlnaHRseV9i
dWlsZHNfanNvbiAoKSB7CisgICAgaWYgKCFjbGFzc19leGlzdHMoJ1N5bmNXZWJLaXROaWdodGx5
QnVpbGRzJykpCisgICAgICAgIHJldHVybiAnJzsKKworICAgICRXZWJLaXRCdWlsZHMgPSBTeW5j
V2ViS2l0TmlnaHRseUJ1aWxkczo6b2JqZWN0KCk7CisgICAgJHJlY29yZHMgPSAkV2ViS2l0QnVp
bGRzLT5yZWNvcmRzKCdidWlsZHMnLCAxMDAwMDApOworICAgICRidWlsZHMgPSBhcnJheSgpOwor
ICAgIGZvcmVhY2ggKCAkcmVjb3JkcyBhcyAkYnVpbGQgKSB7CisgICAgICAgICRidWlsZHNbXSA9
ICRidWlsZFswXTsKKyAgICB9CisgICAgcmV0dXJuIChzdHJpbmcpanNvbl9lbmNvZGUoJGJ1aWxk
cyk7Cit9CisKIGFkZF9maWx0ZXIoJ3VzZXJfY29udGFjdG1ldGhvZHMnLCBmdW5jdGlvbiAoJGZp
ZWxkcykgewogICAgIC8vIEFkZCBUd2l0dGVyIGZpZWxkIHRvIHVzZXIgcHJvZmlsZXMKICAgICAk
ZmllbGRzWyd0d2l0dGVyJ10gPSAnVHdpdHRlciBIYW5kbGUnOwpAQCAtNDUsNiArNzgsMjEgQEAg
YWRkX2FjdGlvbignaW5pdCcsIGZ1bmN0aW9uICgpIHsKICAgICApKTsKIH0gKTsKIAorLy8gU3Rh
cnQgUGFnZSBpbnRlcm5hbCByZXdyaXRlIGhhbmRsaW5nCithZGRfYWN0aW9uKCdhZnRlcl9zZXR1
cF90aGVtZScsIGZ1bmN0aW9uICgpIHsKKyAgICBhZGRfcmV3cml0ZV9ydWxlKAorICAgICAgICAn
bmlnaHRseS9zdGFydC8oW14vXSspLyhbMC05XSspLz8kJywKKyAgICAgICAgJ2luZGV4LnBocD9w
YWdlbmFtZT1uaWdodGx5L3N0YXJ0Jm5pZ2h0bHlfYnJhbmNoPSRtYXRjaGVzWzFdJm5pZ2h0bHlf
YnVpbGQ9JG1hdGNoZXNbMl0nLAorICAgICAgICAndG9wJworICAgICk7Cit9KTsKKworYWRkX2Zp
bHRlcigncXVlcnlfdmFycycsIGZ1bmN0aW9uKCAkcXVlcnlfdmFycyApIHsKKyAgICAkcXVlcnlf
dmFyc1tdID0gJ25pZ2h0bHlfYnVpbGQnOworICAgICRxdWVyeV92YXJzW10gPSAnbmlnaHRseV9i
cmFuY2gnOworICAgIHJldHVybiAkcXVlcnlfdmFyczsKK30pOworCiBhZGRfZmlsdGVyKCd0aGVf
dGl0bGUnLCBmdW5jdGlvbiggJHRpdGxlICkgewogICAgIGlmICggaXNfYWRtaW4oKSApIHJldHVy
biAkdGl0bGU7CiAgICAgJHRpdGxlID0gc3RyX3JlcGxhY2UoIjogIiwgIjo8YnI+IiwgJHRpdGxl
KTsKQEAgLTc0LDYgKzEyMiw3IEBAIGFkZF9hY3Rpb24oJ3dwX2hlYWQnLCBmdW5jdGlvbiAoKSB7
CiAKIGFkZF9hY3Rpb24oJ3RoZV9wb3N0JywgZnVuY3Rpb24oJHBvc3QpIHsKICAgICBnbG9iYWwg
JHBhZ2VzOworCiAgICAgaWYgKCFpc19zaW5nbGUoKSkgcmV0dXJuOwogCiAgICAgJGNvbnRlbnQg
PSAkcG9zdC0+cG9zdF9jb250ZW50OwpAQCAtOTksMTAgKzE0OCw3IEBAIGFkZF9maWx0ZXIoJ3By
ZV9nZXRfcG9zdHMnLCBmdW5jdGlvbiAoJHF1ZXJ5KSB7CiAgICAgcmV0dXJuICRxdWVyeTsKIH0p
OwogCi1pbmNsdWRlKCd3aWRnZXRzL3Bvc3QucGhwJyk7Ci1pbmNsdWRlKCd3aWRnZXRzL2ljb24u
cGhwJyk7Ci1pbmNsdWRlKCd3aWRnZXRzL3R3aXR0ZXIucGhwJyk7Ci1pbmNsdWRlKCd3aWRnZXRz
L3BhZ2UucGhwJyk7CisvLyByZW1vdmVfZmlsdGVyKCd0aGVfY29udGVudCcsICd3cGF1dG9wJyk7
CiAKIGFkZF9maWx0ZXIoICdnZXRfdGhlX2V4Y2VycHQnLCBmdW5jdGlvbiggJGV4Y2VycHQgKSB7
CiAgICAgJHNlbnRlbmNlcyA9IHByZWdfc3BsaXQoICcvKFwufCF8XD8pXHMvJywgJGV4Y2VycHQs
IDIsIFBSRUdfU1BMSVRfREVMSU1fQ0FQVFVSRSApOwpAQCAtMTE0LDYgKzE2MCwxMSBAQCBhZGRf
ZmlsdGVyKCAnZ2V0X3RoZV9leGNlcnB0JywgZnVuY3Rpb24oICRleGNlcnB0ICkgewogCiB9KTsK
IAoraW5jbHVkZSgnd2lkZ2V0cy9wb3N0LnBocCcpOworaW5jbHVkZSgnd2lkZ2V0cy9pY29uLnBo
cCcpOworaW5jbHVkZSgnd2lkZ2V0cy90d2l0dGVyLnBocCcpOworaW5jbHVkZSgnd2lkZ2V0cy9w
YWdlLnBocCcpOworCiBmdW5jdGlvbiB0YWJsZV9vZl9jb250ZW50cygpIHsKICAgICBpZiAoIGNs
YXNzX2V4aXN0cygnV2ViS2l0VGFibGVPZkNvbnRlbnRzJykgKQogICAgICAgICBXZWJLaXRUYWJs
ZU9mQ29udGVudHM6Om1hcmt1cCgpOwpAQCAtMTY0LDYgKzIxNSw5IEBAIGZ1bmN0aW9uIHRhZ19w
b3N0X2ltYWdlX2x1bWluYW5jZSggJHBvc3RfaWQgKSB7CiB9CiAKIGZ1bmN0aW9uIGNhbGN1bGF0
ZV9pbWFnZV9sdW1pbmFuY2UoJGltYWdlX3VybCkgeworICAgIGlmICghZnVuY3Rpb25fZXhpc3Rz
KCdJbWFnZUNyZWF0ZUZyb21TdHJpbmcnKSkKKyAgICAgICAgcmV0dXJuIDE7CisKICAgICAvLyBH
ZXQgb3JpZ2luYWwgaW1hZ2UgZGltZW5zaW9ucwogICAgICRzaXplID0gZ2V0aW1hZ2VzaXplKCRp
bWFnZV91cmwpOwogCkBAIC0yMjgsOCArMjgyLDYgQEAgYWRkX2ZpbHRlcigncHJldmlvdXNfcG9z
dF9saW5rJywgZnVuY3Rpb24gKCAkZm9ybWF0ICkgewogICAgIHJldHVybiBzdHJfcmVwbGFjZSgn
aHJlZj0nLCAnY2xhc3M9InBhZ2UtbnVtYmVycyBwcmV2LXBvc3QiIGhyZWY9JywgJGZvcm1hdCk7
CiB9KTsKIAotCi0KIC8vIFF1ZXVlIGdsb2JhbCBzY3JpcHRzCiBhZGRfYWN0aW9uKCAnd3BfZW5x
dWV1ZV9zY3JpcHRzJywgZnVuY3Rpb24gKCkgewogICAgIHdwX3JlZ2lzdGVyX3NjcmlwdCgKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L2lt
YWdlcy9kb3dubG9hZC5zdmcgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVz
L3dlYmtpdC9pbWFnZXMvZG93bmxvYWQuc3ZnCmluZGV4IGY1ZWQyZmY2YWYzM2E3MTY3ZmU5OWU1
ZWMzZTUyNzU2ZmZlZjAwODUuLjRmOTkwMzBmZjMxNjM1NzgxM2VjYTBhYTI1MGY4ZjA4MTQzYjI5
OWQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Vi
a2l0L2ltYWdlcy9kb3dubG9hZC5zdmcKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250
ZW50L3RoZW1lcy93ZWJraXQvaW1hZ2VzL2Rvd25sb2FkLnN2ZwpAQCAtMSw4ICsxLDggQEAKIDw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiA8IS0tIENvcHlyaWdodCDCqSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CiA8c3ZnIHZpZXdCb3g9IjAg
MCA0NyA0NyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
PgotICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxs
PSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiID4KLSAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0x
IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjMiIGN4PSIyMy41IiBjeT0iMjMuNSIgcj0i
MjEuNSIvPgotICAgICAgICA8cGF0aCBkPSJNIDIxLjkwMDAyNDQgMzEuOTI5NTQ4NiBMIDExLjk3
MDQ3NTggMjIgTCAxMCAyMy45Njg3ODczIEwgMjMuMzk4MjIyMiAzNy4zNjg2OTggTCAzNi43OTMw
Njc1IDIzLjk2ODc4NzMgTCAzNC44MjI1OTE3IDIyIEwgMjQuOTAwMDI0NCAzMS45MjU1MDAzIEwg
MjQuOTAwMDI0NCAxMS41IEwgMjQuOTAwMDI0NCAxMCBMIDIxLjkwMDAyNDQgMTAgTCAyMS45MDAw
MjQ0IDExLjUgTCAyMS45MDAwMjQ0IDMxLjkyOTU0ODYgTCAyMS45MDAwMjQ0IDMxLjkyOTU0ODYg
WiIgZmlsbD0id2hpdGUiLz4KKyAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIg
ZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiA+CisgICAgICAgIDxjaXJjbGUgc3Ryb2tl
PSIjMDA4OGNjIiBzdHJva2Utd2lkdGg9IjMiIGN4PSIyMy41IiBjeT0iMjMuNSIgcj0iMjEuNSIv
PgorICAgICAgICA8cGF0aCBkPSJNIDIxLjkwMDAyNDQgMzEuOTI5NTQ4NiBMIDExLjk3MDQ3NTgg
MjIgTCAxMCAyMy45Njg3ODczIEwgMjMuMzk4MjIyMiAzNy4zNjg2OTggTCAzNi43OTMwNjc1IDIz
Ljk2ODc4NzMgTCAzNC44MjI1OTE3IDIyIEwgMjQuOTAwMDI0NCAzMS45MjU1MDAzIEwgMjQuOTAw
MDI0NCAxMS41IEwgMjQuOTAwMDI0NCAxMCBMIDIxLjkwMDAyNDQgMTAgTCAyMS45MDAwMjQ0IDEx
LjUgTCAyMS45MDAwMjQ0IDMxLjkyOTU0ODYgTCAyMS45MDAwMjQ0IDMxLjkyOTU0ODYgWiIgZmls
bD0iIzAwODhjYyIvPgogICAgIDwvZz4KIDwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Vi
a2l0L2ltYWdlcy9zcGlubmVyLnN2ZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90
aGVtZXMvd2Via2l0L2ltYWdlcy9zcGlubmVyLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2FmZWQ3NTZkNTU5
YjIxYjE4N2IwYWZmODczZjJkMjUxODU0ODA2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMv
d2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvaW1hZ2VzL3NwaW5uZXIuc3ZnCkBA
IC0wLDAgKzEsMzkgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2
aWV3Qm94PSIwIDAgMTAwIDEwMCIgaWQ9InNlYXJjaC1zcGlubmVyIj4KKwk8cmVjdCB4PSIwIiB5
PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibm9uZSI+PC9yZWN0PgorCTxyZWN0
IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzMuNScgcnk9JzMuNScg
ZmlsbD0nYmxhY2snIHRyYW5zZm9ybT0ncm90YXRlKDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkn
PiAgCisJCTxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9J29wYWNpdHknIGZyb209JzEnIHRvPScwJyBk
dXI9JzFzJyBiZWdpbj0nMHMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJy8+CisJPC9yZWN0Pgor
CTxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzMuNScgcnk9
JzMuNScgZmlsbD0nYmxhY2snIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUo
MCAtMzApJz4gIAorCQk8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSdvcGFjaXR5JyBmcm9tPScxJyB0
bz0nMCcgZHVyPScxcycgYmVnaW49JzAuMDgzMzMzMzMzMzMzMzMzMzNzJyByZXBlYXRDb3VudD0n
aW5kZWZpbml0ZScvPgorCTwvcmVjdD4KKwk8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9Jzcn
IGhlaWdodD0nMjAnIHJ4PSczLjUnIHJ5PSczLjUnIGZpbGw9J2JsYWNrJyB0cmFuc2Zvcm09J3Jv
dGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+ICAKKwkJPGFuaW1hdGUgYXR0cmlidXRl
TmFtZT0nb3BhY2l0eScgZnJvbT0nMScgdG89JzAnIGR1cj0nMXMnIGJlZ2luPScwLjE2NjY2NjY2
NjY2NjY2NjY2cycgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KKwk8L3JlY3Q+CisJPHJlY3Qg
eD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nMy41JyByeT0nMy41JyBm
aWxsPSdibGFjaycgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkn
PiAgCisJCTxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9J29wYWNpdHknIGZyb209JzEnIHRvPScwJyBk
dXI9JzFzJyBiZWdpbj0nMC4yNXMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJy8+CisJPC9yZWN0
PgorCTxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzMuNScg
cnk9JzMuNScgZmlsbD0nYmxhY2snIHRyYW5zZm9ybT0ncm90YXRlKDEyMCA1MCA1MCkgdHJhbnNs
YXRlKDAgLTMwKSc+ICAKKwkJPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0nb3BhY2l0eScgZnJvbT0n
MScgdG89JzAnIGR1cj0nMXMnIGJlZ2luPScwLjMzMzMzMzMzMzMzMzMzMzNzJyByZXBlYXRDb3Vu
dD0naW5kZWZpbml0ZScvPgorCTwvcmVjdD4KKwk8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9
JzcnIGhlaWdodD0nMjAnIHJ4PSczLjUnIHJ5PSczLjUnIGZpbGw9J2JsYWNrJyB0cmFuc2Zvcm09
J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPiAgCisJCTxhbmltYXRlIGF0dHJp
YnV0ZU5hbWU9J29wYWNpdHknIGZyb209JzEnIHRvPScwJyBkdXI9JzFzJyBiZWdpbj0nMC40MTY2
NjY2NjY2NjY2NjY3cycgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KKwk8L3JlY3Q+CisJPHJl
Y3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nMy41JyByeT0nMy41
JyBmaWxsPSdibGFjaycgdHJhbnNmb3JtPSdyb3RhdGUoMTgwIDUwIDUwKSB0cmFuc2xhdGUoMCAt
MzApJz4gIAorCQk8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSdvcGFjaXR5JyBmcm9tPScxJyB0bz0n
MCcgZHVyPScxcycgYmVnaW49JzAuNXMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJy8+CisJPC9y
ZWN0PgorCTxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzMu
NScgcnk9JzMuNScgZmlsbD0nYmxhY2snIHRyYW5zZm9ybT0ncm90YXRlKDIxMCA1MCA1MCkgdHJh
bnNsYXRlKDAgLTMwKSc+ICAKKwkJPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0nb3BhY2l0eScgZnJv
bT0nMScgdG89JzAnIGR1cj0nMXMnIGJlZ2luPScwLjU4MzMzMzMzMzMzMzMzMzRzJyByZXBlYXRD
b3VudD0naW5kZWZpbml0ZScvPgorCTwvcmVjdD4KKwk8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lk
dGg9JzcnIGhlaWdodD0nMjAnIHJ4PSczLjUnIHJ5PSczLjUnIGZpbGw9J2JsYWNrJyB0cmFuc2Zv
cm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPiAgCisJCTxhbmltYXRlIGF0
dHJpYnV0ZU5hbWU9J29wYWNpdHknIGZyb209JzEnIHRvPScwJyBkdXI9JzFzJyBiZWdpbj0nMC42
NjY2NjY2NjY2NjY2NjY2cycgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KKwk8L3JlY3Q+CisJ
PHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nMy41JyByeT0n
My41JyBmaWxsPSdibGFjaycgdHJhbnNmb3JtPSdyb3RhdGUoMjcwIDUwIDUwKSB0cmFuc2xhdGUo
MCAtMzApJz4gIAorCQk8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSdvcGFjaXR5JyBmcm9tPScxJyB0
bz0nMCcgZHVyPScxcycgYmVnaW49JzAuNzVzJyByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgor
CTwvcmVjdD4KKwk8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4
PSczLjUnIHJ5PSczLjUnIGZpbGw9J2JsYWNrJyB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTAp
IHRyYW5zbGF0ZSgwIC0zMCknPiAgCisJCTxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9J29wYWNpdHkn
IGZyb209JzEnIHRvPScwJyBkdXI9JzFzJyBiZWdpbj0nMC44MzMzMzMzMzMzMzMzMzM0cycgcmVw
ZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KKwk8L3JlY3Q+CisJPHJlY3QgeD0nNDYuNScgeT0nNDAn
IHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nMy41JyByeT0nMy41JyBmaWxsPSdibGFjaycgdHJh
bnNmb3JtPSdyb3RhdGUoMzMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4gIAorCQk8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSdvcGFjaXR5JyBmcm9tPScxJyB0bz0nMCcgZHVyPScxcycgYmVnaW49
JzAuOTE2NjY2NjY2NjY2NjY2NnMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJy8+CisJPC9yZWN0
PgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvbmlnaHRseS1hcmNoaXZlcy5w
aHAgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5
LWFyY2hpdmVzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWE4YjRiM2UwYTU0OTQ0NjUxZjYzMGI3ODFlYmIz
MjE4MWM3OTk2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250
ZW50L3RoZW1lcy93ZWJraXQvbmlnaHRseS1hcmNoaXZlcy5waHAKQEAgLTAsMCArMSwxNTYgQEAK
Kzw/cGhwCisvKioKKyAqIFRlbXBsYXRlIE5hbWU6IE5pZ2h0bHkgQXJjaGl2ZXMKKyAqKi8KKwor
JGZpcnN0X2J1aWxkID0gMTE5OTQ7CiskbmlnaHRseV9idWlsZCA9IGdldF9uaWdodGx5X2J1aWxk
KCk7CiskbGF0ZXN0X2J1aWxkID0gJG5pZ2h0bHlfYnVpbGRbMF07CisKK2FkZF9hY3Rpb24oJ3dw
X2hlYWQnLCBmdW5jdGlvbigpIHsgPz4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisgICAgdmFyIGFqYXh1cmwgPSAnPD9waHAgZWNobyBhZG1pbl91cmwoJ2FkbWluLWFqYXgu
cGhwJyk7ID8+JzsKKyAgICA8L3NjcmlwdD4KKzw/cGhwCit9KTsKKworYWRkX2ZpbHRlcigndGhl
X2NvbnRlbnQnLCBmdW5jdGlvbiAoJGNvbnRlbnQpIHsKKworICAgICRhcmNoaXZlcyA9IGdldF9u
aWdodGx5X2FyY2hpdmVzKDYwKTsKKworICAgIG9iX3N0YXJ0KCk7CisgICAgZm9yZWFjaCAoJGFy
Y2hpdmVzIGFzICRyZWNvcmQpOiA/PgorPGxpPgorICAgIDxhIGhyZWY9Ijw/cGhwIGVjaG8gZXNj
X3VybCgkcmVjb3JkWzJdKTsgPz4iPjw/cGhwIGVjaG8gInIiIC4gJHJlY29yZFswXTsgPz48L2E+
IDxzcGFuIGNsYXNzPSJkYXRlIj48P3BocCBlY2hvICRyZWNvcmRbMV07ID8+PC9zcGFuPgorPC9s
aT4KKzw/cGhwIGVuZGZvcmVhY2g7CisgICAgJGxpc3QgPSBvYl9nZXRfY2xlYW4oKTsKKworICAg
ICRjb250ZW50ID0gIjxkaXYgaWQ9XCJzZWFyY2gtZXJyb3JzXCI+PC9kaXY+PGRpdiBpZD1cInNl
YXJjaC1yZXN1bHRzXCIgY2xhc3M9XCJtdWx0aS1jb2x1bW5cIj48dWw+JGxpc3Q8L3VsPjwvZGl2
PiI7CisKKyAgICByZXR1cm4gJGNvbnRlbnQ7Cit9KTsKKworYWRkX2FjdGlvbiggJ3dwX2VucXVl
dWVfc2NyaXB0cycsIGZ1bmN0aW9uKCkgeworICAgIHdwX2VucXVldWVfc2NyaXB0KCAnc2VhcmNo
YnVpbGRzJywgZ2V0X3RlbXBsYXRlX2RpcmVjdG9yeV91cmkoKSAuICcvc2NyaXB0cy9zZWFyY2hi
dWlsZHMuanMnLCBhcnJheSgpLCAnMS4wLjAnLCB0cnVlICk7Cit9KTsKKworZ2V0X2hlYWRlcigp
OworPz4KKzxzdHlsZT4KKyNhcmNoaXZlcyBoMSB7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOwor
ICAgIG1hcmdpbi10b3A6IDNyZW07Cit9CisKKyNhcmNoaXZlcyBoMSBpbWcgeworICAgIG1hcmdp
bi1ib3R0b206IDFyZW07Cit9CisKKyNkb3dubG9hZHMgYmxvY2txdW90ZTpmaXJzdC1jaGlsZCB7
CisgICAgY29sb3I6ICM4RThFOTM7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQt
c2l6ZTogNHJlbTsKKyAgICBsaW5lLWhlaWdodDogNnJlbTsKKyAgICBmb250LXdlaWdodDogMjAw
OworfQorCisjZG93bmxvYWRzIC5ib2R5Y29weSA+IGRpdiB7CisgICAgYm94LXNpemluZzogYm9y
ZGVyLWJveDsKKyAgICBwYWRkaW5nOiAwIDEuNXJlbSAzcmVtOworICAgIHdpZHRoOiA1MCU7Cisg
ICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZsb2F0OiBsZWZ0OworfQorCisjZG93bmxvYWRz
IGgyIHsKKyAgICBmb250LXNpemU6IDMuMnJlbTsKK30KKworbGkgYSB7CisgICAgZGlzcGxheTog
YmxvY2s7CisgICAgbGluZS1oZWlnaHQ6IDJyZW07Cit9CisKK2xpIHNwYW4geworICAgIGZvbnQt
c2l6ZTogMS42cmVtOworICAgIGNvbG9yOiAjOEU4RTkzOworfQorCisubXVsdGktY29sdW1uIHsK
KyAgICAtd2Via2l0LWNvbHVtbi1jb3VudDozOworICAgIC1tb3otY29sdW1uLWNvdW50OjM7Cisg
ICAgY29sdW1uLWNvdW50OjM7CisgICAgLXdlYmtpdC1jb2x1bW4tZ2FwOjNyZW07CisgICAgLW1v
ei1jb2x1bW4tZ2FwOjNyZW07CisgICAgY29sdW1uLWdhcDozcmVtOworICAgIGNvbHVtbnM6MzsK
K30KKworLmJvZHljb3B5IHVsIHsKKyAgICBsaXN0LXN0eWxlOiBub25lOworICAgIG1hcmdpbjog
MDsKKyAgICBwYWRkaW5nOiAwOworfQorCisuYm9keWNvcHkgdWwgPiBsaSB7CisgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgIHdpZHRoOiAxMDAlOworICAgIG1hcmdpbi1ib3R0b206IDNy
ZW07Cit9CisKKy5ib2R5Y29weSAuc2VhcmNoIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisuc2VhcmNoIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7Cit9CisKKy5zZWFyY2ggaW5wdXQgeworICAgICB3aWR0aDogNjAlOworfQorCisjc2Vh
cmNoLXNwaW5uZXIgeworICAgIGxlZnQ6IC00LjVyZW07CisgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIHdpZHRoOiAzcmVtOworICAgIGhlaWdodDogM3JlbTsKKyAgICBwYWRkaW5nOiAwLjVy
ZW07CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworfQorCisjc2VhcmNoLXNwaW5uZXIuc2VhcmNo
aW5nIHsKKyAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOworfQorCis8L3N0eWxlPgorCisgICAgPD9w
aHAgaWYgKGhhdmVfcG9zdHMoKSkgOiB3aGlsZSAoaGF2ZV9wb3N0cygpKSA6IHRoZV9wb3N0KCk7
ID8+CisKKyAgICAgICAgPGFydGljbGUgY2xhc3M9InBhZ2UiIGlkPSJhcmNoaXZlcyI+CisKKyAg
ICAgICAgICAgIDxoMT48aW1nIHNyYz0iL3dwLWNvbnRlbnQvdXBsb2Fkcy9XZWJLaXROaWdodGx5
XzUxMng1MTJAMngtMTUweDE1MC5wbmciIGFsdD0iV2ViS2l0TmlnaHRseV81MTJ4NTEyQDJ4IiB3
aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgY2xhc3M9ImFsaWduY2VudGVyIHNpemUtdGh1bWJuYWls
IHdwLWltYWdlLTYwMTMiIHNyY3NldD0iL3dwLWNvbnRlbnQvdXBsb2Fkcy9XZWJLaXROaWdodGx5
XzUxMng1MTJAMngtMTUweDE1MC5wbmcgMTUwdywgL3dwLWNvbnRlbnQvdXBsb2Fkcy9XZWJLaXRO
aWdodGx5XzUxMng1MTJAMngtMzAweDMwMC5wbmcgMzAwdywgL3dwLWNvbnRlbnQvdXBsb2Fkcy9X
ZWJLaXROaWdodGx5XzUxMng1MTJAMngtNzY4eDc2OC5wbmcgNzY4dywgL3dwLWNvbnRlbnQvdXBs
b2Fkcy9XZWJLaXROaWdodGx5XzUxMng1MTJAMngucG5nIDEwMjR3IiBzaXplcz0iKG1heC13aWR0
aDogMTUwcHgpIDEwMHZ3LCAxNTBweCIgLz48YSBocmVmPSI8P3BocCBlY2hvIGdldF9wZXJtYWxp
bmsoKSA/PiIgcmVsPSJib29rbWFyayIgdGl0bGU9IlBlcm1hbmVudCBMaW5rOiA8P3BocCB0aGVf
dGl0bGUoKTsgPz4iPjw/cGhwIHRoZV90aXRsZSgpOyA/PjwvYT48L2gxPgorCisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJib2R5Y29weSI+CisgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRuaWdo
dGx5X2J1aWxkID4gMCk6ID8+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4K
KyAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFy
Y2ggYnVpbGRzOiA8P3BocCBlY2hvIGVzY19hdHRyKCRmaXJzdF9idWlsZCk7ID8+LTw/cGhwIGVj
aG8gZXNjX2F0dHIoJGxhdGVzdF9idWlsZCk7ID8+IiBjbGFzcz0iYnVpbGRzZWFyY2giPgorICAg
ICAgICAgICAgICAgICAgICA8P3BocCBpbmNsdWRlKCdpbWFnZXMvc3Bpbm5lci5zdmcnKTsgPz4K
KyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA/Pgor
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMj5FcnJvcjwvaDI+IDxwPlRoZXJl
IHdhcyBhbiBwcm9ibGVtIGxvYWRpbmcgdGhlIGJ1aWxkIGFyY2hpdmUgZGF0YS48L3A+PC9kaXY+
CisgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CisgICAgICAgICAgICAgICAgPD9waHAg
dGhlX2NvbnRlbnQoKTsgPz4KKyAgICAgICAgICAgIDwvZGl2PgorCisgICAgICAgIDwvYXJ0aWNs
ZT4KKworICAgIDw/cGhwIGVuZHdoaWxlOyBlbmRpZjsgPz4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorICAgIHZhciBidWlsZHMgPSA8P3BocCBlY2hvIGdldF9uaWdodGx5X2J1
aWxkc19qc29uKCk7ID8+OworPC9zY3JpcHQ+CisKKzw/cGhwIGdldF9mb290ZXIoKTsgPz4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQub3Jn
L3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LXN0YXJ0LnBocCBiL1dlYnNpdGVzL3dl
YmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L25pZ2h0bHktc3RhcnQucGhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxNDhhMmJmNDdjNDg2MjA2NjYxZTNiZDQzOGViMDQ4M2QxNTAyYTkKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9u
aWdodGx5LXN0YXJ0LnBocApAQCAtMCwwICsxLDEzMiBAQAorPD9waHAKKy8qKgorICogVGVtcGxh
dGUgTmFtZTogTmlnaHRseSBTdGFydCBQYWdlCisgKiovCisKKyRsYXRlc3RfbmlnaHRseV9idWls
ZCA9IGdldF9uaWdodGx5X2J1aWxkKCk7CiskbGF0ZXN0ID0gaW50dmFsKCRsYXRlc3RfbmlnaHRs
eV9idWlsZFswXSk7CisKKyRicmFuY2ggPSBnZXRfcXVlcnlfdmFyKCduaWdodGx5X2JyYW5jaCcp
OworJGJ1aWxkID0gaW50dmFsKGdldF9xdWVyeV92YXIoJ25pZ2h0bHlfYnVpbGQnKSk7CisKK2lm
ICgkYnVpbGQgPCAxMTk3NiB8fCBlbXB0eSgkYnJhbmNoKSkKKyAgICBoZWFkZXIoJ0xvY2F0aW9u
OiAvbm90LWZvdW5kJyk7CisKK2dldF9oZWFkZXIoKTsKKworCithZGRfZmlsdGVyKCd0aGVfY29u
dGVudCcsIGZ1bmN0aW9uICgkY29udGVudCkgeworICAgICRicmFuY2ggPSBnZXRfcXVlcnlfdmFy
KCduaWdodGx5X2JyYW5jaCcpOworICAgICRidWlsZCA9IGludHZhbChnZXRfcXVlcnlfdmFyKCdu
aWdodGx5X2J1aWxkJykpOworCisgICAgJGNvbnRlbnQgPSBzcHJpbnRmKCRjb250ZW50LCAiciRi
dWlsZCIsICRicmFuY2gpOworICAgIAorICAgIGlmIChlbXB0eSgkYnVpbGQpKQorICAgICAgICAk
Y29udGVudCA9IHN0cl9yZXBsYWNlKCdSdW5uaW5nIGJ1aWxkIHIwJywgJycsICRjb250ZW50KTsK
KyAgICAKKyAgICByZXR1cm4gJGNvbnRlbnQ7CisKK30pOworPz4KKzxzdHlsZT4KK2JvZHkgewor
ICAgIGJhY2tncm91bmQ6ICMzMzMzMzM7Cit9CisKKyNuaWdodGx5IHsKKyAgICBtYXJnaW46IDZy
ZW0gYXV0bzsKKyAgICBjb2xvcjogI2ZmZmZmZjsKK30KKworI25pZ2h0bHkgaDEgeworICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKKyAgICBtYXJnaW4tYm90dG9tOiAwOworICAgIGNvbG9yOiAjZmZm
ZmZmOworICAgIGZvbnQtd2VpZ2h0OiAxMDA7CisgICAgZm9udC1zaXplOiA5cmVtOworICAgIGxp
bmUtaGVpZ2h0OiA5cmVtOworICAgIG1hcmdpbi10b3A6IDA7Cit9CisKKyNuaWdodGx5IGgxICsg
YmxvY2txdW90ZSB7CisgICAgY29sb3I6ICNGRUM4NEM7CisgICAgdGV4dC1hbGlnbjogY2VudGVy
OworICAgIGZvbnQtc2l6ZTogM3JlbTsKKyAgICBsaW5lLWhlaWdodDogNC4ycmVtOworICAgIGZv
bnQtd2VpZ2h0OiAyMDA7Cit9CisKKyNuaWdodGx5IGltZyB7CisgICAgd2lkdGg6IDMzJTsKK30K
KworI25pZ2h0bHkgLmJvZHljb3B5ID4gcDpudGgtY2hpbGQoMykgeworICAgIHRleHQtYWxpZ246
IHJpZ2h0OworfQorCisjbmlnaHRseSBibG9ja3F1b3RlOmZpcnN0LWNoaWxkIHAgeworICAgIGNv
bG9yOiAjRkZEMTVFOworfQorCisjbmlnaHRseSBhIHsKKyAgICBjb2xvcjogI2VkZDI5MTsKK30K
KworI25pZ2h0bHkgYTpob3ZlciB7CisgICAgY29sb3I6ICNmZmZmZmY7Cit9CisKKyNuaWdodGx5
IGEuZG93bmxvYWQgeworICAgIGNvbG9yOiAjZmZmZmZmOworICAgIGZvbnQtc2l6ZTogM3JlbTsK
K30KKworaHIgeworICAgIGJvcmRlci1jb2xvcjogIzc3Nzc3NzsKK30KKworI2Zvb3Rlci1uYXYg
YSB7CisgICAgY29sb3I6ICM5OTk5OTk7Cit9CisKKy51cGRhdGUtbmFnIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjRkY5RDAwOworICAgIGNvbG9yOiAjMDAwMDAwOworICAgIHdpZHRoOiAxMDB2
dzsKKyAgICBsZWZ0OiA1MCU7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRyYW5zZm9y
bTogdHJhbnNsYXRlKC01MHZ3KTsKKyAgICBwYWRkaW5nOiAxLjVyZW07CisgICAgcGFkZGluZy10
b3A6IDE0LjVyZW07CisgICAgdG9wOiAwOworfQorCisudXBkYXRlLW5hZyBwIHsKKyAgICB0ZXh0
LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAycmVtOworfQorCisudXBkYXRlLW5hZyAr
ICNuaWdodGx5IHsKKyAgICBtYXJnaW4tdG9wOiA5cmVtOworfQorCis8L3N0eWxlPgorPD9waHAg
aWYgKCAoaW50KSRidWlsZCA8IChpbnQpJGxhdGVzdCApOiA/PgorPGRpdiBjbGFzcz0idXBkYXRl
LW5hZyI+CisgICAgPHA+PD9waHAgJHByb21wdF9tZXRhID0gZ2V0X3Bvc3RfbWV0YShnZXRfdGhl
X0lEKCksICdwcm9tcHQnKTsgZWNobyBlc2NfaHRtbCgkcHJvbXB0X21ldGFbMF0pOyA/PjwvcD4K
KzwvZGl2PgorPD9waHAgZW5kaWY7ID8+CisKKyAgICA8P3BocCBpZiAoaGF2ZV9wb3N0cygpKSA6
IHdoaWxlIChoYXZlX3Bvc3RzKCkpIDogdGhlX3Bvc3QoKTsgPz4KKworICAgICAgICA8YXJ0aWNs
ZSBjbGFzcz0icGFnZSIgaWQ9Im5pZ2h0bHkiPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJib2R5Y29weSI+CisgICAgICAgICAgICAgICAgPD9waHAgdGhlX2NvbnRlbnQo
JycpOyA/PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAKKyAgICAgICAgPC9hcnRp
Y2xlPgorCisgICAgPD9waHAgZW5kd2hpbGU7IGVuZGlmOyA/PgorCis8P3BocCBnZXRfZm9vdGVy
KCk7ID8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
d2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvbmlnaHRseS5waHAgYi9XZWJzaXRl
cy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LnBocAppbmRleCBm
OWFmYmE4ZTk1MjQyMzBiNmJjYWI0MGY1NzRkNDZjYWU5ZWM1YTEzLi4xYWFiYzhjNmEyMDc2ZGQ5
ZTU1YTFkYTM3OGUzYTcxN2FiY2RhOTg0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy93ZWJraXQub3Jn
L3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LnBocAorKysgYi9XZWJzaXRlcy93ZWJr
aXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LnBocApAQCAtMyw0MSArMyw2
IEBACiAgKiBUZW1wbGF0ZSBOYW1lOiBOaWdodGx5IERvd25sb2FkcwogICoqLwogCi1kZWZpbmUo
J1dFQktJVF9OSUdIVExZX0FSQ0hJVkVfVVJMJywgImh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcv
YnVpbGRzL3RydW5rLyVzL2FsbCIpOwotCi1mdW5jdGlvbiBnZXRfbmlnaHRseV9idWlsZCgpIHsK
LSAgICByZXR1cm4gZ2V0X25pZ2h0bHlfZG93bmxvYWRfZGV0YWlscygnbWFjJyk7Ci19Ci0KLWZ1
bmN0aW9uIGdldF9uaWdodGx5X3NvdXJjZSgpIHsKLSAgICByZXR1cm4gZ2V0X25pZ2h0bHlfZG93
bmxvYWRfZGV0YWlscygnc3JjJyk7Ci19Ci0KLWZ1bmN0aW9uIGdldF9uaWdodGx5X2Rvd25sb2Fk
X2RldGFpbHMoICR0eXBlID0gJ21hYycgKSB7Ci0gICAgJHR5cGVzID0gYXJyYXkoJ21hYycsICdz
cmMnKTsKLSAgICBpZiAoICEgaW5fYXJyYXkoJHR5cGUsICR0eXBlcykgKSAKLSAgICAgICAgJHR5
cGUgPSAkdHlwZXNbMF07Ci0gICAgCi0gICAgJGNhY2hla2V5ID0gJ25pZ2h0bHlfZG93bmxvYWRf
JyAuICR0eXBlOwotICAgIGlmICggZmFsc2UgIT09ICggJGNhY2hlZCA9IGdldF90cmFuc2llbnQo
JGNhY2hla2V5KSApICkKLSAgICAgICAgcmV0dXJuIGpzb25fZGVjb2RlKCRjYWNoZWQpOwotCQot
ICAgICR1cmwgPSBzcHJpbnRmKFdFQktJVF9OSUdIVExZX0FSQ0hJVkVfVVJMLCAkdHlwZSk7Ci0g
ICAgJHJlc291cmNlID0gZm9wZW4oJHVybCwgJ3InKTsKLSAgICAkcmF3ZGF0YSA9IGZyZWFkKCRy
ZXNvdXJjZSwgMTI4KTsKLSAgICBsaXN0KCRkYXRhLCkgPSBleHBsb2RlKCJcbiIsICRyYXdkYXRh
KTsKLSAgICBmY2xvc2UoJHJlc291cmNlKTsKLSAgICAKLSAgICBpZiAoICEgZW1wdHkoJGRhdGEp
ICkgewotICAgICAgICAkcmVjb3JkID0gZXhwbG9kZSgnLCcsICRkYXRhKTsKLSAgICAgICAgc2V0
X3RyYW5zaWVudCgkY2FjaGVrZXksIGpzb25fZW5jb2RlKCRyZWNvcmQpLCBIT1VSX0lOX1NFQ09O
RFMgKiA2KTsgLy8gRXhwaXJlIGV2ZXJ5IDYgaG91cnMKLSAgICAgICAgcmV0dXJuICRyZWNvcmQ7
Ci0JfQotICAgIAotICAgIHJldHVybiBmYWxzZTsKLSAgICAKLX0KLQogYWRkX2ZpbHRlcigndGhl
X2NvbnRlbnQnLCBmdW5jdGlvbiAoJGNvbnRlbnQpIHsKICAgICAgICAgCiAgICAgJGJ1aWxkID0g
Z2V0X25pZ2h0bHlfYnVpbGQoKTsKQEAgLTEwMCwxMCArNjUsNiBAQCBib2R5IHsKICAgICBmb250
LXdlaWdodDogMjAwOwogfQogCi0jbmlnaHRseSBpbWcgewotICAgIHdpZHRoOiAzMyU7Ci19Ci0K
ICNuaWdodGx5IGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQgcCB7CiAgICAgY29sb3I6ICNGRkQxNUU7
CiB9CkBAIC0xMjQsNiArODUsNyBAQCBib2R5IHsKIC5wYWdlLXRlbXBsYXRlLW5pZ2h0bHkgaHIg
ewogICAgIGJvcmRlci1jb2xvcjogIzk5OTsKIH0KKwogLnBhZ2UtdGVtcGxhdGUtbmlnaHRseSAj
Zm9vdGVyLW5hdiBhIHsKICAgICBjb2xvcjogIzk5OTsKIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L3NjcmlwdHMvc2VhcmNoYnVpbGRz
LmpzIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvc2NyaXB0
cy9zZWFyY2hidWlsZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg3NDBlNDk1MDAyY2VhZjgyMWYwMmMxMWM1
MWEyNGQ2YjY4MDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3At
Y29udGVudC90aGVtZXMvd2Via2l0L3NjcmlwdHMvc2VhcmNoYnVpbGRzLmpzCkBAIC0wLDAgKzEs
MTA2IEBACisoZnVuY3Rpb24oZG9jdW1lbnQpIHsKKworICAgIHZhciBpbnB1dExpc3QgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dC5idWlsZHNlYXJjaCcpLAorICAgICAgICB1aSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2gtcmVzdWx0cycpLAorICAgICAgICBzcGlu
bmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1zcGlubmVyJyksCisgICAgICAg
IGVycm9ycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2gtZXJyb3JzJyksCisgICAg
ICAgIGxvYWRlZCA9IHVpLmxhc3RDaGlsZC5jbG9uZU5vZGUodHJ1ZSksCisgICAgICAgIGlucHV0
cyA9IFtdLnNsaWNlLmNhbGwoaW5wdXRMaXN0KTsKKyAgICAgICAgCisgICAgZm9yICh2YXIgaSBp
biBpbnB1dHMpIHsKKyAgICAgICAgdmFyIGlucHV0ID0gaW5wdXRzW2ldOworICAgICAgICBpbml0
c2VhcmNoKGlucHV0KTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gaW5pdHNlYXJjaChpbnB1
dCkgeworICAgICAgICAKKyAgICAgICAgdmFyIGRlbGF5VGltZXIgPSBudWxsOworICAgICAgICAK
KyAgICAgICAgLy8gaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBzZW5kU2VhcmNoKTsK
KyAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBpZiAoIGRlbGF5VGltZXIgIT0gbnVsbCApCisgICAgICAgICAgICAgICAgY2xl
YXJUaW1lb3V0KGRlbGF5VGltZXIpOworICAgICAgICAgICAgZGVsYXlUaW1lciA9IHNldFRpbWVv
dXQoc2VuZFNlYXJjaCwgNTAwKTsKKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmdW5j
dGlvbiB4aHJQcm9taXNlKHVybCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHZhciBYSFIgPSBuZXcg
WE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgICAgICAgICBYSFIub3BlbignR0VUJywgdXJsLCB0
cnVlKTsKKyAgICAgICAgICAgICAgICBYSFIucmVzcG9uc2VUeXBlID0gImpzb24iOworCisgICAg
ICAgICAgICAgICAgWEhSLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoWEhSLnN0YXR1cyA9PSAyMDAgJiYgWEhSLnJlc3BvbnNlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKFhIUi5yZXNwb25zZSk7CisgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSByZWplY3Qoe3JlcXVlc3Q6IFhIUiwgdXJsOnVybH0pOworICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgWEhSLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcmVqZWN0KHtyZXF1ZXN0OiBYSFIsIHVybDp1cmx9KTsKKyAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgIFhIUi5zZW5kKCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU2VuZCB0aGUgc2VhcmNoIHF1ZXJ5CisgICAgICAg
IGZ1bmN0aW9uIHNlbmRTZWFyY2ggKGUpIHsKKyAgICAgICAgICAgIGRlbGF5VGltZXIgPSBudWxs
OworICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKKyAgICAgICAgICAgIHZhciBxdWVyeSA9IGlu
cHV0LnZhbHVlLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBpZiAocXVlcnkgPT0gJycgfHwg
cXVlcnkubGVuZ3RoIDwgMykKKyAgICAgICAgICAgICAgICByZXR1cm4gdWkucmVwbGFjZUNoaWxk
KGxvYWRlZCwgdWkubGFzdENoaWxkKTsKKworICAgICAgICAgICAgdmFyIGVuZHBvaW50ID0gbmV3
IFVSTChhamF4dXJsICsgIj9hY3Rpb249c2VhcmNoX25pZ2h0bHlfYnVpbGRzJnF1ZXJ5PSIgKyBx
dWVyeSk7CisgICAgICAgICAgICB2YXIgc2VhcmNoUmVzdWx0cyA9IHhoclByb21pc2UoZW5kcG9p
bnQpOworICAgICAgICAgICAgc3Bpbm5lci5jbGFzc0xpc3QuYWRkKCdzZWFyY2hpbmcnKTsKKyAg
ICAgICAgICAgIHNlYXJjaFJlc3VsdHMudGhlbihkaXNwbGF5UmVzdWx0cykuY2F0Y2goZGlzcGxh
eUVycm9yKTsgICAgICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRpc3Bs
YXlSZXN1bHRzKHJlc3VsdHMpIHsKKyAgICAgICAgICAgIHZhciBsaXN0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgndWwnKTsKKyAgICAgICAgICAgIGlmICggcmVzdWx0cy5sZW5ndGggPT0gMCAp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlFcnJvcignVGhlcmUgYXJlIG5vIGJ1aWxk
cyBtYXRjaGluZyB5b3VyIHNlYXJjaC4gU2VhcmNoIGJ5IHJldmlzaW9uIG51bWJlciwgb3IgYSBy
YW5nZSBvZiByZXZpc2lvbiBudW1iZXJzOiAjIyMjIyMtIyMjIyMjJyk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGZvciAodmFyIGVudHJ5IG9mIHJlc3VsdHMpCisgICAgICAgICAgICAgICAg
YWRkRW50cnkoZW50cnlbMF0sIGVudHJ5WzFdLCBlbnRyeVsyXSk7CisgICAgICAgICAgICB1aS5y
ZXBsYWNlQ2hpbGQobGlzdCwgdWkubGFzdENoaWxkKTsKKyAgICAgICAgICAgIHNwaW5uZXIuY2xh
c3NMaXN0LnJlbW92ZSgnc2VhcmNoaW5nJyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGFkZEVudHJ5IChidWlsZCwgZGF0ZXRpbWUsIGRvd25sb2FkKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKSwKKyAgICAgICAgICAg
ICAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSwKKyAgICAgICAgICAg
ICAgICBkYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworCisgICAgICAgICAg
ICAgICAgbGluay5ocmVmID0gZG93bmxvYWQ7CisgICAgICAgICAgICAgICAgbGluay5pbm5lclRl
eHQgPSAiciIgKyBidWlsZDsKKworICAgICAgICAgICAgICAgIGRhdGUuY2xhc3NMaXN0LmFkZCgn
ZGF0ZScpOworICAgICAgICAgICAgICAgIGRhdGUuaW5uZXJUZXh0ID0gZGF0ZXRpbWU7CisKKyAg
ICAgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChsaW5rKTsKKyAgICAgICAgICAgICAgICBsaS5h
cHBlbmRDaGlsZChkYXRlKTsKKyAgICAgICAgICAgICAgICBsaXN0LmFwcGVuZENoaWxkKGxpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gZGlz
cGxheUVycm9yKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHZhciBub3RlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAgICAgICAgIGlmICggbWVzc2FnZSA9PT0gdW5kZWZp
bmVkICkgCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdBIGNvbW11bmljYXRpb24gZXJyb3Ig
b2NjdXJlZCBwcmV2ZW50aW5nIGFueSByZXN1bHRzIGZyb20gYmVpbmcgcmV0dXJuZWQgYnkgdGhl
IHNlcnZlci4nOworCisgICAgICAgICAgICBub3RlLmNsYXNzTGlzdC5hZGQoJ25vdGUnKTsKKyAg
ICAgICAgICAgIG5vdGUuaW5uZXJIVE1MID0gbWVzc2FnZTsKKworICAgICAgICAgICAgZXJyb3Jz
LmFwcGVuZENoaWxkKG5vdGUpOworCisgICAgICAgICAgICBzcGlubmVyLmNsYXNzTGlzdC5yZW1v
dmUoJ3NlYXJjaGluZycpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBj
bGVhckVycm9ycygpIHsKKyAgICAgICAgICAgIHdoaWxlIChlcnJvcnMuZmlyc3RDaGlsZCkKKyAg
ICAgICAgICAgICAgICBlcnJvcnMucmVtb3ZlQ2hpbGQoZXJyb3JzLmZpcnN0Q2hpbGQpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICB9CisKK30oZG9jdW1lbnQpKTsKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQv
dGhlbWVzL3dlYmtpdC9zdHlsZS5jc3MgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQv
dGhlbWVzL3dlYmtpdC9zdHlsZS5jc3MKaW5kZXggZjI4M2Y5ZjU4MGU3ODlmMGZhZGJiODdlMzQy
ZTFmMDAyZTZiNjYwZi4uOTUwNjc4NzdjOGRiMGEwZWFiMDJjNzZiODE5ZDk1MTk4NGZiYzdiZiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQv
c3R5bGUuY3NzCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Vi
a2l0L3N0eWxlLmNzcwpAQCAtMTM2LDYgKzEzNiw0MiBAQCBoNiBhW25hbWVdIHsKICAgICB2aXNp
YmlsaXR5OiBoaWRkZW47CiB9CiAKK2lucHV0W3R5cGU9dGV4dF0geworICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHZlcnRpY2FsLWFs
aWduOiB0b3A7CisgICAgaGVpZ2h0OiA0LjJyZW07CisgICAgcGFkZGluZy10b3A6IDNweDsKKyAg
ICBtYXJnaW4tYm90dG9tOiAzcmVtOworICAgIHBhZGRpbmctbGVmdDogMS41cmVtOworICAgIHBh
ZGRpbmctcmlnaHQ6IDEuNXJlbTsKKyAgICBjb2xvcjogIzMzMzMzMzsKKyAgICB0ZXh0LWFsaWdu
OiBsZWZ0OworICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNmQ2ZDY7CisgICAgYm9yZGVyLXJhZGl1
czogNHB4OworICAgIGJhY2tncm91bmQ6IHdoaXRlOworICAgIGJhY2tncm91bmQtY2xpcDogcGFk
ZGluZy1ib3g7CisgICAgZm9udC1mYW1pbHk6ICJNeXJpYWQgU2V0IFBybyIsICJIZWx2ZXRpY2Eg
TmV1ZSIsICJIZWx2ZXRpY2EiLCAiQXJpYWwiLCBzYW5zLXNlcmlmOworICAgIGxpbmUtaGVpZ2h0
OiAxLjMzMzMzOworICAgIGZvbnQtd2VpZ2h0OiA0MDA7CisgICAgbGV0dGVyLXNwYWNpbmc6IG5v
cm1hbDsKKyAgICBmb250LXNpemU6IDJyZW07Cit9CisKK2lucHV0W3R5cGU9c3VibWl0XSB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogIzFkOWJkOTsKKyAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxp
bmVhci1ncmFkaWVudCgjM2JhZWU3LCAjMDA4OGNjKTsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXIt
Z3JhZGllbnQoIzNiYWVlNywgIzAwODhjYyk7CisgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAg
IGNvbG9yOiB3aGl0ZTsKKyAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgZm9udC1zaXplOiAxLjVy
ZW07CisgICAgZm9udC13ZWlnaHQ6IDUwMDsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAg
Ym9yZGVyOiAwOworfQorCisKIC5hZG1pbi1iYXIgYVtuYW1lXSB7CiAgICAgdG9wOiBjYWxjKC0z
MnB4IC0gM3JlbSk7CiB9CkBAIC0xMDQwLDYgKzEwNzYsMTAgQEAgYXJ0aWNsZSAuYWxpZ25ub25l
LnNpemUtZnVsbCB7CiAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwdncsIDApOwogfQogCith
cnRpY2xlIC5hYm92ZXRpdGxlIHsKKyAgICBtYXJnaW4tYm90dG9tOiAwLjhlbTsKK30KKwogYXJ0
aWNsZSAucHVsbC1sZWZ0IHsKICAgICBmbG9hdDogbGVmdDsKICAgICBtYXJnaW46IDEuNXJlbSAx
LjVyZW0gMS41cmVtIC0yNSU7CkBAIC0xMzg4LDE3ICsxNDI4LDYgQEAgaGVhZGVyIC5tZW51LWl0
ZW0geyAvKiBhZGQgYm90dG9tIGRpbWVuc2lvbiB0byBtYWluIG1lbnUgaXRlbXMgKi8KICAgICBw
YWRkaW5nLWJvdHRvbTogM3JlbTsKIH0KIAotLyogSW1wcm92ZXMgbW91c2UgYWNjZXNzaWJpbGl0
eSBvZiBtZW51cyAqLwotLypoZWFkZXIgLm1lbnUgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpo
b3ZlciA+IGE6OmJlZm9yZSB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIGNvbnRlbnQ6
ICcnOwotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwJTsKLSAgICBwYWRkaW5nOiAw
cmVtIDEwcmVtIDFyZW0gMDsKLSAgICB0b3A6IDJyZW07Ci0gICAgcmlnaHQ6IC0zcmVtOwotfQot
Ki8KIC5zdWItbWVudS1sYXllciB7CiAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgIHBhZGRp
bmc6IDNyZW07CkBAIC0xNzA0LDcgKzE3MzMsNiBAQCBoZWFkZXIgLm1lbnUtaXRlbSB7IC8qIGFk
ZCBib3R0b20gZGltZW5zaW9uIHRvIG1haW4gbWVudSBpdGVtcyAqLwogICAgICAgICBmbG9hdDog
bm9uZTsKICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICBtYXJnaW4tYm90dG9t
OiAzcmVtOwotICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgIH0KIAogICAgIGFydGljbGUg
LmJ5bGluZSBwIHsKQEAgLTE3MjYsNyArMTc1NCw2IEBAIGhlYWRlciAubWVudS1pdGVtIHsgLyog
YWRkIGJvdHRvbSBkaW1lbnNpb24gdG8gbWFpbiBtZW51IGl0ZW1zICovCiAgICAgICAgIGZsb2F0
OiBub25lOwogICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgIG1hcmdpbi1ib3R0
b206IDNyZW07Ci0gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICAgfQogCiAgICAgYXJ0aWNs
ZSAuYnlsaW5lIHAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275149</attachid>
            <date>2016-03-29 16:47:16 -0700</date>
            <delta_ts>2016-03-29 17:40:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155989-20160329164719.patch</filename>
            <type>text/plain</type>
            <size>34802</size>
            <attacher name="Jon Davis">jond</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Nzg5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IDYyZWRm
ZTEwNThmM2M4MTY1NjZhMDgzMGQ5Mjc5NWZlMTlkNDkwYzcuLjNlN2JlMWNlZDg0NGU5MzRjYTBi
MTA4ZTk5M2Y0MjFiNjc5NWI3NWUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hh
bmdlTG9nCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMg
QEAKIDIwMTYtMDMtMjkgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCisgICAgICAgIEFk
ZCBXZWJLaXQgTmlnaHRseSBBcmNoaXZlcywgV2ViS2l0IE5pZ2h0bHkgU3RhcnQsIGFuZCBEb3du
bG9hZHMgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3AtY29udGVudC9wbHVnaW5zL3N5bmMtbmlnaHRseS1idWlsZHMucGhwOiBBZGRlZC4K
KyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvZG93bmxvYWRzLnBocDogQWRkZWQu
CisgICAgICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L2Z1bmN0aW9ucy5waHA6CisgICAg
ICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L2ltYWdlcy9kb3dubG9hZC5zdmc6CisgICAg
ICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L2ltYWdlcy9zcGlubmVyLnN2ZzogQWRkZWQu
CisgICAgICAgICogd3AtY29udGVudC90aGVtZXMvd2Via2l0L25pZ2h0bHktYXJjaGl2ZXMucGhw
OiBBZGRlZC4KKyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvbmlnaHRseS1zdGFy
dC5waHA6IEFkZGVkLgorICAgICAgICAqIHdwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5
LnBocDoKKyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvc2NyaXB0cy9zZWFyY2hi
dWlsZHMuanM6IEFkZGVkLgorICAgICAgICAoaW5pdHNlYXJjaC54aHJQcm9taXNlLik6CisgICAg
ICAgIChpbml0c2VhcmNoKToKKyAgICAgICAgKGluaXRzZWFyY2guZGlzcGxheVJlc3VsdHMuYWRk
RW50cnkpOgorICAgICAgICAoaW5pdHNlYXJjaC5kaXNwbGF5UmVzdWx0cyk6CisgICAgICAgIChp
bml0c2VhcmNoLmRpc3BsYXlFcnJvcik6CisgICAgICAgIChpbml0c2VhcmNoLmNsZWFyRXJyb3Jz
KToKKyAgICAgICAgKiB3cC1jb250ZW50L3RoZW1lcy93ZWJraXQvc3R5bGUuY3NzOgorICAgICAg
ICAoaW5wdXRbdHlwZT10ZXh0XSk6CisgICAgICAgIChpbnB1dFt0eXBlPXN1Ym1pdF0pOgorICAg
ICAgICAoYXJ0aWNsZSAuYnlsaW5lKToKKyAgICAgICAgKGFydGljbGUgLmFib3ZldGl0bGUpOgor
CisyMDE2LTAzLTI5ICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KKwogICAgICAgICBTdXBw
b3J0IGltYWdlcyBhYm92ZSB0aGUgdGl0bGUgb24gd2Via2l0Lm9yZyBwb3N0cwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1OTc5CiAKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC9wbHVnaW5zL3N5bmMtbmlnaHRseS1i
dWlsZHMucGhwIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3BsdWdpbnMvc3luYy1u
aWdodGx5LWJ1aWxkcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMzZjJjMmQ3ZGQwYjk5NzNjZTEwMWRlN2Jk
ZmVhZDhiNTZjMWYzYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3At
Y29udGVudC9wbHVnaW5zL3N5bmMtbmlnaHRseS1idWlsZHMucGhwCkBAIC0wLDAgKzEsMTcyIEBA
Cis8P3BocAorLyoKK1BsdWdpbiBOYW1lOiBTeW5jIE5pZ2h0bHkgQnVpbGRzCitEZXNjcmlwdGlv
bjogVXBkYXRlcyBXZWJLaXQgbmlnaHRseSBidWlsZCBpbmZvcm1hdGlvbgorVmVyc2lvbjogICAg
IDEuMAorQXV0aG9yOiAgICAgIEpvbmF0aGFuIERhdmlzCitBdXRob3IgVVJJOiAgaHR0cDovL3dl
YmtpdC5vcmcKKyovCisKK1N5bmNXZWJLaXROaWdodGx5QnVpbGRzOjpvYmplY3QoKTsKKworY2xh
c3MgU3luY1dlYktpdE5pZ2h0bHlCdWlsZHMgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgJG9iamVj
dCA9IG51bGw7CisKKyAgICBjb25zdCBNQVhfU0VBUkNIX1JFU1VMVFMgPSA1MDsKKyAgICBjb25z
dCBXRUJLSVRfTklHSFRMWV9BUkNISVZFX1VSTCA9ICdodHRwczovL25pZ2h0bHkud2Via2l0Lm9y
Zy9idWlsZHMvdHJ1bmsvJXMvYWxsJzsKKworICAgIHByaXZhdGUgJGFyY2hpdmVzID0gYXJyYXko
CisgICAgICAgICdtYWMnID0+ICdidWlsZHMuY3N2JywKKyAgICAgICAgJ3NyYycgPT4gJ3NvdXJj
ZS5jc3YnCisgICAgKTsKKworICAgIHByaXZhdGUgJHVwbG9hZHNfZGlyID0gJyc7CisKKyAgICBw
dWJsaWMgc3RhdGljIGZ1bmN0aW9uIG9iamVjdCgpIHsKKyAgICAgICAgaWYgKHNlbGY6OiRvYmpl
Y3QgPT09IG51bGwpCisgICAgICAgICAgICBzZWxmOjokb2JqZWN0ID0gbmV3IHNlbGYoKTsKKyAg
ICAgICAgcmV0dXJuIHNlbGY6OiRvYmplY3Q7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlv
biBfX2NvbnN0cnVjdCgpIHsKKyAgICAgICAgJHVwbG9hZF9kaXJfaW5mbyA9IHdwX3VwbG9hZF9k
aXIoKTsKKyAgICAgICAgJHRoaXMtPnVwbG9hZHNfZGlyID0gdHJhaWxpbmdzbGFzaGl0KCR1cGxv
YWRfZGlyX2luZm9bJ2Jhc2VkaXInXSk7CisKKyAgICAgICAgYWRkX2FjdGlvbigndXBkYXRlX3dl
YmtpdF9uaWdodGx5X2J1aWxkcycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGZvcmVhY2gg
KCR0aGlzLT5hcmNoaXZlcyBhcyAkZW5kcG9pbnQgPT4gJGZpbGVuYW1lKSB7CisgICAgICAgICAg
ICAgICAgLy8gRG93bmxvYWQgYSBjb3B5IG9mIHRoZSBhcmNoaXZlcworICAgICAgICAgICAgICAg
ICR1cmwgPSBzcHJpbnRmKHNlbGY6OldFQktJVF9OSUdIVExZX0FSQ0hJVkVfVVJMLCAkZW5kcG9p
bnQpOworCisgICAgICAgICAgICAgICAgaWYgKCFjb3B5KCR1cmwsICR0aGlzLT51cGxvYWRzX2Rp
ci4gJGZpbGVuYW1lKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JfbG9nKCJDb3VsZG4n
dCBkb3dubG9hZCB0aGUgJGZpbGVuYW1lIGFyY2hpdmUgaW5kZXguICh7JGVycm9yc1sndHlwZSdd
fSkgeyRlcnJvcnNbJ21lc3NhZ2UnXX0iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworCisgICAgICAgIHJlZ2lzdGVyX2FjdGl2YXRpb25faG9vayhfX0ZJ
TEVfXywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKCF3cF9uZXh0X3NjaGVkdWxlZCgn
dXBkYXRlX3dlYmtpdF9uaWdodGx5X2J1aWxkcycpKQorICAgICAgICAgICAgICAgIHdwX3NjaGVk
dWxlX2V2ZW50KGN1cnJlbnRfdGltZSgndGltZXN0YW1wJyksICdob3VybHknLCAndXBkYXRlX3dl
YmtpdF9uaWdodGx5X2J1aWxkcycpOworCisgICAgICAgICAgICBkb19hY3Rpb24oJ3VwZGF0ZV93
ZWJraXRfbmlnaHRseV9idWlsZHMnKTsKKyAgICAgICAgfSk7CisKKworICAgICAgICBhZGRfYWN0
aW9uKCd3cF9hamF4X3NlYXJjaF9uaWdodGx5X2J1aWxkcycsIGFycmF5KCR0aGlzLCAnc2VhcmNo
JykpOworCisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGxhdGVzdCgkYXJjaGl2ZSA9ICdi
dWlsZHMnKSB7CisgICAgICAgICRyZWNvcmRzID0gJHRoaXMtPnJlY29yZHMoJGFyY2hpdmUpOwor
ICAgICAgICByZXR1cm4gKGFycmF5KSRyZWNvcmRzWzBdOworICAgIH0KKworICAgIHB1YmxpYyBm
dW5jdGlvbiByZWNvcmRzKCRhcmNoaXZlLCAkZW50cmllcyA9IDI1KSB7CisgICAgICAgIGlmICgh
aW5fYXJyYXkoIiRhcmNoaXZlLmNzdiIsICR0aGlzLT5hcmNoaXZlcykpIHJldHVybiBhcnJheSgp
OworCisgICAgICAgICRmaWxlbmFtZSA9ICIkYXJjaGl2ZS5jc3YiOworICAgICAgICBpZiAoIWZp
bGVfZXhpc3RzKCR0aGlzLT51cGxvYWRzX2RpciAuICcvJyAuICRmaWxlbmFtZSkpIHsKKyAgICAg
ICAgICAgIGRvX2FjdGlvbigndXBkYXRlX3dlYmtpdF9uaWdodGx5X2J1aWxkcycpOworICAgICAg
ICAgICAgaWYgKCFmaWxlX2V4aXN0cygkdGhpcy0+dXBsb2Fkc19kaXIgLiAnLycgLiAkZmlsZW5h
bWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgpOworICAgICAgICB9CisKKyAgICAg
ICAgJHJlY29yZHMgPSBhcnJheSgpOworICAgICAgICAkcmVzb3VyY2UgPSBmb3BlbigkdGhpcy0+
dXBsb2Fkc19kaXIgLiAnLycgLiAkZmlsZW5hbWUsICdyJyk7CisKKyAgICAgICAgZm9yICgkaSA9
IDA7ICRpIDwgJGVudHJpZXM7ICRpKyspIHsKKyAgICAgICAgICAgICRsaW5lID0gZmdldHMoJHJl
c291cmNlLCAxMjgpOworICAgICAgICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKKyAgICAgICAg
ICAgIGlmICggZW1wdHkoJGxpbmUpICkgYnJlYWs7CisgICAgICAgICAgICBsaXN0KCRidWlsZCwg
JHRpbWVzdGFtcCwgJGRvd25sb2FkKSA9IGV4cGxvZGUoJywnLCAkbGluZSk7CisgICAgICAgICAg
ICAkcmVjb3Jkc1skaV0gPSBhcnJheSgkYnVpbGQsIGRhdGUoIkYgaiwgWSBnOmkgQSIsICR0aW1l
c3RhbXApIC4gIiBHTVQiLCAkZG93bmxvYWQpOworICAgICAgICB9CisgICAgICAgIGZjbG9zZSgk
cmVzb3VyY2UpOworICAgICAgICByZXR1cm4gKGFycmF5KSRyZWNvcmRzOworICAgIH0KKworICAg
IHB1YmxpYyBmdW5jdGlvbiBzZWFyY2goKSB7CisgICAgICAgIC8vIGh0dHA6Ly93ZWJraXQuZGV2
L3dwL3dwLWFkbWluL2FkbWluLWFqYXgucGhwP2FjdGlvbj1zZWFyY2hfbmlnaHRseV9idWlsZHMm
c2VhcmNoPTE5NDE0MgorICAgICAgICAvLyBodHRwOi8vd2Via2l0LmRldi93cC93cC1hZG1pbi9h
ZG1pbi1hamF4LnBocD9hY3Rpb249c2VhcmNoX25pZ2h0bHlfYnVpbGRzJnNlYXJjaD0xOTQxCisg
ICAgICAgIC8vIGh0dHA6Ly93ZWJraXQuZGV2L3dwL3dwLWFkbWluL2FkbWluLWFqYXgucGhwP2Fj
dGlvbj1zZWFyY2hfbmlnaHRseV9idWlsZHMmc2VhcmNoPTE5Mzc2MC0xOTQxNDIKKyAgICAgICAg
Ly8gaHR0cDovL3dlYmtpdC5kZXYvd3Avd3AtYWRtaW4vYWRtaW4tYWpheC5waHA/YWN0aW9uPXNl
YXJjaF9uaWdodGx5X2J1aWxkcyZzZWFyY2g9MTkzNzYwCisKKyAgICAgICAgJG1heHJlc3VsdHMg
PSBzZWxmOjpNQVhfU0VBUkNIX1JFU1VMVFM7CisKKyAgICAgICAgLy8gQ2xlYW4gdXAgc2VhcmNo
IHF1ZXJ5CisgICAgICAgICRzZWFyY2ggPSB0cmltKCRfR0VUWydxdWVyeSddKTsKKyAgICAgICAg
JHNlYXJjaCA9IHRyaW0oJHNlYXJjaCwgJy0nKTsKKyAgICAgICAgJHNlYXJjaCA9IHN0cl9yZXBs
YWNlKCdyJywgJycsICRzZWFyY2gpOworCisgICAgICAgIGlmIChlbXB0eSgkc2VhcmNoKSkgewor
ICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZSgnJyk7CisgICAgICAgICAgICB3cF9kaWUoKTsK
KyAgICAgICAgfQorCisgICAgICAgICRyZWNvcmRzID0gJHRoaXMtPnJlY29yZHMoJ2J1aWxkcycs
IDEwMDAwMCk7CisKKyAgICAgICAgJHJlc3VsdHMgPSBhcnJheSgpOworICAgICAgICAkbWF0Y2hl
cyA9IGFycmF5KCk7CisgICAgICAgICRidWlsZHMgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNo
ICgkcmVjb3JkcyBhcyAkcmVjb3JkKQorICAgICAgICAgICAgJGJ1aWxkc1tdID0gJHJlY29yZFsw
XTsKKworCisgICAgICAgICRtZXRob2RzID0gYXJyYXkoJ3ByZWZpeG1hdGNoJywgJ3JhbmdlbWF0
Y2gnLCAnbmVhcm1hdGNoJyk7CisKKyAgICAgICAgJG1hdGNoZWQgPSAwOworICAgICAgICAvLyBN
YW51YWwgZXhhY3QgbWF0Y2ggZm9yIHBlcmZvcm1hbmNlCisgICAgICAgICRleGFjdG1hdGNoID0g
YXJyYXlfc2VhcmNoKCRzZWFyY2gsICRidWlsZHMpOworICAgICAgICBpZiAoJGV4YWN0bWF0Y2gg
IT09IGZhbHNlKSB7CisgICAgICAgICAgICAkbWF0Y2hlc1snZXhhY3RtYXRjaCddWyJyIiAuICRy
ZWNvcmRzWyRleGFjdG1hdGNoXVswXV0gPSAkcmVjb3Jkc1skZXhhY3RtYXRjaF07CisgICAgICAg
ICAgICAkbWF0Y2hlZCA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3JlYWNo
ICgkYnVpbGRzIGFzICRpbmRleCA9PiAkYnVpbGQpIHsKKyAgICAgICAgICAgICAgICBmb3JlYWNo
ICgkbWV0aG9kcyBhcyAkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkbWF0Y2hl
ZCA+PSAkbWF4cmVzdWx0cykgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+
JG1ldGhvZCgkc2VhcmNoLCAkYnVpbGRzLCAkYnVpbGQsICRpbmRleCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRtYXRjaGVzWyRtZXRob2RdWyJyJGJ1aWxkIl0gPSAkcmVjb3Jkc1skaW5k
ZXhdOworICAgICAgICAgICAgICAgICAgICAgICAgJG1hdGNoZWQrKzsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIC8vIENvbXBpbGUgcmVzdWx0cworICAgICAgICBmb3JlYWNoICgkbWF0Y2hlcyBhcyAk
Z3JvdXApCisgICAgICAgICAgICAkcmVzdWx0cyA9IGFycmF5X21lcmdlKCRyZXN1bHRzLCAkZ3Jv
dXApOworCisgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXlfdmFsdWVzKCRyZXN1bHRzKSk7
CisKKyAgICAgICAgd3BfZGllKCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHByZWZp
eG1hdGNoKCRzZWFyY2gsICYkYnVpbGRzLCAkYnVpbGQpIHsKKyAgICAgICAgcmV0dXJuIHN1YnN0
cigkYnVpbGQsIDAsIHN0cmxlbigkc2VhcmNoKSkgPT0gJHNlYXJjaDsKKyAgICB9CisKKyAgICBw
dWJsaWMgZnVuY3Rpb24gcmFuZ2VtYXRjaCgkc2VhcmNoLCAmJGJ1aWxkcywgJGJ1aWxkKSB7Cisg
ICAgICAgIGlmICggc3RycG9zKCRzZWFyY2gsICctJykgPT09IGZhbHNlICkgcmV0dXJuIGZhbHNl
OworCisgICAgICAgICRyYW5nZXMgPSBleHBsb2RlKCctJywgJHNlYXJjaCk7CisgICAgICAgICRy
YW5nZXMgPSBhcnJheV9tYXAoJ2ludHZhbCcsICRyYW5nZXMpOworICAgICAgICBzb3J0KCRyYW5n
ZXMpOworICAgICAgICBsaXN0KCRzdGFydCwgJGVuZCkgPSAkcmFuZ2VzOworICAgICAgICAkYnVp
bGQgPSBpbnR2YWwoJGJ1aWxkKTsKKworICAgICAgICBpZiAoICRlbmQgPCAxICkgJGVuZCA9IFBI
UF9JTlRfTUFYOworCisgICAgICAgIHJldHVybiAkYnVpbGQgPj0gJHN0YXJ0ICYmICRidWlsZCA8
PSAkZW5kOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBuZWFybWF0Y2goJHNlYXJjaCwg
JiRidWlsZHMsICRidWlsZCwgJGluZGV4KSB7CisgICAgICAgICR0YXJnZXQgPSBpbnR2YWwoJHNl
YXJjaCk7CisgICAgICAgIGlmICgkdGFyZ2V0IDwgMSkgcmV0dXJuIGZhbHNlOworCisgICAgICAg
ICRuZXdlciA9IGlzc2V0KCRidWlsZHNbICRpbmRleCAtIDEgXSkgPyAkYnVpbGRzWyAkaW5kZXgg
LSAxIF0gOiBQSFBfSU5UX01BWDsKKyAgICAgICAgJG9sZGVyID0gaXNzZXQoJGJ1aWxkc1sgJGlu
ZGV4ICsgMSBdKSA/ICRidWlsZHNbICRpbmRleCArIDEgXSA6IDA7CisKKyAgICAgICAgcmV0dXJu
ICR0YXJnZXQgPiAkb2xkZXIgJiYgJHRhcmdldCA8ICRuZXdlcjsKKyAgICB9CisKK30gLy8gZW5k
IGNsYXNzIFN5bmNXZWJLaXROaWdodGx5QnVpbGRzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJr
aXQvZG93bmxvYWRzLnBocCBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMv
d2Via2l0L2Rvd25sb2Fkcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDExYTNiNDlmYzUyNTAwN2I0OTU3YTNl
OWZmYTRjOTM1MDc2OTU1MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcv
d3AtY29udGVudC90aGVtZXMvd2Via2l0L2Rvd25sb2Fkcy5waHAKQEAgLTAsMCArMSwxMDQgQEAK
Kzw/cGhwCisvKioKKyAqIFRlbXBsYXRlIE5hbWU6IERvd25sb2FkcworICoqLworCithZGRfZmls
dGVyKCd0aGVfY29udGVudCcsIGZ1bmN0aW9uICgkY29udGVudCkgeworICAgICAgICAKKyAgICAk
YnVpbGQgPSBnZXRfbmlnaHRseV9idWlsZCgpOworICAgICRzb3VyY2UgPSBnZXRfbmlnaHRseV9z
b3VyY2UoKTsKKyAgICAKKyAgICBpZiAoIGVtcHR5KCRidWlsZCkgfHwgZW1wdHkoJHNvdXJjZSkg
KQorICAgICAgICByZXR1cm4gJGNvbnRlbnQ7CisgICAgCisgICAgJGNvbnRlbnQgPSBzcHJpbnRm
KCRjb250ZW50LCAkYnVpbGRbMl0sICRzb3VyY2VbMl0pOworICAgIAorICAgIHJldHVybiAkY29u
dGVudDsKK30pOworCithZGRfZmlsdGVyKCd3cF9oZWFkJywgZnVuY3Rpb24oKSB7ID8+CisKKzxz
dHlsZT4KKy5wYWdlLmRvd25sb2FkcyBoMSB7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAg
IG1hcmdpbi1ib3R0b206IDA7Cit9CisKKy5wYWdlLmRvd25sb2FkcyBibG9ja3F1b3RlOmZpcnN0
LWNoaWxkIHsKKyAgICBjb2xvcjogIzhFOEU5MzsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cisg
ICAgZm9udC1zaXplOiA0cmVtOworICAgIGxpbmUtaGVpZ2h0OiA2cmVtOworICAgIGZvbnQtd2Vp
Z2h0OiAyMDA7Cit9CisKKy5ib2R5Y29weSA+IGRpdiB7CisgICAgYm94LXNpemluZzogYm9yZGVy
LWJveDsKKyAgICBwYWRkaW5nOiAwIDEuNXJlbSAzcmVtOworICAgIHdpZHRoOiA1MCU7CisgICAg
dGV4dC1hbGlnbjogY2VudGVyOworICAgIGZsb2F0OiBsZWZ0OworfQorCisjcHJldmlldyB7Cisg
ICAgZmxvYXQ6IG5vbmU7CisgICAgd2lkdGg6IDEwMCU7Cit9CisKKyNuaWdodGx5IHsKKyAgICBm
bG9hdDogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDEwMHZ3Owor
ICAgIGxlZnQ6IDUwJTsKKyAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTsKKyAgICBiYWNr
Z3JvdW5kOiAjMzMzMzMzOworICAgIHBhZGRpbmctdG9wOiAzcmVtOworICAgIGNvbG9yOiAjZmZm
ZmZmOworfQorCisucGFnZS5kb3dubG9hZHMgaDIgeworICAgIGZvbnQtc2l6ZTogMy4ycmVtOwor
fQorCisuZG93bmxvYWRzIC5kb3dubG9hZCB7CisgICAgZm9udC1zaXplOiAzcmVtOworfQorCitA
bWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkyMHB4KSB7CisgICAgLmJvZHljb3B5
ID4gZGl2IHsKKyAgICAgICAgZmxvYXQ6IG5vbmU7CisgICAgICAgIHdpZHRoOiAxMDAlOworICAg
IH0KK30KKworQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogNzY4cHgp
IGFuZCAobWF4LWRldmljZS13aWR0aDogMTM2NnB4KSB7CisgICAgLmJvZHljb3B5IGRpdiBwOm50
aC1jaGlsZCgzKSB7CisgICAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorfQorCitAbWVkaWEg
b25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA3MzZweCkgeworICAgIC5ib2R5Y29w
eSBkaXYgcDpudGgtY2hpbGQoMykgeworICAgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KK30K
Kzwvc3R5bGU+Cis8P3BocAorfSk7CisKK2dldF9oZWFkZXIoKTsKKworICAgICAgICBpZiAoaGF2
ZV9wb3N0cygpKSA6IHdoaWxlIChoYXZlX3Bvc3RzKCkpIDogdGhlX3Bvc3QoKTsgPz4KKworICAg
ICAgICA8YXJ0aWNsZSBjbGFzcz0icGFnZSBkb3dubG9hZHMiPgorICAgICAgICAgICAgPGgxPjxh
IGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X3Blcm1hbGluaygpID8+IiByZWw9ImJvb2ttYXJrIiB0aXRs
ZT0iUGVybWFuZW50IExpbms6IDw/cGhwIHRoZV90aXRsZSgpOyA/PiI+PD9waHAgdGhlX3RpdGxl
KCk7ID8+PC9hPjwvaDE+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
ZHljb3B5Ij4KKyAgICAgICAgICAgICAgICA8P3BocCB0aGVfY29udGVudCgnJyk7ID8+CisgICAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIAorICAgICAgICA8L2FydGljbGU+CisKKyAgICA8
P3BocCBlbmR3aGlsZTsgZW5kaWY7ID8+CisKKzw/cGhwIGdldF9mb290ZXIoKTsgPz4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJraXQub3JnL3dw
LWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9mdW5jdGlvbnMucGhwIGIvV2Vic2l0ZXMvd2Via2l0Lm9y
Zy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvZnVuY3Rpb25zLnBocAppbmRleCA2Y2EzMDg4MDgx
YWVkODM4ZTY0Y2U2ODY3MmY1NTg1ZjRiZGIwNjNkLi5iZmQ0M2VmYjZkY2JlMTczZTZlYWJkOGFk
MTI5YWZmMzlhYzQwMjMxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRl
bnQvdGhlbWVzL3dlYmtpdC9mdW5jdGlvbnMucGhwCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcv
d3AtY29udGVudC90aGVtZXMvd2Via2l0L2Z1bmN0aW9ucy5waHAKQEAgLTMsOCArMyw2IEBACiAv
LyBEZWNsYXJlIHRoZW1lIGZlYXR1cmVzCiBhZGRfdGhlbWVfc3VwcG9ydCggJ3Bvc3QtdGh1bWJu
YWlscycgKTsKIAotZnVuY3Rpb24gcmVnaXN0ZXJfbWVudXMoKSB7Ci19CiBhZGRfYWN0aW9uKCAn
aW5pdCcsIGZ1bmN0aW9uICgpIHsKICAgICByZWdpc3Rlcl9uYXZfbWVudSgnc2l0ZS1uYXYnLCBf
XyggJ1NpdGUgTmF2aWdhdGlvbicgKSk7CiAgICAgcmVnaXN0ZXJfbmF2X21lbnUoJ2Zvb3Rlci1u
YXYnLCBfXyggJ0Zvb3RlciBOYXZpZ2F0aW9uJyApKTsKQEAgLTIyLDYgKzIwLDQyIEBAIGZ1bmN0
aW9uIG1vZGlmeV9jb250YWN0X21ldGhvZHMoJHByb2ZpbGVfZmllbGRzKSB7CiAgICAgcmV0dXJu
ICRwcm9maWxlX2ZpZWxkczsKIH0KIAorZnVuY3Rpb24gZ2V0X25pZ2h0bHlfYnVpbGQgKCR0eXBl
ID0gJ2J1aWxkcycpIHsKKyAgICBpZiAoIWNsYXNzX2V4aXN0cygnU3luY1dlYktpdE5pZ2h0bHlC
dWlsZHMnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgICRXZWJLaXRCdWlsZHMg
PSBTeW5jV2ViS2l0TmlnaHRseUJ1aWxkczo6b2JqZWN0KCk7CisgICAgJGJ1aWxkID0gJFdlYktp
dEJ1aWxkcy0+bGF0ZXN0KCR0eXBlKTsKKyAgICByZXR1cm4gJGJ1aWxkOworfQorCitmdW5jdGlv
biBnZXRfbmlnaHRseV9zb3VyY2UgKCkgeworICAgIHJldHVybiBnZXRfbmlnaHRseV9idWlsZCgn
c291cmNlJyk7Cit9CisKK2Z1bmN0aW9uIGdldF9uaWdodGx5X2FyY2hpdmVzICgkbGltaXQpIHsK
KyAgICBpZiAoIWNsYXNzX2V4aXN0cygnU3luY1dlYktpdE5pZ2h0bHlCdWlsZHMnKSkKKyAgICAg
ICAgcmV0dXJuIGFycmF5KCk7CisgICAgCisgICAgJFdlYktpdEJ1aWxkcyA9IFN5bmNXZWJLaXRO
aWdodGx5QnVpbGRzOjpvYmplY3QoKTsKKyAgICAkYnVpbGRzID0gJFdlYktpdEJ1aWxkcy0+cmVj
b3JkcygnYnVpbGRzJywgJGxpbWl0KTsKKyAgICByZXR1cm4gKGFycmF5KSRidWlsZHM7Cit9CisK
K2Z1bmN0aW9uIGdldF9uaWdodGx5X2J1aWxkc19qc29uICgpIHsKKyAgICBpZiAoIWNsYXNzX2V4
aXN0cygnU3luY1dlYktpdE5pZ2h0bHlCdWlsZHMnKSkKKyAgICAgICAgcmV0dXJuICcnOworCisg
ICAgJFdlYktpdEJ1aWxkcyA9IFN5bmNXZWJLaXROaWdodGx5QnVpbGRzOjpvYmplY3QoKTsKKyAg
ICAkcmVjb3JkcyA9ICRXZWJLaXRCdWlsZHMtPnJlY29yZHMoJ2J1aWxkcycsIDEwMDAwMCk7Cisg
ICAgJGJ1aWxkcyA9IGFycmF5KCk7CisgICAgZm9yZWFjaCAoICRyZWNvcmRzIGFzICRidWlsZCAp
IHsKKyAgICAgICAgJGJ1aWxkc1tdID0gJGJ1aWxkWzBdOworICAgIH0KKyAgICAkanNvbiA9IGpz
b25fZW5jb2RlKCRidWlsZHMpOworICAgIHJldHVybiBlbXB0eSgkanNvbikgPyAiJyciIDogJGpz
b247Cit9CisKIGFkZF9maWx0ZXIoJ3VzZXJfY29udGFjdG1ldGhvZHMnLCBmdW5jdGlvbiAoJGZp
ZWxkcykgewogICAgIC8vIEFkZCBUd2l0dGVyIGZpZWxkIHRvIHVzZXIgcHJvZmlsZXMKICAgICAk
ZmllbGRzWyd0d2l0dGVyJ10gPSAnVHdpdHRlciBIYW5kbGUnOwpAQCAtNDUsNiArNzksMjEgQEAg
YWRkX2FjdGlvbignaW5pdCcsIGZ1bmN0aW9uICgpIHsKICAgICApKTsKIH0gKTsKIAorLy8gU3Rh
cnQgUGFnZSBpbnRlcm5hbCByZXdyaXRlIGhhbmRsaW5nCithZGRfYWN0aW9uKCdhZnRlcl9zZXR1
cF90aGVtZScsIGZ1bmN0aW9uICgpIHsKKyAgICBhZGRfcmV3cml0ZV9ydWxlKAorICAgICAgICAn
bmlnaHRseS9zdGFydC8oW14vXSspLyhbMC05XSspLz8kJywKKyAgICAgICAgJ2luZGV4LnBocD9w
YWdlbmFtZT1uaWdodGx5L3N0YXJ0Jm5pZ2h0bHlfYnJhbmNoPSRtYXRjaGVzWzFdJm5pZ2h0bHlf
YnVpbGQ9JG1hdGNoZXNbMl0nLAorICAgICAgICAndG9wJworICAgICk7Cit9KTsKKworYWRkX2Zp
bHRlcigncXVlcnlfdmFycycsIGZ1bmN0aW9uKCAkcXVlcnlfdmFycyApIHsKKyAgICAkcXVlcnlf
dmFyc1tdID0gJ25pZ2h0bHlfYnVpbGQnOworICAgICRxdWVyeV92YXJzW10gPSAnbmlnaHRseV9i
cmFuY2gnOworICAgIHJldHVybiAkcXVlcnlfdmFyczsKK30pOworCiBhZGRfZmlsdGVyKCd0aGVf
dGl0bGUnLCBmdW5jdGlvbiggJHRpdGxlICkgewogICAgIGlmICggaXNfYWRtaW4oKSApIHJldHVy
biAkdGl0bGU7CiAgICAgJHRpdGxlID0gc3RyX3JlcGxhY2UoIjogIiwgIjo8YnI+IiwgJHRpdGxl
KTsKQEAgLTc0LDcgKzEyMyw4IEBAIGFkZF9hY3Rpb24oJ3dwX2hlYWQnLCBmdW5jdGlvbiAoKSB7
CiAKIGFkZF9hY3Rpb24oJ3RoZV9wb3N0JywgZnVuY3Rpb24oJHBvc3QpIHsKICAgICBnbG9iYWwg
JHBhZ2VzOwotICAgIGlmICghaXNfc2luZ2xlKCkpIHJldHVybjsKKworICAgIGlmICghKGlzX3Np
bmdsZSgpIHx8IGlzX3BhZ2UoKSkpIHJldHVybjsKIAogICAgICRjb250ZW50ID0gJHBvc3QtPnBv
c3RfY29udGVudDsKICAgICBpZiAoc3RycG9zKCRjb250ZW50LCAnYWJvdmV0aXRsZScpID09PSBm
YWxzZSkgcmV0dXJuOwpAQCAtOTksMTEgKzE0OSw2IEBAIGFkZF9maWx0ZXIoJ3ByZV9nZXRfcG9z
dHMnLCBmdW5jdGlvbiAoJHF1ZXJ5KSB7CiAgICAgcmV0dXJuICRxdWVyeTsKIH0pOwogCi1pbmNs
dWRlKCd3aWRnZXRzL3Bvc3QucGhwJyk7Ci1pbmNsdWRlKCd3aWRnZXRzL2ljb24ucGhwJyk7Ci1p
bmNsdWRlKCd3aWRnZXRzL3R3aXR0ZXIucGhwJyk7Ci1pbmNsdWRlKCd3aWRnZXRzL3BhZ2UucGhw
Jyk7Ci0KIGFkZF9maWx0ZXIoICdnZXRfdGhlX2V4Y2VycHQnLCBmdW5jdGlvbiggJGV4Y2VycHQg
KSB7CiAgICAgJHNlbnRlbmNlcyA9IHByZWdfc3BsaXQoICcvKFwufCF8XD8pXHMvJywgJGV4Y2Vy
cHQsIDIsIFBSRUdfU1BMSVRfREVMSU1fQ0FQVFVSRSApOwogCkBAIC0xMTQsNiArMTU5LDExIEBA
IGFkZF9maWx0ZXIoICdnZXRfdGhlX2V4Y2VycHQnLCBmdW5jdGlvbiggJGV4Y2VycHQgKSB7CiAK
IH0pOwogCitpbmNsdWRlKCd3aWRnZXRzL3Bvc3QucGhwJyk7CitpbmNsdWRlKCd3aWRnZXRzL2lj
b24ucGhwJyk7CitpbmNsdWRlKCd3aWRnZXRzL3R3aXR0ZXIucGhwJyk7CitpbmNsdWRlKCd3aWRn
ZXRzL3BhZ2UucGhwJyk7CisKIGZ1bmN0aW9uIHRhYmxlX29mX2NvbnRlbnRzKCkgewogICAgIGlm
ICggY2xhc3NfZXhpc3RzKCdXZWJLaXRUYWJsZU9mQ29udGVudHMnKSApCiAgICAgICAgIFdlYktp
dFRhYmxlT2ZDb250ZW50czo6bWFya3VwKCk7CkBAIC0xNjQsNiArMjE0LDkgQEAgZnVuY3Rpb24g
dGFnX3Bvc3RfaW1hZ2VfbHVtaW5hbmNlKCAkcG9zdF9pZCApIHsKIH0KIAogZnVuY3Rpb24gY2Fs
Y3VsYXRlX2ltYWdlX2x1bWluYW5jZSgkaW1hZ2VfdXJsKSB7CisgICAgaWYgKCFmdW5jdGlvbl9l
eGlzdHMoJ0ltYWdlQ3JlYXRlRnJvbVN0cmluZycpKQorICAgICAgICByZXR1cm4gMTsKKwogICAg
IC8vIEdldCBvcmlnaW5hbCBpbWFnZSBkaW1lbnNpb25zCiAgICAgJHNpemUgPSBnZXRpbWFnZXNp
emUoJGltYWdlX3VybCk7CiAKQEAgLTIyOCw4ICsyODEsNiBAQCBhZGRfZmlsdGVyKCdwcmV2aW91
c19wb3N0X2xpbmsnLCBmdW5jdGlvbiAoICRmb3JtYXQgKSB7CiAgICAgcmV0dXJuIHN0cl9yZXBs
YWNlKCdocmVmPScsICdjbGFzcz0icGFnZS1udW1iZXJzIHByZXYtcG9zdCIgaHJlZj0nLCAkZm9y
bWF0KTsKIH0pOwogCi0KLQogLy8gUXVldWUgZ2xvYmFsIHNjcmlwdHMKIGFkZF9hY3Rpb24oICd3
cF9lbnF1ZXVlX3NjcmlwdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgd3BfcmVnaXN0ZXJfc2NyaXB0
KApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJr
aXQvaW1hZ2VzL2Rvd25sb2FkLnN2ZyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90
aGVtZXMvd2Via2l0L2ltYWdlcy9kb3dubG9hZC5zdmcKaW5kZXggZjVlZDJmZjZhZjMzYTcxNjdm
ZTk5ZTVlYzNlNTI3NTZmZmVmMDA4NS4uNGY5OTAzMGZmMzE2MzU3ODEzZWNhMGFhMjUwZjhmMDgx
NDNiMjk5ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1l
cy93ZWJraXQvaW1hZ2VzL2Rvd25sb2FkLnN2ZworKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dw
LWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9pbWFnZXMvZG93bmxvYWQuc3ZnCkBAIC0xLDggKzEsOCBA
QAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDwhLS0gQ29weXJpZ2h0
IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KIDxzdmcgdmlld0Jv
eD0iMCAwIDQ3IDQ3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyI+Ci0gICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEi
IGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgPgotICAgICAgICA8Y2lyY2xlIGlkPSJP
dmFsLTEiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMyIgY3g9IjIzLjUiIGN5PSIyMy41
IiByPSIyMS41Ii8+Ci0gICAgICAgIDxwYXRoIGQ9Ik0gMjEuOTAwMDI0NCAzMS45Mjk1NDg2IEwg
MTEuOTcwNDc1OCAyMiBMIDEwIDIzLjk2ODc4NzMgTCAyMy4zOTgyMjIyIDM3LjM2ODY5OCBMIDM2
Ljc5MzA2NzUgMjMuOTY4Nzg3MyBMIDM0LjgyMjU5MTcgMjIgTCAyNC45MDAwMjQ0IDMxLjkyNTUw
MDMgTCAyNC45MDAwMjQ0IDExLjUgTCAyNC45MDAwMjQ0IDEwIEwgMjEuOTAwMDI0NCAxMCBMIDIx
LjkwMDAyNDQgMTEuNSBMIDIxLjkwMDAyNDQgMzEuOTI5NTQ4NiBMIDIxLjkwMDAyNDQgMzEuOTI5
NTQ4NiBaIiBmaWxsPSJ3aGl0ZSIvPgorICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRo
PSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiID4KKyAgICAgICAgPGNpcmNsZSBz
dHJva2U9IiMwMDg4Y2MiIHN0cm9rZS13aWR0aD0iMyIgY3g9IjIzLjUiIGN5PSIyMy41IiByPSIy
MS41Ii8+CisgICAgICAgIDxwYXRoIGQ9Ik0gMjEuOTAwMDI0NCAzMS45Mjk1NDg2IEwgMTEuOTcw
NDc1OCAyMiBMIDEwIDIzLjk2ODc4NzMgTCAyMy4zOTgyMjIyIDM3LjM2ODY5OCBMIDM2Ljc5MzA2
NzUgMjMuOTY4Nzg3MyBMIDM0LjgyMjU5MTcgMjIgTCAyNC45MDAwMjQ0IDMxLjkyNTUwMDMgTCAy
NC45MDAwMjQ0IDExLjUgTCAyNC45MDAwMjQ0IDEwIEwgMjEuOTAwMDI0NCAxMCBMIDIxLjkwMDAy
NDQgMTEuNSBMIDIxLjkwMDAyNDQgMzEuOTI5NTQ4NiBMIDIxLjkwMDAyNDQgMzEuOTI5NTQ4NiBa
IiBmaWxsPSIjMDA4OGNjIi8+CiAgICAgPC9nPgogPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1l
cy93ZWJraXQvaW1hZ2VzL3NwaW5uZXIuc3ZnIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250
ZW50L3RoZW1lcy93ZWJraXQvaW1hZ2VzL3NwaW5uZXIuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZTIwMTJm
Mzc1MzBiNzFjYzYzYWRmMWQyYjkwZGE5NjIxOTdlZjkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJz
aXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9pbWFnZXMvc3Bpbm5lci5z
dmcKQEAgLTAsMCArMSw0MCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBpZD0ic2VhcmNoLXNwaW5uZXIiPgorICAgIDwhLS0g
Q29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKyAg
ICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibm9uZSI+
PC9yZWN0PgorICAgIDxyZWN0IHg9IjQ2LjUiIHk9IjQwIiB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIg
cng9IjMuNSIgcnk9IjMuNSIgZmlsbD0iYmxhY2siIHRyYW5zZm9ybT0icm90YXRlKDAgNTAgNTAp
IHRyYW5zbGF0ZSgwIC0zMCkiPiAgCisgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9w
YWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iMHMiIHJlcGVhdENvdW50PSJp
bmRlZmluaXRlIi8+CisgICAgPC9yZWN0PgorICAgIDxyZWN0IHg9IjQ2LjUiIHk9IjQwIiB3aWR0
aD0iNyIgaGVpZ2h0PSIyMCIgcng9IjMuNSIgcnk9IjMuNSIgZmlsbD0iYmxhY2siIHRyYW5zZm9y
bT0icm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4gIAorICAgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49
IjAuMDgzMzMzMzMzMzMzMzMzMzNzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgorICAgIDwv
cmVjdD4KKyAgICA8cmVjdCB4PSI0Ni41IiB5PSI0MCIgd2lkdGg9IjciIGhlaWdodD0iMjAiIHJ4
PSIzLjUiIHJ5PSIzLjUiIGZpbGw9ImJsYWNrIiB0cmFuc2Zvcm09InJvdGF0ZSg2MCA1MCA1MCkg
dHJhbnNsYXRlKDAgLTMwKSI+ICAKKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3Bh
Y2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSIwLjE2NjY2NjY2NjY2NjY2NjY2
cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KKyAgICA8L3JlY3Q+CisgICAgPHJlY3QgeD0i
NDYuNSIgeT0iNDAiIHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiByeD0iMy41IiByeT0iMy41IiBmaWxs
PSJibGFjayIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPiAg
CisgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIw
IiBkdXI9IjFzIiBiZWdpbj0iMC4yNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CisgICAg
PC9yZWN0PgorICAgIDxyZWN0IHg9IjQ2LjUiIHk9IjQwIiB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIg
cng9IjMuNSIgcnk9IjMuNSIgZmlsbD0iYmxhY2siIHRyYW5zZm9ybT0icm90YXRlKDEyMCA1MCA1
MCkgdHJhbnNsYXRlKDAgLTMwKSI+ICAKKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0i
b3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSIwLjMzMzMzMzMzMzMzMzMz
MzNzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgorICAgIDwvcmVjdD4KKyAgICA8cmVjdCB4
PSI0Ni41IiB5PSI0MCIgd2lkdGg9IjciIGhlaWdodD0iMjAiIHJ4PSIzLjUiIHJ5PSIzLjUiIGZp
bGw9ImJsYWNrIiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCki
PiAgCisgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRv
PSIwIiBkdXI9IjFzIiBiZWdpbj0iMC40MTY2NjY2NjY2NjY2NjY3cyIgcmVwZWF0Q291bnQ9Imlu
ZGVmaW5pdGUiLz4KKyAgICA8L3JlY3Q+CisgICAgPHJlY3QgeD0iNDYuNSIgeT0iNDAiIHdpZHRo
PSI3IiBoZWlnaHQ9IjIwIiByeD0iMy41IiByeT0iMy41IiBmaWxsPSJibGFjayIgdHJhbnNmb3Jt
PSJyb3RhdGUoMTgwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4gIAorICAgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49
IjAuNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CisgICAgPC9yZWN0PgorICAgIDxyZWN0
IHg9IjQ2LjUiIHk9IjQwIiB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgcng9IjMuNSIgcnk9IjMuNSIg
ZmlsbD0iYmxhY2siIHRyYW5zZm9ybT0icm90YXRlKDIxMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMw
KSI+ICAKKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIg
dG89IjAiIGR1cj0iMXMiIGJlZ2luPSIwLjU4MzMzMzMzMzMzMzMzMzRzIiByZXBlYXRDb3VudD0i
aW5kZWZpbml0ZSIvPgorICAgIDwvcmVjdD4KKyAgICA8cmVjdCB4PSI0Ni41IiB5PSI0MCIgd2lk
dGg9IjciIGhlaWdodD0iMjAiIHJ4PSIzLjUiIHJ5PSIzLjUiIGZpbGw9ImJsYWNrIiB0cmFuc2Zv
cm09InJvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPiAgCisgICAgICAgIDxhbmlt
YXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdp
bj0iMC42NjY2NjY2NjY2NjY2NjY2cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KKyAgICA8
L3JlY3Q+CisgICAgPHJlY3QgeD0iNDYuNSIgeT0iNDAiIHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiBy
eD0iMy41IiByeT0iMy41IiBmaWxsPSJibGFjayIgdHJhbnNmb3JtPSJyb3RhdGUoMjcwIDUwIDUw
KSB0cmFuc2xhdGUoMCAtMzApIj4gIAorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJv
cGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49IjAuNzVzIiByZXBlYXRDb3Vu
dD0iaW5kZWZpbml0ZSIvPgorICAgIDwvcmVjdD4KKyAgICA8cmVjdCB4PSI0Ni41IiB5PSI0MCIg
d2lkdGg9IjciIGhlaWdodD0iMjAiIHJ4PSIzLjUiIHJ5PSIzLjUiIGZpbGw9ImJsYWNrIiB0cmFu
c2Zvcm09InJvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPiAgCisgICAgICAgIDxh
bmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBi
ZWdpbj0iMC44MzMzMzMzMzMzMzMzMzM0cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KKyAg
ICA8L3JlY3Q+CisgICAgPHJlY3QgeD0iNDYuNSIgeT0iNDAiIHdpZHRoPSI3IiBoZWlnaHQ9IjIw
IiByeD0iMy41IiByeT0iMy41IiBmaWxsPSJibGFjayIgdHJhbnNmb3JtPSJyb3RhdGUoMzMwIDUw
IDUwKSB0cmFuc2xhdGUoMCAtMzApIj4gIAorICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1l
PSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49IjAuOTE2NjY2NjY2NjY2
NjY2NnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CisgICAgPC9yZWN0PgorPC9zdmc+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9y
Zy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvbmlnaHRseS1hcmNoaXZlcy5waHAgYi9XZWJzaXRl
cy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LWFyY2hpdmVzLnBo
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NmI3Y2M2NzVjMTg3YjJiYTFlMTEzYWNkZjg5ZTcxZWQwZWRhNTgxCi0t
LSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93
ZWJraXQvbmlnaHRseS1hcmNoaXZlcy5waHAKQEAgLTAsMCArMSwxNTkgQEAKKzw/cGhwCisvKioK
KyAqIFRlbXBsYXRlIE5hbWU6IE5pZ2h0bHkgQXJjaGl2ZXMKKyAqKi8KKworJGZpcnN0X2J1aWxk
ID0gMTE5OTQ7CiskbmlnaHRseV9idWlsZCA9IGdldF9uaWdodGx5X2J1aWxkKCk7CiskbGF0ZXN0
X2J1aWxkID0gJG5pZ2h0bHlfYnVpbGRbMF07CisKK2FkZF9hY3Rpb24oJ3dwX2hlYWQnLCBmdW5j
dGlvbigpIHsgPz4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFy
IGFqYXh1cmwgPSAnPD9waHAgZWNobyBhZG1pbl91cmwoJ2FkbWluLWFqYXgucGhwJyk7ID8+JzsK
KyAgICA8L3NjcmlwdD4KKzw/cGhwCit9KTsKKworYWRkX2ZpbHRlcigndGhlX2NvbnRlbnQnLCBm
dW5jdGlvbiAoJGNvbnRlbnQpIHsKKworICAgICRhcmNoaXZlcyA9IGdldF9uaWdodGx5X2FyY2hp
dmVzKDYwKTsKKworICAgIG9iX3N0YXJ0KCk7CisgICAgZm9yZWFjaCAoJGFyY2hpdmVzIGFzICRy
ZWNvcmQpOiA/PgorPGxpPgorICAgIDxhIGhyZWY9Ijw/cGhwIGVjaG8gZXNjX3VybCgkcmVjb3Jk
WzJdKTsgPz4iPjw/cGhwIGVjaG8gInIiIC4gJHJlY29yZFswXTsgPz48L2E+IDxzcGFuIGNsYXNz
PSJkYXRlIj48P3BocCBlY2hvICRyZWNvcmRbMV07ID8+PC9zcGFuPgorPC9saT4KKzw/cGhwIGVu
ZGZvcmVhY2g7CisgICAgJGxpc3QgPSBvYl9nZXRfY2xlYW4oKTsKKworICAgICRjb250ZW50ID0g
IjxkaXYgaWQ9XCJzZWFyY2gtZXJyb3JzXCI+PC9kaXY+PGRpdiBpZD1cInNlYXJjaC1yZXN1bHRz
XCIgY2xhc3M9XCJtdWx0aS1jb2x1bW5cIj48dWw+JGxpc3Q8L3VsPjwvZGl2PiI7CisKKyAgICBy
ZXR1cm4gJGNvbnRlbnQ7Cit9KTsKKworYWRkX2FjdGlvbiggJ3dwX2VucXVldWVfc2NyaXB0cycs
IGZ1bmN0aW9uKCkgeworICAgIHdwX2VucXVldWVfc2NyaXB0KCAnc2VhcmNoYnVpbGRzJywgZ2V0
X3RlbXBsYXRlX2RpcmVjdG9yeV91cmkoKSAuICcvc2NyaXB0cy9zZWFyY2hidWlsZHMuanMnLCBh
cnJheSgpLCAnMS4wLjAnLCB0cnVlICk7Cit9KTsKKworZ2V0X2hlYWRlcigpOworPz4KKzxzdHls
ZT4KKyNhcmNoaXZlcyBoMSB7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIG1hcmdpbi10
b3A6IDNyZW07Cit9CisKKyNhcmNoaXZlcyBoMSBpbWcgeworICAgIG1hcmdpbi1ib3R0b206IDFy
ZW07Cit9CisKKyNkb3dubG9hZHMgYmxvY2txdW90ZTpmaXJzdC1jaGlsZCB7CisgICAgY29sb3I6
ICM4RThFOTM7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogNHJlbTsK
KyAgICBsaW5lLWhlaWdodDogNnJlbTsKKyAgICBmb250LXdlaWdodDogMjAwOworfQorCisjZG93
bmxvYWRzIC5ib2R5Y29weSA+IGRpdiB7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAg
ICBwYWRkaW5nOiAwIDEuNXJlbSAzcmVtOworICAgIHdpZHRoOiA1MCU7CisgICAgdGV4dC1hbGln
bjogY2VudGVyOworICAgIGZsb2F0OiBsZWZ0OworfQorCisjZG93bmxvYWRzIGgyIHsKKyAgICBm
b250LXNpemU6IDMuMnJlbTsKK30KKworbGkgYSB7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAg
bGluZS1oZWlnaHQ6IDJyZW07Cit9CisKK2xpIHNwYW4geworICAgIGZvbnQtc2l6ZTogMS42cmVt
OworICAgIGNvbG9yOiAjOEU4RTkzOworfQorCisubXVsdGktY29sdW1uIHsKKyAgICAtd2Via2l0
LWNvbHVtbi1jb3VudDozOworICAgIC1tb3otY29sdW1uLWNvdW50OjM7CisgICAgY29sdW1uLWNv
dW50OjM7CisgICAgLXdlYmtpdC1jb2x1bW4tZ2FwOjNyZW07CisgICAgLW1vei1jb2x1bW4tZ2Fw
OjNyZW07CisgICAgY29sdW1uLWdhcDozcmVtOworICAgIGNvbHVtbnM6MzsKK30KKworLmJvZHlj
b3B5IHVsIHsKKyAgICBsaXN0LXN0eWxlOiBub25lOworICAgIG1hcmdpbjogMDsKKyAgICBwYWRk
aW5nOiAwOworfQorCisuYm9keWNvcHkgdWwgPiBsaSB7CisgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgIHdpZHRoOiAxMDAlOworICAgIG1hcmdpbi1ib3R0b206IDNyZW07Cit9CisKKy5i
b2R5Y29weSAuc2VhcmNoIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgdGV4dC1hbGln
bjogY2VudGVyOworfQorCisuc2VhcmNoIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisK
Ky5zZWFyY2ggaW5wdXQgeworICAgIHdpZHRoOiA2MCU7CisgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIGxlZnQ6IDIuMjVyZW07CisgICAgcGFkZGluZy1yaWdodDogNHJlbTsKK30KKworI3Nl
YXJjaC1zcGlubmVyIHsKKyAgICBsZWZ0OiAtMi4yNXJlbTsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgd2lkdGg6IDNyZW07CisgICAgaGVpZ2h0OiAzcmVtOworICAgIHBhZGRpbmc6IDAu
NXJlbTsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW47Cit9CisKKyNzZWFyY2gtc3Bpbm5lci5zZWFy
Y2hpbmcgeworICAgIHZpc2liaWxpdHk6IHZpc2libGU7Cit9CisKKzwvc3R5bGU+CisKKyAgICA8
P3BocCBpZiAoaGF2ZV9wb3N0cygpKSA6IHdoaWxlIChoYXZlX3Bvc3RzKCkpIDogdGhlX3Bvc3Qo
KTsgPz4KKworICAgICAgICA8YXJ0aWNsZSBjbGFzcz0icGFnZSIgaWQ9ImFyY2hpdmVzIj4KKwor
ICAgICAgICAgICAgPGgxPjw/cGhwIGJlZm9yZV90aGVfdGl0bGUoKTsgPz48YSBocmVmPSI8P3Bo
cCBlY2hvIGdldF9wZXJtYWxpbmsoKSA/PiIgcmVsPSJib29rbWFyayIgdGl0bGU9IlBlcm1hbmVu
dCBMaW5rOiA8P3BocCB0aGVfdGl0bGUoKTsgPz4iPjw/cGhwIHRoZV90aXRsZSgpOyA/PjwvYT48
L2gxPgorCisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Y29weSI+CisgICAgICAgICAgICAg
ICAgPD9waHAgaWYgKCRuaWdodGx5X2J1aWxkID4gMCk6ID8+CisgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0ic2VhcmNoIj4KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQi
IHBsYWNlaG9sZGVyPSJTZWFyY2ggYnVpbGRzOiA8P3BocCBlY2hvIGVzY19hdHRyKCRmaXJzdF9i
dWlsZCk7ID8+LTw/cGhwIGVjaG8gZXNjX2F0dHIoJGxhdGVzdF9idWlsZCk7ID8+IiBjbGFzcz0i
YnVpbGRzZWFyY2giPgorICAgICAgICAgICAgICAgICAgICA8P3BocCBpbmNsdWRlKCdpbWFnZXMv
c3Bpbm5lci5zdmcnKTsgPz4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAg
ICA8P3BocCBlbHNlOiA/PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMj5F
cnJvcjwvaDI+IDxwPlRoZXJlIHdhcyBhbiBwcm9ibGVtIGxvYWRpbmcgdGhlIGJ1aWxkIGFyY2hp
dmUgZGF0YS48L3A+PC9kaXY+CisgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CisgICAg
ICAgICAgICAgICAgPD9waHAgdGhlX2NvbnRlbnQoKTsgPz4KKyAgICAgICAgICAgIDwvZGl2Pgor
CisgICAgICAgIDwvYXJ0aWNsZT4KKworICAgIDw/cGhwIGVuZHdoaWxlOyBlbmRpZjsgPz4KKwor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIHZhciBidWlsZHMgPSA8P3BocCBl
Y2hvIGdldF9uaWdodGx5X2J1aWxkc19qc29uKCk7ID8+OworPC9zY3JpcHQ+CisKKzw/cGhwIGdl
dF9mb290ZXIoKTsgPz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LXN0YXJ0
LnBocCBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L25pZ2h0
bHktc3RhcnQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNDhhMmJmNDdjNDg2MjA2NjYxZTNiZDQzOGViMDQ4
M2QxNTAyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRl
bnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LXN0YXJ0LnBocApAQCAtMCwwICsxLDEzMiBAQAorPD9w
aHAKKy8qKgorICogVGVtcGxhdGUgTmFtZTogTmlnaHRseSBTdGFydCBQYWdlCisgKiovCisKKyRs
YXRlc3RfbmlnaHRseV9idWlsZCA9IGdldF9uaWdodGx5X2J1aWxkKCk7CiskbGF0ZXN0ID0gaW50
dmFsKCRsYXRlc3RfbmlnaHRseV9idWlsZFswXSk7CisKKyRicmFuY2ggPSBnZXRfcXVlcnlfdmFy
KCduaWdodGx5X2JyYW5jaCcpOworJGJ1aWxkID0gaW50dmFsKGdldF9xdWVyeV92YXIoJ25pZ2h0
bHlfYnVpbGQnKSk7CisKK2lmICgkYnVpbGQgPCAxMTk3NiB8fCBlbXB0eSgkYnJhbmNoKSkKKyAg
ICBoZWFkZXIoJ0xvY2F0aW9uOiAvbm90LWZvdW5kJyk7CisKK2dldF9oZWFkZXIoKTsKKworCith
ZGRfZmlsdGVyKCd0aGVfY29udGVudCcsIGZ1bmN0aW9uICgkY29udGVudCkgeworICAgICRicmFu
Y2ggPSBnZXRfcXVlcnlfdmFyKCduaWdodGx5X2JyYW5jaCcpOworICAgICRidWlsZCA9IGludHZh
bChnZXRfcXVlcnlfdmFyKCduaWdodGx5X2J1aWxkJykpOworCisgICAgJGNvbnRlbnQgPSBzcHJp
bnRmKCRjb250ZW50LCAiciRidWlsZCIsICRicmFuY2gpOworICAgIAorICAgIGlmIChlbXB0eSgk
YnVpbGQpKQorICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCdSdW5uaW5nIGJ1aWxkIHIw
JywgJycsICRjb250ZW50KTsKKyAgICAKKyAgICByZXR1cm4gJGNvbnRlbnQ7CisKK30pOworPz4K
KzxzdHlsZT4KK2JvZHkgeworICAgIGJhY2tncm91bmQ6ICMzMzMzMzM7Cit9CisKKyNuaWdodGx5
IHsKKyAgICBtYXJnaW46IDZyZW0gYXV0bzsKKyAgICBjb2xvcjogI2ZmZmZmZjsKK30KKworI25p
Z2h0bHkgaDEgeworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBtYXJnaW4tYm90dG9tOiAw
OworICAgIGNvbG9yOiAjZmZmZmZmOworICAgIGZvbnQtd2VpZ2h0OiAxMDA7CisgICAgZm9udC1z
aXplOiA5cmVtOworICAgIGxpbmUtaGVpZ2h0OiA5cmVtOworICAgIG1hcmdpbi10b3A6IDA7Cit9
CisKKyNuaWdodGx5IGgxICsgYmxvY2txdW90ZSB7CisgICAgY29sb3I6ICNGRUM4NEM7CisgICAg
dGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtc2l6ZTogM3JlbTsKKyAgICBsaW5lLWhlaWdo
dDogNC4ycmVtOworICAgIGZvbnQtd2VpZ2h0OiAyMDA7Cit9CisKKyNuaWdodGx5IGltZyB7Cisg
ICAgd2lkdGg6IDMzJTsKK30KKworI25pZ2h0bHkgLmJvZHljb3B5ID4gcDpudGgtY2hpbGQoMykg
eworICAgIHRleHQtYWxpZ246IHJpZ2h0OworfQorCisjbmlnaHRseSBibG9ja3F1b3RlOmZpcnN0
LWNoaWxkIHAgeworICAgIGNvbG9yOiAjRkZEMTVFOworfQorCisjbmlnaHRseSBhIHsKKyAgICBj
b2xvcjogI2VkZDI5MTsKK30KKworI25pZ2h0bHkgYTpob3ZlciB7CisgICAgY29sb3I6ICNmZmZm
ZmY7Cit9CisKKyNuaWdodGx5IGEuZG93bmxvYWQgeworICAgIGNvbG9yOiAjZmZmZmZmOworICAg
IGZvbnQtc2l6ZTogM3JlbTsKK30KKworaHIgeworICAgIGJvcmRlci1jb2xvcjogIzc3Nzc3NzsK
K30KKworI2Zvb3Rlci1uYXYgYSB7CisgICAgY29sb3I6ICM5OTk5OTk7Cit9CisKKy51cGRhdGUt
bmFnIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY5RDAwOworICAgIGNvbG9yOiAjMDAwMDAw
OworICAgIHdpZHRoOiAxMDB2dzsKKyAgICBsZWZ0OiA1MCU7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MHZ3KTsKKyAgICBwYWRkaW5nOiAxLjVy
ZW07CisgICAgcGFkZGluZy10b3A6IDE0LjVyZW07CisgICAgdG9wOiAwOworfQorCisudXBkYXRl
LW5hZyBwIHsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC1zaXplOiAycmVtOwor
fQorCisudXBkYXRlLW5hZyArICNuaWdodGx5IHsKKyAgICBtYXJnaW4tdG9wOiA5cmVtOworfQor
Cis8L3N0eWxlPgorPD9waHAgaWYgKCAoaW50KSRidWlsZCA8IChpbnQpJGxhdGVzdCApOiA/Pgor
PGRpdiBjbGFzcz0idXBkYXRlLW5hZyI+CisgICAgPHA+PD9waHAgJHByb21wdF9tZXRhID0gZ2V0
X3Bvc3RfbWV0YShnZXRfdGhlX0lEKCksICdwcm9tcHQnKTsgZWNobyBlc2NfaHRtbCgkcHJvbXB0
X21ldGFbMF0pOyA/PjwvcD4KKzwvZGl2PgorPD9waHAgZW5kaWY7ID8+CisKKyAgICA8P3BocCBp
ZiAoaGF2ZV9wb3N0cygpKSA6IHdoaWxlIChoYXZlX3Bvc3RzKCkpIDogdGhlX3Bvc3QoKTsgPz4K
KworICAgICAgICA8YXJ0aWNsZSBjbGFzcz0icGFnZSIgaWQ9Im5pZ2h0bHkiPgorICAgICAgICAg
ICAgCisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Y29weSI+CisgICAgICAgICAgICAgICAg
PD9waHAgdGhlX2NvbnRlbnQoJycpOyA/PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
ICAKKyAgICAgICAgPC9hcnRpY2xlPgorCisgICAgPD9waHAgZW5kd2hpbGU7IGVuZGlmOyA/Pgor
Cis8P3BocCBnZXRfZm9vdGVyKCk7ID8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvbmln
aHRseS5waHAgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9u
aWdodGx5LnBocAppbmRleCBmOWFmYmE4ZTk1MjQyMzBiNmJjYWI0MGY1NzRkNDZjYWU5ZWM1YTEz
Li4xYWFiYzhjNmEyMDc2ZGQ5ZTU1YTFkYTM3OGUzYTcxN2FiY2RhOTg0IDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5LnBocAor
KysgYi9XZWJzaXRlcy93ZWJraXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9uaWdodGx5
LnBocApAQCAtMyw0MSArMyw2IEBACiAgKiBUZW1wbGF0ZSBOYW1lOiBOaWdodGx5IERvd25sb2Fk
cwogICoqLwogCi1kZWZpbmUoJ1dFQktJVF9OSUdIVExZX0FSQ0hJVkVfVVJMJywgImh0dHA6Ly9u
aWdodGx5LndlYmtpdC5vcmcvYnVpbGRzL3RydW5rLyVzL2FsbCIpOwotCi1mdW5jdGlvbiBnZXRf
bmlnaHRseV9idWlsZCgpIHsKLSAgICByZXR1cm4gZ2V0X25pZ2h0bHlfZG93bmxvYWRfZGV0YWls
cygnbWFjJyk7Ci19Ci0KLWZ1bmN0aW9uIGdldF9uaWdodGx5X3NvdXJjZSgpIHsKLSAgICByZXR1
cm4gZ2V0X25pZ2h0bHlfZG93bmxvYWRfZGV0YWlscygnc3JjJyk7Ci19Ci0KLWZ1bmN0aW9uIGdl
dF9uaWdodGx5X2Rvd25sb2FkX2RldGFpbHMoICR0eXBlID0gJ21hYycgKSB7Ci0gICAgJHR5cGVz
ID0gYXJyYXkoJ21hYycsICdzcmMnKTsKLSAgICBpZiAoICEgaW5fYXJyYXkoJHR5cGUsICR0eXBl
cykgKSAKLSAgICAgICAgJHR5cGUgPSAkdHlwZXNbMF07Ci0gICAgCi0gICAgJGNhY2hla2V5ID0g
J25pZ2h0bHlfZG93bmxvYWRfJyAuICR0eXBlOwotICAgIGlmICggZmFsc2UgIT09ICggJGNhY2hl
ZCA9IGdldF90cmFuc2llbnQoJGNhY2hla2V5KSApICkKLSAgICAgICAgcmV0dXJuIGpzb25fZGVj
b2RlKCRjYWNoZWQpOwotCQotICAgICR1cmwgPSBzcHJpbnRmKFdFQktJVF9OSUdIVExZX0FSQ0hJ
VkVfVVJMLCAkdHlwZSk7Ci0gICAgJHJlc291cmNlID0gZm9wZW4oJHVybCwgJ3InKTsKLSAgICAk
cmF3ZGF0YSA9IGZyZWFkKCRyZXNvdXJjZSwgMTI4KTsKLSAgICBsaXN0KCRkYXRhLCkgPSBleHBs
b2RlKCJcbiIsICRyYXdkYXRhKTsKLSAgICBmY2xvc2UoJHJlc291cmNlKTsKLSAgICAKLSAgICBp
ZiAoICEgZW1wdHkoJGRhdGEpICkgewotICAgICAgICAkcmVjb3JkID0gZXhwbG9kZSgnLCcsICRk
YXRhKTsKLSAgICAgICAgc2V0X3RyYW5zaWVudCgkY2FjaGVrZXksIGpzb25fZW5jb2RlKCRyZWNv
cmQpLCBIT1VSX0lOX1NFQ09ORFMgKiA2KTsgLy8gRXhwaXJlIGV2ZXJ5IDYgaG91cnMKLSAgICAg
ICAgcmV0dXJuICRyZWNvcmQ7Ci0JfQotICAgIAotICAgIHJldHVybiBmYWxzZTsKLSAgICAKLX0K
LQogYWRkX2ZpbHRlcigndGhlX2NvbnRlbnQnLCBmdW5jdGlvbiAoJGNvbnRlbnQpIHsKICAgICAg
ICAgCiAgICAgJGJ1aWxkID0gZ2V0X25pZ2h0bHlfYnVpbGQoKTsKQEAgLTEwMCwxMCArNjUsNiBA
QCBib2R5IHsKICAgICBmb250LXdlaWdodDogMjAwOwogfQogCi0jbmlnaHRseSBpbWcgewotICAg
IHdpZHRoOiAzMyU7Ci19Ci0KICNuaWdodGx5IGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQgcCB7CiAg
ICAgY29sb3I6ICNGRkQxNUU7CiB9CkBAIC0xMjQsNiArODUsNyBAQCBib2R5IHsKIC5wYWdlLXRl
bXBsYXRlLW5pZ2h0bHkgaHIgewogICAgIGJvcmRlci1jb2xvcjogIzk5OTsKIH0KKwogLnBhZ2Ut
dGVtcGxhdGUtbmlnaHRseSAjZm9vdGVyLW5hdiBhIHsKICAgICBjb2xvcjogIzk5OTsKIH0KZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L3Nj
cmlwdHMvc2VhcmNoYnVpbGRzLmpzIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250ZW50L3Ro
ZW1lcy93ZWJraXQvc2NyaXB0cy9zZWFyY2hidWlsZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg3NDBlNDk1
MDAyY2VhZjgyMWYwMmMxMWM1MWEyNGQ2YjY4MDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNp
dGVzL3dlYmtpdC5vcmcvd3AtY29udGVudC90aGVtZXMvd2Via2l0L3NjcmlwdHMvc2VhcmNoYnVp
bGRzLmpzCkBAIC0wLDAgKzEsMTA2IEBACisoZnVuY3Rpb24oZG9jdW1lbnQpIHsKKworICAgIHZh
ciBpbnB1dExpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dC5idWlsZHNlYXJj
aCcpLAorICAgICAgICB1aSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2gtcmVzdWx0
cycpLAorICAgICAgICBzcGlubmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1z
cGlubmVyJyksCisgICAgICAgIGVycm9ycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFy
Y2gtZXJyb3JzJyksCisgICAgICAgIGxvYWRlZCA9IHVpLmxhc3RDaGlsZC5jbG9uZU5vZGUodHJ1
ZSksCisgICAgICAgIGlucHV0cyA9IFtdLnNsaWNlLmNhbGwoaW5wdXRMaXN0KTsKKyAgICAgICAg
CisgICAgZm9yICh2YXIgaSBpbiBpbnB1dHMpIHsKKyAgICAgICAgdmFyIGlucHV0ID0gaW5wdXRz
W2ldOworICAgICAgICBpbml0c2VhcmNoKGlucHV0KTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rp
b24gaW5pdHNlYXJjaChpbnB1dCkgeworICAgICAgICAKKyAgICAgICAgdmFyIGRlbGF5VGltZXIg
PSBudWxsOworICAgICAgICAKKyAgICAgICAgLy8gaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9j
dXMnLCBzZW5kU2VhcmNoKTsKKyAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAn
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBpZiAoIGRlbGF5VGltZXIgIT0gbnVsbCApCisg
ICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlbGF5VGltZXIpOworICAgICAgICAgICAgZGVs
YXlUaW1lciA9IHNldFRpbWVvdXQoc2VuZFNlYXJjaCwgNTAwKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIAorICAgICAgICBmdW5jdGlvbiB4aHJQcm9taXNlKHVybCkgeworICAgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
ICAgIHZhciBYSFIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgICAgICAgICBYSFIu
b3BlbignR0VUJywgdXJsLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBYSFIucmVzcG9uc2VUeXBl
ID0gImpzb24iOworCisgICAgICAgICAgICAgICAgWEhSLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoWEhSLnN0YXR1cyA9PSAyMDAgJiYgWEhSLnJlc3BvbnNl
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFhIUi5yZXNwb25zZSk7CisgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSByZWplY3Qoe3JlcXVlc3Q6IFhIUiwgdXJsOnVybH0pOwor
ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgWEhSLm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHtyZXF1ZXN0OiBYSFIsIHVybDp1cmx9
KTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIFhIUi5zZW5kKCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU2VuZCB0aGUgc2Vh
cmNoIHF1ZXJ5CisgICAgICAgIGZ1bmN0aW9uIHNlbmRTZWFyY2ggKGUpIHsKKyAgICAgICAgICAg
IGRlbGF5VGltZXIgPSBudWxsOworICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKKyAgICAgICAg
ICAgIHZhciBxdWVyeSA9IGlucHV0LnZhbHVlLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBp
ZiAocXVlcnkgPT0gJycgfHwgcXVlcnkubGVuZ3RoIDwgMykKKyAgICAgICAgICAgICAgICByZXR1
cm4gdWkucmVwbGFjZUNoaWxkKGxvYWRlZCwgdWkubGFzdENoaWxkKTsKKworICAgICAgICAgICAg
dmFyIGVuZHBvaW50ID0gbmV3IFVSTChhamF4dXJsICsgIj9hY3Rpb249c2VhcmNoX25pZ2h0bHlf
YnVpbGRzJnF1ZXJ5PSIgKyBxdWVyeSk7CisgICAgICAgICAgICB2YXIgc2VhcmNoUmVzdWx0cyA9
IHhoclByb21pc2UoZW5kcG9pbnQpOworICAgICAgICAgICAgc3Bpbm5lci5jbGFzc0xpc3QuYWRk
KCdzZWFyY2hpbmcnKTsKKyAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMudGhlbihkaXNwbGF5UmVz
dWx0cykuY2F0Y2goZGlzcGxheUVycm9yKTsgICAgICAgICAgICAKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGRpc3BsYXlSZXN1bHRzKHJlc3VsdHMpIHsKKyAgICAgICAgICAgIHZhciBs
aXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKKyAgICAgICAgICAgIGlmICggcmVz
dWx0cy5sZW5ndGggPT0gMCApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlFcnJvcign
VGhlcmUgYXJlIG5vIGJ1aWxkcyBtYXRjaGluZyB5b3VyIHNlYXJjaC4gU2VhcmNoIGJ5IHJldmlz
aW9uIG51bWJlciwgb3IgYSByYW5nZSBvZiByZXZpc2lvbiBudW1iZXJzOiAjIyMjIyMtIyMjIyMj
Jyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAodmFyIGVudHJ5IG9mIHJlc3VsdHMp
CisgICAgICAgICAgICAgICAgYWRkRW50cnkoZW50cnlbMF0sIGVudHJ5WzFdLCBlbnRyeVsyXSk7
CisgICAgICAgICAgICB1aS5yZXBsYWNlQ2hpbGQobGlzdCwgdWkubGFzdENoaWxkKTsKKyAgICAg
ICAgICAgIHNwaW5uZXIuY2xhc3NMaXN0LnJlbW92ZSgnc2VhcmNoaW5nJyk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEVudHJ5IChidWlsZCwgZGF0ZXRpbWUsIGRvd25s
b2FkKSB7CisgICAgICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bGknKSwKKyAgICAgICAgICAgICAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2EnKSwKKyAgICAgICAgICAgICAgICBkYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpOworCisgICAgICAgICAgICAgICAgbGluay5ocmVmID0gZG93bmxvYWQ7CisgICAgICAgICAg
ICAgICAgbGluay5pbm5lclRleHQgPSAiciIgKyBidWlsZDsKKworICAgICAgICAgICAgICAgIGRh
dGUuY2xhc3NMaXN0LmFkZCgnZGF0ZScpOworICAgICAgICAgICAgICAgIGRhdGUuaW5uZXJUZXh0
ID0gZGF0ZXRpbWU7CisKKyAgICAgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChsaW5rKTsKKyAg
ICAgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkYXRlKTsKKyAgICAgICAgICAgICAgICBsaXN0
LmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgZnVuY3Rpb24gZGlzcGxheUVycm9yKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHZhciBu
b3RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAgICAgICAgIGlmICgg
bWVzc2FnZSA9PT0gdW5kZWZpbmVkICkgCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdBIGNv
bW11bmljYXRpb24gZXJyb3Igb2NjdXJlZCBwcmV2ZW50aW5nIGFueSByZXN1bHRzIGZyb20gYmVp
bmcgcmV0dXJuZWQgYnkgdGhlIHNlcnZlci4nOworCisgICAgICAgICAgICBub3RlLmNsYXNzTGlz
dC5hZGQoJ25vdGUnKTsKKyAgICAgICAgICAgIG5vdGUuaW5uZXJIVE1MID0gbWVzc2FnZTsKKwor
ICAgICAgICAgICAgZXJyb3JzLmFwcGVuZENoaWxkKG5vdGUpOworCisgICAgICAgICAgICBzcGlu
bmVyLmNsYXNzTGlzdC5yZW1vdmUoJ3NlYXJjaGluZycpOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBmdW5jdGlvbiBjbGVhckVycm9ycygpIHsKKyAgICAgICAgICAgIHdoaWxlIChlcnJv
cnMuZmlyc3RDaGlsZCkKKyAgICAgICAgICAgICAgICBlcnJvcnMucmVtb3ZlQ2hpbGQoZXJyb3Jz
LmZpcnN0Q2hpbGQpOworICAgICAgICB9CisgICAgICAgIAorICAgICB9CisKK30oZG9jdW1lbnQp
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy93ZWJr
aXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9zdHlsZS5jc3MgYi9XZWJzaXRlcy93ZWJr
aXQub3JnL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9zdHlsZS5jc3MKaW5kZXggZjI4M2Y5ZjU4
MGU3ODlmMGZhZGJiODdlMzQyZTFmMDAyZTZiNjYwZi4uOTUwNjc4NzdjOGRiMGEwZWFiMDJjNzZi
ODE5ZDk1MTk4NGZiYzdiZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy93cC1jb250
ZW50L3RoZW1lcy93ZWJraXQvc3R5bGUuY3NzCisrKyBiL1dlYnNpdGVzL3dlYmtpdC5vcmcvd3At
Y29udGVudC90aGVtZXMvd2Via2l0L3N0eWxlLmNzcwpAQCAtMTM2LDYgKzEzNiw0MiBAQCBoNiBh
W25hbWVdIHsKICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiB9CiAKK2lucHV0W3R5cGU9dGV4dF0g
eworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94
OworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgaGVpZ2h0OiA0LjJyZW07CisgICAgcGFk
ZGluZy10b3A6IDNweDsKKyAgICBtYXJnaW4tYm90dG9tOiAzcmVtOworICAgIHBhZGRpbmctbGVm
dDogMS41cmVtOworICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsKKyAgICBjb2xvcjogIzMzMzMz
MzsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNmQ2ZDY7
CisgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgIGJhY2tncm91bmQ6IHdoaXRlOworICAgIGJh
Y2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7CisgICAgZm9udC1mYW1pbHk6ICJNeXJpYWQgU2V0
IFBybyIsICJIZWx2ZXRpY2EgTmV1ZSIsICJIZWx2ZXRpY2EiLCAiQXJpYWwiLCBzYW5zLXNlcmlm
OworICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzOworICAgIGZvbnQtd2VpZ2h0OiA0MDA7CisgICAg
bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKKyAgICBmb250LXNpemU6IDJyZW07Cit9CisKK2lucHV0
W3R5cGU9c3VibWl0XSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogIzFkOWJkOTsKKyAgICBiYWNr
Z3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjM2JhZWU3LCAjMDA4OGNjKTsKKyAgICBi
YWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIzNiYWVlNywgIzAwODhjYyk7CisgICAgYm9yZGVy
LXJhZGl1czogNHB4OworICAgIGNvbG9yOiB3aGl0ZTsKKyAgICBjdXJzb3I6IHBvaW50ZXI7Cisg
ICAgZm9udC1zaXplOiAxLjVyZW07CisgICAgZm9udC13ZWlnaHQ6IDUwMDsKKyAgICB0ZXh0LWFs
aWduOiBjZW50ZXI7CisgICAgYm9yZGVyOiAwOworfQorCisKIC5hZG1pbi1iYXIgYVtuYW1lXSB7
CiAgICAgdG9wOiBjYWxjKC0zMnB4IC0gM3JlbSk7CiB9CkBAIC0xMDQwLDYgKzEwNzYsMTAgQEAg
YXJ0aWNsZSAuYWxpZ25ub25lLnNpemUtZnVsbCB7CiAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTUwdncsIDApOwogfQogCithcnRpY2xlIC5hYm92ZXRpdGxlIHsKKyAgICBtYXJnaW4tYm90dG9t
OiAwLjhlbTsKK30KKwogYXJ0aWNsZSAucHVsbC1sZWZ0IHsKICAgICBmbG9hdDogbGVmdDsKICAg
ICBtYXJnaW46IDEuNXJlbSAxLjVyZW0gMS41cmVtIC0yNSU7CkBAIC0xMzg4LDE3ICsxNDI4LDYg
QEAgaGVhZGVyIC5tZW51LWl0ZW0geyAvKiBhZGQgYm90dG9tIGRpbWVuc2lvbiB0byBtYWluIG1l
bnUgaXRlbXMgKi8KICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsKIH0KIAotLyogSW1wcm92ZXMg
bW91c2UgYWNjZXNzaWJpbGl0eSBvZiBtZW51cyAqLwotLypoZWFkZXIgLm1lbnUgPiAubWVudS1p
dGVtLWhhcy1jaGlsZHJlbjpob3ZlciA+IGE6OmJlZm9yZSB7Ci0gICAgcG9zaXRpb246IGFic29s
dXRlOwotICAgIGNvbnRlbnQ6ICcnOwotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAw
JTsKLSAgICBwYWRkaW5nOiAwcmVtIDEwcmVtIDFyZW0gMDsKLSAgICB0b3A6IDJyZW07Ci0gICAg
cmlnaHQ6IC0zcmVtOwotfQotKi8KIC5zdWItbWVudS1sYXllciB7CiAgICAgdGV4dC1hbGlnbjog
Y2VudGVyOwogICAgIHBhZGRpbmc6IDNyZW07CkBAIC0xNzA0LDcgKzE3MzMsNiBAQCBoZWFkZXIg
Lm1lbnUtaXRlbSB7IC8qIGFkZCBib3R0b20gZGltZW5zaW9uIHRvIG1haW4gbWVudSBpdGVtcyAq
LwogICAgICAgICBmbG9hdDogbm9uZTsKICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAg
ICAgICBtYXJnaW4tYm90dG9tOiAzcmVtOwotICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAg
IH0KIAogICAgIGFydGljbGUgLmJ5bGluZSBwIHsKQEAgLTE3MjYsNyArMTc1NCw2IEBAIGhlYWRl
ciAubWVudS1pdGVtIHsgLyogYWRkIGJvdHRvbSBkaW1lbnNpb24gdG8gbWFpbiBtZW51IGl0ZW1z
ICovCiAgICAgICAgIGZsb2F0OiBub25lOwogICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAg
ICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07Ci0gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAg
ICAgfQogCiAgICAgYXJ0aWNsZSAuYnlsaW5lIHAgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>