<?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>151682</bug_id>
          
          <creation_ts>2015-11-30 16:17:55 -0800</creation_ts>
          <short_desc>CTTE autogenerated bindings code</short_desc>
          <delta_ts>2015-12-01 21:23:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>ljaehun.lim</cc>
    
    <cc>nikos.andronikos</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145016</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-11-30 16:17:55 -0800</bug_when>
    <thetext>CTTE autogenerated bindings code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145019</commentid>
    <comment_count>1</comment_count>
      <attachid>266297</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-11-30 16:24:06 -0800</bug_when>
    <thetext>Created attachment 266297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145037</commentid>
    <comment_count>2</comment_count>
      <attachid>266303</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-11-30 17:02:08 -0800</bug_when>
    <thetext>Created attachment 266303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145053</commentid>
    <comment_count>3</comment_count>
      <attachid>266303</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-30 17:31:44 -0800</bug_when>
    <thetext>Comment on attachment 266303
Patch

There is so much more of this to be done in CodeGeneratorJS.pm, such as passing ExecState as a reference to most helpers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145068</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-11-30 18:14:07 -0800</bug_when>
    <thetext>Committed r192849: &lt;http://trac.webkit.org/changeset/192849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145171</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-01 00:20:03 -0800</bug_when>
    <thetext>Just to document: It broke the EFL build (not in WebKit2 code!)
Unfortunately EWS didn&apos;t process this patch, because an other
Apple employee broke the build previously against the red EWS bubble.

And the fix landed in https://trac.webkit.org/changeset/192860</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145172</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-01 00:21:26 -0800</bug_when>
    <thetext>And it broke the GTK build too as the EWS noticed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145208</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-01 01:59:36 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; And it broke the GTK build too as the EWS noticed it.

just to document, fix landed in https://trac.webkit.org/changeset/192872</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145522</commentid>
    <comment_count>8</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-12-01 21:23:46 -0800</bug_when>
    <thetext>Also to document: This is causing the following type of error in the generated Objective-C code for partial interfaces:

webkit/WebKitBuild/Debug/DerivedSources/WebCore/DOMDocument.mm:443:65: error: non-const lvalue reference to type &apos;WebCore::Document&apos; cannot bind to a temporary of type &apos;WebCore::Document *&apos;
    return kit(WTF::getPtr(WebCore::DocumentAnimation::timeline(IMPL)));
                                                                ^~~~
webkit/WebKitBuild/Debug/DerivedSources/WebCore/DOMDocument.mm:106:14: note: expanded from macro &apos;IMPL&apos;
#define IMPL static_cast&lt;WebCore::Document*&gt;(reinterpret_cast&lt;WebCore::Node*&gt;(_internal))

See bug 151739 for patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266297</attachid>
            <date>2015-11-30 16:24:06 -0800</date>
            <delta_ts>2015-11-30 17:02:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151682-20151130162344.patch</filename>
            <type>text/plain</type>
            <size>22390</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RkNTRjYmZlNTMxNzQx
