<?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>132647</bug_id>
          
          <creation_ts>2014-05-07 05:02:16 -0700</creation_ts>
          <short_desc>Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed&lt;T&gt; in svg/</short_desc>
          <delta_ts>2014-05-08 03:59:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>
          
          <blocked>130185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007298</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-05-07 05:02:16 -0700</bug_when>
    <thetext>Summary says it all</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007325</commentid>
    <comment_count>1</comment_count>
      <attachid>230997</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-05-07 07:48:15 -0700</bug_when>
    <thetext>Created attachment 230997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007481</commentid>
    <comment_count>2</comment_count>
      <attachid>230997</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-07 18:00:47 -0700</bug_when>
    <thetext>Comment on attachment 230997
Patch

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

Seems like there is an inefficient pattern here of all these sets, but thanks for modernizing the idiom at least.

&gt; Source/WebCore/svg/SVGUseElement.cpp:60
&gt; +#include &lt;wtf/NeverDestroyed.h&gt;

This should be up above with the #includes (at the bottom of them), not here down below the commented-out #defines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007591</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-05-08 03:59:55 -0700</bug_when>
    <thetext>Committed r168469: &lt;http://trac.webkit.org/changeset/168469&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230997</attachid>
            <date>2014-05-07 07:48:15 -0700</date>
            <delta_ts>2014-05-07 18:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132647-20140507164749.patch</filename>
            <type>text/plain</type>
            <size>110961</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFmNDBmZGQyNDc1MDZl
YTgyNmJjOWNjNDgzNjNhMzAwNzcxNDMzNy4uY2I3Y2NhNGY4MmNiYjliNjU1ZTg0YTFmMGExNDg5
MTJkNTdkODRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAxNC0wNS0wNyAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXBsYWNl
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTCBieSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VD4gaW4gc3ZnLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMyNjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGgu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkU1ZHTGVuZ3RoKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25F
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ3Vyc29yRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0VsZW1lbnQ6Omluc3RhbmNlc0ZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxl
bWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
TGlnaHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZF
TWVyZ2VOb2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1lcmdlTm9kZUVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aWx0ZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGaWx0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiBz
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdHRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdH
cmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR3JhZGllbnRFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpsZW5n
dGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdMaW5l
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJr
ZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR01hc2tF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRl
cm5FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1BvbHlF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTeW1ib2xF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1Rlc3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Rlc3RzOjphdHRyaWJ1dGVUb1Byb3BlcnR5TWFwKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxl
bWVudDo6dGV4dExlbmd0aEFuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250
ZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBhdGhFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmlzRGlzYWxsb3dlZEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3RWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUpOgorCiAyMDE0LTA1LTA1ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJA
YWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gQVNTRVJUIHdoZW4gaG92ZXJpbmcg
b3ZlciByZWdpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGFlNzA3NGVlZTBk
MmY2ZmVmNzg2NWY4ZTI0M2Y5OWJmNWNmMDBhYTUuLmQ4MDlkY2U5ODY5NWFjNDk3ZWMxZDc5ZmFj
YWNkNDljY2I5YjMwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODYsMTQgKzg3LDE0IEBAIFN0cmluZyBT
VkdBRWxlbWVudDo6dGl0bGUoKSBjb25zdAogCiBib29sIFNWR0FFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVk
QXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkg
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1w
dHkoKSkgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMo
c3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRhcmdldEF0dHIp
OworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6dGFyZ2V0
QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdBRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCmluZGV4IGJmMWM3NTdkYjk3
YzczNmM2MTBiODc5OTIyZjNmNWY4OGE4ZDBhNWIuLjBhOTgzZGZkMWEzY2M1NmQxZjliZGNkZTcw
ZmFiMGJjMDAxMTY2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRp
ZXMuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCkBAIC05
OCwxMCArOTksMTAgQEAgYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aGFzVmFsaWRBdHRy
aWJ1dGVOYW1lKCkKIAogYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwYXRoQXR0cik7Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFs
aWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5pc0VtcHR5KCkpCisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCku
YWRkKFNWR05hbWVzOjpwYXRoQXR0cik7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCmluZGV4IGU0YzJm
YTgwMDMzMjQ5YzNiYjY4NDU4OWRkY2MwNjA0OTQ0NTFjNzEuLjIyYmE3OWJiNWYyYzFhZTVmYWRj
YmQ4OGYyMmY0NTkyYTdhYTMwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkF0
dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3Jt
YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU1LDEwICs1NiwxMCBAQCBib29sIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50OjpoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKQogCiBib29sIFNWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnR5cGVBdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxT
VkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAg
IGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKKyAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKaW5kZXgg
ZDQzMGMzNjI2MmVlMmFmN2Q2ZDVlMDI2NGM3NDY4NmVhYjQ5ZGQwMy4uNjlkOTBjY2E4YTRiNzI2
MDlmNTg4OGEzNjI5NDNkYzI1YTBiMmM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRMZW5ndGguY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzMsOCArMzQsOCBA
QCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKFNW
R0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdAogCiBzdGF0aWMgaW5saW5lIFNWR0xlbmd0aCYgc2hh
cmVkU1ZHTGVuZ3RoKFNWR0xlbmd0aE1vZGUgbW9kZSwgY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3Ry
aW5nKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTVkdMZW5ndGgsIHNo
YXJlZExlbmd0aCwgKCkpOwotICAgIHNoYXJlZExlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVl
QXNTdHJpbmcsIG1vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTVkdMZW5ndGg+IHNoYXJlZExlbmd0aDsKKyAgICBzaGFyZWRMZW5ndGguZ2V0KCku
c2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBtb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICByZXR1cm4gc2hhcmVkTGVuZ3RoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0aW9uRWxlbWVudC5jcHAKaW5kZXggYTUyZDJjYzg5NDhlYzc4ZTIxZDkwNWYxYjRhMGUy
NzFhMTk2OGUxMC4uNDY2ZmNjNmI5MzRiNTg3YTAzMjZiZWRkOWU4MWYzNTkzNTkxMzhhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVz
LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE0MywyMSArMTQ0LDIxIEBAIHN0YXRpYyB2b2lkIHBhcnNlS2V5U3BsaW5l
cyhjb25zdCBTdHJpbmcmIHBhcnNlLCBWZWN0b3I8VW5pdEJlemllcj4mIHJlc3VsdCkKIAogYm9v
bCBTVkdBbmltYXRpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlm
IChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgeworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlm
IChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdUZXN0
czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBw
b3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnZhbHVlc0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6a2V5VGltZXNBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmtleVBvaW50c0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6a2V5U3BsaW5lc0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6YXR0cmlidXRlVHlwZUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6Y2FsY01vZGVBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmZyb21BdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnRvQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpieUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6dmFsdWVzQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCku
YWRkKFNWR05hbWVzOjprZXlUaW1lc0F0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmdldCgpLmFkZChTVkdOYW1lczo6a2V5UG9pbnRzQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjprZXlTcGxpbmVzQXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjphdHRyaWJ1dGVUeXBlQXR0cik7
CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpjYWxjTW9k
ZUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6
ZnJvbUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1l
czo6dG9BdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFt
ZXM6OmJ5QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRh
aW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IDMyOTFhMzkwNmY2
N2ZlZDBjMDBiZDY0ZDI2ODViOGE3NmNhNWNmYzcuLjk5ZjhiNmQzMGI2YzEzOTJhMGI3MDExOGY0
OGJkMWEwNWRjNDViZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKICNpbmNsdWRlICJT
VkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY1LDE1ICs2NiwxNSBAQCBQ
YXNzUmVmUHRyPFNWR0NpcmNsZUVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBib29sIFNWR0NpcmNsZUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgp
KSB7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1
cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNF
bXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhz
dXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmN4QXR0cik7Ci0gICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpjeUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ckF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmFkZChTVkdOYW1lczo6Y3hBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmN5QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpyQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdDaXJjbGVF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcAppbmRleCAyNjEyNzczNzE0MDRhYzExNjA2ZTFmNDI0ZjE3ZmZhNTJkNWVhMmQxLi4xMWNi
ZWIxZTAxMWE1Nzk1MzQ0ZDI5ODAyNjQ0MWMzMzJlYzQwMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlNW
R05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01NywxMyArNTgsMTMgQEAgUGFzc1JlZlB0cjxTVkdDbGlwUGF0aEVs
ZW1lbnQ+IFNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHQK
IAogYm9vbCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0g
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7Cisg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmNsaXBQYXRoVW5pdHNBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmNsaXBQYXRoVW5pdHNBdHRyKTsKICAgICB9Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lk
IFNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCmluZGV4
IGM0OWU5M2I4ZGViODg5YTAxMWE4OGE4MmRlMDcxM2Y4MTI3MTk2NjQuLmIxOGY1NDQ4MDk3NDY2
MGFiZmRhNWQ1M2Q3N2Q0ZWI0YmUxODY2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0LmgiCisjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjIs
MTcgKzYzLDE3IEBAIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjpTVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudChjb25zdCBRCiAKIGJvb2wgU1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0eXBlQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp0YWJsZVZhbHVlc0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c2xvcGVBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmludGVyY2VwdEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6YW1wbGl0dWRlQXR0cik7Ci0gICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpleHBvbmVudEF0dHIpOwotICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6b2Zmc2V0QXR0cik7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7Cisg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp0eXBlQXR0cik7CisgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp0YWJsZVZhbHVlc0F0dHIp
OworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6c2xvcGVB
dHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6Omlu
dGVyY2VwdEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdO
YW1lczo6YW1wbGl0dWRlQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCku
YWRkKFNWR05hbWVzOjpleHBvbmVudEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmdldCgpLmFkZChTVkdOYW1lczo6b2Zmc2V0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDdXJzb3JFbGVtZW50LmNwcAppbmRleCA3MGQzMTIwZmM4NTRkM2MyN2FiZjAzYjZiMmE1OTYx
OWU2OTZhZDYyLi41NDRlYzdkMGViMTg0OGJlMTE2MDI0ZTVkM2JkMTRlZmNlMmVjNDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNp
bmNsdWRlICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjYsMTUgKzY3LDE1IEBAIFNWR0N1cnNvckVsZW1l
bnQ6On5TVkdDdXJzb3JFbGVtZW50KCkKIAogYm9vbCBTVkdDdXJzb3JFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9y
dGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHko
KSkgeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlz
RW1wdHkoKSkgewogICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBw
b3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6
YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZH
VVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eEF0dHIpOwotICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eUF0dHIpOworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eEF0dHIpOworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eUF0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZv
aWQgU1ZHQ3Vyc29yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNw
cAppbmRleCBkMmQ3M2E2MzMwZDVjY2U3Y2I2ZDk4ZGUzMzAxNDU3MDUyMzcxNTc2Li43NGZmMzNh
MjllZDgxNGVmNDk4YTAxZjNlMDJiMzhjNGQ2MDIzZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAgdm9pZCBTVkdFbGVtZW50OjpyZW1vdmVJbnN0YW5j
ZU1hcHBpbmcoU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSkKIGNvbnN0IEhhc2hTZXQ8U1ZH
RWxlbWVudEluc3RhbmNlKj4mIFNWR0VsZW1lbnQ6Omluc3RhbmNlc0ZvckVsZW1lbnQoKSBjb25z
dAogewogICAgIGlmICghbV9zdmdSYXJlRGF0YSkgewotICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPiwgZW1wdHlJbnN0YW5j
ZXMsICgpKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U1ZHRWxlbWVu
dEluc3RhbmNlKj4+IGVtcHR5SW5zdGFuY2VzOwogICAgICAgICByZXR1cm4gZW1wdHlJbnN0YW5j
ZXM7CiAgICAgfQogICAgIHJldHVybiBtX3N2Z1JhcmVEYXRhLT5lbGVtZW50SW5zdGFuY2VzKCk7
CkBAIC02ODYsMTkgKzY4NiwxOSBAQCB2b2lkIFNWR0VsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpCiAKIGJvb2wgU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJiBjaGlsZCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgaW52YWxpZFRleHRDb250ZW50LCAoKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IGludmFsaWRUZXh0
Q29udGVudDsKIAotICAgIGlmIChpbnZhbGlkVGV4dENvbnRlbnQuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGludmFsaWRUZXh0Q29udGVudC5hZGQoU1ZHTmFtZXM6OnRleHRQYXRoVGFnKTsKKyAgICBp
ZiAoaW52YWxpZFRleHRDb250ZW50LmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBpbnZhbGlk
VGV4dENvbnRlbnQuZ2V0KCkuYWRkKFNWR05hbWVzOjp0ZXh0UGF0aFRhZyk7CiAjaWYgRU5BQkxF
KFNWR19GT05UUykKLSAgICAgICAgaW52YWxpZFRleHRDb250ZW50LmFkZChTVkdOYW1lczo6YWx0
R2x5cGhUYWcpOworICAgICAgICBpbnZhbGlkVGV4dENvbnRlbnQuZ2V0KCkuYWRkKFNWR05hbWVz
OjphbHRHbHlwaFRhZyk7CiAjZW5kaWYKLSAgICAgICAgaW52YWxpZFRleHRDb250ZW50LmFkZChT
VkdOYW1lczo6dHJlZlRhZyk7Ci0gICAgICAgIGludmFsaWRUZXh0Q29udGVudC5hZGQoU1ZHTmFt
ZXM6OnRzcGFuVGFnKTsKKyAgICAgICAgaW52YWxpZFRleHRDb250ZW50LmdldCgpLmFkZChTVkdO
YW1lczo6dHJlZlRhZyk7CisgICAgICAgIGludmFsaWRUZXh0Q29udGVudC5nZXQoKS5hZGQoU1ZH
TmFtZXM6OnRzcGFuVGFnKTsKICAgICB9CiAgICAgaWYgKGNoaWxkLmlzU1ZHRWxlbWVudCgpKSB7
CiAgICAgICAgIGNvbnN0IFNWR0VsZW1lbnQmIHN2Z0NoaWxkID0gdG9TVkdFbGVtZW50KGNoaWxk
KTsKLSAgICAgICAgaWYgKGludmFsaWRUZXh0Q29udGVudC5jb250YWlucyhzdmdDaGlsZC50YWdR
TmFtZSgpKSkKKyAgICAgICAgaWYgKGludmFsaWRUZXh0Q29udGVudC5nZXQoKS5jb250YWlucyhz
dmdDaGlsZC50YWdRTmFtZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICByZXR1cm4gc3ZnQ2hpbGQuaXNWYWxpZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNl
RWxlbWVudC5jcHAKaW5kZXggZDcwOTYzNWE2OTBhNWU5MzgyODNmOGY2OTJjMDk2NGYyY2NkZTNi
NC4uMDdiZGRjZGFmYzVlZTc0YmEyYTJiNGIxODE5ZDk0YjA5OTQ1YzUyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC02NiwxNiArNjcsMTYgQEAgUGFzc1JlZlB0cjxTVkdFbGxpcHNl
RWxlbWVudD4gU1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWcKIAogYm9vbCBTVkdFbGxpcHNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
LSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsK
KyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAg
U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6Y3hBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQo
U1ZHTmFtZXM6OmN5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpyeEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
cnlBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6
OmN4QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVz
OjpjeUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1l
czo6cnhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFt
ZXM6OnJ5QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRh
aW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IDFkZmViZjBkY2Zi
YWM3YzA2MDQ3ZGU2ZjRhYjc5NzQ2MmE3NDI2ZDkuLmZiOWY1MmVhNzA4ODAzMDIxOWQ1MDE0ZmNh
YWMxYjAxYTJiZmY3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5k
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2lu
Y2x1ZGUgIlNWR0ZpbHRlckJ1aWxkZXIuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU4
LDEzICs1OSwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFQmxlbmRFbGVtZW50PiBTVkdGRUJsZW5kRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZwogCiBib29sIFNWR0ZFQmxlbmRF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6bW9kZUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6aW5BdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omlu
MkF0dHIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+
PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmlzRW1wdHkoKSkgeworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdO
YW1lczo6bW9kZUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6aW5BdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQo
U1ZHTmFtZXM6OmluMkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cAppbmRleCA3ZWQyODQxNGQ2NjJjMDZmNTc5NzI1ODg4MzJkZjM0N2VmZDNmMmMyLi5kMTE1Yjhm
ZjMyNzVmNzAxMWEzYjdjZWJmZTNlZGYxMWVlMTVmM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJCdWlsZGVyLmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OCwxMyArNTksMTMgQEAgUGFzc1JlZlB0cjxT
VkdGRUNvbG9yTWF0cml4RWxlbWVudD4gU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWYKIAogYm9vbCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsK
LSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKLSAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnZhbHVlc0F0dHIpOwotICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmli
dXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsK
KyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnZhbHVlc0F0
dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6aW5B
dHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dC5jcHAKaW5kZXggYmQ0NTlhNmM3NmU5MDU2YTY3MDczMDgxOWEwNmQ5NmE0MzE1ZDEwMC4uNzUy
MmM1NDZmMzA3NTlhN2JlOWFhZTNiYjg1ZWNkNWM0Y2QzNTBhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiU1ZHRkVGdW5jUkVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdG
aWx0ZXJCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NywxMCArNTgsMTAg
QEAgUGFzc1JlZlB0cjxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudD4gU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQ6OmNyZWF0ZSgKIAogYm9vbCBTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpCi0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjppbkF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKKyAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNw
cAppbmRleCAxZTZjZDhlOTg2M2M2MWQ3NGJiZjllMmJjZDhjYmRjYmY2Y2FmZDAzLi44ODFkYWM2
OTlmODFhMTU2NDhkMDcwYzRlNDZiNTRlOTY5ZjZhMzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR0ZpbHRlckJ1aWxkZXIuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY2LDE3ICs2NywxNyBAQCBQYXNzUmVmUHRyPFNWR0ZF
Q29tcG9zaXRlRWxlbWVudD4gU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTgogCiBib29sIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbjJBdHRyKTsKLSAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9wZXJhdG9yQXR0cik7Ci0gICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprMUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6azJBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OmszQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjprNEF0dHIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmdldCgpLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmluMkF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmFkZChTVkdOYW1lczo6b3BlcmF0b3JBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmsxQXR0cik7CisgICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjprMkF0dHIpOworICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6azNBdHRyKTsKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6Oms0QXR0cik7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29u
dGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBT
VkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCBiZWVlZjI0ZTNiYjExNDg0
NzYwODhhMTIyYmQzNGY4N2UyNjZkMGM5Li5jMDJlYTY4MGVjNGY4NjMyZjFkZWY4ZTU3ZWM2Y2Rl
ZTQ4NDk4NGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTVkdGaWx0ZXJCdWls
ZGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0xMDMsMjAgKzEwNCwyMCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKCkKIAogYm9vbCBTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpvcmRlckF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6a2VybmVsTWF0cml4QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjplZGdlTW9kZUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6ZGl2aXNvckF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6Ymlhc0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6dGFyZ2V0WEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6dGFyZ2V0WUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6cHJlc2VydmVBbHBoYUF0dHIpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOwor
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKKyAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6Om9yZGVyQXR0cik7CisgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjprZXJuZWxNYXRyaXhB
dHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmVk
Z2VNb2RlQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05h
bWVzOjpkaXZpc29yQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRk
KFNWR05hbWVzOjpiaWFzQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCku
YWRkKFNWR05hbWVzOjp0YXJnZXRYQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuYWRkKFNWR05hbWVzOjp0YXJnZXRZQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cik7CisgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKIH0KIAogdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5j
cHAKaW5kZXggMDEzNTMxM2JhZjEwYWE3ODkwODU5ZDYyN2M0YTc3YTU1ZTAyNWY4OS4uMmIxNDEw
YjQzNWEzOTJhNzMwMDA2ZGNiOGUxMzExY2Q5MDQyZDFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJTVkdGaWx0ZXJCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
ICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSwxNSArODAsMTUgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRM
ZW5ndGhZSWRlbnRpZmllcigpCiAKIGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwg
c3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlz
RW1wdHkoKSkgewotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5B
dHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmRpZmZ1c2VD
b25zdGFudEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
c3VyZmFjZVNjYWxlQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjpsaWdodGluZ19jb2xvckF0dHIpOyAvLyBFdmVuIHRob3VnaCBpdCdzIGEg
U1ZHLUNTUyBwcm9wZXJ0eSwgd2Ugb3ZlcnJpZGUgaXRzIGhhbmRsaW5nIGhlcmUuCisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJp
YnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjppbkF0dHIpOwor
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6ZGlmZnVzZUNv
bnN0YW50QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05h
bWVzOjpzdXJmYWNlU2NhbGVBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQo
KS5hZGQoU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmxpZ2h0aW5nX2NvbG9yQXR0cik7IC8vIEV2
ZW4gdGhvdWdoIGl0J3MgYSBTVkctQ1NTIHByb3BlcnR5LCB3ZSBvdmVycmlkZSBpdHMgaGFuZGxp
bmcgaGVyZS4KICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8
U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5jcHAKaW5kZXggMTQxODY1NGQyMmI3NmRkYTI3N2YwZTlmY2MwOGFhNjRlMWY4YjMxZS4u
ZTgwNTc1ODI4NTVjMjk1YjM4OTM5M2E0MmQ2NTc4OGYwNzg4ZDVmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdG
aWx0ZXJCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02MiwxNSArNjMsMTUg
QEAgUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IFNWR0ZFRGlzcGxhY2Vt
ZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnMKIAogYm9vbCBTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0dHJp
YnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjppbkF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
aW4yQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4Q2hh
bm5lbFNlbGVjdG9yQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjp5Q2hhbm5lbFNlbGVjdG9yQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjpzY2FsZUF0dHIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
U2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmluMkF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eENoYW5uZWxTZWxlY3RvckF0dHIpOworICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eUNoYW5uZWxTZWxlY3Rv
ckF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6
c2NhbGVBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNw
cAppbmRleCA3MWZjZTBiOTkxOGQ0YTM5NzJkNzIyZGJiNmU0ZDY3NDU1YTNlMGJhLi44YWU4NWQz
ZmYyNjc3YjZmNmJkN2NjZWQzZWQxMGE5MjA5YjEwOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJTVkdSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDE0ICs4NiwxNCBAQCB2b2lkIFNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9hdCB5KQogCiBib29sIFNW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYg
KHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6ZHhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQo
U1ZHTmFtZXM6OmR5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpzdGREZXZpYXRpb25BdHRyKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNl
dDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpkeEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmFkZChTVkdOYW1lczo6ZHlBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpOwogICAgIH0KLSAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNv
bnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKaW5kZXggMjI2YjIxMDk2NmYzYWYxYWNl
N2RiZWFhYzQ2MjQ3MzY4NjFjMzcwOC4uN2QwYWE1YzE5NDgzZWFlZWRmNThjMTdjY2FlNmRlOTYy
MjRjNmFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJTVkdGaWx0ZXJCdWlsZGVyLmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIK
KyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC04MCwxMyArODEsMTMgQEAgdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnNldFN0
ZERldmlhdGlvbihmbG9hdCB4LCBmbG9hdCB5KQogCiBib29sIFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmluQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpz
dGREZXZpYXRpb25BdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmVkZ2VNb2RlQXR0cik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0
KCkuYWRkKFNWR05hbWVzOjppbkF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6c3RkRGV2aWF0aW9uQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjplZGdlTW9kZUF0dHIpOwogICAgIH0KLSAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNv
bnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggN2MxNjU2MTVlNzgyZWZiNGRmZjdkYzhhYzMwMDEz
YzE3N2E1N2EyYy4uNDllMmU4MjNiM2RjMjA4ZGEzMTYyYTY0OTYyZDI1MjBhOWM5YTJkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNSwxNCArMTE2LDE0IEBAIHZvaWQg
U1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkKIAogYm9vbCBTVkdGRUlt
YWdlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVk
QXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNl
dDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjph
ZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdM
YW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cik7CiAg
ICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCmluZGV4IDliOWM4Yjk2OGE2MGEyNDg5ZjNmZjVhZGVi
MzY3YzEzZmEyZTY2MTMuLmNmNDQ0MzVmZjFjYWQ0YTBiM2MyNTQxYjU1ZDhhYjVmOGFhNWNmZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIlNWR0ZpbHRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTg4LDIwICs4OSwyMCBAQCBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBTVkdGRUxpZ2h0RWxlbWVu
dDo6ZmluZExpZ2h0U291cmNlKGNvbnN0IFNWR0VsZW1lbnQqIHN2ZwogCiBib29sIFNWR0ZFTGln
aHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6YXppbXV0aEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6ZWxldmF0aW9uQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjp4QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjp5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp6
QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwb2ludHNB
dFhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnBvaW50
c0F0WUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cG9p
bnRzQXRaQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpz
cGVjdWxhckV4cG9uZW50QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpsaW1pdGluZ0NvbmVBbmdsZUF0dHIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6YXppbXV0aEF0dHIpOworICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6ZWxldmF0aW9uQXR0cik7CisgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp4QXR0cik7CisgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp5QXR0cik7CisgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp6QXR0cik7CisgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpwb2ludHNBdFhBdHRy
KTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnBvaW50
c0F0WUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1l
czo6cG9pbnRzQXRaQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRk
KFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpsaW1pdGluZ0NvbmVBbmdsZUF0dHIpOwogICAgIH0K
LSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAK
IHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCmluZGV4IGQyYTMwNzFjMDcxZWZkY2RmOTMyMmQ0
MGIzYTAzMDFjNzA3ZjU0NTIuLjU1ZWVlMGRlODg0NWY1ZjBmZmViN2YzMDk2Mzg1YzhkNTc2MTQ3
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU1ZHRmlsdGVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTQsMTAgKzU1LDEwIEBAIFBhc3NSZWZQdHI8U1ZHRkVNZXJnZU5vZGVFbGVt
ZW50PiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROCiAKIGJv
b2wgU1ZHRkVNZXJnZU5vZGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAg
IGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVk
QXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkp
CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjppbkF0dHIp
OworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVNZXJnZU5vZGVF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwCmluZGV4IDdmOWYyZDc5YWE5ZTAzYzBiMDk4MjhjNmNmOTUzMDgwOTgwNTUx
YjguLjlkZWM4MzdlNGVmYjFhMzU4M2VkNjg2NzkwZjNlOTg4MDM3MWI2OTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJTVkdGaWx0ZXJCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
ICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSwxMyArODAsMTMgQEAgdm9p
ZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRSYWRpdXMoZmxvYXQgeCwgZmxvYXQgeSkKIAog
Ym9vbCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwot
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9wZXJhdG9yQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyYWRpdXNBdHRyKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBp
ZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CisgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpvcGVyYXRvckF0dHIpOworICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6cmFkaXVzQXR0cik7CiAg
ICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCAyOGE0NmY2OTFkY2Y0NGMyN2Mw
Y2UwZGUyOWRiOTMyMmM2OGY3NjE2Li40NzE3MzkwM2ZmZjQ0NGZhMDRkODA1ZTM0YmQwYzQ3YTEz
ZTcxOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUg
IlNWR0ZpbHRlckJ1aWxkZXIuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU3LDEzICs1
OCwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFT2Zmc2V0RWxlbWVudD4gU1ZHRkVPZmZzZXRFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogCiBib29sIFNWR0ZFT2Zmc2V0RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmluQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkeEF0
dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHlBdHRyKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9y
dGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6Omlu
QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpk
eEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6
ZHlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8
U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cAppbmRleCBjNTc2Y2VjYjBjYTBiMDFjYzZkMGM4YWY5YjRhOTcwZmQ3OWYzYzljLi5jMTRiMmJm
ZDg3ZDllNTZkZjVhY2QzZWRkNGFjMWQwOWVjZGE3N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiU1ZHRmlsdGVyQnVpbGRlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODMsMTUgKzg0LDE1IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5p
dExlbmd0aFlJZGVudGlmaWVyKCkKIAogYm9vbCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1l
Piwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmlzRW1wdHkoKSkgewotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
aW5BdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNwZWN1
bGFyQ29uc3RhbnRBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnNwZWN1bGFyRXhwb25lbnRBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOwor
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKKyAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRB
dHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnNw
ZWN1bGFyRXhwb25lbnRBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5h
ZGQoU1ZHTmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmFkZChTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZv
aWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAppbmRleCA3ZDBlMWZjMWQwMDllYzAyOGQzOTM0MjQw
NDcxMzQ3YTc1NTFlMjcxLi44OWU2MWExYTFlNDM4MzdlZjM1NWM5ZjQ4MjM0YjA1YTY1OTkwYzFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiU1ZHRmlsdGVyQnVpbGRlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCwxMCArNTUsMTAgQEAgUGFzc1Jl
ZlB0cjxTVkdGRVRpbGVFbGVtZW50PiBTVkdGRVRpbGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmEKIAogYm9vbCBTVkdGRVRpbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKLSAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZp
ZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5pc0VtcHR5KCkpCisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRk
KFNWR05hbWVzOjppbkF0dHIpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZv
aWQgU1ZHRkVUaWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAppbmRleCAyMzlmMTM0NWE1N2NhMmE5MjdkZWI3ZmJi
MDBmZjkwN2QyYzcxMzQwLi4yNDgwN2E2ODc1NDIzZGFjODc2MjY4NjdiYmQyZTJjODg3YTcyMWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Nywx
NSArNzgsMTUgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojpi
YXNlRnJlcXVlbmN5WUlkZW50aWZpZXIoKQogCiBib29sIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpi
YXNlRnJlcXVlbmN5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpudW1PY3RhdmVzQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpzZWVkQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpzdGl0Y2hUaWxlc0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6dHlwZUF0dHIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1
YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6YmFzZUZyZXF1ZW5jeUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6bnVtT2N0YXZlc0F0dHIpOworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6c2VlZEF0dHIpOworICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6c3RpdGNoVGlsZXNBdHRy
KTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnR5cGVB
dHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5kZXggZDk5OGRkZjNmZDczNWJi
MGUwMGI5NzE3OGZhODM2ZmRmZDhkOWJiNi4uNGVjYjhmY2M2OTdiN2RiYjRmZmZmY2VhYzA1YTI3
MjVmOTQ5MjlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwNSwyMCArMTA2LDIw
IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6c2V0RmlsdGVyUmVzKHVuc2lnbmVkIGZpbHRlclJl
c1gsIHVuc2lnbmVkIGZpbHRlclJlc1kpCiAKIGJvb2wgU1ZHRmlsdGVyRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBv
cnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5
KCkpIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4g
c3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5p
c0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpmaWx0ZXJV
bml0c0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cHJp
bWl0aXZlVW5pdHNBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlB
dHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0
cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRy
KTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZpbHRlclJlc0F0
dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6Zmls
dGVyVW5pdHNBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZH
TmFtZXM6OnByaW1pdGl2ZVVuaXRzQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuYWRkKFNWR05hbWVzOjp4QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuYWRkKFNWR05hbWVzOjp5QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmdldCgpLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpmaWx0ZXJSZXNBdHRyKTsKICAgICB9Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lk
IFNWR0ZpbHRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCkBAIC0yMDAsMzYgKzIwMSwzNiBAQCBib29s
IFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYg
Y2hpbGQpIGNvbnN0CiAKICAgICBjb25zdCBTVkdFbGVtZW50JiBzdmdFbGVtZW50ID0gdG9TVkdF
bGVtZW50KGNoaWxkKTsKIAotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PFF1YWxpZmllZE5hbWU+LCBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncywgKCkpOwotICAgIGlm
IChhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5pc0VtcHR5KCkpIHsKLSAgICAgICAgYWxsb3dlZENo
aWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZUJsZW5kVGFnKTsKLSAgICAgICAgYWxsb3dl
ZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZUNvbG9yTWF0cml4VGFnKTsKLSAgICAg
ICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZUNvbXBvbmVudFRyYW5z
ZmVyVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpm
ZUNvbXBvc2l0ZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmFkZChTVkdO
YW1lczo6ZmVDb252b2x2ZU1hdHJpeFRhZyk7Ci0gICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRU
YWdzLmFkZChTVkdOYW1lczo6ZmVEaWZmdXNlTGlnaHRpbmdUYWcpOwotICAgICAgICBhbGxvd2Vk
Q2hpbGRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmZlRGlzcGxhY2VtZW50TWFwVGFnKTsKLSAg
ICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZURpc3RhbnRMaWdo
dFRhZyk7Ci0gICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6ZmVE
cm9wU2hhZG93VGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05h
bWVzOjpmZUZsb29kVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNW
R05hbWVzOjpmZUZ1bmNBVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRk
KFNWR05hbWVzOjpmZUZ1bmNCVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3Mu
YWRkKFNWR05hbWVzOjpmZUZ1bmNHVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRh
Z3MuYWRkKFNWR05hbWVzOjpmZUZ1bmNSVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVu
dFRhZ3MuYWRkKFNWR05hbWVzOjpmZUdhdXNzaWFuQmx1clRhZyk7Ci0gICAgICAgIGFsbG93ZWRD
aGlsZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6ZmVJbWFnZVRhZyk7Ci0gICAgICAgIGFsbG93
ZWRDaGlsZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6ZmVNZXJnZVRhZyk7Ci0gICAgICAgIGFs
bG93ZWRDaGlsZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6ZmVNZXJnZU5vZGVUYWcpOwotICAg
ICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmZlTW9ycGhvbG9neVRh
Zyk7Ci0gICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6ZmVPZmZz
ZXRUYWcpOwotICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmZl
UG9pbnRMaWdodFRhZyk7Ci0gICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmFkZChTVkdO
YW1lczo6ZmVTcGVjdWxhckxpZ2h0aW5nVGFnKTsKLSAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVu
dFRhZ3MuYWRkKFNWR05hbWVzOjpmZVNwb3RMaWdodFRhZyk7Ci0gICAgICAgIGFsbG93ZWRDaGls
ZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6ZmVUaWxlVGFnKTsKLSAgICAgICAgYWxsb3dlZENo
aWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZVR1cmJ1bGVuY2VUYWcpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBhbGxvd2VkQ2hpbGRFbGVt
ZW50VGFnczsKKyAgICBpZiAoYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuZ2V0KCkuaXNFbXB0eSgp
KSB7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6
ZmVCbGVuZFRhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChT
VkdOYW1lczo6ZmVDb2xvck1hdHJpeFRhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRU
YWdzLmdldCgpLmFkZChTVkdOYW1lczo6ZmVDb21wb25lbnRUcmFuc2ZlclRhZyk7CisgICAgICAg
IGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6ZmVDb21wb3NpdGVU
YWcpOworICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6
OmZlQ29udm9sdmVNYXRyaXhUYWcpOworICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5n
ZXQoKS5hZGQoU1ZHTmFtZXM6OmZlRGlmZnVzZUxpZ2h0aW5nVGFnKTsKKyAgICAgICAgYWxsb3dl
ZENoaWxkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpmZURpc3BsYWNlbWVudE1hcFRh
Zyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6
ZmVEaXN0YW50TGlnaHRUYWcpOworICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5nZXQo
KS5hZGQoU1ZHTmFtZXM6OmZlRHJvcFNoYWRvd1RhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVs
ZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6ZmVGbG9vZFRhZyk7CisgICAgICAgIGFsbG93
ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6ZmVGdW5jQVRhZyk7CisgICAg
ICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6ZmVGdW5jQlRh
Zyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6
ZmVGdW5jR1RhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChT
VkdOYW1lczo6ZmVGdW5jUlRhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdl
dCgpLmFkZChTVkdOYW1lczo6ZmVHYXVzc2lhbkJsdXJUYWcpOworICAgICAgICBhbGxvd2VkQ2hp
bGRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZlSW1hZ2VUYWcpOworICAgICAgICBh
bGxvd2VkQ2hpbGRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZlTWVyZ2VUYWcpOwor
ICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZlTWVy
Z2VOb2RlVGFnKTsKKyAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNW
R05hbWVzOjpmZU1vcnBob2xvZ3lUYWcpOworICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFn
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZlT2Zmc2V0VGFnKTsKKyAgICAgICAgYWxsb3dlZENoaWxk
RWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpmZVBvaW50TGlnaHRUYWcpOworICAgICAg
ICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZlU3BlY3VsYXJM
aWdodGluZ1RhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmFkZChT
VkdOYW1lczo6ZmVTcG90TGlnaHRUYWcpOworICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50VGFn
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZlVGlsZVRhZyk7CisgICAgICAgIGFsbG93ZWRDaGlsZEVs
ZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6ZmVUdXJidWxlbmNlVGFnKTsKICAgICB9CiAK
LSAgICByZXR1cm4gYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KHN2Z0VsZW1lbnQudGFnUU5hbWUoKSk7CisgICAgcmV0dXJuIGFsbG93
ZWRDaGlsZEVsZW1lbnRUYWdzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihzdmdFbGVtZW50LnRhZ1FOYW1lKCkpOwogfQogCiBib29sIFNWR0ZpbHRlckVsZW1lbnQ6
OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAppbmRl
eCBiMTI0MjE1ZWYyZjJhNGI2MWZkZDhkNGI4NDg4MTI0ZWYwZWJlMmIxLi5lZTgxZmRjODZkYTc5
MjM4NDI1MjhiYjliMmU4ODM2MmRlMDU2YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR05hbWVz
LmgiCiAjaW5jbHVkZSAiU1ZHVW5pdFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjYsMTUgKzY3LDE1IEBAIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzKGNvbnN0CiAKIGJvb2wgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6eEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
eUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6d2lkdGhB
dHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0
dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cmVzdWx0QXR0
cik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1
cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNF
bXB0eSgpKSB7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVz
Ojp4QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVz
Ojp5QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVz
Ojp3aWR0aEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdO
YW1lczo6aGVpZ2h0QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRk
KFNWR05hbWVzOjpyZXN1bHRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGYxYTFjNjgwZmJjMTc2N2MyNmU3ZmIwZjNj
MDZlOGVjMDIxYzkzMTYuLjcyYjdkMmE5NjM1ZGI3ODJiZjAxNDBmOGQ5MTE2Y2Q0OTY4MmFkOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiWExpbmtO
YW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjksMTYgKzcwLDE2IEBA
IFBhc3NSZWZQdHI8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmCiAKIGJvb2wgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Z2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
LSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKLSAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKLSAgICAgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7Ci0gICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICB9
Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5n
ZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQog
CiB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHRWxlbWVudC5jcHAKaW5kZXggMzc1ZWMxMTVjZGFkYWIzNzFiYTY1NmRkZDNmZjA5YWU2NzQw
ZDc0ZC4uZGNlMDA4NzUwZWEwMzVkYjE3YmE3Y2E4ZGVjYzZjNGU0YjQ1NTliMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5j
ZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsMTIgKzUyLDEyIEBAIFBhc3NSZWZQ
dHI8U1ZHR0VsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lCiAKIGJvb2wgU1ZHR0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJp
YnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxT
VkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0dFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRp
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cAppbmRleCBkMTk1ZGQwNDIyYWE2YjE0NzJjMzRkYTRiMjdjYzFiNTBjNjI4MTZkLi40OGMxNmI1
MDQ4ZDVlNDdkYTg5ZmE3MjAxMjc2Y2ZhNGY0OWM5ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR3JhZGllbnRFbGVtZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNWR1Ry
YW5zZm9ybWFibGUuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiWExp
bmtOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTYzLDE1ICs2NCwxNSBAQCBTVkdHcmFkaWVudEVsZW1lbnQ6OlNWR0dy
YWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZAog
CiBib29sIFNWR0dyYWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZH
VVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6Z3JhZGllbnRVbml0c0F0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6Z3JhZGllbnRUcmFuc2Zvcm1BdHRyKTsKLSAgICAgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNwcmVhZE1ldGhvZEF0dHIpOworICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6Z3JhZGllbnRVbml0c0F0
dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6Z3Jh
ZGllbnRUcmFuc2Zvcm1BdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5h
ZGQoU1ZHTmFtZXM6OnNwcmVhZE1ldGhvZEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5h
bWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHR3JhZGllbnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dy
YXBoaWNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmNwcAppbmRleCBkYmQ3MzdlYWJmYzZkOGYyMzkzMGZiYjkzMzY4ODJhY2EzMjE4MzU0Li4zYzYy
NDkwOTZjMzkyNzVmNjMzYmRkYWEwOTI0ZTQ4ZjBmMmIyMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNW
R0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZH
UGF0aERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0xMDAsMTIgKzEwMSwxMiBAQCBBZmZpbmVUcmFuc2Zvcm0qIFNWR0dy
YXBoaWNzRWxlbWVudDo6c3VwcGxlbWVudGFsVHJhbnNmb3JtKCkKIAogYm9vbCBTVkdHcmFwaGlj
c0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6dHJhbnNmb3JtQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsKICAgICB9Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lk
IFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKaW5kZXggNjRjNWZkYTI0NzA0YmM1ZGZjMmEyMjIyMjlkMTdlOTdiMmVmNWJm
YS4uZGEyZTU3NDA3ZWRhNGIwMGE0NmE4MDc3YTM5NzQwYWYwMzhkODNmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJT
VkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05h
bWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNzIsMTggKzczLDE4IEBAIFBhc3NSZWZQdHI8U1ZHSW1hZ2VFbGVtZW50PiBT
VkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lCiAKIGJv
b2wgU1ZHSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5nU3Bh
Y2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAg
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnlBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OndpZHRoQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpoZWlnaHRBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OwogfQogCiBib29sIFNWR0ltYWdlRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGguY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5jcHAKaW5k
ZXggYmFmZDI3NmZmNzNiNDA1OGIxZTYyZWI4MGQ3NjdkZjA3NmViNDU5Mi4uMWU5MTczMzdjYzE0
ZmM4M2I1ZDgxODhkNTMxYjVjZjllMDNhOTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1Bh
cnNlclV0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNzgsMzQgKzM3OSwzNCBAQCBQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBTVkdMZW5ndGg6OnRvQ1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgU1ZH
TGVuZ3RoJiBsZQogU1ZHTGVuZ3RoTW9kZSBTVkdMZW5ndGg6Omxlbmd0aE1vZGVGb3JBbmltYXRl
ZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICB0
eXBlZGVmIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgU1ZHTGVuZ3RoTW9kZT4gTGVuZ3RoTW9kZUZv
ckxlbmd0aEF0dHJpYnV0ZU1hcDsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TGVuZ3RoTW9kZUZvckxlbmd0aEF0dHJpYnV0ZU1hcCwgc19sZW5ndGhNb2RlTWFwLCAoKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aE1vZGVGb3JMZW5ndGhBdHRyaWJ1dGVNYXA+
IHNfbGVuZ3RoTW9kZU1hcDsKICAgICAKLSAgICBpZiAoc19sZW5ndGhNb2RlTWFwLmlzRW1wdHko
KSkgewotICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp4QXR0ciwgTGVuZ3Ro
TW9kZVdpZHRoKTsKLSAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eUF0dHIs
IExlbmd0aE1vZGVIZWlnaHQpOwotICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVz
OjpjeEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7Ci0gICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQo
U1ZHTmFtZXM6OmN5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7Ci0gICAgICAgIHNfbGVuZ3RoTW9k
ZU1hcC5zZXQoU1ZHTmFtZXM6OmR4QXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKLSAgICAgICAgc19s
ZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ZHlBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKLSAg
ICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6ZnhBdHRyLCBMZW5ndGhNb2RlV2lk
dGgpOwotICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpmeUF0dHIsIExlbmd0
aE1vZGVIZWlnaHQpOwotICAgICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjpyQXR0
ciwgTGVuZ3RoTW9kZU90aGVyKTsKLSAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1l
czo6d2lkdGhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOwotICAgICAgICBzX2xlbmd0aE1vZGVNYXAu
c2V0KFNWR05hbWVzOjpoZWlnaHRBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKLSAgICAgICAgc19s
ZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6eDFBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOwotICAg
ICAgICBzX2xlbmd0aE1vZGVNYXAuc2V0KFNWR05hbWVzOjp4MkF0dHIsIExlbmd0aE1vZGVXaWR0
aCk7Ci0gICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnkxQXR0ciwgTGVuZ3Ro
TW9kZUhlaWdodCk7Ci0gICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnkyQXR0
ciwgTGVuZ3RoTW9kZUhlaWdodCk7Ci0gICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFt
ZXM6OnJlZlhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOwotICAgICAgICBzX2xlbmd0aE1vZGVNYXAu
c2V0KFNWR05hbWVzOjpyZWZZQXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7Ci0gICAgICAgIHNfbGVu
Z3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6Om1hcmtlcldpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRo
KTsKLSAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNldChTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0
ciwgTGVuZ3RoTW9kZUhlaWdodCk7ICAgICAgICAKLSAgICAgICAgc19sZW5ndGhNb2RlTWFwLnNl
dChTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7Ci0gICAgICAgIHNf
bGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0ciwgTGVuZ3RoTW9kZVdp
ZHRoKTsKKyAgICBpZiAoc19sZW5ndGhNb2RlTWFwLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAg
ICBzX2xlbmd0aE1vZGVNYXAuZ2V0KCkuc2V0KFNWR05hbWVzOjp4QXR0ciwgTGVuZ3RoTW9kZVdp
ZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLmdldCgpLnNldChTVkdOYW1lczo6eUF0dHIs
IExlbmd0aE1vZGVIZWlnaHQpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuZ2V0KCkuc2V0KFNW
R05hbWVzOjpjeEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1h
cC5nZXQoKS5zZXQoU1ZHTmFtZXM6OmN5QXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAg
IHNfbGVuZ3RoTW9kZU1hcC5nZXQoKS5zZXQoU1ZHTmFtZXM6OmR4QXR0ciwgTGVuZ3RoTW9kZVdp
ZHRoKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLmdldCgpLnNldChTVkdOYW1lczo6ZHlBdHRy
LCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLmdldCgpLnNldChT
VkdOYW1lczo6ZnhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVN
YXAuZ2V0KCkuc2V0KFNWR05hbWVzOjpmeUF0dHIsIExlbmd0aE1vZGVIZWlnaHQpOworICAgICAg
ICBzX2xlbmd0aE1vZGVNYXAuZ2V0KCkuc2V0KFNWR05hbWVzOjpyQXR0ciwgTGVuZ3RoTW9kZU90
aGVyKTsKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLmdldCgpLnNldChTVkdOYW1lczo6d2lkdGhB
dHRyLCBMZW5ndGhNb2RlV2lkdGgpOworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuZ2V0KCkuc2V0
KFNWR05hbWVzOjpoZWlnaHRBdHRyLCBMZW5ndGhNb2RlSGVpZ2h0KTsKKyAgICAgICAgc19sZW5n
dGhNb2RlTWFwLmdldCgpLnNldChTVkdOYW1lczo6eDFBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOwor
ICAgICAgICBzX2xlbmd0aE1vZGVNYXAuZ2V0KCkuc2V0KFNWR05hbWVzOjp4MkF0dHIsIExlbmd0
aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5nZXQoKS5zZXQoU1ZHTmFtZXM6
OnkxQXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5nZXQo
KS5zZXQoU1ZHTmFtZXM6OnkyQXR0ciwgTGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVu
Z3RoTW9kZU1hcC5nZXQoKS5zZXQoU1ZHTmFtZXM6OnJlZlhBdHRyLCBMZW5ndGhNb2RlV2lkdGgp
OworICAgICAgICBzX2xlbmd0aE1vZGVNYXAuZ2V0KCkuc2V0KFNWR05hbWVzOjpyZWZZQXR0ciwg
TGVuZ3RoTW9kZUhlaWdodCk7CisgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5nZXQoKS5zZXQoU1ZH
TmFtZXM6Om1hcmtlcldpZHRoQXR0ciwgTGVuZ3RoTW9kZVdpZHRoKTsKKyAgICAgICAgc19sZW5n
dGhNb2RlTWFwLmdldCgpLnNldChTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0ciwgTGVuZ3RoTW9k
ZUhlaWdodCk7ICAgICAgICAKKyAgICAgICAgc19sZW5ndGhNb2RlTWFwLmdldCgpLnNldChTVkdO
YW1lczo6dGV4dExlbmd0aEF0dHIsIExlbmd0aE1vZGVXaWR0aCk7CisgICAgICAgIHNfbGVuZ3Ro
TW9kZU1hcC5nZXQoKS5zZXQoU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0ciwgTGVuZ3RoTW9kZVdp
ZHRoKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHNfbGVuZ3RoTW9kZU1hcC5jb250YWlucyhhdHRy
TmFtZSkpCi0gICAgICAgIHJldHVybiBzX2xlbmd0aE1vZGVNYXAuZ2V0KGF0dHJOYW1lKTsKKyAg
ICBpZiAoc19sZW5ndGhNb2RlTWFwLmdldCgpLmNvbnRhaW5zKGF0dHJOYW1lKSkKKyAgICAgICAg
cmV0dXJuIHNfbGVuZ3RoTW9kZU1hcC5nZXQoKS5nZXQoYXR0ck5hbWUpOwogICAgIAogICAgIHJl
dHVybiBMZW5ndGhNb2RlT3RoZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNw
cAppbmRleCBjYzQ4NzQwZmNlMTRlZTI3NDMxYmM4MjQzZGE2Yjg4MDdjZGQ3Mzc0Li5kYjA4YzEx
ZmFlYzMwNzY5ODJiYjA3OGIzOTc3M2EyNzE3YjI4N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50SW5z
dGFuY2UuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTY1LDE2ICs2NiwxNiBAQCBQYXNzUmVmUHRyPFNWR0xpbmVFbGVtZW50PiBTVkdMaW5lRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsCiAKIGJvb2wgU1ZHTGlu
ZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OngxQXR0
cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4MkF0dHIpOwot
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eTFBdHRyKTsKLSAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnkyQXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp4MUF0dHIpOworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eDJBdHRyKTsKKyAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnkxQXR0cik7CisgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp5MkF0dHIpOwogICAgIH0K
LSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAK
IHZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDlkOWYxMzFhM2Q3ZTJiYWIxZWFj
OTc4ZTBjZDg2MGE3YjVlNWNjMWUuLmUwMGZkODY5ZjVlNzBhYzU2ZjZlYWIwZWQ4NDIxNzQ4MGU5
Yzc0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmgiCiAjaW5j
bHVkZSAiU1ZHVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgIlNWR1VuaXRUeXBlcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTcxLDE0ICs3MiwxNCBAQCBQYXNzUmVmUHRyPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbAogCiBib29sIFNWR0xpbmVh
ckdyYWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OngxQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjp4MkF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6eTFBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OnkyQXR0cik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0
KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNW
R05hbWVzOjp4MUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6eDJBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQo
U1ZHTmFtZXM6OnkxQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRk
KFNWR05hbWVzOjp5MkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAppbmRleCBi
ZGY2MzFlYWQxYmEyMmY4Y2NjNGFlM2M1OTg0MGZiMGE1OTVmMDgyLi5kOWI5MjA0MDBkMmIzZjcx
ZmNkNGJhMzZkNmQwYjkxY2E2Mjc3NjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTVBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVt
ZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVk
ZSAiU1ZHUGF0aEVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA0LDEy
ICsxMDUsMTIgQEAgdm9pZCBTVkdNUGF0aEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5v
ZGUmIHJvb3RQYXJlbnQpCiAKIGJvb2wgU1ZHTVBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgeworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkg
ewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9y
dGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFk
ZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29u
dGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBT
VkdNUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5jcHAKaW5kZXggNzY0NDNjODM4MGM3ZGJjOTlkMTI0ZTllMTg2OGVjY2ZjODJmMGM2Ny4u
Nzg2ZGY2MDU1ZThmNGViMTNkMDAzMDQzYjU0ZTNmZWY2ZGVjNmQ1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNW
R0ZpdFRvVmlld0JveC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZH
RWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgCkBAIC0xMDksMTkgKzExMCwxOSBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTWFy
a2VyRWxlbWVudDo6dmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0
CiAKIGJvb2wgU1ZHTWFya2VyRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZH
TGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwog
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdGaXRUb1ZpZXdCb3g6OmFkZFN1
cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjptYXJrZXJVbml0c0F0dHIpOwotICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cmVmWEF0dHIpOwotICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cmVmWUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWFya2VyV2lkdGhBdHRyKTsKLSAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om1hcmtlckhlaWdodEF0dHIpOwotICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6b3JpZW50QXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjptYXJrZXJVbml0c0F0dHIpOwor
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6cmVmWEF0dHIp
OworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6cmVmWUF0
dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6bWFy
a2VyV2lkdGhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZH
TmFtZXM6Om1hcmtlckhlaWdodEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6b3JpZW50QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0
cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdNYXJrZXJFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXgg
NDY4MjE4ZjFiMDY0MDgwOGEwZTVkYTkxZTQ0NTViOTlhODJhNWE5OS4uMWIyYzFlZjA0OTg1ODk4
YTVhODdmZWNlNDJhMDA1YmQ5NmM2ZTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgog
I2luY2x1ZGUgIlNWR1VuaXRUeXBlcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC03NywxOSArNzgsMTkgQEAgUGFzc1JlZlB0cjxTVkdNYXNrRWxlbWVudD4gU1ZHTWFza0VsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAogCiBib29sIFNWR01hc2tF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkgeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1
YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjph
ZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRl
ZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
bWFza1VuaXRzQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjptYXNrQ29udGVudFVuaXRzQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjp4QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjp5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3
aWR0aEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVp
Z2h0QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVz
OjptYXNrVW5pdHNBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQo
U1ZHTmFtZXM6Om1hc2tDb250ZW50VW5pdHNBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICB9Ci0gICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250
YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNW
R01hc2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5j
cHAKaW5kZXggY2ZmNGJkODc2NjA3OTNlZTkwMDI0YTMxODY2Zjk5NTY3ZmM2MzNmNS4uOWU0MWYz
MmI3ZmU4ZmRkMWY5ODYwZTE4MGY1MjAxZjg5MjMzODkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEVsZW1lbnQuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ01v
dmV0b1JlbC5oIgogI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdT
VkdFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMjEzLDE0ICsyMTQsMTQgQEAgUGFzc1JlZlB0cjxTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbD4gU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZVNWR1BhdGhT
ZWcKIAogYm9vbCBTVkdQYXRoRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZH
TGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwog
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6ZEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6cGF0aExlbmd0aEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmFkZChTVkdOYW1lczo6ZEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmFkZChTVkdOYW1lczo6cGF0aExlbmd0aEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5h
bWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVy
bkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcApp
bmRleCAxMWVjOWEyYTdiMmM5MmUxOWU2YWQ3OGFkMWZhMDA2OTc0YThjYTA0Li40ZThmMzk2OWVl
OWQyODUzYmViMzBlZWYzM2Q5MjY2ODFhYmVkMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTVkdTVkdFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZS5oIgogI2luY2x1ZGUgIlhMaW5rTmFt
ZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC05MSwyMiArOTIsMjIgQEAgUGFzc1JlZlB0cjxTVkdQYXR0ZXJuRWxlbWVudD4g
U1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKIAogYm9v
bCBTVkdQYXR0ZXJuRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhh
c2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAo
c3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAo
c3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVVJJUmVm
ZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRl
ZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdGaXRU
b1ZpZXdCb3g6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0g
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwYXR0ZXJuVW5pdHNBdHRy
KTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnBhdHRlcm5Db250
ZW50VW5pdHNBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OnBhdHRlcm5UcmFuc2Zvcm1BdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQo
U1ZHTmFtZXM6OnhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnlBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Ondp
ZHRoQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWln
aHRBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6
OnBhdHRlcm5Vbml0c0F0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFk
ZChTVkdOYW1lczo6cGF0dGVybkNvbnRlbnRVbml0c0F0dHIpOworICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6cGF0dGVyblRyYW5zZm9ybUF0dHIpOworICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eEF0dHIpOworICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6eUF0dHIpOworICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsK
KyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0
dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAppbmRleCBkOTYwMWQ5NGIzZjY2NzlhYWM0NzZlOWFh
ZWJiZmVkMzBmMGM5ZjZjLi44NjQyMmVkZTVlMmZkYzA5MWEzZDk4YTM0NjgwMjE2ODk2NmJlM2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgog
I2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY1LDEzICs2NiwxMyBAQCBTVkdQ
b2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogCiBib29sIFNWR1BvbHlFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHko
KSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9y
dGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFk
ZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwb2ludHNBdHRyKTsKKyAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnBvaW50c0F0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgp
LmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZv
aWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDIxM2RiMjYxNDYzZjNiYzYxOTAzZDc1
NmRlNzZkNjFmNjM5NDc0OTAuLmNlMjY0ZTdhNGYzNjQwMWM1NTNkMzM5M2FmYjcyNzZjZDBiMGQ3
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmgiCiAjaW5jbHVk
ZSAiU1ZHVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgIlNWR1VuaXRUeXBlcy5oIgorI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc3
LDE2ICs3OCwxNiBAQCBQYXNzUmVmUHRyPFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudD4gU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbAogCiBib29sIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9y
dGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmN4QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpjeUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6ZnhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZ5
QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyQXR0cik7
Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpmckF0dHIpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkg
eworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6Y3hBdHRy
KTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmN5QXR0
cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpmeEF0
dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6ZnlB
dHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnJB
dHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmZy
QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCA4OWU2YjI5N2RhMWZmZmY1
ZGE5OTJhM2M2ZGQ3NTRkYzk2ZDI5MjE5Li41OGY3ZWUxYTMzODY5MTQ5ZWU5NDdjNGQ1MDJlNzZk
YmNmMDk3YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNsdWRlICJTVkdM
ZW5ndGguaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcxLDE4ICs3MiwxOCBAQCBQYXNz
UmVmUHRyPFNWR1JlY3RFbGVtZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsCiAKIGJvb2wgU1ZHUmVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLCAoKSk7Ci0gICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRl
ZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgp
KSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0
ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRk
U3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnJ4QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpyeUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6eEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6eUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChT
VkdOYW1lczo6d2lkdGhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5h
ZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6cnhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5n
ZXQoKS5hZGQoU1ZHTmFtZXM6OnJ5QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdSZWN0RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCAz
NTI3MTU4NDA0ZjM2OTgyMGU5ODViNzU2MGNhNmY5NzJhMTgzODhhLi4wYzMxYTY4ZTMxYjg2Yjk0
NGQ4OTNhNmFiODY4ZDMyMzQ5NWFjODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFuY2UuaCIKICNpbmNs
dWRlICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsMTQgKzU4LDE0IEBAIFBhc3NSZWZQdHI8U1ZHU2Ny
aXB0RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hCiAKIGJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgp
KTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRl
czsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6dHlwZUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChIVE1MTmFtZXM6Om9uZXJyb3JBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5nZXQoKS5hZGQoSFRNTE5hbWVzOjpvbmVycm9yQXR0cik7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29u
dGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBT
VkdTY3JpcHRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5jcHAKaW5kZXggZmU5NGExZjE0MzczZDQ3YWUxMDhlYTc4ZDcxMzQ3YzA5YjZmYTk4Yi4uZDRi
YWZlMGI4M2RiZWRmNzEzMGE5YmQxMDAzNWZkZWUyZjlmYjY0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHR3JhZGllbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01NCwxMCArNTUsMTAgQEAgUGFzc1JlZlB0cjxTVkdTdG9wRWxlbWVu
dD4gU1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAog
CiBib29sIFNWR1N0b3BFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlm
IChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6Om9mZnNldEF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRl
ZEF0dHJpYnV0ZXM7CisgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgp
KQorICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6b2Zmc2V0
QXR0cik7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTdG9wRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKaW5k
ZXggNDFiMWEwYWZmYTFhODk3MTg5MzAzOGI3ZjkxMmU3ODAyZGExMGI0YS4uNGZjNDFkMzMyYmFk
MGYzMzNjZTRhNzc1NWNlNDgyZDI5YTEwZmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxl
RWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTcsMTQgKzk4LDE0IEBAIHZvaWQgU1ZHU3R5bGVFbGVt
ZW50OjpzZXRUaXRsZShjb25zdCBBdG9taWNTdHJpbmcmIHRpdGxlLCBFeGNlcHRpb25Db2RlJikK
IAogYm9vbCBTVkdTdHlsZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0gICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7CisgICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xh
bmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRpdGxlQXR0cik7Ci0gICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjptZWRpYUF0dHIpOwotICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dHlwZUF0dHIpOworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6dGl0bGVBdHRyKTsKKyAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6Om1lZGlhQXR0cik7Cisg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp0eXBlQXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKaW5kZXggNDlmNTk3NDQwOTM4OGYzNDEyMmQxNjEwN2Fm
ZTI4Y2I3ZDk1YTliZi4uZTk3MjM1OWJjNjk5ZmZlNmQ2MTljYmIyZTJjOTQ1YWVkZWUyMWVkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmll
d0JveC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsMTMgKzU1LDEzIEBAIFBhc3NS
ZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hCiAKIGJvb2wgU1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKLSAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9y
dGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5
KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjph
ZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdG
aXRUb1ZpZXdCb3g6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdTeW1ib2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggYzViOGVhMDlmYzM5NDgxYjA4OWE4MzNmZTMzODc0
ODU0MmRmYjQ0MS4uNWEzZDM1NDhlYTFlNzA0ZTQ3NzkwMTRhYTg1N2I5NWYxY2ZmZTgxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlhMaW5rTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xNzksMTAgKzE4MCwxMCBAQCB2b2lkIFNWR1RSZWZFbGVtZW50
OjpkZXRhY2hUYXJnZXQoKQogCiBib29sIFNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0
cmlidXRlczsKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpCiAg
ICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRB
dHRyaWJ1dGVzKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1Rlc3RzLmNwcAppbmRleCBmNDczMDVlZTc1ZWY0ODk2ODAwZjQ2MTQxYWE3Njk5NjNmYjg2ZDQy
Li4zMjUxMTQxYWU5OGRjNDVkMmVlZGFjYWYyYThiZjIwMTk5MjZjNWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXN0cy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTdHJpbmdMaXN0LmgiCisjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoTUFUSE1MKQogI2luY2x1ZGUg
Ik1hdGhNTE5hbWVzLmgiCkBAIC04OSwxMiArOTAsMTIgQEAgU1ZHVGVzdHM6OlNWR1Rlc3RzKCkK
IAogU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCYgU1ZHVGVzdHM6OmF0dHJpYnV0ZVRvUHJvcGVy
dHlNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTVkdBdHRyaWJ1
dGVUb1Byb3BlcnR5TWFwLCBtYXAsICgpKTsKLSAgICBpZiAoIW1hcC5pc0VtcHR5KCkpCisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXA+IG1hcDsKKyAg
ICBpZiAoIW1hcC5nZXQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtYXA7Ci0gICAgbWFw
LmFkZFByb3BlcnR5KHJlcXVpcmVkRmVhdHVyZXNQcm9wZXJ0eUluZm8oKSk7Ci0gICAgbWFwLmFk
ZFByb3BlcnR5KHJlcXVpcmVkRXh0ZW5zaW9uc1Byb3BlcnR5SW5mbygpKTsKLSAgICBtYXAuYWRk
UHJvcGVydHkoc3lzdGVtTGFuZ3VhZ2VQcm9wZXJ0eUluZm8oKSk7CisgICAgbWFwLmdldCgpLmFk
ZFByb3BlcnR5KHJlcXVpcmVkRmVhdHVyZXNQcm9wZXJ0eUluZm8oKSk7CisgICAgbWFwLmdldCgp
LmFkZFByb3BlcnR5KHJlcXVpcmVkRXh0ZW5zaW9uc1Byb3BlcnR5SW5mbygpKTsKKyAgICBtYXAu
Z2V0KCkuYWRkUHJvcGVydHkoc3lzdGVtTGFuZ3VhZ2VQcm9wZXJ0eUluZm8oKSk7CiAgICAgcmV0
dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcAppbmRleCAzZjlhMmYyZDEzZDExNjQyNTNhMzU2OGI3M2ZiMjc1NjU2OTE1ODI0Li4yMDdl
NzFiYWZlOTU3YTA4M2Q2ODI2ODYxYzY1ZmRhNzQzODY4YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHVGV4dFF1ZXJ5LmgiCiAjaW5jbHVkZSAiWE1M
TmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogIApAQCAtOTEsNyArOTIsNyBAQCBQYXNzUmVmUHRyPFNWR0FuaW1hdGVkUHJvcGVy
dHk+IFNWR1RleHRDb250ZW50RWxlbWVudDo6bG9va3VwT3JDcmVhdGVUZXh0TGVuZ3RoVwogCiBQ
YXNzUmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoPiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRM
ZW5ndGhBbmltYXRlZCgpCiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNW
R0xlbmd0aCwgZGVmYXVsdFRleHRMZW5ndGgsIChMZW5ndGhNb2RlT3RoZXIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8U1ZHTGVuZ3RoPiBkZWZhdWx0VGV4dExlbmd0aChMZW5ndGhNb2Rl
T3RoZXIpOwogICAgIGlmIChtX3NwZWNpZmllZFRleHRMZW5ndGggPT0gZGVmYXVsdFRleHRMZW5n
dGgpCiAgICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExl
bmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVkVGV4dExlbmd0aCgpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIApAQCAtMjA5LDE0ICsyMTAsMTQgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6
OnNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBjaGFybnVtLCB1bnNpZ25lZCBuY2hhcnMsIEUKIAog
Ym9vbCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0g
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7Cisg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6Omxlbmd0aEFkanVzdEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6bGVuZ3RoQWRqdXN0QXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cik7CiAg
ICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogYm9vbCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDM2NTg0YjNiYmU3ZGUzYmZiMThiMDNkNWNjNjNhYWE0
ODM4M2FlYTIuLmM2ZTY2ZDIyNDRkNDhmOTM4NTdmMmFkMGQzYjdmMmI4ZDFkOGNiYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
ICNpbmNsdWRlICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzEsMTQgKzcyLDE0IEBAIHZvaWQgU1ZHVGV4
dFBhdGhFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiAKIGJvb2wgU1ZHVGV4dFBh
dGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOworICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFk
ZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHIpOwotICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWV0aG9kQXR0cik7Ci0gICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzcGFjaW5nQXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHIpOwor
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6bWV0aG9kQXR0
cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpzcGFj
aW5nQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
PFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKaW5k
ZXggMTJiNjMyMjc5ZmI2YmIxN2RjMTI1Zjk3ZGRjMDU1YjU1ZDExNmRmNC4uNzNjZTQzNWI2NTc5
YmZmYTNhODA2ODY4YjAzZjE4OWU1Njg1YzgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1
ZGUgIlNWR0xlbmd0aExpc3QuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNW
R051bWJlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01NSwxNSArNTYsMTUgQEAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW0KIAogYm9vbCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRl
cywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eEF0dHIpOwotICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OmR5QXR0cik7Ci0gICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjpyb3RhdGVBdHRyKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFz
aFNldDxRdWFsaWZpZWROYW1lPj4gc3VwcG9ydGVkQXR0cmlidXRlczsKKyAgICBpZiAoc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmR4QXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjpkeUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmdldCgpLmFkZChTVkdOYW1lczo6cm90YXRlQXR0cik7CiAgICAgfQotICAgIHJldHVy
biBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCmluZGV4IGJhYTcxNzU3M2ExYjA3MWE0NTk0NzY1YTFkNTZkODdhMThkMWIyNjgu
LjhkNGMzYjE1ZGRkYmY3YTI3YWQ3YjgxNzkzZTcwZmViMDRmODk0YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKIAogLy8gRHVtcCB0aGUgZGVl
cC1leHBhbmRlZCBzaGFkb3cgdHJlZSAod2hlcmUgdGhlIHJlbmRlcmVycyBhcmUgYnVpbHQgZnJv
bSkKIC8vICNkZWZpbmUgRFVNUF9TSEFET1dfVFJFRQorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyOSwxNyArMTMwLDE3IEBAIFNW
R0VsZW1lbnRJbnN0YW5jZSogU1ZHVXNlRWxlbWVudDo6YW5pbWF0ZWRJbnN0YW5jZVJvb3QoKSBj
b25zdAogCiBib29sIFNWR1VzZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Ci0g
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4+IHN1cHBvcnRlZEF0dHJpYnV0ZXM7Cisg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eEF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6eUF0dHIpOwotICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKLSAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6eEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6eUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdl
dCgpLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHVXNlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKQEAgLTMzNCwzMSArMzM1LDMxIEBAIHN0YXRpYyBib29sIGlzRGlz
YWxsb3dlZEVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICBpZiAoIWVsZW1lbnQu
aXNTVkdFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGFsbG93ZWRFbGVtZW50
VGFncywgKCkpOwotICAgIGlmIChhbGxvd2VkRWxlbWVudFRhZ3MuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGFsbG93ZWRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmFUYWcpOwotICAgICAgICBhbGxv
d2VkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpjaXJjbGVUYWcpOwotICAgICAgICBhbGxvd2Vk
RWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpkZXNjVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1l
bnRUYWdzLmFkZChTVkdOYW1lczo6ZWxsaXBzZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50
VGFncy5hZGQoU1ZHTmFtZXM6OmdUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuYWRk
KFNWR05hbWVzOjppbWFnZVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5hZGQoU1ZH
TmFtZXM6OmxpbmVUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVz
OjptZXRhZGF0YVRhZyk7Ci0gICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6
OnBhdGhUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpwb2x5
Z29uVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6cG9seWxp
bmVUYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpyZWN0VGFn
KTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6c3ZnVGFnKTsKLSAg
ICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6c3dpdGNoVGFnKTsKLSAgICAg
ICAgYWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6c3ltYm9sVGFnKTsKLSAgICAgICAg
YWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6dGV4dFRhZyk7Ci0gICAgICAgIGFsbG93
ZWRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OnRleHRQYXRoVGFnKTsKLSAgICAgICAgYWxsb3dl
ZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6dGl0bGVUYWcpOwotICAgICAgICBhbGxvd2VkRWxl
bWVudFRhZ3MuYWRkKFNWR05hbWVzOjp0cmVmVGFnKTsKLSAgICAgICAgYWxsb3dlZEVsZW1lbnRU
YWdzLmFkZChTVkdOYW1lczo6dHNwYW5UYWcpOwotICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3Mu
YWRkKFNWR05hbWVzOjp1c2VUYWcpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFF1YWxpZmllZE5hbWU+PiBhbGxvd2VkRWxlbWVudFRhZ3M7CisgICAgaWYgKGFsbG93ZWRFbGVt
ZW50VGFncy5nZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdl
dCgpLmFkZChTVkdOYW1lczo6YVRhZyk7CisgICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQo
KS5hZGQoU1ZHTmFtZXM6OmNpcmNsZVRhZyk7CisgICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5n
ZXQoKS5hZGQoU1ZHTmFtZXM6OmRlc2NUYWcpOworICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3Mu
Z2V0KCkuYWRkKFNWR05hbWVzOjplbGxpcHNlVGFnKTsKKyAgICAgICAgYWxsb3dlZEVsZW1lbnRU
YWdzLmdldCgpLmFkZChTVkdOYW1lczo6Z1RhZyk7CisgICAgICAgIGFsbG93ZWRFbGVtZW50VGFn
cy5nZXQoKS5hZGQoU1ZHTmFtZXM6OmltYWdlVGFnKTsKKyAgICAgICAgYWxsb3dlZEVsZW1lbnRU
YWdzLmdldCgpLmFkZChTVkdOYW1lczo6bGluZVRhZyk7CisgICAgICAgIGFsbG93ZWRFbGVtZW50
VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6Om1ldGFkYXRhVGFnKTsKKyAgICAgICAgYWxsb3dlZEVs
ZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6cGF0aFRhZyk7CisgICAgICAgIGFsbG93ZWRF
bGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnBvbHlnb25UYWcpOworICAgICAgICBhbGxv
d2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpwb2x5bGluZVRhZyk7CisgICAgICAg
IGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnJlY3RUYWcpOworICAgICAg
ICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpzdmdUYWcpOworICAgICAg
ICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpzd2l0Y2hUYWcpOworICAg
ICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjpzeW1ib2xUYWcpOwor
ICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0ZXh0VGFnKTsK
KyAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmFkZChTVkdOYW1lczo6dGV4dFBhdGhU
YWcpOworICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0aXRs
ZVRhZyk7CisgICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6OnRy
ZWZUYWcpOworICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuZ2V0KCkuYWRkKFNWR05hbWVzOjp0
c3BhblRhZyk7CisgICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5nZXQoKS5hZGQoU1ZHTmFtZXM6
OnVzZVRhZyk7CiAgICAgfQotICAgIHJldHVybiAhYWxsb3dlZEVsZW1lbnRUYWdzLmNvbnRhaW5z
PFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihlbGVtZW50LnRhZ1FOYW1lKCkpOworICAgIHJl
dHVybiAhYWxsb3dlZEVsZW1lbnRUYWdzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihlbGVtZW50LnRhZ1FOYW1lKCkpOwogfQogCiBzdGF0aWMgYm9vbCBzdWJ0cmVl
Q29udGFpbnNEaXNhbGxvd2VkRWxlbWVudChTVkdFbGVtZW50JiBzdGFydCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuY3BwCmluZGV4IDk3NGY5ODFiMTIyYWJhZThhNzYzZTBkNDNlNGIy
ODY5M2I5MDgwZjkuLjA1NjczZTAzZjIyZGQ0YmMwMzA0N2E0YTIzMjA4MWVmODA3MTI3MjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUg
IlNWR1pvb21BbmRQYW4uaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NywxNCArNTgsMTQgQEAgUGFzc1JlZlB0cjxTVkdWaWV3
RWxlbWVudD4gU1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLAogCiBib29sIFNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwot
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgeworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxIYXNoU2V0PFF1YWxpZmllZE5hbWU+PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzOwor
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmlzRW1wdHkoKSkgewogICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdGaXRUb1ZpZXdCb3g6OmFkZFN1cHBvcnRlZEF0
dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR1pvb21BbmRQYW46OmFk
ZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cik7CisgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuZ2V0KCkuYWRkKFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cik7CiAg
ICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogdm9pZCBTVkdWaWV3RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
</data>
<flag name="review"
          id="255405"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>