<?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>27588</bug_id>
          
          <creation_ts>2009-07-22 17:50:27 -0700</creation_ts>
          <short_desc>Make most DOMObjects hold onto a JSDOMGlobalObject*</short_desc>
          <delta_ts>2009-07-23 23:58:16 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>27622</dependson>
          <blocked>27088</blocked>
    
    <blocked>27634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133994</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-22 17:50:27 -0700</bug_when>
    <thetext>Make most DOMObjects hold onto a JSDOMGlobalObject*

The only exceptions are the SVG objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133998</commentid>
    <comment_count>1</comment_count>
      <attachid>33309</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-22 18:24:57 -0700</bug_when>
    <thetext>Created attachment 33309
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134160</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 11:11:24 -0700</bug_when>
    <thetext>I think Sam already got email about this through the bug relationships.  But just in case, I&apos;ll CC him.  This is a rather large change (although very little functional change) and I want to make sure folks have plenty of time to digest it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134162</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-23 11:16:48 -0700</bug_when>
    <thetext>Can we avoid the const_casts?  Those are super ugly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134174</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 11:42:25 -0700</bug_when>
    <thetext>I mentioned to Adam over chat:  The large test I added has *no* functional changes from before and after this patch.  It was written to catch anything that might have changed by this patch, but in the end, there was only one functional change from this patch, which i already covered by the existing tests.  I could/should separate out the large test out of this patch and land it first. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134230</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 13:31:25 -0700</bug_when>
    <thetext>I&apos;ve now broken the new test out into its own bug, bug 27622.  I&apos;ll post a new patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134234</commentid>
    <comment_count>6</comment_count>
      <attachid>33366</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 13:43:39 -0700</bug_when>
    <thetext>Created attachment 33366
Just the code changes


---
 17 files changed, 147 insertions(+), 43 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134394</commentid>
    <comment_count>7</comment_count>
      <attachid>33366</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-23 23:32:29 -0700</bug_when>
    <thetext>Comment on attachment 33366
Just the code changes

After some clarifying questions via chat, I believe this patch is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134407</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 23:58:16 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/dom/prototype-inheritance-2-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/DOMObjectWithSVGContext.h
	M	WebCore/bindings/js/JSDOMBinding.h
	M	WebCore/bindings/js/JSDOMGlobalObject.h
	M	WebCore/bindings/js/JSDOMWindowCustom.cpp
	M	WebCore/bindings/js/JSDocumentCustom.cpp
	M	WebCore/bindings/js/JSHTMLAllCollection.h
	M	WebCore/bindings/js/JSHTMLCollectionCustom.cpp
	M	WebCore/bindings/js/JSHTMLFormElementCustom.cpp
	M	WebCore/bindings/js/JSNamedNodesCollection.cpp
	M	WebCore/bindings/js/JSNamedNodesCollection.h
	M	WebCore/bindings/js/JSSharedWorkerConstructor.cpp
	M	WebCore/bindings/js/JSSharedWorkerConstructor.h
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
Committed r46320
	M	WebCore/ChangeLog
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
	M	WebCore/bindings/js/JSSharedWorkerConstructor.h
	M	WebCore/bindings/js/DOMObjectWithSVGContext.h
	M	WebCore/bindings/js/JSSharedWorkerConstructor.cpp
	M	WebCore/bindings/js/JSHTMLCollectionCustom.cpp
	M	WebCore/bindings/js/JSDOMGlobalObject.h
	M	WebCore/bindings/js/JSNamedNodesCollection.cpp
	M	WebCore/bindings/js/JSHTMLFormElementCustom.cpp
	M	WebCore/bindings/js/JSDOMBinding.h
	M	WebCore/bindings/js/JSNamedNodesCollection.h
	M	WebCore/bindings/js/JSDOMWindowCustom.cpp
	M	WebCore/bindings/js/JSHTMLAllCollection.h
	M	WebCore/bindings/js/JSDocumentCustom.cpp
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/dom/prototype-inheritance-2-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-expected.txt
r46320 = cc7b4c4103deafff9b1fc0069ad4e87549d98161 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46320</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33309</attachid>
            <date>2009-07-22 18:24:57 -0700</date>
            <delta_ts>2009-07-23 13:43:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27588-20090722182456.patch</filename>
            <type>text/plain</type>
            <size>56180</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMmQ3NTZkLi5iNzZlZGE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDct
MjIgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgbW9zdCBET01PYmplY3RzIGhvbGQgb250
byBhIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc1ODgKKworICAgICAgICBUaGlzIG5ldyB0ZXN0IHRyaWVzIGhhcmQg
bm90IHRvIGR1cGxpY2F0ZSB0ZXN0aW5nIGRvbmUKKyAgICAgICAgYnkgb3RoZXIgdGVzdHMgYW5k
IGluc3RlYWQgdGVzdCBuZXcgb2JqZWN0cyBhbmQgcHJvdG90eXBlIGNoYWlucworICAgICAgICB3
aGljaCB3aWxsIGJlIGZpeGVkIGFzIHNvb24gYXMgdG9KUyBpcyBwYXNzZWQgdGhyb3VnaCB0aGUg
Z2xvYmFsT2JqZWN0LgorCisgICAgICAgIGlubmVyLmRvY3VtZW50LmNvbnN0cnVjdG9yIGlzIGZp
eGVkIGJlY2F1c2UgYWxsIHByb3BlcnRpZXMgb24gdGhlIHdpbmRvdworICAgICAgICBvYmplY3Qg
YXJlIGNyZWF0ZWQgd2l0aCB0aGUgY29ycmVjdCBnbG9iYWxPYmplY3QgKGluc3RlYWQgb2YgdGhl
IGxleGljYWwgb25lKS4KKyAgICAgICAgU2luY2UgYWxsIG9iamVjdHMgbm93IGNhcnJ5IGEgZ2xv
YmFsT2JqZWN0IHBvaW50ZXIsIHdoZW4gZG9jdW1lbnQgY3JlYXRlcworICAgICAgICBIVE1MRG9j
dW1lbnRDb25zdHJ1Y3RvciBpdCBub3cgaGFzIHRoZSByaWdodCBnbG9iYWxPYmplY3QgdG8gdXNl
LgorCisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Jlc291cmNlcy9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi5qczogQWRkZWQuCisgICAgICAgIChwcm9wZXJ0aWVzT25PYmplY3QpOgorICAgICAg
ICAoKToKKyAgICAgICAgKGNvbnN0cnVjdG9yTmFtZXNGb3JXaW5kb3cpOgorICAgICAgICAobWFr
ZUNyYXdsT2JqZWN0KToKKyAgICAgICAgKGV2YWxUb0NyYXdsT2JqZWN0KToKKyAgICAgICAgKHB1
c2hQcm9wZXJ0eVZhbHVlc1dpdGhVbnNlZW5UeXBlcyk6CisgICAgICAgIChjcmF3bCk6CisKIDIw
MDktMDctMjIgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0YS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hZWFiMmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMzI5IEBACitNYWtlIHN1cmUgcHJvdG90eXBlcyBhcmUgc2V0IHVwIHVzaW5nIHRoZSB3aW5k
b3cgYSBwcm9wZXJ0eSBjYW1lIGZyb20sIGluc3RlYWQgb2YgdGhlIGxleGljYWwgZ2xvYmFsIG9i
amVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgQXJyYXkgZnJvbSBp
bm5lci5jb25zb2xlLnByb2ZpbGVzCitGQUlMIEF0dHIgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmF0dHJpYnV0ZXMuMAorRkFJTCBBdHRyQ29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuMC5jb25zdHJ1Y3RvcgorRkFJTCBBdHRy
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAu
X19wcm90b19fCitGQUlMIEJhckluZm8gZnJvbSBpbm5lci5tZW51YmFyCitGQUlMIEJhckluZm9Q
cm90b3R5cGUgZnJvbSBpbm5lci5tZW51YmFyLl9fcHJvdG9fXworRkFJTCBCb29sZWFuIGZyb20g
aW5uZXIub2Zmc2NyZWVuQnVmZmVyaW5nCitGQUlMIENTU1J1bGVMaXN0IGZyb20gaW5uZXIuZG9j
dW1lbnQuc3R5bGVTaGVldHMuMC5jc3NSdWxlcworRkFJTCBDU1NSdWxlTGlzdENvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuMC5ydWxlcy5jb25zdHJ1Y3RvcgorRkFJ
TCBDU1NSdWxlTGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLjAu
Y3NzUnVsZXMuX19wcm90b19fCitGQUlMIENTU1N0eWxlRGVjbGFyYXRpb24gZnJvbSBpbm5lci5k
b2N1bWVudC5zY3JpcHRzLjAuc3R5bGUKK0ZBSUwgQ1NTU3R5bGVEZWNsYXJhdGlvbkNvbnN0cnVj
dG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5zdHlsZS5jb25zdHJ1Y3Rvcgor
RkFJTCBDU1NTdHlsZURlY2xhcmF0aW9uUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc2Ny
aXB0cy4wLnN0eWxlLl9fcHJvdG9fXworRkFJTCBDU1NTdHlsZVNoZWV0IGZyb20gaW5uZXIuZG9j
dW1lbnQuc3R5bGVTaGVldHMuMAorRkFJTCBDU1NTdHlsZVNoZWV0Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLmNvbnN0cnVjdG9yCitGQUlMIENTU1N0eWxlU2hl
ZXRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLl9fcHJvdG9fXwor
RkFJTCBDaGFyYWN0ZXJEYXRhUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5hdHRyaWJ1dGVzLjAubGFzdENoaWxkLl9fcHJvdG9fXy5fX3Byb3RvX18KK0ZBSUwgQ29s
bGVjdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtCitGQUlMIENvbnNvbGUg
ZnJvbSBpbm5lci5jb25zb2xlCitGQUlMIENvbnNvbGVQcm90b3R5cGUgZnJvbSBpbm5lci5jb25z
b2xlLl9fcHJvdG9fXworRkFJTCBET01BcHBsaWNhdGlvbkNhY2hlIGZyb20gaW5uZXIuYXBwbGlj
YXRpb25DYWNoZQorRkFJTCBET01BcHBsaWNhdGlvbkNhY2hlUHJvdG90eXBlIGZyb20gaW5uZXIu
YXBwbGljYXRpb25DYWNoZS5fX3Byb3RvX18KK0ZBSUwgRE9NSW1wbGVtZW50YXRpb24gZnJvbSBp
bm5lci5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbgorRkFJTCBET01JbXBsZW1lbnRhdGlvbkNvbnN0
cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY29uc3RydWN0b3IKK0ZB
SUwgRE9NSW1wbGVtZW50YXRpb25Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5fX3Byb3RvX18KK1BBU1MgRE9NV2luZG93IGZyb20gaW5uZXIKK1BBU1MgRE9NV2lu
ZG93UHJvdG90eXBlIGZyb20gaW5uZXIuX19wcm90b19fCitGQUlMIERhdGFHcmlkQ29sdW1uTGlz
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5jb2x1bW5z
CitGQUlMIERhdGFHcmlkQ29sdW1uTGlzdENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjE0LmNvbHVtbnMuY29uc3RydWN0b3IKK0ZBSUwgRGF0
YUdyaWRDb2x1bW5MaXN0UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjE0LmNvbHVtbnMuX19wcm90b19fCitQQVNTIERvY3VtZW50UHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuX19wcm90b19fLl9fcHJvdG9fXworRkFJTCBFbGVtZW50UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5fX3Byb3RvX18uX19wcm90
b19fLl9fcHJvdG9fXworRkFJTCBGdW5jdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LmxvY2F0aW9u
LnBhdGhuYW1lLmNvbnN0cnVjdG9yCitGQUlMIEhUTUxBbmNob3JFbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZAorRkFJTCBIVE1MQW5jaG9y
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5maXJz
dEVsZW1lbnRDaGlsZC5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MQW5jaG9yRWxlbWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuX19w
cm90b19fCitGQUlMIEhUTUxBcHBsZXRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYXBwbGV0
cy4wCitGQUlMIEhUTUxBcHBsZXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVu
dC5hcHBsZXRzLjAuY29uc3RydWN0b3IKK0ZBSUwgSFRNTEFwcGxldEVsZW1lbnRQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5hcHBsZXRzLjAuX19wcm90b19fCitGQUlMIEhUTUxBcmVhRWxl
bWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yCitGQUlM
IEhUTUxBcmVhRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jaGlsZE5vZGVzLjIuY29uc3RydWN0b3IKK0ZBSUwgSFRNTEFyZWFFbGVtZW50UHJvdG90
eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjIuX19wcm90
b19fCitGQUlMIEhUTUxBdWRpb0VsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuMworRkFJTCBIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5jb25zdHJ1Y3RvcgorRkFJ
TCBIVE1MQXVkaW9FbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5jaGlsZE5vZGVzLjMuX19wcm90b19fCitGQUlMIEhUTUxCUkVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNAorRkFJTCBIVE1MQlJFbGVtZW50
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
NC5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MQlJFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQuX19wcm90b19fCitGQUlMIEhUTUxCYXNl
RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy42CitG
QUlMIEhUTUxCYXNlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjYuY29uc3RydWN0b3IKK0ZBSUwgSFRNTEJhc2VFbGVtZW50UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjYuX19w
cm90b19fCitGQUlMIEhUTUxCYXNlRm9udEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuNworRkFJTCBIVE1MQmFzZUZvbnRFbGVtZW50Q29uc3RydWN0
b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNy5jb25zdHJ1
Y3RvcgorRkFJTCBIVE1MQmFzZUZvbnRFbGVtZW50UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjcuX19wcm90b19fCitGQUlMIEhUTUxCb2R5RWxl
bWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQKK0ZBSUwgSFRNTEJvZHlFbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnN0cnVj
dG9yCitGQUlMIEhUTUxCb2R5RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuX19wcm90b19fCitGQUlMIEhUTUxCdXR0b25FbGVtZW50IGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjkKK0ZBSUwgSFRNTEJ1dHRvbkVsZW1l
bnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rl
cy45LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxCdXR0b25FbGVtZW50UHJvdG90eXBlIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjkuX19wcm90b19fCitGQUlMIEhU
TUxDYW52YXNFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjEwCitGQUlMIEhUTUxDYW52YXNFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTAuY29uc3RydWN0b3IKK0ZBSUwgSFRNTENh
bnZhc0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuMTAuX19wcm90b19fCitGQUlMIEhUTUxDb2xsZWN0aW9uIGZyb20gaW5uZXIuZG9j
dW1lbnQubGlua3MKK0ZBSUwgSFRNTENvbGxlY3Rpb25Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDcub3B0aW9ucy5fX3Byb3RvX18KK0ZBSUwg
SFRNTERMaXN0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4xMQorRkFJTCBIVE1MRExpc3RFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMTEuY29uc3RydWN0b3IKK0ZBSUwgSFRNTERM
aXN0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4xMS5fX3Byb3RvX18KK0ZBSUwgSFRNTERhdGFHcmlkRWxlbWVudCBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNAorRkFJTCBIVE1MRGF0YUdyaWRF
bGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMTQuY29uc3RydWN0b3IKK0ZBSUwgSFRNTERhdGFHcmlkRWxlbWVudFByb3RvdHlwZSBm
cm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4xNC5fX3Byb3RvX18K
K0ZBSUwgSFRNTERpdkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAucHJldmlv
dXNFbGVtZW50U2libGluZworRkFJTCBIVE1MRGl2RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQucGx1Z2lucy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IK
K0ZBSUwgSFRNTERpdkVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5z
LjAucHJldmlvdXNFbGVtZW50U2libGluZy5fX3Byb3RvX18KK1BBU1MgSFRNTERvY3VtZW50IGZy
b20gaW5uZXIuZG9jdW1lbnQKK1BBU1MgSFRNTERvY3VtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5l
ci5kb2N1bWVudC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MRG9jdW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5fX3Byb3RvX18KK0ZBSUwgSFRNTEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1
bWVudC5zY3JpcHRzLjAucHJldmlvdXNFbGVtZW50U2libGluZworRkFJTCBIVE1MRWxlbWVudENv
bnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuc2NyaXB0cy4wLnByZXZpb3VzRWxlbWVudFNp
YmxpbmcuY29uc3RydWN0b3IKK0ZBSUwgSFRNTEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50Ll9fcHJvdG9fXy5fX3Byb3RvX18KK0ZBSUwgSFRNTEVtYmVk
RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMAorRkFJTCBIVE1MRW1iZWRFbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAuY29uc3RydWN0b3IK
K0ZBSUwgSFRNTEVtYmVkRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdp
bnMuMC5fX3Byb3RvX18KK0ZBSUwgSFRNTEZpZWxkU2V0RWxlbWVudCBmcm9tIGlubmVyLmRvY3Vt
ZW50LnBsdWdpbnMuMC5uZXh0RWxlbWVudFNpYmxpbmcKK0ZBSUwgSFRNTEZpZWxkU2V0RWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLm5leHRFbGVtZW50U2li
bGluZy5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MRmllbGRTZXRFbGVtZW50UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLm5leHRFbGVtZW50U2libGluZy5fX3Byb3RvX18KK0ZB
SUwgSFRNTEZvbnRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGls
ZE5vZGVzLjE5CitGQUlMIEhUTUxGb250RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjE5LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxG
b250RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4xOS5fX3Byb3RvX18KK0ZBSUwgSFRNTEZvcm1FbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkCitGQUlMIEhUTUxGb3JtRWxlbWVu
dENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5sYXN0RWxlbWVu
dENoaWxkLmNvbnN0cnVjdG9yCitGQUlMIEhUTUxGb3JtRWxlbWVudFByb3RvdHlwZSBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZC5fX3Byb3RvX18KK0ZB
SUwgSFRNTEZyYW1lU2V0RWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy4yMQorRkFJTCBIVE1MRnJhbWVTZXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjEuY29uc3RydWN0b3IKK0ZB
SUwgSFRNTEZyYW1lU2V0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMS5fX3Byb3RvX18KK0ZBSUwgSFRNTEhSRWxlbWVudCBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMgorRkFJTCBIVE1MSFJF
bGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuMjIuY29uc3RydWN0b3IKK0ZBSUwgSFRNTEhSRWxlbWVudFByb3RvdHlwZSBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yMi5fX3Byb3RvX18KK0ZBSUwg
SFRNTEhlYWRFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5wcmV2aW91
c0VsZW1lbnRTaWJsaW5nCitGQUlMIEhUTUxIZWFkRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmNvbnN0cnVj
dG9yCitGQUlMIEhUTUxIZWFkRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZy5fX3Byb3RvX18KK0ZBSUwgSFRNTEh0
bWxFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50CitGQUlMIEhUTUxI
dG1sRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxIdG1sRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5fX3Byb3RvX18KK0ZBSUwgSFRNTElGcmFtZUVsZW1lbnQg
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjQKK0ZBSUwgSFRN
TElGcmFtZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy4yNC5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MSUZyYW1lRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNC5fX3By
b3RvX18KK0ZBSUwgSFRNTEltYWdlRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmltYWdlcy4w
CitGQUlMIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50Lmlt
YWdlcy4wLmNvbnN0cnVjdG9yCitGQUlMIEhUTUxJbWFnZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5pbWFnZXMuMC5fX3Byb3RvX18KK0ZBSUwgSFRNTElucHV0RWxlbWVudCBm
cm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNgorRkFJTCBIVE1M
SW5wdXRFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuMjYuY29uc3RydWN0b3IKK0ZBSUwgSFRNTElucHV0RWxlbWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yNi5fX3Byb3Rv
X18KK0ZBSUwgSFRNTExJRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Y2hpbGROb2Rlcy4yOAorRkFJTCBIVE1MTElFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMjguY29uc3RydWN0b3IKK0ZBSUwgSFRN
TExJRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4yOC5fX3Byb3RvX18KK0ZBSUwgSFRNTExhYmVsRWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yOQorRkFJTCBIVE1MTGFiZWxFbGVtZW50
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MjkuY29uc3RydWN0b3IKK0ZBSUwgSFRNTExhYmVsRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4yOS5fX3Byb3RvX18KK0ZBSUwgSFRN
TExlZ2VuZEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuMzAKK0ZBSUwgSFRNTExlZ2VuZEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMC5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MTGVn
ZW5kRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hp
bGROb2Rlcy4zMC5fX3Byb3RvX18KK0ZBSUwgSFRNTExpbmtFbGVtZW50IGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMxCitGQUlMIEhUTUxMaW5rRWxlbWVudENv
bnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMx
LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxMaW5rRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMS5fX3Byb3RvX18KK0ZBSUwgSFRNTE1h
cEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzIK
K0ZBSUwgSFRNTE1hcEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMi5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MTWFwRWxlbWVudFBy
b3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMi5f
X3Byb3RvX18KK0ZBSUwgSFRNTE1hcnF1ZWVFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMzCitGQUlMIEhUTUxNYXJxdWVlRWxlbWVudENvbnN0cnVj
dG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjMzLmNvbnN0
cnVjdG9yCitGQUlMIEhUTUxNYXJxdWVlRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zMy5fX3Byb3RvX18KK0ZBSUwgSFRNTE1lZGlh
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4zLl9fcHJvdG9fXy5fX3Byb3RvX18KK0ZBSUwgSFRNTE1lbnVFbGVtZW50IGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM1CitGQUlMIEhUTUxNZW51RWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjM1LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxNZW51RWxlbWVudFByb3RvdHlwZSBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zNS5fX3Byb3RvX18KK0ZBSUwg
SFRNTE1ldGFFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjM2CitGQUlMIEhUTUxNZXRhRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjM2LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxNZXRh
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4zNi5fX3Byb3RvX18KK0ZBSUwgSFRNTE9MaXN0RWxlbWVudCBmcm9tIGlubmVyLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOAorRkFJTCBIVE1MT0xpc3RFbGVtZW50Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMzgu
Y29uc3RydWN0b3IKK0ZBSUwgSFRNTE9MaXN0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOC5fX3Byb3RvX18KK0ZBSUwgSFRNTE9i
amVjdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
MzkKK0ZBSUwgSFRNTE9iamVjdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy4zOS5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MT2JqZWN0
RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4zOS5fX3Byb3RvX18KK0ZBSUwgSFRNTE9wdEdyb3VwRWxlbWVudCBmcm9tIGlubmVyLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40MAorRkFJTCBIVE1MT3B0R3JvdXBFbGVt
ZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9k
ZXMuNDAuY29uc3RydWN0b3IKK0ZBSUwgSFRNTE9wdEdyb3VwRWxlbWVudFByb3RvdHlwZSBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40MC5fX3Byb3RvX18KK0ZB
SUwgSFRNTE9wdGlvbkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNDEKK0ZBSUwgSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40MS5jb25zdHJ1Y3RvcgorRkFJTCBI
VE1MT3B0aW9uRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy40MS5fX3Byb3RvX18KK0ZBSUwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGZy
b20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ3Lm9wdGlvbnMKK0ZB
SUwgSFRNTFBhcmFncmFwaEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuNDIKK0ZBSUwgSFRNTFBhcmFncmFwaEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9t
IGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40Mi5jb25zdHJ1Y3Rvcgor
RkFJTCBIVE1MUGFyYWdyYXBoRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40Mi5fX3Byb3RvX18KK0ZBSUwgSFRNTFBhcmFtRWxlbWVu
dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40MworRkFJTCBI
VE1MUGFyYW1FbGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDMuY29uc3RydWN0b3IKK0ZBSUwgSFRNTFBhcmFtRWxlbWVudFByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40My5fX3By
b3RvX18KK0ZBSUwgSFRNTFByZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDQKK0ZBSUwgSFRNTFByZUVsZW1lbnRDb25zdHJ1Y3RvciBmcm9tIGlu
bmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy40NC5jb25zdHJ1Y3RvcgorRkFJ
TCBIVE1MUHJlRWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuY2hpbGROb2Rlcy40NC5fX3Byb3RvX18KK0ZBSUwgSFRNTFNjcmlwdEVsZW1lbnQgZnJvbSBp
bm5lci5kb2N1bWVudC5zY3JpcHRzLjAKK0ZBSUwgSFRNTFNjcmlwdEVsZW1lbnRDb25zdHJ1Y3Rv
ciBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5jb25zdHJ1Y3RvcgorRkFJTCBIVE1MU2Ny
aXB0RWxlbWVudFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5fX3Byb3Rv
X18KK0ZBSUwgSFRNTFNlbGVjdEVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmNoaWxkTm9kZXMuNDcKK0ZBSUwgSFRNTFNlbGVjdEVsZW1lbnRDb25zdHJ1Y3RvciBmcm9t
IGlubmVyLmRvY3VtZW50LnNjcmlwdHMuMC5uZXh0RWxlbWVudFNpYmxpbmcuY29uc3RydWN0b3IK
K0ZBSUwgSFRNTFNlbGVjdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuNDcuX19wcm90b19fCitGQUlMIEhUTUxTdHlsZUVsZW1lbnQg
ZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDgKK0ZBSUwgSFRN
TFN0eWxlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5jaGlsZE5vZGVzLjQ4LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxTdHlsZUVsZW1lbnRQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDguX19wcm90
b19fCitGQUlMIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5jaGlsZE5vZGVzLjQ5CitGQUlMIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDku
Y29uc3RydWN0b3IKK0ZBSUwgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNDkuX19wcm90b19fCitGQUlM
IEhUTUxUYWJsZUNlbGxFbGVtZW50IGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5j
aGlsZE5vZGVzLjUwCitGQUlMIEhUTUxUYWJsZUNlbGxFbGVtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTAuY29uc3RydWN0b3IKK0ZB
SUwgSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmNoaWxkTm9kZXMuNTAuX19wcm90b19fCitGQUlMIEhUTUxUYWJsZUNvbEVsZW1l
bnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTEKK0ZBSUwg
SFRNTFRhYmxlQ29sRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5jaGlsZE5vZGVzLjUxLmNvbnN0cnVjdG9yCitGQUlMIEhUTUxUYWJsZUNvbEVsZW1l
bnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMu
NTEuX19wcm90b19fCitGQUlMIEhUTUxUYWJsZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTIKK0ZBSUwgSFRNTFRhYmxlRWxlbWVudENvbnN0cnVj
dG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUyLmNvbnN0
cnVjdG9yCitGQUlMIEhUTUxUYWJsZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTIuX19wcm90b19fCitGQUlMIEhUTUxUYWJsZVJv
d0VsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTMK
K0ZBSUwgSFRNTFRhYmxlUm93RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjUzLmNvbnN0cnVjdG9yCitGQUlMIEhUTUxUYWJsZVJv
d0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNTMuX19wcm90b19fCitGQUlMIEhUTUxUZXh0QXJlYUVsZW1lbnQgZnJvbSBpbm5lci5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTUKK0ZBSUwgSFRNTFRleHRBcmVhRWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjU1LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxUZXh0QXJlYUVsZW1lbnRQcm90b3R5cGUgZnJv
bSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTUuX19wcm90b19fCitG
QUlMIEhUTUxUaXRsZUVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNTYKK0ZBSUwgSFRNTFRpdGxlRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIu
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU2LmNvbnN0cnVjdG9yCitGQUlMIEhU
TUxUaXRsZUVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmNoaWxkTm9kZXMuNTYuX19wcm90b19fCitGQUlMIEhUTUxVTGlzdEVsZW1lbnQgZnJvbSBpbm5l
ci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTcKK0ZBSUwgSFRNTFVMaXN0RWxl
bWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5v
ZGVzLjU3LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxVTGlzdEVsZW1lbnRQcm90b3R5cGUgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuNTcuX19wcm90b19fCitGQUlM
IEhUTUxWaWRlb0VsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxk
Tm9kZXMuNTgKK0ZBSUwgSFRNTFZpZGVvRWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5jaGlsZE5vZGVzLjU4LmNvbnN0cnVjdG9yCitGQUlMIEhUTUxW
aWRlb0VsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNo
aWxkTm9kZXMuNTguX19wcm90b19fCitQQVNTIEhpc3RvcnkgZnJvbSBpbm5lci5oaXN0b3J5CitQ
QVNTIEhpc3RvcnlQcm90b3R5cGUgZnJvbSBpbm5lci5oaXN0b3J5Ll9fcHJvdG9fXworUEFTUyBM
b2NhdGlvbiBmcm9tIGlubmVyLmRvY3VtZW50LmxvY2F0aW9uCitQQVNTIExvY2F0aW9uUHJvdG90
eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQubG9jYXRpb24uX19wcm90b19fCitGQUlMIE1lZGlhTGlz
dCBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxlU2hlZXRzLjAubWVkaWEKK0ZBSUwgTWVkaWFMaXN0
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLm1lZGlhLmNvbnN0
cnVjdG9yCitGQUlMIE1lZGlhTGlzdFByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnN0eWxl
U2hlZXRzLjAubWVkaWEuX19wcm90b19fCitGQUlMIE1pbWVUeXBlIGZyb20gaW5uZXIuY2xpZW50
SW5mb3JtYXRpb24ubWltZVR5cGVzLjAKK0ZBSUwgTWltZVR5cGVBcnJheSBmcm9tIGlubmVyLmNs
aWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcworRkFJTCBNaW1lVHlwZUFycmF5Q29uc3RydWN0b3Ig
ZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuY29uc3RydWN0b3IKK0ZBSUwg
TWltZVR5cGVBcnJheVByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLm1pbWVU
eXBlcy5fX3Byb3RvX18KK0ZBSUwgTWltZVR5cGVDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmNsaWVu
dEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLmNvbnN0cnVjdG9yCitGQUlMIE1pbWVUeXBlUHJvdG90
eXBlIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAuX19wcm90b19fCitG
QUlMIE5hbWVkTm9kZU1hcCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucHJldmlv
dXNFbGVtZW50U2libGluZy5hdHRyaWJ1dGVzCitGQUlMIE5hdmlnYXRvciBmcm9tIGlubmVyLmNs
aWVudEluZm9ybWF0aW9uCitGQUlMIE5hdmlnYXRvclByb3RvdHlwZSBmcm9tIGlubmVyLmNsaWVu
dEluZm9ybWF0aW9uLl9fcHJvdG9fXworRkFJTCBOb2RlTGlzdCBmcm9tIGlubmVyLmRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzCitGQUlMIE5vZGVMaXN0Q29uc3RydWN0b3IgZnJv
bSBpbm5lci5kb2N1bWVudC5jaGlsZE5vZGVzLmNvbnN0cnVjdG9yCitGQUlMIE5vZGVMaXN0UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMuX19w
cm90b19fCitQQVNTIE5vZGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5fX3Byb3RvX18u
X19wcm90b19fLl9fcHJvdG9fXworRkFJTCBOdW1iZXIgZnJvbSBpbm5lci5wYWdlWE9mZnNldAor
RkFJTCBPYmplY3QgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS5fX3Byb3RvX18K
K0ZBSUwgUGx1Z2luIGZyb20gaW5uZXIuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLjAuZW5h
YmxlZFBsdWdpbgorRkFJTCBQbHVnaW5BcnJheSBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9u
LnBsdWdpbnMKK0ZBSUwgUGx1Z2luQXJyYXlDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmNsaWVudElu
Zm9ybWF0aW9uLnBsdWdpbnMuY29uc3RydWN0b3IKK0ZBSUwgUGx1Z2luQXJyYXlQcm90b3R5cGUg
ZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLl9fcHJvdG9fXworRkFJTCBQbHVn
aW5Db25zdHJ1Y3RvciBmcm9tIGlubmVyLmNsaWVudEluZm9ybWF0aW9uLnBsdWdpbnMuMC5jb25z
dHJ1Y3RvcgorRkFJTCBQbHVnaW5Qcm90b3R5cGUgZnJvbSBpbm5lci5jbGllbnRJbmZvcm1hdGlv
bi5taW1lVHlwZXMuMC5lbmFibGVkUGx1Z2luLl9fcHJvdG9fXworRkFJTCBTY3JlZW4gZnJvbSBp
bm5lci5zY3JlZW4KK0ZBSUwgU2NyZWVuUHJvdG90eXBlIGZyb20gaW5uZXIuc2NyZWVuLl9fcHJv
dG9fXworRkFJTCBTdG9yYWdlIGZyb20gaW5uZXIubG9jYWxTdG9yYWdlCitGQUlMIFN0b3JhZ2VD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmxvY2FsU3RvcmFnZS5jb25zdHJ1Y3RvcgorRkFJTCBTdG9y
YWdlUHJvdG90eXBlIGZyb20gaW5uZXIubG9jYWxTdG9yYWdlLl9fcHJvdG9fXworRkFJTCBTdHJp
bmcgZnJvbSBpbm5lci5uYW1lCitGQUlMIFN0eWxlU2hlZXRMaXN0IGZyb20gaW5uZXIuZG9jdW1l
bnQuc3R5bGVTaGVldHMKK0ZBSUwgU3R5bGVTaGVldExpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LnN0eWxlU2hlZXRzLmNvbnN0cnVjdG9yCitGQUlMIFN0eWxlU2hlZXRMaXN0UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuc3R5bGVTaGVldHMuX19wcm90b19fCitGQUlMIFN0
eWxlU2hlZXRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5zdHlsZVNoZWV0cy4wLl9fcHJv
dG9fXy5fX3Byb3RvX18KK0ZBSUwgVGV4dCBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuYXR0cmlidXRlcy4wLmZpcnN0Q2hpbGQKK0ZBSUwgVGV4dENvbnN0cnVjdG9yIGZyb20gaW5u
ZXIuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLjAubGFzdENoaWxkLmNvbnN0cnVj
dG9yCitGQUlMIFRleHRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmF0dHJpYnV0ZXMuMC5sYXN0Q2hpbGQuX19wcm90b19fCitGQUlMIFRpbWVSYW5nZXMgZnJvbSBp
bm5lci5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNoaWxkTm9kZXMuMy5wbGF5ZWQKK0ZBSUwgVGlt
ZVJhbmdlc1Byb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2hpbGRO
b2Rlcy4zLnBsYXllZC5fX3Byb3RvX18KK0ZBSUwgVmFsaWRpdHlTdGF0ZSBmcm9tIGlubmVyLmRv
Y3VtZW50LnBsdWdpbnMuMC5uZXh0RWxlbWVudFNpYmxpbmcudmFsaWRpdHkKK0ZBSUwgVmFsaWRp
dHlTdGF0ZVByb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LnBsdWdpbnMuMC5uZXh0RWxlbWVu
dFNpYmxpbmcudmFsaWRpdHkuX19wcm90b19fCitQQVNTIFhTTFRQcm9jZXNzb3JDb25zcnVjdG9y
IGZyb20gaW5uZXIuWFNMVFByb2Nlc3NvcgorTmV2ZXIgZm91bmQgQXVkaW8KK05ldmVyIGZvdW5k
IENEQVRBU2VjdGlvbgorTmV2ZXIgZm91bmQgQ1NTQ2hhcnNldFJ1bGUKK05ldmVyIGZvdW5kIENT
U0ZvbnRGYWNlUnVsZQorTmV2ZXIgZm91bmQgQ1NTSW1wb3J0UnVsZQorTmV2ZXIgZm91bmQgQ1NT
TWVkaWFSdWxlCitOZXZlciBmb3VuZCBDU1NQYWdlUnVsZQorTmV2ZXIgZm91bmQgQ1NTUHJpbWl0
aXZlVmFsdWUKK05ldmVyIGZvdW5kIENTU1J1bGUKK05ldmVyIGZvdW5kIENTU1N0eWxlUnVsZQor
TmV2ZXIgZm91bmQgQ1NTVmFsdWUKK05ldmVyIGZvdW5kIENTU1ZhbHVlTGlzdAorTmV2ZXIgZm91
bmQgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KK05ldmVyIGZvdW5kIENTU1ZhcmlhYmxlc1J1bGUK
K05ldmVyIGZvdW5kIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRAorTmV2ZXIgZm91bmQgQ2hhcmFj
dGVyRGF0YQorTmV2ZXIgZm91bmQgQ2xpZW50UmVjdAorTmV2ZXIgZm91bmQgQ2xpZW50UmVjdExp
c3QKK05ldmVyIGZvdW5kIENsaXBib2FyZAorTmV2ZXIgZm91bmQgQ29tbWVudAorTmV2ZXIgZm91
bmQgQ291bnRlcgorTmV2ZXIgZm91bmQgRE9NUGFyc2VyCitOZXZlciBmb3VuZCBEb2N1bWVudAor
TmV2ZXIgZm91bmQgRG9jdW1lbnRGcmFnbWVudAorTmV2ZXIgZm91bmQgRG9jdW1lbnRUeXBlCitO
ZXZlciBmb3VuZCBFbGVtZW50CitOZXZlciBmb3VuZCBFbnRpdHkKK05ldmVyIGZvdW5kIEVudGl0
eVJlZmVyZW5jZQorTmV2ZXIgZm91bmQgRmlsZQorTmV2ZXIgZm91bmQgRmlsZUxpc3QKK05ldmVy
IGZvdW5kIEhUTUxCbG9ja3F1b3RlRWxlbWVudAorTmV2ZXIgZm91bmQgSFRNTERhdGFHcmlkQ2Vs
bEVsZW1lbnQKK05ldmVyIGZvdW5kIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQKK05ldmVyIGZvdW5k
IEhUTUxEaXJlY3RvcnlFbGVtZW50CitOZXZlciBmb3VuZCBIVE1MRnJhbWVFbGVtZW50CitOZXZl
ciBmb3VuZCBIVE1MSGVhZGluZ0VsZW1lbnQKK05ldmVyIGZvdW5kIEhUTUxJc0luZGV4RWxlbWVu
dAorTmV2ZXIgZm91bmQgSFRNTE1lZGlhRWxlbWVudAorTmV2ZXIgZm91bmQgSFRNTE1vZEVsZW1l
bnQKK05ldmVyIGZvdW5kIEhUTUxRdW90ZUVsZW1lbnQKK05ldmVyIGZvdW5kIEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50CitOZXZlciBmb3VuZCBJbWFnZQorTmV2ZXIgZm91bmQgTWVzc2FnZUNoYW5u
ZWwKK05ldmVyIGZvdW5kIE1lc3NhZ2VQb3J0CitOZXZlciBmb3VuZCBOb2RlCitOZXZlciBmb3Vu
ZCBOb2RlRmlsdGVyCitOZXZlciBmb3VuZCBOb3RhdGlvbgorTmV2ZXIgZm91bmQgT3B0aW9uCitO
ZXZlciBmb3VuZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KK05ldmVyIGZvdW5kIFJHQkNvbG9yCitO
ZXZlciBmb3VuZCBSYW5nZQorTmV2ZXIgZm91bmQgUmVjdAorTmV2ZXIgZm91bmQgU1ZHQW5nbGUK
K05ldmVyIGZvdW5kIFNWR0NvbG9yCitOZXZlciBmb3VuZCBTVkdHcmFkaWVudEVsZW1lbnQKK05l
dmVyIGZvdW5kIFNWR0xlbmd0aAorTmV2ZXIgZm91bmQgU1ZHTWFya2VyRWxlbWVudAorTmV2ZXIg
Zm91bmQgU1ZHUGFpbnQKK05ldmVyIGZvdW5kIFNWR1BhdGhTZWcKK05ldmVyIGZvdW5kIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8KK05ldmVyIGZvdW5kIFNWR1JlbmRlcmluZ0ludGVudAorTmV2ZXIg
Zm91bmQgU1ZHVGV4dENvbnRlbnRFbGVtZW50CitOZXZlciBmb3VuZCBTVkdUZXh0UGF0aEVsZW1l
bnQKK05ldmVyIGZvdW5kIFNWR1RyYW5zZm9ybQorTmV2ZXIgZm91bmQgU1ZHVW5pdFR5cGVzCitO
ZXZlciBmb3VuZCBTdHlsZVNoZWV0CitOZXZlciBmb3VuZCBUZXh0TWV0cmljcworTmV2ZXIgZm91
bmQgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlCitOZXZlciBmb3VuZCBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlCitOZXZlciBmb3VuZCBXZWJLaXRDU1NNYXRyaXgKK05ldmVyIGZvdW5kIFdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlCitOZXZlciBmb3VuZCBXZWJLaXRQb2ludAorTmV2ZXIgZm91bmQgV29ya2Vy
CitOZXZlciBmb3VuZCBYTUxIdHRwUmVxdWVzdAorTmV2ZXIgZm91bmQgWE1MSHR0cFJlcXVlc3RV
cGxvYWQKK05ldmVyIGZvdW5kIFhNTFNlcmlhbGl6ZXIKK05ldmVyIGZvdW5kIFhQYXRoRXZhbHVh
dG9yCitOZXZlciBmb3VuZCBYUGF0aFJlc3VsdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90
b3R5cGUtaW5oZXJpdGFuY2UtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjlhYTQ0ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90
b3R5cGUtaW5oZXJpdGFuY2UtMi5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvdG90eXBlLWluaGVyaXRhbmNl
LTIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggMTUy
OTI3Ni4uZmYxNmY2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90
b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0zOTAsNyArMzkwLDcgQEAgRkFJTCBp
bm5lci5kZXZpY2VQaXhlbFJhdGlvLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KIEZBSUwgaW5uZXIuZGlzcGF0Y2hFdmVudC5pc0lubmVyIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCiBGQUlMIGlubmVyLmRpc3BhdGNoRXZlbnQuY29uc3RydWN0b3IuaXNJ
bm5lciBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogUEFTUyBpbm5lci5kb2N1bWVudC5pc0lu
bmVyIGlzIHRydWUKLUZBSUwgaW5uZXIuZG9jdW1lbnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5kb2N1bWVudC5jb25zdHJ1Y3Rvci5p
c0lubmVyIGlzIHRydWUKIEZBSUwgaW5uZXIuZmluZC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCiBGQUlMIGlubmVyLmZpbmQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgogRkFJTCBpbm5lci5mb2N1cy5pc0lubmVyIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMv
cHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJj
ZXMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNDJlYTM2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Jlc291cmNlcy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwpAQCAtMCwwICsxLDE5NSBAQAor
ZGVzY3JpcHRpb24oIk1ha2Ugc3VyZSBwcm90b3R5cGVzIGFyZSBzZXQgdXAgdXNpbmcgdGhlIHdp
bmRvdyBhIHByb3BlcnR5IGNhbWUgZnJvbSwgaW5zdGVhZCBvZiB0aGUgbGV4aWNhbCBnbG9iYWwg
b2JqZWN0LiIpCisKK3ZhciBzdWJmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdWJmcmFtZSk7Cit2YXIgaW5uZXIgPSBz
dWJmcmFtZS5jb250ZW50V2luZG93OyAvLyBDYWxsIGl0ICJpbm5lciIgdG8gbWFrZSBzaG91bGRC
ZSBvdXRwdXQgc2hvcnRlcgorCit2YXIgc2tpcHBlZFByb3BlcnRpZXMgPSBbCisgICAgLy8gVGhl
c2UgcmVhY2ggb3V0c2lkZSB0aGUgZnJhbWU6CisgICAgInBhcmVudCIsICJ0b3AiLCAib3BlbmVy
IiwgImZyYW1lRWxlbWVudCIsCisgICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgYnkgRHVtcFJlbmRl
clRyZWUKKyAgICAiR0NDb250cm9sbGVyIiwgImxheW91dFRlc3RDb250cm9sbGVyIiwKKyAgICAi
b2JqQ0NvbnRyb2xsZXIiLCAidGV4dElucHV0Q29udHJvbGxlciIsICJuYXZpZ2F0aW9uQ29udHJv
bGxlciIsCisgICAgImV2ZW50U2VuZGVyIiwgIm9iakNQbHVnaW4iLCAib2JqQ1BsdWdpbkZ1bmN0
aW9uIiwKKyAgICAiYXBwbGVTY3JpcHRDb250cm9sbGVyIiwgInBsYWluVGV4dCIsICJhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlciIsCisgICAgLy8gU2tpcCBvdXIgdGVzdCBwcm9wZXJ0eQorICAgICJp
c0lubmVyIiwKKyAgICAvLyBJZ25vcmUgZm9vQ29uc3RydWN0b3IucHJvdG90eXBlLCBmb29JbnN0
YW5jZS5fX3Byb3RvX18gaXMgbW9yZSBsaWtlbHkgdG8gZmFpbC4KKyAgICAicHJvdG90eXBlIiwK
K107CisKK3ZhciBza2lwcGVkUHJvcGVydGllc1NldCA9IHt9OworZm9yICh2YXIgaSA9IDA7IGkg
PCBza2lwcGVkUHJvcGVydGllcy5sZW5ndGg7IGkrKykKKyAgc2tpcHBlZFByb3BlcnRpZXNTZXRb
c2tpcHBlZFByb3BlcnRpZXNbaV1dID0gdHJ1ZTsKKworLy8gU3Rhc2ggYSBwcm9wZXJ0eSBvbiB0
aGUgcHJvdG90eXBlcy4KK3dpbmRvdy5PYmplY3QucHJvdG90eXBlLmlzSW5uZXIgPSBmYWxzZTsK
K2lubmVyLk9iamVjdC5wcm90b3R5cGUuaXNJbm5lciA9IHRydWU7CisKK2Z1bmN0aW9uIHByb3Bl
cnRpZXNPbk9iamVjdChvYmplY3QpIHsKKyAgICB2YXIgcHJvcGVydGllcyA9IFtdOworICAgIGZv
ciAocHJvcGVydHkgaW4gb2JqZWN0KSB7CisgICAgICAgIGlmIChza2lwcGVkUHJvcGVydGllc1Nl
dFtwcm9wZXJ0eV0pCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcHJvcGVydGllcy5w
dXNoKHByb3BlcnR5KTsKKyAgICB9CisgICAgcmV0dXJuIHByb3BlcnRpZXM7Cit9CisKK3ZhciBy
ZXN1bHRzQnlUeXBlID0ge307CisKK2Z1bmN0aW9uIGNsYXNzTmFtZUZvck9iamVjdChvYmplY3Qp
Cit7CisgICAgLy8gY2FsbCB3aWxsIHVzZSB0aGUgZ2xvYmFsIG9iamVjdCBpZiBwYXNzZWQgbnVs
bCBvciB1bmRlZmluZWQsIHNvIHNwZWNpYWwgY2FzZSB0aG9zZToKKyAgICBpZiAob2JqZWN0ID09
IG51bGwpCisgICAgICAgIHJldHVybiBudWxsOworICAgIHZhciByZXN1bHQgPSBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTsKKyAgICAvLyByZW1vdmUgJ1tvYmplY3QgJyBh
bmQgJ10nCisgICAgcmV0dXJuIHJlc3VsdC5zcGxpdCgnICcpWzFdLnNwbGl0KCddJylbMF07Cit9
CisKK2Z1bmN0aW9uIGNvbnN0cnVjdG9yTmFtZXNGb3JXaW5kb3coZ2xvYmFsT2JqZWN0KQorewor
ICAgIHZhciBuYW1lc1NldCA9IHt9OworICAgIGZvciAodmFyIHByb3BlcnR5IGluIGdsb2JhbE9i
amVjdCkgeworICAgICAgICB2YXIgdmFsdWUgPSBpbm5lcltwcm9wZXJ0eV07CisgICAgICAgIGlm
ICh2YWx1ZSA9PSBudWxsKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciB0eXBl
ID0gY2xhc3NOYW1lRm9yT2JqZWN0KHZhbHVlKTsKKyAgICAgICAgaWYgKCF0eXBlLm1hdGNoKCdD
b25zdHJ1Y3RvciQnKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBuYW1lc1NldFt0
eXBlXSA9IDE7CisgICAgfQorICAgIHJldHVybiBwcm9wZXJ0aWVzT25PYmplY3QobmFtZXNTZXQp
LnNvcnQoKTsKK30KKworZnVuY3Rpb24gbWFrZUNyYXdsT2JqZWN0KHZhbHVlLCB2YWx1ZVBhdGgp
Cit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ3ZhbHVlJyA6IHZhbHVlLAorICAgICAgICAndmFs
dWVQYXRoJyA6IHZhbHVlUGF0aAorICAgIH07Cit9CisKK2Z1bmN0aW9uIGV2YWxUb0NyYXdsT2Jq
ZWN0KHBhdGgpCit7CisgICAgcmV0dXJuIG1ha2VDcmF3bE9iamVjdChldmFsKHBhdGgpLCBwYXRo
KTsKK30KKworZnVuY3Rpb24gcHVzaFByb3BlcnR5VmFsdWVzV2l0aFVuc2VlblR5cGVzKHRvQ3Jh
d2wsIHBhcmVudE9iamVjdCwgcGFyZW50UGF0aCkKK3sKKyAgICB2YXIgcHJvcGVydGllc1RvQ3Jh
d2wgPSBwcm9wZXJ0aWVzT25PYmplY3QocGFyZW50T2JqZWN0KTsKKyAgICBwcm9wZXJ0aWVzVG9D
cmF3bC5wdXNoKCJfX3Byb3RvX18iKTsKKyAgICBwcm9wZXJ0aWVzVG9DcmF3bC5wdXNoKCJjb25z
dHJ1Y3RvciIpOworCisgICAgdmFyIHBhcmVudFR5cGUgPSBjbGFzc05hbWVGb3JPYmplY3QocGFy
ZW50T2JqZWN0KTsKKyAgICAKKyAgICBmb3IgKHZhciB4ID0gMDsgeCA8IHByb3BlcnRpZXNUb0Ny
YXdsLmxlbmd0aDsgeCsrKSB7CisgICAgICAgIHZhciBwcm9wZXJ0eSA9IHByb3BlcnRpZXNUb0Ny
YXdsW3hdOworICAgICAgICB2YXIgdmFsdWUgPSBwYXJlbnRPYmplY3RbcHJvcGVydHldOworICAg
ICAgICB2YXIgdmFsdWVQYXRoID0gcGFyZW50UGF0aCArICIuIiArIHByb3BlcnR5OworICAgICAg
ICB2YXIgdHlwZSA9IGNsYXNzTmFtZUZvck9iamVjdCh2YWx1ZSk7CisgICAgICAgIGlmICghdHlw
ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgLy8gV2UgYWxyZWFkeSBoYXZlIG90
aGVyIHRlc3RzIHdoaWNoIGNvdmVyIHdpbmRvdy5Gb28gY29uc3RydWN0b3Igb2JqZWN0cywgc28g
c2tpcCB0aGVtLgorICAgICAgICAgLy8gZm9vSW5zdGFuY2UuY29uc3RydWN0b3IgaXMgdGhlIGNh
c2Ugd2Ugd2FudCB0byBjYXRjaCBoZXJlLgorICAgICAgICBpZiAocGFyZW50VHlwZSA9PSAiRE9N
V2luZG93IiAmJiB0eXBlLm1hdGNoKCJDb25zdHJ1Y3RvciQiKSAmJiBwcm9wZXJ0eSAhPSAiY29u
c3RydWN0b3IiKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghcmVzdWx0c0J5
VHlwZVt0eXBlXSkKKyAgICAgICAgICAgIHRvQ3Jhd2wucHVzaChtYWtlQ3Jhd2xPYmplY3QodmFs
dWUsIHZhbHVlUGF0aCkpOworICAgIH0KK30KKworZnVuY3Rpb24gY3Jhd2wodG9DcmF3bCkgewor
ICAgIHdoaWxlICh0b0NyYXdsLmxlbmd0aCkgeworICAgICAgICB2YXIgY3Jhd2xUYXJnZXQgPSB0
b0NyYXdsLnNoaWZ0KCk7CisgICAgICAgIHZhciBvYmplY3QgPSBjcmF3bFRhcmdldC52YWx1ZTsK
KyAgICAgICAgdmFyIHR5cGUgPSBjbGFzc05hbWVGb3JPYmplY3Qob2JqZWN0KTsKKyAgICAgICAg
Ly8gSWYgd2UndmUgYWxyZWFkeSBzZWVuIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUsIGFuZCBpdCdz
IG5vdCBhIGNvbGxlY3Rpb24sIGlnbm9yZSBpdC4KKyAgICAgICAgaWYgKHJlc3VsdHNCeVR5cGVb
dHlwZV0gJiYgIW9iamVjdC5pdGVtICYmICFvYmplY3QubGVuZ3RoKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgcmVzdWx0c0J5VHlwZVt0eXBlXSA9IG1ha2VDcmF3bE9iamVjdChv
YmplY3QuaXNJbm5lciwgY3Jhd2xUYXJnZXQudmFsdWVQYXRoKTsKKyAgICAgICAgcHVzaFByb3Bl
cnR5VmFsdWVzV2l0aFVuc2VlblR5cGVzKHRvQ3Jhd2wsIG9iamVjdCwgY3Jhd2xUYXJnZXQudmFs
dWVQYXRoKTsKKyAgICB9Cit9CisKK3ZhciB0YWdSZXBsYWNlbWVudHMgPSB7CisgICAgJ2FuY2hv
cicgOiAnYScsCisgICAgJ2RsaXN0JyA6ICdkbCcsCisgICAgJ2ltYWdlJyA6ICdpbWcnLAorICAg
ICd1bGlzdCcgOiAndWwnLAorICAgICdvbGlzdCcgOiAnb2wnLAorICAgICd0YWJsZXJvdycgOiAn
dHInLAorICAgICd0YWJsZWNlbGwnIDogJ3RkJywKKyAgICAndGFibGVjb2wnIDogJ2NvbCcsCisg
ICAgJ3RhYmxlY2FwdGlvbicgOiAnY2FwdGlvbicsCisgICAgJ3BhcmFncmFwaCcgOiAncCcsCisg
ICAgJ2Jsb2NrcXVvdGUnIDogJ3F1b3RlJywKK30KKworZnVuY3Rpb24gdGFnTmFtZUZyb21Db25z
dHJ1Y3Rvcihjb25zdHJ1Y3Rvck5hbWUpCit7CisgICAgdmFyIGV4cGVjdGVkT2JqZWN0TmFtZSA9
IGNvbnN0cnVjdG9yTmFtZS5zcGxpdCgiQ29uc3RydWN0b3IiKVswXTsKKyAgICB2YXIgbWF0Y2gg
PSBleHBlY3RlZE9iamVjdE5hbWUubWF0Y2goL0hUTUwoXHcrKUVsZW1lbnQkLyk7CisgICAgaWYg
KCFtYXRjaCkKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgdmFyIHRhZ05hbWUgPSBtYXRjaFsx
XS50b0xvd2VyQ2FzZSgpOworICAgIGlmICh0YWdSZXBsYWNlbWVudHNbdGFnTmFtZV0pCisgICAg
ICAgIHJldHVybiB0YWdSZXBsYWNlbWVudHNbdGFnTmFtZV07CisgICAgcmV0dXJuIHRhZ05hbWU7
Cit9CisKKworLyogR2l2ZSB1cyBtb3JlIHN0dWZmIHRvIGNyYXdsICovCisvKiBJZiB5b3UncmUg
c2VlaW5nICJOZXZlciBmb3VuZC4uLiIgZXJyb3JzIGZyb20gdGhpcyB0ZXN0LCBtb3JlIHNob3Vs
ZCBiZSBhZGRlZCBoZXJlLiAqLwordmFyIGh0bWxUb0FkZCA9ICIiOwordmFyIGNvbnN0cnVjdG9y
TmFtZXMgPSBjb25zdHJ1Y3Rvck5hbWVzRm9yV2luZG93KGlubmVyKTsKK2ZvciAodmFyIHggPSAw
OyB4IDwgY29uc3RydWN0b3JOYW1lcy5sZW5ndGg7IHgrKykgeworICAgIHZhciBjb25zdHJ1Y3Rv
ck5hbWUgPSBjb25zdHJ1Y3Rvck5hbWVzW3hdOworICAgIHZhciB0YWdOYW1lID0gdGFnTmFtZUZy
b21Db25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvck5hbWUpOworICAgIGlmICghdGFnTmFtZSkKKyAgICAg
ICAgY29udGludWU7CisgICAgaWYgKHRhZ05hbWUgPT0gJ2h0bWwnKQorICAgICAgICBjb250aW51
ZTsgLy8gPGh0bWw+IGNhdXNlcyBhIHBhcnNlIGVycm9yLgorICAgIGh0bWxUb0FkZCArPSAiPCIg
KyB0YWdOYW1lICsgIj48LyIgKyB0YWdOYW1lICsgIj4iOworfQoraHRtbFRvQWRkICs9ICI8Zm9y
bSBuYW1lPSd0ZXN0Rm9ybSc+PC9mb3JtPjxmb3JtIG5hbWU9J3Rlc3RGb3JtJz48L2Zvcm0+IjsK
K2lubmVyLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaHRtbFRvQWRkOworCit2YXIgdG9DcmF3
bCA9IFsKKyAgICBldmFsVG9DcmF3bE9iamVjdCgnaW5uZXIuZG9jdW1lbnQubG9jYXRpb24nKSwg
Ly8gd2luZG93LmxvY2F0aW9uIGlzIHRlc3RlZCBieSBvdGhlciB0ZXN0cywgc28gdGVzdCBkb2N1
bWVudC5sb2NhdGlvbiBpbiB0aGlzIG9uZS4KKyAgICBldmFsVG9DcmF3bE9iamVjdCgnaW5uZXIu
ZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0nKSwgLy8gTmFtZWROb2Rlc0NvbGxlY3Rpb24gaGFzIHRo
ZSB3cm9uZyBwcm90b3R5cGUsIHRlc3QgdGhhdC4KKyAgICBldmFsVG9DcmF3bE9iamVjdCgnaW5u
ZXInKSwKKyAgICAvLyBDYW4gYWRkIG1vcmUgc3R1ZmYgdG8gY3Jhd2wgaGVyZS4KK107CitjcmF3
bCh0b0NyYXdsKTsKK3ZhciBzb3J0ZWRUeXBlcyA9IHByb3BlcnRpZXNPbk9iamVjdChyZXN1bHRz
QnlUeXBlKS5zb3J0KCk7CisKKy8vIFJ1biB0aGUgYWN0dWFsIHRlc3RzCitmb3IgKHZhciB4ID0g
MDsgeCA8IHNvcnRlZFR5cGVzLmxlbmd0aDsgeCsrKSB7CisgICAgdmFyIHR5cGUgPSBzb3J0ZWRU
eXBlc1t4XTsKKyAgICB2YXIgcmVzdWx0ID0gcmVzdWx0c0J5VHlwZVt0eXBlXTsKKyAgICBpZiAo
cmVzdWx0LnZhbHVlKQorICAgICAgICB0ZXN0UGFzc2VkKHR5cGUgKyAiIGZyb20gIiArIHJlc3Vs
dC52YWx1ZVBhdGgpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCh0eXBlICsgIiBmcm9t
ICIgKyByZXN1bHQudmFsdWVQYXRoKTsKK30KKworLy8gQWRkIGEgYnVuY2ggb2YgZmFpbHMgYXQg
dGhlIGVuZCBmb3Igc3R1ZmYgd2UgbWlzc2VkIGluIG91ciBjcmF3bC4KK2ZvciAodmFyIHggPSAw
OyB4IDwgY29uc3RydWN0b3JOYW1lcy5sZW5ndGg7IHgrKykgeworICAgIHZhciBjb25zdHJ1Y3Rv
ck5hbWUgPSBjb25zdHJ1Y3Rvck5hbWVzW3hdOworICAgIHZhciBleHBlY3RlZE9iamVjdE5hbWUg
PSBjb25zdHJ1Y3Rvck5hbWUuc3BsaXQoIkNvbnN0cnVjdG9yIilbMF07CisgICAgaWYgKGV4cGVj
dGVkT2JqZWN0TmFtZS5tYXRjaCgiRXZlbnQkIikpCisgICAgICAgIGNvbnRpbnVlOyAvLyBOb3Qg
Z29pbmcgdG8gYmUgYWJsZSB0byB0ZXN0IGV2ZW50cyB3aXRoIGEgY3Jhd2wuCisgICAgaWYgKGV4
cGVjdGVkT2JqZWN0TmFtZS5tYXRjaCgiRXhjZXB0aW9uJCIpKQorICAgICAgICBjb250aW51ZTsg
Ly8gTm90IGdvaW5nIHRvIGJlIGFibGUgdG8gdGVzdCBleGNlcHRpb25zIHdpdGggYSBjcmF3bC4K
KyAgICBpZiAoZXhwZWN0ZWRPYmplY3ROYW1lLm1hdGNoKCJFcnJvciQiKSkKKyAgICAgICAgY29u
dGludWU7IC8vIE5vdCBnb2luZyB0byBiZSBhYmxlIHRvIHRlc3QgZXJyb3JzIHdpdGggYSBjcmF3
bC4KKyAgICBpZiAoIXJlc3VsdHNCeVR5cGVbZXhwZWN0ZWRPYmplY3ROYW1lXSkKKyAgICAgICAg
ZGVidWcoIk5ldmVyIGZvdW5kICIgKyBleHBlY3RlZE9iamVjdE5hbWUpOworfQorCitkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKHN1YmZyYW1lKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDVkYTY1M2IuLmYzZmE1ZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMDktMDctMjIgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgbW9zdCBET01PYmplY3RzIGhvbGQgb250byBhIEpTRE9N
R2xvYmFsT2JqZWN0KgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjc1ODgKKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBhbG1vc3QgZW50aXJlbHkgcGx1
bWJpbmcuICBPbmx5IG9uZSBmdW5jdGlvbmFsCisgICAgICAgIGNoYW5nZSBhcyBwYXJ0IG9mIHRo
aXMgYWxsICh3aW5kb3cuZG9jdW1lbnQuY29uc3RydWN0b3IgaGFzIHRoZSBjb3JyZWN0IHByb3Rv
dHlwZSkKKyAgICAgICAgQ2hhbmdlcyBhcmUgZGV0YWlsZWQgYmVsb3cuCisKKyAgICAgICAgaW5u
ZXIuZG9jdW1lbnQuY29uc3RydWN0b3IgaXMgZml4ZWQgYmVjYXVzZSBhbGwgcHJvcGVydGllcyBv
biB0aGUgd2luZG93CisgICAgICAgIG9iamVjdCBhcmUgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0
IGdsb2JhbE9iamVjdCAoaW5zdGVhZCBvZiB0aGUgbGV4aWNhbCBvbmUpLgorICAgICAgICBTaW5j
ZSBhbGwgb2JqZWN0cyBub3cgY2FycnkgYSBnbG9iYWxPYmplY3QgcG9pbnRlciwgd2hlbiBkb2N1
bWVudCBjcmVhdGVzCisgICAgICAgIEhUTUxEb2N1bWVudENvbnN0cnVjdG9yIGl0IG5vdyBoYXMg
dGhlIHJpZ2h0IGdsb2JhbE9iamVjdCB0byB1c2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
cHJvdG90eXBlLWluaGVyaXRhbmNlLTIuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvRE9N
T2JqZWN0V2l0aFNWR0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU9iamVjdFdpdGhT
VkdDb250ZXh0OjpET01PYmplY3RXaXRoU1ZHQ29udGV4dCk6CisgICAgICAgICAgICBVcGRhdGUg
dGhlIGNvbW1lbnQgYW5kIGFkZCBhbiBpZ25vcmVkIGdsb2JhbE9iamVjdCBhcmd1bWVudC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgICAgIFBhc3MgYSBn
bG9iYWxPYmplY3QgdG8gYWxsIERPTU9iamVjdHMgZHVyaW5nIGNyZWF0aW9uLiAgQ3VycmVudGx5
IGl0J3MgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QuCisgICAgICAgICAgICBPbmNlIHRvSlMgaXMg
cGFzc2VkIGEgZ2xvYmFsT2JqZWN0IGl0IHdpbGwgYmUgdGhlIHJpZ2h0IG9uZS4KKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZURPTU9iamVjdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRE9NTm9kZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6Z2xvYmFsT2JqZWN0
KTogTWFrZXMgYmluZGluZyBnZW5lcmF0aW9uIGVhc2llci4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
aGlzdG9yeSk6IEpTSGlzdG9yeSBpcyBub3cgcGFzc2VkIGEgZ2xvYmFsT2JqZWN0LCBidXQgc2lu
Y2UgaXQgaGFzIG5vIGN1c3RvbSBjb25zdHJ1Y3RvciBpdCBkb2Vzbid0IHVzZSBpdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojpsb2NhdGlvbik6IEpTTG9jYXRpb24gaXMgbm93IHBh
c3NlZCBhIGdsb2JhbE9iamVjdCwgYnV0IHNpbmNlIGl0IGhhcyBubyBjdXN0b20gY29uc3RydWN0
b3IgaXQgZG9lc24ndCB1c2UgaXQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50Ojpsb2NhdGlvbik6IEpTTG9j
YXRpb24gaXMgbm93IHBhc3NlZCBhIGdsb2JhbE9iamVjdCwgYnV0IHNpbmNlIGl0IGhhcyBubyBj
dXN0b20gY29uc3RydWN0b3IgaXQgZG9lc24ndCB1c2UgaXQuCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNIVE1MQWxsQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQWxsQ29s
bGVjdGlvbjo6SlNIVE1MQWxsQ29sbGVjdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNI
VE1MQ29sbGVjdGlvbkN1c3RvbS5jcHA6IFJlLWZhY3RvcmluZyBuZWVkZWQgdG8gcGFzcyBnbG9i
YWxPYmplY3QgdG8gSlNOYW1lZE5vZGVzQ29sbGVjdGlvbiBjb25zdHJ1Y3Rvci4KKyAgICAgICAg
KFdlYkNvcmU6OmdldE5hbWVkSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbEhUTUxDb2xs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rpb246OmNhbkdldEl0ZW1z
Rm9yTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxDb2xsZWN0aW9uOjpuYW1lR2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rpb246Oml0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hU
TUxGb3JtRWxlbWVudDo6bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOYW1l
ZE5vZGVzQ29sbGVjdGlvbi5jcHA6CisgICAgICAgICAgICAgTm93IHBhc3NlZCBnbG9iYWxPYmpl
Y3QuICBUaGlzIGlzIHRlc3RlZCBieSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4KKyAg
ICAgICAgICAgICBUaGUgcGFzc2VkIGdsb2JhbE9iamVjdCBpcyBzdGlsbCB3cm9uZyB1bnRpbCB0
b0pTIGlzIGZpeGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNOYW1lZE5vZGVzQ29sbGVjdGlvbjo6
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOYW1lZE5v
ZGVzQ29sbGVjdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAgICAgIEFkZCBET01Db25zdHJ1Y3Rvck9iamVjdCBtaXNz
ZWQgYnkgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNDU5MzgKKyAgICAgICAgICAg
ICBUaGlzIGNsYXNzIGlzIG5vdCBjb21waWxlZCBieSBkZWZhdWx0LCBzbyBub3QgdGVzdGFibGUu
CisgICAgICAgIChXZWJDb3JlOjpKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yOjpKU1NoYXJlZFdv
cmtlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNv
bnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgICAgICAgTWFrZSBhbGwgYmluZGluZ3Mgb2JqZWN0cyBjYXJyeSBhIGdsb2Jh
bE9iamVjdCBwb2ludGVyIHVzaW5nIERPTU9iamVjdFdpdGhHbG9iYWxQb2ludGVyLgorICAgICAg
ICAgICAgIFNWRyBiaW5kaW5ncyB3aGljaCBuZWVkIGEgY29udGV4dCgpIHBvaW50ZXIgZG8gbm90
IGhhdmUgZW5vdWdoIHNwYWNlIGZvciBnbG9iYWxPYmplY3QoKSB0b28uCisgICAgICAgICAgICAg
V29ya2VyQ29udGV4dCBkb2VzIG5vdCBuZWVkIGEgZ2xvYmFsT2JqZWN0IChpdCBpcyBvbmUpLCBz
byBzcGVjaWFsIGNhc2UgaXQuCisgICAgICAgICAgICAgTWFrZSBhbGwgLmNvbnN0cnVjdG9yIGNh
bGxzIHVzZSB0aGUgc3RvcmVkIGdsb2JhbE9iamVjdCgpLiAgVGhpcyBpcyB3aGF0IGZpeGVzIHdp
bmRvdy5kb2N1bWVudC5jb25zdHJ1Y3Rvci4KKyAgICAgICAgICAgICBNYWtlIGFsbCBjb25zdHJ1
Y3RvcnMgaW5oZXJpdCBmcm9tIERPTUNvbnN0cnVjdG9yT2JqZWN0IGZvciBjb25zaXN0ZW5jeS4g
IFNpbmNlIHRoZSBhdXRvLWJvdW5kIGNvbnN0cnVjdG9ycworICAgICAgICAgICAgIG92ZXJyaWRl
IGNyZWF0ZVN0cnVjdHVyZSBhbnl3YXksIHRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIGhl
cmUuICBKdXN0IGNvbXBsZXRpbmcgd29yayBzdGFydGVkIGluIHI0NTkzOC4KKwogMjAwOS0wNy0y
MiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQGludHVkYXRhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01PYmpl
Y3RXaXRoU1ZHQ29udGV4dC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01PYmplY3RXaXRoU1ZH
Q29udGV4dC5oCmluZGV4IDMyODMwOTAuLjU3MDU0OGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0RPTU9iamVjdFdpdGhTVkdDb250ZXh0LmgKQEAgLTQwLDExICs0MCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgRE9NT2JqZWN0
V2l0aFNWR0NvbnRleHQoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlLCBTVkdF
bGVtZW50KiBjb250ZXh0KQorICAgICAgICBET01PYmplY3RXaXRoU1ZHQ29udGV4dChQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiwgU1ZHRWxl
bWVudCogY29udGV4dCkKICAgICAgICAgICAgIDogRE9NT2JqZWN0KHN0cnVjdHVyZSkKICAgICAg
ICAgICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIE5v
IHNwYWNlIHRvIHN0b3JlIHRoZSBnbG9iYWxPYmplY3Qgdy9vIGhpdHRpbmcgdGhlIENFTExfU0la
RSBsaW1pdC4KKyAgICAgICAgICAgIC8vIE5vIHNwYWNlIHRvIHN0b3JlIHRoZSBKU0RPTUdsb2Jh
bE9iamVjdCB3L28gaGl0dGluZyB0aGUgQ0VMTF9TSVpFIGxpbWl0LgogICAgICAgICB9CiAKICAg
ICBwcm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYW55IGN1c3RvbSBiaW5kaW5ncyB1c2UgbV9jb250ZXh0
IGRpcmVjdGx5LiAgTWFraW5nIHRoaXMgcHJvdGVjdGVkIHRvIHRlbXBvcmFyaWxpeSByZWR1Y2Ug
Y29kZSBjaHVybi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGUzMTcyOWQuLmM4
NjM4MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMTczLDcgKzE3Myw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQVNTRVJUKG9iamVjdCk7CiAgICAgICAgIEFT
U0VSVCghZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVj
dCkpOwogICAgICAgICAvLyBGSVhNRTogbmV3IChleGVjKSBjb3VsZCB1c2UgYSBkaWZmZXJlbnQg
Z2xvYmFsRGF0YSB0aGFuIHRoZSBnbG9iYWxEYXRhIHRoaXMgd3JhcHBlciBpcyBjYWNoZWQgb24u
Ci0gICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNz
KGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgb2JqZWN0KTsK
KyAgICAgICAgV3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3Mo
ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBkZXByZWNhdGVk
R2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBvYmplY3QpOwogICAgICAgICBjYWNoZURP
TU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QsIHdyYXBwZXIpOwogICAg
ICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9CkBAIC0xOTIsNyArMTkyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHsKICAgICAgICAgQVNTRVJUKG9iamVjdCk7CiAgICAgICAgIEFTU0VS
VCghZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCkp
OwotICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFz
cyhkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG9iamVjdCwg
Y29udGV4dCk7CisgICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3Jh
cHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwg
ZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgb2JqZWN0LCBjb250ZXh0
KTsKICAgICAgICAgY2FjaGVET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2Jq
ZWN0LCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgfQpAQCAtMjExLDcg
KzIxMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB7CiAgICAgICAgIEFTU0VSVChub2Rl
KTsKICAgICAgICAgQVNTRVJUKCFnZXRDYWNoZWRET01Ob2RlV3JhcHBlcihub2RlLT5kb2N1bWVu
dCgpLCBub2RlKSk7Ci0gICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykg
V3JhcHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVj
KSwgbm9kZSk7CisgICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3Jh
cHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwg
ZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgbm9kZSk7CiAgICAgICAg
IC8vIEZJWE1FOiBUaGUgZW50aXJlIGZ1bmN0aW9uIGNhbiBiZSByZW1vdmVkLCBvbmNlIHdlIGZp
eCBjYWNoaW5nLgogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGEgb25lLW9mZiBoYWNrIHRv
IG1ha2UgTm9kZXMgY2FjaGUgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QuCiAgICAgICAgIGNh
Y2hlRE9NTm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSwgd3JhcHBlcik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggYTFhMTYxNi4uYmM2YzFmMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNjcsNiArNjcsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSlNMaXN0ZW5lcnNNYXAmIGpzRXZlbnRM
aXN0ZW5lcnMoKTsKIAorICAgICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVh
c2llci4KKyAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJu
IHRoaXM7IH0KKwogICAgICAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOwogICAgICAg
ICBFdmVudCogY3VycmVudEV2ZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggMDkzNmYxMS4uMzNhYzdiYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTM1OSw3ICszNTksOCBAQCBKU1ZhbHVl
IEpTRE9NV2luZG93OjpoaXN0b3J5KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAoRE9N
T2JqZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxE
YXRhKCksIGhpc3RvcnkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIEpTSGlzdG9y
eSoganNIaXN0b3J5ID0gbmV3IChleGVjKSBKU0hpc3RvcnkoZ2V0RE9NU3RydWN0dXJlPEpTSGlz
dG9yeT4oZXhlYywgY29uc3RfY2FzdDxKU0RPTVdpbmRvdyo+KHRoaXMpKSwgaGlzdG9yeSk7Cisg
ICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IGNvbnN0X2Nhc3Q8SlNET01XaW5kb3cqPih0aGlzKTsK
KyAgICBKU0hpc3RvcnkqIGpzSGlzdG9yeSA9IG5ldyAoZXhlYykgSlNIaXN0b3J5KGdldERPTVN0
cnVjdHVyZTxKU0hpc3Rvcnk+KGV4ZWMsIHdpbmRvdyksIHdpbmRvdywgaGlzdG9yeSk7CiAgICAg
Y2FjaGVET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgaGlzdG9yeSwganNIaXN0
b3J5KTsKICAgICByZXR1cm4ganNIaXN0b3J5OwogfQpAQCAtMzcwLDcgKzM3MSw4IEBAIEpTVmFs
dWUgSlNET01XaW5kb3c6OmxvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAo
RE9NT2JqZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9i
YWxEYXRhKCksIGxvY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBKU0xv
Y2F0aW9uKiBqc0xvY2F0aW9uID0gbmV3IChleGVjKSBKU0xvY2F0aW9uKGdldERPTVN0cnVjdHVy
ZTxKU0xvY2F0aW9uPihleGVjLCBjb25zdF9jYXN0PEpTRE9NV2luZG93Kj4odGhpcykpLCBsb2Nh
dGlvbik7CisgICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IGNvbnN0X2Nhc3Q8SlNET01XaW5kb3cq
Pih0aGlzKTsKKyAgICBKU0xvY2F0aW9uKiBqc0xvY2F0aW9uID0gbmV3IChleGVjKSBKU0xvY2F0
aW9uKGdldERPTVN0cnVjdHVyZTxKU0xvY2F0aW9uPihleGVjLCB3aW5kb3cpLCB3aW5kb3csIGxv
Y2F0aW9uKTsKICAgICBjYWNoZURPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBs
b2NhdGlvbiwganNMb2NhdGlvbik7CiAgICAgcmV0dXJuIGpzTG9jYXRpb247CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAppbmRleCA5NTYzMjdhLi40NGVmOTdiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTU2LDggKzU2LDcg
QEAgSlNWYWx1ZSBKU0RvY3VtZW50Ojpsb2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAg
ICAgaWYgKERPTU9iamVjdCogd3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBsb2NhdGlvbikpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0g
ICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICBKU0xvY2F0aW9uKiBqc0xvY2F0aW9uID0gbmV3
IChleGVjKSBKU0xvY2F0aW9uKGdldERPTVN0cnVjdHVyZTxKU0xvY2F0aW9uPihleGVjLCB3aW5k
b3cpLCBsb2NhdGlvbik7CisgICAgSlNMb2NhdGlvbioganNMb2NhdGlvbiA9IG5ldyAoZXhlYykg
SlNMb2NhdGlvbihnZXRET01TdHJ1Y3R1cmU8SlNMb2NhdGlvbj4oZXhlYywgZ2xvYmFsT2JqZWN0
KCkpLCBnbG9iYWxPYmplY3QoKSwgbG9jYXRpb24pOwogICAgIGNhY2hlRE9NT2JqZWN0V3JhcHBl
cihleGVjLT5nbG9iYWxEYXRhKCksIGxvY2F0aW9uLCBqc0xvY2F0aW9uKTsKICAgICByZXR1cm4g
anNMb2NhdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxs
Q29sbGVjdGlvbi5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgK
aW5kZXggZDU1OWQzYi4uNzM2M2U1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxBbGxDb2xsZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxD
b2xsZWN0aW9uLmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
Y2xhc3MgSlNIVE1MQWxsQ29sbGVjdGlvbiA6IHB1YmxpYyBKU0hUTUxDb2xsZWN0aW9uIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIEpTSFRNTEFsbENvbGxlY3Rpb24oUGFzc1JlZlB0cjxKU0M6OlN0
cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0aW9u
KQotICAgICAgICAgICAgOiBKU0hUTUxDb2xsZWN0aW9uKHN0cnVjdHVyZSwgY29sbGVjdGlvbikK
KyAgICAgICAgSlNIVE1MQWxsQ29sbGVjdGlvbihQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SFRN
TENvbGxlY3Rpb24+IGNvbGxlY3Rpb24pCisgICAgICAgICAgICA6IEpTSFRNTENvbGxlY3Rpb24o
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIGNvbGxlY3Rpb24pCiAgICAgICAgIHsKICAgICAgICAg
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcApp
bmRleCA0MTAwNDY4Li4wMjc0YWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTM1LDEwICszNSwxMCBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBKU1ZhbHVlIGdldE5hbWVkSXRl
bXMoRXhlY1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogaW1wbCwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKIHsKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKLSAg
ICBpbXBsLT5uYW1lZEl0ZW1zKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7CisgICAgY29sbGVj
dGlvbi0+aW1wbCgpLT5uYW1lZEl0ZW1zKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7CiAKICAg
ICBpZiAobmFtZWRJdGVtcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwpAQCAtNDYsNyArNDYsNyBAQCBzdGF0aWMgSlNWYWx1ZSBnZXROYW1lZEl0ZW1zKEV4ZWNTdGF0
ZSogZXhlYywgSFRNTENvbGxlY3Rpb24qIGltcGwsIGNvbnN0IElkZW50aQogICAgIGlmIChuYW1l
ZEl0ZW1zLnNpemUoKSA9PSAxKQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBuYW1lZEl0ZW1z
WzBdLmdldCgpKTsKIAotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTTmFtZWROb2Rlc0NvbGxlY3Rp
b24oZXhlYywgbmFtZWRJdGVtcyk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNOYW1lZE5vZGVz
Q29sbGVjdGlvbihleGVjLCBjb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtcyk7
CiB9CiAKIC8vIEhUTUxDb2xsZWN0aW9ucyBhcmUgc3RyYW5nZSBvYmplY3RzLCB0aGV5IHN1cHBv
cnQgYm90aCBnZXQgYW5kIGNhbGwsCkBAIC01Nyw3ICs1Nyw4IEBAIHN0YXRpYyBKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEhUTUxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGZ1bmN0CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRG8gbm90IHVz
ZSB0aGlzT2JqIGhlcmUuIEl0IGNhbiBiZSB0aGUgSlNIVE1MRG9jdW1lbnQsIGluIHRoZSBkb2N1
bWVudC5mb3JtcyhpKSBjYXNlLgotICAgIEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gc3Rh
dGljX2Nhc3Q8SlNIVE1MQ29sbGVjdGlvbio+KGZ1bmN0aW9uKS0+aW1wbCgpOworICAgIEpTSFRN
TENvbGxlY3Rpb24qIGpzQ29sbGVjdGlvbiA9IHN0YXRpY19jYXN0PEpTSFRNTENvbGxlY3Rpb24q
PihmdW5jdGlvbik7CisgICAgSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24gPSBqc0NvbGxlY3Rp
b24tPmltcGwoKTsKIAogICAgIC8vIEFsc28sIGRvIHdlIG5lZWQgdGhlIFR5cGVFcnJvciB0ZXN0
IGhlcmUgPwogCkBAIC03MCw3ICs3MSw3IEBAIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbEhUTUxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1bmN0CiAgICAg
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBjb2xsZWN0aW9uLT5pdGVtKGluZGV4KSk7CiAKICAg
ICAgICAgLy8gU3VwcG9ydCBmb3IgZG9jdW1lbnQuaW1hZ2VzKCc8bmFtZT4nKSBldGMuCi0gICAg
ICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGNvbGxlY3Rpb24sIElkZW50aWZpZXIoZXhl
Yywgc3RyaW5nKSk7CisgICAgICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGpzQ29sbGVj
dGlvbiwgSWRlbnRpZmllcihleGVjLCBzdHJpbmcpKTsKICAgICB9CiAKICAgICAvLyBUaGUgc2Vj
b25kIGFyZywgaWYgc2V0LCBpcyB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gd2Ugd2FudApAQCAtOTcs
MTUgKzk4LDE3IEBAIENhbGxUeXBlIEpTSFRNTENvbGxlY3Rpb246OmdldENhbGxEYXRhKENhbGxE
YXRhJiBjYWxsRGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIEpTSFRN
TENvbGxlY3Rpb246OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2xs
ZWN0aW9uKiB0aGlzT2JqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpT
SFRNTENvbGxlY3Rpb246OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1MQ29sbGVj
dGlvbiogY29sbGVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAg
IHJldHVybiAhZ2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUpLmlzVW5k
ZWZpbmVkKCk7CisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CisgICAgY29s
bGVjdGlvbi0+bmFtZWRJdGVtcyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOworICAgIHJldHVy
biAhbmFtZWRJdGVtcy5pc0VtcHR5KCk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6
bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTSFRNTENvbGxlY3Rpb24qIHRo
aXNPYmogPSBzdGF0aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90
QmFzZSgpKSk7Ci0gICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpc09iai0+aW1wbCgp
LCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXNPYmos
IHByb3BlcnR5TmFtZSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6aXRlbShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCkBAIC0xMTQsMTIgKzExNywxMiBAQCBK
U1ZhbHVlIEpTSFRNTENvbGxlY3Rpb246Oml0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogICAgIHVpbnQzMl90IGluZGV4ID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVj
KS50b1VJbnQzMigmb2ssIGZhbHNlKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGltcGwoKS0+aXRlbShpbmRleCkpOwotICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4
ZWMsIGltcGwoKSwgSWRlbnRpZmllcihleGVjLCBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpKSk7
CisgICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpcywgSWRlbnRpZmllcihleGVjLCBh
cmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlv
bjo6bmFtZWRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAg
ICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCBpbXBsKCksIElkZW50aWZpZXIoZXhlYywgYXJn
cy5hdCgwKS50b1N0cmluZyhleGVjKSkpOworICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMs
IHRoaXMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkpOwogfQog
CiBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlv
bikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAK
aW5kZXggZTViNDI4YS4uZmZhMmQ1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQ1LDcgKzQ1LDggQEAgYm9vbCBKU0hUTUxGb3Jt
RWxlbWVudDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSwgY28KIAogSlNWYWx1ZSBKU0hUTUxGb3JtRWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlT
bG90JiBzbG90KQogewotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IHN0YXRpY19jYXN0PEhU
TUxGb3JtRWxlbWVudCo+KHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdChzbG90
LnNsb3RCYXNlKCkpKS0+aW1wbCgpKTsKKyAgICBKU0hUTUxFbGVtZW50KiBqc0Zvcm0gPSBzdGF0
aWNfY2FzdDxKU0hUTUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwor
ICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+
KGpzRm9ybS0+aW1wbCgpKTsKICAgICAKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJ
dGVtczsKICAgICBmb3JtLT5nZXROYW1lZEVsZW1lbnRzKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVt
cyk7CkBAIC01Myw3ICs1NCw3IEBAIEpTVmFsdWUgSlNIVE1MRm9ybUVsZW1lbnQ6Om5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgaWYgKG5h
bWVkSXRlbXMuc2l6ZSgpID09IDEpCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5hbWVkSXRl
bXNbMF0uZ2V0KCkpOwogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA+IDEpIAotICAgICAgICBy
ZXR1cm4gbmV3IChleGVjKSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKGV4ZWMsIG5hbWVkSXRlbXMp
OworICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKGV4ZWMs
IGpzRm9ybS0+Z2xvYmFsT2JqZWN0KCksIG5hbWVkSXRlbXMpOwogICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rl
c0NvbGxlY3Rpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0
aW9uLmNwcAppbmRleCBhZjE5OTViLi4zMzIzZWUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKQEAgLTQyLDEwICs0Miw4IEBAIGNvbnN0IENs
YXNzSW5mbyBKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpzX2luZm8gPSB7ICJDb2xsZWN0aW9uIiwg
MCwgMCwgMCB9OwogLy8gU3VjaCBhIGNvbGxlY3Rpb24gaXMgdXN1YWxseSB2ZXJ5IHNob3J0LWxp
dmVkLCBpdCBvbmx5IGV4aXN0cwogLy8gZm9yIGNvbnN0cnVjdHMgbGlrZSBkb2N1bWVudC5mb3Jt
cy48bmFtZT5bMV0sCiAvLyBzbyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtIHRoYXQgaXQncyBz
dG9yaW5nIGFsbCB0aGUgbm9kZXMgKHdpdGggdGhlIHNhbWUgbmFtZSkuIChEYXZpZCkKLUpTTmFt
ZWROb2Rlc0NvbGxlY3Rpb246OkpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5vZGVzKQotICAgIC8vIEZJWE1FOiBkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QKLSAgICAvLyB3ZSBzaG91bGQgdXNlIHRoZSBnbG9iYWwgb2JqZWN0IGZy
b20gdGhlIG5vZGVzLgotICAgIDogRE9NT2JqZWN0KGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbj4oZXhlYykpCitKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpK
U05hbWVkTm9kZXNDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBub2RlcykKKyAgICA6
IERPTU9iamVjdFdpdGhHbG9iYWxQb2ludGVyKGdldERPTVN0cnVjdHVyZTxKU05hbWVkTm9kZXND
b2xsZWN0aW9uPihleGVjLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QpCiAgICAgLCBtX25v
ZGVzKG5ldyBWZWN0b3I8UmVmUHRyPE5vZGU+ID4obm9kZXMpKQogewogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmggYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uaAppbmRleCAzYmJjMTAyLi5jZDZjMmNi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24u
aAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uaApAQCAt
MzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAvLyBJbnRlcm5hbCBjbGFz
cywgdXNlZCBmb3IgdGhlIGNvbGxlY3Rpb24gcmV0dXJuIGJ5IGUuZy4gZG9jdW1lbnQuZm9ybXMu
bXlpbnB1dAogICAgIC8vIHdoZW4gbXVsdGlwbGUgbm9kZXMgaGF2ZSB0aGUgc2FtZSBuYW1lLgot
ICAgIGNsYXNzIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24gOiBwdWJsaWMgRE9NT2JqZWN0IHsKKyAg
ICBjbGFzcyBKU05hbWVkTm9kZXNDb2xsZWN0aW9uIDogcHVibGljIERPTU9iamVjdFdpdGhHbG9i
YWxQb2ludGVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24o
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKTsKKyAgICAgICAg
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+Jik7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwCmluZGV4IGVhZDE3ZGQuLmEzMTIyMjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmNwcApA
QCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBDbGFzc0luZm8gSlNT
aGFyZWRXb3JrZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiU2hhcmVkV29ya2VyQ29uc3RydWN0
b3IiLCAwLCAwLCAwIH07CiAKIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OkpTU2hhcmVkV29y
a2VyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQotICAgIDogRE9NT2JqZWN0KEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNv
bnN0cnVjdG9yT2JqZWN0KEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKIHsKICAgICBwdXREaXJlY3QoZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNTaGFyZWRXb3JrZXJQcm90b3R5cGU6OnNl
bGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CiAgICAgLy8gSG9zdCBmdW5jdGlvbnMgaGF2
ZSBhIGxlbmd0aCBwcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJn
dW1lbnRzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNv
bnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0
b3IuaAppbmRleCBiZThiMmI0Li44N2JhYTM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yIDogcHVi
bGljIERPTU9iamVjdCB7CisgICAgY2xhc3MgSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvciA6IHB1
YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiAgICAgcHVibGljOgogICAgICAgICBKU1NoYXJl
ZFdvcmtlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMjgw
ZWNmYS4uZmExYTdjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC0xMjAsOCArMTIwLDEzIEBAIHN1YiBHZXRQYXJlbnRDbGFzc05hbWUKIAogICAg
IHJldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBp
ZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKICAgICBp
ZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDApIHsKKyAgICAgICAgIyBGSVhNRTogU1ZHIHR5
cGVzIHJlcXVpcmluZyBhIGNvbnRleHQoKSBwb2ludGVyIGRvIG5vdCBoYXZlIGVub3VnaAorICAg
ICAgICAjIHNwYWNlIHRvIGhvbGQgYSBnbG9iYWxPYmplY3QgcG9pbnRlciBhcyB3ZWxsIHcvbyBo
aXR0aW5nIHRoZSBDRUxMX1NJWkUgbGltaXQuCisgICAgICAgICMgVGhpcyBjb3VsZCBiZSBmaXhl
ZCBieSBtb3ZpbmcgY29udGV4dCgpIGludG8gdGhlIHZhcmlvdXMgaW1wbCgpIGNsYXNzZXMuCisg
ICAgICAgICMgVW50aWwgdGhlbiwgd2Ugc3BlY2lhbCBjYXNlIHRoZXNlIFNWRyBiaW5kaW5ncyBh
bmQgYWxsb3cgdGhlbSB0byByZXR1cm4KKyAgICAgICAgIyB0aGUgd3JvbmcgcHJvdG90eXBlcyBh
bmQgY29uc3RydWN0b3JzIGR1cmluZyB4LWZyYW1lIGFjY2Vzcy4gIFNlZSBidWcgMjcwODguCiAg
ICAgICAgIHJldHVybiAiRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQiIGlmIElzU1ZHVHlwZU5lZWRp
bmdDb250ZXh0UGFyYW1ldGVyKCRkYXRhTm9kZS0+bmFtZSk7Ci0gICAgICAgIHJldHVybiAiRE9N
T2JqZWN0IjsKKyAgICAgICAgcmV0dXJuICJET01PYmplY3RXaXRoR2xvYmFsUG9pbnRlciI7CiAg
ICAgfQogICAgIHJldHVybiAiSlMiIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRh
Tm9kZS0+cGFyZW50cygwKSk7CiB9CkBAIC00MjcsMTAgKzQzMiwxMiBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAjIENvbnN0cnVjdG9yCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01X
aW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQ
YXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+LCBKU0RPTVdp
bmRvd1NoZWxsKik7XG4iKTsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2Vy
Q29udGV4dCIpIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1l
KFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4pO1xuIik7
CiAgICAgfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFz
c05hbWUpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQ
YXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+LCBTVkdFbGVt
ZW50KiBjb250ZXh0KTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRj
bGFzc05hbWUoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4sIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
UGFzc1JlZlB0cjwkaW1wbFR5cGU+LCBTVkdFbGVtZW50KiBjb250ZXh0KTtcbiIpOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQYXNz
UmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoUGFzc1JlZlB0cjxKU0M6
OlN0cnVjdHVyZT4sIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtc
biIpOwogICAgIH0KIAogICAgICMgRGVzdHJ1Y3RvcgpAQCAtOTc1LDEzICs5ODIsMTcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCJKU0RP
TVdpbmRvd1NoZWxsIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9
OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8
JGltcGxUeXBlPiBpbXBsLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBpbXBs
LCBzaGVsbClcbiIpOworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250
ZXh0IikgeworICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoIldvcmtlckNvbnRleHQiKTsKKyAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoUGFzc1Jl
ZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwpXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0
cnVjdHVyZSwgaW1wbClcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG15ICRjb250ZXh0QXJn
ID0gJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiI7Ci0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsJGNvbnRl
eHRBcmcpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRj
bGFzc05hbWUoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwkY29udGV4dEFyZylc
biIpOwogICAgICAgICBpZiAoJGhhc1BhcmVudCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgaW1wbCIgLiAoJHBhcmVu
dE5lZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0LCBpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4
dCIgOiAiIikgLiAiKVxuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlIiAuICgkbmVlZHNT
VkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIiKSAuICIpXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTExODAsOSArMTE5MSwxNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkdlbmVyYXRlQ29uc3RydWN0b3IifSkgewogICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1
Y3RvckZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7
CiAKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtjb25zdHJ1
Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29u
c3QgUHJvcGVydHlTbG90JilcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4
ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYykpO1xuIik7CisgICAg
ICAgICAgICAgICAgaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbnRlcmZh
Y2VOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBTVkcgYmluZGluZ3Mgd2l0
aCBhIGNvbnRleHQgcG9pbnRlciBoYXZlIG5vIHNwYWNlIHRvIHN0b3JlIGEgZ2xvYmFsT2JqZWN0
CisgICAgICAgICAgICAgICAgICAgICMgc28gd2UgdXNlIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RG
b3JQcm90b3R5cGUgaW5zdGVhZC4KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgVU5VU0VEX1BBUkFNKHNsb3QpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9y
KGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYykpO1xuIik7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDwkY2xhc3NO
YW1lKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6Z2V0Q29uc3Ry
dWN0b3IoZXhlYywgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtMjAxMCwxMCArMjAyOSwxMCBAQCBzdWIgY29uc3RydWN0
b3JGb3IKICAgICBteSAkY2FuQ29uc3RydWN0ID0gc2hpZnQ7CiAKIG15ICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOwotY2xhc3MgJHtjbGFzc05hbWV9Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NT2Jq
ZWN0IHsKK2NsYXNzICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVj
dG9yT2JqZWN0IHsKIHB1YmxpYzoKICAgICAke2NsYXNzTmFtZX1Db25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgICAgIDogRE9N
T2JqZWN0KCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2Jq
ZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3Qo
JHtjbGFzc05hbWV9Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcHV0RGlyZWN0
KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9OjpzZWxm
KGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAgIH0=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33366</attachid>
            <date>2009-07-23 13:43:39 -0700</date>
            <delta_ts>2009-07-23 23:32:29 -0700</delta_ts>
            <desc>Just the code changes</desc>
            <filename>bug-27588-20090723134339.patch</filename>
            <type>text/plain</type>
            <size>27563</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNjczM2M2Li44ZGI0ZmZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDct
MjIgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgbW9zdCBET01PYmplY3RzIGhvbGQgb250
byBhIEpTRE9NR2xvYmFsT2JqZWN0KgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc1ODgKKworICAgICAgICBpbm5lci5kb2N1bWVudC5jb25zdHJ1Y3Rv
ciBpcyBmaXhlZCBiZWNhdXNlIGFsbCBwcm9wZXJ0aWVzIG9uIHRoZSB3aW5kb3cKKyAgICAgICAg
b2JqZWN0IGFyZSBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgZ2xvYmFsT2JqZWN0IChpbnN0ZWFk
IG9mIHRoZSBsZXhpY2FsIG9uZSkuCisgICAgICAgIFNpbmNlIGFsbCBvYmplY3RzIG5vdyBjYXJy
eSBhIGdsb2JhbE9iamVjdCBwb2ludGVyLCB3aGVuIGRvY3VtZW50IGNyZWF0ZXMKKyAgICAgICAg
SFRNTERvY3VtZW50Q29uc3RydWN0b3IgaXQgbm93IGhhcyB0aGUgcmlnaHQgZ2xvYmFsT2JqZWN0
IHRvIHVzZS4KKworICAgICAgICAqIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhw
ZWN0ZWQudHh0OgorCiAyMDA5LTA3LTIzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dApp
bmRleCAzNTcyYzdjLi5hZWFiMmEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CkBAIC03OCw3ICs3OCw3
IEBAIEZBSUwgSFRNTERpdkVsZW1lbnQgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVnaW5zLjAucHJl
dmlvdXNFbGVtZW50U2libGluZwogRkFJTCBIVE1MRGl2RWxlbWVudENvbnN0cnVjdG9yIGZyb20g
aW5uZXIuZG9jdW1lbnQucGx1Z2lucy4wLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuY29uc3RydWN0
b3IKIEZBSUwgSFRNTERpdkVsZW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5wbHVn
aW5zLjAucHJldmlvdXNFbGVtZW50U2libGluZy5fX3Byb3RvX18KIFBBU1MgSFRNTERvY3VtZW50
IGZyb20gaW5uZXIuZG9jdW1lbnQKLUZBSUwgSFRNTERvY3VtZW50Q29uc3RydWN0b3IgZnJvbSBp
bm5lci5kb2N1bWVudC5jb25zdHJ1Y3RvcgorUEFTUyBIVE1MRG9jdW1lbnRDb25zdHJ1Y3RvciBm
cm9tIGlubmVyLmRvY3VtZW50LmNvbnN0cnVjdG9yCiBQQVNTIEhUTUxEb2N1bWVudFByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50Ll9fcHJvdG9fXwogRkFJTCBIVE1MRWxlbWVudCBmcm9tIGlu
bmVyLmRvY3VtZW50LnNjcmlwdHMuMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nCiBGQUlMIEhUTUxF
bGVtZW50Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5zY3JpcHRzLjAucHJldmlvdXNF
bGVtZW50U2libGluZy5jb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggMTUyOTI3Ni4uZmYx
NmY2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRh
bmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0zOTAsNyArMzkwLDcgQEAgRkFJTCBpbm5lci5kZXZp
Y2VQaXhlbFJhdGlvLmNvbnN0cnVjdG9yLmlzSW5uZXIgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KIEZBSUwgaW5uZXIuZGlzcGF0Y2hFdmVudC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCiBGQUlMIGlubmVyLmRpc3BhdGNoRXZlbnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgogUEFTUyBpbm5lci5kb2N1bWVudC5pc0lubmVyIGlzIHRy
dWUKLUZBSUwgaW5uZXIuZG9jdW1lbnQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorUEFTUyBpbm5lci5kb2N1bWVudC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlz
IHRydWUKIEZBSUwgaW5uZXIuZmluZC5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
CiBGQUlMIGlubmVyLmZpbmQuY29uc3RydWN0b3IuaXNJbm5lciBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgogRkFJTCBpbm5lci5mb2N1cy5pc0lubmVyIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDg5Nzc2MGYuLmQzMmFhODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMDktMDctMjIgIEVyaWMgU2Vp
ZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgbW9zdCBET01PYmplY3RzIGhvbGQgb250byBhIEpTRE9NR2xv
YmFsT2JqZWN0KgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc1ODgKKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBhbG1vc3QgZW50aXJlbHkgcGx1bWJp
bmcuICBPbmx5IG9uZSBmdW5jdGlvbmFsCisgICAgICAgIGNoYW5nZSBhcyBwYXJ0IG9mIHRoaXMg
YWxsICh3aW5kb3cuZG9jdW1lbnQuY29uc3RydWN0b3IgaGFzIHRoZSBjb3JyZWN0IHByb3RvdHlw
ZSkKKyAgICAgICAgQ2hhbmdlcyBhcmUgZGV0YWlsZWQgYmVsb3cuCisKKyAgICAgICAgaW5uZXIu
ZG9jdW1lbnQuY29uc3RydWN0b3IgaXMgZml4ZWQgYmVjYXVzZSBhbGwgcHJvcGVydGllcyBvbiB0
aGUgd2luZG93CisgICAgICAgIG9iamVjdCBhcmUgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGds
b2JhbE9iamVjdCAoaW5zdGVhZCBvZiB0aGUgbGV4aWNhbCBvbmUpLgorICAgICAgICBTaW5jZSBh
bGwgb2JqZWN0cyBub3cgY2FycnkgYSBnbG9iYWxPYmplY3QgcG9pbnRlciwgd2hlbiBkb2N1bWVu
dCBjcmVhdGVzCisgICAgICAgIEhUTUxEb2N1bWVudENvbnN0cnVjdG9yIGl0IG5vdyBoYXMgdGhl
IHJpZ2h0IGdsb2JhbE9iamVjdCB0byB1c2UuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgICAg
ZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLmh0bWwKKyAgICAgICAgICBmYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtMi5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ET01P
YmplY3RXaXRoU1ZHQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NT2JqZWN0V2l0aFNW
R0NvbnRleHQ6OkRPTU9iamVjdFdpdGhTVkdDb250ZXh0KToKKyAgICAgICAgICAgIFVwZGF0ZSB0
aGUgY29tbWVudCBhbmQgYWRkIGFuIGlnbm9yZWQgZ2xvYmFsT2JqZWN0IGFyZ3VtZW50LgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAgICAgUGFzcyBhIGds
b2JhbE9iamVjdCB0byBhbGwgRE9NT2JqZWN0cyBkdXJpbmcgY3JlYXRpb24uICBDdXJyZW50bHkg
aXQncyB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgICAgIE9uY2UgdG9KUyBpcyBw
YXNzZWQgYSBnbG9iYWxPYmplY3QgaXQgd2lsbCBiZSB0aGUgcmlnaHQgb25lLgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRE9NT2JqZWN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVET01Ob2RlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0OjpnbG9iYWxPYmplY3Qp
OiBNYWtlcyBiaW5kaW5nIGdlbmVyYXRpb24gZWFzaWVyLgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojpo
aXN0b3J5KTogSlNIaXN0b3J5IGlzIG5vdyBwYXNzZWQgYSBnbG9iYWxPYmplY3QsIGJ1dCBzaW5j
ZSBpdCBoYXMgbm8gY3VzdG9tIGNvbnN0cnVjdG9yIGl0IGRvZXNuJ3QgdXNlIGl0LgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmxvY2F0aW9uKTogSlNMb2NhdGlvbiBpcyBub3cgcGFz
c2VkIGEgZ2xvYmFsT2JqZWN0LCBidXQgc2luY2UgaXQgaGFzIG5vIGN1c3RvbSBjb25zdHJ1Y3Rv
ciBpdCBkb2Vzbid0IHVzZSBpdC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmxvY2F0aW9uKTogSlNMb2Nh
dGlvbiBpcyBub3cgcGFzc2VkIGEgZ2xvYmFsT2JqZWN0LCBidXQgc2luY2UgaXQgaGFzIG5vIGN1
c3RvbSBjb25zdHJ1Y3RvciBpdCBkb2Vzbid0IHVzZSBpdC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0hUTUxBbGxDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxBbGxDb2xs
ZWN0aW9uOjpKU0hUTUxBbGxDb2xsZWN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcDogUmUtZmFjdG9yaW5nIG5lZWRlZCB0byBwYXNzIGdsb2Jh
bE9iamVjdCB0byBKU05hbWVkTm9kZXNDb2xsZWN0aW9uIGNvbnN0cnVjdG9yLgorICAgICAgICAo
V2ViQ29yZTo6Z2V0TmFtZWRJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpjYWxsSFRNTENvbGxl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQ29sbGVjdGlvbjo6Y2FuR2V0SXRlbXNG
b3JOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rpb246Om5hbWVHZXR0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQ29sbGVjdGlvbjo6aXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRN
TEZvcm1FbGVtZW50OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05hbWVk
Tm9kZXNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgICAgICBOb3cgcGFzc2VkIGdsb2JhbE9iamVj
dC4gIFRoaXMgaXMgdGVzdGVkIGJ5IGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLgorICAg
ICAgICAgICAgIFRoZSBwYXNzZWQgZ2xvYmFsT2JqZWN0IGlzIHN0aWxsIHdyb25nIHVudGlsIHRv
SlMgaXMgZml4ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpK
U05hbWVkTm9kZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZXNDb2xsZWN0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICAgICAgQWRkIERPTUNvbnN0cnVjdG9yT2JqZWN0IG1pc3Nl
ZCBieSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC80NTkzOAorICAgICAgICAgICAg
IFRoaXMgY2xhc3MgaXMgbm90IGNvbXBpbGVkIGJ5IGRlZmF1bHQsIHNvIG5vdCB0ZXN0YWJsZS4K
KyAgICAgICAgKFdlYkNvcmU6OkpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OkpTU2hhcmVkV29y
a2VyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgICAgICBNYWtlIGFsbCBiaW5kaW5ncyBvYmplY3RzIGNhcnJ5IGEgZ2xvYmFs
T2JqZWN0IHBvaW50ZXIgdXNpbmcgRE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXIuCisgICAgICAg
ICAgICAgU1ZHIGJpbmRpbmdzIHdoaWNoIG5lZWQgYSBjb250ZXh0KCkgcG9pbnRlciBkbyBub3Qg
aGF2ZSBlbm91Z2ggc3BhY2UgZm9yIGdsb2JhbE9iamVjdCgpIHRvby4KKyAgICAgICAgICAgICBX
b3JrZXJDb250ZXh0IGRvZXMgbm90IG5lZWQgYSBnbG9iYWxPYmplY3QgKGl0IGlzIG9uZSksIHNv
IHNwZWNpYWwgY2FzZSBpdC4KKyAgICAgICAgICAgICBNYWtlIGFsbCAuY29uc3RydWN0b3IgY2Fs
bHMgdXNlIHRoZSBzdG9yZWQgZ2xvYmFsT2JqZWN0KCkuICBUaGlzIGlzIHdoYXQgZml4ZXMgd2lu
ZG93LmRvY3VtZW50LmNvbnN0cnVjdG9yLgorICAgICAgICAgICAgIE1ha2UgYWxsIGNvbnN0cnVj
dG9ycyBpbmhlcml0IGZyb20gRE9NQ29uc3RydWN0b3JPYmplY3QgZm9yIGNvbnNpc3RlbmN5LiAg
U2luY2UgdGhlIGF1dG8tYm91bmQgY29uc3RydWN0b3JzCisgICAgICAgICAgICAgb3ZlcnJpZGUg
Y3JlYXRlU3RydWN0dXJlIGFueXdheSwgdGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVy
ZS4gIEp1c3QgY29tcGxldGluZyB3b3JrIHN0YXJ0ZWQgaW4gcjQ1OTM4LgorCiAyMDA5LTA3LTIz
ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01PYmplY3RX
aXRoU1ZHQ29udGV4dC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01PYmplY3RXaXRoU1ZHQ29u
dGV4dC5oCmluZGV4IDMyODMwOTAuLjU3MDU0OGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0RPTU9iamVjdFdpdGhTVkdDb250ZXh0LmgKQEAgLTQwLDExICs0MCwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgRE9NT2JqZWN0V2l0
aFNWR0NvbnRleHQoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlLCBTVkdFbGVt
ZW50KiBjb250ZXh0KQorICAgICAgICBET01PYmplY3RXaXRoU1ZHQ29udGV4dChQYXNzUmVmUHRy
PEpTQzo6U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiwgU1ZHRWxlbWVu
dCogY29udGV4dCkKICAgICAgICAgICAgIDogRE9NT2JqZWN0KHN0cnVjdHVyZSkKICAgICAgICAg
ICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIE5vIHNw
YWNlIHRvIHN0b3JlIHRoZSBnbG9iYWxPYmplY3Qgdy9vIGhpdHRpbmcgdGhlIENFTExfU0laRSBs
aW1pdC4KKyAgICAgICAgICAgIC8vIE5vIHNwYWNlIHRvIHN0b3JlIHRoZSBKU0RPTUdsb2JhbE9i
amVjdCB3L28gaGl0dGluZyB0aGUgQ0VMTF9TSVpFIGxpbWl0LgogICAgICAgICB9CiAKICAgICBw
cm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYW55IGN1c3RvbSBiaW5kaW5ncyB1c2UgbV9jb250ZXh0IGRp
cmVjdGx5LiAgTWFraW5nIHRoaXMgcHJvdGVjdGVkIHRvIHRlbXBvcmFyaWxpeSByZWR1Y2UgY29k
ZSBjaHVybi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGUzMTcyOWQuLmM4NjM4
MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMTczLDcgKzE3Myw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQVNTRVJUKG9iamVjdCk7CiAgICAgICAgIEFTU0VS
VCghZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCkp
OwogICAgICAgICAvLyBGSVhNRTogbmV3IChleGVjKSBjb3VsZCB1c2UgYSBkaWZmZXJlbnQgZ2xv
YmFsRGF0YSB0aGFuIHRoZSBnbG9iYWxEYXRhIHRoaXMgd3JhcHBlciBpcyBjYWNoZWQgb24uCi0g
ICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgb2JqZWN0KTsKKyAg
ICAgICAgV3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVw
cmVjYXRlZEdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBkZXByZWNhdGVkR2xv
YmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBvYmplY3QpOwogICAgICAgICBjYWNoZURPTU9i
amVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QsIHdyYXBwZXIpOwogICAgICAg
ICByZXR1cm4gd3JhcHBlcjsKICAgICB9CkBAIC0xOTIsNyArMTkyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIHsKICAgICAgICAgQVNTRVJUKG9iamVjdCk7CiAgICAgICAgIEFTU0VSVCgh
Z2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCkpOwot
ICAgICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG9iamVjdCwgY29u
dGV4dCk7CisgICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBl
ckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgb2JqZWN0LCBjb250ZXh0KTsK
ICAgICAgICAgY2FjaGVET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0
LCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgfQpAQCAtMjExLDcgKzIx
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlKTsK
ICAgICAgICAgQVNTRVJUKCFnZXRDYWNoZWRET01Ob2RlV3JhcHBlcihub2RlLT5kb2N1bWVudCgp
LCBub2RlKSk7Ci0gICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3Jh
cHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwg
bm9kZSk7CisgICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBl
ckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgbm9kZSk7CiAgICAgICAgIC8v
IEZJWE1FOiBUaGUgZW50aXJlIGZ1bmN0aW9uIGNhbiBiZSByZW1vdmVkLCBvbmNlIHdlIGZpeCBj
YWNoaW5nLgogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGEgb25lLW9mZiBoYWNrIHRvIG1h
a2UgTm9kZXMgY2FjaGUgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QuCiAgICAgICAgIGNhY2hl
RE9NTm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSwgd3JhcHBlcik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggYTFhMTYxNi4uYmM2YzFmMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNjcsNiArNjcsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSlNMaXN0ZW5lcnNNYXAmIGpzRXZlbnRMaXN0
ZW5lcnMoKTsKIAorICAgICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2ll
ci4KKyAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHRo
aXM7IH0KKwogICAgICAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOwogICAgICAgICBF
dmVudCogY3VycmVudEV2ZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKaW5kZXggMDkzNmYxMS4uMzNhYzdiYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTM1OSw3ICszNTksOCBAQCBKU1ZhbHVlIEpT
RE9NV2luZG93OjpoaXN0b3J5KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAoRE9NT2Jq
ZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRh
KCksIGhpc3RvcnkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIEpTSGlzdG9yeSog
anNIaXN0b3J5ID0gbmV3IChleGVjKSBKU0hpc3RvcnkoZ2V0RE9NU3RydWN0dXJlPEpTSGlzdG9y
eT4oZXhlYywgY29uc3RfY2FzdDxKU0RPTVdpbmRvdyo+KHRoaXMpKSwgaGlzdG9yeSk7CisgICAg
SlNET01XaW5kb3cqIHdpbmRvdyA9IGNvbnN0X2Nhc3Q8SlNET01XaW5kb3cqPih0aGlzKTsKKyAg
ICBKU0hpc3RvcnkqIGpzSGlzdG9yeSA9IG5ldyAoZXhlYykgSlNIaXN0b3J5KGdldERPTVN0cnVj
dHVyZTxKU0hpc3Rvcnk+KGV4ZWMsIHdpbmRvdyksIHdpbmRvdywgaGlzdG9yeSk7CiAgICAgY2Fj
aGVET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgaGlzdG9yeSwganNIaXN0b3J5
KTsKICAgICByZXR1cm4ganNIaXN0b3J5OwogfQpAQCAtMzcwLDcgKzM3MSw4IEBAIEpTVmFsdWUg
SlNET01XaW5kb3c6OmxvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAoRE9N
T2JqZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxE
YXRhKCksIGxvY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBKU0xvY2F0
aW9uKiBqc0xvY2F0aW9uID0gbmV3IChleGVjKSBKU0xvY2F0aW9uKGdldERPTVN0cnVjdHVyZTxK
U0xvY2F0aW9uPihleGVjLCBjb25zdF9jYXN0PEpTRE9NV2luZG93Kj4odGhpcykpLCBsb2NhdGlv
bik7CisgICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IGNvbnN0X2Nhc3Q8SlNET01XaW5kb3cqPih0
aGlzKTsKKyAgICBKU0xvY2F0aW9uKiBqc0xvY2F0aW9uID0gbmV3IChleGVjKSBKU0xvY2F0aW9u
KGdldERPTVN0cnVjdHVyZTxKU0xvY2F0aW9uPihleGVjLCB3aW5kb3cpLCB3aW5kb3csIGxvY2F0
aW9uKTsKICAgICBjYWNoZURPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBsb2Nh
dGlvbiwganNMb2NhdGlvbik7CiAgICAgcmV0dXJuIGpzTG9jYXRpb247CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAppbmRleCA5NTYzMjdhLi40NGVmOTdiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTU2LDggKzU2LDcgQEAg
SlNWYWx1ZSBKU0RvY3VtZW50Ojpsb2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAg
aWYgKERPTU9iamVjdCogd3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBsb2NhdGlvbikpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAg
SlNET01XaW5kb3cqIHdpbmRvdyA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICBKU0xvY2F0aW9uKiBqc0xvY2F0aW9uID0gbmV3IChl
eGVjKSBKU0xvY2F0aW9uKGdldERPTVN0cnVjdHVyZTxKU0xvY2F0aW9uPihleGVjLCB3aW5kb3cp
LCBsb2NhdGlvbik7CisgICAgSlNMb2NhdGlvbioganNMb2NhdGlvbiA9IG5ldyAoZXhlYykgSlNM
b2NhdGlvbihnZXRET01TdHJ1Y3R1cmU8SlNMb2NhdGlvbj4oZXhlYywgZ2xvYmFsT2JqZWN0KCkp
LCBnbG9iYWxPYmplY3QoKSwgbG9jYXRpb24pOwogICAgIGNhY2hlRE9NT2JqZWN0V3JhcHBlcihl
eGVjLT5nbG9iYWxEYXRhKCksIGxvY2F0aW9uLCBqc0xvY2F0aW9uKTsKICAgICByZXR1cm4ganNM
b2NhdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29s
bGVjdGlvbi5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgKaW5k
ZXggZDU1OWQzYi4uNzM2M2U1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxBbGxDb2xsZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xs
ZWN0aW9uLmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgSlNIVE1MQWxsQ29sbGVjdGlvbiA6IHB1YmxpYyBKU0hUTUxDb2xsZWN0aW9uIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIEpTSFRNTEFsbENvbGxlY3Rpb24oUGFzc1JlZlB0cjxKU0M6OlN0cnVj
dHVyZT4gc3RydWN0dXJlLCBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0aW9uKQot
ICAgICAgICAgICAgOiBKU0hUTUxDb2xsZWN0aW9uKHN0cnVjdHVyZSwgY29sbGVjdGlvbikKKyAg
ICAgICAgSlNIVE1MQWxsQ29sbGVjdGlvbihQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IGNvbGxlY3Rpb24pCisgICAgICAgICAgICA6IEpTSFRNTENvbGxlY3Rpb24oc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QsIGNvbGxlY3Rpb24pCiAgICAgICAgIHsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRl
eCA0MTAwNDY4Li4wMjc0YWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29s
bGVjdGlvbkN1c3RvbS5jcHAKQEAgLTM1LDEwICszNSwxMCBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBKU1ZhbHVlIGdldE5hbWVkSXRlbXMo
RXhlY1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogaW1wbCwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKIHsKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKLSAgICBp
bXBsLT5uYW1lZEl0ZW1zKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7CisgICAgY29sbGVjdGlv
bi0+aW1wbCgpLT5uYW1lZEl0ZW1zKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7CiAKICAgICBp
ZiAobmFtZWRJdGVtcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpA
QCAtNDYsNyArNDYsNyBAQCBzdGF0aWMgSlNWYWx1ZSBnZXROYW1lZEl0ZW1zKEV4ZWNTdGF0ZSog
ZXhlYywgSFRNTENvbGxlY3Rpb24qIGltcGwsIGNvbnN0IElkZW50aQogICAgIGlmIChuYW1lZEl0
ZW1zLnNpemUoKSA9PSAxKQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBuYW1lZEl0ZW1zWzBd
LmdldCgpKTsKIAotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24o
ZXhlYywgbmFtZWRJdGVtcyk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNOYW1lZE5vZGVzQ29s
bGVjdGlvbihleGVjLCBjb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtcyk7CiB9
CiAKIC8vIEhUTUxDb2xsZWN0aW9ucyBhcmUgc3RyYW5nZSBvYmplY3RzLCB0aGV5IHN1cHBvcnQg
Ym90aCBnZXQgYW5kIGNhbGwsCkBAIC01Nyw3ICs1Nyw4IEBAIHN0YXRpYyBKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEhUTUxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1
bmN0CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRG8gbm90IHVzZSB0
aGlzT2JqIGhlcmUuIEl0IGNhbiBiZSB0aGUgSlNIVE1MRG9jdW1lbnQsIGluIHRoZSBkb2N1bWVu
dC5mb3JtcyhpKSBjYXNlLgotICAgIEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gc3RhdGlj
X2Nhc3Q8SlNIVE1MQ29sbGVjdGlvbio+KGZ1bmN0aW9uKS0+aW1wbCgpOworICAgIEpTSFRNTENv
bGxlY3Rpb24qIGpzQ29sbGVjdGlvbiA9IHN0YXRpY19jYXN0PEpTSFRNTENvbGxlY3Rpb24qPihm
dW5jdGlvbik7CisgICAgSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24gPSBqc0NvbGxlY3Rpb24t
PmltcGwoKTsKIAogICAgIC8vIEFsc28sIGRvIHdlIG5lZWQgdGhlIFR5cGVFcnJvciB0ZXN0IGhl
cmUgPwogCkBAIC03MCw3ICs3MSw3IEBAIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEhUTUxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1bmN0CiAgICAgICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBjb2xsZWN0aW9uLT5pdGVtKGluZGV4KSk7CiAKICAgICAg
ICAgLy8gU3VwcG9ydCBmb3IgZG9jdW1lbnQuaW1hZ2VzKCc8bmFtZT4nKSBldGMuCi0gICAgICAg
IHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGNvbGxlY3Rpb24sIElkZW50aWZpZXIoZXhlYywg
c3RyaW5nKSk7CisgICAgICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGpzQ29sbGVjdGlv
biwgSWRlbnRpZmllcihleGVjLCBzdHJpbmcpKTsKICAgICB9CiAKICAgICAvLyBUaGUgc2Vjb25k
IGFyZywgaWYgc2V0LCBpcyB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gd2Ugd2FudApAQCAtOTcsMTUg
Kzk4LDE3IEBAIENhbGxUeXBlIEpTSFRNTENvbGxlY3Rpb246OmdldENhbGxEYXRhKENhbGxEYXRh
JiBjYWxsRGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIEpTSFRNTENv
bGxlY3Rpb246OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2xsZWN0
aW9uKiB0aGlzT2JqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpTSFRN
TENvbGxlY3Rpb246OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1MQ29sbGVjdGlv
biogY29sbGVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIHJl
dHVybiAhZ2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUpLmlzVW5kZWZp
bmVkKCk7CisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CisgICAgY29sbGVj
dGlvbi0+bmFtZWRJdGVtcyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOworICAgIHJldHVybiAh
bmFtZWRJdGVtcy5pc0VtcHR5KCk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFt
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTSFRNTENvbGxlY3Rpb24qIHRoaXNP
YmogPSBzdGF0aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFz
ZSgpKSk7Ci0gICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpc09iai0+aW1wbCgpLCBw
cm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXNPYmosIHBy
b3BlcnR5TmFtZSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6aXRlbShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCkBAIC0xMTQsMTIgKzExNywxMiBAQCBKU1Zh
bHVlIEpTSFRNTENvbGxlY3Rpb246Oml0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogICAgIHVpbnQzMl90IGluZGV4ID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVjKS50
b1VJbnQzMigmb2ssIGZhbHNlKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGltcGwoKS0+aXRlbShpbmRleCkpOwotICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMs
IGltcGwoKSwgSWRlbnRpZmllcihleGVjLCBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpKSk7Cisg
ICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpcywgSWRlbnRpZmllcihleGVjLCBhcmdz
LmF0KDApLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6
bmFtZWRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBy
ZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCBpbXBsKCksIElkZW50aWZpZXIoZXhlYywgYXJncy5h
dCgwKS50b1N0cmluZyhleGVjKSkpOworICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRo
aXMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkpOwogfQogCiBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKaW5k
ZXggZTViNDI4YS4uZmZhMmQ1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxG
b3JtRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQ1LDcgKzQ1LDggQEAgYm9vbCBKU0hUTUxGb3JtRWxl
bWVudDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIEhUTUxGb3JtRWxlbWVudCogZm9y
bSwgY28KIAogSlNWYWx1ZSBKU0hUTUxGb3JtRWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiBzbG90KQogewotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IHN0YXRpY19jYXN0PEhUTUxG
b3JtRWxlbWVudCo+KHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdChzbG90LnNs
b3RCYXNlKCkpKS0+aW1wbCgpKTsKKyAgICBKU0hUTUxFbGVtZW50KiBqc0Zvcm0gPSBzdGF0aWNf
Y2FzdDxKU0hUTUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOworICAg
IEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGpz
Rm9ybS0+aW1wbCgpKTsKICAgICAKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVt
czsKICAgICBmb3JtLT5nZXROYW1lZEVsZW1lbnRzKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7
CkBAIC01Myw3ICs1NCw3IEBAIEpTVmFsdWUgSlNIVE1MRm9ybUVsZW1lbnQ6Om5hbWVHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgaWYgKG5hbWVk
SXRlbXMuc2l6ZSgpID09IDEpCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5hbWVkSXRlbXNb
MF0uZ2V0KCkpOwogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA+IDEpIAotICAgICAgICByZXR1
cm4gbmV3IChleGVjKSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKGV4ZWMsIG5hbWVkSXRlbXMpOwor
ICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKGV4ZWMsIGpz
Rm9ybS0+Z2xvYmFsT2JqZWN0KCksIG5hbWVkSXRlbXMpOwogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0Nv
bGxlY3Rpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9u
LmNwcAppbmRleCBhZjE5OTViLi4zMzIzZWUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKQEAgLTQyLDEwICs0Miw4IEBAIGNvbnN0IENsYXNz
SW5mbyBKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpzX2luZm8gPSB7ICJDb2xsZWN0aW9uIiwgMCwg
MCwgMCB9OwogLy8gU3VjaCBhIGNvbGxlY3Rpb24gaXMgdXN1YWxseSB2ZXJ5IHNob3J0LWxpdmVk
LCBpdCBvbmx5IGV4aXN0cwogLy8gZm9yIGNvbnN0cnVjdHMgbGlrZSBkb2N1bWVudC5mb3Jtcy48
bmFtZT5bMV0sCiAvLyBzbyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtIHRoYXQgaXQncyBzdG9y
aW5nIGFsbCB0aGUgbm9kZXMgKHdpdGggdGhlIHNhbWUgbmFtZSkuIChEYXZpZCkKLUpTTmFtZWRO
b2Rlc0NvbGxlY3Rpb246OkpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5vZGVzKQotICAgIC8vIEZJWE1FOiBkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGds
b2JhbCBvYmplY3QKLSAgICAvLyB3ZSBzaG91bGQgdXNlIHRoZSBnbG9iYWwgb2JqZWN0IGZyb20g
dGhlIG5vZGVzLgotICAgIDogRE9NT2JqZWN0KGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SlNO
YW1lZE5vZGVzQ29sbGVjdGlvbj4oZXhlYykpCitKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpKU05h
bWVkTm9kZXNDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBub2RlcykKKyAgICA6IERP
TU9iamVjdFdpdGhHbG9iYWxQb2ludGVyKGdldERPTVN0cnVjdHVyZTxKU05hbWVkTm9kZXNDb2xs
ZWN0aW9uPihleGVjLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QpCiAgICAgLCBtX25vZGVz
KG5ldyBWZWN0b3I8UmVmUHRyPE5vZGU+ID4obm9kZXMpKQogewogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uaAppbmRleCAzYmJjMTAyLi5jZDZjMmNiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uaApAQCAtMzUs
OSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAvLyBJbnRlcm5hbCBjbGFzcywg
dXNlZCBmb3IgdGhlIGNvbGxlY3Rpb24gcmV0dXJuIGJ5IGUuZy4gZG9jdW1lbnQuZm9ybXMubXlp
bnB1dAogICAgIC8vIHdoZW4gbXVsdGlwbGUgbm9kZXMgaGF2ZSB0aGUgc2FtZSBuYW1lLgotICAg
IGNsYXNzIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24gOiBwdWJsaWMgRE9NT2JqZWN0IHsKKyAgICBj
bGFzcyBKU05hbWVkTm9kZXNDb2xsZWN0aW9uIDogcHVibGljIERPTU9iamVjdFdpdGhHbG9iYWxQ
b2ludGVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKTsKKyAgICAgICAgSlNO
YW1lZE5vZGVzQ29sbGVjdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hh
cmVkV29ya2VyQ29uc3RydWN0b3IuY3BwCmluZGV4IGVhZDE3ZGQuLmEzMTIyMjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmNwcApAQCAt
NDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBDbGFzc0luZm8gSlNTaGFy
ZWRXb3JrZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiU2hhcmVkV29ya2VyQ29uc3RydWN0b3Ii
LCAwLCAwLCAwIH07CiAKIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OkpTU2hhcmVkV29ya2Vy
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotICAgIDogRE9NT2JqZWN0KEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0
cnVjdG9yT2JqZWN0KEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+
cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNTaGFyZWRXb3JrZXJQcm90b3R5cGU6OnNlbGYo
ZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CiAgICAgLy8gSG9zdCBmdW5jdGlvbnMgaGF2ZSBh
IGxlbmd0aCBwcm9wZXJ0eSBkZXNjcmliaW5nIHRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJndW1l
bnRzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0
cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3Iu
aAppbmRleCBiZThiMmI0Li44N2JhYTM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLSAgICBjbGFzcyBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yIDogcHVibGlj
IERPTU9iamVjdCB7CisgICAgY2xhc3MgSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiAgICAgcHVibGljOgogICAgICAgICBKU1NoYXJlZFdv
cmtlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMjgwZWNm
YS4uZmExYTdjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0xMjAsOCArMTIwLDEzIEBAIHN1YiBHZXRQYXJlbnRDbGFzc05hbWUKIAogICAgIHJl
dHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKICAgICBpZiAo
QHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDApIHsKKyAgICAgICAgIyBGSVhNRTogU1ZHIHR5cGVz
IHJlcXVpcmluZyBhIGNvbnRleHQoKSBwb2ludGVyIGRvIG5vdCBoYXZlIGVub3VnaAorICAgICAg
ICAjIHNwYWNlIHRvIGhvbGQgYSBnbG9iYWxPYmplY3QgcG9pbnRlciBhcyB3ZWxsIHcvbyBoaXR0
aW5nIHRoZSBDRUxMX1NJWkUgbGltaXQuCisgICAgICAgICMgVGhpcyBjb3VsZCBiZSBmaXhlZCBi
eSBtb3ZpbmcgY29udGV4dCgpIGludG8gdGhlIHZhcmlvdXMgaW1wbCgpIGNsYXNzZXMuCisgICAg
ICAgICMgVW50aWwgdGhlbiwgd2Ugc3BlY2lhbCBjYXNlIHRoZXNlIFNWRyBiaW5kaW5ncyBhbmQg
YWxsb3cgdGhlbSB0byByZXR1cm4KKyAgICAgICAgIyB0aGUgd3JvbmcgcHJvdG90eXBlcyBhbmQg
Y29uc3RydWN0b3JzIGR1cmluZyB4LWZyYW1lIGFjY2Vzcy4gIFNlZSBidWcgMjcwODguCiAgICAg
ICAgIHJldHVybiAiRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQiIGlmIElzU1ZHVHlwZU5lZWRpbmdD
b250ZXh0UGFyYW1ldGVyKCRkYXRhTm9kZS0+bmFtZSk7Ci0gICAgICAgIHJldHVybiAiRE9NT2Jq
ZWN0IjsKKyAgICAgICAgcmV0dXJuICJET01PYmplY3RXaXRoR2xvYmFsUG9pbnRlciI7CiAgICAg
fQogICAgIHJldHVybiAiSlMiIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9k
ZS0+cGFyZW50cygwKSk7CiB9CkBAIC00MjcsMTAgKzQzMiwxMiBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAjIENvbnN0cnVjdG9yCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5k
b3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQYXNz
UmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+LCBKU0RPTVdpbmRv
d1NoZWxsKik7XG4iKTsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29u
dGV4dCIpIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKFBh
c3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4pO1xuIik7CiAg
ICAgfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05h
bWUpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQYXNz
UmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+LCBTVkdFbGVtZW50
KiBjb250ZXh0KTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFz
c05hbWUoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4sIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFz
c1JlZlB0cjwkaW1wbFR5cGU+LCBTVkdFbGVtZW50KiBjb250ZXh0KTtcbiIpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOworICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoUGFzc1JlZlB0cjxKU0M6OlN0
cnVjdHVyZT4sIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIp
OwogICAgIH0KIAogICAgICMgRGVzdHJ1Y3RvcgpAQCAtOTc1LDEzICs5ODIsMTcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCJKU0RPTVdp
bmRvd1NoZWxsIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9Ojok
Y2xhc3NOYW1lKFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGlt
cGxUeXBlPiBpbXBsLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBpbXBsLCBz
aGVsbClcbiIpOworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0
IikgeworICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoIldvcmtlckNvbnRleHQiKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwpXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVj
dHVyZSwgaW1wbClcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG15ICRjb250ZXh0QXJnID0g
JG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiI7Ci0gICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsJGNvbnRleHRB
cmcpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFz
c05hbWUoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwkY29udGV4dEFyZylcbiIp
OwogICAgICAgICBpZiAoJGhhc1BhcmVudCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgaW1wbCIgLiAoJHBhcmVudE5l
ZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xv
YmFsT2JqZWN0LCBpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIg
OiAiIikgLiAiKVxuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlIiAuICgkbmVlZHNTVkdD
b250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBnbG9iYWxPYmpl
Y3QiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIiKSAuICIpXG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTExODAsOSArMTE5MSwxNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkdlbmVyYXRlQ29uc3RydWN0b3IifSkgewogICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3Rv
ckZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAK
LSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtjb25zdHJ1Y3Rv
ckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3Qg
UHJvcGVydHlTbG90JilcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4ZWMs
IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYykpO1xuIik7CisgICAgICAg
ICAgICAgICAgaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbnRlcmZhY2VO
YW1lKSkgeworICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBTVkcgYmluZGluZ3Mgd2l0aCBh
IGNvbnRleHQgcG9pbnRlciBoYXZlIG5vIHNwYWNlIHRvIHN0b3JlIGEgZ2xvYmFsT2JqZWN0Cisg
ICAgICAgICAgICAgICAgICAgICMgc28gd2UgdXNlIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQ
cm90b3R5cGUgaW5zdGVhZC4KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgVU5VU0VEX1BBUkFNKHNsb3QpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKGV4
ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYykpO1xuIik7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgJHtjbGFzc05hbWV9KiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1l
Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0
b3IoZXhlYywgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMjAxMCwxMCArMjAyOSwxMCBAQCBzdWIgY29uc3RydWN0b3JG
b3IKICAgICBteSAkY2FuQ29uc3RydWN0ID0gc2hpZnQ7CiAKIG15ICRpbXBsQ29udGVudCA9IDw8
ICJFT0YiOwotY2xhc3MgJHtjbGFzc05hbWV9Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NT2JqZWN0
IHsKK2NsYXNzICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9y
T2JqZWN0IHsKIHB1YmxpYzoKICAgICAke2NsYXNzTmFtZX1Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgICAgIDogRE9NT2Jq
ZWN0KCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0
LT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtj
bGFzc05hbWV9Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVj
dFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcHV0RGlyZWN0KGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9OjpzZWxmKGV4
ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAgIH0=
</data>
<flag name="review"
          id="17661"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>