<?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>145262</bug_id>
          
          <creation_ts>2015-05-21 05:18:16 -0700</creation_ts>
          <short_desc>[Streams API] Implement pulling of a source by a ReadableStream</short_desc>
          <delta_ts>2015-06-10 01:11:05 -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>WebCore Misc.</component>
          <version>528+ (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>
          <dependson>145210</dependson>
          <blocked>138967</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096562</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-21 05:18:16 -0700</bug_when>
    <thetext>At start time or after reading some data, a ReadableStream may want to pull data from its source until a limit.
This mechanism should be implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100602</commentid>
    <comment_count>1</comment_count>
      <attachid>254556</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-09 01:16:50 -0700</bug_when>
    <thetext>Created attachment 254556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100607</commentid>
    <comment_count>2</comment_count>
      <attachid>254557</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-09 01:58:21 -0700</bug_when>
    <thetext>Created attachment 254557
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100653</commentid>
    <comment_count>3</comment_count>
      <attachid>254569</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-09 07:59:33 -0700</bug_when>
    <thetext>Created attachment 254569
Fixed typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100672</commentid>
    <comment_count>4</comment_count>
      <attachid>254569</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-09 09:49:45 -0700</bug_when>
    <thetext>Comment on attachment 254569
Fixed typo

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

&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:108
&gt; +    ExecState&amp; exec= *globalObject()-&gt;globalExec();

Missing space here before before the &quot;=&quot; sign. Also, lately I have been thinking we should start using “state” as the name for this rather then “exec”.

&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:153
&gt; +bool ReadableJSStream::checkForException(JSC::ExecState&amp; exec)

I don’t think the name for this is exactly right; this does more than just “check for” an exception. It moves the exception from the execution state to the stream object. It’s a lot like “store error” in fact. I think maybe the storeError that doesn’t take an argument should just do this if there’s an exception in the exception state.

I also think the idea of having this function do the hadException boolean check is so great. If the caller needs to distinguish that case, I think checking hadException at the call site makes no sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100691</commentid>
    <comment_count>5</comment_count>
      <attachid>254569</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-09 10:15:49 -0700</bug_when>
    <thetext>Comment on attachment 254569
Fixed typo

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

&gt;&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:108
&gt;&gt; +    ExecState&amp; exec= *globalObject()-&gt;globalExec();
&gt; 
&gt; Missing space here before before the &quot;=&quot; sign. Also, lately I have been thinking we should start using “state” as the name for this rather then “exec”.

OK

&gt;&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:153
&gt;&gt; +bool ReadableJSStream::checkForException(JSC::ExecState&amp; exec)
&gt; 
&gt; I don’t think the name for this is exactly right; this does more than just “check for” an exception. It moves the exception from the execution state to the stream object. It’s a lot like “store error” in fact. I think maybe the storeError that doesn’t take an argument should just do this if there’s an exception in the exception state.
&gt; 
&gt; I also think the idea of having this function do the hadException boolean check is so great. If the caller needs to distinguish that case, I think checking hadException at the call site makes no sense.

Initially, I did a first version doing everything in storeError().
The issue is that storeError() will always store an error, even if none is provided, in case of &quot;controller.error()&quot; for instance.
We would need to do twice a exec.hadException() check if doing everything in storeError().

I plan to rewrite this using &quot;void ReadableJSStream::storeException(ExecState&amp;)&quot; in lieu of checkForException.
Please let me know if you have any better idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100753</commentid>
    <comment_count>6</comment_count>
      <attachid>254590</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-09 12:44:10 -0700</bug_when>
    <thetext>Created attachment 254590
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100939</commentid>
    <comment_count>7</comment_count>
      <attachid>254590</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-10 01:11:00 -0700</bug_when>
    <thetext>Comment on attachment 254590
Patch for landing

Clearing flags on attachment: 254590

Committed r185406: &lt;http://trac.webkit.org/changeset/185406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100940</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-10 01:11:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254556</attachid>
            <date>2015-06-09 01:16:50 -0700</date>
            <delta_ts>2015-06-09 01:58:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145262-20150609101623.patch</filename>
            <type>text/plain</type>
            <size>15841</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM0ZDI4ZGQxMDQ4MmIx
NmFlMTY4ZDE0ZGMwYWQwM2IwMmEwMzVmOC4uMWVkZTBmMjE2NjdiN2NjMTg4OTJhMjAxMzZhODlk
NjBjMThmN2U3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE1LTA2LTA5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAorICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBwdWxsaW5nIG9mIGEgc291cmNlIGJ5IGEgUmVhZGFibGVTdHJlYW0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5vYm9keSAoT09QUyEpCisKKyAgICAgICAgSW50cm9kdWNlZCBhYnN0
cmFjdCBSZWFkYWJsZVN0cmVhbTo6ZG9QdWxsKCkgd2hpY2ggaXMgb3ZlcnJpZGVuIGluIFJlYWRh
YmxlSlNTdHJlYW0uCisgICAgICAgIEFkZGVkIHN1cHBvcnQgdG8gY2FsbCB0aGUgInB1bGwiIEpT
IGNhbGxiYWNrIGluIFJlYWRhYmxlSlNTdHJlYW06OmRvUHVsbCgpLgorICAgICAgICBBZGRlZCBj
YWxscyB0byBwdWxsIGFzIHJlcXVlc3RlZCBieSB0aGUgc3BlYyAod2hlbiByZXNvbHZpbmcgYSBy
ZWFkIGNhbGxiYWNrLCBhdCBzdGFydCB0aW1lLi4uKS4KKworICAgICAgICBGaXhlZCBpc3N1ZSBp
biBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6cmVhZCgpICh1c2Ugb2Ygc3VjY2Vzc0NhbGxiYWNrKEpT
VmFsdWUoKSkgaW4gbGlldSBvZiBlbmRDYWxsYmFjaygpKQorCisgICAgICAgIENvdmVyZWQgYnkg
cmViYXNlZCB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c3RhcnQpOiBjYWxsaW5n
IHB1bGwoKSBvbmNlIHN0YXJ0LgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW06OnB1
bGwpOiBjYWxsaW5nIGRvUHVsbCgpIGlmIHJlYWRhYmxlU3RyZWFtIHN0YXRlcyByZXF1aXJlcyB0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpyZWFkKTogY2FsbGluZyBwdWxs
KCkgYWZ0ZXIgcmVzb2x2aW5nIGEgcmVhZCBjYWxsYmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFk
ZXI6OnJlYWQpOiBmaXhlZCBKU1ZhbHVlKCkgYnVnLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6
ZG9QdWxsKTogY2FsbGluZyBvZiBKUyBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRh
YmxlSlNTdHJlYW06OnN0b3JlRXJyb3IpOiB1cGRhdGVkIHRvIGNhdGNoIHRocm93biBleGNlcHRp
b25zLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6ZW5xdWV1ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCisyMDE1LTA2LTA5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKwogICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRo
cm93CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2
MDAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5jcHAKaW5kZXggNWI2ODM1ODNjNjhkN2Q2MTE0M2JkZjkyODFlNjU2MmRmNmQ3ZDBhNS4uOWE1
NWVkODk0NjM4M2VlOWY5MGU5ZDg0YWNkZGYwYWJjYjU4ZDAyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCkBAIC0xNzEsNyArMTcx
LDkgQEAgdm9pZCBSZWFkYWJsZVN0cmVhbTo6cmVhZChSZWFkU3VjY2Vzc0NhbGxiYWNrJiYgc3Vj
Y2Vzc0NhbGxiYWNrLCBSZWFkRW5kQ2FsbGJhY2sKICAgICB9CiAgICAgaWYgKGhhc1ZhbHVlKCkp
IHsKICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKHJlYWQoKSk7Ci0gICAgICAgIGlmIChtX2Nsb3Nl
UmVxdWVzdGVkICYmICFoYXNWYWx1ZSgpKQorICAgICAgICBpZiAoIW1fY2xvc2VSZXF1ZXN0ZWQp
CisgICAgICAgICAgICBwdWxsKCk7CisgICAgICAgIGVsc2UgaWYgKCFoYXNWYWx1ZSgpKQogICAg
ICAgICAgICAgY2xvc2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAKaW5kZXggYjZmOTI4NjE4MTA0
YmUzNmIxMjE3NDIzNmZlNmYwNzNjNDdlN2EyYy4uMTJmZWZhMDMzMmExZjA0ODI5NmJmMDM0M2M1
Y2RjZmYxNzc4MWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVh
ZGFibGVKU1N0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFi
bGVKU1N0cmVhbS5jcHAKQEAgLTEwOSwxMCArMTA5LDE0IEBAIHZvaWQgUmVhZGFibGVKU1N0cmVh
bTo6ZG9QdWxsKCkKICAgICBKU0xvY2tIb2xkZXIgbG9jaygmZXhlYyk7CiAKICAgICBpbnZva2Uo
ZXhlYywgInB1bGwiKTsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5nIHByb21pc2Ug
YXMgcmVzdWx0IG9mIGNhbGxpbmcgcHVsbCBmdW5jdGlvbi4KIAotICAgIGlmIChleGVjLmhhZEV4
Y2VwdGlvbigpKQorICAgIGlmIChleGVjLmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIHN0b3Jl
RXJyb3IoZXhlYyk7CisgICAgICAgIEFTU0VSVCghZXhlYy5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5nIHBy
b21pc2UgYXMgcmVzdWx0IG9mIGNhbGxpbmcgcHVsbCBmdW5jdGlvbi4KIH0KIAogUmVmUHRyPFJl
YWRhYmxlSlNTdHJlYW0+IFJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCkBAIC0xNTEs
MTcgKzE1NSwxNyBAQCBKU1ZhbHVlIFJlYWRhYmxlSlNTdHJlYW06OmpzQ29udHJvbGxlcihFeGVj
U3RhdGUmIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYQogCiB2b2lkIFJlYWRhYmxlSlNT
dHJlYW06OnN0b3JlRXJyb3IoSlNDOjpFeGVjU3RhdGUmIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSBl
eGNlcHRpb247CiAgICAgaWYgKGV4ZWMuaGFkRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgZXhjZXB0
aW9uID0gZXhlYy5leGNlcHRpb24oKTsKKyAgICAgICAgSlNWYWx1ZSBleGNlcHRpb24gPSBleGVj
LmV4Y2VwdGlvbigpLT52YWx1ZSgpOwogICAgICAgICBleGVjLmNsZWFyRXhjZXB0aW9uKCk7Cisg
ICAgICAgIHN0b3JlRXJyb3IoZXhlYywgZXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBlbHNlIGlmIChleGVjLmFyZ3VtZW50Q291bnQoKSkKLSAgICAgICAgZXhjZXB0aW9u
ID0gZXhlYy5hcmd1bWVudCgwKTsKLSAgICBlbHNlCi0gICAgICAgIGV4Y2VwdGlvbiA9IGNyZWF0
ZUVycm9yKCZleGVjLCBBU0NJSUxpdGVyYWwoIkVycm9yIGZ1bmN0aW9uIGNhbGxlZC4iKSk7Ci0K
LSAgICBzdG9yZUVycm9yKGV4ZWMsIGV4Y2VwdGlvbik7CisgICAgaWYgKGV4ZWMuYXJndW1lbnRD
b3VudCgpKSB7CisgICAgICAgIHN0b3JlRXJyb3IoZXhlYywgZXhlYy5hcmd1bWVudCgwKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc3RvcmVFcnJvcihleGVjLCBjcmVhdGVFcnJvcigm
ZXhlYywgQVNDSUlMaXRlcmFsKCJFcnJvciBmdW5jdGlvbiBjYWxsZWQuIikpKTsKIH0KIAogdm9p
ZCBSZWFkYWJsZUpTU3RyZWFtOjpzdG9yZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU1Zh
bHVlIGVycm9yKQpAQCAtMTkzLDEyICsxOTcsMTQgQEAgdm9pZCBSZWFkYWJsZUpTU3RyZWFtOjpl
bnF1ZXVlKEV4ZWNTdGF0ZSYgZXhlYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNWYWx1ZSBj
aHVuayA9IGV4ZWMuYXJndW1lbnRDb3VudCgpID8gZXhlYy5hcmd1bWVudCgwKSA6IGpzVW5kZWZp
bmVkKCk7Ci0gICAgaWYgKHJlc29sdmVSZWFkQ2FsbGJhY2soY2h1bmspKQorICAgIGlmIChyZXNv
bHZlUmVhZENhbGxiYWNrKGNodW5rKSkgeworICAgICAgICBwdWxsKCk7CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBtX2NodW5rUXVldWUuYXBwZW5kKEpTQzo6U3Ryb25nPEpTQzo6VW5r
bm93bj4oZXhlYy52bSgpLCBjaHVuaykpOwogICAgIC8vIEZJWE1FOiBDb21wdXRlIGNodW5rIHNp
emUuCi0gICAgLy8gRklYTUU6IEFkZCBwdWxsaW5nIG9mIGRhdGEgaGVyZSBhbmQgYWxzbyB3aGVu
IGRhdGEgaXMgcGFzc2VkIHRvIHJlc29sdmUgY2FsbGJhY2suCisgICAgcHVsbCgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZUpTU3RyZWFtLmgKaW5kZXggNjljM2MwNDlmMDg5MDQ2MjM0ZWU5ZmZjZTk1YTc4ZjYxZmQ0
YjJkNy4uOTA0YzcyYjQ5ODBlM2MwMTNlMGE3OGZkYWJkNDRkYTY4MTdiNzk3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaApAQCAtNTIsNyArNTIs
NiBAQCBwdWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGpzQ29udHJvbGxlcihKU0M6OkV4ZWNTdGF0
ZSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAKICAgICB2b2lkIHN0b3JlRXJyb3IoSlNDOjpFeGVj
U3RhdGUmKTsKLSAgICB2b2lkIHN0b3JlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFs
dWUpOwogICAgIEpTQzo6SlNWYWx1ZSBlcnJvcigpIHsgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7IH0K
IAogICAgIHZvaWQgZW5xdWV1ZShKU0M6OkV4ZWNTdGF0ZSYpOwpAQCAtNjMsNiArNjIsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZG9TdGFydChKU0M6OkV4ZWNTdGF0ZSYpOwogCiAgICAgSlNDOjpK
U1ZhbHVlIGludm9rZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IGNoYXIqKTsKKyAgICB2b2lkIHN0
b3JlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUpOwogCiAgICAgdmlydHVhbCBi
b29sIGhhc1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUg
cmVhZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU2Y2ViNjljYjg5YTRlNzYzNTBjMTgxMGExMTU1MjI0
MjUyY2MzODAuLmUwMWY5ZWFmMDc2MzQ3MmE2MDEwNWJjMmZiMjJiMWY0MjBiNWRmODggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxNS0wNi0xMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxj
YWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxldCA8eW91ZW5uLmZhYmxldEBjcmYu
Y2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBJbXBsZW1lbnQgcHVsbGluZyBvZiBh
IHNvdXJjZSBieSBhIFJlYWRhYmxlU3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyNjIKKworICAgICAgICBSZXZpZXdlZCBieSBOb2JvZHkg
KE9PUFMhKQorCisgICAgICAgIFJlYmFzZWQgZXhwZWN0YXRpb25zLCByZW1vdmVkIHNvbWUgInRp
bWVvdXQ6IDUwIiBwYXJhbWV0ZXJzLgorICAgICAgICBSZW1vdmVkIGEgdGVzdCBmcm9tIHN0cmVh
bXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sIHRoYXQgY2Fu
bm90IHBhc3MKKyAgICAgICAgdW50aWwgcHJvbWlzZXMgcmV0dXJuZWQgdG8gc3RhcnQgYW5kIHB1
bGwgSlMgY2FsbGJhY2tzIGFyZSBoYW5kbGVkLgorICAgICAgICBGaXhlZCBidWcgaW4gc3RyZWFt
cy11dGlscy5qcyAod2FzIHVzaW5nIHRoZSBvbGQgQVBJIHJlcGxhY2VkIGJ5IGNvbnRyb2xsZXIp
LgorCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVy
bHlpbmctc291cmNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sOgorICAgICAgICAqIHN0
cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLmh0bWw6CisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
cmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanM6CisgICAgICAgICguc3RyZWFtLm5ldy5SZWFkYWJs
ZVN0cmVhbS4pOgorICAgICAgICAoLnN0cmVhbS5uZXcuUmVhZGFibGVTdHJlYW0pOgorICAgICAg
ICAoc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFtKToKKwogMjAxNS0wNi0wOSAgWGFiaWVyIFJvZHJp
Z3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxldCA8eW91
ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW1N0cmVhbXMgQVBJXSBSZWFkYWJs
ZUpTU3RyZWFtIHNob3VsZCBoYW5kbGUgSlMgc291cmNlIGdldHRlcnMgdGhhdCB0aHJvdwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFk
LXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
ZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4
dAppbmRleCBlODk4YWI1MzIyNDUwZjU1MTMwMGQyOTliZThjNDJmYThiYzZkYmM2Li4yODQxOWZh
MjI1ZmJmNjQ0ODlhNTM4Yzc0ZWJlZDFlZGI1YjI3YWE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2Vz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1l
bnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDgg
QEAgUEFTUyBVbmRlcmx5aW5nIHNvdXJjZSBzdGFydDogdGhyb3dpbmcgZ2V0dGVyCiBQQVNTIFVu
ZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBtZXRob2QgCiBQQVNTIFVuZGVybHlpbmcg
c291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxsKSAKIFBBU1MgVW5kZXJs
eWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChpbml0aWFsIHB1bGwpIAotVElNRU9V
VCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBnZXR0ZXIgKHNlY29uZCBwdWxsKSBU
ZXN0IHRpbWVkIG91dAotVElNRU9VVCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBt
ZXRob2QgKHNlY29uZCBwdWxsKSBUZXN0IHRpbWVkIG91dAorUEFTUyBVbmRlcmx5aW5nIHNvdXJj
ZTogdGhyb3dpbmcgcHVsbCBnZXR0ZXIgKHNlY29uZCBwdWxsKSAKK1BBU1MgVW5kZXJseWluZyBz
b3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChzZWNvbmQgcHVsbCkgCiBGQUlMIFVuZGVybHlp
bmcgc291cmNlOiB0aHJvd2luZyBjYW5jZWwgZ2V0dGVyIGNhbmNlbCBpcyBub3QgaW1wbGVtZW50
ZWQKIEZBSUwgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIGNhbmNlbCBtZXRob2QgY2FuY2Vs
IGlzIG5vdCBpbXBsZW1lbnRlZAogRkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgc3Ry
YXRlZ3kgZ2V0dGVyIGFzc2VydF90aHJvd3M6IGVucXVldWUgc2hvdWxkIHRocm93IHRoZSBlcnJv
ciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBjLmVucXVldWUoJ2EnKTsgfSIgZGlkIG5vdCB0aHJv
dwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sCmluZGV4IDlj
ZDZiYWVhZTZmNzg0ZjFiNjk1MWZlODQ3NGViN2NmNzUyOWE3MjcuLjIzZmZkODkxZGQ4YTg1NTkz
N2VlMjI4ZjA3NjYzYjVkMDViYjVjNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJs
eWluZy1zb3VyY2VzLmh0bWwKQEAgLTMsNyArMyw2IEBACiA8c2NyaXB0IHNyYz0nLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSdyZXNv
dXJjZXMvc3RyZWFtcy11dGlscy5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0PgotLyogICAgCiB0ZXN0
KGZ1bmN0aW9uKCkgewogICAgIHZhciB0aGVFcnJvciA9IG5ldyBFcnJvcignYSB1bmlxdWUgc3Ry
aW5nJyk7CiAKQEAgLTI3LDggKzI2LDggQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgfSk7
CiAgICAgfSwgJ2NvbnN0cnVjdGluZyB0aGUgc3RyZWFtIHNob3VsZCByZS10aHJvdyB0aGUgZXJy
b3InKTsKIH0sICdVbmRlcmx5aW5nIHNvdXJjZSBzdGFydDogdGhyb3dpbmcgbWV0aG9kJyk7Ci0q
LwotdmFyIHRlc3QxID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1
bGwgZ2V0dGVyIChpbml0aWFsIHB1bGwpJywgeyB0aW1lb3V0OiA1MCB9KTsKKwordmFyIHRlc3Qx
ID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChp
bml0aWFsIHB1bGwpJyk7CiB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciB0aGVFcnJv
ciA9IG5ldyBFcnJvcignYSB1bmlxdWUgc3RyaW5nJyk7CiAgICAgdmFyIHJzID0gbmV3IFJlYWRh
YmxlU3RyZWFtKHsKQEAgLTQwLDEzICszOSwxMiBAQCB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgewog
ICAgIHJzLmdldFJlYWRlcigpLmNsb3NlZC50aGVuKAogICAgICAgICB0ZXN0MS5zdGVwX2Z1bmMo
ZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoJ2Nsb3NlZCBzaG91bGQgbm90IGZ1bGZpbGwn
KTsgfSksCiAgICAgICAgIHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbihyKSB7Ci0gICAgICAgICAg
ICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyKSk7CiAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHIsIHRoZUVycm9yLCAnY2xvc2VkIHNob3VsZCByZWplY3Qgd2l0aCB0aGUgdGhyb3duIGVy
cm9yJyk7CiAgICAgICAgICAgICB0ZXN0MS5kb25lKCk7CiAgICAgICAgIH0pKTsKIH0pOwotLyoK
LXZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxs
IG1ldGhvZCAoaW5pdGlhbCBwdWxsKScsIHsgdGltZW91dDogNTAgfSk7CisKK3ZhciB0ZXN0MiA9
IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIG1ldGhvZCAoaW5p
dGlhbCBwdWxsKScpOwogdGVzdDIuc3RlcChmdW5jdGlvbigpIHsKICAgICB2YXIgdGhlRXJyb3Ig
PSBuZXcgRXJyb3IoJ2EgdW5pcXVlIHN0cmluZycpOwogICAgIHZhciBycyA9IG5ldyBSZWFkYWJs
ZVN0cmVhbSh7CkBAIC02Myw3ICs2MSw3IEBAIHRlc3QyLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgIH0pKTsKIH0pOwogCi12YXIgdGVzdDMgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJj
ZTogdGhyb3dpbmcgcHVsbCBnZXR0ZXIgKHNlY29uZCBwdWxsKScsIHsgdGltZW91dDogNTAgfSk7
Cit2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVs
bCBnZXR0ZXIgKHNlY29uZCBwdWxsKScpOwogdGVzdDMuc3RlcChmdW5jdGlvbigpIHsKICAgICB2
YXIgdGhlRXJyb3IgPSBuZXcgRXJyb3IoJ2EgdW5pcXVlIHN0cmluZycpOwogICAgIHZhciBjb3Vu
dGVyID0gMDsKQEAgLTkxLDcgKzg5LDcgQEAgdGVzdDMuc3RlcChmdW5jdGlvbigpIHsKICAgICAg
ICAgfSkpOwogfSk7CiAKLXZhciB0ZXN0NCA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNl
OiB0aHJvd2luZyBwdWxsIG1ldGhvZCAoc2Vjb25kIHB1bGwpJywgeyB0aW1lb3V0OiA1MCB9KTsK
K3ZhciB0ZXN0NCA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxs
IG1ldGhvZCAoc2Vjb25kIHB1bGwpJyk7CiB0ZXN0NC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZh
ciB0aGVFcnJvciA9IG5ldyBFcnJvcignYSB1bmlxdWUgc3RyaW5nJyk7CiAgICAgdmFyIGNvdW50
ZXIgPSAwOwpAQCAtNDg3LDUgKzQ4NSw0IEBAIHRlc3QyMS5zdGVwKGZ1bmN0aW9uKCkgewogICAg
ICAgICB0ZXN0MjEuZG9uZSgnY2xvc2VkIHNob3VsZCBmdWxmaWxsJyk7CiAgICAgfSkpOwogfSk7
Ci0qLwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5j
ZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVj
dGVkLnR4dAppbmRleCBhYzUxMjMyMzFkOTY5Y2Q2ZjQxMTIxNDczZDA2NjY0MTU5Y2NiZGU5Li43
M2UyYjgxY2RmNmIxYzkwOWU5NjhkOWY4Yjk4NDFkODdjN2QxNzNlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVu
dGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDcgQEAgVElN
RU9VVCBSZWFkYWJsZVN0cmVhbSBzdGFydCBzaG91bGQgYmUgYWJsZSB0byByZXR1cm4gYSBwcm9t
aXNlIGFuZCByZWplY3QgaXQgVGUKIFBBU1MgUmVhZGFibGVTdHJlYW0gc2hvdWxkIGJlIGFibGUg
dG8gZW5xdWV1ZSBkaWZmZXJlbnQgb2JqZWN0cy4gCiBQQVNTIFJlYWRhYmxlU3RyZWFtOiBpZiBz
dGFydCB0aHJvd3MgYW4gZXJyb3IsIGl0IHNob3VsZCBiZSByZS10aHJvd24gCiBUSU1FT1VUIFJl
YWRhYmxlU3RyZWFtOiBpZiBwdWxsIHJlamVjdHMsIGl0IHNob3VsZCBlcnJvciB0aGUgc3RyZWFt
IFRlc3QgdGltZWQgb3V0Ci1GQUlMIFJlYWRhYmxlU3RyZWFtOiBzaG91bGQgbm90IGNhbGwgcHVs
bCB1bnRpbCB0aGUgcHJldmlvdXMgcHVsbCBjYWxsJ3MgcHJvbWlzZSBmdWxmaWxscyBhc3NlcnRf
ZXF1YWxzOiBwdWxsIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkIG9uY2UgYWZ0ZXIgc3RhcnQsIGJ1
dCBub3QgeWV0IGhhdmUgYmVlbiBjYWxsZWQgYSBzZWNvbmQgdGltZSBleHBlY3RlZCAxIGJ1dCBn
b3QgMAorRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIG5vdCBjYWxsIHB1bGwgdW50aWwgdGhl
IHByZXZpb3VzIHB1bGwgY2FsbCdzIHByb21pc2UgZnVsZmlsbHMgYXNzZXJ0X2VxdWFsczogYWZ0
ZXIgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgcHVsbCBpcyBmdWxmaWxsZWQsIHB1bGwgc2hvdWxk
IGJlIGNhbGxlZCBhIHNlY29uZCB0aW1lIGV4cGVjdGVkIDIgYnV0IGdvdCAxCiBQQVNTIFJlYWRh
YmxlU3RyZWFtOiBzaG91bGQgbm90IGNhbGwgcHVsbCBhZnRlciBzdGFydCBpZiB0aGUgc3RyZWFt
IGlzIG5vdyBjbG9zZWQgCiBGQUlMIFJlYWRhYmxlU3RyZWFtOiBzaG91bGQgY2FsbCBwdWxsIGFm
dGVyIGVucXVldWVpbmcgZnJvbSBpbnNpZGUgcHVsbCAod2l0aCBubyByZWFkIHJlcXVlc3RzKSwg
aWYgc3RyYXRlZ3kgYWxsb3dzIGFzc2VydF9lcXVhbHM6IHB1bGwoKSBzaG91bGQgaGF2ZSBiZWVu
IGNhbGxlZCBmb3VyIHRpbWVzIGV4cGVjdGVkIDQgYnV0IGdvdCAxCiBQQVNTIFJlYWRhYmxlU3Ry
ZWFtIHB1bGwgc2hvdWxkIGJlIGFibGUgdG8gY2xvc2UgYSBzdHJlYW0uIApAQCAtMjIsNSArMjIs
NCBAQCBGQUlMIFJlYWRhYmxlU3RyZWFtIHN0cmF0ZWdpZXM6IHRoZSBkZWZhdWx0IHN0cmF0ZWd5
IHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGFsbAogRkFJTCBSZWFkYWJsZVN0cmVhbSBzdHJhdGVn
aWVzOiB0aGUgZGVmYXVsdCBzdHJhdGVneSBzaG91bGQgY29udGludWUgcmV0dXJuaW5nIHRydWUg
ZnJvbSBlbnF1ZXVlIGlmIHRoZSBjaHVua3MgYXJlIHJlYWQgaW1tZWRpYXRlbHkgYXNzZXJ0X2Vx
dWFsczogZmlyc3QgZW5xdWV1ZSBzaG91bGQgcmV0dXJuIHRydWUgZXhwZWN0ZWQgKGJvb2xlYW4p
IHRydWUgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIFRJTUVPVVQgUmVhZGFibGVTdHJl
YW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSByYW5kb20gcHVzaCBzb3VyY2UgVGVzdCB0
aW1lZCBvdXQKIFBBU1MgUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcg
YSBzeW5jIHB1bGwgc291cmNlIAotUEFTUyBSZWFkYWJsZVN0cmVhbSBpbnRlZ3JhdGlvbiB0ZXN0
OiBhZGFwdGluZyBhbiBhc3luYyBwdWxsIHNvdXJjZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1z
dHJlYW0uaHRtbAppbmRleCBlZWQzNTBhYWM5NGE5OTQ1OGRmY2JiYTVjZjI2MzI0NmMxMDk0OGQw
Li43MGYyM2E3NmU5MzAzMjhjMjA4NmNiNzdhNmNmYjRmNjExZGM2MGIyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJl
YW0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9yZWFkYWJsZS1zdHJlYW0uaHRtbApAQCAtNTE2LDcgKzUxNiw3IEBAIHRlc3QxNC5zdGVwKGZ1
bmN0aW9uKCkgewogICAgIH0pKTsKIH0pOwogCi12YXIgdGVzdDE1ID0gYXN5bmNfdGVzdCgnUmVh
ZGFibGVTdHJlYW0gcHVsbCBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSBhIHN0cmVhbS4nLCB7IHRp
bWVvdXQ6IDUwIH0pOwordmFyIHRlc3QxNSA9IGFzeW5jX3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIHB1
bGwgc2hvdWxkIGJlIGFibGUgdG8gY2xvc2UgYSBzdHJlYW0uJyk7CiB0ZXN0MTUuc3RlcChmdW5j
dGlvbigpIHsKICAgICB2YXIgcHVsbENhbGxlZCA9IGZhbHNlOwogICAgIHZhciBycyA9IG5ldyBS
ZWFkYWJsZVN0cmVhbSh7CkBAIC03MDIsNyArNzAyLDcgQEAgdGVzdDE4LnN0ZXAoZnVuY3Rpb24o
KSB7CiAgICAgfSksIHRlc3QxOC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeyBhc3NlcnRfcmVhY2hl
ZChlKTsgfSkpOwogfSk7CiAKLXZhciB0ZXN0MTkgPSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVh
bSBpbnRlZ3JhdGlvbiB0ZXN0OiBhZGFwdGluZyBhIHN5bmMgcHVsbCBzb3VyY2UnLCB7IHRpbWVv
dXQ6IDUwIH0pOwordmFyIHRlc3QxOSA9IGFzeW5jX3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIGludGVn
cmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGEgc3luYyBwdWxsIHNvdXJjZScpOwogdGVzdDE5LnN0ZXAo
ZnVuY3Rpb24oKSB7CiAgICAgdmFyIHJzID0gc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFtKDEwKTsK
IApAQCAtNzEzLDggKzcxMyw4IEBAIHRlc3QxOS5zdGVwKGZ1bmN0aW9uKCkgewogICAgICAgICB0
ZXN0MTkuZG9uZSgpOwogICAgIH0pKTsKIH0pOwotCi12YXIgdGVzdDIwID0gYXN5bmNfdGVzdCgn
UmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYW4gYXN5bmMgcHVsbCBz
b3VyY2UnKTsKKy8qCit2YXIgdGVzdDIwID0gYXN5bmNfdGVzdCgnUmVhZGFibGVTdHJlYW0gaW50
ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYW4gYXN5bmMgcHVsbCBzb3VyY2UnLCB7IHRpbWVvdXQ6
IDUwIH0pOwogdGVzdDIwLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHJzID0gc2VxdWVudGlh
bFJlYWRhYmxlU3RyZWFtKDEwLCB7IGFzeW5jOiB0cnVlIH0pOwogCkBAIC03MjUsNCArNzI1LDUg
QEAgdGVzdDIwLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgICAgIHRlc3QyMC5kb25lKCk7CiAgICAg
fSkpOwogfSk7CisqLwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNvdXJjZXMvc3RyZWFtcy11dGlscy5qcyBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3Jlc291cmNlcy9zdHJl
YW1zLXV0aWxzLmpzCmluZGV4IDdhYjI0MWQ5MzMzZTY3MmU3Nzk4MDgyYjYzNmViYmYxZDUzZWVk
MDIuLjgzYTQyMDlkZWJjNjM0NTJmY2JiZTE1MGM0MzBiNGFlMGExZDM5OWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3Jlc291cmNlcy9z
dHJlYW1zLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL3Jlc291cmNlcy9zdHJlYW1zLXV0aWxzLmpzCkBAIC0xNTAsNiArMTUwLDcgQEAg
ZnVuY3Rpb24gc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFtKGxpbWl0LCBvcHRpb25zKSB7CiAgICAg
ICAgICAgICAgICAgc2VxdWVudGlhbFNvdXJjZS5vcGVuKGZ1bmN0aW9uKGVycikgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qo
ZXJyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgfSk7
CkBAIC0xNjQsNiArMTY1LDcgQEAgZnVuY3Rpb24gc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFtKGxp
bWl0LCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICAgICAgIHNlcXVlbnRpYWxTb3VyY2UuY2xv
c2UoZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5lcnJvcihlcnIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgIGMuY2xvc2UoKTsKICAgICAgICAgICAgICAgICAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254557</attachid>
            <date>2015-06-09 01:58:21 -0700</date>
            <delta_ts>2015-06-09 07:59:27 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-145262-20150609105753.patch</filename>
            <type>text/plain</type>
            <size>19563</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM0ZDI4ZGQxMDQ4MmIx
NmFlMTY4ZDE0ZGMwYWQwM2IwMmEwMzVmOC4uYmZmY2JjMTMxNGY3YjQyMGEwMTM3ZmM2NWNlZGQ0
NGYzYmU3OTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA2LTEwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBwdWxsaW5nIG9mIGEgc291cmNlIGJ5IGEgUmVhZGFibGVTdHJlYW0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5vYm9keSAoT09QUyEpCisKKyAgICAgICAgSW50cm9kdWNlZCBhYnN0
cmFjdCBSZWFkYWJsZVN0cmVhbTo6ZG9QdWxsKCkgd2hpY2ggaXMgb3ZlcnJpZGVuIGluIFJlYWRh
YmxlSlNTdHJlYW0uCisgICAgICAgIEFkZGVkIHN1cHBvcnQgdG8gY2FsbCB0aGUgInB1bGwiIEpT
IGNhbGxiYWNrIGluIFJlYWRhYmxlSlNTdHJlYW06OmRvUHVsbCgpLgorICAgICAgICBBZGRlZCBj
YWxscyB0byBwdWxsIGFzIHJlcXVlc3RlZCBieSB0aGUgc3BlYyAod2hlbiByZXNvbHZpbmcgYSBy
ZWFkIGNhbGxiYWNrLCBhdCBzdGFydCB0aW1lLi4uKS4KKworICAgICAgICBGaXhlZCBpc3N1ZSBp
biBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6cmVhZCgpICh1c2Ugb2Ygc3VjY2Vzc0NhbGxiYWNrKEpT
VmFsdWUoKSkgaW4gbGlldSBvZiBlbmRDYWxsYmFjaygpKQorCisgICAgICAgIENvdmVyZWQgYnkg
cmViYXNlZCB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c3RhcnQpOiBjYWxsaW5n
IHB1bGwoKSBvbmNlIHN0YXJ0LgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW06OnB1
bGwpOiBjYWxsaW5nIGRvUHVsbCgpIGlmIHJlYWRhYmxlU3RyZWFtIHN0YXRlcyByZXF1aXJlcyB0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpyZWFkKTogY2FsbGluZyBwdWxs
KCkgYWZ0ZXIgcmVzb2x2aW5nIGEgcmVhZCBjYWxsYmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFk
ZXI6OnJlYWQpOiBmaXhlZCBKU1ZhbHVlKCkgYnVnLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6
ZG9QdWxsKTogY2FsbGluZyBvZiBKUyBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRh
YmxlSlNTdHJlYW06OnN0b3JlRXJyb3IpOiB1cGRhdGVkIHRvIGNhdGNoIHRocm93biBleGNlcHRp
b25zLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6ZW5xdWV1ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA2LTA5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRo
cm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
LmNwcAppbmRleCAwZGFmZTQ1MGFmNWEzNDc3MTU2MzU5OGU1NDU3ZGViYTUzM2QyMmFkLi45YTU1
ZWQ4OTQ2MzgzZWU5ZjkwZTlkODRhY2RkZjBhYmNiNThkMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTExMiw2ICsxMTIs
MjMgQEAgdm9pZCBSZWFkYWJsZVN0cmVhbTo6Y2hhbmdlU3RhdGVUb0Vycm9yZWQoKQogICAgIGNs
ZWFyQ2FsbGJhY2tzKCk7CiB9CiAKK3ZvaWQgUmVhZGFibGVTdHJlYW06OnN0YXJ0KCkKK3sKKyAg
ICBtX2lzU3RhcnRlZCA9IHRydWU7CisgICAgcHVsbCgpOworfQorCit2b2lkIFJlYWRhYmxlU3Ry
ZWFtOjpwdWxsKCkKK3sKKyAgICBpZiAoIW1faXNTdGFydGVkIHx8IG1fc3RhdGUgPT0gU3RhdGU6
OkNsb3NlZCB8fCBtX3N0YXRlID09IFN0YXRlOjpFcnJvcmVkIHx8IG1fY2xvc2VSZXF1ZXN0ZWQp
CisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHF1ZXVlU2l6ZSBjaGVj
ay4KKyAgICBpZiAobV9yZWFkUmVxdWVzdHMuaXNFbXB0eSgpICYmIGhhc1ZhbHVlKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFzeW5jIHB1bGwgY2hlY2suCisg
ICAgZG9QdWxsKCk7Cit9CisKIFJlYWRhYmxlU3RyZWFtUmVhZGVyJiBSZWFkYWJsZVN0cmVhbTo6
Z2V0UmVhZGVyKCkKIHsKICAgICBBU1NFUlQoIW1fcmVhZGVyKTsKQEAgLTE1NCwxMiArMTcxLDE0
IEBAIHZvaWQgUmVhZGFibGVTdHJlYW06OnJlYWQoUmVhZFN1Y2Nlc3NDYWxsYmFjayYmIHN1Y2Nl
c3NDYWxsYmFjaywgUmVhZEVuZENhbGxiYWNrCiAgICAgfQogICAgIGlmIChoYXNWYWx1ZSgpKSB7
CiAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhyZWFkKCkpOwotICAgICAgICBpZiAobV9jbG9zZVJl
cXVlc3RlZCAmJiAhaGFzVmFsdWUoKSkKKyAgICAgICAgaWYgKCFtX2Nsb3NlUmVxdWVzdGVkKQor
ICAgICAgICAgICAgcHVsbCgpOworICAgICAgICBlbHNlIGlmICghaGFzVmFsdWUoKSkKICAgICAg
ICAgICAgIGNsb3NlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9yZWFkUmVxdWVz
dHMuYXBwZW5kKHsgV1RGOjptb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShlbmRDYWxs
YmFjayksIFdURjo6bW92ZShmYWlsdXJlQ2FsbGJhY2spIH0pOwotICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgdHJ5IHRvIHB1bGwuCisgICAgcHVsbCgpOwogfQogCiBib29sIFJlYWRhYmxlU3RyZWFt
OjpyZXNvbHZlUmVhZENhbGxiYWNrKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKQEAgLTE3MSwxMSArMTkw
LDYgQEAgYm9vbCBSZWFkYWJsZVN0cmVhbTo6cmVzb2x2ZVJlYWRDYWxsYmFjayhKU0M6OkpTVmFs
dWUgdmFsdWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUmVhZGFibGVTdHJlYW06OnN0
YXJ0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBjb25zdCBjaGFyKiBSZWFkYWJs
ZVN0cmVhbTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJSZWFk
YWJsZVN0cmVhbSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbS5oCmluZGV4IDdkNGEyYmZjOTA1ZTZiZTY4NDBhYmMxZTNjOGI3Y2YwOThmZThmNjgu
LmRmYmFjMjQyNzFjZDhiMDBiZGU3ZmFhMTZkODIwNmIzNGE3NjVhMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC04OSw2ICs4OSw3
IEBAIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBSZWFkYWJsZVN0cmVhbShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CiAKICAgICBib29sIHJlc29sdmVSZWFkQ2FsbGJhY2soSlNDOjpKU1ZhbHVl
KTsKKyAgICB2b2lkIHB1bGwoKTsKIAogcHJpdmF0ZToKICAgICAvLyBBY3RpdmVET01PYmplY3Qg
QVBJLgpAQCAtMTAwLDYgKzEwMSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFz
VmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgcmVhZCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZG9QdWxsKCkgPSAwOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJl
YWRhYmxlU3RyZWFtUmVhZGVyPiBtX3JlYWRlcjsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PFJlYWRhYmxlU3RyZWFtUmVhZGVyPj4gbV9yZWxlYXNlZFJlYWRlcnM7CkBAIC0xMTQsNiArMTE2
LDcgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIERlcXVlPFJlYWRDYWxsYmFja3M+IG1fcmVhZFJl
cXVlc3RzOwogCisgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Ns
b3NlUmVxdWVzdGVkIHsgZmFsc2UgfTsKICAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlJlYWRh
YmxlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAKaW5kZXggMTA4MTBmZWIwN2JiMGE0NmNlODNlMGViNDE2
MjAwMjM2OTNmNDk2Yi4uZjFhYmY1OGM1MGY4ZDY5YmRlNDgyZThkYzY3ZGYyYzlhZmYwNzE4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1SZWFkZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgUmVhZGFibGVTdHJlYW1SZWFk
ZXI6OmNsb3NlZChSZWFkYWJsZVN0cmVhbTo6Q2xvc2VkU3VjY2Vzc0NhbGxiYWNrJiYgc3VjY2Vz
CiB2b2lkIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpyZWFkKFJlYWRhYmxlU3RyZWFtOjpSZWFkU3Vj
Y2Vzc0NhbGxiYWNrJiYgc3VjY2Vzc0NhbGxiYWNrLCBSZWFkYWJsZVN0cmVhbTo6UmVhZEVuZENh
bGxiYWNrJiYgZW5kQ2FsbGJhY2ssIFJlYWRhYmxlU3RyZWFtOjpGYWlsdXJlQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2spCiB7CiAgICAgaWYgKG1fc3RyZWFtLmlzUmVhZGFibGUoKSAmJiBtX3N0
cmVhbS5yZWFkZXIoKSAhPSB0aGlzKSB7Ci0gICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhKU0M6OkpT
VmFsdWUoKSk7CisgICAgICAgIGVuZENhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgbV9zdHJlYW0ucmVhZChXVEY6Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3Zl
KGVuZENhbGxiYWNrKSwgV1RGOjptb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAppbmRleCAyZDNkYmMxNWUw
NmJkZGRkNjI5MjFiYTg1ZGUyM2FlOTM0Y2M5ZjA2Li4xMmZlZmEwMzMyYTFmMDQ4Mjk2YmYwMzQz
YzVjZGNmZjE3NzgxZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9S
ZWFkYWJsZUpTU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZUpTU3RyZWFtLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CkBAIC0xMDIsNiArMTAz
LDIyIEBAIHZvaWQgUmVhZGFibGVKU1N0cmVhbTo6ZG9TdGFydChFeGVjU3RhdGUmIGV4ZWMpCiAg
ICAgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKCp0aGlzKTsKIH0KIAordm9pZCBSZWFkYWJsZUpT
U3RyZWFtOjpkb1B1bGwoKQoreworICAgIEV4ZWNTdGF0ZSYgZXhlYz0gKmdsb2JhbE9iamVjdCgp
LT5nbG9iYWxFeGVjKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2soJmV4ZWMpOworCisgICAgaW52
b2tlKGV4ZWMsICJwdWxsIik7CisKKyAgICBpZiAoZXhlYy5oYWRFeGNlcHRpb24oKSkgeworICAg
ICAgICBzdG9yZUVycm9yKGV4ZWMpOworICAgICAgICBBU1NFUlQoIWV4ZWMuaGFkRXhjZXB0aW9u
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBo
YW5kbGluZyBwcm9taXNlIGFzIHJlc3VsdCBvZiBjYWxsaW5nIHB1bGwgZnVuY3Rpb24uCit9CisK
IFJlZlB0cjxSZWFkYWJsZUpTU3RyZWFtPiBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoRXhlY1N0
YXRlJiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KQogewogICAgIEpTT2JqZWN0KiBqc1NvdXJjZTsKQEAgLTEzOCw5ICsxNTUsMjMgQEAgSlNWYWx1
ZSBSZWFkYWJsZUpTU3RyZWFtOjpqc0NvbnRyb2xsZXIoRXhlY1N0YXRlJiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmEKIAogdm9pZCBSZWFkYWJsZUpTU3RyZWFtOjpzdG9yZUVycm9yKEpT
Qzo6RXhlY1N0YXRlJiBleGVjKQogeworICAgIGlmIChleGVjLmhhZEV4Y2VwdGlvbigpKSB7Cisg
ICAgICAgIEpTVmFsdWUgZXhjZXB0aW9uID0gZXhlYy5leGNlcHRpb24oKS0+dmFsdWUoKTsKKyAg
ICAgICAgZXhlYy5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICBzdG9yZUVycm9yKGV4ZWMsIGV4
Y2VwdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV4ZWMuYXJndW1lbnRD
b3VudCgpKSB7CisgICAgICAgIHN0b3JlRXJyb3IoZXhlYywgZXhlYy5hcmd1bWVudCgwKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc3RvcmVFcnJvcihleGVjLCBjcmVhdGVFcnJvcigm
ZXhlYywgQVNDSUlMaXRlcmFsKCJFcnJvciBmdW5jdGlvbiBjYWxsZWQuIikpKTsKK30KKwordm9p
ZCBSZWFkYWJsZUpTU3RyZWFtOjpzdG9yZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU1Zh
bHVlIGVycm9yKQorewogICAgIGlmIChtX2Vycm9yKQogICAgICAgICByZXR1cm47Ci0gICAgSlNW
YWx1ZSBlcnJvciA9IGV4ZWMuYXJndW1lbnRDb3VudCgpID8gZXhlYy5hcmd1bWVudCgwKSA6IGNy
ZWF0ZUVycm9yKCZleGVjLCBBU0NJSUxpdGVyYWwoIkVycm9yIGZ1bmN0aW9uIGNhbGxlZC4iKSk7
CiAgICAgbV9lcnJvci5zZXQoZXhlYy52bSgpLCBlcnJvcik7CiAKICAgICBjaGFuZ2VTdGF0ZVRv
RXJyb3JlZCgpOwpAQCAtMTY2LDEyICsxOTcsMTQgQEAgdm9pZCBSZWFkYWJsZUpTU3RyZWFtOjpl
bnF1ZXVlKEV4ZWNTdGF0ZSYgZXhlYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNWYWx1ZSBj
aHVuayA9IGV4ZWMuYXJndW1lbnRDb3VudCgpID8gZXhlYy5hcmd1bWVudCgwKSA6IGpzVW5kZWZp
bmVkKCk7Ci0gICAgaWYgKHJlc29sdmVSZWFkQ2FsbGJhY2soY2h1bmspKQorICAgIGlmIChyZXNv
bHZlUmVhZENhbGxiYWNrKGNodW5rKSkgeworICAgICAgICBwdWxsKCk7CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBtX2NodW5rUXVldWUuYXBwZW5kKEpTQzo6U3Ryb25nPEpTQzo6VW5r
bm93bj4oZXhlYy52bSgpLCBjaHVuaykpOwogICAgIC8vIEZJWE1FOiBDb21wdXRlIGNodW5rIHNp
emUuCi0gICAgLy8gRklYTUU6IEFkZCBwdWxsaW5nIG9mIGRhdGEgaGVyZSBhbmQgYWxzbyB3aGVu
IGRhdGEgaXMgcGFzc2VkIHRvIHJlc29sdmUgY2FsbGJhY2suCisgICAgcHVsbCgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZUpTU3RyZWFtLmgKaW5kZXggYzRlYjQ3ZjJiZmY1MjEyMGVmMDc0YWI3NGUzZTk5MjFkYzhj
ZGNiYi4uOTA0YzcyYjQ5ODBlM2MwMTNlMGE3OGZkYWJkNDRkYTY4MTdiNzk3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaApAQCAtNjIsOSArNjIs
MTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvU3RhcnQoSlNDOjpFeGVjU3RhdGUmKTsKIAogICAg
IEpTQzo6SlNWYWx1ZSBpbnZva2UoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBjaGFyKik7CisgICAg
dm9pZCBzdG9yZUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSlNDOjpK
U1ZhbHVlIHJlYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9QdWxsKCkgb3ZlcnJp
ZGU7CiAKICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
NmNlYjY5Y2I4OWE0ZTc2MzUwYzE4MTBhMTE1NTIyNDI1MmNjMzgwLi5lMDFmOWVhZjA3NjM0NzJh
NjAxMDViYzJmYjIyYjFmNDIwYjVkZjg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTUtMDYt
MTAgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlv
dWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJl
YW1zIEFQSV0gSW1wbGVtZW50IHB1bGxpbmcgb2YgYSBzb3VyY2UgYnkgYSBSZWFkYWJsZVN0cmVh
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MjYy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9ib2R5IChPT1BTISkKKworICAgICAgICBSZWJhc2Vk
IGV4cGVjdGF0aW9ucywgcmVtb3ZlZCBzb21lICJ0aW1lb3V0OiA1MCIgcGFyYW1ldGVycy4KKyAg
ICAgICAgUmVtb3ZlZCBhIHRlc3QgZnJvbSBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9yZWFkYWJsZS1zdHJlYW0uaHRtbCB0aGF0IGNhbm5vdCBwYXNzCisgICAgICAgIHVudGlsIHBy
b21pc2VzIHJldHVybmVkIHRvIHN0YXJ0IGFuZCBwdWxsIEpTIGNhbGxiYWNrcyBhcmUgaGFuZGxl
ZC4KKyAgICAgICAgRml4ZWQgYnVnIGluIHN0cmVhbXMtdXRpbHMuanMgKHdhcyB1c2luZyB0aGUg
b2xkIEFQSSByZXBsYWNlZCBieSBjb250cm9sbGVyKS4KKworICAgICAgICAqIHN0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5
aW5nLXNvdXJjZXMuaHRtbDoKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sOgorICAgICAgICAqIHN0
cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3Jlc291cmNlcy9zdHJlYW1zLXV0aWxzLmpz
OgorICAgICAgICAoLnN0cmVhbS5uZXcuUmVhZGFibGVTdHJlYW0uKToKKyAgICAgICAgKC5zdHJl
YW0ubmV3LlJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKHNlcXVlbnRpYWxSZWFkYWJsZVN0cmVh
bSk6CisKIDIwMTUtMDYtMDkgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdh
bGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgog
CiAgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVhZGFibGVKU1N0cmVhbSBzaG91bGQgaGFuZGxlIEpT
IHNvdXJjZSBnZXR0ZXJzIHRoYXQgdGhyb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFk
LXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQKaW5kZXggYzczM2MzODc5NDBiMzI2ZjMw
NDZhN2I4YThhZmUwYjJhZTcyMzY2OC4uMjg0MTlmYTIyNWZiZjY0NDg5YTUzOGM3NGViZWQxZWRi
NWIyN2FhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVt
ZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291
cmNlcy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAogUEFTUyBVbmRlcmx5aW5nIHNv
dXJjZSBzdGFydDogdGhyb3dpbmcgZ2V0dGVyIAogUEFTUyBVbmRlcmx5aW5nIHNvdXJjZSBzdGFy
dDogdGhyb3dpbmcgbWV0aG9kIAotVElNRU9VVCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcg
cHVsbCBnZXR0ZXIgKGluaXRpYWwgcHVsbCkgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgVW5kZXJs
eWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChpbml0aWFsIHB1bGwpIFRlc3QgdGlt
ZWQgb3V0Ci1USU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAo
c2Vjb25kIHB1bGwpIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiB0
aHJvd2luZyBwdWxsIG1ldGhvZCAoc2Vjb25kIHB1bGwpIFRlc3QgdGltZWQgb3V0CitQQVNTIFVu
ZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxsKSAKK1BB
U1MgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChpbml0aWFsIHB1bGwp
IAorUEFTUyBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBnZXR0ZXIgKHNlY29uZCBw
dWxsKSAKK1BBU1MgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChzZWNv
bmQgcHVsbCkgCiBGQUlMIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBjYW5jZWwgZ2V0dGVy
IGNhbmNlbCBpcyBub3QgaW1wbGVtZW50ZWQKIEZBSUwgVW5kZXJseWluZyBzb3VyY2U6IHRocm93
aW5nIGNhbmNlbCBtZXRob2QgY2FuY2VsIGlzIG5vdCBpbXBsZW1lbnRlZAogRkFJTCBVbmRlcmx5
aW5nIHNvdXJjZTogdGhyb3dpbmcgc3RyYXRlZ3kgZ2V0dGVyIGFzc2VydF90aHJvd3M6IGVucXVl
dWUgc2hvdWxkIHRocm93IHRoZSBlcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBjLmVucXVl
dWUoJ2EnKTsgfSIgZGlkIG5vdCB0aHJvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlp
bmctc291cmNlcy5odG1sCmluZGV4IGM4NWQ1M2M3MTE5OTAzYjI1ZmYwZGUxMzA3NGI1ZDU5ZWVk
ODM2NjcuLjIzZmZkODkxZGQ4YTg1NTkzN2VlMjI4ZjA3NjYzYjVkMDViYjVjNzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRl
cmx5aW5nLXNvdXJjZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLmh0bWwKQEAgLTI3LDcgKzI3LDcg
QEAgdGVzdChmdW5jdGlvbigpIHsKICAgICB9LCAnY29uc3RydWN0aW5nIHRoZSBzdHJlYW0gc2hv
dWxkIHJlLXRocm93IHRoZSBlcnJvcicpOwogfSwgJ1VuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0
aHJvd2luZyBtZXRob2QnKTsKIAotdmFyIHRlc3QxID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBz
b3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChpbml0aWFsIHB1bGwpJywgeyB0aW1lb3V0OiA1
MCB9KTsKK3ZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2lu
ZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxsKScpOwogdGVzdDEuc3RlcChmdW5jdGlvbigpIHsK
ICAgICB2YXIgdGhlRXJyb3IgPSBuZXcgRXJyb3IoJ2EgdW5pcXVlIHN0cmluZycpOwogICAgIHZh
ciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CkBAIC00NCw3ICs0NCw3IEBAIHRlc3QxLnN0ZXAo
ZnVuY3Rpb24oKSB7CiAgICAgICAgIH0pKTsKIH0pOwogCi12YXIgdGVzdDIgPSBhc3luY190ZXN0
KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKGluaXRpYWwgcHVsbCkn
LCB7IHRpbWVvdXQ6IDUwIH0pOwordmFyIHRlc3QyID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBz
b3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChpbml0aWFsIHB1bGwpJyk7CiB0ZXN0Mi5zdGVw
KGZ1bmN0aW9uKCkgewogICAgIHZhciB0aGVFcnJvciA9IG5ldyBFcnJvcignYSB1bmlxdWUgc3Ry
aW5nJyk7CiAgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKQEAgLTYxLDcgKzYxLDcg
QEAgdGVzdDIuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgfSkpOwogfSk7CiAKLXZhciB0ZXN0
MyA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAo
c2Vjb25kIHB1bGwpJywgeyB0aW1lb3V0OiA1MCB9KTsKK3ZhciB0ZXN0MyA9IGFzeW5jX3Rlc3Qo
J1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAoc2Vjb25kIHB1bGwpJyk7
CiB0ZXN0My5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciB0aGVFcnJvciA9IG5ldyBFcnJvcign
YSB1bmlxdWUgc3RyaW5nJyk7CiAgICAgdmFyIGNvdW50ZXIgPSAwOwpAQCAtODksNyArODksNyBA
QCB0ZXN0My5zdGVwKGZ1bmN0aW9uKCkgewogICAgICAgICB9KSk7CiB9KTsKIAotdmFyIHRlc3Q0
ID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChz
ZWNvbmQgcHVsbCknLCB7IHRpbWVvdXQ6IDUwIH0pOwordmFyIHRlc3Q0ID0gYXN5bmNfdGVzdCgn
VW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChzZWNvbmQgcHVsbCknKTsK
IHRlc3Q0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHRoZUVycm9yID0gbmV3IEVycm9yKCdh
IHVuaXF1ZSBzdHJpbmcnKTsKICAgICB2YXIgY291bnRlciA9IDA7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dAppbmRleCBhNWVmZDlmMmYxOWMzMDRhMzk1
M2UwNDA0YWE4MmU2MTNkN2ZjN2ZkLi43M2UyYjgxY2RmNmIxYzkwOWU5NjhkOWY4Yjk4NDFkODdj
N2QxNzNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1l
bnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50
eHQKQEAgLTEwLDEwICsxMCwxMCBAQCBUSU1FT1VUIFJlYWRhYmxlU3RyZWFtIHN0YXJ0IHNob3Vs
ZCBiZSBhYmxlIHRvIHJldHVybiBhIHByb21pc2UgYW5kIHJlamVjdCBpdCBUZQogUEFTUyBSZWFk
YWJsZVN0cmVhbSBzaG91bGQgYmUgYWJsZSB0byBlbnF1ZXVlIGRpZmZlcmVudCBvYmplY3RzLiAK
IFBBU1MgUmVhZGFibGVTdHJlYW06IGlmIHN0YXJ0IHRocm93cyBhbiBlcnJvciwgaXQgc2hvdWxk
IGJlIHJlLXRocm93biAKIFRJTUVPVVQgUmVhZGFibGVTdHJlYW06IGlmIHB1bGwgcmVqZWN0cywg
aXQgc2hvdWxkIGVycm9yIHRoZSBzdHJlYW0gVGVzdCB0aW1lZCBvdXQKLUZBSUwgUmVhZGFibGVT
dHJlYW06IHNob3VsZCBub3QgY2FsbCBwdWxsIHVudGlsIHRoZSBwcmV2aW91cyBwdWxsIGNhbGwn
cyBwcm9taXNlIGZ1bGZpbGxzIGFzc2VydF9lcXVhbHM6IHB1bGwgc2hvdWxkIGhhdmUgYmVlbiBj
YWxsZWQgb25jZSBhZnRlciBzdGFydCwgYnV0IG5vdCB5ZXQgaGF2ZSBiZWVuIGNhbGxlZCBhIHNl
Y29uZCB0aW1lIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitGQUlMIFJlYWRhYmxlU3RyZWFtOiBzaG91
bGQgbm90IGNhbGwgcHVsbCB1bnRpbCB0aGUgcHJldmlvdXMgcHVsbCBjYWxsJ3MgcHJvbWlzZSBm
dWxmaWxscyBhc3NlcnRfZXF1YWxzOiBhZnRlciB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSBwdWxs
IGlzIGZ1bGZpbGxlZCwgcHVsbCBzaG91bGQgYmUgY2FsbGVkIGEgc2Vjb25kIHRpbWUgZXhwZWN0
ZWQgMiBidXQgZ290IDEKIFBBU1MgUmVhZGFibGVTdHJlYW06IHNob3VsZCBub3QgY2FsbCBwdWxs
IGFmdGVyIHN0YXJ0IGlmIHRoZSBzdHJlYW0gaXMgbm93IGNsb3NlZCAKLUZBSUwgUmVhZGFibGVT
dHJlYW06IHNob3VsZCBjYWxsIHB1bGwgYWZ0ZXIgZW5xdWV1ZWluZyBmcm9tIGluc2lkZSBwdWxs
ICh3aXRoIG5vIHJlYWQgcmVxdWVzdHMpLCBpZiBzdHJhdGVneSBhbGxvd3MgYXNzZXJ0X2VxdWFs
czogcHVsbCgpIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkIGZvdXIgdGltZXMgZXhwZWN0ZWQgNCBi
dXQgZ290IDAKLVRJTUVPVVQgUmVhZGFibGVTdHJlYW0gcHVsbCBzaG91bGQgYmUgYWJsZSB0byBj
bG9zZSBhIHN0cmVhbS4gVGVzdCB0aW1lZCBvdXQKK0ZBSUwgUmVhZGFibGVTdHJlYW06IHNob3Vs
ZCBjYWxsIHB1bGwgYWZ0ZXIgZW5xdWV1ZWluZyBmcm9tIGluc2lkZSBwdWxsICh3aXRoIG5vIHJl
YWQgcmVxdWVzdHMpLCBpZiBzdHJhdGVneSBhbGxvd3MgYXNzZXJ0X2VxdWFsczogcHVsbCgpIHNo
b3VsZCBoYXZlIGJlZW4gY2FsbGVkIGZvdXIgdGltZXMgZXhwZWN0ZWQgNCBidXQgZ290IDEKK1BB
U1MgUmVhZGFibGVTdHJlYW0gcHVsbCBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSBhIHN0cmVhbS4g
CiBGQUlMIFJlYWRhYmxlU3RyZWFtOiBlbnF1ZXVlIHNob3VsZCB0aHJvdyB3aGVuIHRoZSBzdHJl
YW0gaXMgcmVhZGFibGUgYnV0IGRyYWluaW5nIGFzc2VydF9lcXVhbHM6IHRoZSBmaXJzdCBlbnF1
ZXVlIHNob3VsZCByZXR1cm4gdHJ1ZSBleHBlY3RlZCAoYm9vbGVhbikgdHJ1ZSBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAogUEFTUyBSZWFkYWJsZVN0cmVhbTogZW5xdWV1ZSBzaG91bGQg
dGhyb3cgd2hlbiB0aGUgc3RyZWFtIGlzIGNsb3NlZCAKIFBBU1MgUmVhZGFibGVTdHJlYW06IGVu
cXVldWUgc2hvdWxkIHRocm93IHRoZSBzdG9yZWQgZXJyb3Igd2hlbiB0aGUgc3RyZWFtIGlzIGVy
cm9yZWQgCkBAIC0yMSw2ICsyMSw1IEBAIEZBSUwgUmVhZGFibGVTdHJlYW06IHNob3VsZCBjYWxs
IHVuZGVybHlpbmcgc291cmNlIG1ldGhvZHMgYXMgbWV0aG9kcyByZWxlYXNlTG9jCiBGQUlMIFJl
YWRhYmxlU3RyZWFtIHN0cmF0ZWdpZXM6IHRoZSBkZWZhdWx0IHN0cmF0ZWd5IHNob3VsZCByZXR1
cm4gZmFsc2UgZm9yIGFsbCBidXQgdGhlIGZpcnN0IGVucXVldWUgY2FsbCBhc3NlcnRfZXF1YWxz
OiBmaXJzdCBlbnF1ZXVlIHNob3VsZCByZXR1cm4gdHJ1ZSBleHBlY3RlZCAoYm9vbGVhbikgdHJ1
ZSBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAogRkFJTCBSZWFkYWJsZVN0cmVhbSBzdHJh
dGVnaWVzOiB0aGUgZGVmYXVsdCBzdHJhdGVneSBzaG91bGQgY29udGludWUgcmV0dXJuaW5nIHRy
dWUgZnJvbSBlbnF1ZXVlIGlmIHRoZSBjaHVua3MgYXJlIHJlYWQgaW1tZWRpYXRlbHkgYXNzZXJ0
X2VxdWFsczogZmlyc3QgZW5xdWV1ZSBzaG91bGQgcmV0dXJuIHRydWUgZXhwZWN0ZWQgKGJvb2xl
YW4pIHRydWUgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIFRJTUVPVVQgUmVhZGFibGVT
dHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSByYW5kb20gcHVzaCBzb3VyY2UgVGVz
dCB0aW1lZCBvdXQKLVRJTUVPVVQgUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRh
cHRpbmcgYSBzeW5jIHB1bGwgc291cmNlIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIFJlYWRhYmxl
U3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGFuIGFzeW5jIHB1bGwgc291cmNlIFRl
c3QgdGltZWQgb3V0CitQQVNTIFJlYWRhYmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0
aW5nIGEgc3luYyBwdWxsIHNvdXJjZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0uaHRt
bAppbmRleCBlYWIxZjA5ZjM5MDJiYzhiNjZlMDE5MDBmMjZmYjU5MWFkMzk2ZDhmLi43MGYyM2E3
NmU5MzAzMjhjMjA4NmNiNzdhNmNmYjRmNjExZGM2MGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJs
ZS1zdHJlYW0uaHRtbApAQCAtNTE2LDcgKzUxNiw3IEBAIHRlc3QxNC5zdGVwKGZ1bmN0aW9uKCkg
ewogICAgIH0pKTsKIH0pOwogCi12YXIgdGVzdDE1ID0gYXN5bmNfdGVzdCgnUmVhZGFibGVTdHJl
YW0gcHVsbCBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSBhIHN0cmVhbS4nLCB7IHRpbWVvdXQ6IDUw
IH0pOwordmFyIHRlc3QxNSA9IGFzeW5jX3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIHB1bGwgc2hvdWxk
IGJlIGFibGUgdG8gY2xvc2UgYSBzdHJlYW0uJyk7CiB0ZXN0MTUuc3RlcChmdW5jdGlvbigpIHsK
ICAgICB2YXIgcHVsbENhbGxlZCA9IGZhbHNlOwogICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0
cmVhbSh7CkBAIC03MDIsNyArNzAyLDcgQEAgdGVzdDE4LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAg
fSksIHRlc3QxOC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeyBhc3NlcnRfcmVhY2hlZChlKTsgfSkp
OwogfSk7CiAKLXZhciB0ZXN0MTkgPSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVhbSBpbnRlZ3Jh
dGlvbiB0ZXN0OiBhZGFwdGluZyBhIHN5bmMgcHVsbCBzb3VyY2UnLCB7IHRpbWVvdXQ6IDUwIH0p
OwordmFyIHRlc3QxOSA9IGFzeW5jX3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIGludGVncmF0aW9uIHRl
c3Q6IGFkYXB0aW5nIGEgc3luYyBwdWxsIHNvdXJjZScpOwogdGVzdDE5LnN0ZXAoZnVuY3Rpb24o
KSB7CiAgICAgdmFyIHJzID0gc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFtKDEwKTsKIApAQCAtNzEz
LDcgKzcxMyw3IEBAIHRlc3QxOS5zdGVwKGZ1bmN0aW9uKCkgewogICAgICAgICB0ZXN0MTkuZG9u
ZSgpOwogICAgIH0pKTsKIH0pOwotCisvKgogdmFyIHRlc3QyMCA9IGFzeW5jX3Rlc3QoJ1JlYWRh
YmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGFuIGFzeW5jIHB1bGwgc291cmNl
JywgeyB0aW1lb3V0OiA1MCB9KTsKIHRlc3QyMC5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBy
cyA9IHNlcXVlbnRpYWxSZWFkYWJsZVN0cmVhbSgxMCwgeyBhc3luYzogdHJ1ZSB9KTsKQEAgLTcy
NSw0ICs3MjUsNSBAQCB0ZXN0MjAuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgdGVzdDIwLmRv
bmUoKTsKICAgICB9KSk7CiB9KTsKKyovCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3Jlc291cmNlcy9zdHJlYW1zLXV0
aWxzLmpzIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVz
b3VyY2VzL3N0cmVhbXMtdXRpbHMuanMKaW5kZXggMjQ5ODY1YzQ3Y2Q1MTYwZTUzOTE5MWIxMjg3
ZjM2NmVjMzcxZjNiMy4uODNhNDIwOWRlYmM2MzQ1MmZjYmJlMTUwYzQzMGI0YWUwYTFkMzk5YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
cmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vcmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanMKQEAgLTE1MCwy
NSArMTUwLDI3IEBAIGZ1bmN0aW9uIHNlcXVlbnRpYWxSZWFkYWJsZVN0cmVhbShsaW1pdCwgb3B0
aW9ucykgewogICAgICAgICAgICAgICAgIHNlcXVlbnRpYWxTb3VyY2Uub3BlbihmdW5jdGlvbihl
cnIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAg
ICAgICAgcmVqZWN0KGVycik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAKLSAgICAgICAgcHVs
bDogZnVuY3Rpb24oZW5xdWV1ZSwgZmluaXNoLCBlcnJvcikgeworICAgICAgICBwdWxsOiBmdW5j
dGlvbihjKSB7CiAgICAgICAgICAgICBzZXF1ZW50aWFsU291cmNlLnJlYWQoZnVuY3Rpb24oZXJy
LCBkb25lLCBjaHVuaykgewogICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgZXJyb3IoZXJyKTsKKyAgICAgICAgICAgICAgICAgICAgYy5lcnJvcihlcnIpOwog
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9uZSkgewogICAgICAgICAgICAgICAgICAgICBz
ZXF1ZW50aWFsU291cmNlLmNsb3NlKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGVycikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKGVycik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5lcnJvcihlcnIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbmlzaCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYy5j
bG9zZSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBlbnF1ZXVlKGNodW5rKTsKKyAgICAgICAgICAgICAgICAg
ICAgYy5lbnF1ZXVlKGNodW5rKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254569</attachid>
            <date>2015-06-09 07:59:33 -0700</date>
            <delta_ts>2015-06-09 12:44:04 -0700</delta_ts>
            <desc>Fixed typo</desc>
            <filename>bug-145262-20150609165905.patch</filename>
            <type>text/plain</type>
            <size>19709</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM0ZDI4ZGQxMDQ4MmIx
NmFlMTY4ZDE0ZGMwYWQwM2IwMmEwMzVmOC4uMGJhZTZmOTQ4YzhkZjVhMWRlMTQ1YjI2NDBmMjAy
OGMwNjU2MGIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA2LTEwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBwdWxsaW5nIG9mIGEgc291cmNlIGJ5IGEgUmVhZGFibGVTdHJlYW0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpCisKKyAgICAgICAgSW50cm9kdWNlZCBhYnN0
cmFjdCBSZWFkYWJsZVN0cmVhbTo6ZG9QdWxsKCkgd2hpY2ggaXMgb3ZlcnJpZGVuIGluIFJlYWRh
YmxlSlNTdHJlYW0uCisgICAgICAgIEFkZGVkIHN1cHBvcnQgdG8gY2FsbCB0aGUgInB1bGwiIEpT
IGNhbGxiYWNrIGluIFJlYWRhYmxlSlNTdHJlYW06OmRvUHVsbCgpLgorICAgICAgICBBZGRlZCBj
YWxscyB0byBwdWxsIGFzIHJlcXVlc3RlZCBieSB0aGUgc3BlYyAod2hlbiByZXNvbHZpbmcgYSBy
ZWFkIGNhbGxiYWNrLCBhdCBzdGFydCB0aW1lLi4uKS4KKworICAgICAgICBGaXhlZCBpc3N1ZSBp
biBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6cmVhZCgpICh1c2Ugb2Ygc3VjY2Vzc0NhbGxiYWNrKEpT
VmFsdWUoKSkgaW4gbGlldSBvZiBlbmRDYWxsYmFjaygpKQorCisgICAgICAgIENvdmVyZWQgYnkg
cmViYXNlZCB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c3RhcnQpOiBjYWxsaW5n
IHB1bGwoKSBvbmNlIHN0YXJ0LgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW06OnB1
bGwpOiBjYWxsaW5nIGRvUHVsbCgpIGlmIHJlYWRhYmxlU3RyZWFtIHN0YXRlcyByZXF1aXJlcyB0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpyZWFkKTogY2FsbGluZyBwdWxs
KCkgYWZ0ZXIgcmVzb2x2aW5nIGEgcmVhZCBjYWxsYmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFk
ZXI6OnJlYWQpOiBmaXhlZCBKU1ZhbHVlKCkgYnVnLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6
ZG9QdWxsKTogY2FsbGluZyBvZiBKUyBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRh
YmxlSlNTdHJlYW06OmNoZWNrRm9yRXhjZXB0aW9uKTogY2F0Y2hlcyBleGNlcHRpb24gYW5kIHN0
b3JlIHRoZW0uCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpzdG9yZUVycm9y
KTogcmVmYWN0b3JpbmcgZm9yIGNoZWNrRm9yRXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29yZTo6
UmVhZGFibGVKU1N0cmVhbTo6ZW5xdWV1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFi
bGVKU1N0cmVhbS5oOgorCiAyMDE1LTA2LTA5ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNh
bHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5j
YW5vbi5mcj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxk
IGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRocm93CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcAppbmRleCAwZGFmZTQ1MGFmNWEz
NDc3MTU2MzU5OGU1NDU3ZGViYTUzM2QyMmFkLi45YTU1ZWQ4OTQ2MzgzZWU5ZjkwZTlkODRhY2Rk
ZjBhYmNiNThkMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTExMiw2ICsxMTIsMjMgQEAgdm9pZCBSZWFkYWJsZVN0cmVh
bTo6Y2hhbmdlU3RhdGVUb0Vycm9yZWQoKQogICAgIGNsZWFyQ2FsbGJhY2tzKCk7CiB9CiAKK3Zv
aWQgUmVhZGFibGVTdHJlYW06OnN0YXJ0KCkKK3sKKyAgICBtX2lzU3RhcnRlZCA9IHRydWU7Cisg
ICAgcHVsbCgpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtOjpwdWxsKCkKK3sKKyAgICBpZiAo
IW1faXNTdGFydGVkIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkNsb3NlZCB8fCBtX3N0YXRlID09IFN0
YXRlOjpFcnJvcmVkIHx8IG1fY2xvc2VSZXF1ZXN0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHF1ZXVlU2l6ZSBjaGVjay4KKyAgICBpZiAobV9yZWFkUmVxdWVz
dHMuaXNFbXB0eSgpICYmIGhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGFzeW5jIHB1bGwgY2hlY2suCisgICAgZG9QdWxsKCk7Cit9CisKIFJlYWRh
YmxlU3RyZWFtUmVhZGVyJiBSZWFkYWJsZVN0cmVhbTo6Z2V0UmVhZGVyKCkKIHsKICAgICBBU1NF
UlQoIW1fcmVhZGVyKTsKQEAgLTE1NCwxMiArMTcxLDE0IEBAIHZvaWQgUmVhZGFibGVTdHJlYW06
OnJlYWQoUmVhZFN1Y2Nlc3NDYWxsYmFjayYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVhZEVuZENhbGxi
YWNrCiAgICAgfQogICAgIGlmIChoYXNWYWx1ZSgpKSB7CiAgICAgICAgIHN1Y2Nlc3NDYWxsYmFj
ayhyZWFkKCkpOwotICAgICAgICBpZiAobV9jbG9zZVJlcXVlc3RlZCAmJiAhaGFzVmFsdWUoKSkK
KyAgICAgICAgaWYgKCFtX2Nsb3NlUmVxdWVzdGVkKQorICAgICAgICAgICAgcHVsbCgpOworICAg
ICAgICBlbHNlIGlmICghaGFzVmFsdWUoKSkKICAgICAgICAgICAgIGNsb3NlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgbV9yZWFkUmVxdWVzdHMuYXBwZW5kKHsgV1RGOjptb3ZlKHN1
Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShlbmRDYWxsYmFjayksIFdURjo6bW92ZShmYWlsdXJl
Q2FsbGJhY2spIH0pOwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IHRvIHB1bGwuCisgICAg
cHVsbCgpOwogfQogCiBib29sIFJlYWRhYmxlU3RyZWFtOjpyZXNvbHZlUmVhZENhbGxiYWNrKEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKQEAgLTE3MSwxMSArMTkwLDYgQEAgYm9vbCBSZWFkYWJsZVN0cmVh
bTo6cmVzb2x2ZVJlYWRDYWxsYmFjayhKU0M6OkpTVmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgUmVhZGFibGVTdHJlYW06OnN0YXJ0KCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCiBjb25zdCBjaGFyKiBSZWFkYWJsZVN0cmVhbTo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJSZWFkYWJsZVN0cmVhbSI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5oCmluZGV4IDdkNGEyYmZj
OTA1ZTZiZTY4NDBhYmMxZTNjOGI3Y2YwOThmZThmNjguLmRmYmFjMjQyNzFjZDhiMDBiZGU3ZmFh
MTZkODIwNmIzNGE3NjVhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5oCkBAIC04OSw2ICs4OSw3IEBAIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBSZWFkYWJsZVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAgICBib29s
IHJlc29sdmVSZWFkQ2FsbGJhY2soSlNDOjpKU1ZhbHVlKTsKKyAgICB2b2lkIHB1bGwoKTsKIAog
cHJpdmF0ZToKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgpAQCAtMTAwLDYgKzEwMSw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBKU0M6OkpTVmFsdWUgcmVhZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZG9QdWxs
KCkgPSAwOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlYWRhYmxlU3RyZWFtUmVhZGVyPiBtX3Jl
YWRlcjsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJlYWRhYmxlU3RyZWFtUmVhZGVyPj4g
bV9yZWxlYXNlZFJlYWRlcnM7CkBAIC0xMTQsNiArMTE2LDcgQEAgcHJpdmF0ZToKICAgICB9Owog
ICAgIERlcXVlPFJlYWRDYWxsYmFja3M+IG1fcmVhZFJlcXVlc3RzOwogCisgICAgYm9vbCBtX2lz
U3RhcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nsb3NlUmVxdWVzdGVkIHsgZmFsc2UgfTsK
ICAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlJlYWRhYmxlIH07CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAK
aW5kZXggMTA4MTBmZWIwN2JiMGE0NmNlODNlMGViNDE2MjAwMjM2OTNmNDk2Yi4uZjFhYmY1OGM1
MGY4ZDY5YmRlNDgyZThkYzY3ZGYyYzlhZmYwNzE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwCkBAIC00OCw3
ICs0OCw3IEBAIHZvaWQgUmVhZGFibGVTdHJlYW1SZWFkZXI6OmNsb3NlZChSZWFkYWJsZVN0cmVh
bTo6Q2xvc2VkU3VjY2Vzc0NhbGxiYWNrJiYgc3VjY2VzCiB2b2lkIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyOjpyZWFkKFJlYWRhYmxlU3RyZWFtOjpSZWFkU3VjY2Vzc0NhbGxiYWNrJiYgc3VjY2Vzc0Nh
bGxiYWNrLCBSZWFkYWJsZVN0cmVhbTo6UmVhZEVuZENhbGxiYWNrJiYgZW5kQ2FsbGJhY2ssIFJl
YWRhYmxlU3RyZWFtOjpGYWlsdXJlQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCiB7CiAgICAg
aWYgKG1fc3RyZWFtLmlzUmVhZGFibGUoKSAmJiBtX3N0cmVhbS5yZWFkZXIoKSAhPSB0aGlzKSB7
Ci0gICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhKU0M6OkpTVmFsdWUoKSk7CisgICAgICAgIGVuZENh
bGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9zdHJlYW0ucmVhZChXVEY6
Om1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGOjptb3ZlKGVuZENhbGxiYWNrKSwgV1RGOjptb3Zl
KGZhaWx1cmVDYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVKU1N0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZUpTU3RyZWFtLmNwcAppbmRleCAyZDNkYmMxNWUwNmJkZGRkNjI5MjFiYTg1ZGUyM2FlOTM0
Y2M5ZjA2Li5kZjg4OGU5MTYzYTk0MGNkMzhkMTI1MzY2YTk4YjQ2ZWZjMjQ3YzJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRl
IDxydW50aW1lL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmg+CkBAIC0xMDIsNiArMTAzLDE5IEBAIHZvaWQgUmVhZGFibGVKU1N0
cmVhbTo6ZG9TdGFydChFeGVjU3RhdGUmIGV4ZWMpCiAgICAgc3RhcnRSZWFkYWJsZVN0cmVhbUFz
eW5jKCp0aGlzKTsKIH0KIAordm9pZCBSZWFkYWJsZUpTU3RyZWFtOjpkb1B1bGwoKQoreworICAg
IEV4ZWNTdGF0ZSYgZXhlYz0gKmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNM
b2NrSG9sZGVyIGxvY2soJmV4ZWMpOworCisgICAgaW52b2tlKGV4ZWMsICJwdWxsIik7CisKKyAg
ICBpZiAoY2hlY2tGb3JFeGNlcHRpb24oZXhlYykpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgaGFuZGxpbmcgcHJvbWlzZSBhcyByZXN1bHQgb2YgY2FsbGluZyBw
dWxsIGZ1bmN0aW9uLgorfQorCiBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gUmVhZGFibGVKU1N0
cmVhbTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKICAgICBKU09iamVjdCoganNTb3VyY2U7CkBAIC0xMzYs
MTEgKzE1MCwyNiBAQCBKU1ZhbHVlIFJlYWRhYmxlSlNTdHJlYW06OmpzQ29udHJvbGxlcihFeGVj
U3RhdGUmIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiB0b0pTKCZl
eGVjLCBnbG9iYWxPYmplY3QsIG1fY29udHJvbGxlci5nZXQoKSk7CiB9CiAKK2Jvb2wgUmVhZGFi
bGVKU1N0cmVhbTo6Y2hlY2tGb3JFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUmIGV4ZWMpCit7Cisg
ICAgaWYgKCFleGVjLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBKU1ZhbHVlIGV4Y2VwdGlvbiA9IGV4ZWMuZXhjZXB0aW9uKCktPnZhbHVlKCk7CisgICAgZXhl
Yy5jbGVhckV4Y2VwdGlvbigpOworICAgIHN0b3JlRXJyb3IoZXhlYywgZXhjZXB0aW9uKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBSZWFkYWJsZUpTU3RyZWFtOjpzdG9yZUVycm9yKEpT
Qzo6RXhlY1N0YXRlJiBleGVjKQogeworICAgIHN0b3JlRXJyb3IoZXhlYywgZXhlYy5hcmd1bWVu
dENvdW50KCkgPyBleGVjLmFyZ3VtZW50KDApIDogY3JlYXRlRXJyb3IoJmV4ZWMsIEFTQ0lJTGl0
ZXJhbCgiRXJyb3IgZnVuY3Rpb24gY2FsbGVkLiIpKSk7Cit9CisKK3ZvaWQgUmVhZGFibGVKU1N0
cmVhbTo6c3RvcmVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgSlNWYWx1ZSBlcnJvcikKK3sK
ICAgICBpZiAobV9lcnJvcikKICAgICAgICAgcmV0dXJuOwotICAgIEpTVmFsdWUgZXJyb3IgPSBl
eGVjLmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMuYXJndW1lbnQoMCkgOiBjcmVhdGVFcnJvcigmZXhl
YywgQVNDSUlMaXRlcmFsKCJFcnJvciBmdW5jdGlvbiBjYWxsZWQuIikpOwogICAgIG1fZXJyb3Iu
c2V0KGV4ZWMudm0oKSwgZXJyb3IpOwogCiAgICAgY2hhbmdlU3RhdGVUb0Vycm9yZWQoKTsKQEAg
LTE2NiwxMiArMTk1LDE0IEBAIHZvaWQgUmVhZGFibGVKU1N0cmVhbTo6ZW5xdWV1ZShFeGVjU3Rh
dGUmIGV4ZWMpCiAgICAgICAgIHJldHVybjsKIAogICAgIEpTVmFsdWUgY2h1bmsgPSBleGVjLmFy
Z3VtZW50Q291bnQoKSA/IGV4ZWMuYXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgpOwotICAgIGlm
IChyZXNvbHZlUmVhZENhbGxiYWNrKGNodW5rKSkKKyAgICBpZiAocmVzb2x2ZVJlYWRDYWxsYmFj
ayhjaHVuaykpIHsKKyAgICAgICAgcHVsbCgpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgbV9jaHVua1F1ZXVlLmFwcGVuZChKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+KGV4ZWMudm0o
KSwgY2h1bmspKTsKICAgICAvLyBGSVhNRTogQ29tcHV0ZSBjaHVuayBzaXplLgotICAgIC8vIEZJ
WE1FOiBBZGQgcHVsbGluZyBvZiBkYXRhIGhlcmUgYW5kIGFsc28gd2hlbiBkYXRhIGlzIHBhc3Nl
ZCB0byByZXNvbHZlIGNhbGxiYWNrLgorICAgIHB1bGwoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVK
U1N0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5o
CmluZGV4IGM0ZWI0N2YyYmZmNTIxMjBlZjA3NGFiNzRlM2U5OTIxZGM4Y2RjYmIuLjAwOTIzNDVi
ZTRhZDVlZWY1Nzg3YjQxZDg3NzdjM2I0MDFhMmJhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmgKQEAgLTYyLDkgKzYyLDEyIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkb1N0YXJ0KEpTQzo6RXhlY1N0YXRlJik7CiAKICAgICBKU0M6OkpTVmFsdWUg
aW52b2tlKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgY2hhciopOworICAgIGJvb2wgY2hlY2tGb3JF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUmKTsKKyAgICB2b2lkIHN0b3JlRXJyb3IoSlNDOjpFeGVj
U3RhdGUmLCBKU0M6OkpTVmFsdWUpOwogCiAgICAgdmlydHVhbCBib29sIGhhc1ZhbHVlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgcmVhZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkb1B1bGwoKSBvdmVycmlkZTsKIAogICAgIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU2Y2ViNjljYjg5YTRlNzYzNTBjMTgxMGEx
MTU1MjI0MjUyY2MzODAuLjYxOGYxZDRhNzdjODk4OWE3ZTY2M2MxMzQ2NzY5ZmU0NTRkODkzMWEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNS0wNi0xMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2
YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxldCA8eW91ZW5uLmZhYmxl
dEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBJbXBsZW1lbnQgcHVsbGlu
ZyBvZiBhIHNvdXJjZSBieSBhIFJlYWRhYmxlU3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyNjIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKQorCisgICAgICAgIFJlYmFzZWQgZXhwZWN0YXRpb25zLCByZW1vdmVkIHNv
bWUgInRpbWVvdXQ6IDUwIiBwYXJhbWV0ZXJzLgorICAgICAgICBSZW1vdmVkIGEgdGVzdCBmcm9t
IHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sIHRo
YXQgY2Fubm90IHBhc3MKKyAgICAgICAgdW50aWwgcHJvbWlzZXMgcmV0dXJuZWQgdG8gc3RhcnQg
YW5kIHB1bGwgSlMgY2FsbGJhY2tzIGFyZSBoYW5kbGVkLgorICAgICAgICBGaXhlZCBidWcgaW4g
c3RyZWFtcy11dGlscy5qcyAod2FzIHVzaW5nIHRoZSBvbGQgQVBJIHJlcGxhY2VkIGJ5IGNvbnRy
b2xsZXIpLgorCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFk
LXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sOgorICAgICAg
ICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVh
ZGFibGUtc3RyZWFtLmh0bWw6CisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50
YXRpb24vcmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanM6CisgICAgICAgICguc3RyZWFtLm5ldy5S
ZWFkYWJsZVN0cmVhbS4pOgorICAgICAgICAoLnN0cmVhbS5uZXcuUmVhZGFibGVTdHJlYW0pOgor
ICAgICAgICAoc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFtKToKKwogMjAxNS0wNi0wOSAgWGFiaWVy
IFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxl
dCA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW1N0cmVhbXMgQVBJXSBS
ZWFkYWJsZUpTU3RyZWFtIHNob3VsZCBoYW5kbGUgSlMgc291cmNlIGdldHRlcnMgdGhhdCB0aHJv
dwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVj
dGVkLnR4dAppbmRleCBjNzMzYzM4Nzk0MGIzMjZmMzA0NmE3YjhhOGFmZTBiMmFlNzIzNjY4Li4y
ODQxOWZhMjI1ZmJmNjQ0ODlhNTM4Yzc0ZWJlZDFlZGI1YjI3YWE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1z
b3VyY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4dApAQCAtMSwx
MCArMSwxMCBAQAogCiBQQVNTIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBnZXR0
ZXIgCiBQQVNTIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBtZXRob2QgCi1USU1F
T1VUIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxs
KSBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVs
bCBtZXRob2QgKGluaXRpYWwgcHVsbCkgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgVW5kZXJseWlu
ZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChzZWNvbmQgcHVsbCkgVGVzdCB0aW1lZCBv
dXQKLVRJTUVPVVQgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChzZWNv
bmQgcHVsbCkgVGVzdCB0aW1lZCBvdXQKK1BBU1MgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5n
IHB1bGwgZ2V0dGVyIChpbml0aWFsIHB1bGwpIAorUEFTUyBVbmRlcmx5aW5nIHNvdXJjZTogdGhy
b3dpbmcgcHVsbCBtZXRob2QgKGluaXRpYWwgcHVsbCkgCitQQVNTIFVuZGVybHlpbmcgc291cmNl
OiB0aHJvd2luZyBwdWxsIGdldHRlciAoc2Vjb25kIHB1bGwpIAorUEFTUyBVbmRlcmx5aW5nIHNv
dXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKHNlY29uZCBwdWxsKSAKIEZBSUwgVW5kZXJseWlu
ZyBzb3VyY2U6IHRocm93aW5nIGNhbmNlbCBnZXR0ZXIgY2FuY2VsIGlzIG5vdCBpbXBsZW1lbnRl
ZAogRkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgY2FuY2VsIG1ldGhvZCBjYW5jZWwg
aXMgbm90IGltcGxlbWVudGVkCiBGQUlMIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBzdHJh
dGVneSBnZXR0ZXIgYXNzZXJ0X3Rocm93czogZW5xdWV1ZSBzaG91bGQgdGhyb3cgdGhlIGVycm9y
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGMuZW5xdWV1ZSgnYScpOyB9IiBkaWQgbm90IHRocm93
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVy
ZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLmh0bWwKaW5kZXggYzg1
ZDUzYzcxMTk5MDNiMjVmZjBkZTEzMDc0YjVkNTllZWQ4MzY2Ny4uMjNmZmQ4OTFkZDhhODU1OTM3
ZWUyMjhmMDc2NjNiNWQwNWJiNWM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5
aW5nLXNvdXJjZXMuaHRtbApAQCAtMjcsNyArMjcsNyBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICAg
IH0sICdjb25zdHJ1Y3RpbmcgdGhlIHN0cmVhbSBzaG91bGQgcmUtdGhyb3cgdGhlIGVycm9yJyk7
CiB9LCAnVW5kZXJseWluZyBzb3VyY2Ugc3RhcnQ6IHRocm93aW5nIG1ldGhvZCcpOwogCi12YXIg
dGVzdDEgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBnZXR0
ZXIgKGluaXRpYWwgcHVsbCknLCB7IHRpbWVvdXQ6IDUwIH0pOwordmFyIHRlc3QxID0gYXN5bmNf
dGVzdCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChpbml0aWFsIHB1
bGwpJyk7CiB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciB0aGVFcnJvciA9IG5ldyBF
cnJvcignYSB1bmlxdWUgc3RyaW5nJyk7CiAgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFt
KHsKQEAgLTQ0LDcgKzQ0LDcgQEAgdGVzdDEuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgfSkp
OwogfSk7CiAKLXZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJv
d2luZyBwdWxsIG1ldGhvZCAoaW5pdGlhbCBwdWxsKScsIHsgdGltZW91dDogNTAgfSk7Cit2YXIg
dGVzdDIgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBtZXRo
b2QgKGluaXRpYWwgcHVsbCknKTsKIHRlc3QyLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHRo
ZUVycm9yID0gbmV3IEVycm9yKCdhIHVuaXF1ZSBzdHJpbmcnKTsKICAgICB2YXIgcnMgPSBuZXcg
UmVhZGFibGVTdHJlYW0oewpAQCAtNjEsNyArNjEsNyBAQCB0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkg
ewogICAgICAgICB9KSk7CiB9KTsKIAotdmFyIHRlc3QzID0gYXN5bmNfdGVzdCgnVW5kZXJseWlu
ZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChzZWNvbmQgcHVsbCknLCB7IHRpbWVvdXQ6
IDUwIH0pOwordmFyIHRlc3QzID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93
aW5nIHB1bGwgZ2V0dGVyIChzZWNvbmQgcHVsbCknKTsKIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7
CiAgICAgdmFyIHRoZUVycm9yID0gbmV3IEVycm9yKCdhIHVuaXF1ZSBzdHJpbmcnKTsKICAgICB2
YXIgY291bnRlciA9IDA7CkBAIC04OSw3ICs4OSw3IEBAIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7
CiAgICAgICAgIH0pKTsKIH0pOwogCi12YXIgdGVzdDQgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5n
IHNvdXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKHNlY29uZCBwdWxsKScsIHsgdGltZW91dDog
NTAgfSk7Cit2YXIgdGVzdDQgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dp
bmcgcHVsbCBtZXRob2QgKHNlY29uZCBwdWxsKScpOwogdGVzdDQuc3RlcChmdW5jdGlvbigpIHsK
ICAgICB2YXIgdGhlRXJyb3IgPSBuZXcgRXJyb3IoJ2EgdW5pcXVlIHN0cmluZycpOwogICAgIHZh
ciBjb3VudGVyID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0
ZWQudHh0CmluZGV4IGE1ZWZkOWYyZjE5YzMwNGEzOTUzZTA0MDRhYTgyZTYxM2Q3ZmM3ZmQuLjcz
ZTJiODFjZGY2YjFjOTA5ZTk2OGQ5ZjhiOTg0MWQ4N2M3ZDE3M2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50
YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dApAQCAtMTAsMTAgKzEwLDEwIEBAIFRJ
TUVPVVQgUmVhZGFibGVTdHJlYW0gc3RhcnQgc2hvdWxkIGJlIGFibGUgdG8gcmV0dXJuIGEgcHJv
bWlzZSBhbmQgcmVqZWN0IGl0IFRlCiBQQVNTIFJlYWRhYmxlU3RyZWFtIHNob3VsZCBiZSBhYmxl
IHRvIGVucXVldWUgZGlmZmVyZW50IG9iamVjdHMuIAogUEFTUyBSZWFkYWJsZVN0cmVhbTogaWYg
c3RhcnQgdGhyb3dzIGFuIGVycm9yLCBpdCBzaG91bGQgYmUgcmUtdGhyb3duIAogVElNRU9VVCBS
ZWFkYWJsZVN0cmVhbTogaWYgcHVsbCByZWplY3RzLCBpdCBzaG91bGQgZXJyb3IgdGhlIHN0cmVh
bSBUZXN0IHRpbWVkIG91dAotRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIG5vdCBjYWxsIHB1
bGwgdW50aWwgdGhlIHByZXZpb3VzIHB1bGwgY2FsbCdzIHByb21pc2UgZnVsZmlsbHMgYXNzZXJ0
X2VxdWFsczogcHVsbCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCBvbmNlIGFmdGVyIHN0YXJ0LCBi
dXQgbm90IHlldCBoYXZlIGJlZW4gY2FsbGVkIGEgc2Vjb25kIHRpbWUgZXhwZWN0ZWQgMSBidXQg
Z290IDAKK0ZBSUwgUmVhZGFibGVTdHJlYW06IHNob3VsZCBub3QgY2FsbCBwdWxsIHVudGlsIHRo
ZSBwcmV2aW91cyBwdWxsIGNhbGwncyBwcm9taXNlIGZ1bGZpbGxzIGFzc2VydF9lcXVhbHM6IGFm
dGVyIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHB1bGwgaXMgZnVsZmlsbGVkLCBwdWxsIHNob3Vs
ZCBiZSBjYWxsZWQgYSBzZWNvbmQgdGltZSBleHBlY3RlZCAyIGJ1dCBnb3QgMQogUEFTUyBSZWFk
YWJsZVN0cmVhbTogc2hvdWxkIG5vdCBjYWxsIHB1bGwgYWZ0ZXIgc3RhcnQgaWYgdGhlIHN0cmVh
bSBpcyBub3cgY2xvc2VkIAotRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIGNhbGwgcHVsbCBh
ZnRlciBlbnF1ZXVlaW5nIGZyb20gaW5zaWRlIHB1bGwgKHdpdGggbm8gcmVhZCByZXF1ZXN0cyks
IGlmIHN0cmF0ZWd5IGFsbG93cyBhc3NlcnRfZXF1YWxzOiBwdWxsKCkgc2hvdWxkIGhhdmUgYmVl
biBjYWxsZWQgZm91ciB0aW1lcyBleHBlY3RlZCA0IGJ1dCBnb3QgMAotVElNRU9VVCBSZWFkYWJs
ZVN0cmVhbSBwdWxsIHNob3VsZCBiZSBhYmxlIHRvIGNsb3NlIGEgc3RyZWFtLiBUZXN0IHRpbWVk
IG91dAorRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIGNhbGwgcHVsbCBhZnRlciBlbnF1ZXVl
aW5nIGZyb20gaW5zaWRlIHB1bGwgKHdpdGggbm8gcmVhZCByZXF1ZXN0cyksIGlmIHN0cmF0ZWd5
IGFsbG93cyBhc3NlcnRfZXF1YWxzOiBwdWxsKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQgZm91
ciB0aW1lcyBleHBlY3RlZCA0IGJ1dCBnb3QgMQorUEFTUyBSZWFkYWJsZVN0cmVhbSBwdWxsIHNo
b3VsZCBiZSBhYmxlIHRvIGNsb3NlIGEgc3RyZWFtLiAKIEZBSUwgUmVhZGFibGVTdHJlYW06IGVu
cXVldWUgc2hvdWxkIHRocm93IHdoZW4gdGhlIHN0cmVhbSBpcyByZWFkYWJsZSBidXQgZHJhaW5p
bmcgYXNzZXJ0X2VxdWFsczogdGhlIGZpcnN0IGVucXVldWUgc2hvdWxkIHJldHVybiB0cnVlIGV4
cGVjdGVkIChib29sZWFuKSB0cnVlIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCiBQQVNT
IFJlYWRhYmxlU3RyZWFtOiBlbnF1ZXVlIHNob3VsZCB0aHJvdyB3aGVuIHRoZSBzdHJlYW0gaXMg
Y2xvc2VkIAogUEFTUyBSZWFkYWJsZVN0cmVhbTogZW5xdWV1ZSBzaG91bGQgdGhyb3cgdGhlIHN0
b3JlZCBlcnJvciB3aGVuIHRoZSBzdHJlYW0gaXMgZXJyb3JlZCAKQEAgLTIxLDYgKzIxLDUgQEAg
RkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIGNhbGwgdW5kZXJseWluZyBzb3VyY2UgbWV0aG9k
cyBhcyBtZXRob2RzIHJlbGVhc2VMb2MKIEZBSUwgUmVhZGFibGVTdHJlYW0gc3RyYXRlZ2llczog
dGhlIGRlZmF1bHQgc3RyYXRlZ3kgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgYWxsIGJ1dCB0aGUg
Zmlyc3QgZW5xdWV1ZSBjYWxsIGFzc2VydF9lcXVhbHM6IGZpcnN0IGVucXVldWUgc2hvdWxkIHJl
dHVybiB0cnVlIGV4cGVjdGVkIChib29sZWFuKSB0cnVlIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkCiBGQUlMIFJlYWRhYmxlU3RyZWFtIHN0cmF0ZWdpZXM6IHRoZSBkZWZhdWx0IHN0cmF0
ZWd5IHNob3VsZCBjb250aW51ZSByZXR1cm5pbmcgdHJ1ZSBmcm9tIGVucXVldWUgaWYgdGhlIGNo
dW5rcyBhcmUgcmVhZCBpbW1lZGlhdGVseSBhc3NlcnRfZXF1YWxzOiBmaXJzdCBlbnF1ZXVlIHNo
b3VsZCByZXR1cm4gdHJ1ZSBleHBlY3RlZCAoYm9vbGVhbikgdHJ1ZSBidXQgZ290ICh1bmRlZmlu
ZWQpIHVuZGVmaW5lZAogVElNRU9VVCBSZWFkYWJsZVN0cmVhbSBpbnRlZ3JhdGlvbiB0ZXN0OiBh
ZGFwdGluZyBhIHJhbmRvbSBwdXNoIHNvdXJjZSBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBSZWFk
YWJsZVN0cmVhbSBpbnRlZ3JhdGlvbiB0ZXN0OiBhZGFwdGluZyBhIHN5bmMgcHVsbCBzb3VyY2Ug
VGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDog
YWRhcHRpbmcgYW4gYXN5bmMgcHVsbCBzb3VyY2UgVGVzdCB0aW1lZCBvdXQKK1BBU1MgUmVhZGFi
bGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSBzeW5jIHB1bGwgc291cmNlIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9yZWFkYWJsZS1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWlt
cGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sCmluZGV4IGVhYjFmMDlmMzkwMmJjOGI2
NmUwMTkwMGYyNmZiNTkxYWQzOTZkOGYuLjcwZjIzYTc2ZTkzMDMyOGMyMDg2Y2I3N2E2Y2ZiNGY2
MTFkYzYwYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sCkBAIC01MTYsNyAr
NTE2LDcgQEAgdGVzdDE0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgfSkpOwogfSk7CiAKLXZhciB0
ZXN0MTUgPSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVhbSBwdWxsIHNob3VsZCBiZSBhYmxlIHRv
IGNsb3NlIGEgc3RyZWFtLicsIHsgdGltZW91dDogNTAgfSk7Cit2YXIgdGVzdDE1ID0gYXN5bmNf
dGVzdCgnUmVhZGFibGVTdHJlYW0gcHVsbCBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSBhIHN0cmVh
bS4nKTsKIHRlc3QxNS5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBwdWxsQ2FsbGVkID0gZmFs
c2U7CiAgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKQEAgLTcwMiw3ICs3MDIsNyBA
QCB0ZXN0MTguc3RlcChmdW5jdGlvbigpIHsKICAgICB9KSwgdGVzdDE4LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7IGFzc2VydF9yZWFjaGVkKGUpOyB9KSk7CiB9KTsKIAotdmFyIHRlc3QxOSA9IGFz
eW5jX3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGEgc3lu
YyBwdWxsIHNvdXJjZScsIHsgdGltZW91dDogNTAgfSk7Cit2YXIgdGVzdDE5ID0gYXN5bmNfdGVz
dCgnUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSBzeW5jIHB1bGwg
c291cmNlJyk7CiB0ZXN0MTkuc3RlcChmdW5jdGlvbigpIHsKICAgICB2YXIgcnMgPSBzZXF1ZW50
aWFsUmVhZGFibGVTdHJlYW0oMTApOwogCkBAIC03MTMsNyArNzEzLDcgQEAgdGVzdDE5LnN0ZXAo
ZnVuY3Rpb24oKSB7CiAgICAgICAgIHRlc3QxOS5kb25lKCk7CiAgICAgfSkpOwogfSk7Ci0KKy8q
CiB2YXIgdGVzdDIwID0gYXN5bmNfdGVzdCgnUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVz
dDogYWRhcHRpbmcgYW4gYXN5bmMgcHVsbCBzb3VyY2UnLCB7IHRpbWVvdXQ6IDUwIH0pOwogdGVz
dDIwLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHJzID0gc2VxdWVudGlhbFJlYWRhYmxlU3Ry
ZWFtKDEwLCB7IGFzeW5jOiB0cnVlIH0pOwpAQCAtNzI1LDQgKzcyNSw1IEBAIHRlc3QyMC5zdGVw
KGZ1bmN0aW9uKCkgewogICAgICAgICB0ZXN0MjAuZG9uZSgpOwogICAgIH0pKTsKIH0pOworKi8K
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1w
bGVtZW50YXRpb24vcmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNvdXJjZXMvc3RyZWFtcy11dGlscy5qcwpp
bmRleCAyNDk4NjVjNDdjZDUxNjBlNTM5MTkxYjEyODdmMzY2ZWMzNzFmM2IzLi44M2E0MjA5ZGVi
YzYzNDUyZmNiYmUxNTBjNDMwYjRhZTBhMWQzOTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNvdXJjZXMvc3RyZWFtcy11dGlscy5q
cworKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNv
dXJjZXMvc3RyZWFtcy11dGlscy5qcwpAQCAtMTUwLDI1ICsxNTAsMjcgQEAgZnVuY3Rpb24gc2Vx
dWVudGlhbFJlYWRhYmxlU3RyZWFtKGxpbWl0LCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICAg
c2VxdWVudGlhbFNvdXJjZS5vcGVuKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSwKIAotICAgICAgICBwdWxsOiBmdW5jdGlvbihlbnF1ZXVlLCBmaW5p
c2gsIGVycm9yKSB7CisgICAgICAgIHB1bGw6IGZ1bmN0aW9uKGMpIHsKICAgICAgICAgICAgIHNl
cXVlbnRpYWxTb3VyY2UucmVhZChmdW5jdGlvbihlcnIsIGRvbmUsIGNodW5rKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGVycikgewotICAgICAgICAgICAgICAgICAgICBlcnJvcihlcnIpOworICAg
ICAgICAgICAgICAgICAgICBjLmVycm9yKGVycik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChkb25lKSB7CiAgICAgICAgICAgICAgICAgICAgIHNlcXVlbnRpYWxTb3VyY2UuY2xvc2UoZnVu
Y3Rpb24oZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyb3IoZXJyKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjLmVycm9yKGVycik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNo
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGVu
cXVldWUoY2h1bmspOworICAgICAgICAgICAgICAgICAgICBjLmVucXVldWUoY2h1bmspOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwogICAgICAgICB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254590</attachid>
            <date>2015-06-09 12:44:10 -0700</date>
            <delta_ts>2015-06-10 01:11:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-145262-20150609214342.patch</filename>
            <type>text/plain</type>
            <size>19820</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM0ZDI4ZGQxMDQ4MmIx
NmFlMTY4ZDE0ZGMwYWQwM2IwMmEwMzVmOC4uMzY4MzkwMzJkNjEzMTU0NzA1MGFlYmVhZWI1Mjg1
MGViNDk0ZDg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE1LTA2LTA5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAorICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBwdWxsaW5nIG9mIGEgc291cmNlIGJ5IGEgUmVhZGFibGVTdHJlYW0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyCisKKyAgICAgICAgSW50cm9kdWNlZCBhYnN0cmFj
dCBSZWFkYWJsZVN0cmVhbTo6ZG9QdWxsKCkgd2hpY2ggaXMgb3ZlcnJpZGVuIGluIFJlYWRhYmxl
SlNTdHJlYW0uCisgICAgICAgIEFkZGVkIHN1cHBvcnQgdG8gY2FsbCB0aGUgInB1bGwiIEpTIGNh
bGxiYWNrIGluIFJlYWRhYmxlSlNTdHJlYW06OmRvUHVsbCgpLgorICAgICAgICBBZGRlZCBjYWxs
cyB0byBwdWxsIGFzIHJlcXVlc3RlZCBieSB0aGUgc3BlYyAod2hlbiByZXNvbHZpbmcgYSByZWFk
IGNhbGxiYWNrLCBhdCBzdGFydCB0aW1lLi4uKS4KKworICAgICAgICBGaXhlZCBpc3N1ZSBpbiBS
ZWFkYWJsZVN0cmVhbVJlYWRlcjo6cmVhZCgpICh1c2Ugb2Ygc3VjY2Vzc0NhbGxiYWNrKEpTVmFs
dWUoKSkgaW4gbGlldSBvZiBlbmRDYWxsYmFjaygpKQorCisgICAgICAgIENvdmVyZWQgYnkgcmVi
YXNlZCB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c3RhcnQpOiBjYWxsaW5nIHB1
bGwoKSBvbmNlIHN0YXJ0LgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW06OnB1bGwp
OiBjYWxsaW5nIGRvUHVsbCgpIGlmIHJlYWRhYmxlU3RyZWFtIHN0YXRlcyByZXF1aXJlcyB0by4K
KyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpyZWFkKTogY2FsbGluZyBwdWxsKCkg
YWZ0ZXIgcmVzb2x2aW5nIGEgcmVhZCBjYWxsYmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1SZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1SZWFkZXI6
OnJlYWQpOiBmaXhlZCBKU1ZhbHVlKCkgYnVnLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRh
YmxlSlNTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6ZG9Q
dWxsKTogY2FsbGluZyBvZiBKUyBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxl
SlNTdHJlYW06OnN0b3JlRXhjZXB0aW9uKTogY2F0Y2hlcyBleGNlcHRpb24gYW5kIHN0b3JlIHRo
ZW0uCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpzdG9yZUVycm9yKTogcmVm
YWN0b3JpbmcgZm9yIGNoZWNrRm9yRXhjZXB0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFi
bGVKU1N0cmVhbTo6ZW5xdWV1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0
cmVhbS5oOgorCisyMDE1LTA2LTA5ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlz
QGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5m
cj4KKwogICAgICAgICBbU3RyZWFtcyBBUEldIFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRs
ZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRocm93CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2MDAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXggMGRhZmU0NTBhZjVhMzQ3NzE1
NjM1OThlNTQ1N2RlYmE1MzNkMjJhZC4uOWE1NWVkODk0NjM4M2VlOWY5MGU5ZDg0YWNkZGYwYWJj
YjU4ZDAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW0uY3BwCkBAIC0xMTIsNiArMTEyLDIzIEBAIHZvaWQgUmVhZGFibGVTdHJlYW06OmNo
YW5nZVN0YXRlVG9FcnJvcmVkKCkKICAgICBjbGVhckNhbGxiYWNrcygpOwogfQogCit2b2lkIFJl
YWRhYmxlU3RyZWFtOjpzdGFydCgpCit7CisgICAgbV9pc1N0YXJ0ZWQgPSB0cnVlOworICAgIHB1
bGwoKTsKK30KKwordm9pZCBSZWFkYWJsZVN0cmVhbTo6cHVsbCgpCit7CisgICAgaWYgKCFtX2lz
U3RhcnRlZCB8fCBtX3N0YXRlID09IFN0YXRlOjpDbG9zZWQgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6
RXJyb3JlZCB8fCBtX2Nsb3NlUmVxdWVzdGVkKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklY
TUU6IEltcGxlbWVudCBxdWV1ZVNpemUgY2hlY2suCisgICAgaWYgKG1fcmVhZFJlcXVlc3RzLmlz
RW1wdHkoKSAmJiBoYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCBhc3luYyBwdWxsIGNoZWNrLgorICAgIGRvUHVsbCgpOworfQorCiBSZWFkYWJsZVN0
cmVhbVJlYWRlciYgUmVhZGFibGVTdHJlYW06OmdldFJlYWRlcigpCiB7CiAgICAgQVNTRVJUKCFt
X3JlYWRlcik7CkBAIC0xNTQsMTIgKzE3MSwxNCBAQCB2b2lkIFJlYWRhYmxlU3RyZWFtOjpyZWFk
KFJlYWRTdWNjZXNzQ2FsbGJhY2smJiBzdWNjZXNzQ2FsbGJhY2ssIFJlYWRFbmRDYWxsYmFjawog
ICAgIH0KICAgICBpZiAoaGFzVmFsdWUoKSkgewogICAgICAgICBzdWNjZXNzQ2FsbGJhY2socmVh
ZCgpKTsKLSAgICAgICAgaWYgKG1fY2xvc2VSZXF1ZXN0ZWQgJiYgIWhhc1ZhbHVlKCkpCisgICAg
ICAgIGlmICghbV9jbG9zZVJlcXVlc3RlZCkKKyAgICAgICAgICAgIHB1bGwoKTsKKyAgICAgICAg
ZWxzZSBpZiAoIWhhc1ZhbHVlKCkpCiAgICAgICAgICAgICBjbG9zZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIG1fcmVhZFJlcXVlc3RzLmFwcGVuZCh7IFdURjo6bW92ZShzdWNjZXNz
Q2FsbGJhY2spLCBXVEY6Om1vdmUoZW5kQ2FsbGJhY2spLCBXVEY6Om1vdmUoZmFpbHVyZUNhbGxi
YWNrKSB9KTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSB0byBwdWxsLgorICAgIHB1bGwo
KTsKIH0KIAogYm9vbCBSZWFkYWJsZVN0cmVhbTo6cmVzb2x2ZVJlYWRDYWxsYmFjayhKU0M6OkpT
VmFsdWUgdmFsdWUpCkBAIC0xNzEsMTEgKzE5MCw2IEBAIGJvb2wgUmVhZGFibGVTdHJlYW06OnJl
c29sdmVSZWFkQ2FsbGJhY2soSlNDOjpKU1ZhbHVlIHZhbHVlKQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIFJlYWRhYmxlU3RyZWFtOjpzdGFydCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQogY29uc3QgY2hhciogUmVhZGFibGVTdHJlYW06OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAogewogICAgIHJldHVybiAiUmVhZGFibGVTdHJlYW0iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAppbmRleCA3ZDRhMmJmYzkwNWU2
YmU2ODQwYWJjMWUzYzhiN2NmMDk4ZmU4ZjY4Li5kZmJhYzI0MjcxY2Q4YjAwYmRlN2ZhYTE2ZDgy
MDZiMzRhNzY1YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW0uaApAQCAtODksNiArODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
UmVhZGFibGVTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgYm9vbCByZXNv
bHZlUmVhZENhbGxiYWNrKEpTQzo6SlNWYWx1ZSk7CisgICAgdm9pZCBwdWxsKCk7CiAKIHByaXZh
dGU6CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KQEAgLTEwMCw2ICsxMDEsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc1ZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgSlNDOjpKU1ZhbHVlIHJlYWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRvUHVsbCgpID0g
MDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFkYWJsZVN0cmVhbVJlYWRlcj4gbV9yZWFkZXI7
CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSZWFkYWJsZVN0cmVhbVJlYWRlcj4+IG1fcmVs
ZWFzZWRSZWFkZXJzOwpAQCAtMTE0LDYgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgfTsKICAgICBE
ZXF1ZTxSZWFkQ2FsbGJhY2tzPiBtX3JlYWRSZXF1ZXN0czsKIAorICAgIGJvb2wgbV9pc1N0YXJ0
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jbG9zZVJlcXVlc3RlZCB7IGZhbHNlIH07CiAgICAg
U3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpSZWFkYWJsZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwCmluZGV4
IDEwODEwZmViMDdiYjBhNDZjZTgzZTBlYjQxNjIwMDIzNjkzZjQ5NmIuLmYxYWJmNThjNTBmOGQ2
OWJkZTQ4MmU4ZGM2N2RmMmM5YWZmMDcxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcApAQCAtNDgsNyArNDgs
NyBAQCB2b2lkIFJlYWRhYmxlU3RyZWFtUmVhZGVyOjpjbG9zZWQoUmVhZGFibGVTdHJlYW06OkNs
b3NlZFN1Y2Nlc3NDYWxsYmFjayYmIHN1Y2Nlcwogdm9pZCBSZWFkYWJsZVN0cmVhbVJlYWRlcjo6
cmVhZChSZWFkYWJsZVN0cmVhbTo6UmVhZFN1Y2Nlc3NDYWxsYmFjayYmIHN1Y2Nlc3NDYWxsYmFj
aywgUmVhZGFibGVTdHJlYW06OlJlYWRFbmRDYWxsYmFjayYmIGVuZENhbGxiYWNrLCBSZWFkYWJs
ZVN0cmVhbTo6RmFpbHVyZUNhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQogewogICAgIGlmICht
X3N0cmVhbS5pc1JlYWRhYmxlKCkgJiYgbV9zdHJlYW0ucmVhZGVyKCkgIT0gdGhpcykgewotICAg
ICAgICBzdWNjZXNzQ2FsbGJhY2soSlNDOjpKU1ZhbHVlKCkpOworICAgICAgICBlbmRDYWxsYmFj
aygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fc3RyZWFtLnJlYWQoV1RGOjptb3Zl
KHN1Y2Nlc3NDYWxsYmFjayksIFdURjo6bW92ZShlbmRDYWxsYmFjayksIFdURjo6bW92ZShmYWls
dXJlQ2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVK
U1N0cmVhbS5jcHAKaW5kZXggMmQzZGJjMTVlMDZiZGRkZDYyOTIxYmE4NWRlMjNhZTkzNGNjOWYw
Ni4uOTg4NmQ1NDhjNGJkOGRkZDg1ZmE0NzYzYzk4N2IyZTNjNWMyNjJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0
dXJlSW5saW5lcy5oPgpAQCAtMTAyLDYgKzEwMywyMSBAQCB2b2lkIFJlYWRhYmxlSlNTdHJlYW06
OmRvU3RhcnQoRXhlY1N0YXRlJiBleGVjKQogICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYygq
dGhpcyk7CiB9CiAKK3ZvaWQgUmVhZGFibGVKU1N0cmVhbTo6ZG9QdWxsKCkKK3sKKyAgICBFeGVj
U3RhdGUmIHN0YXRlID0gKmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNMb2Nr
SG9sZGVyIGxvY2soJnN0YXRlKTsKKworICAgIGludm9rZShzdGF0ZSwgInB1bGwiKTsKKworICAg
IGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkgeworICAgICAgICBzdG9yZUV4Y2VwdGlvbihzdGF0
ZSk7CisgICAgICAgIEFTU0VSVCghc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgaGFuZGxpbmcgcHJvbWlzZSBhcyBy
ZXN1bHQgb2YgY2FsbGluZyBwdWxsIGZ1bmN0aW9uLgorfQorCiBSZWZQdHI8UmVhZGFibGVKU1N0
cmVhbT4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgZXhlYywgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKICAgICBKU09iamVjdCog
anNTb3VyY2U7CkBAIC0xMzYsMTEgKzE1MiwyMiBAQCBKU1ZhbHVlIFJlYWRhYmxlSlNTdHJlYW06
OmpzQ29udHJvbGxlcihFeGVjU3RhdGUmIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYQog
ICAgIHJldHVybiB0b0pTKCZleGVjLCBnbG9iYWxPYmplY3QsIG1fY29udHJvbGxlci5nZXQoKSk7
CiB9CiAKK3ZvaWQgUmVhZGFibGVKU1N0cmVhbTo6c3RvcmVFeGNlcHRpb24oSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlKQoreworICAgIEpTVmFsdWUgZXhjZXB0aW9uID0gc3RhdGUuZXhjZXB0aW9uKCkt
PnZhbHVlKCk7CisgICAgc3RhdGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICBzdG9yZUVycm9yKHN0
YXRlLCBleGNlcHRpb24pOworfQorCiB2b2lkIFJlYWRhYmxlSlNTdHJlYW06OnN0b3JlRXJyb3Io
SlNDOjpFeGVjU3RhdGUmIGV4ZWMpCiB7CisgICAgc3RvcmVFcnJvcihleGVjLCBleGVjLmFyZ3Vt
ZW50Q291bnQoKSA/IGV4ZWMuYXJndW1lbnQoMCkgOiBjcmVhdGVFcnJvcigmZXhlYywgQVNDSUlM
aXRlcmFsKCJFcnJvciBmdW5jdGlvbiBjYWxsZWQuIikpKTsKK30KKwordm9pZCBSZWFkYWJsZUpT
U3RyZWFtOjpzdG9yZUVycm9yKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIGVycm9yKQor
ewogICAgIGlmIChtX2Vycm9yKQogICAgICAgICByZXR1cm47Ci0gICAgSlNWYWx1ZSBlcnJvciA9
IGV4ZWMuYXJndW1lbnRDb3VudCgpID8gZXhlYy5hcmd1bWVudCgwKSA6IGNyZWF0ZUVycm9yKCZl
eGVjLCBBU0NJSUxpdGVyYWwoIkVycm9yIGZ1bmN0aW9uIGNhbGxlZC4iKSk7CiAgICAgbV9lcnJv
ci5zZXQoZXhlYy52bSgpLCBlcnJvcik7CiAKICAgICBjaGFuZ2VTdGF0ZVRvRXJyb3JlZCgpOwpA
QCAtMTY2LDEyICsxOTMsMTQgQEAgdm9pZCBSZWFkYWJsZUpTU3RyZWFtOjplbnF1ZXVlKEV4ZWNT
dGF0ZSYgZXhlYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNWYWx1ZSBjaHVuayA9IGV4ZWMu
YXJndW1lbnRDb3VudCgpID8gZXhlYy5hcmd1bWVudCgwKSA6IGpzVW5kZWZpbmVkKCk7Ci0gICAg
aWYgKHJlc29sdmVSZWFkQ2FsbGJhY2soY2h1bmspKQorICAgIGlmIChyZXNvbHZlUmVhZENhbGxi
YWNrKGNodW5rKSkgeworICAgICAgICBwdWxsKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBtX2NodW5rUXVldWUuYXBwZW5kKEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4oZXhlYy52
bSgpLCBjaHVuaykpOwogICAgIC8vIEZJWE1FOiBDb21wdXRlIGNodW5rIHNpemUuCi0gICAgLy8g
RklYTUU6IEFkZCBwdWxsaW5nIG9mIGRhdGEgaGVyZSBhbmQgYWxzbyB3aGVuIGRhdGEgaXMgcGFz
c2VkIHRvIHJlc29sdmUgY2FsbGJhY2suCisgICAgcHVsbCgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJs
ZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFt
LmgKaW5kZXggYzRlYjQ3ZjJiZmY1MjEyMGVmMDc0YWI3NGUzZTk5MjFkYzhjZGNiYi4uZDRmZjI4
ZTA3NDU2NjczY2VkMzE3NzcyODYwYmU1YzJiYzRmODI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaApAQCAtNjIsOSArNjIsMTIgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRvU3RhcnQoSlNDOjpFeGVjU3RhdGUmKTsKIAogICAgIEpTQzo6SlNWYWx1
ZSBpbnZva2UoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBjaGFyKik7CisgICAgdm9pZCBzdG9yZUV4
Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSYpOworICAgIHZvaWQgc3RvcmVFcnJvcihKU0M6OkV4ZWNT
dGF0ZSYsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSByZWFkKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRvUHVsbCgpIG92ZXJyaWRlOwogCiAgICAgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTZjZWI2OWNiODlhNGU3NjM1MGMxODEwYTEx
NTUyMjQyNTJjYzM4MC4uNDRlYjM1MmIwMWIxZTE4NmFhYWZiZDE2ZThmMzhmNWYyM2RjMTMyZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE1LTA2LTA5ICBYYWJpZXIgUm9kcmlndWV6IENhbHZh
ciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0
QGNyZi5jYW5vbi5mcj4KIAorICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBwdWxsaW5n
IG9mIGEgc291cmNlIGJ5IGEgUmVhZGFibGVTdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTI2MgorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyCisKKyAgICAgICAgUmViYXNlZCBleHBlY3RhdGlvbnMsIHJlbW92ZWQgc29tZSAi
dGltZW91dDogNTAiIHBhcmFtZXRlcnMuCisgICAgICAgIFJlbW92ZWQgYSB0ZXN0IGZyb20gc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLmh0bWwgdGhhdCBj
YW5ub3QgcGFzcworICAgICAgICB1bnRpbCBwcm9taXNlcyByZXR1cm5lZCB0byBzdGFydCBhbmQg
cHVsbCBKUyBjYWxsYmFja3MgYXJlIGhhbmRsZWQuCisgICAgICAgIEZpeGVkIGJ1ZyBpbiBzdHJl
YW1zLXV0aWxzLmpzICh3YXMgdXNpbmcgdGhlIG9sZCBBUEkgcmVwbGFjZWQgYnkgY29udHJvbGxl
cikuCisKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5k
ZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5j
ZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLmh0bWw6CisgICAgICAgICog
c3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJs
ZS1zdHJlYW0uaHRtbDoKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9yZXNvdXJjZXMvc3RyZWFtcy11dGlscy5qczoKKyAgICAgICAgKC5zdHJlYW0ubmV3LlJlYWRh
YmxlU3RyZWFtLik6CisgICAgICAgICguc3RyZWFtLm5ldy5SZWFkYWJsZVN0cmVhbSk6CisgICAg
ICAgIChzZXF1ZW50aWFsUmVhZGFibGVTdHJlYW0pOgorCisyMDE1LTA2LTA5ICBYYWJpZXIgUm9k
cmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKwogICAgICAgICBbU3RyZWFtcyBBUEldIFJlYWRh
YmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRocm93CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2MDAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
YmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVk
LnR4dAppbmRleCBjNzMzYzM4Nzk0MGIzMjZmMzA0NmE3YjhhOGFmZTBiMmFlNzIzNjY4Li4yODQx
OWZhMjI1ZmJmNjQ0ODlhNTM4Yzc0ZWJlZDFlZGI1YjI3YWE5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3Vy
Y2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBs
ZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSwxMCBAQAogCiBQQVNTIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBnZXR0ZXIg
CiBQQVNTIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBtZXRob2QgCi1USU1FT1VU
IFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxsKSBU
ZXN0IHRpbWVkIG91dAotVElNRU9VVCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBt
ZXRob2QgKGluaXRpYWwgcHVsbCkgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgVW5kZXJseWluZyBz
b3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChzZWNvbmQgcHVsbCkgVGVzdCB0aW1lZCBvdXQK
LVRJTUVPVVQgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgbWV0aG9kIChzZWNvbmQg
cHVsbCkgVGVzdCB0aW1lZCBvdXQKK1BBU1MgVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1
bGwgZ2V0dGVyIChpbml0aWFsIHB1bGwpIAorUEFTUyBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dp
bmcgcHVsbCBtZXRob2QgKGluaXRpYWwgcHVsbCkgCitQQVNTIFVuZGVybHlpbmcgc291cmNlOiB0
aHJvd2luZyBwdWxsIGdldHRlciAoc2Vjb25kIHB1bGwpIAorUEFTUyBVbmRlcmx5aW5nIHNvdXJj
ZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKHNlY29uZCBwdWxsKSAKIEZBSUwgVW5kZXJseWluZyBz
b3VyY2U6IHRocm93aW5nIGNhbmNlbCBnZXR0ZXIgY2FuY2VsIGlzIG5vdCBpbXBsZW1lbnRlZAog
RkFJTCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgY2FuY2VsIG1ldGhvZCBjYW5jZWwgaXMg
bm90IGltcGxlbWVudGVkCiBGQUlMIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBzdHJhdGVn
eSBnZXR0ZXIgYXNzZXJ0X3Rocm93czogZW5xdWV1ZSBzaG91bGQgdGhyb3cgdGhlIGVycm9yIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IGMuZW5xdWV1ZSgnYScpOyB9IiBkaWQgbm90IHRocm93CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9i
YWQtdW5kZXJseWluZy1zb3VyY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5j
ZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLmh0bWwKaW5kZXggYzg1ZDUz
YzcxMTk5MDNiMjVmZjBkZTEzMDc0YjVkNTllZWQ4MzY2Ny4uMjNmZmQ4OTFkZDhhODU1OTM3ZWUy
MjhmMDc2NjNiNWQwNWJiNWM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5n
LXNvdXJjZXMuaHRtbApAQCAtMjcsNyArMjcsNyBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0s
ICdjb25zdHJ1Y3RpbmcgdGhlIHN0cmVhbSBzaG91bGQgcmUtdGhyb3cgdGhlIGVycm9yJyk7CiB9
LCAnVW5kZXJseWluZyBzb3VyY2Ugc3RhcnQ6IHRocm93aW5nIG1ldGhvZCcpOwogCi12YXIgdGVz
dDEgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBnZXR0ZXIg
KGluaXRpYWwgcHVsbCknLCB7IHRpbWVvdXQ6IDUwIH0pOwordmFyIHRlc3QxID0gYXN5bmNfdGVz
dCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChpbml0aWFsIHB1bGwp
Jyk7CiB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciB0aGVFcnJvciA9IG5ldyBFcnJv
cignYSB1bmlxdWUgc3RyaW5nJyk7CiAgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsK
QEAgLTQ0LDcgKzQ0LDcgQEAgdGVzdDEuc3RlcChmdW5jdGlvbigpIHsKICAgICAgICAgfSkpOwog
fSk7CiAKLXZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ1VuZGVybHlpbmcgc291cmNlOiB0aHJvd2lu
ZyBwdWxsIG1ldGhvZCAoaW5pdGlhbCBwdWxsKScsIHsgdGltZW91dDogNTAgfSk7Cit2YXIgdGVz
dDIgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2Qg
KGluaXRpYWwgcHVsbCknKTsKIHRlc3QyLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHRoZUVy
cm9yID0gbmV3IEVycm9yKCdhIHVuaXF1ZSBzdHJpbmcnKTsKICAgICB2YXIgcnMgPSBuZXcgUmVh
ZGFibGVTdHJlYW0oewpAQCAtNjEsNyArNjEsNyBAQCB0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgewog
ICAgICAgICB9KSk7CiB9KTsKIAotdmFyIHRlc3QzID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBz
b3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChzZWNvbmQgcHVsbCknLCB7IHRpbWVvdXQ6IDUw
IH0pOwordmFyIHRlc3QzID0gYXN5bmNfdGVzdCgnVW5kZXJseWluZyBzb3VyY2U6IHRocm93aW5n
IHB1bGwgZ2V0dGVyIChzZWNvbmQgcHVsbCknKTsKIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7CiAg
ICAgdmFyIHRoZUVycm9yID0gbmV3IEVycm9yKCdhIHVuaXF1ZSBzdHJpbmcnKTsKICAgICB2YXIg
Y291bnRlciA9IDA7CkBAIC04OSw3ICs4OSw3IEBAIHRlc3QzLnN0ZXAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgIH0pKTsKIH0pOwogCi12YXIgdGVzdDQgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNv
dXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKHNlY29uZCBwdWxsKScsIHsgdGltZW91dDogNTAg
fSk7Cit2YXIgdGVzdDQgPSBhc3luY190ZXN0KCdVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcg
cHVsbCBtZXRob2QgKHNlY29uZCBwdWxsKScpOwogdGVzdDQuc3RlcChmdW5jdGlvbigpIHsKICAg
ICB2YXIgdGhlRXJyb3IgPSBuZXcgRXJyb3IoJ2EgdW5pcXVlIHN0cmluZycpOwogICAgIHZhciBj
b3VudGVyID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWlt
cGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQu
dHh0CmluZGV4IGE1ZWZkOWYyZjE5YzMwNGEzOTUzZTA0MDRhYTgyZTYxM2Q3ZmM3ZmQuLjczZTJi
ODFjZGY2YjFjOTA5ZTk2OGQ5ZjhiOTg0MWQ4N2M3ZDE3M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRp
b24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dApAQCAtMTAsMTAgKzEwLDEwIEBAIFRJTUVP
VVQgUmVhZGFibGVTdHJlYW0gc3RhcnQgc2hvdWxkIGJlIGFibGUgdG8gcmV0dXJuIGEgcHJvbWlz
ZSBhbmQgcmVqZWN0IGl0IFRlCiBQQVNTIFJlYWRhYmxlU3RyZWFtIHNob3VsZCBiZSBhYmxlIHRv
IGVucXVldWUgZGlmZmVyZW50IG9iamVjdHMuIAogUEFTUyBSZWFkYWJsZVN0cmVhbTogaWYgc3Rh
cnQgdGhyb3dzIGFuIGVycm9yLCBpdCBzaG91bGQgYmUgcmUtdGhyb3duIAogVElNRU9VVCBSZWFk
YWJsZVN0cmVhbTogaWYgcHVsbCByZWplY3RzLCBpdCBzaG91bGQgZXJyb3IgdGhlIHN0cmVhbSBU
ZXN0IHRpbWVkIG91dAotRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIG5vdCBjYWxsIHB1bGwg
dW50aWwgdGhlIHByZXZpb3VzIHB1bGwgY2FsbCdzIHByb21pc2UgZnVsZmlsbHMgYXNzZXJ0X2Vx
dWFsczogcHVsbCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCBvbmNlIGFmdGVyIHN0YXJ0LCBidXQg
bm90IHlldCBoYXZlIGJlZW4gY2FsbGVkIGEgc2Vjb25kIHRpbWUgZXhwZWN0ZWQgMSBidXQgZ290
IDAKK0ZBSUwgUmVhZGFibGVTdHJlYW06IHNob3VsZCBub3QgY2FsbCBwdWxsIHVudGlsIHRoZSBw
cmV2aW91cyBwdWxsIGNhbGwncyBwcm9taXNlIGZ1bGZpbGxzIGFzc2VydF9lcXVhbHM6IGFmdGVy
IHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHB1bGwgaXMgZnVsZmlsbGVkLCBwdWxsIHNob3VsZCBi
ZSBjYWxsZWQgYSBzZWNvbmQgdGltZSBleHBlY3RlZCAyIGJ1dCBnb3QgMQogUEFTUyBSZWFkYWJs
ZVN0cmVhbTogc2hvdWxkIG5vdCBjYWxsIHB1bGwgYWZ0ZXIgc3RhcnQgaWYgdGhlIHN0cmVhbSBp
cyBub3cgY2xvc2VkIAotRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIGNhbGwgcHVsbCBhZnRl
ciBlbnF1ZXVlaW5nIGZyb20gaW5zaWRlIHB1bGwgKHdpdGggbm8gcmVhZCByZXF1ZXN0cyksIGlm
IHN0cmF0ZWd5IGFsbG93cyBhc3NlcnRfZXF1YWxzOiBwdWxsKCkgc2hvdWxkIGhhdmUgYmVlbiBj
YWxsZWQgZm91ciB0aW1lcyBleHBlY3RlZCA0IGJ1dCBnb3QgMAotVElNRU9VVCBSZWFkYWJsZVN0
cmVhbSBwdWxsIHNob3VsZCBiZSBhYmxlIHRvIGNsb3NlIGEgc3RyZWFtLiBUZXN0IHRpbWVkIG91
dAorRkFJTCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIGNhbGwgcHVsbCBhZnRlciBlbnF1ZXVlaW5n
IGZyb20gaW5zaWRlIHB1bGwgKHdpdGggbm8gcmVhZCByZXF1ZXN0cyksIGlmIHN0cmF0ZWd5IGFs
bG93cyBhc3NlcnRfZXF1YWxzOiBwdWxsKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQgZm91ciB0
aW1lcyBleHBlY3RlZCA0IGJ1dCBnb3QgMQorUEFTUyBSZWFkYWJsZVN0cmVhbSBwdWxsIHNob3Vs
ZCBiZSBhYmxlIHRvIGNsb3NlIGEgc3RyZWFtLiAKIEZBSUwgUmVhZGFibGVTdHJlYW06IGVucXVl
dWUgc2hvdWxkIHRocm93IHdoZW4gdGhlIHN0cmVhbSBpcyByZWFkYWJsZSBidXQgZHJhaW5pbmcg
YXNzZXJ0X2VxdWFsczogdGhlIGZpcnN0IGVucXVldWUgc2hvdWxkIHJldHVybiB0cnVlIGV4cGVj
dGVkIChib29sZWFuKSB0cnVlIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCiBQQVNTIFJl
YWRhYmxlU3RyZWFtOiBlbnF1ZXVlIHNob3VsZCB0aHJvdyB3aGVuIHRoZSBzdHJlYW0gaXMgY2xv
c2VkIAogUEFTUyBSZWFkYWJsZVN0cmVhbTogZW5xdWV1ZSBzaG91bGQgdGhyb3cgdGhlIHN0b3Jl
ZCBlcnJvciB3aGVuIHRoZSBzdHJlYW0gaXMgZXJyb3JlZCAKQEAgLTIxLDYgKzIxLDUgQEAgRkFJ
TCBSZWFkYWJsZVN0cmVhbTogc2hvdWxkIGNhbGwgdW5kZXJseWluZyBzb3VyY2UgbWV0aG9kcyBh
cyBtZXRob2RzIHJlbGVhc2VMb2MKIEZBSUwgUmVhZGFibGVTdHJlYW0gc3RyYXRlZ2llczogdGhl
IGRlZmF1bHQgc3RyYXRlZ3kgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgYWxsIGJ1dCB0aGUgZmly
c3QgZW5xdWV1ZSBjYWxsIGFzc2VydF9lcXVhbHM6IGZpcnN0IGVucXVldWUgc2hvdWxkIHJldHVy
biB0cnVlIGV4cGVjdGVkIChib29sZWFuKSB0cnVlIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCiBGQUlMIFJlYWRhYmxlU3RyZWFtIHN0cmF0ZWdpZXM6IHRoZSBkZWZhdWx0IHN0cmF0ZWd5
IHNob3VsZCBjb250aW51ZSByZXR1cm5pbmcgdHJ1ZSBmcm9tIGVucXVldWUgaWYgdGhlIGNodW5r
cyBhcmUgcmVhZCBpbW1lZGlhdGVseSBhc3NlcnRfZXF1YWxzOiBmaXJzdCBlbnF1ZXVlIHNob3Vs
ZCByZXR1cm4gdHJ1ZSBleHBlY3RlZCAoYm9vbGVhbikgdHJ1ZSBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAogVElNRU9VVCBSZWFkYWJsZVN0cmVhbSBpbnRlZ3JhdGlvbiB0ZXN0OiBhZGFw
dGluZyBhIHJhbmRvbSBwdXNoIHNvdXJjZSBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBSZWFkYWJs
ZVN0cmVhbSBpbnRlZ3JhdGlvbiB0ZXN0OiBhZGFwdGluZyBhIHN5bmMgcHVsbCBzb3VyY2UgVGVz
dCB0aW1lZCBvdXQKLVRJTUVPVVQgUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRh
cHRpbmcgYW4gYXN5bmMgcHVsbCBzb3VyY2UgVGVzdCB0aW1lZCBvdXQKK1BBU1MgUmVhZGFibGVT
dHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSBzeW5jIHB1bGwgc291cmNlIAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9y
ZWFkYWJsZS1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sCmluZGV4IGVhYjFmMDlmMzkwMmJjOGI2NmUw
MTkwMGYyNmZiNTkxYWQzOTZkOGYuLjcwZjIzYTc2ZTkzMDMyOGMyMDg2Y2I3N2E2Y2ZiNGY2MTFk
YzYwYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVu
dGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sCkBAIC01MTYsNyArNTE2
LDcgQEAgdGVzdDE0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgfSkpOwogfSk7CiAKLXZhciB0ZXN0
MTUgPSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVhbSBwdWxsIHNob3VsZCBiZSBhYmxlIHRvIGNs
b3NlIGEgc3RyZWFtLicsIHsgdGltZW91dDogNTAgfSk7Cit2YXIgdGVzdDE1ID0gYXN5bmNfdGVz
dCgnUmVhZGFibGVTdHJlYW0gcHVsbCBzaG91bGQgYmUgYWJsZSB0byBjbG9zZSBhIHN0cmVhbS4n
KTsKIHRlc3QxNS5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBwdWxsQ2FsbGVkID0gZmFsc2U7
CiAgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKQEAgLTcwMiw3ICs3MDIsNyBAQCB0
ZXN0MTguc3RlcChmdW5jdGlvbigpIHsKICAgICB9KSwgdGVzdDE4LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7IGFzc2VydF9yZWFjaGVkKGUpOyB9KSk7CiB9KTsKIAotdmFyIHRlc3QxOSA9IGFzeW5j
X3Rlc3QoJ1JlYWRhYmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGEgc3luYyBw
dWxsIHNvdXJjZScsIHsgdGltZW91dDogNTAgfSk7Cit2YXIgdGVzdDE5ID0gYXN5bmNfdGVzdCgn
UmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSBzeW5jIHB1bGwgc291
cmNlJyk7CiB0ZXN0MTkuc3RlcChmdW5jdGlvbigpIHsKICAgICB2YXIgcnMgPSBzZXF1ZW50aWFs
UmVhZGFibGVTdHJlYW0oMTApOwogCkBAIC03MTMsNyArNzEzLDcgQEAgdGVzdDE5LnN0ZXAoZnVu
Y3Rpb24oKSB7CiAgICAgICAgIHRlc3QxOS5kb25lKCk7CiAgICAgfSkpOwogfSk7Ci0KKy8qCiB2
YXIgdGVzdDIwID0gYXN5bmNfdGVzdCgnUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDog
YWRhcHRpbmcgYW4gYXN5bmMgcHVsbCBzb3VyY2UnLCB7IHRpbWVvdXQ6IDUwIH0pOwogdGVzdDIw
LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgdmFyIHJzID0gc2VxdWVudGlhbFJlYWRhYmxlU3RyZWFt
KDEwLCB7IGFzeW5jOiB0cnVlIH0pOwpAQCAtNzI1LDQgKzcyNSw1IEBAIHRlc3QyMC5zdGVwKGZ1
bmN0aW9uKCkgewogICAgICAgICB0ZXN0MjAuZG9uZSgpOwogICAgIH0pKTsKIH0pOworKi8KIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVt
ZW50YXRpb24vcmVzb3VyY2VzL3N0cmVhbXMtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNvdXJjZXMvc3RyZWFtcy11dGlscy5qcwppbmRl
eCAyNDk4NjVjNDdjZDUxNjBlNTM5MTkxYjEyODdmMzY2ZWMzNzFmM2IzLi44M2E0MjA5ZGViYzYz
NDUyZmNiYmUxNTBjNDMwYjRhZTBhMWQzOTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNvdXJjZXMvc3RyZWFtcy11dGlscy5qcwor
KysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZXNvdXJj
ZXMvc3RyZWFtcy11dGlscy5qcwpAQCAtMTUwLDI1ICsxNTAsMjcgQEAgZnVuY3Rpb24gc2VxdWVu
dGlhbFJlYWRhYmxlU3RyZWFtKGxpbWl0LCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICAgc2Vx
dWVudGlhbFNvdXJjZS5vcGVuKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSwKIAotICAgICAgICBwdWxsOiBmdW5jdGlvbihlbnF1ZXVlLCBmaW5pc2gs
IGVycm9yKSB7CisgICAgICAgIHB1bGw6IGZ1bmN0aW9uKGMpIHsKICAgICAgICAgICAgIHNlcXVl
bnRpYWxTb3VyY2UucmVhZChmdW5jdGlvbihlcnIsIGRvbmUsIGNodW5rKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKGVycikgewotICAgICAgICAgICAgICAgICAgICBlcnJvcihlcnIpOworICAgICAg
ICAgICAgICAgICAgICBjLmVycm9yKGVycik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChk
b25lKSB7CiAgICAgICAgICAgICAgICAgICAgIHNlcXVlbnRpYWxTb3VyY2UuY2xvc2UoZnVuY3Rp
b24oZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyb3IoZXJyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjLmVycm9yKGVycik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBjLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGVucXVl
dWUoY2h1bmspOworICAgICAgICAgICAgICAgICAgICBjLmVucXVldWUoY2h1bmspOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwogICAgICAgICB9LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>