<?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>126318</bug_id>
          
          <creation_ts>2013-12-30 19:15:03 -0800</creation_ts>
          <short_desc>Element&apos;s renderer factory should return RenderPtrs.</short_desc>
          <delta_ts>2013-12-31 06:01:50 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963432</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-12-30 19:15:03 -0800</bug_when>
    <thetext>Element&apos;s renderer factory should return RenderPtrs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963433</commentid>
    <comment_count>1</comment_count>
      <attachid>220140</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-12-30 19:15:39 -0800</bug_when>
    <thetext>Created attachment 220140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963502</commentid>
    <comment_count>2</comment_count>
      <attachid>220140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-31 06:01:48 -0800</bug_when>
    <thetext>Comment on attachment 220140
Patch

Clearing flags on attachment: 220140

Committed r161181: &lt;http://trac.webkit.org/changeset/161181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963503</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-31 06:01:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220140</attachid>
            <date>2013-12-30 19:15:39 -0800</date>
            <delta_ts>2013-12-31 06:01:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126318.diff</filename>
            <type>text/plain</type>
            <size>107434</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNmVkYTc4Li41OWZjNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkg
QEAKIDIwMTMtMTItMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIEVsZW1lbnQncyByZW5kZXJlciBmYWN0b3J5IHNob3VsZCByZXR1cm4gUmVuZGVyUHRycy4K
KyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNjMxOD4KKworICAgICAgICBSZW5hbWUg
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoKSB0byBjcmVhdGVFbGVtZW50UmVuZGVyZXIoKSBhbmQg
aGF2ZQorICAgICAgICBpdCByZXR1cm4gUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+LiBQcm9wYWdh
dGUgc2lnbmF0dXJlIHVudGlsIGl0CisgICAgICAgIGJ1aWxkcyBhZ2Fpbi4KKworICAgICAgICBX
ZSBsZWFrUHRyKCkgdGhlIHJlbmRlcmVyIGF0IHR3byBjYWxsIHNpdGVzIHdoZW4gaGFuZGluZyB0
aGluZ3Mgb3ZlcgorICAgICAgICB0byByYXcgcG9pbnRlciBBUEkuIFRoaXMnbGwgZ2V0IHRpZGll
ZCB1cCBpbiBzdWJzZXF1ZW50IHBhdGNoZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKzIwMTMtMTItMzAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29t
PgorCiAgICAgICAgIElucHV0VHlwZSBzaG91bGQgcmV0dXJuIGlucHV0IHJlbmRlcmVycyB3cmFw
cGVkIGluIFJlbmRlclB0ci4KICAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNjMwNz4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxh
Y2VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1l
bnQuaAppbmRleCA4OTdiMWE2Li5iMDhmNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBQbHVnaW5SZXBsYWNlbWVudF9oCiAjZGVmaW5lIFBsdWdpblJlcGxhY2VtZW50X2gKIAor
I2luY2x1ZGUgIlJlbmRlclB0ci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ4LDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2JqZWN0KCkgeyByZXR1cm4gMDsgfQog
CiAgICAgdmlydHVhbCBib29sIHdpbGxDcmVhdGVSZW5kZXJlcigpIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihIVE1MUGx1Z0luRWxl
bWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KSA9IDA7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50Jiwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4pID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFBsdWdpblJlcGxh
Y2VtZW50KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMv
UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
bHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCAwYzI5MzY3Li4yZWRk
Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1l
UGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTExNywxNCArMTE3LDE0IEBAIFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Ojp+UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQoKQog
ICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsKIH0KIAotUmVuZGVyRWxlbWVudCogUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50JiBw
bHVnaW4sIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRN
TFBsdWdJbkVsZW1lbnQmIHBsdWdpbiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRChwbHVnaW4sIG1fcGFyZW50RWxlbWVudCA9PSAmcGx1Z2luKTsKIAog
ICAgIGlmIChtX21lZGlhRWxlbWVudCkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50LT5j
cmVhdGVSZW5kZXJlcihzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIG1fbWVkaWFF
bGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3RkOjptb3ZlKHN0eWxlKSk7CiAKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogRE9NV3JhcHBlcldvcmxkJiBRdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6aXNvbGF0ZWRXb3JsZCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVu
dC5oCmluZGV4IDVhMTkwN2MuLmNhOThmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmplY3QqIHNjcmlwdE9i
amVjdCgpIE9WRVJSSURFIHsgcmV0dXJuIG1fc2NyaXB0T2JqZWN0OyB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9tZWRpYUVsZW1l
bnQ7IH0KLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKEhUTUxQbHVn
SW5FbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0lu
RWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBtb3ZpZVNpemUoKSBjb25zdDsKICAgICB2b2lkIHBvc3RFdmVudChjb25zdCBT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlNTQzZjNhLi5kOWRkNmJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMzQwLDcgKzEzNDAsNyBAQCBib29sIEVsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBzdHls
ZS5kaXNwbGF5KCkgIT0gTk9ORTsKIH0KIAotUmVuZGVyRWxlbWVudCogRWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQogewogICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0
ZDo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYTNkYTE2NC4uMTFlZGVh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTAsNyArMzEwLDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBsYXp5UmVhdHRhY2goKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRl
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPik7
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsK
ICAgICB2b2lkIGRpZEFmZmVjdFNlbGVjdG9yKEFmZmVjdGVkU2VsZWN0b3JNYXNrKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAppbmRleCBiZjIxMzUyMi4uNjUz
MWQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKQEAgLTc1
LDcgKzc1LDcgQEAgYm9vbCBIVE1MQXBwbGV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MQXBwbGV0
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoIWNhbkVtYmVkSmF2
YSgpKQogICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaAppbmRl
eCAyM2RiZDc5Li5kNDUwMzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
cHBsZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVu
dC5oCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklE
RTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9y
SlNCaW5kaW5ncygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoUGx1Z2lu
Q3JlYXRpb25PcHRpb24pIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQlJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5j
cHAKaW5kZXggMDA1YmVlZC4uNWVlYTg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQlJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1l
bnQuY3BwCkBAIC03MSwxMiArNzEsMTIgQEAgdm9pZCBIVE1MQlJFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEKICAgICAg
ICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSwgc3R5bGUpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MQlJFbGVtZW50OjpjcmVh
dGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CiAKLSAgICByZXR1cm4gbmV3IFJlbmRlckxpbmVCcmVhaygqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpbmVCcmVhaz4oKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5oCmluZGV4IDY1YWM1ODguLmUyZmM3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4pIE9WRVJSSURFOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNzJhOTA0OC4uYmNlZWVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgdm9pZCBI
VE1MQnV0dG9uRWxlbWVudDo6c2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiAgICAg
c2V0QXR0cmlidXRlKHR5cGVBdHRyLCB0eXBlKTsKIH0KIAotUmVuZGVyRWxlbWVudCogSFRNTEJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQor
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxCdXR0b25FbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBS
ZW5kZXJCdXR0b24oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJCdXR0b24+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAppbmRleCBiNDYzMTljLi5h
NGU1ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0
ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAgLy8gSFRNTEZvcm1Db250cm9sRWxlbWVudCBhbHdh
eXMgY3JlYXRlcyBvbmUsIGJ1dCBidXR0b25zIGRvbid0IG5lZWQgaXQuCiAgICAgdmlydHVhbCBi
b29sIGFsd2F5c0NyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCAyZGQ4NDVhLi41OGRiZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcApAQCAtMTEyLDE2ICsxMTIsMTYgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3QK
ICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCi1SZW5k
ZXJFbGVtZW50KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsK
ICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKGZyYW1lICYm
IGZyYW1lLT5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlw
dCkpIHsKICAgICAgICAgbV9yZW5kZXJlcklzQ2FudmFzID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJu
IG5ldyBSZW5kZXJIVE1MQ2FudmFzKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckhUTUxDYW52YXM+KCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKICAgICB9CiAKICAgICBtX3JlbmRlcmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOworICAg
IHJldHVybiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0ZDo6bW92ZShzdHls
ZSkpOwogfQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojp3aWxsQXR0YWNoUmVuZGVyZXJzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBmMzc3MmNjLi44MWFh
NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xNTAsNyAr
MTUwLDcgQEAgcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBh
cmVBdXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggOGEyNzIzNy4uY2FlMTEyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMTEwLDkgKzEx
MCw5IEBAIEhUTUxEZXRhaWxzRWxlbWVudDo6SFRNTERldGFpbHNFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZGV0
YWlsc1RhZykpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyQmxvY2tGbG93KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
QmxvY2tGbG93PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIHZvaWQgSFRNTERldGFp
bHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCBjMTQyOGU2Li44Nzk4
MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTM1LDcg
KzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQq
IGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDZkMmE2
ZGIuLjNjZTMyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC03OTgsMTAg
Kzc5OCwxMCBAQCBib29sIEhUTUxFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChzdHlsZSk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIEhUTUxFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBI
VE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQogewogICAgIGlmIChoYXNMb2NhbE5hbWUod2JyVGFnKSkKLSAgICAgICAgcmV0dXJuIG5l
dyBSZW5kZXJMaW5lQnJlYWsoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTGluZUJyZWFrPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCA1Y2FmNDc1Li41
ZGZmNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1
YmxpYzoKICAgICBib29sIGllRm9yYmlkc0luc2VydEhUTUwoKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAg
IEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1YWxGb3JtKCk7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggOTI3
OWU0YS4uZDZlZGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuY3BwCkBAIC04MSw5ICs4MSw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEZpZWxkU2V0
RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4gZmllbGRzZXQ7CiB9
CiAKLVJlbmRlckVsZW1lbnQqIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxG
aWVsZFNldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlckZpZWxkc2V0KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRmllbGRzZXQ+KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogSFRNTExlZ2VuZEVsZW1lbnQqIEhUTUxGaWVs
ZFNldEVsZW1lbnQ6OmxlZ2VuZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oCmluZGV4IGY0NDNhODkuLmQzMzFiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNv
bnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVF
bGVtZW50LmNwcAppbmRleCA0OTcxY2M3Li5jOTYxZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5jcHAKQEAgLTU0LDkgKzU0LDkgQEAgYm9vbCBIVE1MRnJhbWVFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKICAgICByZXR1cm4gaXNV
UkxBbGxvd2VkKCk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIEhUTUxGcmFtZUVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlckZyYW1lKCp0aGlzLCBz
dGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRnJhbWU+
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBIVE1MRnJhbWVFbGVtZW50Ojpu
b1Jlc2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4
IDdlZWE0MTkuLmMxYzQyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5o
CkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJl
bmRlcmVycygpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgUmVuZGVyU3R5bGUmKTsKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4pIE9WRVJSSURFOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCmluZGV4IDkzMjFjN2Eu
LjZiNzkzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNw
cApAQCAtMTU1LDEyICsxNTUsMTIgQEAgYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gc3R5bGUuaXNT
dHlsZUF2YWlsYWJsZSgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MRnJhbWVTZXRFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0Nv
bnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywg
c3RkOjptb3ZlKHN0eWxlKSk7CiAgICAgCi0gICAgcmV0dXJuIG5ldyBSZW5kZXJGcmFtZVNldCgq
dGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ckZyYW1lU2V0PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIEhUTUxGcmFtZVNldEVs
ZW1lbnQqIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmZpbmRDb250YWluaW5nKEVsZW1lbnQqIGRlc2Nl
bmRhbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IDE0
N2M5NTcuLjVlMTE2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVu
dC5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0
dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
Y3BwCmluZGV4IGE4ZWNhYmUuLmEyZjlkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwCkBAIC05NSw5ICs5NSw5IEBAIGJvb2wgSFRNTElGcmFtZUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBp
c1VSTEFsbG93ZWQoKSAmJiBzdHlsZS5kaXNwbGF5KCkgIT0gTk9ORTsKIH0KIAotUmVuZGVyRWxl
bWVudCogSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIG5ldyBSZW5kZXJJRnJhbWUoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJRnJhbWU+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUp
KTsKIH0KIAogYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6c2hvdWxkRGlzcGxheVNlYW1sZXNzbHko
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDQ3MGRk
NjEuLmY3MWIzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwotICAgIHZpcnR1YWwg
UmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkgT1ZFUlJJREU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYjU1OTYwZC4uYTM3MzBiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC0xNzQsMTQgKzE3NCwx
NCBAQCBTdHJpbmcgSFRNTEltYWdlRWxlbWVudDo6YWx0VGV4dCgpIGNvbnN0CiAgICAgcmV0dXJu
IGFsdDsKIH0KIAotUmVuZGVyRWxlbWVudCogSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQogewogICAgIGlmIChzdHlsZS5nZXQoKS5oYXNDb250ZW50KCkpCiAgICAgICAg
IHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OwogCi0gICAgUmVuZGVySW1hZ2UqIGltYWdlID0gbmV3IFJlbmRlckltYWdlKCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKKyAgICBhdXRvIGltYWdlID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1h
Z2U+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJj
ZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7Ci0gICAgcmV0dXJuIGltYWdlOworICAg
IHJldHVybiBzdGQ6Om1vdmUoaW1hZ2UpOwogfQogCiBib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmNh
blN0YXJ0U2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmgKaW5kZXggMTNiNGU5MS4uYWU5ODYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzMGUyNWY1Li44MjYxYmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTc4MCw5ICs3ODAsOSBA
QCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlKQogICAgIHJldHVybiBtX2lucHV0VHlwZS0+cmVuZGVyZXJJc05lZWRlZCgpICYm
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0K
IAotUmVuZGVyRWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElucHV0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQogewotICAgIHJldHVybiBtX2lucHV0VHlwZS0+Y3JlYXRlSW5wdXRSZW5kZXJlcihzdGQ6Om1v
dmUoc3R5bGUpKS5sZWFrUHRyKCk7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5jcmVhdGVJbnB1
dFJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OndpbGxBdHRhY2hSZW5kZXJlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAppbmRleCBhZjQ1MjUyLi43M2EyM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaApAQCAtMjA5LDcgKzIwOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkhhdmVTZWxl
Y3Rpb24oKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVy
cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzYWEyOTVhLi4yNWNh
Mjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY0OSwy
MiArNjQ5LDIyIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIGNvbnRyb2xzKCkgJiYgSFRNTEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MTWVk
aWFFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1Jl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAjaWYgRU5BQkxFKFBMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pCiAgICAgaWYgKHNob3VsZFVzZVZpZGVvUGx1Z2luUHJveHkoKSkgewog
ICAgICAgICAvLyBTZXR1cCB0aGUgcmVuZGVyZXIgaWYgd2UgYWxyZWFkeSBoYXZlIGEgcHJveHkg
d2lkZ2V0LgotICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogbWVkaWFSZW5kZXJlciA9IG5l
dyBSZW5kZXJFbWJlZGRlZE9iamVjdCgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAg
IGF1dG8gbWVkaWFSZW5kZXJlciA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckVtYmVkZGVkT2JqZWN0
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAgICAgICAgIGlmIChtX3Byb3h5V2lkZ2V0KSB7
CiAgICAgICAgICAgICBtZWRpYVJlbmRlcmVyLT5zZXRXaWRnZXQobV9wcm94eVdpZGdldCk7CiAK
ICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAg
ICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnNob3dNZWRpYVBsYXllclByb3h5
UGx1Z2luKG1fcHJveHlXaWRnZXQuZ2V0KCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBt
ZWRpYVJlbmRlcmVyOworICAgICAgICByZXR1cm4gc3RkOjptb3ZlKG1lZGlhUmVuZGVyZXIpOwog
ICAgIH0KICNlbmRpZgotICAgIHJldHVybiBuZXcgUmVuZGVyTWVkaWEoKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRpYT4oKnRoaXMs
IHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDA5NWM0YjcuLjFmNjI5YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00NzksNyArNDc5LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogI2Vu
ZGlmCiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURF
OwogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IGRhMDFmM2MuLjVlOWIwZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtNTcsMTIgKzU3LDEyIEBA
IFBhc3NSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAgICAgcmV0dXJuIG1ldGVyOwogfQogCi1SZW5kZXJF
bGVtZW50KiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAg
aWYgKGhhc0F1dGhvclNoYWRvd1Jvb3QoKSB8fCAhZG9jdW1lbnQoKS5wYWdlKCktPnRoZW1lKCku
c3VwcG9ydHNNZXRlcihzdHlsZS5nZXQoKS5hcHBlYXJhbmNlKCkpKQogICAgICAgICByZXR1cm4g
UmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIAotICAg
IHJldHVybiBuZXcgUmVuZGVyTWV0ZXIoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZXRlcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OwogfQogCiBib29sIEhUTUxNZXRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVu
dC5oCmluZGV4IDIyZDkxOWIuLjFhMzRmY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRMYWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgcmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IGE2YmZjYTQuLmUwNTE2OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0yNzQsMTIgKzI3NCwxMiBA
QCBOUE9iamVjdCogSFRNTFBsdWdJbkVsZW1lbnQ6OmdldE5QT2JqZWN0KCkKIAogI2VuZGlmIC8q
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAqLwogCi1SZW5kZXJFbGVtZW50KiBIVE1MUGx1
Z0luRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAobV9wbHVnaW5S
ZXBsYWNlbWVudCAmJiBtX3BsdWdpblJlcGxhY2VtZW50LT53aWxsQ3JlYXRlUmVuZGVyZXIoKSkK
LSAgICAgICAgcmV0dXJuIG1fcGx1Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZVJlbmRlcmVyKCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIG1fcGx1Z2luUmVwbGFjZW1lbnQt
PmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAKLSAgICBy
ZXR1cm4gbmV3IFJlbmRlckVtYmVkZGVkT2JqZWN0KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
KyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCp0aGlzLCBz
dGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6c3dhcFJlbmRl
cmVyVGltZXJGaXJlZChUaW1lcjxIVE1MUGx1Z0luRWxlbWVudD4qKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IDgzM2U5ZWUuLjEwZDYzN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0T2JqZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKLSAgICB2aXJ0dWFsIFJlbmRlckVs
ZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRV
c2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBPVkVSUklERTsKIAogICAgIC8vIFN1YmNs
YXNzZXMgc2hvdWxkIHVzZSBndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW5zdGVhZCBv
ZiBjYWxsaW5nIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IGRpcmVjdGx5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggNTQxMTRiZS4uYWNh
ZTJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6Ondv
dWxkTG9hZEFzTmV0c2NhcGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpj
cmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID49
IFByZXBhcmluZ1BsdWdpblJlcGxhY2VtZW50KQotICAgICAgICByZXR1cm4gSFRNTFBsdWdJbkVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
SFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdGQ6Om1vdmUoc3R5bGUp
KTsKIAogICAgIC8vIE9uY2UgYSBQbHVnSW4gRWxlbWVudCBjcmVhdGVzIGl0cyByZW5kZXJlciwg
aXQgbmVlZHMgdG8gYmUgdG9sZCB3aGVuIHRoZSBEb2N1bWVudCBnb2VzCiAgICAgLy8gaW5hY3Rp
dmUgb3IgcmVhY3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29p
bmcgaW50byB0aGUgcGFnZSBjYWNoZS4KQEAgLTIwOSw5ICsyMDksOSBAQCBSZW5kZXJFbGVtZW50
KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZQogICAgIH0KIAogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA9PSBEaXNwbGF5aW5n
U25hcHNob3QpIHsKLSAgICAgICAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4qIHJlbmRlclNuYXBz
aG90dGVkUGx1Z0luID0gbmV3IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICAgICAgYXV0byByZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiA9IGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiAgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3Nu
YXBzaG90SW1hZ2UpOwotICAgICAgICByZXR1cm4gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW47Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1vdmUocmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOwogICAgIH0K
IAogICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQgYnJlYWtzIHRoZSBET00tPlJlbmRlcmVyIGNsYXNz
IHJlbGF0aW9uc2hpcCBvZiB0aGlzCkBAIC0yMjEsMTkgKzIyMSwxOSBAQCBSZW5kZXJFbGVtZW50
KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZQogICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKIAogICAgIGlmIChpc0ltYWdlVHlwZSgpKSB7Ci0gICAgICAg
IFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyBSZW5kZXJJbWFnZSgqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CisgICAgICAgIGF1dG8gaW1hZ2UgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4o
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJj
ZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7Ci0gICAgICAgIHJldHVybiBpbWFnZTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShpbWFnZSk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dSb290ID0gdGhpcy0+c2hhZG93Um9vdCgp
KSB7CiAgICAgICAgIEVsZW1lbnQqIHNoYWRvd0VsZW1lbnQgPSB0b0VsZW1lbnQoc2hhZG93Um9v
dC0+Zmlyc3RDaGlsZCgpKTsKICAgICAgICAgaWYgKHNoYWRvd0VsZW1lbnQgJiYgc2hhZG93RWxl
bWVudC0+c2hhZG93UHNldWRvSWQoKSA9PSAiLWFwcGxlLXlvdXR1YmUtc2hhZG93LWlmcmFtZSIp
Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFJlbmRlckJsb2NrRmxvdygqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tG
bG93PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAgICAgfQogI2VuZGlmCi0gICAgcmV0dXJu
IEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVSZW5kZXJlcihzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICByZXR1cm4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdGQ6Om1v
dmUoc3R5bGUpKTsKIH0KIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp3aWxsUmVjYWxj
U3R5bGUoU3R5bGU6OkNoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmgKaW5kZXggN2E1YWRiNi4uNTQwNDdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RPYmplY3QoY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpIE9WRVJSSURFOwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHdpbGxSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKSBPVkVSUklERTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmlu
ZGV4IDQ1ZjYyYjEuLjg5MmVlZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAKQEAgLTU4LDEyICs1OCwxMiBAQCBQYXNzUmVmUHRyPEhUTUxQcm9ncmVz
c0VsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JgogICAgIHJldHVybiBwcm9ncmVzcy5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIEhU
TUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAo
IXN0eWxlLmdldCgpLmhhc0FwcGVhcmFuY2UoKSB8fCBoYXNBdXRob3JTaGFkb3dSb290KCkpCiAg
ICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOwogCi0gICAgcmV0dXJuIG5ldyBSZW5kZXJQcm9ncmVzcygqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclByb2dyZXNzPigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgSFRNTFByb2dyZXNzRWxlbWVudDo6Y2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5kZXggNWMzMDZiZi4uOGYxYzA1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKQEAgLTU0LDcgKzU0
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50
KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVuZGVyUHJv
Z3Jlc3MqIHJlbmRlclByb2dyZXNzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMDFjMmM0MC4uODgwNjZlYWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMzQ3LDE0ICszNDcsMTQgQEAgYm9v
bCBIVE1MU2VsZWN0RWxlbWVudDo6Y2FuU2VsZWN0QWxsKCkgY29uc3QKICAgICByZXR1cm4gIXVz
ZXNNZW51TGlzdCgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MU2VsZWN0RWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGlmICh1c2Vz
TWVudUxpc3QoKSkKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJNZW51TGlzdCgqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJMaXN0Qm94KCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1lbnVM
aXN0PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckxpc3RCb3g+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKICNlbHNlCi0gICAgcmV0
dXJuIG5ldyBSZW5kZXJNZW51TGlzdCgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1lbnVMaXN0PigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmlu
ZGV4IGM0ZTRhZjUuLmY1NWRlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKQEAgLTEzNiw3ICsxMzYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFM
aXN0JiwgYm9vbCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCAxMzdh
NWQxLi43YzQxMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
Y3BwCkBAIC02NCw5ICs2NCw5IEBAIEhUTUxTdW1tYXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoc3VtbWFyeVRhZykpOwogfQogCi1SZW5kZXJFbGVtZW50KiBIVE1MU3VtbWFy
eUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVu
ZGVyQmxvY2tGbG93KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAK
IGJvb2wgSFRNTFN1bW1hcnlFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmgKaW5kZXggMmNjZDlmYS4uZjM5ODA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1t
YXJ5RWxlbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRN
TFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAg
dmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggZjcwZGU3
MS4uZDQwZDRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwCkBAIC0yMDksOSArMjA5LDkgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWMKICAgICAgICAg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
IH0KIAotUmVuZGVyRWxlbWVudCogSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRN
TFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUo
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBi
b29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5j
b2RpbmcsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmlu
ZGV4IDdjMTY1NzAuLmY4ZTkyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBoYXND
dXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcAppbmRleCAxNDA5OGE1Li4yZDI2MTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTY3LDEzICs2NywxMyBAQCBib29sIEhUTUxW
aWRlb0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgIHJldHVybiBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7IAogfQogCi1S
ZW5kZXJFbGVtZW50KiBIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MVmlkZW9FbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7
CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgaWYgKHNob3VsZFVzZVZp
ZGVvUGx1Z2luUHJveHkoKSkKLSAgICAgICAgcmV0dXJuIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gSFRNTE1lZGlhRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0ZDo6bW92ZShzdHlsZSkpOwogI2VuZGlmCi0g
ICAgcmV0dXJuIG5ldyBSZW5kZXJWaWRlbygqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclZpZGVvPigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggOWQ5Mzc3YS4uODU4YTA3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogICAgIGJvb2wgc2hvdWxkRGlzcGxheVBvc3RlckltYWdlKCkgY29uc3QgeyByZXR1
cm4gZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXIgfHwgZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXJXYWl0
aW5nRm9yVmlkZW87IH0KIAogICAgIFVSTCBwb3N0ZXJJbWFnZVVSTCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4p
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKIHByaXZhdGU6
CiAgICAgSFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJr
ZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcAppbmRleCA1MjdhNGQ2Li5hNDhlMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCkBAIC00NSw5ICs0NSw5
IEBAIERldGFpbHNNYXJrZXJDb250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiB9CiAKLVJlbmRlckVsZW1lbnQqIERldGFpbHNNYXJrZXJDb250cm9sOjpj
cmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyRGV0YWls
c01hcmtlcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlckRldGFpbHNNYXJrZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAog
Ym9vbCBEZXRhaWxzTWFya2VyQ29udHJvbDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01h
cmtlckNvbnRyb2wuaAppbmRleCA4ZWZkNGRhLi5jN2RkYzljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAKaW5kZXggMjk3YjExMC4uNDIwZmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMzMyLDkgKzMzMiw5IEBA
IHZvaWQgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpzZXRUaW1lRGlzcGxh
eXNIaWRkZW4oYm9vbCBoaWRkZW4pCiAgICAgfQogfQogCi1SZW5kZXJFbGVtZW50KiBNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRp
bWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyTWVkaWFDb250cm9sVGlt
ZWxpbmVDb250YWluZXIoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcj4oKnRoaXMsIHN0
ZDo6bW92ZShzdHlsZSkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA
IC0zNTEsOSArMzUxLDkgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb24KICAgICByZXR1cm4gZWxl
bWVudC5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29u
dGFpbmVyKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKQEAgLTEyMTQsOSArMTIxNCw5IEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVkaWFD
b250cm9sVGV4dFRyYWNrQ29udGFpbmVyCiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwog
fQogCi1SZW5kZXJFbGVtZW50KiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0
dXJuIG5ldyBSZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KCp0aGlzLCBzdGQ6Om1vdmUo
c3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCBkOTFlNWIxLi5kZTg1NWRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmly
dHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIH07CiAKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEzMyw3ICsxMzMsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDgyLDcgKzQ4
Miw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVt
ZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
bWFnZT4gY3JlYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JbWFnZSgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3Qg
SW50UmVjdCYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5jcHAKaW5kZXggMGQwZjQwZC4uZjM0YTljNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCkBAIC03Niw5
ICs3Niw5IEBAIGJvb2wgTWV0ZXJJbm5lckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiByZW5kZXIgJiYgIXJlbmRlci0+dGhlbWUo
KS5zdXBwb3J0c01ldGVyKHJlbmRlci0+c3R5bGUoKS5hcHBlYXJhbmNlKCkpICYmIEhUTUxEaXZF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyRWxlbWVudCogTWV0
ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5l
dyBSZW5kZXJNZXRlcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlck1ldGVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgTWV0ZXJWYWx1ZUVsZW1lbnQ6OnZhbHVlUHNldWRvSWQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaApp
bmRleCBmNWFlMGQ4Li4zZWM4ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZXRlclNoYWRvd0VsZW1lbnQuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1l
dGVySW5uZXJFbGVtZW50KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVy
RWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0
cjxNZXRlcklubmVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVz
c1NoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcAppbmRleCBjY2ZkNGZkLi4xMTJlNzc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKQEAgLTYx
LDkgKzYxLDkgQEAgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OlByb2dyZXNzSW5uZXJFbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUmVuZGVyRWxlbWVudCogUHJvZ3Jlc3NJbm5lckVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5k
ZXJQcm9ncmVzcygqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclByb2dyZXNzPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJv
b2wgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1No
YWRvd0VsZW1lbnQuaAppbmRleCBmMmE3NDczLi4zODVhNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFByb2dyZXNzSW5uZXJFbGVtZW50KERvY3VtZW50
Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcAppbmRleCBjOTYwY2ZhLi45MTNkZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTIxMiw5ICsyMTIsOSBAQCB2
b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tVmFsdWUoKQogICAgICAgICBy
ZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBTbGlkZXJU
aHVtYkVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQor
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcg
UmVuZGVyU2xpZGVyVGh1bWIoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTbGlkZXJUaHVtYj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OwogfQogCiBib29sIFNsaWRlclRodW1iRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9sKCkg
Y29uc3QKQEAgLTYxMSw5ICs2MTEsOSBAQCBQYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVsZW1l
bnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdQogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU2xpZGVyQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwogfQog
Ci1SZW5kZXJFbGVtZW50KiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJTbGlkZXJDb250YWluZXIoKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJT
bGlkZXJDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCmlu
ZGV4IDU2Y2ViNDYuLmI4ODU0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRl
ckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzUmVhZE9ubHlQc2V1ZG9DbGFzcygpIGNv
bnN0IE9WRVJSSURFOwpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBTbGlkZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJF
bGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4
IGE2N2Y4OTAuLmFjMzU4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtNTgsOSArNTgsOSBAQCBQYXNz
UmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IFRleHRDb250cm9sSW5uZXJDb250YWlu
ZXI6OmNyZWF0ZShEb2N1bWVudAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dENvbnRyb2xJ
bm5lckNvbnRhaW5lcihkb2N1bWVudCkpOwogfQogICAgIAotUmVuZGVyRWxlbWVudCogVGV4dENv
bnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5l
cjo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewot
ICAgIHJldHVybiBuZXcgUmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcigqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250
cm9sSW5uZXJDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogVGV4dENv
bnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKQEAgLTExMiw5ICsxMTIsOSBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIEhUTUxEaXZFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotUmVuZGVyRWxlbWVudCogVGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHls
ZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jaygqdGhpcywg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRD
b250cm9sSW5uZXJCbG9jaz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBSZW5kZXJU
ZXh0Q29udHJvbElubmVyQmxvY2sqIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6cmVuZGVy
ZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaAppbmRleCAyMGFhYWQ5Li42NWZiZWFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBwcm90ZWN0ZWQ6CiAgICAgVGV4
dENvbnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyRWxl
bWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiB9OwogCiBjbGFzcyBUZXh0Q29udHJvbElu
bmVyRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQo
RG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9tU3R5bGVG
b3JSZW5kZXJlcigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggN2Zj
MWNhZS4uNjdmZjkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcApAQCAtMTc2LDkgKzE3Niw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3Vl
Qm94Ojp0ZXh0VHJhY2tDdWVCb3hTaGFkb3dQc2V1ZG9JZCgpCiAgICAgcmV0dXJuIHRyYWNrRGlz
cGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCi1SZW5kZXJFbGVtZW50KiBUZXh0VHJhY2tDdWVC
b3g6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyVGV4dFRy
YWNrQ3VlKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyVGV4dFRyYWNrQ3VlPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCmluZGV4IDA0YzE2YTIuLjYwM2M5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgVGV4dFRyYWNrQ3VlQm94KERvY3VtZW50JiwgVGV4dFRyYWNrQ3VlKik7CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAg
VGV4dFRyYWNrQ3VlKiBtX2N1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAKaW5kZXggMzRlNzI5Yy4uMWQ5NDJh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5l
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250
YWluZXJFbGVtZW50LmNwcApAQCAtNTQsMzggKzU0LDM4IEBAIFBhc3NSZWZQdHI8TWF0aE1MSW5s
aW5lQ29udGFpbmVyRWxlbWVudD4gTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGNvCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIE1hdGhNTElubGluZUNv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAg
ICBpZiAoaGFzTG9jYWxOYW1lKGFubm90YXRpb25feG1sVGFnKSkKLSAgICAgICAgcmV0dXJuIG5l
dyBSZW5kZXJNYXRoTUxSb3coKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiAgICAgaWYgKGhhc0xvY2FsTmFtZShtZXJyb3JUYWcpIHx8IGhhc0xvY2FsTmFtZShtcGhh
bnRvbVRhZykgfHwgaGFzTG9jYWxOYW1lKG1yb3dUYWcpIHx8IGhhc0xvY2FsTmFtZShtc3R5bGVU
YWcpKQotICAgICAgICByZXR1cm4gbmV3IFJlbmRlck1hdGhNTFJvdygqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxSb3c+
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzTG9jYWxOYW1lKG1zdWJUYWcp
KQotICAgICAgICByZXR1cm4gbmV3IFJlbmRlck1hdGhNTFNjcmlwdHMoKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MU2Ny
aXB0cz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNMb2NhbE5hbWUobXN1
cFRhZykpCi0gICAgICAgIHJldHVybiBuZXcgUmVuZGVyTWF0aE1MU2NyaXB0cygqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRo
TUxTY3JpcHRzPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc0xvY2FsTmFt
ZShtc3Vic3VwVGFnKSkKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJNYXRoTUxTY3JpcHRzKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlck1hdGhNTFNjcmlwdHM+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFz
TG9jYWxOYW1lKG1tdWx0aXNjcmlwdHNUYWcpKQotICAgICAgICByZXR1cm4gbmV3IFJlbmRlck1h
dGhNTFNjcmlwdHMoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MU2NyaXB0cz4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OwogICAgIGlmIChoYXNMb2NhbE5hbWUobW92ZXJUYWcpKQotICAgICAgICByZXR1cm4gbmV3IFJl
bmRlck1hdGhNTFVuZGVyT3ZlcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxVbmRlck92ZXI+KCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKICAgICBpZiAoaGFzTG9jYWxOYW1lKG11bmRlclRhZykpCi0gICAgICAgIHJl
dHVybiBuZXcgUmVuZGVyTWF0aE1MVW5kZXJPdmVyKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFVuZGVyT3Zlcj4oKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNMb2NhbE5hbWUobXVuZGVyb3ZlclRh
ZykpCi0gICAgICAgIHJldHVybiBuZXcgUmVuZGVyTWF0aE1MVW5kZXJPdmVyKCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhN
TFVuZGVyT3Zlcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNMb2NhbE5h
bWUobWZyYWNUYWcpKQotICAgICAgICByZXR1cm4gbmV3IFJlbmRlck1hdGhNTEZyYWN0aW9uKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlck1hdGhNTEZyYWN0aW9uPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhh
c0xvY2FsTmFtZShtc3FydFRhZykpCi0gICAgICAgIHJldHVybiBuZXcgUmVuZGVyTWF0aE1MU3F1
YXJlUm9vdCgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJNYXRoTUxTcXVhcmVSb290PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7
CiAgICAgaWYgKGhhc0xvY2FsTmFtZShtcm9vdFRhZykpCi0gICAgICAgIHJldHVybiBuZXcgUmVu
ZGVyTWF0aE1MUm9vdCgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxSb290PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7
CiAgICAgaWYgKGhhc0xvY2FsTmFtZShtZmVuY2VkVGFnKSkKLSAgICAgICAgcmV0dXJuIG5ldyBS
ZW5kZXJNYXRoTUxGZW5jZWQoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MRmVuY2VkPigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CiAgICAgaWYgKGhhc0xvY2FsTmFtZShtdGFibGVUYWcpKQotICAgICAgICByZXR1cm4g
bmV3IFJlbmRlck1hdGhNTFRhYmxlKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFRhYmxlPigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CiAKLSAgICByZXR1cm4gbmV3IFJlbmRlck1hdGhNTEJsb2NrKCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MQmxv
Y2s+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKaW5kZXggMGE4MmEy
NC4uMTI0NWVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5s
aW5lQ29udGFpbmVyRWxlbWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHByb3RlY3RlZDoKICAgICBN
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBPVkVSUklERTsKIH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1hdGhFbGVtZW50LmNwcAppbmRleCA4MWNhOTRiLi42ZjJmMzg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKQEAgLTUxLDkgKzUxLDkgQEAg
Tm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBNYXRoTUxNYXRoRWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUKICAgICByZXR1cm4gTWF0aE1MSW5saW5lQ29udGFpbmVy
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKIH0KIAotUmVuZGVyRWxlbWVu
dCogTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1hdGhFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0
dXJuIG5ldyBSZW5kZXJNYXRoTUxNYXRoKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MTWF0aD4oKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
TWF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
CmluZGV4IGQ1ZDdiOGMuLmViZGQzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxNYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxN
YXRoRWxlbWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHByaXZhdGU6CiAgICAgTWF0aE1MTWF0aEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAogICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PikgT1ZFUlJJREU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGZhYWJkZmMuLmY5MTFkZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAg
UGFzc1JlZlB0cjxNYXRoTUxTZWxlY3RFbGVtZW50PiBNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdGhNTFNl
bGVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyRWxlbWVudCogTWF0
aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVy
biBuZXcgUmVuZGVyTWF0aE1MUm93KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiB9CiAKIGJvb2wgTWF0aE1MU2VsZWN0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDg4Y2I3NTUuLjQzNTk2OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgTWF0aE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3Jl
YXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCmluZGV4IDJlNDNkNjguLjRmMTdiNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcApAQCAtNjMsMTQg
KzYzLDE0IEBAIHZvaWQgTWF0aE1MVGV4dEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVu
dCgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
TWF0aE1MVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKIHsKICAgICBpZiAoaGFzTG9jYWxOYW1lKE1hdGhNTE5hbWVzOjptb1RhZykp
Ci0gICAgICAgIHJldHVybiBuZXcgUmVuZGVyTWF0aE1MT3BlcmF0b3IoKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MT3Bl
cmF0b3I+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzTG9jYWxOYW1lKE1h
dGhNTE5hbWVzOjptc3BhY2VUYWcpKQotICAgICAgICByZXR1cm4gbmV3IFJlbmRlck1hdGhNTFNw
YWNlKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlck1hdGhNTFNwYWNlPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAKLSAgICBy
ZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoc3RkOjptb3ZlKHN0eWxlKSk7Cisg
ICAgcmV0dXJuIE1hdGhNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdGQ6Om1vdmUo
c3R5bGUpKTsKIH0KIAogYm9vbCBNYXRoTUxUZXh0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFRleHRFbGVtZW50LmgKaW5kZXggM2UzMDc1ZS4uNmE5ZTBiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBNYXRoTUxUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAwOGM3YjE2Li5kNGUzNmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTUxMSw4ICs1MTEsOCBAQCBSZW5k
ZXJCbG9jayogUmVuZGVyQmxvY2s6OmNsb25lKCkgY29uc3QKICAgICAgICAgY2xvbmVCbG9jayA9
IGNyZWF0ZUFub255bW91c0Jsb2NrKCk7CiAgICAgICAgIGNsb25lQmxvY2stPnNldENoaWxkcmVu
SW5saW5lKGNoaWxkcmVuSW5saW5lKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gY2xv
bmVSZW5kZXJlciA9IGVsZW1lbnQoKS0+Y3JlYXRlUmVuZGVyZXIoc3R5bGUoKSk7Ci0gICAgICAg
IGNsb25lQmxvY2sgPSB0b1JlbmRlckJsb2NrKGNsb25lUmVuZGVyZXIpOworICAgICAgICBhdXRv
IGNsb25lUmVuZGVyZXIgPSBlbGVtZW50KCktPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdHlsZSgp
KTsKKyAgICAgICAgY2xvbmVCbG9jayA9IHRvUmVuZGVyQmxvY2soY2xvbmVSZW5kZXJlci5sZWFr
UHRyKCkpOwogICAgICAgICBjbG9uZUJsb2NrLT5pbml0aWFsaXplU3R5bGUoKTsKIAogICAgICAg
ICAvLyBUaGlzIHRha2VzIGNhcmUgb2Ygc2V0dGluZyB0aGUgcmlnaHQgdmFsdWUgb2YgY2hpbGRy
ZW5JbmxpbmUgaW4gY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwCmluZGV4IGJjMTdkYTYuLjg1YTA1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBSZW5kZXJFbGVtZW50Ojp+UmVu
ZGVyRWxlbWVudCgpCiAgICAgfQogfQogCi1SZW5kZXJFbGVtZW50KiBSZW5kZXJFbGVtZW50Ojpj
cmVhdGVGb3IoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKEVsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewogICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGVsZW1lbnQuZG9jdW1lbnQoKTsKIApAQCAtMTMxLDY0ICsxMzEsNjQgQEAgUmVu
ZGVyRWxlbWVudCogUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKEVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHMKICAgICAvLyBPdGhlcndpc2UgYWN0cyBhcyBpZiB3ZSBkaWRu
J3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuCiAgICAgY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnRE
YXRhID0gc3R5bGUuZ2V0KCkuY29udGVudERhdGEoKTsKICAgICBpZiAoY29udGVudERhdGEgJiYg
IWNvbnRlbnREYXRhLT5uZXh0KCkgJiYgY29udGVudERhdGEtPmlzSW1hZ2UoKSAmJiAhZWxlbWVu
dC5pc1BzZXVkb0VsZW1lbnQoKSkgewotICAgICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcg
UmVuZGVySW1hZ2UoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIGF1dG8gaW1h
Z2UgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxl
KSk7CiAgICAgICAgIGlmIChjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgSW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnREYXRhKS0+aW1hZ2UoKSkgewogICAg
ICAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxl
SW1hZ2U6OmNyZWF0ZShjb25zdF9jYXN0PFN0eWxlSW1hZ2UmPigqc3R5bGVJbWFnZSkpKTsKICAg
ICAgICAgICAgIGltYWdlLT5zZXRJc0dlbmVyYXRlZENvbnRlbnQoKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNl
OjpjcmVhdGUoKSk7Ci0gICAgICAgIHJldHVybiBpbWFnZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bW92ZShpbWFnZSk7CiAgICAgfQogCiAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnJ1YnlUYWcpKSB7CiAgICAgICAgIGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5M
SU5FKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJSdWJ5QXNJbmxpbmUoZWxlbWVudCwg
c3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyUnVieUFzSW5saW5lPihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICAgICAgaWYg
KHN0eWxlLmdldCgpLmRpc3BsYXkoKSA9PSBCTE9DSykKLSAgICAgICAgICAgIHJldHVybiBuZXcg
UmVuZGVyUnVieUFzQmxvY2soZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzQmxvY2s+KGVsZW1lbnQsIHN0ZDo6
bW92ZShzdHlsZSkpOwogICAgIH0KICAgICAvLyB0cmVhdCA8cnQ+IGFzIHJ1YnkgdGV4dCBPTkxZ
IGlmIGl0IHN0aWxsIGhhcyBpdHMgZGVmYXVsdCB0cmVhdG1lbnQgb2YgYmxvY2sKICAgICBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6cnRUYWcpICYmIHN0eWxlLmdldCgpLmRpc3Bs
YXkoKSA9PSBCTE9DSykKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJSdWJ5VGV4dChlbGVtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clJ1YnlUZXh0PihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBzd2l0Y2ggKHN0eWxl
LmdldCgpLmRpc3BsYXkoKSkgewogICAgIGNhc2UgTk9ORToKICAgICAgICAgc3R5bGUuZHJvcFJl
ZigpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIElOTElORToKLSAgICAgICAg
cmV0dXJuIG5ldyBSZW5kZXJJbmxpbmUoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbmxpbmU+KGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSkpOwogICAgIGNhc2UgQkxPQ0s6CiAgICAgY2FzZSBJTkxJTkVfQkxPQ0s6CiAgICAg
Y2FzZSBSVU5fSU46CiAgICAgY2FzZSBDT01QQUNUOgogICAgICAgICBpZiAoKCFzdHlsZS5nZXQo
KS5oYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhc3R5bGUuZ2V0KCkuaGFzQXV0b0NvbHVtbldpZHRo
KCkpICYmIGRvY3VtZW50LnJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoKSkKLSAgICAgICAgICAg
IHJldHVybiBuZXcgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5
bGUpKTsKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTXVs
dGlDb2x1bW5CbG9jaz4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSkpOwogICAgIGNhc2UgTElTVF9JVEVNOgotICAgICAgICByZXR1cm4gbmV3IFJlbmRlckxpc3RJ
dGVtKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyTGlzdEl0ZW0+KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOwogICAgIGNh
c2UgVEFCTEU6CiAgICAgY2FzZSBJTkxJTkVfVEFCTEU6Ci0gICAgICAgIHJldHVybiBuZXcgUmVu
ZGVyVGFibGUoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJUYWJsZT4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CiAgICAg
Y2FzZSBUQUJMRV9ST1dfR1JPVVA6CiAgICAgY2FzZSBUQUJMRV9IRUFERVJfR1JPVVA6CiAgICAg
Y2FzZSBUQUJMRV9GT09URVJfR1JPVVA6Ci0gICAgICAgIHJldHVybiBuZXcgUmVuZGVyVGFibGVT
ZWN0aW9uKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyVGFibGVTZWN0aW9uPihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsK
ICAgICBjYXNlIFRBQkxFX1JPVzoKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJUYWJsZVJvdyhl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclRhYmxlUm93PihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBjYXNlIFRB
QkxFX0NPTFVNTl9HUk9VUDoKICAgICBjYXNlIFRBQkxFX0NPTFVNTjoKLSAgICAgICAgcmV0dXJu
IG5ldyBSZW5kZXJUYWJsZUNvbChlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlQ29sPihlbGVtZW50LCBzdGQ6Om1vdmUo
c3R5bGUpKTsKICAgICBjYXNlIFRBQkxFX0NFTEw6Ci0gICAgICAgIHJldHVybiBuZXcgUmVuZGVy
VGFibGVDZWxsKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyVGFibGVDZWxsPihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsK
ICAgICBjYXNlIFRBQkxFX0NBUFRJT046Ci0gICAgICAgIHJldHVybiBuZXcgUmVuZGVyVGFibGVD
YXB0aW9uKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyVGFibGVDYXB0aW9uPihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsK
ICAgICBjYXNlIEJPWDoKICAgICBjYXNlIElOTElORV9CT1g6Ci0gICAgICAgIHJldHVybiBuZXcg
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOwor
ICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
PihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBjYXNlIEZMRVg6CiAgICAgY2FzZSBJ
TkxJTkVfRkxFWDoKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJGbGV4aWJsZUJveChlbGVtZW50
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ckZsZXhpYmxlQm94PihlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICBjYXNlIEdSSUQ6
CiAgICAgY2FzZSBJTkxJTkVfR1JJRDoKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJHcmlkKGVs
ZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyR3JpZD4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7CiAgICAgfQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggOTA5ODhiMy4uZmUyODUxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIFJl
bmRlckVsZW1lbnQgOiBwdWJsaWMgUmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5SZW5kZXJFbGVtZW50KCk7CiAKLSAgICBzdGF0aWMgUmVuZGVyRWxlbWVudCogY3JlYXRlRm9y
KEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CisgICAgc3RhdGljIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVGb3IoRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsK
IAogICAgIGJvb2wgaGFzSW5pdGlhbGl6ZWRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzSW5p
dGlhbGl6ZWRTdHlsZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAyYTlkYmU1Li5mNzI0NmY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTExNiw5
ICsxMTYsOSBAQCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6flJlbmRlckVtYmVkZGVkT2JqZWN0KCkK
ICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVtb3ZlRW1iZWRkZWRPYmplY3RUb1VwZGF0ZSgqdGhp
cyk7CiB9CiAKLVJlbmRlckVtYmVkZGVkT2JqZWN0KiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Y3Jl
YXRlRm9yQXBwbGV0KEhUTUxBcHBsZXRFbGVtZW50JiBhcHBsZXQsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVtYmVkZGVkT2JqZWN0PiBSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6Y3JlYXRlRm9yQXBwbGV0KEhUTUxBcHBsZXRFbGVtZW50JiBhcHBsZXQsIFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0KiByZW5k
ZXJlciA9IG5ldyBSZW5kZXJFbWJlZGRlZE9iamVjdChhcHBsZXQsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgIGF1dG8gcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJFbWJlZGRlZE9iamVj
dD4oYXBwbGV0LCBzdGQ6Om1vdmUoc3R5bGUpKTsKICAgICByZW5kZXJlci0+c2V0SW5saW5lKHRy
dWUpOwogICAgIHJldHVybiByZW5kZXJlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggMmZkYmNlMy4uOWZhMTlhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTM4
LDcgKzM4LDcgQEAgcHVibGljOgogICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0KEhUTUxGcmFtZU93
bmVyRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsKICAgICB2aXJ0dWFsIH5SZW5kZXJF
bWJlZGRlZE9iamVjdCgpOwogCi0gICAgc3RhdGljIFJlbmRlckVtYmVkZGVkT2JqZWN0KiBjcmVh
dGVGb3JBcHBsZXQoSFRNTEFwcGxldEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7Cisg
ICAgc3RhdGljIFJlbmRlclB0cjxSZW5kZXJFbWJlZGRlZE9iamVjdD4gY3JlYXRlRm9yQXBwbGV0
KEhUTUxBcHBsZXRFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pOwogCiAgICAgZW51bSBQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiB7CiAgICAgICAgIFBsdWdpbk1pc3NpbmcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCmluZGV4IGVhYjU3MGMuLjQ1NzQz
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCkBAIC0yMzcs
NyArMjM3LDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlUmVuZGVyZXJJZk5lZWRlZChFbGVtZW50JiBl
bGVtZW50LCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiByZXMKICAgICAgICAgbmV4dFJlbmRlcmVy
ID0gbmV4dFNpYmxpbmdSZW5kZXJlcihlbGVtZW50LCByZW5kZXJpbmdQYXJlbnROb2RlKTsKICAg
ICB9CiAKLSAgICBSZW5kZXJFbGVtZW50KiBuZXdSZW5kZXJlciA9IGVsZW1lbnQuY3JlYXRlUmVu
ZGVyZXIoc3R5bGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgUmVuZGVyRWxlbWVudCogbmV3UmVu
ZGVyZXIgPSBlbGVtZW50LmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdHlsZS5yZWxlYXNlTm9uTnVs
bCgpKS5sZWFrUHRyKCk7CiAgICAgaWYgKCFuZXdSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghcGFyZW50UmVuZGVyZXItPmlzQ2hpbGRBbGxvd2VkKCpuZXdSZW5kZXJlciwgbmV3
UmVuZGVyZXItPnN0eWxlKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBj
MGQyZTI0Li5mNmZiYmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTEzOSwx
MiArMTM5LDEyIEBAIHZvaWQgU1ZHQUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgfQogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdB
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBpZiAocGFyZW50Tm9kZSgpICYmIHBh
cmVudE5vZGUoKS0+aXNTVkdFbGVtZW50KCkgJiYgdG9TVkdFbGVtZW50KHBhcmVudE5vZGUoKSkt
PmlzVGV4dENvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdJbmxpbmUoKnRo
aXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU1ZHSW5saW5lPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAKLSAgICByZXR1cm4gbmV3
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIHZvaWQgU1ZHQUVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApp
bmRleCA1MmMxNzJjLi5lNDY2MDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApAQCAtNDgs
NyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0g
ICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAppbmRleCBlMWIxOTUw
Li42ZGYzYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcApA
QCAtODIsOSArODIsOSBAQCBib29sIFNWR0FsdEdseXBoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLVJlbmRlckVsZW1lbnQqIFNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQWx0
R2x5cGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdUU3BhbigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RTcGFuPigqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHQWx0R2x5cGhFbGVtZW50OjpoYXNW
YWxpZEdseXBoRWxlbWVudHMoVmVjdG9yPFN0cmluZz4mIGdseXBoTmFtZXMpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKaW5kZXggYjYxNTRlMi4uOTBlZjM2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0FsdEdseXBoRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRl
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgQkVHSU5fREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR0FsdEdseXBoRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCA5YzJkODFmLi4wZGNjZjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC0xMzksOSArMTM5LDkgQEAgYm9vbCBTVkdD
aXJjbGVFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKICAgICAgICAgfHwg
cigpLmlzUmVsYXRpdmUoKTsKIH0KIAotUmVuZGVyRWxlbWVudCogU1ZHQ2lyY2xlRWxlbWVudDo6
Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHRWxsaXBz
ZSgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclNWR0VsbGlwc2U+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggYWE5YzgzZC4uMmQzNTIxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCi0g
ICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAg
IEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdDaXJjbGVFbGVtZW50KQogICAg
ICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IDdhMjNhZTkuLjQ0NmRhYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC0xMTQsOSArMTE0LDkgQEAgdm9p
ZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYg
Y2hhbmdlKQogICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CiB9CiAKLVJlbmRlckVs
ZW1lbnQqIFNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0g
ICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIoKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUNsaXBw
ZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NsaXBQYXRoRWxlbWVudC5oCmluZGV4IDk5YjUwNGMuLjRlOWFmZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVS
UklERTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdDbGlwUGF0
aEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfRU5VTUVSQVRJT04oQ2xpcFBhdGhV
bml0cywgY2xpcFBhdGhVbml0cywgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCmluZGV4IGZiZjJjMjguLjZmZjJmNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcApAQCAtNTMsOSArNTMsOSBAQCBib29sIFNWR0Rl
ZnNFbGVtZW50Ojppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQo
KTsKIH0KIAotUmVuZGVyRWxlbWVudCogU1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0Rl
ZnNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIoKnRoaXMsIHN0
ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdIaWRk
ZW5Db250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRGVmc0VsZW1lbnQuaAppbmRleCAyZjI0NzA0Li5hNDY1YzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRGVmc0VsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCog
Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVm
PFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMoU1ZHRGVmc0VsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVB
TihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKaW5kZXggYThlN2JlZTcuLmU4
ZTcwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtMTQ1
LDkgKzE0NSw5IEBAIGJvb2wgU1ZHRWxsaXBzZUVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0
aHMoKSBjb25zdAogICAgICAgICB8fCByeSgpLmlzUmVsYXRpdmUoKTsKIH0KIAotUmVuZGVyRWxl
bWVudCogU1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIG5ldyBSZW5kZXJTVkdFbGxpcHNlKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmlu
ZGV4IGM5MjEzZmQuLjczNTBhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVu
dC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhh
c1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBj
cmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdFbGxpcHNlRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5H
VEgoQ3gsIGN4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDM1
M2U0NzkuLjVkYTk1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAK
QEAgLTE4OCw5ICsxODgsOSBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5
b3V0KCk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBT
VkdGaWx0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNo
aWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXggMTUyZjI5
OS4uMzIyYjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC01NCw3
ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Y29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVu
dCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVh
bCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAKaW5kZXggMTlmODIyNy4uMDlhYWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKQEAgLTE0
Miw5ICsxNDIsOSBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6
c2V0U3RhbmRhcmRBdHRyaWJ1dGVzKEZpbHRlckVmZmVjdCogZgogICAgICAgICBmaWx0ZXJFZmZl
Y3QtPnNldEhhc0hlaWdodCh0cnVlKTsKIH0KIAotUmVuZGVyRWxlbWVudCogU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJp
bWl0aXZlKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKIH0KIAogYm9vbCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
CmluZGV4IDZjNDYzNjIuLmE0ZDAzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKQEAgLTY4LDcgKzY4
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNGaWx0ZXJFZmZl
Y3QoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRl
ckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwCmluZGV4IDNlMTA2OTkuLjM3Y2M4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtMTI2LDkgKzEyNiw5IEBA
IHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJr
Rm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKIH0KIAot
UmVuZGVyRWxlbWVudCogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdGb3JlaWduT2JqZWN0KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHRm9yZWlnbk9iamVjdD4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuaAppbmRleCA3ZjNlZmQ0Li45NGE1ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogCiAg
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5n
dGhzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCmluZGV4IGU1ZmE3ZmYu
LjJkNjQ5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcApAQCAtODksMTYgKzg5LDE2
IEBAIHZvaWQgU1ZHR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0
QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKIH0KIAotUmVuZGVyRWxl
bWVudCogU1ZHR0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7CiAgICAgLy8gU1ZHIDEuMSB0
ZXN0c3VpdGUgZXhwbGljaXRlbHkgdXNlcyBjb25zdHJ1Y3RzIGxpa2UgPGcgZGlzcGxheT0ibm9u
ZSI+PGxpbmVhckdyYWRpZW50PgogICAgIC8vIFdlIHN0aWxsIGhhdmUgdG8gY3JlYXRlIHJlbmRl
cmVycyBmb3IgdGhlIDxnPiAmIDxsaW5lYXJHcmFkaWVudD4gZWxlbWVudCwgdGhvdWdoIHRoZQog
ICAgIC8vIHN1YnRyZWUgbWF5IGJlIGhpZGRlbiAtIHdlIG9ubHkgd2FudCB0aGUgcmVzb3VyY2Ug
cmVuZGVyZXJzIHRvIGV4aXN0IHNvIHRoZXkgY2FuIGJlCiAgICAgLy8gcmVmZXJlbmNlZCBmcm9t
IHNvbWV3aGVyZSBlbHNlLgogICAgIGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gTk9ORSkK
LSAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIoKnRoaXMsIHN0ZDo6
bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAKLSAgICByZXR1cm4gbmV3
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkp
OworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHR0VsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQu
aAppbmRleCA5MGYzNzkxLi41YjJlMmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaApAQCAt
MzYsNyArMzYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0dFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBj
cmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAppbmRleCAzNDljYTVkLi41M2Jh
OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAtMTYy
LDEwICsxNjIsMTAgQEAgRmxvYXRSZWN0IFNWR0dyYXBoaWNzRWxlbWVudDo6Z2V0QkJveChTdHls
ZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiAgICAgcmV0dXJuIFNWR1RyYW5z
Zm9ybWFibGU6OmdldEJCb3godGhpcywgc3R5bGVVcGRhdGVTdHJhdGVneSk7CiB9CiAKLVJlbmRl
ckVsZW1lbnQqIFNWR0dyYXBoaWNzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHR3JhcGhpY3NFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7
CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgt
YmFzZWQgZHJhd2luZwotICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHUGF0aCgqdGhpcywgc3RkOjpt
b3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1BhdGg+KCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogdm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnRv
Q2xpcFBhdGgoUGF0aCYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
cmFwaGljc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQu
aAppbmRleCAwNGY1NDdiLi42NWVjMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR3JhcGhpY3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNz
RWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vICJiYXNlIGNsYXNz
IiBtZXRob2RzIGZvciBhbGwgdGhlIGVsZW1lbnRzIHdoaWNoIHJlbmRlciBhcyBwYXRocwogICAg
IHZpcnR1YWwgdm9pZCB0b0NsaXBQYXRoKFBhdGgmKTsKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1l
bnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHR3JhcGhp
Y3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCAwNTlhMjNkLi4yMmE4ZjhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtMTgyLDkgKzE4Miw5IEBAIGJvb2wgU1ZH
SW1hZ2VFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKICAgICAgICAgfHwg
aGVpZ2h0KCkuaXNSZWxhdGl2ZSgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdJbWFnZUVsZW1l
bnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHSW1h
Z2UoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJTVkdJbWFnZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR0lt
YWdlRWxlbWVudDo6aGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuaAppbmRleCA0MzA3NGM3Li41ZjEwZTAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgSW5zZXJ0
aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJS
SURFOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVm
PFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCBmZWFlMmExLi42MjRjMDA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApAQCAtMTE4
LDkgKzExOCw5IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAgICAgICAgIG9iamVjdC0+c2V0
TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyRWxlbWVudCogU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJl
bmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwor
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50Ojpjb2xsZWN0R3JhZGllbnRBdHRyaWJ1dGVzKExpbmVhckdyYWRpZW50QXR0cmlidXRl
cyYgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaAppbmRleCAyMTZkZjkxLi5iNzhkM2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1l
bnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNS
ZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCmluZGV4IDVjNzFjZmYuLjQwYjEyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5jcHAKQEAgLTIxNCw5ICsyMTQsOSBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6
OnNldE9yaWVudFRvQW5nbGUoY29uc3QgU1ZHQW5nbGUmIGFuZ2xlKQogICAgIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQob3JpZW50QW5nbGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSk7CiB9CiAK
LVJlbmRlckVsZW1lbnQqIFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR1Jlc291cmNlTWFya2VyKCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VN
YXJrZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBTVkdNYXJrZXJFbGVt
ZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5oCmluZGV4IDBhM2EyM2EuLmY1MmUzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggOTFmNWI2Mi4u
NDJlZDQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCkBAIC0xNTcsOSAr
MTU3LDkgQEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxk
Q2hhbmdlJiBjaGFuZ2UpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAot
UmVuZGVyRWxlbWVudCogU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hc2tFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0g
ICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlTWFza2Vy
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHTWFza0VsZW1lbnQ6OnNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aAppbmRleCA4NTNlNTNmLi5hYzE5NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29s
IHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5jcHAKaW5kZXggYmMyN2I4OC4uM2YzYTA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEVsZW1lbnQuY3BwCkBAIC00MDQsMTAgKzQwNCwxMCBAQCBGbG9hdFJlY3QgU1ZHUGF0aEVs
ZW1lbnQ6OmdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0ZVN0cmF0ZWd5KQog
ICAgIHJldHVybiByZW5kZXJlci0+cGF0aCgpLmJvdW5kaW5nUmVjdCgpOwogfQogCi1SZW5kZXJF
bGVtZW50KiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICAvLyBC
eSBkZWZhdWx0LCBhbnkgc3ViY2xhc3MgaXMgZXhwZWN0ZWQgdG8gZG8gcGF0aC1iYXNlZCBkcmF3
aW5nCi0gICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdQYXRoKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUp
KTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUGF0aD4oKnRoaXMsIHN0ZDo6
bW92ZShzdHlsZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4
IDQ3ZWNjZmIuLjJhYTA4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0x
MTgsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFO
KEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAg
ICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogCi0gICAgdmlydHVhbCBSZW5kZXJF
bGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgTm9kZTo6SW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA4YzVl
MzhjLi5lOGE4ZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAK
QEAgLTE4Miw5ICsxODIsOSBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xh
eW91dCgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR1Jlc291cmNlUGF0dGVy
bigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclNWR1Jlc291cmNlUGF0dGVybj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiB2
b2lkIFNWR1BhdHRlcm5FbGVtZW50Ojpjb2xsZWN0UGF0dGVybkF0dHJpYnV0ZXMoUGF0dGVybkF0
dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5oCmluZGV4IDNkNDg0MjUuLjIzNDI3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0
ZXJuRWxlbWVudC5oCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKIAotICAg
IHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDBjODY0ZDUu
LjUxOTljZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQuY3BwCkBAIC0xMzAsOSArMTMwLDkgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKICAg
ICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewot
ICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudCgqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291
cmNlUmFkaWFsR3JhZGllbnQ+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNvbGxlY3RHcmFkaWVudEF0dHJpYnV0ZXMoUmFkaWFs
R3JhZGllbnRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IDcxNTFmZjEuLmFhMzM0NGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTQzLDcgKzQz
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZp
cnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4p
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCAwNmZkYTQ2Li5lY2VlMmQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTE2MCw5ICsxNjAsOSBAQCBib29sIFNWR1JlY3RF
bGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKICAgICAgICAgfHwgcnkoKS5p
c1JlbGF0aXZlKCk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIFNWR1JlY3RFbGVtZW50OjpjcmVhdGVS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHUmVjdCgqdGhpcywgc3Rk
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1JlY3Q+
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaAppbmRleCBiMGY5OGQ4Li5mZDhhMjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVu
dCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMoU1ZHUmVjdEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVO
R1RIKFgsIHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggMzhkYzllMi4u
ZDJlYTFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtNDc4LDEyICs0
NzgsMTIgQEAgYm9vbCBTVkdTVkdFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChzdHlsZSk7CiB9CiAKLVJlbmRlckVsZW1lbnQqIFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKIHsKICAgICBpZiAoaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkpCi0gICAgICAg
IHJldHVybiBuZXcgUmVuZGVyU1ZHUm9vdCgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSb290PigqdGhpcywgc3RkOjptb3Zl
KHN0eWxlKSk7CiAKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHVmlld3BvcnRDb250YWluZXI+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogTm9k
ZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBTVkdTVkdFbGVtZW50OjppbnNlcnRlZElu
dG8oQ29udGFpbmVyTm9kZSYgcm9vdFBhcmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5o
CmluZGV4IGIxNTY0ZmMuLmQ5ZDVjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApA
QCAtMTQyLDcgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsK
IAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRl
ZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVk
RnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmNwcAppbmRleCA3M2Y2ODdmLi41NGY5MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9w
RWxlbWVudC5jcHAKQEAgLTk4LDkgKzk4LDkgQEAgdm9pZCBTVkdTdG9wRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAotUmVuZGVyRWxlbWVudCogU1ZHU3RvcEVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR1N0b3BFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdHcmFkaWVudFN0b3Ao
KnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdHcmFkaWVudFN0b3A+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAogYm9vbCBT
VkdTdG9wRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCmluZGV4IDAxODg0YjQuLjVjZDYzODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNHcmFkaWVudFN0b3AoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
JikgT1ZFUlJJREU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZH
U3RvcEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKaW5kZXgg
MTEyN2U0Yy4uOWQ3NmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRj
aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNw
cApAQCAtNjIsOSArNjIsOSBAQCBib29sIFNWR1N3aXRjaEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1SZW5kZXJFbGVtZW50KiBTVkdTd2l0Y2hFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTd2l0
Y2hFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAppbmRleCA3MGQ3NTE5Li45YmEx
ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRl
ckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAgQkVHSU5fREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR1N3aXRjaEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5J
TUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4IGEz
OTEwZGYuLmNhOWQ3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAK
QEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNWR1N5bWJvbEVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OnZpZXdC
b3hBdHRyKTsKIH0KIAotUmVuZGVyRWxlbWVudCogU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IGUwNzQ5M2YuLmIwMmYzMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgUmVuZGVy
RWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2Vs
Zkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcAppbmRleCBiNjcyMDE2Li40MzljZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVm
RWxlbWVudC5jcHAKQEAgLTIyMCw5ICsyMjAsOSBAQCB2b2lkIFNWR1RSZWZFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdUUmVmRWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR0lubGluZSgqdGhp
cywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNW
R0lubGluZT4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR1RSZWZFbGVt
ZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAppbmRleCA3MGQ4YWNkLi5mNWU5YTRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVt
ZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcAppbmRleCA4NWZmYTZkMy4uZjkzNDU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKQEAgLTQwLDkgKzQwLDkgQEAgUGFzc1Jl
ZlB0cjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1RTcGFuRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdUU3BhbkVsZW1l
bnQ6OmNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogewotICAgIHJldHVybiBuZXcgUmVuZGVyU1ZHVFNw
YW4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBib29sIFNWR1RT
cGFuRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAppbmRleCBkNjgwOTE3Li5kZmY3
YzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCkBAIC0zMyw3ICszMyw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogICAgICAgICAgICAgCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50
KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRFbGVtZW50LmNwcAppbmRleCBkZGY3ZTRhLi5iZGQ5MzFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKQEAgLTY4LDkgKzY4LDkgQEAgQWZmaW5lVHJhbnNm
b3JtIFNWR1RleHRFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3QKICAgICBy
ZXR1cm4gbWF0cml4OwogfQogCi1SZW5kZXJFbGVtZW50KiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKIHsKLSAgICByZXR1cm4gbmV3IFJlbmRlclNWR1RleHQoKnRoaXMsIHN0
ZDo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUZXh0
PigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIGJvb2wgU1ZHVGV4dEVsZW1lbnQ6OmNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0RWxlbWVudC5oCmluZGV4IDBhMjhiMDQuLmYyMTM1MjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0RWxlbWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxS
ZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYp
IGNvbnN0IE9WRVJSSURFOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVt
ZW50LmNwcAppbmRleCBlOWVlMDA1Li44YjMwYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmNwcApAQCAtMTI3LDkgKzEyNyw5IEBAIHZvaWQgU1ZHVGV4dFBhdGhF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291
cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CiB9CiAKLVJlbmRlckVsZW1lbnQqIFNWR1RleHRQ
YXRoRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVGV4dFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG5ldyBS
ZW5kZXJTVkdUZXh0UGF0aCgqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RleHRQYXRoPigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7
CiB9CiAKIGJvb2wgU1ZHVGV4dFBhdGhFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxl
bWVudC5oCmluZGV4IGFlYzg5YmUuLjlkMTUzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCmluZGV4IDZiN2E4MzEuLmJmMjU1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAKQEAgLTUxOSw5ICs1MTksOSBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmJ1aWxk
U2hhZG93QW5kSW5zdGFuY2VUcmVlKFNWR0VsZW1lbnQqIHRhcmdldCkKICNlbmRpZgogfQogCi1S
ZW5kZXJFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdVc2VFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAg
cmV0dXJuIG5ldyBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCp0aGlzLCBzdGQ6Om1v
dmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lcj4oKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCiBzdGF0aWMgYm9v
bCBpc0RpcmVjdFJlZmVyZW5jZShjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmgKaW5kZXggNGIxNDQ5Ny4uMWEwNmQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50
KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdG9DbGlwUGF0aChQ
YXRoJik7CiAKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>