<?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>109322</bug_id>
          
          <creation_ts>2013-02-08 13:29:44 -0800</creation_ts>
          <short_desc>AX: move isIgnored caching to AXObject</short_desc>
          <delta_ts>2013-02-09 15:07:45 -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>Accessibility</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="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Dominic Mazzoni">dmazzoni</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jdiggs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828739</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-08 13:29:44 -0800</bug_when>
    <thetext>There&apos;s some benefit to caching accessibilityIsIgnored (using AXComputedObjectAttributeCache) for more than just AXRenderObject, so rather than duplicating a bunch of code, that code should probably be in AXObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828743</commentid>
    <comment_count>1</comment_count>
      <attachid>187359</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-08 13:39:17 -0800</bug_when>
    <thetext>Created attachment 187359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828748</commentid>
    <comment_count>2</comment_count>
      <attachid>187359</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 13:47:27 -0800</bug_when>
    <thetext>Comment on attachment 187359
Patch

Attachment 187359 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16435808</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828752</commentid>
    <comment_count>3</comment_count>
      <attachid>187361</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-08 13:59:00 -0800</bug_when>
    <thetext>Created attachment 187361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828857</commentid>
    <comment_count>4</comment_count>
      <attachid>187361</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-08 17:49:31 -0800</bug_when>
    <thetext>Comment on attachment 187361
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:97
&gt; +    virtual bool computeAccessibilityIsIgnored() const;

looks like this should be private too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829120</commentid>
    <comment_count>5</comment_count>
      <attachid>187445</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-09 13:54:12 -0800</bug_when>
    <thetext>Created attachment 187445
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829133</commentid>
    <comment_count>6</comment_count>
      <attachid>187445</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 15:07:39 -0800</bug_when>
    <thetext>Comment on attachment 187445
Patch for landing

Clearing flags on attachment: 187445

Committed r142382: &lt;http://trac.webkit.org/changeset/142382&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829134</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 15:07:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187359</attachid>
            <date>2013-02-08 13:39:17 -0800</date>
            <delta_ts>2013-02-08 13:58:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109322-20130208133551.patch</filename>
            <type>text/plain</type>
            <size>39704</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjNTcwNGVkNWU2Yjk3
