<?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>140952</bug_id>
          
          <creation_ts>2015-01-27 12:57:07 -0800</creation_ts>
          <short_desc>JavaScript bindings constructors should take Ref&lt;ImplType&gt;&amp;&amp;.</short_desc>
          <delta_ts>2015-01-29 17:12:33 -0800</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 JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064624</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-27 12:57:07 -0800</bug_when>
    <thetext>When constructing a JS wrapper object, there is always going to be a corresponding DOM object.
Therefore we should pass the DOM object by Ref&amp;&amp; rather than PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064625</commentid>
    <comment_count>1</comment_count>
      <attachid>245462</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-27 12:58:50 -0800</bug_when>
    <thetext>Created attachment 245462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065300</commentid>
    <comment_count>2</comment_count>
      <attachid>245462</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-29 11:41:12 -0800</bug_when>
    <thetext>Comment on attachment 245462
Patch

Clearing flags on attachment: 245462

Committed r179353: &lt;http://trac.webkit.org/changeset/179353&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065301</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-29 11:41:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065426</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-29 17:12:33 -0800</bug_when>
    <thetext>Several WebGL tests started to flakily fail around the time of this change. Can it be the culprit?

http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=webgl%2F1.0.2%2Fconformance%2Fglsl%2Ffunctions%2Fglsl-function-cos.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245462</attachid>
            <date>2015-01-27 12:58:50 -0800</date>
            <delta_ts>2015-01-29 11:41:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140952.diff</filename>
            <type>text/plain</type>
            <size>53185</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDJlMWE2Li4wYThhMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTUtMDEtMjcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIEphdmFTY3JpcHQgYmluZGluZ3MgY29uc3RydWN0b3JzIHNob3VsZCB0YWtlIFJlZjxJbXBs