YTc1ZDY3ZTRmYzM2M2M2OGI3M2FmNzZmOC4uN2UwNmVjZjJjMTQzOGUzMDk4NWVhNmM2YWZkNGJm
NjJkOWFiNzI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTExLTMwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ1RURSBhdXRvZ2Vu
ZXJhdGVkIGJpbmRpbmdzIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MTY4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IEpTIGJpbmRpbmdzIHBhc3MgYSByZWZlcmVuY2Ug
dG8gdGhlIG9iamVjdCB3aGVuIGNhbGxpbmcgc3RhdGljIG1lbWJlciBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOYXZpZ2F0b3JHYW1lcGFkOjpnZXRHYW1lcGFkcyk6CisgICAgICAgICogTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRv
ckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbik6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
QXVkaW9UcmFja01lZGlhU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrTWVk
aWFTb3VyY2U6OnNvdXJjZUJ1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9U
ZXh0VHJhY2tNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTWVkaWFT
b3VyY2U6OnNvdXJjZUJ1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRl
b1RyYWNrTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tNZWRpYVNv
dXJjZTo6c291cmNlQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxN
ZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50TWVkaWFTdHJlYW06OnNyY09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW06OnNldFNyY09iamVjdCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1
bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKToKKyAg
ICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOgor
ICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOgorICAgICAgICAqIE1vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjp3ZWJraXROb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFs
U2NvcGVOb3RpZmljYXRpb25zLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RP
TVdpbmRvd1dlYkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRh
dGFiYXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9N
V2luZG93V2ViRGF0YWJhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAo
R2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNp
emVyKToKKwogMjAxNS0xMS0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTW9kZXJuIElEQjogUmVzb2x2ZSBmbGFreSBHQy12cy13cmFwcGVyIGlzc3VlIHdp
dGggSURCT3BlbkRCUmVxdWVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAppbmRleCA5NGY0NDVlZWU2MDJkYjg0ZTM5ZmVmZmFk
ZTU4OTY0ZjdiNjAyYjk2Li42ZTYwMzhkOTdjZWRkZTk0MjQ2YzQ5N2Q2YjkzNDkxZTc5NDc0OTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2Ft
ZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdh
bWVwYWQuY3BwCkBAIC04MSw5ICs4MSw5IEBAIFJlZjxHYW1lcGFkPiBOYXZpZ2F0b3JHYW1lcGFk
OjpnYW1lcGFkRnJvbVBsYXRmb3JtR2FtZXBhZChQbGF0Zm9ybUdhbWVwYWQmIHBsYXRmCiAgICAg
cmV0dXJuICptX2dhbWVwYWRzW2luZGV4XTsKIH0KIAotY29uc3QgVmVjdG9yPFJlZlB0cjxHYW1l
cGFkPj4mIE5hdmlnYXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKE5hdmlnYXRvciogbmF2aWdhdG9y
KQorY29uc3QgVmVjdG9yPFJlZlB0cjxHYW1lcGFkPj4mIE5hdmlnYXRvckdhbWVwYWQ6OmdldEdh
bWVwYWRzKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogewotICAgIHJldHVybiBOYXZpZ2F0b3JHYW1l
cGFkOjpmcm9tKG5hdmlnYXRvciktPmdhbWVwYWRzKCk7CisgICAgcmV0dXJuIE5hdmlnYXRvckdh
bWVwYWQ6OmZyb20oJm5hdmlnYXRvciktPmdhbWVwYWRzKCk7CiB9CiAKIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8R2FtZXBhZD4+JiBOYXZpZ2F0b3JHYW1lcGFkOjpnYW1lcGFkcygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaAppbmRleCBiY2Nj
ODc5YWQ2NTFjOTllMDExYWJmZmJiNjI5NzRmNzRmNDcwMWJlLi4zMTlkZDM5MTNjNjExZWI1OTU4
MmE2YzdlMDRmZDQ2Yzg5MGNkZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gVGhlIGFycmF5IG9mIEdhbWVwYWRzIG1pZ2h0IGJlIHNwYXJzZS4KICAgICAvLyBOdWxs
IGNoZWNraW5nIGVhY2ggZW50cnkgaXMgbmVjZXNzYXJ5LgotICAgIHN0YXRpYyBjb25zdCBWZWN0
b3I8UmVmUHRyPEdhbWVwYWQ+PiYgZ2V0R2FtZXBhZHMoTmF2aWdhdG9yKik7CisgICAgc3RhdGlj
IGNvbnN0IFZlY3RvcjxSZWZQdHI8R2FtZXBhZD4+JiBnZXRHYW1lcGFkcyhOYXZpZ2F0b3ImKTsK
IAogICAgIGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRp
b25TdGFydDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCmluZGV4IDdmOTVlYzU5Zjc2Y2NjNDQ1
ZTA3ZDgwZDU4ZjMyOTFjZDJkN2I3YzIuLmZmYTAwYzJkM2YwOGZmYzYwNmRmYjM1ZGFmZDkxOWMz
YTlkMTBmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCkBAIC02Niw5ICs2Niw5IEBAIHZvaWQg
TmF2aWdhdG9yR2VvbG9jYXRpb246OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCkKIH0K
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLUdlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6Z2VvbG9jYXRpb24oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCitHZW9sb2NhdGlvbiogTmF2
aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogewot
ICAgIHJldHVybiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbShuYXZpZ2F0b3IpLT5nZW9sb2Nh
dGlvbigpOworICAgIHJldHVybiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSgmbmF2aWdhdG9y
KS0+Z2VvbG9jYXRpb24oKTsKIH0KIAogR2VvbG9jYXRpb24qIE5hdmlnYXRvckdlb2xvY2F0aW9u
OjpnZW9sb2NhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgKaW5kZXggMjAzN2VhOTI0ZmNh
NjA1ZDU2M2NmNzk4NTdiODY0ODk2MmM1ZDgxZS4uZjY4ZDA5MTYyYTA4NWZlZTZjZTBhNGJlMGNk
YWJiMzYwODA1ZTkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaApAQCAtMzgsNyArMzgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yR2VvbG9jYXRpb24oKTsKICAgICBzdGF0aWMgTmF2
aWdhdG9yR2VvbG9jYXRpb24qIGZyb20oTmF2aWdhdG9yKik7CiAKLSAgICBzdGF0aWMgR2VvbG9j
YXRpb24qIGdlb2xvY2F0aW9uKE5hdmlnYXRvciopOworICAgIHN0YXRpYyBHZW9sb2NhdGlvbiog
Z2VvbG9jYXRpb24oTmF2aWdhdG9yJik7CiAgICAgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKCkg
Y29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9BdWRpb1RyYWNrTWVkaWFTb3VyY2UuaAppbmRleCBkOWJl
ODExYTNjM2UzODc0MjA3ZmQyNjI1MzBiMjFkN2I4NzRjOTMxLi44Y2Y1MDE2YzIwOGNhODUxOWUy
MDdlOGY3OTM4MTg0ZDk5M2QxYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFja01lZGlhU291cmNlLmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgU291cmNlQnVmZmVyOwogCiBjbGFzcyBBdWRpb1RyYWNrTWVkaWFTb3VyY2Ug
ewogcHVibGljOgotICAgIHN0YXRpYyBTb3VyY2VCdWZmZXIqIHNvdXJjZUJ1ZmZlcihBdWRpb1Ry
YWNrKiB0cmFjaykgeyByZXR1cm4gdHJhY2stPnNvdXJjZUJ1ZmZlcigpOyB9CisgICAgc3RhdGlj
IFNvdXJjZUJ1ZmZlciogc291cmNlQnVmZmVyKEF1ZGlvVHJhY2smIHRyYWNrKSB7IHJldHVybiB0
cmFjay5zb3VyY2VCdWZmZXIoKTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9UZXh0VHJhY2tNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9UZXh0VHJhY2tNZWRpYVNvdXJjZS5oCmluZGV4IGYw
NTk1ZTUzNTVmMTUxYjRlMjIzYjIzNDczZjFjNmQ5ZWJlMjNhMDIuLmE5YWY3ZGI1MzYxMmNkNTNj
ZTBjZTAzMTgzMjkyZGZhODA1ZGI2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvVGV4dFRyYWNrTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1RleHRUcmFja01lZGlhU291cmNlLmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgU291cmNlQnVmZmVyOwogCiBjbGFzcyBUZXh0VHJhY2tNZWRpYVNvdXJjZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFNvdXJjZUJ1ZmZlciogc291cmNlQnVmZmVyKFRleHRUcmFj
ayogdHJhY2spIHsgcmV0dXJuIHRyYWNrLT5zb3VyY2VCdWZmZXIoKTsgfQorICAgIHN0YXRpYyBT
b3VyY2VCdWZmZXIqIHNvdXJjZUJ1ZmZlcihUZXh0VHJhY2smIHRyYWNrKSB7IHJldHVybiB0cmFj
ay5zb3VyY2VCdWZmZXIoKTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRlb1RyYWNrTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVmlkZW9UcmFja01lZGlhU291cmNlLmgKaW5kZXggZjdm
NWY2NDE5MTYzYjYwM2IyYjU2OGJjMjkyYzFkYmY3YWVjOWI4Yy4uY2UwMGUwNzA5NGMxNTA1YmM4
ODcyMDFlZDFlOGRhOTYzNWMwMzEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9WaWRlb1RyYWNrTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvVHJhY2tNZWRpYVNvdXJjZS5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIAogY2xhc3MgVmlkZW9UcmFja01lZGlhU291cmNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgU291cmNlQnVmZmVyKiBzb3VyY2VCdWZmZXIoVmlkZW9U
cmFjayogdHJhY2spIHsgcmV0dXJuIHRyYWNrLT5zb3VyY2VCdWZmZXIoKTsgfQorICAgIHN0YXRp
YyBTb3VyY2VCdWZmZXIqIHNvdXJjZUJ1ZmZlcihWaWRlb1RyYWNrJiB0cmFjaykgeyByZXR1cm4g
dHJhY2suc291cmNlQnVmZmVyKCk7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlh
U3RyZWFtLmNwcAppbmRleCBkMmM5YjkzY2VlYzI2YWIwOTU2OTIwNWIwYzA1MjRhNDBlMDA4M2Nl
Li45ZjlmZGIxNWRmYjBjM2VkMDM3NjBkMjE1Y2IwMDg0ZDIxYjA2NWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0
cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwCkBAIC0zMywxNiArMzMsMTQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1NZWRpYVN0cmVhbSogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtOjpz
cmNPYmplY3QoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorTWVkaWFTdHJlYW0qIEhU
TUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQmIG1l
ZGlhRWxlbWVudCkKIHsKLSAgICBBU1NFUlQobWVkaWFFbGVtZW50KTsKLSAgICByZXR1cm4gbWVk
aWFFbGVtZW50LT5zcmNPYmplY3QoKTsKKyAgICByZXR1cm4gbWVkaWFFbGVtZW50LnNyY09iamVj
dCgpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c2V0U3JjT2JqZWN0
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCwgTWVkaWFTdHJlYW0qIG1lZGlhU3RyZWFt
KQordm9pZCBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW06OnNldFNyY09iamVjdChIVE1MTWVk
aWFFbGVtZW50JiBtZWRpYUVsZW1lbnQsIE1lZGlhU3RyZWFtKiBtZWRpYVN0cmVhbSkKIHsKLSAg
ICBBU1NFUlQobWVkaWFFbGVtZW50KTsKLSAgICBtZWRpYUVsZW1lbnQtPnNldFNyY09iamVjdCht
ZWRpYVN0cmVhbSk7CisgICAgbWVkaWFFbGVtZW50LnNldFNyY09iamVjdChtZWRpYVN0cmVhbSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVh
bS5oCmluZGV4IDgzYzUyMTJhYzYzODZiODE0MjVmYzFhNzVjYjhmODU4MWIzMDg0ZjguLjU0NGMw
ZmMxNTkxMjg1MjE5YzNkOTkxNzA5M2JiZDQwMTc0ZjhjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50
TWVkaWFTdHJlYW0uaApAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBNZWRpYVN0cmVhbTsKIAogY2xh
c3MgSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTWVk
aWFTdHJlYW0qIHNyY09iamVjdChIVE1MTWVkaWFFbGVtZW50Kik7Ci0gICAgc3RhdGljIHZvaWQg
c2V0U3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQqLCBNZWRpYVN0cmVhbSopOworICAgIHN0YXRp
YyBNZWRpYVN0cmVhbSogc3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQmKTsKKyAgICBzdGF0aWMg
dm9pZCBzZXRTcmNPYmplY3QoSFRNTE1lZGlhRWxlbWVudCYsIE1lZGlhU3RyZWFtKik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAKaW5kZXggNzFm
MDJkOTk0MmY3MGI4ZjU2YjU1NWRmYzhjMzdkYjM3YzRkYWVjYS4uM2FlZWI0Nzc3NjgyN2UzMDMz
ZWIzNDQ1OTIyNzlmNmViMDY3ZmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmNwcApAQCAtNjAs
OSArNjAsOSBAQCBOYXZpZ2F0b3JNZWRpYURldmljZXMqIE5hdmlnYXRvck1lZGlhRGV2aWNlczo6
ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKICAgICByZXR1cm4gc3VwcGxlbWVudDsKIH0KIAot
TWVkaWFEZXZpY2VzKiBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyhOYXZpZ2F0
b3IqIG5hdmlnYXRvcikKK01lZGlhRGV2aWNlcyogTmF2aWdhdG9yTWVkaWFEZXZpY2VzOjptZWRp
YURldmljZXMoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiB7Ci0gICAgcmV0dXJuIE5hdmlnYXRvck1l
ZGlhRGV2aWNlczo6ZnJvbShuYXZpZ2F0b3IpLT5tZWRpYURldmljZXMoKTsKKyAgICByZXR1cm4g
TmF2aWdhdG9yTWVkaWFEZXZpY2VzOjpmcm9tKCZuYXZpZ2F0b3IpLT5tZWRpYURldmljZXMoKTsK
IH0KIAogTWVkaWFEZXZpY2VzKiBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05h
dmlnYXRvck1lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaAppbmRleCAzNWEwNDk5ZjNhNjNiODBlZDFkMDU2MjJj
YmMwYjRmZWJjMjlhOWMzLi4zOGFmMzAyNzAzYWZjNzMwZGFiM2FlYjlkZjcxMzIzZDBlOTIyODU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRv
ck1lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TmF2aWdhdG9yTWVkaWFEZXZpY2VzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfk5hdmlnYXRvck1lZGlhRGV2aWNlcygpOwogICAgIHN0YXRpYyBOYXZpZ2F0b3JNZWRp
YURldmljZXMqIGZyb20oTmF2aWdhdG9yKik7CiAKLSAgICBzdGF0aWMgTWVkaWFEZXZpY2VzKiBt
ZWRpYURldmljZXMoTmF2aWdhdG9yKik7CisgICAgc3RhdGljIE1lZGlhRGV2aWNlcyogbWVkaWFE
ZXZpY2VzKE5hdmlnYXRvciYpOwogICAgIE1lZGlhRGV2aWNlcyogbWVkaWFEZXZpY2VzKCkgY29u
c3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKaW5kZXggYmQyYTFh
MzA5M2YyN2M1YjM3MTAzZjZlOWU4OGUyZmRhZWQ4NTY0NC4uMWNmNGM3OGRlZjdmZjEzY2E1Nzli
ZDI2NmNmNWVlYmI2MWY0ODgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAt
NjMsOSArNjMsOSBAQCBET01XaW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRp
b25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQog
Ci1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlm
aWNhdGlvbnMoRE9NV2luZG93KiB3aW5kb3cpCitOb3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRv
d05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93JiB3aW5kb3cpCiB7
Ci0gICAgcmV0dXJuIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20od2luZG93KS0+d2Via2l0
Tm90aWZpY2F0aW9ucygpOworICAgIHJldHVybiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9t
KCZ3aW5kb3cpLT53ZWJraXROb3RpZmljYXRpb25zKCk7CiB9CiAKIHZvaWQgRE9NV2luZG93Tm90
aWZpY2F0aW9uczo6ZGlzY29ubmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5oCmluZGV4IDdlOTk3MjgwYjBiODc4Mjc0ZjhlOTAwOTYzZTIwZDQyYzc2MDY3MWEu
LjQxZTE2MGQ0N2U2OWY3OGFiMWRjNmZlYzQ4MDRhMjM2MDU0ZTBkZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05v
dGlmaWNhdGlvbnMuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgRE9N
V2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKICAgICB2aXJ0dWFsIH5ET01XaW5kb3dO
b3RpZmljYXRpb25zKCk7CiAKLSAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXRO
b3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBOb3RpZmljYXRpb25DZW50ZXIq
IHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Jik7CiAgICAgc3RhdGljIERPTVdpbmRvd05v
dGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29u
bmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDhmNzBmZTEz
NDUxMDliNWUyNDE2ZTM1ZTE1NTBhNzE4NTU1MTk2ZmUuLmY3NTE5ZmVlMTAwY2EwY2M4ODE0OGE3
OWI5NzhlN2ZhYzEzOGY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC04Niw3ICs4Niw3IEBAIE5vdGlmaWNh
dGlvbjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgdGl0bGUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX3Rhc2tUaW1lcihz
dGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJk5vdGlmaWNhdGlvbjo6dGFza1RpbWVyRmly
ZWQpKQogewotICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyhkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuZG9tV2lu
ZG93KCkpOworICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucygqZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdp
bmRvdygpKTsKICAgICAKICAgICBBU1NFUlQobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgp
KTsKICAgICBtX3Rhc2tUaW1lci0+c3RhcnRPbmVTaG90KDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xv
YmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcAppbmRleCA0ZTFlNjc1MDY3YmFkZDQxZDE0YjNmMjMz
MDdjZGJjNzYyNWVmNjY2Li5iMjI0ZmFlNTMwOTU3ZTFiOTdkNTE2MGY0ZDA4YmMyMzdmMDdlYzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2Vy
R2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcApAQCAtNjEs
OSArNjEsOSBAQCBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMqIFdvcmtlckdsb2JhbFNj
b3BlTm90aWZpY2F0aW9uczo6ZnJvbShXb3JrZXJHbG9iYQogICAgIHJldHVybiBzdXBwbGVtZW50
OwogfQogCi1Ob3RpZmljYXRpb25DZW50ZXIqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK05vdGlm
aWNhdGlvbkNlbnRlciogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjp3ZWJraXROb3Rp
ZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KQogewotICAgIHJldHVybiBXb3Jr
ZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnM6OmZyb20oY29udGV4dCktPndlYmtpdE5vdGlmaWNh
dGlvbnMoKTsKKyAgICByZXR1cm4gV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpmcm9t
KCZjb250ZXh0KS0+d2Via2l0Tm90aWZpY2F0aW9ucygpOwogfQogCiBOb3RpZmljYXRpb25DZW50
ZXIqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2Vy
R2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmgKaW5kZXggN2RhNTI5YmYw
YWM2NTIyZTRkMzdjNzQ5Mzk5YTA3NTc0NWE4YTI4OC4uOTBiYTUxMTM4ZWViNTViMWU3MTJlYWY5
Mzk1ZGM5OWM0OWQ3ZjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlv
bnMuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV29ya2VyR2xvYmFs
U2NvcGVOb3RpZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlKik7CiAgICAgdmlydHVhbCB+V29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKCk7CiAKLSAgICBzdGF0aWMgTm90aWZpY2F0aW9u
Q2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgc3Rh
dGljIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxT
Y29wZSYpOwogICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMqIGZyb20o
V29ya2VyR2xvYmFsU2NvcGUqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCmluZGV4
IGMzNzdiOWIyMWJkN2FiMGM2NzRiNzQ1YjhkMmVjYTVkYTk2ZGQ4MzQuLjY5N2Y0ZTY4YTRlNGU3
N2Q2NTc1Y2ExYTY1MjE0OTNhNTY0MDdlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcApAQCAtNjUs
OSArNjUsOSBAQCBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykKIH0KIAogLy8gc3RhdGljCi1TcGVlY2hTeW50
aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKERPTVdpbmRv
dyogd2luZG93KQorU3BlZWNoU3ludGhlc2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OnNw
ZWVjaFN5bnRoZXNpcyhET01XaW5kb3cmIHdpbmRvdykKIHsKLSAgICByZXR1cm4gRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzOjpmcm9tKHdpbmRvdyktPnNwZWVjaFN5bnRoZXNpcygpOworICAgIHJl
dHVybiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OmZyb20oJndpbmRvdyktPnNwZWVjaFN5bnRo
ZXNpcygpOwogfQogCiBTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6
c3BlZWNoU3ludGhlc2lzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKaW5kZXggMTU2NzdlNTAyNjA1YjEyZWM4
ODQ2OTJjYzZiMWYyMjg3ZDU2NzE1OS4uNDIzMjMxZGI2YjRlMGFjOTQ1NjRkMDc1MjA3YzQ3YmNk
N2QxOGUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyhET01XaW5kb3cqKTsKICAgICB2aXJ0
dWFsIH5ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMoKTsKICAgICAKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgU3BlZWNoU3ludGhlc2lzKiBzcGVlY2hTeW50aGVzaXMoRE9NV2luZG93Kik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFN5bnRoZXNpcyogc3BlZWNoU3ludGhlc2lz
KERPTVdpbmRvdyYpOwogICAgIHN0YXRpYyBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIGZyb20o
RE9NV2luZG93Kik7CiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAppbmRleCAx
MjE3ZTViZTllY2I3ZmJlNDc0Yzc2OTQ5OGI1ZTc3YzdmYWIxYmFiLi41YjlmZGIzMmIxYTFhOGNi
NDAwYTY4YTMyZGVkZTZiODEwODY3MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcApAQCAtMzcs
MTYgKzM3LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPERhdGFiYXNlPiBE
T01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyogd2luZG93LCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPERhdGFiYXNl
Q2FsbGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPERh
dGFiYXNlPiBET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyYgd2lu
ZG93LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRy
PERhdGFiYXNlQ2FsbGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICBp
ZiAoIXdpbmRvdy5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlID0gbnVsbHB0cjsKICAg
ICBEYXRhYmFzZU1hbmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9u
KCk7CiAgICAgRGF0YWJhc2VFcnJvciBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7Ci0gICAg
aWYgKGRiTWFuYWdlci5pc0F2YWlsYWJsZSgpICYmIHdpbmRvdy0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2Uod2luZG93LT5kb2N1bWVudCgpLT50b3BPcmln
aW4oKSkpIHsKLSAgICAgICAgZGF0YWJhc2UgPSBkYk1hbmFnZXIub3BlbkRhdGFiYXNlKHdpbmRv
dy0+ZG9jdW1lbnQoKSwgbmFtZSwgdmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUs
IGNyZWF0aW9uQ2FsbGJhY2ssIGVycm9yKTsKKyAgICBpZiAoZGJNYW5hZ2VyLmlzQXZhaWxhYmxl
KCkgJiYgd2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFi
YXNlKHdpbmRvdy5kb2N1bWVudCgpLT50b3BPcmlnaW4oKSkpIHsKKyAgICAgICAgZGF0YWJhc2Ug
PSBkYk1hbmFnZXIub3BlbkRhdGFiYXNlKHdpbmRvdy5kb2N1bWVudCgpLCBuYW1lLCB2ZXJzaW9u
LCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSwgY3JlYXRpb25DYWxsYmFjaywgZXJyb3IpOwog
ICAgICAgICBBU1NFUlQoZGF0YWJhc2UgfHwgZXJyb3IgIT0gRGF0YWJhc2VFcnJvcjo6Tm9uZSk7
CiAgICAgICAgIGVjID0gRGF0YWJhc2VNYW5hZ2VyOjpleGNlcHRpb25Db2RlRm9yRGF0YWJhc2VF
cnJvcihlcnJvcik7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKaW5kZXggYmZkNzFhOGU5
ZmYyYWZlMTdiOGU5MmY1Njk3OTE5MDZmNjI1OWRmMy4uNjU2Zjg4MzE4M2ZjMDk5ZWU5MDkwYmY0
Y2Y5ZTNhOGMzZjMzODJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBGcmFtZTsKIAogY2xhc3MgRE9NV2luZG93V2ViRGF0YWJhc2UgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8RGF0YWJhc2U+IG9wZW5EYXRhYmFzZShET01XaW5kb3cqLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPERhdGFiYXNlQ2Fs
bGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVm
UHRyPERhdGFiYXNlPiBvcGVuRGF0YWJhc2UoRE9NV2luZG93JiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2ln
bmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1JlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVh
dGlvbkNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgRE9NV2luZG93
V2ViRGF0YWJhc2UoKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDQ0ODVlZGRkZWVlMzlhNGZkNzNmMGRlOTMxZGMy
OTA1MmRmZjFhMmIuLmI2ZDVkOTQ3YTBiY2EzMGZhZTRkODZmZDE1YTVlNmI5YTEzMTM4ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0yNDQwLDcgKzI0NDAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIldlYkNvcmU6OiR7aW1wbGVt
ZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNo
aWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgImltcGwiKSBpZiAhJGF0dHJp
YnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUt
PmlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7
aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CkBAIC0yNzk3LDcgKzI3OTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBt
eSAkaW1wbGVtZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkltcGxlbWVudGVkQnkifTsKICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1w
bEluY2x1ZGVzKCIke2ltcGxlbWVudGVkQnl9LmgiLCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBsIikgaWYgISRhdHRyaWJ1dGUtPmlzU3RhdGlj
OworICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCAiaW1wbCIpIGlm
ICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9IjsKICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbnRlcmZhY2VOYW1lfTo6JHtm
dW5jdGlvbk5hbWV9IjsKQEAgLTMzMTYsNyArMzMxNiw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjawogICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgaWYgKCRpbXBsZW1lbnRl
ZEJ5KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIke2ltcGxlbWVudGVkQnl9LmgiLCAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0p
OwotICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkZnVuY3Rpb24tPmlz
U3RhdGljOworICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICJpbXBsIikgaWYgISRmdW5jdGlv
bi0+aXNTdGF0aWM7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1l
bnRlZEJ5fTo6JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwogICAgIH0gZWxzaWYgKCRm
dW5jdGlvbi0+aXNTdGF0aWMpIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVyZmFj
ZU5hbWV9Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggNWU0MmE3OTc4Yzc0OWZiZGZkMjgyMDg1ZGE4MjdiMzZhZDRm
MzFjYi4uNmMxNTZlNDFhZWIzNzY2MWYwMTE4YWUxZDNiZTVkZWI5Y2ExZWY0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTQ4LDcgKzk0OCw3IEBAIHZvaWQgSW50ZXJu
YWxzOjplbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKQogICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5k
b21XaW5kb3coKSkKICAgICAgICAgcmV0dXJuOwotICAgIFNwZWVjaFN5bnRoZXNpcyogc3ludGhl
c2lzID0gRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpzcGVlY2hTeW50aGVzaXMoZG9jdW1lbnQt
PmRvbVdpbmRvdygpKTsKKyAgICBTcGVlY2hTeW50aGVzaXMqIHN5bnRoZXNpcyA9IERPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKCpkb2N1bWVudC0+ZG9tV2luZG93KCkp
OwogICAgIGlmICghc3ludGhlc2lzKQogICAgICAgICByZXR1cm47CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266303</attachid>
            <date>2015-11-30 17:02:08 -0800</date>
            <delta_ts>2015-11-30 17:31:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151682-20151130170146.patch</filename>
            <type>text/plain</type>
            <size>26098</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RkNTRjYmZlNTMxNzQx