NGJkZWEzMzRhMzZmODExZGQzZTdmNGNjOC4uNTMxODk4Mzg2MzdjMzA1ZjZkYjc1YWQxYTVjM2Mz
ZjdjYjNiNGU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNSBAQAorMjAxMy0wMi0wOCAgRG9t
aW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBBWDogbW92ZSBp
c0lnbm9yZWQgY2FjaGluZyB0byBBWE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlcmUncyBzb21lIGJlbmVmaXQgdG8gY2FjaGluZyBhY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkCisgICAgICAgICh1c2luZyBBWENvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGUpIGZvciBtb3JlIHRoYW4ganVzdAorICAgICAgICBBWFJlbmRlck9iamVjdCwgc28g
bW92ZSB0aGUgY2FjaGluZyBjb2RlIHRvIEFYT2JqZWN0LgorCisgICAgICAgIEFYT2JqZWN0IG5v
dyBoYXMgYSBwcm90ZWN0ZWQgdmlydHVhbCBtZXRob2QKKyAgICAgICAgY29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQsIGFuZCBhbGwgc3ViY2xhc3NlcworICAgICAgICBvdmVycmlkZSB0aGF0
IGluc3RlYWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJbWFnZU1hcExp
bms6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUxpc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5TGlzdEJveCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaDoK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9scy5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRh
aW5lcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eU1lZGlhVGltZURpc3BsYXkpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5o
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXApOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
Y3JvbGxiYXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OmNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNs
aWRlcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmg6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5U2xpZGVyKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVt
Yik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTcGluQnV0
dG9uUGFydDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CisgICAgICAgIChBY2Nlc3NpYmls
aXR5VGFibGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZUNvbHVtbi5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRh
YmxlSGVhZGVyQ29udGFpbmVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVSb3c6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRhYmxlUm93
KToKKwogMjAxMy0wMi0wNyAgSGFueWVlIEtpbSAgPGNob2NvQGNvbXBhbnkxMDAubmV0PgogCiAg
ICAgICAgIE5hbWVkRmxvd0NvbGxlY3Rpb24gc2hvdWxkIGJlIGEgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUltYWdlTWFwTGluay5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKaW5kZXggMDQ0N2I2MzgxNjA3NjdmNjFhY2Y3ZjRiYWM4
ODdiMDM4M2E3NzIxMC4uZmVlMjg3ZmRkODhiYWYzYzg1YzJkMzYwOTYyNjY5NzZhYjAzMWVkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5SW1hZ2VNYXBMaW5rLmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Tm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlYUVsZW1lbnQuZ2V0KCk7IH0KICAgICAg
ICAgCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KICAgICAKICAgICB2aXJ0dWFsIEVsZW1lbnQqIGFuY2hvckVsZW1lbnQoKSBjb25zdDsKQEAg
LTc1LDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzaWJp
bGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpOwogICAgIHZpcnR1YWwgYm9vbCBp
c0ltYWdlTWFwTGluaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
fTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKaW5kZXggOTQ1N2MwNDBhYThmYzEz
YmY3OTcxZjIyZmU0ZDJiZTE3MWNkMDEzMy4uNWE0YWU3NWI2ZmJmMmEwYzNiMmUxOGM2ZjM4NmVh
ZmJhMjBhZmZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsK
IH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0Citib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9
IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1
ZGVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlMaXN0LmgKaW5kZXggOTBhMDMwZWMyY2U1ODk5ZWM3YzM5YzYwNDhhZmExYzgzYjU0YjUyOS4u
MjVjYzY1YzNiMWQzZWQyMzU5OTQ1MjEzODE3ZjI4ZmMyNjExOTYyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtNTMsOCArNTMs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Rlc2NyaXB0aW9uTGlzdCgpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBMaXN0
Um9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7
Ci0gICAgCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0OwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5j
cHAKaW5kZXggMjJlNWI4MTg1NmY1OTVmOTM0MGZhMTdjNmUxNWY2NWY2NjRhMTUxMC4uMWU1YzUz
Y2NjMDliZmJjYWI4MjQ4NzM5MmZiNWVkZDg4NGQxN2Y3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTE1Miw3
ICsxNTIsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6bGlz
dEJveE9wdGlvbkFjY2Vzc2liaWxpdHlPYmplY3QoSFRNTAogICAgIHJldHVybiBsaXN0Qm94T2Jq
ZWN0OwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlMaXN0Qm94Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRl
Y2lzaW9uID09IEluY2x1ZGVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKaW5kZXggNGYwMDA5NDM4Mzk3NTcwNjUzZTBj
NDFlMjFjN2FlYTE2M2FjNTVjMS4uMjViMGEwNmU2MWU1N2YzZDRhZjExY2JmNWVhNDY1NmE4MzY2
YzgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxpc3RCb3guaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6ICAgIAog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0
KEhUTUxFbGVtZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGVsZW1lbnRB
Y2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogfTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHAKaW5kZXggM2M1NjI1MzVkMjhkZDllMTY0NGNjYzU2OGUyY2E5ODQ5
Yjc2NjQxZC4uNTA5Njk5Zjc3Y2M3MjA4YThlMjQyZjg5YWEwMTVmYTMzNjQ4OTgyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9w
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBMYXlvdXRSZWN0IEFjY2Vzc2li
aWxpdHlMaXN0Qm94T3B0aW9uOjplbGVtZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7
CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAgIGlmICghbV9vcHRpb25FbGVtZW50
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaAppbmRleCBlYTgxMmRhNjQw
MzRjODY0OGNlOTdhMGU0M2I0NjRmNTQ1OTE2ZmRhLi4xMTQ0NDVjMzE1YjJjM2Q1NGYxOGI0N2Jm
ZTQzNjZjODQwYzYxMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oCkBAIC01MSw3ICs1MSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEhUTUxFbGVtZW50KEhUTUxFbGVtZW50KiBlbGVtZW50KSB7IG1f
b3B0aW9uRWxlbWVudCA9IGVsZW1lbnQ7IH0KICAgICAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIExpc3RCb3hPcHRpb25Sb2xlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNvbnN0
OwpAQCAtNzMsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIGludCBsaXN0Qm94T3B0aW9uSW5kZXgo
KSBjb25zdDsKICAgICBJbnRSZWN0IGxpc3RCb3hPcHRpb25SZWN0KCkgY29uc3Q7CiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogbGlzdEJveE9wdGlvbkFjY2Vzc2liaWxpdHlPYmplY3QoSFRNTEVs
ZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdDsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250
cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRp
YUNvbnRyb2xzLmNwcAppbmRleCAzZGFkNzFiMDIwODNmNjY5MzA4MWI3YWU3Yjk2ZWE0NGZjZTU4
ZTA0Li40MTA3MTU3ZDQwNTE5MjFiZmE2MmExMTY1NDY1NTU3ZDQzMmY5OGY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRp
YUNvbnRyb2xzLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sOjpoZWxwVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRIZWxwVGV4dChjb250cm9sVHlwZU5hbWUoKSk7CiB9CiAKLWJvb2wgQWNjZXNz
aWJpbGl0eU1lZGlhQ29udHJvbDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29s
IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIW1fcmVuZGVyZXItPnN0eWxlKCkg
fHwgbV9yZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUgfHwgY29udHJv
bFR5cGUoKSA9PSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTMwMCw3ICszMDAsNyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vz
c2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpjcmVhdGUoUmVuZGVyT2JqZQogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkocmVuZGVyZXIpKTsKIH0K
IAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyIHx8
ICFtX3JlbmRlcmVyLT5zdHlsZSgpIHx8IG1fcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHko
KSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaAppbmRl
eCAzMGQ5ZDVlMzk0Y2Q3MDRiZWUwYzY4ZmQ3NmYwMzMxZjVjMzlmYTk0Li42YzgxYTk3MDg2Zjkx
YmM5ZThhZTM4YTlhYzU1Y2FiNWM4NDFlMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oCkBAIC00NCw3
ICs0NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
KCkgeyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtNTUsNiArNTQsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgY29udHJvbFR5cGUoKSBjb25zdDsKICAgICBT
dHJpbmcgY29udHJvbFR5cGVOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2li
aWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07CiAKIApAQCAtODIsNyAr
ODIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHND
b250YWluZXIoKSB7IH0KIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVl
KCkgY29uc3QgeyByZXR1cm4gVG9vbGJhclJvbGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFs
IFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtOTEsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyKFJlbmRlck9iamVjdCop
OwogICAgIGJvb2wgY29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSBjb25zdDsKICAgICBjb25zdCBT
dHJpbmcgZWxlbWVudFR5cGVOYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIApA
QCAtMTAxLDcgKzEwMSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TWVk
aWFUaW1lRGlzcGxheSgpIHsgfQogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
VmFsdWUoKSBjb25zdCB7IHJldHVybiBTdGF0aWNUZXh0Um9sZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBz
dHJpbmdWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbigpIGNvbnN0OwpAQCAtMTA5LDYgKzEwOCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoUmVuZGVyT2JqZWN0Kik7
CiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sTGFiZWwoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Q7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4IDNlYThmZmQ4OGI1NzRkMWE0MTMxMjI3NmRmMTU1
MDVmMTM3MjBiZDAuLmEwMWMzZDhjYzVhZjNjYzNjYTAzMzUwMmE0MzViOWFkYWY1N2M3NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3QuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlz
TWVudUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBQb3BVcEJ1dHRvblJvbGU7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRy
aWJ1dGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24uY3BwCmluZGV4IDg4OWE0MDlkYTdhNWNkOGE2Y2FkNzg1MDUyZWJlZTY1MTk4
N2Y1MDQuLmIzZGYwYzk1OGFkYTI1ZDNkMDk1YzNjZDY4OTY1YjY3ZTBmYWE1MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb246OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4g
aXNFbmFibGVkKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjphY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0
aW9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgIT0gSW5jbHVkZU9iamVjdDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZW51TGlzdE9wdGlvbi5oCmluZGV4IDE5MWJmNDJjMDc1YzEyMjlmNTMyYTY1YjUxNDJl
YmE5NGU2MGMwOWEuLmMzNDBiN2U0ZmY4ZGMxNTM3OWNkYzFjYzYzYWFhMGU1ZjM2MGU4MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0T3B0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24uaApAQCAtMzcsOCArMzcsNiBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5
TWVudUxpc3RPcHRpb24gOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbj4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbik7
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7Ci0K
ICAgICB2b2lkIHNldEVsZW1lbnQoSFRNTEVsZW1lbnQqKTsKIAogcHJpdmF0ZToKQEAgLTU5LDYg
KzU3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U2VsZWN0ZWRBdHRyaWJ1
dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogCiAgICAgUmVmUHRyPEhU
TUxFbGVtZW50PiBtX2VsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAppbmRleCAxMzIw
NzMwZGUzNmVhNjc0ZjQxNzc0NGQ4YTdiNTc3MmUzYjFlNDQwLi5lYzFkNTNlODQyMGZlNzQ0YWMx
YTdiZjFkNTI5NTJmNjAyYjZmNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcApAQCAtNjIsNyAr
NjIsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjppc0VuYWJsZWQoKSBjb25z
dAogICAgIHJldHVybiBtX3BhcmVudC0+aXNFbmFibGVkKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXA6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdAogewogICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVj
dCgpICE9IEluY2x1ZGVPYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKaW5kZXggMDk0MzVkMDJi
Y2Q5N2QyMzNjYjVmOGUzYjhiMjBjMjNlMDgxZDY1NS4uNTJiMzBkY2VmMGYzN2YyMzc1NTAwOTU5
ZTQ4ZGFmYTVjZGVkOThiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtNDEsNyArNDEsNiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGlu
dCBvcHRpb25JbmRleCk7CiAKQEAgLTU4LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgcHJlc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRyZW4oKTsKICAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgdmlydHVhbCBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24qIG1lbnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChIVE1MRWxlbWVu
dCopIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggODlmZmI4ZmJiN2E3NjE2MDhiMjg2
MDU3YTZkMWYyNWRkNjc5NjYwNi4uODU0NjNiYjc1ODc4OTk3MGFhNTZkYzczZGEwNmY5M2RkNWRi
ZTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM4OSw3ICszODksNyBAQCBib29sIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAgIH0KIH0KIAotYm9v
bCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0CiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIERvdWJsZS1jaGVjayB0aGF0
IGFuIEFjY2Vzc2liaWxpdHlPYmplY3QgaXMgbmV2ZXIgYWNjZXNzZWQgYmVmb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKaW5kZXggNGRhNTFjMjJlYTg1NGU5ZTQ3OTFmNDlkYTMwNDBkNzc0NTUzZjZmYS4uZTVmNTY1
NDViNzFjMjEwZWM3Zjg4YTQ4ZmIzOTI1ODFiZWRmYWE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtMTY1
LDcgKzE2NSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0Q2hpbGQoQWNj
ZXNzaWJpbGl0eU9iamVjdCosIHVuc2lnbmVkIGluZGV4KTsKIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5IYXZlQ2hpbGRyZW4oKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlQXR0cmlidXRl
KCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1
dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJl
bnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwpAQCAtMTk4LDYgKzE5Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBoZWxwVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7CiAg
ICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lkIGFy
aWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07CiAK
IGlubGluZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCogdG9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBmOTE2ZTg3MGRiNmMy
ZGYyYjg3YzQ4ZDBlZjQzYWRjMTQzZjIzMjRhLi5iOTE3MDNhYzUyNDRhMDc1MGY5ZmQ1ZjAxYmEy
MTZmZGFhN2Y4OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTE4NDMsNCArMTg0MywzMSBAQCBib29sIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OmlzQnV0dG9uKCkgY29uc3QKICAgICByZXR1cm4gcm9sZSA9PSBCdXR0
b25Sb2xlIHx8IHJvbGUgPT0gUG9wVXBCdXR0b25Sb2xlIHx8IHJvbGUgPT0gVG9nZ2xlQnV0dG9u
Um9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKK3sKKyNpZm5kZWYgTkRFQlVHCisgICAgQVNTRVJUKG1faW5pdGlhbGl6ZWQp
OworI2VuZGlmCisKKyAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUqIGF0dHJpYnV0
ZUNhY2hlID0gYXhPYmplY3RDYWNoZSgpLT5jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCk7
CisgICAgaWYgKGF0dHJpYnV0ZUNhY2hlKSB7CisgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJ
bmNsdXNpb24gaWdub3JlZCA9IGF0dHJpYnV0ZUNhY2hlLT5nZXRJZ25vcmVkKGF4T2JqZWN0SUQo
KSk7CisgICAgICAgIHN3aXRjaCAoaWdub3JlZCkgeworICAgICAgICBjYXNlIElnbm9yZU9iamVj
dDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEluY2x1ZGVPYmplY3Q6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgRGVmYXVsdEJlaGF2aW9y
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIHJlc3Vs
dCA9IGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisKKyAgICBpZiAoYXR0cmlidXRl
Q2FjaGUpCisgICAgICAgIGF0dHJpYnV0ZUNhY2hlLT5zZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSwg
cmVzdWx0ID8gSWdub3JlT2JqZWN0IDogSW5jbHVkZU9iamVjdCk7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGMyOTdhMDk3YzQzYjYz
MWY1NWUzYTQ4YzFhYzk1MDY1NTAxMDAyNDkuLmI2YzBhNjIyNDYyZTYyNjBhNDRmZjRlOTI4MWYx
YTQ0MzFmOWU2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00ODUsNyArNDg1LDcgQEAgcHVibGljOgogICAgIAogICAg
IHZpcnR1YWwgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBi
b29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCAgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICBpbnQg
YmxvY2txdW90ZUxldmVsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgaGVhZGluZ0xldmVsKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQpAQCAtODMzLDYgKzgzMyw4IEBAIHByb3RlY3RlZDoKICAgICBt
dXRhYmxlIGJvb2wgbV9oYXZlQ2hpbGRyZW47CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgbV9yb2xl
OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gbV9jYWNoZWRJc0lnbm9yZWRWYWx1
ZTsKKworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICAvLyBJZiB0aGlzIG9iamVjdCBpdHNlbGYg
c2Nyb2xscywgcmV0dXJuIGl0cyBTY3JvbGxhYmxlQXJlYS4KICAgICB2aXJ0dWFsIFNjcm9sbGFi
bGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAppbmRleCA0OTRkMWMyMGI0ZjY0MjBhM2Jl
YjUzNzkwMWJmZWRlYjRhZTNlOGE0Li40MWU1NTc0NzBhYzA0MDY1ODFhYTc3NGNkYTBjOWZiMDBk
NDFkZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCkBAIC00Miw3ICs0Miw3IEBA
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBBY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3Np
YmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IocmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmls
aXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9v
bCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJhc2Uo
KSA9PSBJZ25vcmVPYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAppbmRleCBkNjBi
YjJjYTVhNjVlZjcxYjEzMTg3YWMzYjFkMGFhNzdmNDNmZWU3Li40NmFkZWZmNmI2M2IyMjRmZTE1
ZGI3MzY5NWI4YjQ4NWNkY2Y4OGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IoUmVuZGVyUHJvZ3Jlc3MqKTsKIAogICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIGVs
ZW1lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0OwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA5ODliNGRkOThlNTk3YjU4
YTkwYjcwMzFlZjcyMTAwYmFmZTcwNTY2Li4wYzRlZGE3NWZiYjA2YmEwMzc4NWQyMmZiZDcxNGY5
ZjljZDUyNjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTExMjIsMzMgKzExMjIsNiBAQCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWRCYQogICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7CiB9ICAK
IAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QKLXsKLSNpZm5kZWYgTkRFQlVHCi0gICAgQVNTRVJUKG1faW5pdGlhbGl6ZWQpOwot
I2VuZGlmCi0KLSAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUqIGF0dHJpYnV0ZUNh
Y2hlID0gYXhPYmplY3RDYWNoZSgpLT5jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCk7Ci0g
ICAgaWYgKGF0dHJpYnV0ZUNhY2hlKSB7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNs
dXNpb24gaWdub3JlZCA9IGF0dHJpYnV0ZUNhY2hlLT5nZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSk7
Ci0gICAgICAgIHN3aXRjaCAoaWdub3JlZCkgewotICAgICAgICBjYXNlIElnbm9yZU9iamVjdDoK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIEluY2x1ZGVPYmplY3Q6Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGNhc2UgRGVmYXVsdEJlaGF2aW9yOgot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIHJlc3VsdCA9
IGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7Ci0KLSAgICBpZiAoYXR0cmlidXRlQ2Fj
aGUpCi0gICAgICAgIGF0dHJpYnV0ZUNhY2hlLT5zZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSwgcmVz
dWx0ID8gSWdub3JlT2JqZWN0IDogSW5jbHVkZU9iamVjdCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICAvLyBDaGVjayBmaXJzdCBpZiBhbnkgb2YgdGhl
IGNvbW1vbiByZWFzb25zIGNhdXNlIHRoaXMgZWxlbWVudCB0byBiZSBpZ25vcmVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuaAppbmRleCAwYTViZGQyNmU3MjQzMGU5ZjcwZjdkYzJhZGQzODlkZDJlY2M1ZDUwLi41
MWU1M2JmOGI5YmM1Y2Y4ZmY3NjFmMzExNmM0YjJlYmY4ZjJhNDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUHJvdmlkZXMgY29tbW9u
IGxvZ2ljIHVzZWQgYnkgYWxsIGVsZW1lbnRzIHdoZW4gZGV0ZXJtaW5pbmcgaXNJZ25vcmVkLgog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJh
c2UoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0OwogICAgIAogICAgIHZpcnR1YWwgaW50IGxheW91dENvdW50KCkgY29uc3Q7CiAgICAgdmly
dHVhbCBkb3VibGUgZXN0aW1hdGVkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CkBAIC0yNzksOCAr
Mjc5LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIGluaGVyaXRzUHJlc2VudGF0aW9uYWxS
b2xlKCkgY29uc3Q7CiAKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Q7Ci0gICAgCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAvLyBBbGwgbWF0aCBlbGVtZW50
cyByZXR1cm4gdHJ1ZSBmb3IgaXNNYXRoRWxlbWVudCgpLgogICAgIHZpcnR1YWwgYm9vbCBpc01h
dGhFbGVtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IDEyZTViNGJmMzc5OWVlMzEw
MzZkOTY1ODc4YzJjZmE4M2Q3ZWZjYjkuLjE5YjQ0ODJlYzgzYzZiMDlmNmRmMjVjY2Q3ZDkxOGVj
ZjNjMGYxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldzo6Y2xlYXJDaGlsZHJlbigpCiAgICAgbV9ob3Jpem9udGFsU2Ny
b2xsYmFyID0gMDsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogd2ViQXJlYSA9IHdlYkFyZWFPYmplY3QoKTsKICAgICBpZiAoIXdlYkFyZWEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmgKaW5kZXggNGZmOGEyMjNmZDg3OWI2YjU2MTRhZTU0ZWIzNTE0Njc3NzRkMDlhYS4uMjBh
YjY0ZWE2ZTYwODc0OTgzNTJkNjYxNjIyNmFlOTdjYTI2MjYyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAt
NTAsNyArNTAsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCmluZGV4
IDg0MGI3OTdhYWE1NTFjMWIxMjE4MDQ5MjQwOGJjMTk2MGVjYjM3ZjkuLjYxODM3ZjQzMjEwN2E2
YmJmOWYyNjVlMWVmZGNlMGQ0N2NlYmFmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIGJvb2wgY2FuU2V0TnVtZXJpY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVy
LmNwcAppbmRleCBiMDNiOWM0ZmI0MDIwN2Q2YjkzMjkwMzNjNTQxNWRkNmI0YjRjYjdkLi44OWYw
NWY4ODc0ODc1OGNjNmE2YTBhM2U4ZTI4ODEwOTE5ZmNiOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTExMyw3
ICsxMTMsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U2xpZGVyOjplbGVt
ZW50QWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UAogICAgIHJldHVybiBheE9iamVjdENh
Y2hlKCktPmdldE9yQ3JlYXRlKG1fcmVuZGVyZXIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlT
bGlkZXI6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5
U2xpZGVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCkBAIC0xNzgsNyAr
MTc4LDcgQEAgTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWI6OmVsZW1lbnRSZWN0
KCkgY29uc3QKICAgICByZXR1cm4gc2xpZGVyVGh1bWJFbGVtZW50T2Yoc2xpZGVyUmVuZGVyZXIt
Pm5vZGUoKSktPmJvdW5kaW5nQm94KCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVNsaWRlclRo
dW1iOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVNs
aWRlclRodW1iOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlQbGF0
Zm9ybUluY2x1ZGVzT2JqZWN0KCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5oCmluZGV4IDk0YzQzMTYyNTg1NzU3YTFkOWZjODdkNjQwOTcxMjkyN2Q0NzU5YzcuLjMzZTIz
ZWZmZjIxMmY1ODRlZGEwMzM1MTZlMjJlOGViYzZmMDJlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCkBAIC00Nyw3ICs0Nyw3
IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5
SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBTbGlkZXJSb2xlOyB9ICAgIApAQCAt
NzcsMTAgKzc3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBlbGVtZW50
UmVjdCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIoKTsKKwor
ICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Owog
fTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTcGluQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTcGluQnV0dG9uLmgKaW5kZXggNTRkNThmZWE1ZmM3NWExZTQ1YzkxNjFkYzBjZmEyNzI1
YjVhYjAxNi4uOGQwMjVmNzczN2JlOTQxMzMxM2Q1OGE0ZmJjNWQ2YzExMTVkNzMzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5C
dXR0b24uaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlTcGlu
QnV0dG9uKCk7CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIFNwaW5CdXR0b25Sb2xlOyB9Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRyZW4oKTsKICAgICB2aXJ0dWFsIExheW91dFJlY3Qg
ZWxlbWVudFJlY3QoKSBjb25zdDsKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIEJ1dHRvblJv
bGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTcGluQnV0dG9uUGFydCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAgICAgCiBpbmxpbmUgQWNjZXNzaWJpbGl0eVNw
aW5CdXR0b24qIHRvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGUuY3BwCmluZGV4IDk5NjhiMTRmZDhlNDFlNTEzODg4MzZhYmM5Zjg5NGI0MTk1ZjY1
NjIuLjcyZDliMDI1YjI5OTVlZTRhY2NjYTFjMDU2NGRhYTQ3MjM5MDhmZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKQEAg
LTU5Miw3ICs1OTIsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGU6OnJv
bGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFRhYmxlUm9sZTsKIH0KICAgICAKLWJvb2wgQWNj
ZXNzaWJpbGl0eVRhYmxlOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNj
ZXNzaWJpbGl0eVRhYmxlOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7
CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCkBA
IC02MDEsNyArNjAxLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoKSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBpZiAoIWlz
QWNjZXNzaWJpbGl0eVRhYmxlKCkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwogICAg
ICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCA5ZjI4ZjQxMjIzMjZiMWQ1MjE3OTMz
ZWM2M2I5MjQ4NDczMDg1N2NjLi41MjJjNTcwMDRmN2VjYWRiY2NjM2M1Y2FjMjk4YWZlZDcwNGE4
NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQXJpYVRhYmxl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwotICAgIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGls
ZHJlbigpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckNoaWxkcmVuKCk7CiAgICAgCkBAIC05Miw2
ICs5MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgaGFzQVJJQVJvbGUoKSBjb25zdDsKICAg
ICBib29sIGlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsK
ICAgICAKIGlubGluZSBBY2Nlc3NpYmlsaXR5VGFibGUqIHRvQWNjZXNzaWJpbGl0eVRhYmxlKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCmluZGV4IGIwODgxYzY4YjVj
MzEzM2FkMmYxMTQ4ZDBkMzA1NzBjOThhNGFmOWIuLjMxYjlmNjgxZDQ3MTcxYWMwODc5OThhNDg4
YzcyZTkyMjYzYzVmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcApAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNyZWF0
ZShSZW5kZXJPYmplY3QqCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsKHJlbmRlcmVyKSk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6YWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJhc2Uo
KTsKICAgICBpZiAoZGVjaXNpb24gPT0gSW5jbHVkZU9iamVjdCkKQEAgLTYzLDcgKzYzLDcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29u
c3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgaWYgKCFpc1RhYmxlQ2VsbCgpKQot
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlQ2VsbC5oCmluZGV4IDkzNDE2MzRhOTViMDE3ZmU0ZWZlMTU4ZGQxZDkxMTlkZjU3NjA0OGMu
LjcyZTVmZDk4YmZiZDVjZWJjOGZiNGJhOTgzODMzOGIwZjJiYjJkYTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCkBA
IC00Myw4ICs0Myw2IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZUNl
bGwoKSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0OwotCiAgICAgLy8gZmlsbHMgaW4gdGhlIHN0YXJ0IGxvY2F0aW9uIGFuZCByb3cg
c3BhbiBvZiBjZWxsCiAgICAgdmlydHVhbCB2b2lkIHJvd0luZGV4UmFuZ2UocGFpcjxpbnQsIGlu
dD4mIHJvd1JhbmdlKTsKICAgICAvLyBmaWxscyBpbiB0aGUgc3RhcnQgbG9jYXRpb24gYW5kIGNv
bHVtbiBzcGFuIG9mIGNlbGwKQEAgLTU5LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBJZiBh
IHRhYmxlIGNlbGwgaXMgbm90IGV4cG9zZWQgYXMgYSB0YWJsZSBjZWxsLCBhIFRIIGVsZW1lbnQg
Y2FuIHNlcnZlIGFzIGl0cyB0aXRsZSBVSSBlbGVtZW50LgogICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogdGl0bGVVSUVsZW1lbnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZXhw
b3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsgCiAgICAgCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCmluZGV4IGQ4YWYwNDZkMDYw
Yjg5YmIzYjZkMDYxMGViZjMxNWRkOTQxYTRmNzQuLjRkNDk0ODIyZDQwMjA4ZjczMDdlODM2YTgz
YTk2NmUxY2UyMTMzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmhlYWRlck9iamVj
dEZvclNlY3Rpb24oUmVuZGVyVGFibAogICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldE9y
Q3JlYXRlKGNlbGwpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1
bW46OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBpZiAoIW1f
cGFyZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCmluZGV4IDYzMjA5N2Vj
NDIwYjVmNGMwYTE5NzcxNjFhNzg5ZDRmYzAzNTQxYzQuLjZlNzM3YzEyMWQxMDQ2OWQxYWQ2Njg5
YzYxMzVkMGE5MTQyNWU5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaApAQCAtNDcsNyArNDcsNiBAQCBwdWJs
aWM6CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVhZGVyT2JqZWN0KCk7CiAgICAg
ICAgIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBD
b2x1bW5Sb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGFibGVDb2x1bW4oKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgCkBAIC02NCw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0
UmVjdCBtX2NvbHVtblJlY3Q7CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVhZGVy
T2JqZWN0Rm9yU2VjdGlvbihSZW5kZXJUYWJsZVNlY3Rpb24qLCBib29sIHRoVGFnUmVxdWlyZWQp
OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
OwogfTsKICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVy
Q29udGFpbmVyLmNwcAppbmRleCBhODVlNTNhMWI4YTMwNmI4YWQ5YWRlZTM4MTBjMzgzN2ZmZjA4
MjAxLi4zZTc4OWRlZjI4NDBhZmJiM2I2OTlhNjhjY2ZlZjg0ODRkNTliNWMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNv
bnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIExheW91dFJlY3Qg
QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjplbGVtZW50UmVjdCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faGVhZGVyUmVjdDsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXI6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFyZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oCmluZGV4IDYyNWUxZGQzNTljZGIxYTQ0MWVkZmUw
NTIzMjRhNTQwNGZjYjU2MDUuLjZhOWIyYzk1YjMwNjM0Nzg1MDVjMjUyMGJlOGZjNWRmMTEzNmUz
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaApAQCAtNTIsNyArNTIsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIExheW91dFJlY3QgbV9oZWFkZXJSZWN0OwogICAgIAotICAg
IHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiB9OyAKICAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKaW5kZXggM2IyMjA1ODYyYjYzNjYz
ZTYzODIyOWFmYTNkOTVmNTRlN2IzYjJlZC4uMTI3MGNmODkyZjRjYzhhNTFlNDQ0NWMzZTM3MzJj
ZTFiN2Y5MDRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcApAQCAtODYsNyArODYsNyBAQCBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6Om9ic2VydmFibGVPYmplY3QoKSBjb25zdAog
ICAgIHJldHVybiBwYXJlbnRUYWJsZSgpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFi
bGVSb3c6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5
VGFibGVSb3c6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsgICAgCiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCkBAIC05
NSw3ICs5NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlUm93OjphY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgaWYgKCFpc1Rh
YmxlUm93KCkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwogCiAgICAgcmV0dXJuIGZh
bHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmgKaW5kZXggNmU4OGY4ZmQxNDJmMTdlMTQ3MzliNDI0MDQwNTYzMmRmYTU5
NTZkNS4uZDI0MmVlNDQ5Y2Q2Y2FlMWJiMmI3MTQxYTVhMDhkZGFmNTBkYmRlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5o
CkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFi
bGVSb3coKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZVJvdygpIGNvbnN0OwotICAg
IHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICAvLyBy
ZXRyaWV2ZXMgdGhlICJyb3ciIGhlYWRlciAoYSB0aCB0YWcgaW4gdGhlIHJpZ2h0bW9zdCBjb2x1
bW4pCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3QoKTsKQEAg
LTYyLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9yb3dJbmRleDsKICAgICAKICAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07
IAogICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187361</attachid>
            <date>2013-02-08 13:59:00 -0800</date>
            <delta_ts>2013-02-09 13:54:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109322-20130208135534.patch</filename>
            <type>text/plain</type>
            <size>39935</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjNTcwNGVkNWU2Yjk3