VHlwZT4mJi4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0MDk1Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNvbnN0cnVjdGlu
ZyBhIEpTIHdyYXBwZXIgb2JqZWN0LCB0aGVyZSBpcyBhbHdheXMgZ29pbmcgdG8gYmUgYQorICAg
ICAgICBjb3JyZXNwb25kaW5nIERPTSBvYmplY3QuCisKKyAgICAgICAgVHdlYWsgdGhlIEphdmFT
Y3JpcHQgRE9NIGJpbmRpbmdzIGdlbmVyYXRvciB0byBzcGl0IG91dCBjb25zdHJ1Y3RvcnMKKyAg
ICAgICAgdGhhdCB0YWtlIHRoZSBET00gb2JqZWN0IGJ5IFJlZiYmIHJhdGhlciB0aGFuIFBhc3NS
ZWZQdHIuCisKKyAgICAgICAgVGhpcyBhdm9pZHMgZ2VuZXJhdGluZyB1bm5lY2Vzc2FyeSBudWxs
IGNoZWNrcyBhcm91bmQgZXZlcnkgaW5zdGFuY2UKKyAgICAgICAgb2Ygd3JhcHBlciBjb25zdHJ1
Y3Rpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6c2V0V2lu
ZG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmxvY2F0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAg
ICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorCiAyMDE1LTAxLTI3ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0OiBNYWtl
IEZsb3dDb250ZW50cyBhbiBpdGVyYXRvciBjbGFzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKaW5kZXggYWI2ODRkNy4uZWRiMmI3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTIxMCw3ICsyMTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNET01X
cmFwcGVyKiBjcmVhdGVXcgogewogICAgIEFTU0VSVChub2RlKTsKICAgICBBU1NFUlQoIWdldENh
Y2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCBub2RlKSk7Ci0gICAgV3JhcHBlckNs
YXNzKiB3cmFwcGVyID0gV3JhcHBlckNsYXNzOjpjcmVhdGUoZ2V0RE9NU3RydWN0dXJlPFdyYXBw
ZXJDbGFzcz4oZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3Qs
IG5vZGUpOworICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IFdyYXBwZXJDbGFzczo6Y3JlYXRl
KGdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFs
T2JqZWN0KSwgZ2xvYmFsT2JqZWN0LCAqbm9kZSk7CiAgICAgY2FjaGVXcmFwcGVyKGdsb2JhbE9i
amVjdC0+d29ybGQoKSwgbm9kZSwgd3JhcHBlcik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4
IDUzNjhhM2UuLjQyOWFhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgSlNET01XaW5kb3dTaGVs
bDo6c2V0V2luZG93KFBhc3NSZWZQdHI8RE9NV2luZG93PiBkb21XaW5kb3cpCiAgICAgU3Ryb25n
PEpTRE9NV2luZG93UHJvdG90eXBlPiBwcm90b3R5cGUodm0sIEpTRE9NV2luZG93UHJvdG90eXBl
OjpjcmVhdGUodm0sIDAsIHByb3RvdHlwZVN0cnVjdHVyZSkpOwogCiAgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHZtLCAwLCBwcm90b3R5cGUu
Z2V0KCkpOwotICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IEpTRE9NV2luZG93OjpjcmVh
dGUodm0sIHN0cnVjdHVyZSwgZG9tV2luZG93LCB0aGlzKTsKKyAgICBKU0RPTVdpbmRvdyoganNE
T01XaW5kb3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsICpkb21XaW5kb3cs
IHRoaXMpOwogICAgIHByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCh2bSwg
anNET01XaW5kb3cpOwogICAgIHNldFdpbmRvdyh2bSwganNET01XaW5kb3cpOwogICAgIEFTU0VS
VChqc0RPTVdpbmRvdy0+Z2xvYmFsT2JqZWN0KCkgPT0ganNET01XaW5kb3cpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAppbmRleCA2OTUzODZl
Li44MTNlZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50
Q3VzdG9tLmNwcApAQCAtNTksNyArNTksNyBAQCBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmxvY2F0aW9u
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAoSlNPYmplY3QqIHdyYXBwZXIgPSBnZXRD
YWNoZWRXcmFwcGVyKGdsb2JhbE9iamVjdCgpLT53b3JsZCgpLCBsb2NhdGlvbi5nZXQoKSkpCiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgSlNMb2NhdGlvbioganNMb2NhdGlvbiA9IEpT
TG9jYXRpb246OmNyZWF0ZShnZXRET01TdHJ1Y3R1cmU8SlNMb2NhdGlvbj4oZXhlYy0+dm0oKSwg
Z2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3QoKSwgbG9jYXRpb24uZ2V0KCkpOworICAgIEpT
TG9jYXRpb24qIGpzTG9jYXRpb24gPSBKU0xvY2F0aW9uOjpjcmVhdGUoZ2V0RE9NU3RydWN0dXJl
PEpTTG9jYXRpb24+KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0KCks
ICpsb2NhdGlvbik7CiAgICAgY2FjaGVXcmFwcGVyKGdsb2JhbE9iamVjdCgpLT53b3JsZCgpLCBs
b2NhdGlvbi5nZXQoKSwganNMb2NhdGlvbik7CiAgICAgcmV0dXJuIGpzTG9jYXRpb247CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDA3MGRmNDUuLmMwMmU0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC04MSw3ICs4MSw3
IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCiAgICAgICAgIFN0
cm9uZzxKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlUHJvdG90eXBlPiBkZWRpY2F0ZWRDb250
ZXh0UHJvdG90eXBlKCptX3ZtLCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlUHJvdG90eXBl
OjpjcmVhdGUoKm1fdm0sIDAsIGRlZGljYXRlZENvbnRleHRQcm90b3R5cGVTdHJ1Y3R1cmUpKTsK
ICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpjcmVhdGVTdHJ1Y3R1cmUoKm1fdm0sIDAsIGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUu
Z2V0KCkpOwogCi0gICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyLnNldCgqbV92bSwg
SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKCptX3ZtLCBzdHJ1Y3R1cmUsIHN0
YXRpY19jYXN0PERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKj4obV93b3JrZXJHbG9iYWxTY29w
ZSkpKTsKKyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuc2V0KCptX3ZtLCBKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoKm1fdm0sIHN0cnVjdHVyZSwgc3RhdGlj
X2Nhc3Q8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUmPigqbV93b3JrZXJHbG9iYWxTY29wZSkp
KTsKICAgICAgICAgd29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGVTdHJ1Y3R1cmUtPnNldEdsb2Jh
bE9iamVjdCgqbV92bSwgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCkpOwogICAgICAg
ICBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlU3RydWN0dXJlLT5zZXRHbG9iYWxPYmplY3QoKm1f
dm0sIG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpKTsKICAgICAgICAgQVNTRVJUKHN0
cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCBkNjE5MmEwLi41YzNlY2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtODA2LDM1ICs4MDYsMzUgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdHlwZWRlZiAkcGFyZW50Q2xhc3NOYW1lIEJh
c2U7XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpT
Qzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlw
ZT4gaW1wbCwgSlNET01XaW5kb3dTaGVsbCogd2luZG93U2hlbGwpXG4iKTsKKyAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpTQzo6Vk0m
IHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGwsIEpT
RE9NV2luZG93U2hlbGwqIHdpbmRvd1NoZWxsKVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAge1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAg
ICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNz
TmFtZT4odm0uaGVhcCkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJlLCBpbXBsLCB3aW5kb3dT
aGVsbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNsYXNz
TmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPih2
bS5oZWFwKSkgJHtjbGFzc05hbWV9KHZtLCBzdHJ1Y3R1cmUsIFdURjo6bW92ZShpbXBsKSwgd2lu
ZG93U2hlbGwpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHB0
ci0+ZmluaXNoQ3JlYXRpb24odm0sIHdpbmRvd1NoZWxsKTtcbiIpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICAgICB2bS5oZWFwLmFkZEZpbmFsaXplcihwdHIsIGRlc3Ryb3kp
O1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7
XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsKVxuIik7CisgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0ZShKU0M6OlZNJiB2bSwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsKVxuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7Ci0gICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlND
OjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4odm0uaGVhcCkpICR7Y2xhc3NOYW1lfSh2bSwgc3Ry
dWN0dXJlLCBpbXBsKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAg
ICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjbGFz
c05hbWU+KHZtLmhlYXApKSAke2NsYXNzTmFtZX0odm0sIHN0cnVjdHVyZSwgV1RGOjptb3ZlKGlt
cGwpKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBwdHItPmZp
bmlzaENyZWF0aW9uKHZtKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICAgICB2bS5oZWFwLmFkZEZpbmFsaXplcihwdHIsIGRlc3Ryb3kpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIn0pIHsKICAgICAg
ICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5IZWFkZXIoJGltcGxUeXBlKSB1bmxlc3MgJHN2Z1Byb3Bl
cnR5T3JMaXN0UHJvcGVydHlUeXBlOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwp
XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFt
ZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgICAgICBnbG9iYWxPYmplY3QtPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCkt
PmZpcmVBbGwoXCJBbGxvY2F0ZWQgbWFzcXVlcmFkaW5nIG9iamVjdFwiKTtcbiIpOwotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5v
dE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KGdsb2JhbE9iamVjdC0+dm0oKS5o
ZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgaW1wbCk7XG4iKTsKKyAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPihnbG9iYWxPYmplY3QtPnZt
KCkuaGVhcCkpICRjbGFzc05hbWUoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShp
bXBsKSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcHRyLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFkZEluY2x1
ZGVzRm9yVHlwZUluSGVhZGVyKCRpbXBsVHlwZSkgdW5sZXNzICRzdmdQcm9wZXJ0eU9yTGlzdFBy
b3BlcnR5VHlwZTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNs
YXNzTmFtZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsKVxuIik7CisgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0ZShK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWY8JGltcGxUeXBlPiYmIGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNs
YXNzTmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1l
PihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpICRjbGFzc05hbWUoc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QsIGltcGwpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAg
ICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNz
TmFtZT4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSAkY2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xv
YmFsT2JqZWN0LCBXVEY6Om1vdmUoaW1wbCkpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTtc
biIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gcHRyO1xu
Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKQEAgLTEwOTAs
MTEgKzEwOTAsMTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIENvbnN0cnVjdG9yCiAg
ICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBQ
YXNzUmVmUHRyPCRpbXBsVHlwZT4sIEpTRE9NV2luZG93U2hlbGwqKTtcbiIpOworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0
dXJlKiwgUmVmPCRpbXBsVHlwZT4mJiwgSlNET01XaW5kb3dTaGVsbCopO1xuIik7CiAgICAgfSBl
bHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3Jr
ZXJHbG9iYWxTY29wZSIpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNs
YXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4p
O1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6
OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcblxu
Iik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPCRpbXBsVHlwZT4mJik7XG5cbiIpOwog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYgdm0pXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pO1xuIik7CkBAIC0yMDEyLDIzICsyMDEyLDIzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgIyBDb25zdHJ1Y3RvcgogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9N
V2luZG93IikgewogICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoIkpTRE9NV2luZG93
U2hlbGwiKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFz
c05hbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+
IGltcGwsIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKVxuIik7Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBpbXBsLCBzaGVs
bClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNz
TmFtZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8JGltcGxUeXBlPiYmIGltcGws
IEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIDogJHBhcmVudENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEY6Om1vdmUoaW1wbCks
IHNoZWxsKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRv
ci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikpIHsK
ICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRpbnRlcmZhY2VOYW1lKTsKLSAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwpXG4iKTsKLSAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHZtLCBzdHJ1
Y3R1cmUsIGltcGwpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFt
ZX06OiRjbGFzc05hbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlw
ZT4mJiBpbXBsKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVu
dENsYXNzTmFtZSh2bSwgc3RydWN0dXJlLCBXVEY6Om1vdmUoaW1wbCkpXG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFz
c05hbWV9OjokY2xhc3NOYW1lKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbClcbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPCRpbXBsVHlw
ZT4mJiBpbXBsKVxuIik7CiAgICAgICAgIGlmICgkaGFzUGFyZW50KSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QsIGltcGwpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGlt
cGwpKVxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpXG4iKTsK
LSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwgbV9pbXBsKGltcGwubGVha1Jl
ZigpKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faW1wbCgm
aW1wbC5sZWFrUmVmKCkpXG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDJjYzk5NmMuLjcwZTUyYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVE
T01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xMzksOSArMTM5LDkgQEAgdm9pZCBKU1Rl
c3RBY3RpdmVET01PYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogV0VC
Q09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6c19pbmZv
ID0geyAiVGVzdEFjdGl2ZURPTU9iamVjdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RBY3RpdmVE
T01PYmplY3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3Qp
IH07CiAKLUpTVGVzdEFjdGl2ZURPTU9iamVjdDo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0KFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVm
UHRyPFRlc3RBY3RpdmVET01PYmplY3Q+IGltcGwpCitKU1Rlc3RBY3RpdmVET01PYmplY3Q6OkpT
VGVzdEFjdGl2ZURPTU9iamVjdChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKLSAgICAsIG1faW1wbChpbXBs
LmxlYWtSZWYoKSkKKyAgICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCA2ZDM0NWQzLi4wYmI2OGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC0yOSw5ICsyOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVjdCA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7Ci0gICAgc3RhdGljIEpTVGVz
dEFjdGl2ZURPTU9iamVjdCogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdEFjdGl2ZURPTU9iamVj
dD4gaW1wbCkKKyAgICBzdGF0aWMgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBjcmVhdGUoSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVm
PFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKICAgICB7Ci0gICAgICAgIEpTVGVzdEFjdGl2
ZURPTU9iamVjdCogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RB
Y3RpdmVET01PYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0QWN0aXZlRE9N
T2JqZWN0KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICAgICAgSlNUZXN0QWN0
aXZlRE9NT2JqZWN0KiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVz
dEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RBY3RpdmVE
T01PYmplY3Qoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSk7CiAgICAg
ICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAgICAgcmV0
dXJuIHB0cjsKICAgICB9CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
VGVzdEFjdGl2ZURPTU9iamVjdCogbV9pbXBsOwogcHJvdGVjdGVkOgotICAgIEpTVGVzdEFjdGl2
ZURPTU9iamVjdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0
cjxUZXN0QWN0aXZlRE9NT2JqZWN0Pik7CisgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6
U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8VGVzdEFjdGl2ZURPTU9iamVjdD4m
Jik7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IDEyZTUwOGIuLjA0ZmYyYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMTMyLDkgKzEzMiw5IEBA
IHZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSkKIAogV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZv
LCAmSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcikgfTsKIAotSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OkpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RDdXN0b21OYW1lZEdldHRlcj4gaW1wbCkK
K0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcihTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RD
dXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KQotICAgICwgbV9pbXBsKGltcGwubGVha1JlZigpKQorICAgICwgbV9pbXBs
KCZpbXBsLmxlYWtSZWYoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
aAppbmRleCAxOThhZDFkLi41MTEwMWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlciA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5
cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7Ci0gICAgc3RhdGljIEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+IGltcGwpCisg
ICAgc3RhdGljIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RDdXN0
b21OYW1lZEdldHRlcj4mJiBpbXBsKQogICAgIHsKLSAgICAgICAgSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIGltcGwpOworICAgICAgICBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGltcGwpKTsK
ICAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgICAg
ICByZXR1cm4gcHRyOwogICAgIH0KQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIG1faW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
UGFzc1JlZlB0cjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KTsKKyAgICBKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3RDdXN0
b21OYW1lZEdldHRlcj4mJik7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZt
KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCAwZDEyN2Ew
Li5mMTdlNTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0xNjcs
OSArMTY3LDkgQEAgdm9pZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RF
dmVudENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcikg
fTsKIAotSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6SlNUZXN0RXZlbnRDb25zdHJ1Y3RvcihTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1Jl
ZlB0cjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4gaW1wbCkKK0pTVGVzdEV2ZW50Q29uc3RydWN0b3I6
OkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQog
ICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQotICAgICwgbV9pbXBs
KGltcGwubGVha1JlZigpKQorICAgICwgbV9pbXBsKCZpbXBsLmxlYWtSZWYoKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggODE1OTc5OC4uMzQwYmVkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC0zMSw5ICszMSw5IEBAIGNsYXNzIEpT
RGljdGlvbmFyeTsKIGNsYXNzIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IgOiBwdWJsaWMgSlNET01X
cmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwotICAgIHN0
YXRpYyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0RXZl
bnRDb25zdHJ1Y3Rvcj4gaW1wbCkKKyAgICBzdGF0aWMgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvciog
Y3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4mJiBpbXBsKQogICAgIHsKLSAgICAg
ICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9j
YXRlQ2VsbDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkp
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIGltcGwpOwor
ICAgICAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6
YWxsb2NhdGVDZWxsPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+KGdsb2JhbE9iamVjdC0+dm0oKS5o
ZWFwKSkgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RG
Ojptb3ZlKGltcGwpKTsKICAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3Qt
PnZtKCkpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KQEAgLTY2LDcgKzY2LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvciogbV9pbXBsOwogcHJvdGVj
dGVkOgotICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVzdEV2ZW50Q29uc3RydWN0b3I+KTsKKyAgICBKU1Rl
c3RFdmVudENvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBS
ZWY8VGVzdEV2ZW50Q29uc3RydWN0b3I+JiYpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBlMmMwNDc4
Li4wNjdmODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTE0NCw5ICsxNDQsOSBA
QCB2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0p
CiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVudFRhcmdldDo6c19p
bmZvID0geyAiVGVzdEV2ZW50VGFyZ2V0IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEV2ZW50VGFy
Z2V0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXQpIH07CiAKLUpT
VGVzdEV2ZW50VGFyZ2V0OjpKU1Rlc3RFdmVudFRhcmdldChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0RXZlbnRUYXJn
ZXQ+IGltcGwpCitKU1Rlc3RFdmVudFRhcmdldDo6SlNUZXN0RXZlbnRUYXJnZXQoU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXZl
bnRUYXJnZXQ+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9i
amVjdCkKLSAgICAsIG1faW1wbChpbXBsLmxlYWtSZWYoKSkKKyAgICAsIG1faW1wbCgmaW1wbC5s
ZWFrUmVmKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggYTMyYjlkZS4uZWZm
MWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTI5LDEwICsyOSwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBKU1Rlc3RFdmVudFRhcmdldCA6IHB1YmxpYyBKU0RPTVdyYXBw
ZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7Ci0gICAgc3RhdGlj
IEpTVGVzdEV2ZW50VGFyZ2V0KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+
IGltcGwpCisgICAgc3RhdGljIEpTVGVzdEV2ZW50VGFyZ2V0KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RF
dmVudFRhcmdldD4mJiBpbXBsKQogICAgIHsKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5tYXNxdWVy
YWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5maXJlQWxsKCJBbGxvY2F0ZWQgbWFzcXVlcmFk
aW5nIG9iamVjdCIpOwotICAgICAgICBKU1Rlc3RFdmVudFRhcmdldCogcHRyID0gbmV3IChOb3RO
dWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RFdmVudFRhcmdldD4oZ2xvYmFsT2JqZWN0LT52
bSgpLmhlYXApKSBKU1Rlc3RFdmVudFRhcmdldChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgaW1w
bCk7CisgICAgICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6
YWxsb2NhdGVDZWxsPEpTVGVzdEV2ZW50VGFyZ2V0PihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkp
IEpTVGVzdEV2ZW50VGFyZ2V0KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEY6Om1vdmUoaW1w
bCkpOwogICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAg
ICAgICAgIHJldHVybiBwdHI7CiAgICAgfQpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIFRlc3RFdmVudFRhcmdldCogbV9pbXBsOwogcHJvdGVjdGVkOgotICAgIEpTVGVz
dEV2ZW50VGFyZ2V0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBQYXNzUmVm
UHRyPFRlc3RFdmVudFRhcmdldD4pOworICAgIEpTVGVzdEV2ZW50VGFyZ2V0KEpTQzo6U3RydWN0
dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8VGVzdEV2ZW50VGFyZ2V0PiYmKTsKIAogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmNwcAppbmRleCBiZjhmZTEyLi4xZGY5MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAt
MTI5LDkgKzEyOSw5IEBAIHZvaWQgSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFeGNl
cHRpb246OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
RXhjZXB0aW9uVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXhjZXB0aW9uKSB9Owog
Ci1KU1Rlc3RFeGNlcHRpb246OkpTVGVzdEV4Y2VwdGlvbihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0RXhjZXB0aW9u
PiBpbXBsKQorSlNUZXN0RXhjZXB0aW9uOjpKU1Rlc3RFeGNlcHRpb24oU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXhjZXB0aW9u
PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCi0g
ICAgLCBtX2ltcGwoaW1wbC5sZWFrUmVmKCkpCisgICAgLCBtX2ltcGwoJmltcGwubGVha1JlZigp
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKaW5kZXggMDMwY2Y4Yy4uMjNlYTg3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uaApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBKU1Rlc3RFeGNlcHRpb24gOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwotICAgIHN0YXRpYyBKU1Rlc3RFeGNlcHRpb24qIGNy
ZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RFeGNlcHRpb24+IGltcGwpCisgICAgc3RhdGljIEpTVGVz
dEV4Y2VwdGlvbiogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0RXhjZXB0aW9uPiYmIGltcGwpCiAgICAgewot
ICAgICAgICBKU1Rlc3RFeGNlcHRpb24qIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0
ZUNlbGw8SlNUZXN0RXhjZXB0aW9uPihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVzdEV4
Y2VwdGlvbihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgICAgIEpTVGVzdEV4
Y2VwdGlvbiogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RFeGNl
cHRpb24+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0RXhjZXB0aW9uKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0LCBXVEY6Om1vdmUoaW1wbCkpOwogICAgICAgICBwdHItPmZpbmlzaENy
ZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQpA
QCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFRlc3RFeGNlcHRpb24qIG1f
aW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU1Rlc3RFeGNlcHRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVzdEV4Y2VwdGlvbj4pOworICAgIEpTVGVz
dEV4Y2VwdGlvbihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3RF
eGNlcHRpb24+JiYpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggZWI0Yjkx
MS4uNjYwOTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApA
QCAtMTExLDkgKzExMSw5IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogCiBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUpIH07CiAKLUpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OkpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+IGlt
cGwpCitKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBS
ZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKLSAgICAsIG1faW1wbChpbXBsLmxlYWtSZWYoKSkKKyAg
ICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZS5oCmluZGV4IGIyZTkwYjIuLmNjMTgxODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuaApAQCAtMjksOSArMjksOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIDogcHVibGljIEpTRE9NV3JhcHBl
ciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKLSAgICBzdGF0aWMg
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdEdlbmVy
YXRlSXNSZWFjaGFibGU+IGltcGwpCisgICAgc3RhdGljIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWY8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+JiYgaW1wbCkKICAgICB7
Ci0gICAgICAgIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHB0ciA9IG5ldyAoTm90TnVsbCwg
SlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4oZ2xvYmFsT2JqZWN0
LT52bSgpLmhlYXApKSBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0LCBpbXBsKTsKKyAgICAgICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogcHRyID0g
bmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
PihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSk7CiAgICAgICAgIHB0ci0+Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAg
ICB9CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUqIG1faW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlPik7CisgICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShK
U0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlPiYmKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0pCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCA0ZDZlYjU1Li44YWY2NDEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcApAQCAtNDEzLDkgKzQxMyw5IEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2U6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFz
ZTo6c19pbmZvLCAmSlNUZXN0SW50ZXJmYWNlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0SW50ZXJmYWNlKSB9OwogCi1KU1Rlc3RJbnRlcmZhY2U6OkpTVGVzdEludGVyZmFjZShTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1Jl
ZlB0cjxUZXN0SW50ZXJmYWNlPiBpbXBsKQorSlNUZXN0SW50ZXJmYWNlOjpKU1Rlc3RJbnRlcmZh
Y2UoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxUZXN0SW50ZXJmYWNlPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QpCi0gICAgLCBtX2ltcGwoaW1wbC5sZWFrUmVmKCkpCisgICAgLCBtX2lt
cGwoJmltcGwubGVha1JlZigpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggYWM5YWZm
NS4uNmJjNTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtMzEsOSArMzEsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwotICAgIHN0YXRpYyBK
U1Rlc3RJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RJbnRlcmZhY2U+IGltcGwp
CisgICAgc3RhdGljIEpTVGVzdEludGVyZmFjZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0SW50ZXJmYWNl
PiYmIGltcGwpCiAgICAgewotICAgICAgICBKU1Rlc3RJbnRlcmZhY2UqIHB0ciA9IG5ldyAoTm90
TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QtPnZt
KCkuaGVhcCkpIEpTVGVzdEludGVyZmFjZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgaW1wbCk7
CisgICAgICAgIEpTVGVzdEludGVyZmFjZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9j
YXRlQ2VsbDxKU1Rlc3RJbnRlcmZhY2U+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0
SW50ZXJmYWNlKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEY6Om1vdmUoaW1wbCkpOwogICAg
ICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgICAgIHJl
dHVybiBwdHI7CiAgICAgfQpAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IFRlc3RJbnRlcmZhY2UqIG1faW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU1Rlc3RJbnRlcmZhY2Uo
SlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVzdEludGVy
ZmFjZT4pOworICAgIEpTVGVzdEludGVyZmFjZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgUmVmPFRlc3RJbnRlcmZhY2U+JiYpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKaW5kZXggMzEwZWUzZS4uYzJhYjY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMTE5LDkgKzExOSw5IEBAIHZvaWQgSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogCiBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6c19pbmZvID0geyAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiLCAmQmFzZTo6
c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIpIH07CiAKLUpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OkpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGltcGwpCitK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBS
ZWY8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBl
cihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKLSAgICAsIG1faW1wbChpbXBsLmxlYWtSZWYoKSkK
KyAgICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDAyMGRlZGMuLjRjZjVkYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMjksOSArMjksOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIDog
cHVibGljIEpTRE9NV3JhcHBlciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0RPTVdyYXBwZXIg
QmFzZTsKLSAgICBzdGF0aWMgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogY3JlYXRlKEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFBhc3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGltcGwpCisgICAgc3RhdGlj
IEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI+JiYgaW1wbCkKICAgICB7Ci0gICAgICAgIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAg
ICAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogcHRyID0gbmV3IChOb3ROdWxsLCBK
U0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihnbG9iYWxPYmpl
Y3QtPnZtKCkuaGVhcCkpIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSk7CiAgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CkBAIC02
NCw3ICs2NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqIG1faW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPik7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyPiYmKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0p
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGRjZWNkY2Yu
LmJhNTU4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTE4Myw5
ICsxODMsOSBAQCB2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKIAogV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5h
bWVkQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZENvbnN0cnVjdG9yIiwgJkJhc2U6
OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKSB9
OwogCi1KU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVm
UHRyPFRlc3ROYW1lZENvbnN0cnVjdG9yPiBpbXBsKQorSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6
SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFRlc3ROYW1lZENvbnN0cnVjdG9yPiYmIGltcGwpCiAg
ICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCi0gICAgLCBtX2ltcGwo
aW1wbC5sZWFrUmVmKCkpCisgICAgLCBtX2ltcGwoJmltcGwubGVha1JlZigpKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCA2ODg4YzA2Li5kMGMyNTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTI5LDkgKzI5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0RPTVdy
YXBwZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7Ci0gICAgc3Rh
dGljIEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3ROYW1l
ZENvbnN0cnVjdG9yPiBpbXBsKQorICAgIHN0YXRpYyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3ROYW1lZENvbnN0cnVjdG9yPiYmIGltcGwpCiAgICAgewotICAgICAg
ICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2Nh
dGVDZWxsPEpTVGVzdE5hbWVkQ29uc3RydWN0b3I+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkg
SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgaW1wbCk7Cisg
ICAgICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjph
bGxvY2F0ZUNlbGw8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LT52bSgpLmhl
YXApKSBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEY6
Om1vdmUoaW1wbCkpOwogICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+
dm0oKSk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQpAQCAtNjUsNyArNjUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFRlc3ROYW1lZENvbnN0cnVjdG9yKiBtX2ltcGw7CiBwcm90ZWN0
ZWQ6Ci0gICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4pOworICAgIEpTVGVz
dE5hbWVkQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFJl
ZjxUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4mJik7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mIHZtKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAppbmRleCBjNjg5YWFhLi4xMzc1YTk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vZGUuY3BwCkBAIC0xMjksOCArMTI5LDggQEAgdm9pZCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3ROb2RlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZSkgfTsKIAotSlNUZXN0Tm9kZTo6SlNUZXN0Tm9kZShT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFz
c1JlZlB0cjxUZXN0Tm9kZT4gaW1wbCkKLSAgICA6IEpTTm9kZShzdHJ1Y3R1cmUsIGdsb2JhbE9i
amVjdCwgaW1wbCkKK0pTVGVzdE5vZGU6OkpTVGVzdE5vZGUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Tm9kZT4mJiBpbXBsKQor
ICAgIDogSlNOb2RlKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEY6Om1vdmUoaW1wbCkpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5oCmluZGV4IDEzYjg0NjYuLjFhNmU0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaApAQCAtMjksOSAr
MjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBKU1Rlc3ROb2RlIDogcHVibGljIEpT
Tm9kZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vZGUgQmFzZTsKLSAgICBzdGF0aWMgSlNU
ZXN0Tm9kZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdE5vZGU+IGltcGwpCisgICAgc3RhdGlj
IEpTVGVzdE5vZGUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdE5vZGU+JiYgaW1wbCkKICAgICB7Ci0gICAg
ICAgIEpTVGVzdE5vZGUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNU
ZXN0Tm9kZT4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3ROb2RlKHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICAgICAgSlNUZXN0Tm9kZSogcHRyID0gbmV3IChOb3RO
dWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROb2RlPihnbG9iYWxPYmplY3QtPnZtKCkuaGVh
cCkpIEpTVGVzdE5vZGUoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSk7
CiAgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAg
ICAgcmV0dXJuIHB0cjsKICAgICB9CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFRlc3ROb2RlJj4oQmFzZTo6aW1wbCgpKTsKICAgICB9CiBwcm90
ZWN0ZWQ6Ci0gICAgSlNUZXN0Tm9kZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgUGFzc1JlZlB0cjxUZXN0Tm9kZT4pOworICAgIEpTVGVzdE5vZGUoSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFJlZjxUZXN0Tm9kZT4mJik7CiAKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6Vk0mIHZtKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlz
dGljLmNwcAppbmRleCBiNjFiZGEwLi43OThlN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwCkBAIC0xNDEsOSArMTQxLDkgQEAgdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpzX2luZm8gPSB7ICJUZXN0Tm9u
ZGV0ZXJtaW5pc3RpYyIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYykgfTsKIAotSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyhTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4gaW1wbCkKK0pT
VGVzdE5vbmRldGVybWluaXN0aWM6OkpTVGVzdE5vbmRldGVybWluaXN0aWMoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Tm9uZGV0
ZXJtaW5pc3RpYz4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0KQotICAgICwgbV9pbXBsKGltcGwubGVha1JlZigpKQorICAgICwgbV9pbXBsKCZpbXBs
LmxlYWtSZWYoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKaW5kZXgg
YjdhZTdhOC4uNWRjYTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCkBAIC0y
OSw5ICsyOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpTVGVzdE5vbmRldGVybWlu
aXN0aWMgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9N
V3JhcHBlciBCYXNlOwotICAgIHN0YXRpYyBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4gaW1wbCkKKyAgICBzdGF0aWMgSlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4m
JiBpbXBsKQogICAgIHsKLSAgICAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljPihnbG9i
YWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVzdE5vbmRldGVybWluaXN0aWMoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QsIGltcGwpOworICAgICAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBwdHIg
PSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5vbmRldGVybWluaXN0aWM+
KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyhzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGltcGwpKTsKICAgICAgICAgcHRyLT5maW5pc2hD
cmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0K
QEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyogbV9pbXBsOwogcHJvdGVjdGVkOgotICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWMoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVzdE5vbmRldGVy
bWluaXN0aWM+KTsKKyAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QqLCBSZWY8VGVzdE5vbmRldGVybWluaXN0aWM+JiYpOwogCiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDcz
ZDgxMjEuLmFkMzEwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC02NTUsOSArNjU1LDkgQEAgdm9pZCBKU1Rl
c3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogV0VCQ09SRV9FWFBPUlQg
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iajo6c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZCYXNl
OjpzX2luZm8sICZKU1Rlc3RPYmpUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmop
IH07CiAKLUpTVGVzdE9iajo6SlNUZXN0T2JqKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RPYmo+IGltcGwpCitKU1Rl
c3RPYmo6OkpTVGVzdE9iaihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVmPFRlc3RPYmo+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcihz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKLSAgICAsIG1faW1wbChpbXBsLmxlYWtSZWYoKSkKKyAg
ICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCBlMWIyNDMxLi5i
MTk3MzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCkBAIC0yOSw5ICsyOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEpTVGVzdE9iaiA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNET01XcmFwcGVyIEJhc2U7Ci0gICAgc3RhdGljIEpTVGVzdE9iaiogY3JlYXRlKEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBh
c3NSZWZQdHI8VGVzdE9iaj4gaW1wbCkKKyAgICBzdGF0aWMgSlNUZXN0T2JqKiBjcmVhdGUoSlND
OjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3RPYmo+JiYgaW1wbCkKICAgICB7Ci0gICAgICAgIEpTVGVzdE9iaiogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RPYmo+KGdsb2JhbE9iamVjdC0+dm0o
KS5oZWFwKSkgSlNUZXN0T2JqKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICAg
ICAgSlNUZXN0T2JqKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVz
dE9iaj4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RPYmooc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QsIFdURjo6bW92ZShpbXBsKSk7CiAgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CkBAIC03OCw3
ICs3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGVzdE9iaiogbV9pbXBsOwogcHJvdGVj
dGVkOgotICAgIEpTVGVzdE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
UGFzc1JlZlB0cjxUZXN0T2JqPik7CisgICAgSlNUZXN0T2JqKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBSZWY8VGVzdE9iaj4mJik7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mIHZtKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzLmNwcAppbmRleCBhMzlmOThmLi4zYWIxMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0xOTIsOSArMTkyLDkgQEAgdm9pZCBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzOjpzX2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycykgfTsKIAotSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyhTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4gaW1wbCkK
K0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4mJiBpbXBsKQogICAgIDogSlNET01XcmFw
cGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQotICAgICwgbV9pbXBsKGltcGwubGVha1JlZigp
KQorICAgICwgbV9pbXBsKCZpbXBsLmxlYWtSZWYoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggODE0NzI4Ni4uM2Q3YmRmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBAIC0yOSw5ICsyOSw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMg
OiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBl
ciBCYXNlOwotICAgIHN0YXRpYyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4gaW1wbCkKKyAgICBzdGF0
aWMgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycz4mJiBpbXBsKQogICAgIHsKLSAgICAgICAgSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIGltcGwpOwor
ICAgICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBwdHIgPSBuZXcgKE5vdE51bGws
IEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9i
amVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhzdHJ1Y3R1cmUs
IGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGltcGwpKTsKICAgICAgICAgcHRyLT5maW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KQEAg
LTY0LDcgKzY0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyogbV9pbXBsOwogcHJvdGVjdGVkOgotICAgIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KTsKKyAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8VGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM+JiYpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2
bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCmluZGV4IDhmMjU3YmYuLmExOTg0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0xMzEs
OSArMTMxLDkgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIAogV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6c19pbmZvID0geyAi
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKSB9
OwogCi1KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlPiBpbXBsKQorSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlPiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpCi0gICAgLCBtX2ltcGwoaW1wbC5sZWFrUmVmKCkpCisgICAgLCBtX2ltcGwo
JmltcGwubGVha1JlZigpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYmM0OTkxOS4uMzVkZGNmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApA
QCAtMzEsOSArMzEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UgOiBwdWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwotICAgIHN0YXRpYyBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+IGltcGwpCisgICAgc3RhdGljIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlPiYmIGltcGwpCiAgICAgewotICAgICAgICBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPihnbG9iYWxPYmplY3QtPnZt
KCkuaGVhcCkpIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShzdHJ1Y3R1cmUs
IGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0LCBXVEY6Om1vdmUoaW1wbCkpOwogICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2Jh
bE9iamVjdC0+dm0oKSk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQpAQCAtNzAsNyArNzAs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqIG1faW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQ
dHI8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4pOworICAgIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgUmVmPFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+JiYpOwogCiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAppbmRleCA3MzU3OTljLi5jNGUzODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTIxNCw5
ICsyMTQsOSBAQCB2b2lkIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmczo6
c19pbmZvID0geyAiVGVzdFR5cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdFR5cGVkZWZz
VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0VHlwZWRlZnMpIH07CiAKLUpTVGVzdFR5
cGVkZWZzOjpKU1Rlc3RUeXBlZGVmcyhTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxUZXN0VHlwZWRlZnM+IGltcGwpCitKU1Rl
c3RUeXBlZGVmczo6SlNUZXN0VHlwZWRlZnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0VHlwZWRlZnM+JiYgaW1wbCkKICAgICA6
IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKLSAgICAsIG1faW1wbChpbXBs
LmxlYWtSZWYoKSkKKyAgICAsIG1faW1wbCgmaW1wbC5sZWFrUmVmKCkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmgKaW5kZXggNzBhMzk4NC4uNzY4MzgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKQEAgLTI5
LDkgKzI5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSlNUZXN0VHlwZWRlZnMgOiBw
dWJsaWMgSlNET01XcmFwcGVyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBC
YXNlOwotICAgIHN0YXRpYyBKU1Rlc3RUeXBlZGVmcyogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVz
dFR5cGVkZWZzPiBpbXBsKQorICAgIHN0YXRpYyBKU1Rlc3RUeXBlZGVmcyogY3JlYXRlKEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxUZXN0VHlwZWRlZnM+JiYgaW1wbCkKICAgICB7Ci0gICAgICAgIEpTVGVzdFR5cGVkZWZzKiBw
dHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdFR5cGVkZWZzPihnbG9i
YWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVzdFR5cGVkZWZzKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0LCBpbXBsKTsKKyAgICAgICAgSlNUZXN0VHlwZWRlZnMqIHB0ciA9IG5ldyAoTm90TnVsbCwg
SlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0VHlwZWRlZnM+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFw
KSkgSlNUZXN0VHlwZWRlZnMoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURjo6bW92ZShpbXBs
KSk7CiAgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAg
ICAgICAgcmV0dXJuIHB0cjsKICAgICB9CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgVGVzdFR5cGVkZWZzKiBtX2ltcGw7CiBwcm90ZWN0ZWQ6Ci0gICAgSlNUZXN0VHlw
ZWRlZnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVz
dFR5cGVkZWZzPik7CisgICAgSlNUZXN0VHlwZWRlZnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCosIFJlZjxUZXN0VHlwZWRlZnM+JiYpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCBkMTg3NjMzLi5kZDg0
OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNhdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU2F0dHJpYnV0ZS5jcHAKQEAgLTExNiw5ICsxMTYsOSBAQCB2b2lkIEpTYXR0cmlidXRl
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0
IENsYXNzSW5mbyBKU2F0dHJpYnV0ZTo6c19pbmZvID0geyAiYXR0cmlidXRlIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU2F0dHJpYnV0ZSkgfTsKIAotSlNhdHRyaWJ1
dGU6OkpTYXR0cmlidXRlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPGF0dHJpYnV0ZT4gaW1wbCkKK0pTYXR0cmlidXRlOjpK
U2F0dHJpYnV0ZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPGF0dHJpYnV0ZT4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyKHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0KQotICAgICwgbV9pbXBsKGltcGwubGVha1JlZigpKQorICAgICwg
bV9pbXBsKCZpbXBsLmxlYWtSZWYoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAppbmRleCA2M2MwZTc5Li4x
YjViMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuaApAQCAtMzAsOSArMzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBKU2F0dHJpYnV0ZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXIgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7Ci0gICAgc3RhdGljIEpTYXR0cmlidXRlKiBjcmVh
dGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUGFzc1JlZlB0cjxhdHRyaWJ1dGU+IGltcGwpCisgICAgc3RhdGljIEpTYXR0cmlidXRl
KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVmPGF0dHJpYnV0ZT4mJiBpbXBsKQogICAgIHsKLSAgICAgICAgSlNhdHRy
aWJ1dGUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNhdHRyaWJ1dGU+
KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNhdHRyaWJ1dGUoc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QsIGltcGwpOworICAgICAgICBKU2F0dHJpYnV0ZSogcHRyID0gbmV3IChOb3ROdWxsLCBK
U0M6OmFsbG9jYXRlQ2VsbDxKU2F0dHJpYnV0ZT4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBK
U2F0dHJpYnV0ZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGltcGwpKTsKICAg
ICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgICAgICBy
ZXR1cm4gcHRyOwogICAgIH0KQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBhdHRyaWJ1dGUqIG1faW1wbDsKIHByb3RlY3RlZDoKLSAgICBKU2F0dHJpYnV0ZShKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxhdHRyaWJ1dGU+KTsKKyAg
ICBKU2F0dHJpYnV0ZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPGF0
dHJpYnV0ZT4mJik7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U3JlYWRvbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U3JlYWRvbmx5LmNwcAppbmRleCA4OTAxNDVmLi45YzgxNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCkBAIC0x
MTEsOSArMTExLDkgQEAgdm9pZCBKU3JlYWRvbmx5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBKU3JlYWRvbmx5OjpzX2lu
Zm8gPSB7ICJyZWFkb25seSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNyZWFkb25seSkgfTsKIAotSlNyZWFkb25seTo6SlNyZWFkb25seShTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxyZWFkb25s
eT4gaW1wbCkKK0pTcmVhZG9ubHk6OkpTcmVhZG9ubHkoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxyZWFkb25seT4mJiBpbXBsKQogICAg
IDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQotICAgICwgbV9pbXBsKGlt
cGwubGVha1JlZigpKQorICAgICwgbV9pbXBsKCZpbXBsLmxlYWtSZWYoKSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9u
bHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5
LmgKaW5kZXggYmY4M2RhZi4uMTJmMzY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC0yOSw5ICsyOSw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpTcmVhZG9ubHkgOiBwdWJsaWMgSlNET01XcmFwcGVy
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwotICAgIHN0YXRpYyBK
U3JlYWRvbmx5KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxyZWFkb25seT4gaW1wbCkKKyAgICBzdGF0
aWMgSlNyZWFkb25seSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxyZWFkb25seT4mJiBpbXBsKQogICAgIHsKLSAg
ICAgICAgSlNyZWFkb25seSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxK
U3JlYWRvbmx5PihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTcmVhZG9ubHkoc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QsIGltcGwpOworICAgICAgICBKU3JlYWRvbmx5KiBwdHIgPSBuZXcgKE5v
dE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTcmVhZG9ubHk+KGdsb2JhbE9iamVjdC0+dm0oKS5o
ZWFwKSkgSlNyZWFkb25seShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGOjptb3ZlKGltcGwp
KTsKICAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwogICAg
ICAgICByZXR1cm4gcHRyOwogICAgIH0KQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICByZWFkb25seSogbV9pbXBsOwogcHJvdGVjdGVkOgotICAgIEpTcmVhZG9ubHkoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8cmVhZG9ubHk+KTsK
KyAgICBKU3JlYWRvbmx5KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8
cmVhZG9ubHk+JiYpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiB2bSkKICAg
ICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>