YTc1ZDY3ZTRmYzM2M2M2OGI3M2FmNzZmOC4uN2UwNmVjZjJjMTQzOGUzMDk4NWVhNmM2YWZkNGJm
NjJkOWFiNzI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTExLTMwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ1RURSBhdXRvZ2Vu
ZXJhdGVkIGJpbmRpbmdzIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MTY4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IEpTIGJpbmRpbmdzIHBhc3MgYSByZWZlcmVuY2Ug
dG8gdGhlIG9iamVjdCB3aGVuIGNhbGxpbmcgc3RhdGljIG1lbWJlciBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOYXZpZ2F0b3JHYW1lcGFkOjpnZXRHYW1lcGFkcyk6CisgICAgICAgICogTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRv
ckdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvbik6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
QXVkaW9UcmFja01lZGlhU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrTWVk
aWFTb3VyY2U6OnNvdXJjZUJ1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9U
ZXh0VHJhY2tNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTWVkaWFT
b3VyY2U6OnNvdXJjZUJ1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRl
b1RyYWNrTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tNZWRpYVNv
dXJjZTo6c291cmNlQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxN
ZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50TWVkaWFTdHJlYW06OnNyY09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW06OnNldFNyY09iamVjdCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaDoKKyAgICAgICAgKiBNb2R1
bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3dOb3RpZmljYXRpb25zOjp3ZWJraXROb3RpZmljYXRpb25zKToKKyAg
ICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oOgor
ICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOgorICAgICAgICAqIE1vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjp3ZWJraXROb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFs
U2NvcGVOb3RpZmljYXRpb25zLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RP
TVdpbmRvd1dlYkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRh
dGFiYXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9N
V2luZG93V2ViRGF0YWJhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAo
R2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNp
emVyKToKKwogMjAxNS0xMS0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTW9kZXJuIElEQjogUmVzb2x2ZSBmbGFreSBHQy12cy13cmFwcGVyIGlzc3VlIHdp
dGggSURCT3BlbkRCUmVxdWVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAppbmRleCA5NGY0NDVlZWU2MDJkYjg0ZTM5ZmVmZmFk
ZTU4OTY0ZjdiNjAyYjk2Li42ZTYwMzhkOTdjZWRkZTk0MjQ2YzQ5N2Q2YjkzNDkxZTc5NDc0OTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2Ft
ZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdh
bWVwYWQuY3BwCkBAIC04MSw5ICs4MSw5IEBAIFJlZjxHYW1lcGFkPiBOYXZpZ2F0b3JHYW1lcGFk
OjpnYW1lcGFkRnJvbVBsYXRmb3JtR2FtZXBhZChQbGF0Zm9ybUdhbWVwYWQmIHBsYXRmCiAgICAg
cmV0dXJuICptX2dhbWVwYWRzW2luZGV4XTsKIH0KIAotY29uc3QgVmVjdG9yPFJlZlB0cjxHYW1l
cGFkPj4mIE5hdmlnYXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKE5hdmlnYXRvciogbmF2aWdhdG9y
KQorY29uc3QgVmVjdG9yPFJlZlB0cjxHYW1lcGFkPj4mIE5hdmlnYXRvckdhbWVwYWQ6OmdldEdh
bWVwYWRzKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogewotICAgIHJldHVybiBOYXZpZ2F0b3JHYW1l
cGFkOjpmcm9tKG5hdmlnYXRvciktPmdhbWVwYWRzKCk7CisgICAgcmV0dXJuIE5hdmlnYXRvckdh
bWVwYWQ6OmZyb20oJm5hdmlnYXRvciktPmdhbWVwYWRzKCk7CiB9CiAKIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8R2FtZXBhZD4+JiBOYXZpZ2F0b3JHYW1lcGFkOjpnYW1lcGFkcygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaAppbmRleCBiY2Nj
ODc5YWQ2NTFjOTllMDExYWJmZmJiNjI5NzRmNzRmNDcwMWJlLi4zMTlkZDM5MTNjNjExZWI1OTU4
MmE2YzdlMDRmZDQ2Yzg5MGNkZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gVGhlIGFycmF5IG9mIEdhbWVwYWRzIG1pZ2h0IGJlIHNwYXJzZS4KICAgICAvLyBOdWxs
IGNoZWNraW5nIGVhY2ggZW50cnkgaXMgbmVjZXNzYXJ5LgotICAgIHN0YXRpYyBjb25zdCBWZWN0
b3I8UmVmUHRyPEdhbWVwYWQ+PiYgZ2V0R2FtZXBhZHMoTmF2aWdhdG9yKik7CisgICAgc3RhdGlj
IGNvbnN0IFZlY3RvcjxSZWZQdHI8R2FtZXBhZD4+JiBnZXRHYW1lcGFkcyhOYXZpZ2F0b3ImKTsK
IAogICAgIGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRp
b25TdGFydDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCmluZGV4IDdmOTVlYzU5Zjc2Y2NjNDQ1
ZTA3ZDgwZDU4ZjMyOTFjZDJkN2I3YzIuLmZmYTAwYzJkM2YwOGZmYzYwNmRmYjM1ZGFmZDkxOWMz
YTlkMTBmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCkBAIC02Niw5ICs2Niw5IEBAIHZvaWQg
TmF2aWdhdG9yR2VvbG9jYXRpb246OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCkKIH0K
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLUdlb2xvY2F0aW9uKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbjo6Z2VvbG9jYXRpb24oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCitHZW9sb2NhdGlvbiogTmF2
aWdhdG9yR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogewot
ICAgIHJldHVybiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbShuYXZpZ2F0b3IpLT5nZW9sb2Nh
dGlvbigpOworICAgIHJldHVybiBOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSgmbmF2aWdhdG9y
KS0+Z2VvbG9jYXRpb24oKTsKIH0KIAogR2VvbG9jYXRpb24qIE5hdmlnYXRvckdlb2xvY2F0aW9u
OjpnZW9sb2NhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmgKaW5kZXggMjAzN2VhOTI0ZmNh
NjA1ZDU2M2NmNzk4NTdiODY0ODk2MmM1ZDgxZS4uZjY4ZDA5MTYyYTA4NWZlZTZjZTBhNGJlMGNk
YWJiMzYwODA1ZTkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaApAQCAtMzgsNyArMzgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yR2VvbG9jYXRpb24oKTsKICAgICBzdGF0aWMgTmF2
aWdhdG9yR2VvbG9jYXRpb24qIGZyb20oTmF2aWdhdG9yKik7CiAKLSAgICBzdGF0aWMgR2VvbG9j
YXRpb24qIGdlb2xvY2F0aW9uKE5hdmlnYXRvciopOworICAgIHN0YXRpYyBHZW9sb2NhdGlvbiog
Z2VvbG9jYXRpb24oTmF2aWdhdG9yJik7CiAgICAgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKCkg
Y29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9BdWRpb1RyYWNrTWVkaWFTb3VyY2UuaAppbmRleCBkOWJl
ODExYTNjM2UzODc0MjA3ZmQyNjI1MzBiMjFkN2I4NzRjOTMxLi44Y2Y1MDE2YzIwOGNhODUxOWUy
MDdlOGY3OTM4MTg0ZDk5M2QxYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFja01lZGlhU291cmNlLmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgU291cmNlQnVmZmVyOwogCiBjbGFzcyBBdWRpb1RyYWNrTWVkaWFTb3VyY2Ug
ewogcHVibGljOgotICAgIHN0YXRpYyBTb3VyY2VCdWZmZXIqIHNvdXJjZUJ1ZmZlcihBdWRpb1Ry
YWNrKiB0cmFjaykgeyByZXR1cm4gdHJhY2stPnNvdXJjZUJ1ZmZlcigpOyB9CisgICAgc3RhdGlj
IFNvdXJjZUJ1ZmZlciogc291cmNlQnVmZmVyKEF1ZGlvVHJhY2smIHRyYWNrKSB7IHJldHVybiB0
cmFjay5zb3VyY2VCdWZmZXIoKTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9UZXh0VHJhY2tNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9UZXh0VHJhY2tNZWRpYVNvdXJjZS5oCmluZGV4IGYw
NTk1ZTUzNTVmMTUxYjRlMjIzYjIzNDczZjFjNmQ5ZWJlMjNhMDIuLmE5YWY3ZGI1MzYxMmNkNTNj
ZTBjZTAzMTgzMjkyZGZhODA1ZGI2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvVGV4dFRyYWNrTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1RleHRUcmFja01lZGlhU291cmNlLmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgU291cmNlQnVmZmVyOwogCiBjbGFzcyBUZXh0VHJhY2tNZWRpYVNvdXJjZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFNvdXJjZUJ1ZmZlciogc291cmNlQnVmZmVyKFRleHRUcmFj
ayogdHJhY2spIHsgcmV0dXJuIHRyYWNrLT5zb3VyY2VCdWZmZXIoKTsgfQorICAgIHN0YXRpYyBT
b3VyY2VCdWZmZXIqIHNvdXJjZUJ1ZmZlcihUZXh0VHJhY2smIHRyYWNrKSB7IHJldHVybiB0cmFj
ay5zb3VyY2VCdWZmZXIoKTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9WaWRlb1RyYWNrTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVmlkZW9UcmFja01lZGlhU291cmNlLmgKaW5kZXggZjdm
NWY2NDE5MTYzYjYwM2IyYjU2OGJjMjkyYzFkYmY3YWVjOWI4Yy4uY2UwMGUwNzA5NGMxNTA1YmM4
ODcyMDFlZDFlOGRhOTYzNWMwMzEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9WaWRlb1RyYWNrTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1ZpZGVvVHJhY2tNZWRpYVNvdXJjZS5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIAogY2xhc3MgVmlkZW9UcmFja01lZGlhU291cmNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgU291cmNlQnVmZmVyKiBzb3VyY2VCdWZmZXIoVmlkZW9U
cmFjayogdHJhY2spIHsgcmV0dXJuIHRyYWNrLT5zb3VyY2VCdWZmZXIoKTsgfQorICAgIHN0YXRp
YyBTb3VyY2VCdWZmZXIqIHNvdXJjZUJ1ZmZlcihWaWRlb1RyYWNrJiB0cmFjaykgeyByZXR1cm4g
dHJhY2suc291cmNlQnVmZmVyKCk7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlh
U3RyZWFtLmNwcAppbmRleCBkMmM5YjkzY2VlYzI2YWIwOTU2OTIwNWIwYzA1MjRhNDBlMDA4M2Nl
Li45ZjlmZGIxNWRmYjBjM2VkMDM3NjBkMjE1Y2IwMDg0ZDIxYjA2NWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0
cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwCkBAIC0zMywxNiArMzMsMTQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1NZWRpYVN0cmVhbSogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtOjpz
cmNPYmplY3QoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorTWVkaWFTdHJlYW0qIEhU
TUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQmIG1l
ZGlhRWxlbWVudCkKIHsKLSAgICBBU1NFUlQobWVkaWFFbGVtZW50KTsKLSAgICByZXR1cm4gbWVk
aWFFbGVtZW50LT5zcmNPYmplY3QoKTsKKyAgICByZXR1cm4gbWVkaWFFbGVtZW50LnNyY09iamVj
dCgpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c2V0U3JjT2JqZWN0
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCwgTWVkaWFTdHJlYW0qIG1lZGlhU3RyZWFt
KQordm9pZCBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW06OnNldFNyY09iamVjdChIVE1MTWVk
aWFFbGVtZW50JiBtZWRpYUVsZW1lbnQsIE1lZGlhU3RyZWFtKiBtZWRpYVN0cmVhbSkKIHsKLSAg
ICBBU1NFUlQobWVkaWFFbGVtZW50KTsKLSAgICBtZWRpYUVsZW1lbnQtPnNldFNyY09iamVjdCht
ZWRpYVN0cmVhbSk7CisgICAgbWVkaWFFbGVtZW50LnNldFNyY09iamVjdChtZWRpYVN0cmVhbSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVh
bS5oCmluZGV4IDgzYzUyMTJhYzYzODZiODE0MjVmYzFhNzVjYjhmODU4MWIzMDg0ZjguLjU0NGMw
ZmMxNTkxMjg1MjE5YzNkOTkxNzA5M2JiZDQwMTc0ZjhjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50
TWVkaWFTdHJlYW0uaApAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBNZWRpYVN0cmVhbTsKIAogY2xh
c3MgSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTWVk
aWFTdHJlYW0qIHNyY09iamVjdChIVE1MTWVkaWFFbGVtZW50Kik7Ci0gICAgc3RhdGljIHZvaWQg
c2V0U3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQqLCBNZWRpYVN0cmVhbSopOworICAgIHN0YXRp
YyBNZWRpYVN0cmVhbSogc3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQmKTsKKyAgICBzdGF0aWMg
dm9pZCBzZXRTcmNPYmplY3QoSFRNTE1lZGlhRWxlbWVudCYsIE1lZGlhU3RyZWFtKik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAKaW5kZXggNzFm
MDJkOTk0MmY3MGI4ZjU2YjU1NWRmYzhjMzdkYjM3YzRkYWVjYS4uM2FlZWI0Nzc3NjgyN2UzMDMz
ZWIzNDQ1OTIyNzlmNmViMDY3ZmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmNwcApAQCAtNjAs
OSArNjAsOSBAQCBOYXZpZ2F0b3JNZWRpYURldmljZXMqIE5hdmlnYXRvck1lZGlhRGV2aWNlczo6
ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKICAgICByZXR1cm4gc3VwcGxlbWVudDsKIH0KIAot
TWVkaWFEZXZpY2VzKiBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyhOYXZpZ2F0
b3IqIG5hdmlnYXRvcikKK01lZGlhRGV2aWNlcyogTmF2aWdhdG9yTWVkaWFEZXZpY2VzOjptZWRp
YURldmljZXMoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiB7Ci0gICAgcmV0dXJuIE5hdmlnYXRvck1l
ZGlhRGV2aWNlczo6ZnJvbShuYXZpZ2F0b3IpLT5tZWRpYURldmljZXMoKTsKKyAgICByZXR1cm4g
TmF2aWdhdG9yTWVkaWFEZXZpY2VzOjpmcm9tKCZuYXZpZ2F0b3IpLT5tZWRpYURldmljZXMoKTsK
IH0KIAogTWVkaWFEZXZpY2VzKiBOYXZpZ2F0b3JNZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05h
dmlnYXRvck1lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaAppbmRleCAzNWEwNDk5ZjNhNjNiODBlZDFkMDU2MjJj
YmMwYjRmZWJjMjlhOWMzLi4zOGFmMzAyNzAzYWZjNzMwZGFiM2FlYjlkZjcxMzIzZDBlOTIyODU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRv
ck1lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TmF2aWdhdG9yTWVkaWFEZXZpY2VzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfk5hdmlnYXRvck1lZGlhRGV2aWNlcygpOwogICAgIHN0YXRpYyBOYXZpZ2F0b3JNZWRp
YURldmljZXMqIGZyb20oTmF2aWdhdG9yKik7CiAKLSAgICBzdGF0aWMgTWVkaWFEZXZpY2VzKiBt
ZWRpYURldmljZXMoTmF2aWdhdG9yKik7CisgICAgc3RhdGljIE1lZGlhRGV2aWNlcyogbWVkaWFE
ZXZpY2VzKE5hdmlnYXRvciYpOwogICAgIE1lZGlhRGV2aWNlcyogbWVkaWFEZXZpY2VzKCkgY29u
c3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKaW5kZXggYmQyYTFh
MzA5M2YyN2M1YjM3MTAzZjZlOWU4OGUyZmRhZWQ4NTY0NC4uMWNmNGM3OGRlZjdmZjEzY2E1Nzli
ZDI2NmNmNWVlYmI2MWY0ODgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcApAQCAt
NjMsOSArNjMsOSBAQCBET01XaW5kb3dOb3RpZmljYXRpb25zKiBET01XaW5kb3dOb3RpZmljYXRp
b25zOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogICAgIHJldHVybiBzdXBwbGVtZW50OwogfQog
Ci1Ob3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlm
aWNhdGlvbnMoRE9NV2luZG93KiB3aW5kb3cpCitOb3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRv
d05vdGlmaWNhdGlvbnM6OndlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93JiB3aW5kb3cpCiB7
Ci0gICAgcmV0dXJuIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20od2luZG93KS0+d2Via2l0
Tm90aWZpY2F0aW9ucygpOworICAgIHJldHVybiBET01XaW5kb3dOb3RpZmljYXRpb25zOjpmcm9t
KCZ3aW5kb3cpLT53ZWJraXROb3RpZmljYXRpb25zKCk7CiB9CiAKIHZvaWQgRE9NV2luZG93Tm90
aWZpY2F0aW9uczo6ZGlzY29ubmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5oCmluZGV4IDdlOTk3MjgwYjBiODc4Mjc0ZjhlOTAwOTYzZTIwZDQyYzc2MDY3MWEu
LjQxZTE2MGQ0N2U2OWY3OGFiMWRjNmZlYzQ4MDRhMjM2MDU0ZTBkZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05v
dGlmaWNhdGlvbnMuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgRE9N
V2luZG93Tm90aWZpY2F0aW9ucyhET01XaW5kb3cqKTsKICAgICB2aXJ0dWFsIH5ET01XaW5kb3dO
b3RpZmljYXRpb25zKCk7CiAKLSAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2VudGVyKiB3ZWJraXRO
b3RpZmljYXRpb25zKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBOb3RpZmljYXRpb25DZW50ZXIq
IHdlYmtpdE5vdGlmaWNhdGlvbnMoRE9NV2luZG93Jik7CiAgICAgc3RhdGljIERPTVdpbmRvd05v
dGlmaWNhdGlvbnMqIGZyb20oRE9NV2luZG93Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29u
bmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDhmNzBmZTEz
NDUxMDliNWUyNDE2ZTM1ZTE1NTBhNzE4NTU1MTk2ZmUuLmY3NTE5ZmVlMTAwY2EwY2M4ODE0OGE3
OWI5NzhlN2ZhYzEzOGY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC04Niw3ICs4Niw3IEBAIE5vdGlmaWNh
dGlvbjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgdGl0bGUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX3Rhc2tUaW1lcihz
dGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJk5vdGlmaWNhdGlvbjo6dGFza1RpbWVyRmly
ZWQpKQogewotICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyhkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuZG9tV2lu
ZG93KCkpOworICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyID0gRE9NV2luZG93Tm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucygqZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdp
bmRvdygpKTsKICAgICAKICAgICBBU1NFUlQobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgp
KTsKICAgICBtX3Rhc2tUaW1lci0+c3RhcnRPbmVTaG90KDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xv
YmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcAppbmRleCA0ZTFlNjc1MDY3YmFkZDQxZDE0YjNmMjMz
MDdjZGJjNzYyNWVmNjY2Li5iMjI0ZmFlNTMwOTU3ZTFiOTdkNTE2MGY0ZDA4YmMyMzdmMDdlYzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2Vy
R2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcApAQCAtNjEs
OSArNjEsOSBAQCBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMqIFdvcmtlckdsb2JhbFNj
b3BlTm90aWZpY2F0aW9uczo6ZnJvbShXb3JrZXJHbG9iYQogICAgIHJldHVybiBzdXBwbGVtZW50
OwogfQogCi1Ob3RpZmljYXRpb25DZW50ZXIqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9u
czo6d2Via2l0Tm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKK05vdGlm
aWNhdGlvbkNlbnRlciogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjp3ZWJraXROb3Rp
ZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KQogewotICAgIHJldHVybiBXb3Jr
ZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnM6OmZyb20oY29udGV4dCktPndlYmtpdE5vdGlmaWNh
dGlvbnMoKTsKKyAgICByZXR1cm4gV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zOjpmcm9t
KCZjb250ZXh0KS0+d2Via2l0Tm90aWZpY2F0aW9ucygpOwogfQogCiBOb3RpZmljYXRpb25DZW50
ZXIqIFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9uczo6d2Via2l0Tm90aWZpY2F0aW9ucygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2Vy
R2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmgKaW5kZXggN2RhNTI5YmYw
YWM2NTIyZTRkMzdjNzQ5Mzk5YTA3NTc0NWE4YTI4OC4uOTBiYTUxMTM4ZWViNTViMWU3MTJlYWY5
Mzk1ZGM5OWM0OWQ3ZjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL1dvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlv
bnMuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV29ya2VyR2xvYmFs
U2NvcGVOb3RpZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlKik7CiAgICAgdmlydHVhbCB+V29y
a2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zKCk7CiAKLSAgICBzdGF0aWMgTm90aWZpY2F0aW9u
Q2VudGVyKiB3ZWJraXROb3RpZmljYXRpb25zKFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAgc3Rh
dGljIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9ucyhXb3JrZXJHbG9iYWxT
Y29wZSYpOwogICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMqIGZyb20o
V29ya2VyR2xvYmFsU2NvcGUqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCmluZGV4
IGMzNzdiOWIyMWJkN2FiMGM2NzRiNzQ1YjhkMmVjYTVkYTk2ZGQ4MzQuLjY5N2Y0ZTY4YTRlNGU3
N2Q2NTc1Y2ExYTY1MjE0OTNhNTY0MDdlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcApAQCAtNjUs
OSArNjUsOSBAQCBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykKIH0KIAogLy8gc3RhdGljCi1TcGVlY2hTeW50
aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKERPTVdpbmRv
dyogd2luZG93KQorU3BlZWNoU3ludGhlc2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OnNw
ZWVjaFN5bnRoZXNpcyhET01XaW5kb3cmIHdpbmRvdykKIHsKLSAgICByZXR1cm4gRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzOjpmcm9tKHdpbmRvdyktPnNwZWVjaFN5bnRoZXNpcygpOworICAgIHJl
dHVybiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OmZyb20oJndpbmRvdyktPnNwZWVjaFN5bnRo
ZXNpcygpOwogfQogCiBTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6
c3BlZWNoU3ludGhlc2lzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKaW5kZXggMTU2NzdlNTAyNjA1YjEyZWM4
ODQ2OTJjYzZiMWYyMjg3ZDU2NzE1OS4uNDIzMjMxZGI2YjRlMGFjOTQ1NjRkMDc1MjA3YzQ3YmNk
N2QxOGUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAg
IGV4cGxpY2l0IERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyhET01XaW5kb3cqKTsKICAgICB2aXJ0
dWFsIH5ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMoKTsKICAgICAKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgU3BlZWNoU3ludGhlc2lzKiBzcGVlY2hTeW50aGVzaXMoRE9NV2luZG93Kik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFN5bnRoZXNpcyogc3BlZWNoU3ludGhlc2lz
KERPTVdpbmRvdyYpOwogICAgIHN0YXRpYyBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIGZyb20o
RE9NV2luZG93Kik7CiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAppbmRleCAx
MjE3ZTViZTllY2I3ZmJlNDc0Yzc2OTQ5OGI1ZTc3YzdmYWIxYmFiLi41YjlmZGIzMmIxYTFhOGNi
NDAwYTY4YTMyZGVkZTZiODEwODY3MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcApAQCAtMzcs
MTYgKzM3LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPERhdGFiYXNlPiBE
T01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyogd2luZG93LCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPERhdGFiYXNl
Q2FsbGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPERh
dGFiYXNlPiBET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyYgd2lu
ZG93LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRy
PERhdGFiYXNlQ2FsbGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICBp
ZiAoIXdpbmRvdy5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlID0gbnVsbHB0cjsKICAg
ICBEYXRhYmFzZU1hbmFnZXImIGRiTWFuYWdlciA9IERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9u
KCk7CiAgICAgRGF0YWJhc2VFcnJvciBlcnJvciA9IERhdGFiYXNlRXJyb3I6Ok5vbmU7Ci0gICAg
aWYgKGRiTWFuYWdlci5pc0F2YWlsYWJsZSgpICYmIHdpbmRvdy0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2Uod2luZG93LT5kb2N1bWVudCgpLT50b3BPcmln
aW4oKSkpIHsKLSAgICAgICAgZGF0YWJhc2UgPSBkYk1hbmFnZXIub3BlbkRhdGFiYXNlKHdpbmRv
dy0+ZG9jdW1lbnQoKSwgbmFtZSwgdmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUs
IGNyZWF0aW9uQ2FsbGJhY2ssIGVycm9yKTsKKyAgICBpZiAoZGJNYW5hZ2VyLmlzQXZhaWxhYmxl
KCkgJiYgd2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFi
YXNlKHdpbmRvdy5kb2N1bWVudCgpLT50b3BPcmlnaW4oKSkpIHsKKyAgICAgICAgZGF0YWJhc2Ug
PSBkYk1hbmFnZXIub3BlbkRhdGFiYXNlKHdpbmRvdy5kb2N1bWVudCgpLCBuYW1lLCB2ZXJzaW9u
LCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSwgY3JlYXRpb25DYWxsYmFjaywgZXJyb3IpOwog
ICAgICAgICBBU1NFUlQoZGF0YWJhc2UgfHwgZXJyb3IgIT0gRGF0YWJhc2VFcnJvcjo6Tm9uZSk7
CiAgICAgICAgIGVjID0gRGF0YWJhc2VNYW5hZ2VyOjpleGNlcHRpb25Db2RlRm9yRGF0YWJhc2VF
cnJvcihlcnJvcik7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKaW5kZXggYmZkNzFhOGU5
ZmYyYWZlMTdiOGU5MmY1Njk3OTE5MDZmNjI1OWRmMy4uNjU2Zjg4MzE4M2ZjMDk5ZWU5MDkwYmY0
Y2Y5ZTNhOGMzZjMzODJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBGcmFtZTsKIAogY2xhc3MgRE9NV2luZG93V2ViRGF0YWJhc2UgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8RGF0YWJhc2U+IG9wZW5EYXRhYmFzZShET01XaW5kb3cqLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPERhdGFiYXNlQ2Fs
bGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVm
UHRyPERhdGFiYXNlPiBvcGVuRGF0YWJhc2UoRE9NV2luZG93JiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2ln
bmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1JlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVh
dGlvbkNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgRE9NV2luZG93
V2ViRGF0YWJhc2UoKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDQ0ODVlZGRkZWVlMzlhNGZkNzNmMGRlOTMxZGMy
OTA1MmRmZjFhMmIuLmI2ZDVkOTQ3YTBiY2EzMGZhZTRkODZmZDE1YTVlNmI5YTEzMTM4ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0yNDQwLDcgKzI0NDAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ltcGxlbWVudGVkQnl9LmgifSA9IDE7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIldlYkNvcmU6OiR7aW1wbGVt
ZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNo
aWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgImltcGwiKSBpZiAhJGF0dHJp
YnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUt
PmlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7
aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CkBAIC0yNzk3LDcgKzI3OTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBt
eSAkaW1wbGVtZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkltcGxlbWVudGVkQnkifTsKICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1w
bEluY2x1ZGVzKCIke2ltcGxlbWVudGVkQnl9LmgiLCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBsIikgaWYgISRhdHRyaWJ1dGUtPmlzU3RhdGlj
OworICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCAiaW1wbCIpIGlm
ICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9IjsKICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbnRlcmZhY2VOYW1lfTo6JHtm
dW5jdGlvbk5hbWV9IjsKQEAgLTMzMTYsNyArMzMxNiw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjawogICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgaWYgKCRpbXBsZW1lbnRl
ZEJ5KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIke2ltcGxlbWVudGVkQnl9LmgiLCAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0p
OwotICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkZnVuY3Rpb24tPmlz
U3RhdGljOworICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICJpbXBsIikgaWYgISRmdW5jdGlv
bi0+aXNTdGF0aWM7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiV2ViQ29yZTo6JHtpbXBsZW1l
bnRlZEJ5fTo6JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwogICAgIH0gZWxzaWYgKCRm
dW5jdGlvbi0+aXNTdGF0aWMpIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVyZmFj
ZU5hbWV9Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCmluZGV4IDMyOTc5NDY2MzFhODcxNGU5MjA1NTg0ZTljZWI4MWNkZWNmYTYzYTEuLjVmYTk2
MzU2YjNlMDA5NmQ0NDY1NjdkMmMxZTZjNDljMDBmYjI1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCkBAIC01NTYsNyArNTU2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEIKICAgICAgICAg
cmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RJbnRlcmZhY2UiLCAic3Vw
cGxlbWVudGFsU3RyMSIpOwogICAgIH0KICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3Jh
cHBlZCgpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUsIFdl
YkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoJmltcGwpKTsKKyAgICBK
U1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBXZWJDb3JlOjpUZXN0U3Vw
cGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKGltcGwpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTU3NSw3ICs1NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QgogICAgICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVz
dEludGVyZmFjZSIsICJzdXBwbGVtZW50YWxTdHIyIik7CiAgICAgfQogICAgIGF1dG8mIGltcGwg
PSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmluZ1dp
dGhDYWNoZShzdGF0ZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3Ry
MigmaW1wbCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUs
IFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjIoaW1wbCkpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtNjA2LDcgKzYwNiw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCCiAgICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVF
cnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRhbE5vZGUiKTsKICAgICB9
CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBKU1ZhbHVlIHJl
c3VsdCA9IHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0
cihXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKCZpbXBsKSkpOwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIFdURjo6Z2V0UHRyKFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5v
ZGUoaW1wbCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAg
LTc0MSw3ICs3NDEsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsCiAgICAgU3RyaW5nIG5hdGl2
ZVZhbHVlID0gdmFsdWUudG9TdHJpbmcoc3RhdGUpLT52YWx1ZShzdGF0ZSk7CiAgICAgaWYgKFVO
TElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKLSAgICBXZWJD
b3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIyKCZpbXBsLCBuYXRpdmVW
YWx1ZSk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3Ry
MihpbXBsLCBuYXRpdmVWYWx1ZSk7CiB9CiAKICNlbmRpZgpAQCAtNzc3LDcgKzc3Nyw3IEBAIHZv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogYmFzZU9iamVjdCwKICAgICBOb2RlKiBuYXRpdmVWYWx1ZSA9IEpTTm9kZTo6dG9X
cmFwcGVkKHZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBs
ZW1lbnRhbE5vZGUoJmltcGwsIG5hdGl2ZVZhbHVlKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxl
bWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKGltcGwsIG5hdGl2ZVZhbHVlKTsKIH0KIAogI2Vu
ZGlmCkBAIC04NjIsNyArODYyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEKICAgICAgICAg
cmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBs
ZW1lbnRhbE1ldGhvZDEiKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdEludGVyZmFjZTo6aW5mbygpKTsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhp
cy0+d3JhcHBlZCgpOwotICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRh
bE1ldGhvZDEoJmltcGwpOworICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1l
bnRhbE1ldGhvZDEoaW1wbCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIApAQCAtODg5LDcgKzg4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyCiAg
ICAgVGVzdE9iaiogb2JqQXJnID0gSlNUZXN0T2JqOjp0b1dyYXBwZWQoc3RhdGUtPmFyZ3VtZW50
KDEpKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihX
ZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKCZpbXBsLCBzY3Jp
cHRDb250ZXh0LCBzdHJBcmcsIG9iakFyZywgZWMpKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSB0
b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoV2ViQ29y
ZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMihpbXBsLCBzY3JpcHRDb250
ZXh0LCBzdHJBcmcsIG9iakFyZywgZWMpKSk7CiAKICAgICBzZXRET01FeGNlcHRpb24oc3RhdGUs
IGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggNWU0MmE3OTc4Yzc0OWZiZGZkMjgyMDg1ZGE4MjdiMzZh
ZDRmMzFjYi4uNmMxNTZlNDFhZWIzNzY2MWYwMTE4YWUxZDNiZTVkZWI5Y2ExZWY0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTQ4LDcgKzk0OCw3IEBAIHZvaWQgSW50
ZXJuYWxzOjplbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKQogICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT5kb21XaW5kb3coKSkKICAgICAgICAgcmV0dXJuOwotICAgIFNwZWVjaFN5bnRoZXNpcyogc3lu
dGhlc2lzID0gRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpzcGVlY2hTeW50aGVzaXMoZG9jdW1l
bnQtPmRvbVdpbmRvdygpKTsKKyAgICBTcGVlY2hTeW50aGVzaXMqIHN5bnRoZXNpcyA9IERPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKCpkb2N1bWVudC0+ZG9tV2luZG93
KCkpOwogICAgIGlmICghc3ludGhlc2lzKQogICAgICAgICByZXR1cm47CiAgICAgCg==
</data>
<flag name="review"
          id="291319"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>