NGJkZWEzMzRhMzZmODExZGQzZTdmNGNjOC4uZGJkNTAyOTYzOWU4M2Y5MDhlMjFlZTc0YWJiZGU5
ZWJiNGFkNGJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAxMy0wMi0wOCAgRG9t
aW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBBWDogbW92ZSBp
c0lnbm9yZWQgY2FjaGluZyB0byBBWE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlcmUncyBzb21lIGJlbmVmaXQgdG8gY2FjaGluZyBhY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkCisgICAgICAgICh1c2luZyBBWENvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGUpIGZvciBtb3JlIHRoYW4ganVzdAorICAgICAgICBBWFJlbmRlck9iamVjdCwgc28g
bW92ZSB0aGUgY2FjaGluZyBjb2RlIHRvIEFYT2JqZWN0LgorCisgICAgICAgIEFYT2JqZWN0IG5v
dyBoYXMgYSBwcm90ZWN0ZWQgdmlydHVhbCBtZXRob2QKKyAgICAgICAgY29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQsIGFuZCBhbGwgc3ViY2xhc3NlcworICAgICAgICBvdmVycmlkZSB0aGF0
IGluc3RlYWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJbWFnZU1hcExp
bms6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUxpc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5TGlzdEJveCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaDoK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9scy5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRh
aW5lcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eU1lZGlhVGltZURpc3BsYXkpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5o
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXApOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlTY3JvbGxiYXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5U2xpZGVyKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlTbGlkZXJUaHVtYik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U3BpbkJ1dHRvbi5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNwaW5C
dXR0b246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGFibGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmg6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VGFibGVDZWxsKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDb2x1
bW46OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRh
YmxlQ29sdW1uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVRhYmxlUm93KToKKwogMjAxMy0wMi0wNyAgSGFueWVlIEtpbSAgPGNob2Nv
QGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIE5hbWVkRmxvd0NvbGxlY3Rpb24gc2hvdWxkIGJl
IGEgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKaW5kZXggMDQ0N2I2
MzgxNjA3NjdmNjFhY2Y3ZjRiYWM4ODdiMDM4M2E3NzIxMC4uZmVlMjg3ZmRkODhiYWYzYzg1YzJk
MzYwOTYyNjY5NzZhYjAzMWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKQEAgLTUyLDcgKzUyLDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlYUVs
ZW1lbnQuZ2V0KCk7IH0KICAgICAgICAgCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlVmFsdWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICB2aXJ0dWFsIEVsZW1lbnQqIGFuY2hv
ckVsZW1lbnQoKSBjb25zdDsKQEAgLTc1LDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYp
OwogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlTWFwTGluaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAK
aW5kZXggOTQ1N2MwNDBhYThmYzEzYmY3OTcxZjIyZmU0ZDJiZTE3MWNkMDEzMy4uNWE0YWU3NWI2
ZmJmMmEwYzNiMmUxOGM2ZjM4NmVhZmJhMjBhZmZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJp
bGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdDo6YWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCYXNlKCk7CiAgICAg
aWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKaW5kZXggOTBhMDMwZWMyY2U1ODk5ZWM3YzM5
YzYwNDhhZmExYzgzYjU0YjUyOS4uMjVjYzY1YzNiMWQzZWQyMzU5OTQ1MjEzODE3ZjI4ZmMyNjEx
OTYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxpc3QuaApAQCAtNTMsOCArNTMsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Rlc2NyaXB0aW9u
TGlzdCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUo
KSBjb25zdCB7IHJldHVybiBMaXN0Um9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3Q7Ci0gICAgCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKaW5kZXggMjJlNWI4MTg1NmY1OTVmOTM0MGZhMTdjNmUx
NWY2NWY2NjRhMTUxMC4uMWU1YzUzY2NjMDliZmJjYWI4MjQ4NzM5MmZiNWVkZDg4NGQxN2Y3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nl
c3NpYmlsaXR5TGlzdEJveDo6bGlzdEJveE9wdGlvbkFjY2Vzc2liaWxpdHlPYmplY3QoSFRNTAog
ICAgIHJldHVybiBsaXN0Qm94T2JqZWN0OwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlz
dEJveDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlM
aXN0Qm94Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKaW5kZXgg
NGYwMDA5NDM4Mzk3NTcwNjUzZTBjNDFlMjFjN2FlYTE2M2FjNTVjMS4uMjViMGEwNmU2MWU1N2Yz
ZDRhZjExY2JmNWVhNDY1NmE4MzY2YzgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaApAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6ICAgIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPcHRp
b25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBi
b29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYp
IGNvbnN0OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKaW5kZXggM2M1NjI1MzVkMjhk
ZDllMTY0NGNjYzU2OGUyY2E5ODQ5Yjc2NjQxZC4uNTA5Njk5Zjc3Y2M3MjA4YThlMjQyZjg5YWEw
MTVmYTMzNjQ4OTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBA
QCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjplbGVtZW50UmVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRp
b246OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAg
IGlmICghbV9vcHRpb25FbGVtZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRp
b24uaAppbmRleCBlYTgxMmRhNjQwMzRjODY0OGNlOTdhMGU0M2I0NjRmNTQ1OTE2ZmRhLi4xMTQ0
NDVjMzE1YjJjM2Q1NGYxOGI0N2JmZTQzNjZjODQwYzYxMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5o
CkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhUTUxFbGVtZW50KEhUTUxF
bGVtZW50KiBlbGVtZW50KSB7IG1fb3B0aW9uRWxlbWVudCA9IGVsZW1lbnQ7IH0KICAgICAKICAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIExp
c3RCb3hPcHRpb25Sb2xlOyB9Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3Rl
ZE9wdGlvbkFjdGl2ZSgpIGNvbnN0OwpAQCAtNzMsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIGlu
dCBsaXN0Qm94T3B0aW9uSW5kZXgoKSBjb25zdDsKICAgICBJbnRSZWN0IGxpc3RCb3hPcHRpb25S
ZWN0KCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdEJveE9wdGlvbkFjY2Vz
c2liaWxpdHlPYmplY3QoSFRNTEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07CiAgICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzZGFkNzFiMDIwODNmNjY5
MzA4MWI3YWU3Yjk2ZWE0NGZjZTU4ZTA0Li40MTA3MTU3ZDQwNTE5MjFiZmE2MmExMTY1NDY1NTU3
ZDQzMmY5OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpoZWxwVGV4dCgpIGNvbnN0CiAgICAgcmV0
dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb250cm9sVHlwZU5hbWUo
KSk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwg
IW1fcmVuZGVyZXItPnN0eWxlKCkgfHwgbV9yZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgp
ICE9IFZJU0lCTEUgfHwgY29udHJvbFR5cGUoKSA9PSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTMwMCw3ICszMDAsNyBAQCBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpjcmVhdGUoUmVu
ZGVyT2JqZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURp
c3BsYXkocmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxh
eTo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZWRp
YVRpbWVEaXNwbGF5Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFtX3JlbmRlcmVyLT5zdHlsZSgpIHx8IG1fcmVuZGVyZXIt
PnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
ZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHMuaAppbmRleCAzMGQ5ZDVlMzk0Y2Q3MDRiZWUwYzY4ZmQ3NmYwMzMxZjVj
MzlmYTk0Li42YzgxYTk3MDg2ZjkxYmM5ZThhZTM4YTlhYzU1Y2FiNWM4NDFlMTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5oCkBAIC00NCw3ICs0NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sKCkgeyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlS
b2xlIHJvbGVWYWx1ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtNTUs
NiArNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgY29udHJv
bFR5cGUoKSBjb25zdDsKICAgICBTdHJpbmcgY29udHJvbFR5cGVOYW1lKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4m
KTsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dDsKIH07CiAKIApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNz
aWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIoKSB7IH0KIAogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gVG9vbGJhclJvbGU7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtOTEsNiArOTAs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29u
dGFpbmVyKFJlbmRlck9iamVjdCopOwogICAgIGJvb2wgY29udHJvbGxpbmdWaWRlb0VsZW1lbnQo
KSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcgZWxlbWVudFR5cGVOYW1lKCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIH07CiAKIApAQCAtMTAxLDcgKzEwMSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5BY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheSgpIHsgfQogCiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBTdGF0aWNUZXh0Um9s
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3Ry
aW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtMTA5LDYgKzEwOCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURp
c3BsYXkoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sTGFi
ZWwoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4IDNlYThmZmQ4
OGI1NzRkMWE0MTMxMjI3NmRmMTU1MDVmMTM3MjBiZDAuLmEwMWMzZDhjYzVhZjNjYzNjYTAzMzUw
MmE0MzViOWFkYWY1N2M3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBQ
b3BVcEJ1dHRvblJvbGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCmluZGV4IDg4OWE0MDlkYTdhNWNk
OGE2Y2FkNzg1MDUyZWJlZTY1MTk4N2Y1MDQuLmIzZGYwYzk1OGFkYTI1ZDNkMDk1YzNjZDY4OTY1
YjY3ZTBmYWE1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNhblNldFNlbGVjdGVkQXR0cmlidXRl
KCkgY29uc3QKICAgICByZXR1cm4gaXNFbmFibGVkKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0
KCkgIT0gSW5jbHVkZU9iamVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCmluZGV4IDE5MWJmNDJj
MDc1YzEyMjlmNTMyYTY1YjUxNDJlYmE5NGU2MGMwOWEuLmMzNDBiN2U0ZmY4ZGMxNTM3OWNkYzFj
YzYzYWFhMGU1ZjM2MGU4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaApAQCAtMzcsOCArMzcsNiBA
QCBjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24gOiBwdWJsaWMgQWNjZXNzaWJpbGl0
eU1vY2tPYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2li
aWxpdHlNZW51TGlzdE9wdGlvbik7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldEVsZW1lbnQoSFRNTEVsZW1lbnQqKTsK
IAogcHJpdmF0ZToKQEAgLTU5LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuU2V0U2VsZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJlY3Qg
ZWxlbWVudFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0OwogCiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2VsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dFBvcHVwLmNwcAppbmRleCAxMzIwNzMwZGUzNmVhNjc0ZjQxNzc0NGQ4YTdiNTc3MmUzYjFlNDQw
Li5lYzFkNTNlODQyMGZlNzQ0YWMxYTdiZjFkNTI5NTJmNjAyYjZmNDRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dFBvcHVwLmNwcApAQCAtNjIsNyArNjIsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBv
cHVwOjppc0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX3BhcmVudC0+aXNFbmFibGVkKCk7
CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpICE9IEluY2x1ZGVPYmplY3Q7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVw
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBv
cHVwLmgKaW5kZXggMDk0MzVkMDJiY2Q5N2QyMzNjYjVmOGUzYjhiMjBjMjNlMDgxZDY1NS4uNTJi
MzBkY2VmMGYzN2YyMzc1NTAwOTU5ZTQ4ZGFmYTVjZGVkOThiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAu
aApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVk
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Q7Ci0gICAgdmly
dHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGlk
VXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7CiAKQEAgLTU4LDYgKzU3LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcHJlc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgYWRkQ2hpbGRyZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7Cisg
ICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAK
ICAgICBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24qIG1lbnVMaXN0T3B0aW9uQWNjZXNzaWJp
bGl0eU9iamVjdChIVE1MRWxlbWVudCopIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
ODlmZmI4ZmJiN2E3NjE2MDhiMjg2MDU3YTZkMWYyNWRkNjc5NjYwNi4uODU0NjNiYjc1ODc4OTk3
MGFhNTZkYzczZGEwNmY5M2RkNWRiZTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM4OSw3ICsz
ODksNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBj
b25zdAogICAgIH0KIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAjaWZuZGVmIE5ERUJVRwogICAg
IC8vIERvdWJsZS1jaGVjayB0aGF0IGFuIEFjY2Vzc2liaWxpdHlPYmplY3QgaXMgbmV2ZXIgYWNj
ZXNzZWQgYmVmb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggNGRhNTFjMjJlYTg1NGU5ZTQ3OTFmNDlkYTMw
NDBkNzc0NTUzZjZmYS4uZTVmNTY1NDViNzFjMjEwZWM3Zjg4YTQ4ZmIzOTI1ODFiZWRmYWE4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuaApAQCAtMTY1LDcgKzE2NSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgaW5zZXJ0Q2hpbGQoQWNjZXNzaWJpbGl0eU9iamVjdCosIHVuc2lnbmVkIGluZGV4KTsK
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdDsKLSAgICB2aXJ0dWFs
IGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlS
b2xlIGFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0
ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
ZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwpAQCAtMTk4
LDYgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoZWxwVGV4dChWZWN0b3I8QWNjZXNzaWJp
bGl0eVRleHQ+JikgY29uc3Q7CiAgICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEo
KSBjb25zdDsKICAgICB2b2lkIGFyaWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdDsKIH07CiAKIGlubGluZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCogdG9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cAppbmRleCBmOTE2ZTg3MGRiNmMyZGYyYjg3YzQ4ZDBlZjQzYWRjMTQzZjIzMjRhLi43MjA1ZjA0
YTQ0NjIwYWY0MTExMzFmNWE5ZDRmODA4NTM0MGIyYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTE4NDMsNCAr
MTg0MywyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQnV0dG9uKCkgY29uc3QKICAg
ICByZXR1cm4gcm9sZSA9PSBCdXR0b25Sb2xlIHx8IHJvbGUgPT0gUG9wVXBCdXR0b25Sb2xlIHx8
IHJvbGUgPT0gVG9nZ2xlQnV0dG9uUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICBBWENvbXB1dGVkT2JqZWN0
QXR0cmlidXRlQ2FjaGUqIGF0dHJpYnV0ZUNhY2hlID0gYXhPYmplY3RDYWNoZSgpLT5jb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCk7CisgICAgaWYgKGF0dHJpYnV0ZUNhY2hlKSB7CisgICAg
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gaWdub3JlZCA9IGF0dHJpYnV0ZUNhY2hl
LT5nZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSk7CisgICAgICAgIHN3aXRjaCAoaWdub3JlZCkgewor
ICAgICAgICBjYXNlIElnbm9yZU9iamVjdDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBjYXNlIEluY2x1ZGVPYmplY3Q6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGNhc2UgRGVmYXVsdEJlaGF2aW9yOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBib29sIHJlc3VsdCA9IGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCk7CisKKyAgICBpZiAoYXR0cmlidXRlQ2FjaGUpCisgICAgICAgIGF0dHJpYnV0ZUNhY2hlLT5z
ZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSwgcmVzdWx0ID8gSWdub3JlT2JqZWN0IDogSW5jbHVkZU9i
amVjdCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCmluZGV4IGMyOTdhMDk3YzQzYjYzMWY1NWUzYTQ4YzFhYzk1MDY1NTAxMDAyNDkuLmI2YzBh
NjIyNDYyZTYyNjBhNDRmZjRlOTI4MWYxYTQ0MzFmOWU2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00ODUsNyArNDg1
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCB7IHJl
dHVybiAwOyB9Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCAgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3Q7CiAKICAgICBpbnQgYmxvY2txdW90ZUxldmVsKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBpbnQgaGVhZGluZ0xldmVsKCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtODMzLDYgKzgz
Myw4IEBAIHByb3RlY3RlZDoKICAgICBtdXRhYmxlIGJvb2wgbV9oYXZlQ2hpbGRyZW47CiAgICAg
QWNjZXNzaWJpbGl0eVJvbGUgbV9yb2xlOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNp
b24gbV9jYWNoZWRJc0lnbm9yZWRWYWx1ZTsKKworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICAv
LyBJZiB0aGlzIG9iamVjdCBpdHNlbGYgc2Nyb2xscywgcmV0dXJuIGl0cyBTY3JvbGxhYmxlQXJl
YS4KICAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xs
YWJsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcApp
bmRleCA0OTRkMWMyMGI0ZjY0MjBhM2JlYjUzNzkwMWJmZWRlYjRhZTNlOGE0Li40MWU1NTc0NzBh
YzA0MDY1ODFhYTc3NGNkYTBjOWZiMDBkNDFkZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3IuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yPiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IocmVuZGVyZXIp
KTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZEJhc2UoKSA9PSBJZ25vcmVPYmplY3Q7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jl
c3NJbmRpY2F0b3IuaAppbmRleCBkNjBiYjJjYTVhNjVlZjcxYjEzMTg3YWMzYjFkMGFhNzdmNDNm
ZWU3Li40NmFkZWZmNmI2M2IyMjRmZTE1ZGI3MzY5NWI4YjQ4NWNkY2Y4OGI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IoUmVuZGVyUHJvZ3Jlc3MqKTsKIAogICAg
IEhUTUxQcm9ncmVzc0VsZW1lbnQqIGVsZW1lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wg
YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCA5ODliNGRkOThlNTk3YjU4YTkwYjcwMzFlZjcyMTAwYmFmZTcwNTY2Li5kMmYyODkw
OTU1MGNhNzJlNTdhZGFmMmM5ZGI3ZWEzMTEwMTBlZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
QEAgLTExMjIsMzUgKzExMjIsMTIgQEAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQmEKICAgICByZXR1
cm4gRGVmYXVsdEJlaGF2aW9yOwogfSAgCiAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICNpZm5k
ZWYgTkRFQlVHCiAgICAgQVNTRVJUKG1faW5pdGlhbGl6ZWQpOwogI2VuZGlmCiAKLSAgICBBWENv
bXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUqIGF0dHJpYnV0ZUNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpLT5jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCk7Ci0gICAgaWYgKGF0dHJpYnV0ZUNh
Y2hlKSB7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gaWdub3JlZCA9IGF0
dHJpYnV0ZUNhY2hlLT5nZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSk7Ci0gICAgICAgIHN3aXRjaCAo
aWdub3JlZCkgewotICAgICAgICBjYXNlIElnbm9yZU9iamVjdDoKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBjYXNlIEluY2x1ZGVPYmplY3Q6Ci0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGNhc2UgRGVmYXVsdEJlaGF2aW9yOgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIHJlc3VsdCA9IGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCk7Ci0KLSAgICBpZiAoYXR0cmlidXRlQ2FjaGUpCi0gICAgICAgIGF0dHJp
YnV0ZUNhY2hlLT5zZXRJZ25vcmVkKGF4T2JqZWN0SUQoKSwgcmVzdWx0ID8gSWdub3JlT2JqZWN0
IDogSW5jbHVkZU9iamVjdCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29u
c3QKLXsKICAgICAvLyBDaGVjayBmaXJzdCBpZiBhbnkgb2YgdGhlIGNvbW1vbiByZWFzb25zIGNh
dXNlIHRoaXMgZWxlbWVudCB0byBiZSBpZ25vcmVkLgogICAgIC8vIFRoZW4gcHJvY2VzcyBvdGhl
ciB1c2UgY2FzZXMgdGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gYWxsIHRoZSB2YXJpb3VzIHJv
bGVzCiAgICAgLy8gdGhhdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0cyB0YWtlIG9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaAppbmRleCAwYTViZGQyNmU3MjQzMGU5ZjcwZjdkYzJhZGQzODlkZDJlY2M1ZDUw
Li41MWU1M2JmOGI5YmM1Y2Y4ZmY3NjFmMzExNmM0YjJlYmY4ZjJhNDhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUHJvdmlkZXMgY29t
bW9uIGxvZ2ljIHVzZWQgYnkgYWxsIGVsZW1lbnRzIHdoZW4gZGV0ZXJtaW5pbmcgaXNJZ25vcmVk
LgogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZEJhc2UoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgaW50IGxheW91dENvdW50KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBkb3VibGUgZXN0aW1hdGVkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CkBAIC0yNzks
OCArMjc5LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIGluaGVyaXRzUHJlc2VudGF0aW9u
YWxSb2xlKCkgY29uc3Q7CiAKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3Q7Ci0gICAgCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICAvLyBBbGwgbWF0aCBlbGVt
ZW50cyByZXR1cm4gdHJ1ZSBmb3IgaXNNYXRoRWxlbWVudCgpLgogICAgIHZpcnR1YWwgYm9vbCBp
c01hdGhFbGVtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IDEyZTViNGJmMzc5OWVl
MzEwMzZkOTY1ODc4YzJjZmE4M2Q3ZWZjYjkuLjE5YjQ0ODJlYzgzYzZiMDlmNmRmMjVjY2Q3ZDkx
OGVjZjNjMGYxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y2xlYXJDaGlsZHJlbigpCiAgICAgbV9ob3Jpem9udGFs
U2Nyb2xsYmFyID0gMDsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6YWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogd2ViQXJlYSA9IHdlYkFyZWFPYmplY3QoKTsKICAgICBpZiAoIXdlYkFyZWEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmgKaW5kZXggNGZmOGEyMjNmZDg3OWI2YjU2MTRhZTU0ZWIzNTE0Njc3NzRkMDlhYS4u
MjBhYjY0ZWE2ZTYwODc0OTgzNTJkNjYxNjIyNmFlOTdjYTI2MjYyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApA
QCAtNTAsNyArNTAsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wg
YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCmlu
ZGV4IDg0MGI3OTdhYWE1NTFjMWIxMjE4MDQ5MjQwOGJjMTk2MGVjYjM3ZjkuLjYxODM3ZjQzMjEw
N2E2YmJmOWYyNjVlMWVmZGNlMGQ0N2NlYmFmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbGJh
cihTY3JvbGxiYXIqKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIGJvb2wgY2FuU2V0TnVtZXJpY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmNwcAppbmRleCBiMDNiOWM0ZmI0MDIwN2Q2YjkzMjkwMzNjNTQxNWRkNmI0YjRjYjdkLi44
OWYwNWY4ODc0ODc1OGNjNmE2YTBhM2U4ZTI4ODEwOTE5ZmNiOTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTEx
Myw3ICsxMTMsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U2xpZGVyOjpl
bGVtZW50QWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UAogICAgIHJldHVybiBheE9iamVj
dENhY2hlKCktPmdldE9yQ3JlYXRlKG1fcmVuZGVyZXIpOwogfQogCi1ib29sIEFjY2Vzc2liaWxp
dHlTbGlkZXI6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmls
aXR5U2xpZGVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0ln
bm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCkBAIC0xNzgs
NyArMTc4LDcgQEAgTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWI6OmVsZW1lbnRS
ZWN0KCkgY29uc3QKICAgICByZXR1cm4gc2xpZGVyVGh1bWJFbGVtZW50T2Yoc2xpZGVyUmVuZGVy
ZXItPm5vZGUoKSktPmJvdW5kaW5nQm94KCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVNsaWRl
clRodW1iOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0
eVNsaWRlclRodW1iOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlQ
bGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmpl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNs
aWRlci5oCmluZGV4IDk0YzQzMTYyNTg1NzU3YTFkOWZjODdkNjQwOTcxMjkyN2Q0NzU5YzcuLjMz
ZTIzZWZmZjIxMmY1ODRlZGEwMzM1MTZlMjJlOGViYzZmMDJlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCkBAIC00Nyw3ICs0
Nyw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBTbGlkZXJSb2xlOyB9ICAgIApA
QCAtNzcsMTAgKzc3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBlbGVt
ZW50UmVjdCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIoKTsK
KworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
OwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTcGluQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTcGluQnV0dG9uLmgKaW5kZXggNTRkNThmZWE1ZmM3NWExZTQ1YzkxNjFkYzBjZmEy
NzI1YjVhYjAxNi4uOGQwMjVmNzczN2JlOTQxMzMxM2Q1OGE0ZmJjNWQ2YzExMTVkNzMzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNw
aW5CdXR0b24uaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlT
cGluQnV0dG9uKCk7CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIFNwaW5CdXR0b25Sb2xlOyB9Ci0gICAgdmlydHVhbCBib29sIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRyZW4oKTsKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgZWxlbWVudFJlY3QoKSBjb25zdDsKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIEJ1dHRv
blJvbGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTcGluQnV0dG9uUGFydCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAgICAgCiBpbmxpbmUgQWNjZXNzaWJpbGl0
eVNwaW5CdXR0b24qIHRvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuY3BwCmluZGV4IDk5NjhiMTRmZDhlNDFlNTEzODg4MzZhYmM5Zjg5NGI0MTk1
ZjY1NjIuLjcyZDliMDI1YjI5OTVlZTRhY2NjYTFjMDU2NGRhYTQ3MjM5MDhmZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAK
QEAgLTU5Miw3ICs1OTIsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGU6
OnJvbGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFRhYmxlUm9sZTsKIH0KICAgICAKLWJvb2wg
QWNjZXNzaWJpbGl0eVRhYmxlOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wg
QWNjZXNzaWJpbGl0eVRhYmxlOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
CiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2li
aWxpdHlJc0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3Qp
CkBAIC02MDEsNyArNjAxLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBpZiAo
IWlzQWNjZXNzaWJpbGl0eVRhYmxlKCkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwog
ICAgICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCA5ZjI4ZjQxMjIzMjZiMWQ1MjE3
OTMzZWM2M2I5MjQ4NDczMDg1N2NjLi41MjJjNTcwMDRmN2VjYWRiY2NjM2M1Y2FjMjk4YWZlZDcw
NGE4NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQXJpYVRh
YmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwotICAgIAogICAgIHZpcnR1YWwgdm9pZCBhZGRD
aGlsZHJlbigpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckNoaWxkcmVuKCk7CiAgICAgCkBAIC05
Miw2ICs5MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgaGFzQVJJQVJvbGUoKSBjb25zdDsK
ICAgICBib29sIGlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Owog
fTsKICAgICAKIGlubGluZSBBY2Nlc3NpYmlsaXR5VGFibGUqIHRvQWNjZXNzaWJpbGl0eVRhYmxl
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCmluZGV4IGIwODgxYzY4
YjVjMzEzM2FkMmYxMTQ4ZDBkMzA1NzBjOThhNGFmOWIuLjMxYjlmNjgxZDQ3MTcxYWMwODc5OThh
NDg4YzcyZTkyMjYzYzVmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcApAQCAtNTQsNyArNTQsNyBAQCBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5
VGFibGVDZWxsKHJlbmRlcmVyKSk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6
YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNl
bGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJh
c2UoKTsKICAgICBpZiAoZGVjaXNpb24gPT0gSW5jbHVkZU9iamVjdCkKQEAgLTYzLDcgKzYzLDcg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgaWYgKCFpc1RhYmxlQ2VsbCgp
KQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ2VsbC5oCmluZGV4IDkzNDE2MzRhOTViMDE3ZmU0ZWZlMTU4ZGQxZDkxMTlkZjU3NjA0
OGMuLjcyZTVmZDk4YmZiZDVjZWJjOGZiNGJhOTgzODMzOGIwZjJiYjJkYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5o
CkBAIC00Myw4ICs0Myw2IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJs
ZUNlbGwoKSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0OwotCiAgICAgLy8gZmlsbHMgaW4gdGhlIHN0YXJ0IGxvY2F0aW9uIGFuZCBy
b3cgc3BhbiBvZiBjZWxsCiAgICAgdmlydHVhbCB2b2lkIHJvd0luZGV4UmFuZ2UocGFpcjxpbnQs
IGludD4mIHJvd1JhbmdlKTsKICAgICAvLyBmaWxscyBpbiB0aGUgc3RhcnQgbG9jYXRpb24gYW5k
IGNvbHVtbiBzcGFuIG9mIGNlbGwKQEAgLTU5LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBJ
ZiBhIHRhYmxlIGNlbGwgaXMgbm90IGV4cG9zZWQgYXMgYSB0YWJsZSBjZWxsLCBhIFRIIGVsZW1l
bnQgY2FuIHNlcnZlIGFzIGl0cyB0aXRsZSBVSSBlbGVtZW50LgogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogdGl0bGVVSUVsZW1lbnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
ZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsgCiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCmluZGV4IGQ4YWYwNDZk
MDYwYjg5YmIzYjZkMDYxMGViZjMxNWRkOTQxYTRmNzQuLjRkNDk0ODIyZDQwMjA4ZjczMDdlODM2
YTgzYTk2NmUxY2UyMTMzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKQEAgLTE1Miw3ICsxNTIsNyBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmhlYWRlck9i
amVjdEZvclNlY3Rpb24oUmVuZGVyVGFibAogICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdl
dE9yQ3JlYXRlKGNlbGwpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46
OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVD
b2x1bW46OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fcGFyZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCmluZGV4IDYzMjA5
N2VjNDIwYjVmNGMwYTE5NzcxNjFhNzg5ZDRmYzAzNTQxYzQuLjZlNzM3YzEyMWQxMDQ2OWQxYWQ2
Njg5YzYxMzVkMGE5MTQyNWU5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaApAQCAtNDcsNyArNDcsNiBAQCBw
dWJsaWM6CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVhZGVyT2JqZWN0KCk7CiAg
ICAgICAgIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVy
biBDb2x1bW5Sb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGFibGVDb2x1bW4oKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAgICAgCkBAIC02NCw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgTGF5
b3V0UmVjdCBtX2NvbHVtblJlY3Q7CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVh
ZGVyT2JqZWN0Rm9yU2VjdGlvbihSZW5kZXJUYWJsZVNlY3Rpb24qLCBib29sIHRoVGFnUmVxdWly
ZWQpOworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0OwogfTsKICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVh
ZGVyQ29udGFpbmVyLmNwcAppbmRleCBhODVlNTNhMWI4YTMwNmI4YWQ5YWRlZTM4MTBjMzgzN2Zm
ZjA4MjAxLi4zZTc4OWRlZjI4NDBhZmJiM2I2OTlhNjhjY2ZlZjg0ODRkNTliNWMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRl
ckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIExheW91dFJl
Y3QgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjplbGVtZW50UmVjdCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1faGVhZGVyUmVjdDsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXI6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nl
c3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFyZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlSGVhZGVyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oCmluZGV4IDYyNWUxZGQzNTljZGIxYTQ0MWVk
ZmUwNTIzMjRhNTQwNGZjYjU2MDUuLjZhOWIyYzk1YjMwNjM0Nzg1MDVjMjUyMGJlOGZjNWRmMTEz
NmUzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaApAQCAtNTIsNyArNTIsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIExheW91dFJlY3QgbV9oZWFkZXJSZWN0OwogICAgIAot
ICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiB9OyAKICAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKaW5kZXggM2IyMjA1ODYyYjYz
NjYzZTYzODIyOWFmYTNkOTVmNTRlN2IzYjJlZC4uMTI3MGNmODkyZjRjYzhhNTFlNDQ0NWMzZTM3
MzJjZTFiN2Y5MDRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcApAQCAtODYsNyArODYsNyBAQCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6Om9ic2VydmFibGVPYmplY3QoKSBjb25z
dAogICAgIHJldHVybiBwYXJlbnRUYWJsZSgpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5
VGFibGVSb3c6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmls
aXR5VGFibGVSb3c6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsgICAg
CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCkBA
IC05NSw3ICs5NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlUm93OjphY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgaWYgKCFp
c1RhYmxlUm93KCkpCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwogCiAgICAgcmV0dXJu
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmgKaW5kZXggNmU4OGY4ZmQxNDJmMTdlMTQ3MzliNDI0MDQwNTYzMmRm
YTU5NTZkNS4uZDI0MmVlNDQ5Y2Q2Y2FlMWJiMmI3MTQxYTVhMDhkZGFmNTBkYmRlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJv
dy5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5
VGFibGVSb3coKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZVJvdygpIGNvbnN0Owot
ICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICAv
LyByZXRyaWV2ZXMgdGhlICJyb3ciIGhlYWRlciAoYSB0aCB0YWcgaW4gdGhlIHJpZ2h0bW9zdCBj
b2x1bW4pCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3QoKTsK
QEAgLTYyLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9yb3dJbmRleDsKICAgICAKICAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsK
IH07IAogICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187445</attachid>
            <date>2013-02-09 13:54:12 -0800</date>
            <delta_ts>2013-02-09 15:07:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109322-20130209135046.patch</filename>
            <type>text/plain</type>
            <size>40221</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWUyMDdjNDQ5NDI3NmY1
MTY1MTQ5ZGI2YzhhYzU1ZWIxMGZmNzc4NS4uYzM3YWI1ZTk3NmZjMGM0ODU3NjU2MjFhYzBmOWQ4
MjgyNTlkMmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAxMy0wMi0wOCAgRG9t
aW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBBWDogbW92ZSBp
c0lnbm9yZWQgY2FjaGluZyB0byBBWE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RmxlaXphY2guCisKKyAgICAgICAgVGhlcmUncyBzb21lIGJlbmVmaXQgdG8gY2FjaGluZyBhY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkCisgICAgICAgICh1c2luZyBBWENvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGUpIGZvciBtb3JlIHRoYW4ganVzdAorICAgICAgICBBWFJlbmRlck9iamVjdCwgc28g
bW92ZSB0aGUgY2FjaGluZyBjb2RlIHRvIEFYT2JqZWN0LgorCisgICAgICAgIEFYT2JqZWN0IG5v
dyBoYXMgYSBwcm90ZWN0ZWQgdmlydHVhbCBtZXRob2QKKyAgICAgICAgY29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQsIGFuZCBhbGwgc3ViY2xhc3NlcworICAgICAgICBvdmVycmlkZSB0aGF0
IGluc3RlYWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJbWFnZU1hcExp
bms6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUxpc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5TGlzdEJveCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaDoK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9scy5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRh
aW5lcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eU1lZGlhVGltZURpc3BsYXkpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5o
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXApOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlTY3JvbGxiYXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5U2xpZGVyKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlTbGlkZXJUaHVtYik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U3BpbkJ1dHRvbi5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNwaW5C
dXR0b246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGFibGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmg6CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VGFibGVDZWxsKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDb2x1
bW46OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRh
YmxlQ29sdW1uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVRhYmxlUm93KToKKwogMjAxMy0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIExvYWQgZXZlbnQgZmlyZXMgdG9vIGVhcmx5IHdpdGgg
dGhyZWFkZWQgSFRNTCBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKaW5kZXggMDQ0N2I2MzgxNjA3Njdm
NjFhY2Y3ZjRiYWM4ODdiMDM4M2E3NzIxMC4uZmVlMjg3ZmRkODhiYWYzYzg1YzJkMzYwOTYyNjY5
NzZhYjAzMWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlYUVsZW1lbnQuZ2V0
KCk7IH0KICAgICAgICAgCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KICAgICAKICAgICB2aXJ0dWFsIEVsZW1lbnQqIGFuY2hvckVsZW1lbnQo
KSBjb25zdDsKQEAgLTc1LDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIHZv
aWQgYWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpOwogICAgIHZp
cnR1YWwgYm9vbCBpc0ltYWdlTWFwTGluaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKaW5kZXggOTQ1
N2MwNDBhYThmYzEzYmY3OTcxZjIyZmU0ZDJiZTE3MWNkMDEzMy4uNWE0YWU3NWI2ZmJmMmEwYzNi
MmUxOGM2ZjM4NmVhZmJhMjBhZmZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eUxpc3Qo
cmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdDo6YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
biBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCYXNlKCk7CiAgICAgaWYgKGRlY2lz
aW9uID09IEluY2x1ZGVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0LmgKaW5kZXggOTBhMDMwZWMyY2U1ODk5ZWM3YzM5YzYwNDhhZmEx
YzgzYjU0YjUyOS4uMjVjYzY1YzNiMWQzZWQyMzU5OTQ1MjEzODE3ZjI4ZmMyNjExOTYyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApA
QCAtNTMsOCArNTMsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Rlc2NyaXB0aW9uTGlzdCgpIGNv
bnN0OwogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7
IHJldHVybiBMaXN0Um9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3Q7Ci0gICAgCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveC5jcHAKaW5kZXggMjJlNWI4MTg1NmY1OTVmOTM0MGZhMTdjNmUxNWY2NWY2NjRh
MTUxMC4uMWU1YzUzY2NjMDliZmJjYWI4MjQ4NzM5MmZiNWVkZDg4NGQxN2Y3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5j
cHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5
TGlzdEJveDo6bGlzdEJveE9wdGlvbkFjY2Vzc2liaWxpdHlPYmplY3QoSFRNTAogICAgIHJldHVy
biBsaXN0Qm94T2JqZWN0OwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6YWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlMaXN0Qm94Ojpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCYXNlKCk7
CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKaW5kZXggNGYwMDA5NDM4
Mzk3NTcwNjUzZTBjNDFlMjFjN2FlYTE2M2FjNTVjMS4uMjViMGEwNmU2MWU1N2YzZDRhZjExY2Jm
NWVhNDY1NmE4MzY2YzgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6ICAgIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPcHRpb25BY2Nlc3Np
YmlsaXR5T2JqZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0Owog
fTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKaW5kZXggM2M1NjI1MzVkMjhkZDllMTY0NGNj
YzU2OGUyY2E5ODQ5Yjc2NjQxZC4uNTA5Njk5Zjc3Y2M3MjA4YThlMjQyZjg5YWEwMTVmYTMzNjQ4
OTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveE9wdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBMYXlvdXRS
ZWN0IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjplbGVtZW50UmVjdCgpIGNvbnN0CiAgICAg
cmV0dXJuIHJlY3Q7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlv
bjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAgIGlmICghbV9v
cHRpb25FbGVtZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaAppbmRl
eCBlYTgxMmRhNjQwMzRjODY0OGNlOTdhMGU0M2I0NjRmNTQ1OTE2ZmRhLi4xMTQ0NDVjMzE1YjJj
M2Q1NGYxOGI0N2JmZTQzNjZjODQwYzYxMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oCkBAIC01MSw3
ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhUTUxFbGVtZW50KEhUTUxFbGVtZW50KiBl
bGVtZW50KSB7IG1fb3B0aW9uRWxlbWVudCA9IGVsZW1lbnQ7IH0KICAgICAKICAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIExpc3RCb3hPcHRp
b25Sb2xlOyB9Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBpc0VuYWJsZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RlZE9wdGlvbkFj
dGl2ZSgpIGNvbnN0OwpAQCAtNzMsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIGludCBsaXN0Qm94
T3B0aW9uSW5kZXgoKSBjb25zdDsKICAgICBJbnRSZWN0IGxpc3RCb3hPcHRpb25SZWN0KCkgY29u
c3Q7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdEJveE9wdGlvbkFjY2Vzc2liaWxpdHlP
YmplY3QoSFRNTEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVkaWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzZGFkNzFiMDIwODNmNjY5MzA4MWI3YWU3
Yjk2ZWE0NGZjZTU4ZTA0Li40MTA3MTU3ZDQwNTE5MjFiZmE2MmExMTY1NDY1NTU3ZDQzMmY5OGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIFN0cmluZyBBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9sOjpoZWxwVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dChjb250cm9sVHlwZU5hbWUoKSk7CiB9CiAK
LWJvb2wgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIW1fcmVuZGVy
ZXItPnN0eWxlKCkgfHwgbV9yZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUgfHwgY29udHJvbFR5cGUoKSA9PSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTMwMCw3ICszMDAsNyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpjcmVhdGUoUmVuZGVyT2JqZQog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkocmVu
ZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNw
bGF5Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3JlbmRlcmVyIHx8ICFtX3JlbmRlcmVyLT5zdHlsZSgpIHx8IG1fcmVuZGVyZXItPnN0eWxlKCkt
PnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbHMuaAppbmRleCAzMGQ5ZDVlMzk0Y2Q3MDRiZWUwYzY4ZmQ3NmYwMzMxZjVjMzlmYTk0Li42
YzgxYTk3MDg2ZjkxYmM5ZThhZTM4YTlhYzU1Y2FiNWM4NDFlMTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
cy5oCkBAIC00NCw3ICs0NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5
TWVkaWFDb250cm9sKCkgeyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVW
YWx1ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Q7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
U3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtNTUsNiArNTQsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgY29udHJvbFR5cGUoKSBj
b25zdDsKICAgICBTdHJpbmcgY29udHJvbFR5cGVOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKTsKKyAgICB2
aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07CiAK
IApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eU1l
ZGlhQ29udHJvbHNDb250YWluZXIoKSB7IH0KIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJv
bGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gVG9vbGJhclJvbGU7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5n
IGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtOTEsNiArOTAsNyBAQCBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyKFJl
bmRlck9iamVjdCopOwogICAgIGJvb2wgY29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSBjb25zdDsK
ICAgICBjb25zdCBTdHJpbmcgZWxlbWVudFR5cGVOYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIH07CiAKIApAQCAtMTAxLDcgKzEwMSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nl
c3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheSgpIHsgfQogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBTdGF0aWNUZXh0Um9sZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtMTA5LDYgKzEwOCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoUmVu
ZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sTGFiZWwoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3Q7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4IDNlYThmZmQ4OGI1NzRkMWE0
MTMxMjI3NmRmMTU1MDVmMTM3MjBiZDAuLmEwMWMzZDhjYzVhZjNjYzNjYTAzMzUwMmE0MzViOWFk
YWY1N2M3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3QuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBQb3BVcEJ1dHRv
blJvbGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2Fu
U2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJl
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCmluZGV4IDg4OWE0MDlkYTdhNWNkOGE2Y2FkNzg1
MDUyZWJlZTY1MTk4N2Y1MDQuLmIzZGYwYzk1OGFkYTI1ZDNkMDk1YzNjZDY4OTY1YjY3ZTBmYWE1
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkgY29uc3QK
ICAgICByZXR1cm4gaXNFbmFibGVkKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0
T3B0aW9uOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgIT0gSW5j
bHVkZU9iamVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCmluZGV4IDE5MWJmNDJjMDc1YzEyMjlm
NTMyYTY1YjUxNDJlYmE5NGU2MGMwOWEuLmMzNDBiN2U0ZmY4ZGMxNTM3OWNkYzFjYzYzYWFhMGU1
ZjM2MGU4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaApAQCAtMzcsOCArMzcsNiBAQCBjbGFzcyBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24gOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmpl
Y3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZW51
TGlzdE9wdGlvbik7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldEVsZW1lbnQoSFRNTEVsZW1lbnQqKTsKIAogcHJpdmF0
ZToKQEAgLTU5LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U2Vs
ZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJl
Y3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogCiAg
ICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2VsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNw
cAppbmRleCAxMzIwNzMwZGUzNmVhNjc0ZjQxNzc0NGQ4YTdiNTc3MmUzYjFlNDQwLi5lYzFkNTNl
ODQyMGZlNzQ0YWMxYTdiZjFkNTI5NTJmNjAyYjZmNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNw
cApAQCAtNjIsNyArNjIsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjppc0Vu
YWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX3BhcmVudC0+aXNFbmFibGVkKCk7CiB9CiAKLWJv
b2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdAogewogICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5UGxhdGZvcm1J
bmNsdWRlc09iamVjdCgpICE9IEluY2x1ZGVPYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKaW5k
ZXggMDk0MzVkMDJiY2Q5N2QyMzNjYjVmOGUzYjhiMjBjMjNlMDgxZDY1NS4uNTJiMzBkY2VmMGYz
N2YyMzc1NTAwOTU5ZTQ4ZGFmYTVjZGVkOThiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtNDEs
NyArNDEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29s
IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7CiAKQEAgLTU4LDYgKzU3LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgcHJlc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hp
bGRyZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgdmlydHVh
bCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24qIG1lbnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVj
dChIVE1MRWxlbWVudCopIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggODlmZmI4ZmJi
N2E3NjE2MDhiMjg2MDU3YTZkMWYyNWRkNjc5NjYwNi4uODU0NjNiYjc1ODc4OTk3MGFhNTZkYzcz
ZGEwNmY5M2RkNWRiZTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTM4OSw3ICszODksNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAg
IH0KIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIERvdWJs
ZS1jaGVjayB0aGF0IGFuIEFjY2Vzc2liaWxpdHlPYmplY3QgaXMgbmV2ZXIgYWNjZXNzZWQgYmVm
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKaW5kZXggNGRhNTFjMjJlYTg1NGU5ZTQ3OTFmNDlkYTMwNDBkNzc0NTUz
ZjZmYS4uZTVmNTY1NDViNzFjMjEwZWM3Zjg4YTQ4ZmIzOTI1ODFiZWRmYWE4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaApAQCAtMTY1LDcgKzE2NSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5z
ZXJ0Q2hpbGQoQWNjZXNzaWJpbGl0eU9iamVjdCosIHVuc2lnbmVkIGluZGV4KTsKIAogICAgIHZp
cnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFS
b2xlQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJp
YVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFS
b2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwpAQCAtMTk4LDYgKzE5Nyw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoZWxwVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+
JikgY29uc3Q7CiAgICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsK
ICAgICB2b2lkIGFyaWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdDsKIH07CiAKIGlubGluZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCogdG9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA2
MjFjM2M1YTI2M2M5N2ZmMTU5NzU3M2NjMGYwNzMwMDkyYzNlYzMwLi4yYzNkOWRiYzJkMmVkZGY3
NDFiZGFhZjdlMTJhMzAxNTAyMzcwM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTE4NDMsNCArMTg0MywyNyBA
QCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQnV0dG9uKCkgY29uc3QKICAgICByZXR1cm4g
cm9sZSA9PSBCdXR0b25Sb2xlIHx8IHJvbGUgPT0gUG9wVXBCdXR0b25Sb2xlIHx8IHJvbGUgPT0g
VG9nZ2xlQnV0dG9uUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRl
Q2FjaGUqIGF0dHJpYnV0ZUNhY2hlID0gYXhPYmplY3RDYWNoZSgpLT5jb21wdXRlZE9iamVjdEF0
dHJpYnV0ZUNhY2hlKCk7CisgICAgaWYgKGF0dHJpYnV0ZUNhY2hlKSB7CisgICAgICAgIEFjY2Vz
c2liaWxpdHlPYmplY3RJbmNsdXNpb24gaWdub3JlZCA9IGF0dHJpYnV0ZUNhY2hlLT5nZXRJZ25v
cmVkKGF4T2JqZWN0SUQoKSk7CisgICAgICAgIHN3aXRjaCAoaWdub3JlZCkgeworICAgICAgICBj
YXNlIElnbm9yZU9iamVjdDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNl
IEluY2x1ZGVPYmplY3Q6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2Ug
RGVmYXVsdEJlaGF2aW9yOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBib29sIHJlc3VsdCA9IGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisKKyAg
ICBpZiAoYXR0cmlidXRlQ2FjaGUpCisgICAgICAgIGF0dHJpYnV0ZUNhY2hlLT5zZXRJZ25vcmVk
KGF4T2JqZWN0SUQoKSwgcmVzdWx0ID8gSWdub3JlT2JqZWN0IDogSW5jbHVkZU9iamVjdCk7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4
IDZjMmM0ZGY1ZmIwZDNmZWQ3YTY4MTMzOGM0MGE0MzIzMDMwODQyZWIuLjAwODljZjE3ZDY1ZGIy
YjdlN2FmYzQ5ODRlYmY0YmVlM2RhNDg4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00ODUsNyArNDg1LDcgQEAgcHVi
bGljOgogICAgIAogICAgIHZpcnR1YWwgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
ICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiAwOyB9
Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCAgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29u
c3Q7CiAKICAgICBpbnQgYmxvY2txdW90ZUxldmVsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQg
aGVhZGluZ0xldmVsKCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtODMzLDcgKzgzMyw5IEBAIHBy
b3RlY3RlZDoKICAgICBtdXRhYmxlIGJvb2wgbV9oYXZlQ2hpbGRyZW47CiAgICAgQWNjZXNzaWJp
bGl0eVJvbGUgbV9yb2xlOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gbV9sYXN0
S25vd25Jc0lnbm9yZWRWYWx1ZTsKLSAgICAKKworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKwogICAgIC8vIElm
IHRoaXMgb2JqZWN0IGl0c2VsZiBzY3JvbGxzLCByZXR1cm4gaXRzIFNjcm9sbGFibGVBcmVhLgog
ICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxl
KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxUbyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCmluZGV4IDQ5
NGQxYzIwYjRmNjQyMGEzYmViNTM3OTAxYmZlZGViNGFlM2U4YTQuLjQxZTU1NzQ3MGFjMDQwNjU4
MWFhNzc0Y2RhMGM5ZmIwMGQ0MWRmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXQKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcihyZW5kZXJlcikpOwogfQog
Ci1ib29sIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAgIHJldHVybiBhY2Nlc3NpYmls
aXR5SXNJZ25vcmVkQmFzZSgpID09IElnbm9yZU9iamVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvci5oCmluZGV4IGQ2MGJiMmNhNWE2NWVmNzFiMTMxODdhYzNiMWQwYWE3N2Y0M2ZlZTcuLjQ2
YWRlZmY2YjYzYjIyNGZlMTVkYjczNjk1YjhiNDg1Y2RjZjg4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvcihSZW5kZXJQcm9ncmVzcyopOwogCiAgICAgSFRNTFBy
b2dyZXNzRWxlbWVudCogZWxlbWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4
IDViNDVjNzdkODQ4YTEzNjNmMzU3NWNlZTZmNjM0NDliMDhlNzAyODIuLmVhMTMxMWZiY2MxNTY3
NjMyNzU1MmRkNDIzMjNjZTYxMWY3MmE1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTEy
MiwzNSArMTEyMiwxMiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCYQogICAgIHJldHVybiBEZWZh
dWx0QmVoYXZpb3I7CiB9ICAKIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogI2lmbmRlZiBOREVC
VUcKICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7CiAjZW5kaWYKIAotICAgIEFYQ29tcHV0ZWRP
YmplY3RBdHRyaWJ1dGVDYWNoZSogYXR0cmlidXRlQ2FjaGUgPSBheE9iamVjdENhY2hlKCktPmNv
bXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKTsKLSAgICBpZiAoYXR0cmlidXRlQ2FjaGUpIHsK
LSAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBpZ25vcmVkID0gYXR0cmlidXRl
Q2FjaGUtPmdldElnbm9yZWQoYXhPYmplY3RJRCgpKTsKLSAgICAgICAgc3dpdGNoIChpZ25vcmVk
KSB7Ci0gICAgICAgIGNhc2UgSWdub3JlT2JqZWN0OgotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIGNhc2UgSW5jbHVkZU9iamVjdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgY2FzZSBEZWZhdWx0QmVoYXZpb3I6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGJvb2wgcmVzdWx0ID0gY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKTsKLQotICAgIGlmIChhdHRyaWJ1dGVDYWNoZSkKLSAgICAgICAgYXR0cmlidXRlQ2Fj
aGUtPnNldElnbm9yZWQoYXhPYmplY3RJRCgpLCByZXN1bHQgPyBJZ25vcmVPYmplY3QgOiBJbmNs
dWRlT2JqZWN0KTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAotewog
ICAgIC8vIENoZWNrIGZpcnN0IGlmIGFueSBvZiB0aGUgY29tbW9uIHJlYXNvbnMgY2F1c2UgdGhp
cyBlbGVtZW50IHRvIGJlIGlnbm9yZWQuCiAgICAgLy8gVGhlbiBwcm9jZXNzIG90aGVyIHVzZSBj
YXNlcyB0aGF0IG5lZWQgdG8gYmUgYXBwbGllZCB0byBhbGwgdGhlIHZhcmlvdXMgcm9sZXMKICAg
ICAvLyB0aGF0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3RzIHRha2Ugb24uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5oCmluZGV4IDBhNWJkZDI2ZTcyNDMwZTlmNzBmN2RjMmFkZDM4OWRkMmVjYzVkNTAuLjFjNzg4
MDdlMjM3NjY0ZmFiMzdiOTY3MDU2OWY0ZGMwZmRiZDY0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBA
IC05NCw3ICs5NCw2IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBQcm92aWRlcyBjb21tb24gbG9n
aWMgdXNlZCBieSBhbGwgZWxlbWVudHMgd2hlbiBkZXRlcm1pbmluZyBpc0lnbm9yZWQuCiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQmFzZSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7
CiAgICAgCiAgICAgdmlydHVhbCBpbnQgbGF5b3V0Q291bnQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGRvdWJsZSBlc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKQEAgLTIyNCw2ICsyMjMs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWQoKSBjb25zdCB7IHJl
dHVybiAhbV9yZW5kZXJlcjsgfQogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRl
cm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpOworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgYXJpYUxpc3Ri
b3hTZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwpAQCAtMjc5
LDggKzI3OSw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBpbmhlcml0c1ByZXNlbnRhdGlv
bmFsUm9sZSgpIGNvbnN0OwogCi0gICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0OwotICAgIAogI2lmIEVOQUJMRShNQVRITUwpCiAgICAgLy8gQWxsIG1hdGggZWxl
bWVudHMgcmV0dXJuIHRydWUgZm9yIGlzTWF0aEVsZW1lbnQoKS4KICAgICB2aXJ0dWFsIGJvb2wg
aXNNYXRoRWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAppbmRleCAxMmU1YjRiZjM3OTll
ZTMxMDM2ZDk2NTg3OGMyY2ZhODNkN2VmY2I5Li4xOWI0NDgyZWM4M2M2YjA5ZjZkZjI1Y2NkN2Q5
MThlY2YzYzBmMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNsZWFyQ2hpbGRyZW4oKQogICAgIG1faG9yaXpvbnRh
bFNjcm9sbGJhciA9IDA7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHdlYkFyZWEgPSB3ZWJBcmVhT2JqZWN0KCk7CiAgICAgaWYgKCF3ZWJBcmVhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCmluZGV4IDRmZjhhMjIzZmQ4NzliNmI1NjE0YWU1NGViMzUxNDY3Nzc0ZDA5YWEu
LjIwYWI2NGVhNmU2MDg3NDk4MzUyZDY2MTYyMjZhZTk3Y2EyNjI2MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgK
QEAgLTUwLDcgKzUwLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCi0gICAgdmlydHVhbCBib29s
IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaApp
bmRleCA4NDBiNzk3YWFhNTUxYzFiMTIxODA0OTI0MDhiYzE5NjBlY2IzN2Y5Li42MTgzN2Y0MzIx
MDdhNmJiZjlmMjY1ZTFlZmRjZTBkNDdjZWJhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaApAQCAtNDQsNyArNDQs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxi
YXIoU2Nyb2xsYmFyKik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBib29sIGNhblNldE51bWVyaWNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNs
aWRlci5jcHAKaW5kZXggYjAzYjljNGZiNDAyMDdkNmI5MzI5MDMzYzU0MTVkZDZiNGI0Y2I3ZC4u
ODlmMDVmODg3NDg3NThjYzZhNmEwYTNlOGUyODgxMDkxOWZjYjk1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCkBAIC0x
MTMsNyArMTEzLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNsaWRlcjo6
ZWxlbWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFAKICAgICByZXR1cm4gYXhPYmpl
Y3RDYWNoZSgpLT5nZXRPckNyZWF0ZShtX3JlbmRlcmVyKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmls
aXR5U2xpZGVyOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJp
bGl0eVNsaWRlcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewogICAg
IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkQmFzZSgpOwogICAgIGlmIChkZWNpc2lvbiA9PSBJbmNsdWRlT2JqZWN0KQpAQCAtMTc4
LDcgKzE3OCw3IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjplbGVtZW50
UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHNsaWRlclRodW1iRWxlbWVudE9mKHNsaWRlclJlbmRl
cmVyLT5ub2RlKCkpLT5ib3VuZGluZ0JveCgpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlTbGlk
ZXJUaHVtYjo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxp
dHlTbGlkZXJUaHVtYjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogewog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBhY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpOwogICAgIGlmIChkZWNpc2lvbiA9PSBJbmNsdWRlT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuaAppbmRleCA5NGM0MzE2MjU4NTc1N2ExZDlmYzg3ZDY0MDk3MTI5MjdkNDc1OWM3Li4z
M2UyM2VmZmYyMTJmNTg0ZWRhMDMzNTE2ZTIyZThlYmM2ZjAyZWQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaApAQCAtNDcsNyAr
NDcsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgSFRNTElucHV0RWxlbWVudCogZWxl
bWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBlbGVtZW50QWNjZXNzaWJp
bGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gU2xpZGVyUm9sZTsgfSAgICAK
QEAgLTc3LDEwICs3NywxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxl
bWVudFJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iKCk7
CisKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U3BpbkJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U3BpbkJ1dHRvbi5oCmluZGV4IDU0ZDU4ZmVhNWZjNzVhMWU0NWM5MTYxZGMwY2Zh
MjcyNWI1YWIwMTYuLjhkMDI1Zjc3MzdiZTk0MTMzMTNkNThhNGZiYzVkNmMxMTE1ZDczMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5C
dXR0b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
cGluQnV0dG9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5
U3BpbkJ1dHRvbigpOwogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUo
KSBjb25zdCB7IHJldHVybiBTcGluQnV0dG9uUm9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBhY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NwaW5CdXR0b24oKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkcmVuKCk7CiAgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGVsZW1lbnRSZWN0KCkgY29uc3Q7CkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBCdXR0
b25Sb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRvblBhcnQoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogICAgIAogaW5saW5lIEFjY2Vzc2liaWxp
dHlTcGluQnV0dG9uKiB0b0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlLmNwcAppbmRleCA5OTY4YjE0ZmQ4ZTQxZTUxMzg4ODM2YWJjOWY4OTRiNDE5
NWY2NTYyLi43MmQ5YjAyNWIyOTk1ZWU0YWNjY2ExYzA1NjRkYWE0NzIzOTA4ZmY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3Bw
CkBAIC01OTIsNyArNTkyLDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRhYmxl
Ojpyb2xlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBUYWJsZVJvbGU7CiB9CiAgICAgCi1ib29s
IEFjY2Vzc2liaWxpdHlUYWJsZTo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29s
IEFjY2Vzc2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBhY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkQmFzZSgpOwogICAgIGlmIChkZWNpc2lvbiA9PSBJbmNsdWRlT2JqZWN0
KQpAQCAtNjAxLDcgKzYwMSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlOjphY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgaWYg
KCFpc0FjY2Vzc2liaWxpdHlUYWJsZSgpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOworICAgICAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsK
ICAgICAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKaW5kZXggOWYyOGY0MTIyMzI2YjFkNTIx
NzkzM2VjNjNiOTI0ODQ3MzA4NTdjYy4uNTIyYzU3MDA0ZjdlY2FkYmNjYzNjNWNhYzI5OGFmZWQ3
MDRhODcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZS5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0FyaWFU
YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgdmlydHVhbCBib29sIGFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKLSAgICAKICAgICB2aXJ0dWFsIHZvaWQgYWRk
Q2hpbGRyZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDaGlsZHJlbigpOwogICAgIApAQCAt
OTIsNiArOTAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGhhc0FSSUFSb2xlKCkgY29uc3Q7
CiAgICAgYm9vbCBpc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsK
IH07CiAgICAgCiBpbmxpbmUgQWNjZXNzaWJpbGl0eVRhYmxlKiB0b0FjY2Vzc2liaWxpdHlUYWJs
ZShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcAppbmRleCBiMDg4MWM2
OGI1YzMxMzNhZDJmMTE0OGQwZDMwNTcwYzk4YTRhZjliLi4zMWI5ZjY4MWQ0NzE3MWFjMDg3OTk4
YTQ4OGM3MmU5MjI2M2M1ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpj
cmVhdGUoUmVuZGVyT2JqZWN0KgogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0
eVRhYmxlQ2VsbChyZW5kZXJlcikpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6
OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRC
YXNlKCk7CiAgICAgaWYgKGRlY2lzaW9uID09IEluY2x1ZGVPYmplY3QpCkBAIC02Myw3ICs2Myw3
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIGlmICghaXNUYWJsZUNlbGwo
KSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiAgICAgCiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwuaAppbmRleCA5MzQxNjM0YTk1YjAxN2ZlNGVmZTE1OGRkMWQ5MTE5ZGY1NzYw
NDhjLi43MmU1ZmQ5OGJmYmQ1Y2ViYzhmYjRiYTk4MzgzMzhiMGYyYmIyZGE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwu
aApAQCAtNDMsOCArNDMsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVGFi
bGVDZWxsKCkgY29uc3Q7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdDsKLQogICAgIC8vIGZpbGxzIGluIHRoZSBzdGFydCBsb2NhdGlvbiBhbmQg
cm93IHNwYW4gb2YgY2VsbAogICAgIHZpcnR1YWwgdm9pZCByb3dJbmRleFJhbmdlKHBhaXI8aW50
LCBpbnQ+JiByb3dSYW5nZSk7CiAgICAgLy8gZmlsbHMgaW4gdGhlIHN0YXJ0IGxvY2F0aW9uIGFu
ZCBjb2x1bW4gc3BhbiBvZiBjZWxsCkBAIC01OSw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8g
SWYgYSB0YWJsZSBjZWxsIGlzIG5vdCBleHBvc2VkIGFzIGEgdGFibGUgY2VsbCwgYSBUSCBlbGVt
ZW50IGNhbiBzZXJ2ZSBhcyBpdHMgdGl0bGUgVUkgZWxlbWVudC4KICAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHRpdGxlVUlFbGVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IGV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIH07IAogICAg
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcAppbmRleCBkOGFmMDQ2
ZDA2MGI4OWJiM2I2ZDA2MTBlYmYzMTVkZDk0MWE0Zjc0Li40ZDQ5NDgyMmQ0MDIwOGY3MzA3ZTgz
NmE4M2E5NjZlMWNlMjEzM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCkBAIC0xNTIsNyArMTUyLDcg
QEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjpoZWFkZXJP
YmplY3RGb3JTZWN0aW9uKFJlbmRlclRhYmwKICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5n
ZXRPckNyZWF0ZShjZWxsKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1u
OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVRhYmxl
Q29sdW1uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3BhcmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaAppbmRleCA2MzIw
OTdlYzQyMGI1ZjRjMGExOTc3MTYxYTc4OWQ0ZmMwMzU0MWM0Li42ZTczN2MxMjFkMTA0NjlkMWFk
NjY4OWM2MTM1ZDBhOTE0MjVlOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmgKQEAgLTQ3LDcgKzQ3LDYgQEAg
cHVibGljOgogICAgIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlck9iamVjdCgpOwog
ICAgICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1
cm4gQ29sdW1uUm9sZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ29sdW1uKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIApAQCAtNjQsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIExh
eW91dFJlY3QgbV9jb2x1bW5SZWN0OwogICAgIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhl
YWRlck9iamVjdEZvclNlY3Rpb24oUmVuZGVyVGFibGVTZWN0aW9uKiwgYm9vbCB0aFRhZ1JlcXVp
cmVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdDsKIH07CiAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5jcHAKaW5kZXggYTg1ZTUzYTFiOGEzMDZiOGFkOWFkZWUzODEwYzM4Mzdm
ZmYwODIwMS4uM2U3ODlkZWYyODQwYWZiYjNiNjk5YTY4Y2NmZWY4NDg0ZDU5YjVjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBMYXlvdXRS
ZWN0IEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6ZWxlbWVudFJlY3QoKSBjb25z
dAogICAgIHJldHVybiBtX2hlYWRlclJlY3Q7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyOjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUhlYWRlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaAppbmRleCA2MjVlMWRkMzU5Y2RiMWE0NDFl
ZGZlMDUyMzI0YTU0MDRmY2I1NjA1Li42YTliMmM5NWIzMDYzNDc4NTA1YzI1MjBiZThmYzVkZjEx
MzZlMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgKQEAgLTUyLDcgKzUyLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBMYXlvdXRSZWN0IG1faGVhZGVyUmVjdDsKICAgICAK
LSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogfTsgCiAg
ICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCmluZGV4IDNiMjIwNTg2MmI2
MzY2M2U2MzgyMjlhZmEzZDk1ZjU0ZTdiM2IyZWQuLjEyNzBjZjg5MmY0Y2M4YTUxZTQ0NDVjM2Uz
NzMyY2UxYjdmOTA0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpvYnNlcnZhYmxlT2JqZWN0KCkgY29u
c3QKICAgICByZXR1cm4gcGFyZW50VGFibGUoKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0
eVRhYmxlUm93OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJp
bGl0eVRhYmxlUm93Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7ICAg
IAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBhY2Nlc3NpYmls
aXR5SXNJZ25vcmVkQmFzZSgpOwogICAgIGlmIChkZWNpc2lvbiA9PSBJbmNsdWRlT2JqZWN0KQpA
QCAtOTUsNyArOTUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6YWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIGlmICgh
aXNUYWJsZVJvdygpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIAogICAgIHJldHVy
biBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZVJvdy5oCmluZGV4IDZlODhmOGZkMTQyZjE3ZTE0NzM5YjQyNDA0MDU2MzJk
ZmE1OTU2ZDUuLmQyNDJlZTQ0OWNkNmNhZTFiYjJiNzE0MWE1YTA4ZGRhZjUwZGJkZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVS
b3cuaApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0
eVRhYmxlUm93KCk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVGFibGVSb3coKSBjb25zdDsK
LSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogCiAgICAg
Ly8gcmV0cmlldmVzIHRoZSAicm93IiBoZWFkZXIgKGEgdGggdGFnIGluIHRoZSByaWdodG1vc3Qg
Y29sdW1uKQogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVhZGVyT2JqZWN0KCk7
CkBAIC02Miw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fcm93SW5kZXg7CiAgICAgCiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7
CiB9OyAKICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAK
</data>

          </attachment>
      

    </bug>

</bugzilla>