<?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>226467</bug_id>
          
          <creation_ts>2021-05-31 06:04:32 -0700</creation_ts>
          <short_desc>Rename presentationAttributeStyle to presentationalHintStyle to match spec language</short_desc>
          <delta_ts>2021-05-31 08:04:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=217529</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbarton</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765395</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-31 06:04:32 -0700</bug_when>
    <thetext>https://html.spec.whatwg.org/#presentational-hints</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765400</commentid>
    <comment_count>1</comment_count>
      <attachid>430201</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-31 06:11:53 -0700</bug_when>
    <thetext>Created attachment 430201
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765406</commentid>
    <comment_count>2</comment_count>
      <attachid>430203</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-31 06:34:43 -0700</bug_when>
    <thetext>Created attachment 430203
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765414</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-31 08:03:02 -0700</bug_when>
    <thetext>Committed r278277 (238314@main): &lt;https://commits.webkit.org/238314@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430203.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765415</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-31 08:04:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78688361&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430201</attachid>
            <date>2021-05-31 06:11:53 -0700</date>
            <delta_ts>2021-05-31 06:34:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>presentational-hints.patch</filename>
            <type>text/plain</type>
            <size>146535</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxN2M3YTgyOWE3MzAuLmQ2ODg0ZWQzOTJmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2OSBAQAorMjAyMS0wNS0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlIHRvIHByZXNl
bnRhdGlvbmFsSGludFN0eWxlIHRvIG1hdGNoIHNwZWMgbGFuZ3VhZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjQ2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MIHNwZWNpZmljYXRpb24g
Y2FsbHMgdGhlc2UgInByZXNlbnRhdGlvbiBoaW50cyIsIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvI3ByZXNlbnRhdGlvbmFsLWhpbnRzLgorCisgICAgICAgICogZG9tL0F0dHIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXR0cjo6c3R5bGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50
KToKKyAgICAgICAgKiBkb20vRWxlbWVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVhYmxlRWxlbWVudERhdGE6OlNoYXJlYWJsZUVsZW1lbnREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlVuaXF1ZUVsZW1lbnREYXRhOjpVbmlxdWVFbGVtZW50RGF0YSk6CisgICAgICAgICogZG9t
L0VsZW1lbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6cHJlc2VudGF0
aW9uYWxIaW50U3R5bGVJc0RpcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRE
YXRhOjpzZXRQcmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudERhdGE6OnByZXNlbnRhdGlvbmFsSGludFN0eWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlz
RGlydHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6OnNl
dFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVkRWxlbWVudDo6cmVidWlsZFByZXNlbnRhdGlvbmFsSGludFN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25h
bEhpbnRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpyZWJ1aWxkUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVkRWxlbWVudDo6YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVkRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbmFs
SGludFN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6Omhhc1By
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVkRWxlbWVudDo6cHJlc2VudGF0aW9uYWxIaW50U3R5bGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0
eWxlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpwcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MQlJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCUkVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFs
SGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJSRWxlbWVu
dDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEJSRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQm9keUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVs
ZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEJ1dHRvbkVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRGl2RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpdkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6OmFwcGx5Qm9yZGVyQXR0cmlidXRlVG9TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRWxlbWVudDo6bWFwTGFuZ3VhZ2VBdHRyaWJ1dGVUb0xvY2FsZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6
OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RWxlbWVudDo6YWRkSFRNTExlbmd0aFRvU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxGb250RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9udEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEZvbnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9udEVsZW1lbnQ6Omlz
UHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxGb250RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxGb250RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVT
ZXRFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1l
bnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSFJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxIUkVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEhSRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEhSRWxlbWVudDo6aXNQcmVz
ZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEhSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL0hUTUxIUkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50Ojpo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJRnJhbWVFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFt
ZUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVs
ZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omhhc1By
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMSUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExJRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTElFbGVt
ZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTElFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTElFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTExJRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQ6OmNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNYXJxdWVlRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1hcnF1ZWVFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1h
cnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPTGlzdEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE9MaXN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPTGlz
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojpj
b2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MT2JqZWN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJhZ3JhcGhF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgor
ICAgICAgICAqIGh0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxQbHVnSW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50
OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6aXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0
ZWQuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTFByZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByZUVsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFByZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcmVFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJlRWxlbWVudDo6
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBodG1sL0hUTUxQcmVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aGFzUHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNhcHRpb25F
bGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGFibGVDYXB0aW9uRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNhcHRp
b25FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxs
RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25h
bEhpbnRTdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVu
dDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVu
dDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MVGFibGVDb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNvbEVs
ZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudDo6
YWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUYWJsZUNvbEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNvbEVsZW1lbnQ6OmNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGFibGVDb2xFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVs
ZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRhYmxlRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUYWJsZVBhcnRFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGFibGVQYXJ0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVGFi
bGVQYXJ0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmFkZGl0aW9u
YWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGFibGVTZWN0aW9uRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRBcmVhRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojph
ZGp1c3RJbm5lclRleHRTdHlsZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVUxpc3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxVTGlzdEVsZW1lbnQ6Omhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFVM
aXN0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFVMaXN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFVMaXN0RWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBo
dG1sL0hUTUxVTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6Y29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
SFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yQXR0cmlidXRlc1N0eWxlKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTEVsZW1l
bnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1hdGhNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogbWF0aG1sL01hdGhNTEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoQWxsUnVsZXMp
OgorICAgICAgICAqIHN0eWxlL01hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6TWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlOjpzd2VlcCk6CisgICAg
ICAgICogc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5nUmVzb2x2ZXI6OnNoYXJpbmdDYW5kaWRh
dGVIYXNJZGVudGljYWxTdHlsZUFmZmVjdGluZ0F0dHJpYnV0ZXMgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NpcmNsZUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29sbGVj
dFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRWxlbWVudDo6aW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmludmFsaWRhdGVTVkdQcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2
Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXR0ZXJuRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR1JlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1RleHRDb250ZW50RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojpj
b2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6aW52YWxpZGF0
ZVN0eWxlKToKKwogMjAyMS0wNS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNob3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tpbmcg
b24gZGF0YSBkZXRlY3Rpb24gcmVzdWx0cyBpbiBpbWFnZSBvdmVybGF5cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3Bw
CmluZGV4IDJlOTk0MGEzOGJmZS4uOGMwYWU4MDQ5Yjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCkBAIC0x
MTIsNyArMTEyLDcgQEAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogQXR0cjo6c3R5bGUoKQogICAgIGlm
ICghaXM8U3R5bGVkRWxlbWVudD4obV9lbGVtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgbV9zdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwotICAgIGRv
d25jYXN0PFN0eWxlZEVsZW1lbnQ+KCptX2VsZW1lbnQpLmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKCksIHZhbHVlKCksICptX3N0eWxlKTsKKyAgICBk
b3duY2FzdDxTdHlsZWRFbGVtZW50PigqbV9lbGVtZW50KS5jb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKCksIHZhbHVlKCksICptX3N0eWxlKTsKICAg
ICByZXR1cm4gJm1fc3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDBhNTI4ZWJiNzVmMi4uYjQyNmQyNjZhMmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC00Mzg3LDcgKzQzODcsNyBAQCB2b2lkIEVsZW1lbnQ6OmNsb25l
QXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVyKQogICAgIC8vIElmICdv
dGhlcicgaGFzIGEgbXV0YWJsZSBFbGVtZW50RGF0YSwgY29udmVydCBpdCB0byBhbiBpbW11dGFi
bGUgb25lIHNvIHdlIGNhbiBzaGFyZSBpdCBiZXR3ZWVuIGJvdGggZWxlbWVudHMuCiAgICAgLy8g
V2UgY2FuIG9ubHkgZG8gdGhpcyBpZiB0aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyIGZvciBvdGhl
cidzIGlubGluZSBzdHlsZSwgYW5kIHRoZXJlIGFyZSBubyBwcmVzZW50YXRpb24gYXR0cmlidXRl
cy4KICAgICBpZiAoaXM8VW5pcXVlRWxlbWVudERhdGE+KCpvdGhlci5tX2VsZW1lbnREYXRhKQot
ICAgICAgICAmJiAhb3RoZXIubV9lbGVtZW50RGF0YS0+cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoKQorICAgICAgICAmJiAhb3RoZXIubV9lbGVtZW50RGF0YS0+cHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoKQogICAgICAgICAmJiAoIW90aGVyLm1fZWxlbWVudERhdGEtPmlubGluZVN0eWxlKCkg
fHwgIW90aGVyLm1fZWxlbWVudERhdGEtPmlubGluZVN0eWxlKCktPmhhc0NTU09NV3JhcHBlcigp
KSkKICAgICAgICAgY29uc3RfY2FzdDxFbGVtZW50Jj4ob3RoZXIpLm1fZWxlbWVudERhdGEgPSBk
b3duY2FzdDxVbmlxdWVFbGVtZW50RGF0YT4oKm90aGVyLm1fZWxlbWVudERhdGEpLm1ha2VTaGFy
ZWFibGVDb3B5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuY3BwCmluZGV4IGJlZDZmM2Nh
ZTMzNC4uYjcwM2FlZmFlYTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5jcHAKQEAgLTk1
LDcgKzk1LDcgQEAgU2hhcmVhYmxlRWxlbWVudERhdGE6On5TaGFyZWFibGVFbGVtZW50RGF0YSgp
CiBTaGFyZWFibGVFbGVtZW50RGF0YTo6U2hhcmVhYmxlRWxlbWVudERhdGEoY29uc3QgVW5pcXVl
RWxlbWVudERhdGEmIG90aGVyKQogICAgIDogRWxlbWVudERhdGEob3RoZXIsIGZhbHNlKQogewot
ICAgIEFTU0VSVCghb3RoZXIubV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSk7CisgICAgQVNT
RVJUKCFvdGhlci5tX3ByZXNlbnRhdGlvbmFsSGludFN0eWxlKTsKIAogICAgIGlmIChvdGhlci5t
X2lubGluZVN0eWxlKSB7CiAgICAgICAgIEFTU0VSVCghb3RoZXIubV9pbmxpbmVTdHlsZS0+aGFz
Q1NTT01XcmFwcGVyKCkpOwpAQCAtMTMxLDcgKzEzMSw3IEBAIFVuaXF1ZUVsZW1lbnREYXRhOjpV
bmlxdWVFbGVtZW50RGF0YSgpCiAKIFVuaXF1ZUVsZW1lbnREYXRhOjpVbmlxdWVFbGVtZW50RGF0
YShjb25zdCBVbmlxdWVFbGVtZW50RGF0YSYgb3RoZXIpCiAgICAgOiBFbGVtZW50RGF0YShvdGhl
ciwgdHJ1ZSkKLSAgICAsIG1fcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUob3RoZXIubV9wcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZSkKKyAgICAsIG1fcHJlc2VudGF0aW9uYWxIaW50U3R5bGUo
b3RoZXIubV9wcmVzZW50YXRpb25hbEhpbnRTdHlsZSkKICAgICAsIG1fYXR0cmlidXRlVmVjdG9y
KG90aGVyLm1fYXR0cmlidXRlVmVjdG9yKQogewogICAgIGlmIChvdGhlci5tX2lubGluZVN0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAppbmRleCBhNDU0OTk5ZjkxOGEuLjEwNTQwOWZkOTg0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREYXRhLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0SWRGb3JTdHlsZVJlc29sdXRpb24oY29uc3QgQXRvbVN0cmluZyYgbmV3SWQp
IGNvbnN0IHsgbV9pZEZvclN0eWxlUmVzb2x1dGlvbiA9IG5ld0lkOyB9CiAKICAgICBjb25zdCBT
dHlsZVByb3BlcnRpZXMqIGlubGluZVN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVTdHls
ZS5nZXQoKTsgfQotICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGUoKSBjb25zdDsKKyAgICBjb25zdCBTdHlsZVByb3BlcnRpZXMqIHByZXNlbnRhdGlv
bmFsSGludFN0eWxlKCkgY29uc3Q7CiAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbGVuZ3RoKCk7IH0KQEAgLTEyOCw3ICsx
MjgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdDb3VudCA9
IDU7CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxhZ0lzVW5pcXVlID0gMTsKICAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnSGFzTmFtZUF0dHJpYnV0ZSA9IDEgPDwgMTsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJ
c0RpcnR5ID0gMSA8PCAyOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdQcmVzZW50
YXRpb25hbEhpbnRTdHlsZUlzRGlydHkgPSAxIDw8IDI7CiAgICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IHNfZmxhZ1N0eWxlQXR0cmlidXRlSXNEaXJ0eSA9IDEgPDwgMzsKICAgICBzdGF0aWMgY29u
c3QgdWludDMyX3Qgc19mbGFnQW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkgPSAxIDw8IDQ7
CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxhZ3NNYXNrID0gKDEgPDwgc19mbGFnQ291
bnQpIC0gMTsKQEAgLTE1NCw4ICsxNTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzdHlsZUF0
dHJpYnV0ZUlzRGlydHkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19m
bGFnU3R5bGVBdHRyaWJ1dGVJc0RpcnR5OyB9CiAgICAgdm9pZCBzZXRTdHlsZUF0dHJpYnV0ZUlz
RGlydHkoYm9vbCBpc0RpcnR5KSBjb25zdCB7IHVwZGF0ZUZsYWcoc19mbGFnU3R5bGVBdHRyaWJ1
dGVJc0RpcnR5LCBpc0RpcnR5KTsgfQogCi0gICAgYm9vbCBwcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZUlzRGlydHkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFn
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5OyB9Ci0gICAgdm9pZCBzZXRQcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHkoYm9vbCBpc0RpcnR5KSBjb25zdCB7IHVwZGF0ZUZs
YWcoc19mbGFnUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5LCBpc0RpcnR5KTsgfQor
ICAgIGJvb2wgcHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KCkgY29uc3QgeyByZXR1cm4g
bV9hcnJheVNpemVBbmRGbGFncyAmIHNfZmxhZ1ByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0
eTsgfQorICAgIHZvaWQgc2V0UHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KGJvb2wgaXNE
aXJ0eSkgY29uc3QgeyB1cGRhdGVGbGFnKHNfZmxhZ1ByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNE
aXJ0eSwgaXNEaXJ0eSk7IH0KIAogICAgIGJvb2wgYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGly
dHkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFnQW5pbWF0ZWRT
VkdBdHRyaWJ1dGVzQXJlRGlydHk7IH0KICAgICB2b2lkIHNldEFuaW1hdGVkU1ZHQXR0cmlidXRl
c0FyZURpcnR5KGJvb2wgZGlydHkpIGNvbnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdBbmltYXRlZFNW
R0F0dHJpYnV0ZXNBcmVEaXJ0eSwgZGlydHkpOyB9CkBAIC0yMjEsNyArMjIxLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBhdHRyaWJ1dGVWZWN0b3JNZW1vcnlPZmZzZXQoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoVW5pcXVlRWxlbWVudERhdGEsIG1fYXR0cmlidXRlVmVj
dG9yKTsgfQogCi0gICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBtX3ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlOworICAgIG11dGFibGUgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4g
bV9wcmVzZW50YXRpb25hbEhpbnRTdHlsZTsKICAgICB0eXBlZGVmIFZlY3RvcjxBdHRyaWJ1dGUs
IDQ+IEF0dHJpYnV0ZVZlY3RvcjsKICAgICBBdHRyaWJ1dGVWZWN0b3IgbV9hdHRyaWJ1dGVWZWN0
b3I7CiB9OwpAQCAtMjQ3LDExICsyNDcsMTEgQEAgaW5saW5lIGNvbnN0IEF0dHJpYnV0ZSogRWxl
bWVudERhdGE6OmF0dHJpYnV0ZUJhc2UoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxTaGFy
ZWFibGVFbGVtZW50RGF0YT4oKnRoaXMpLm1fYXR0cmlidXRlQXJyYXk7CiB9CiAKLWlubGluZSBj
b25zdCBTdHlsZVByb3BlcnRpZXMqIEVsZW1lbnREYXRhOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSgpIGNvbnN0CitpbmxpbmUgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBFbGVtZW50RGF0YTo6
cHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdAogewogICAgIGlmICghaXM8VW5pcXVlRWxl
bWVudERhdGE+KCp0aGlzKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRv
d25jYXN0PFVuaXF1ZUVsZW1lbnREYXRhPigqdGhpcykubV9wcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZS5nZXQoKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8VW5pcXVlRWxlbWVudERhdGE+KCp0aGlz
KS5tX3ByZXNlbnRhdGlvbmFsSGludFN0eWxlLmdldCgpOwogfQogCiBpbmxpbmUgQXR0cmlidXRl
SXRlcmF0b3JBY2Nlc3NvciBFbGVtZW50RGF0YTo6YXR0cmlidXRlc0l0ZXJhdG9yKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCA0NGRkNjYzZDUxOTEuLjMyZjI3
ZmRkODYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcApAQCAtMTQ1LDggKzE0
NSw4IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAgaWYgKG9sZFZhbHVlICE9IG5ld1Zh
bHVlKSB7CiAgICAgICAgIGlmIChuYW1lID09IHN0eWxlQXR0cikKICAgICAgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKLSAgICAgICAgZWxzZSBpZiAoaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSkpIHsKLSAgICAgICAgICAgIGVsZW1lbnREYXRhKCkt
PnNldFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSh0cnVlKTsKKyAgICAgICAgZWxz
ZSBpZiAoaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKSkgeworICAgICAg
ICAgICAgZWxlbWVudERhdGEoKS0+c2V0UHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KHRy
dWUpOwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yOTAsMzAgKzI5MCwzMCBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0
cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JiB1cmxzKSBjb25zdAogICAgIH0pOwogfQogCi12
b2lkIFN0eWxlZEVsZW1lbnQ6OnJlYnVpbGRQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpCit2
b2lkIFN0eWxlZEVsZW1lbnQ6OnJlYnVpbGRQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpCiB7CiAg
ICAgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
OjpjcmVhdGUoaXNTVkdFbGVtZW50KCkgPyBTVkdBdHRyaWJ1dGVNb2RlIDogSFRNTFF1aXJrc01v
ZGUpOwogICAgIGZvciAoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUgOiBhdHRyaWJ1dGVzSXRl
cmF0b3IoKSkKLSAgICAgICAgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGF0
dHJpYnV0ZS5uYW1lKCksIGF0dHJpYnV0ZS52YWx1ZSgpLCBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJj4oKnN0eWxlKSk7CisgICAgICAgIGNvbGxlY3RQcmVzZW50YXRpb25hbEhp
bnRzRm9yQXR0cmlidXRlKGF0dHJpYnV0ZS5uYW1lKCksIGF0dHJpYnV0ZS52YWx1ZSgpLCBzdGF0
aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJj4oKnN0eWxlKSk7CiAKICAgICAvLyBTaGFy
ZWFibGVFbGVtZW50RGF0YSBkb2Vzbid0IHN0b3JlIHByZXNlbnRhdGlvbiBhdHRyaWJ1dGUgc3R5
bGUsIHNvIG1ha2Ugc3VyZSB3ZSBoYXZlIGEgVW5pcXVlRWxlbWVudERhdGEuCiAgICAgVW5pcXVl
RWxlbWVudERhdGEmIGVsZW1lbnREYXRhID0gZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKTsKIAot
ICAgIGVsZW1lbnREYXRhLnNldFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eShmYWxz
ZSk7Ci0gICAgZWxlbWVudERhdGEubV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSA9IHN0eWxl
LT5pc0VtcHR5KCkgPyBudWxscHRyIDogV1RGTW92ZShzdHlsZSk7CisgICAgZWxlbWVudERhdGEu
c2V0UHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KGZhbHNlKTsKKyAgICBlbGVtZW50RGF0
YS5tX3ByZXNlbnRhdGlvbmFsSGludFN0eWxlID0gc3R5bGUtPmlzRW1wdHkoKSA/IG51bGxwdHIg
OiBXVEZNb3ZlKHN0eWxlKTsKIH0KIAotdm9pZCBTdHlsZWRFbGVtZW50OjphZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUs
IENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgQ1NTVmFsdWVJRCBpZGVudGlmaWVyKQordm9pZCBT
dHlsZWRFbGVtZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYgc3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgQ1NTVmFs
dWVJRCBpZGVudGlmaWVyKQogewogICAgIHN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5SUQsIENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKGlkZW50aWZpZXIp
KTsKIH0KIAotdm9pZCBTdHlsZWRFbGVtZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUsIENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBDU1NVbml0VHlwZSB1bml0KQordm9pZCBTdHlsZWRF
bGVtZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYgc3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgZG91YmxlIHZhbHVl
LCBDU1NVbml0VHlwZSB1bml0KQogewogICAgIHN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5SUQs
IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUodmFsdWUsIHVuaXQpKTsKIH0K
ICAgICAKLXZvaWQgU3R5bGVkRWxlbWVudDo6YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBz
dHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewog
ICAgIHN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5SUQsIHZhbHVlLCBmYWxzZSwgQ1NTUGFyc2Vy
Q29udGV4dChkb2N1bWVudCgpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAppbmRl
eCA5MTQwMzY4NGZkNmQuLjI2YWFlYjI0NjI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5oCkBAIC00Miw3ICs0Miw2IEBAIGNsYXNzIFN0eWxlZEVsZW1lbnQgOiBwdWJsaWMgRWxlbWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U3R5bGVkRWxlbWVudCgpOwogCi0gICAgdmlydHVh
bCBjb25zdCBTdHlsZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIGludmFsaWRhdGVTdHls
ZUF0dHJpYnV0ZSgpOwogCiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBpbmxpbmVTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIGVsZW1lbnREYXRhKCkgPyBlbGVtZW50RGF0YSgpLT5tX2lubGluZVN0
eWxlLmdldCgpIDogbnVsbHB0cjsgfQpAQCAtNjEsOCArNjAsMTAgQEAgcHVibGljOgogICAgIFN0
eWxlUHJvcGVydHlNYXAmIGVuc3VyZUF0dHJpYnV0ZVN0eWxlTWFwKCk7CiAjZW5kaWYKIAotICAg
IGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYpIHsgfQorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3ByZXNl
bnRhdGlvbmFsLWhpbnRzCisgICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcmVzZW50YXRpb25h
bEhpbnRTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSB7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IFN0eWxl
UHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU3R5bGVkRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5cGUg
dHlwZSkKQEAgLTcyLDExICs3MywxMSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
ID0gTW9kaWZpZWREaXJlY3RseSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2
b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWVJRCBpZGVudGlmaWVyKTsKLSAgICB2
b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBDU1NVbml0VHlwZSk7Ci0g
ICAgdm9pZCBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYsIENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAg
IHZvaWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZUlEIGlkZW50aWZpZXIpOworICAgIHZv
aWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlKTsKKyAgICB2
b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKICAgICB2b2lk
IGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3Zl
cnJpZGU7CiAKQEAgLTg5LDE2ICs5MCwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5saW5l
U3R5bGVGcm9tU3RyaW5nKGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJiBlbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUoKTsKIAotICAgIHZvaWQgcmVidWlsZFBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7CisgICAgdm9pZCByZWJ1aWxkUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoKTsKIH07CiAKLWlubGluZSBjb25zdCBTdHlsZVByb3BlcnRpZXMqIFN0eWxl
ZEVsZW1lbnQ6OnByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgY29uc3QKK2lubGluZSBjb25z
dCBTdHlsZVByb3BlcnRpZXMqIFN0eWxlZEVsZW1lbnQ6OnByZXNlbnRhdGlvbmFsSGludFN0eWxl
KCkgY29uc3QKIHsKICAgICBpZiAoIWVsZW1lbnREYXRhKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIGlmIChlbGVtZW50RGF0YSgpLT5wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlz
RGlydHkoKSkKLSAgICAgICAgY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Jj4oKnRoaXMpLnJlYnVp
bGRQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOwotICAgIHJldHVybiBlbGVtZW50RGF0YSgp
LT5wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOworICAgIGlmIChlbGVtZW50RGF0YSgpLT5w
cmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHkoKSkKKyAgICAgICAgY29uc3RfY2FzdDxTdHls
ZWRFbGVtZW50Jj4oKnRoaXMpLnJlYnVpbGRQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOworICAg
IHJldHVybiBlbGVtZW50RGF0YSgpLT5wcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcApp
bmRleCA3MjA3ZTdmYTg3YWEuLmNkMzMxYjlmMTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
UkVsZW1lbnQuY3BwCkBAIC01MSwyNiArNTEsMjYgQEAgUmVmPEhUTUxCUkVsZW1lbnQ+IEhUTUxC
UkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQlJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLWJvb2wgSFRNTEJSRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTEJSRWxlbWVudDo6aGFzUHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBj
b25zdAogewogICAgIGlmIChuYW1lID09IGNsZWFyQXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsK
KyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEJSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTEJSRWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IGNsZWFyQXR0cikgewogICAgICAgICAv
LyBJZiB0aGUgc3RyaW5nIGlzIGVtcHR5LCB0aGVuIGRvbid0IGFkZCB0aGUgY2xlYXIgcHJvcGVy
dHkuCiAgICAgICAgIC8vIDxiciBjbGVhcj4gYW5kIDxiciBjbGVhcj0iIj4gYXJlIGp1c3QgdHJl
YXRlZCBsaWtlIDxicj4gYnkgR2Vja28sIE1hYyBJRSwgZXRjLiAtZHdoCiAgICAgICAgIGlmICgh
dmFsdWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UodmFsdWUsICJhbGwiKSkKLSAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Q2xlYXIsIENTU1ZhbHVl
Qm90aCk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNsZWFyLCBDU1NWYWx1ZUJvdGgpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlDbGVhciwgdmFsdWUpOworICAgICAgICAgICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlDbGVh
ciwgdmFsdWUpOwogICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsK
KyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBI
VE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJSRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmgK
aW5kZXggMGJiNzk2OGM2MjUzLi40Y2I1M2ZkMDg0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJS
RWxlbWVudC5oCkBAIC0zOCw4ICszOCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEJS
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwot
ICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZp
bmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVs
ZW1lbnQuY3BwCmluZGV4IDVmOGE4YzY2MGY3NS4uY2UxM2YzN2Y4NWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC02MiwxNCArNjIsMTQgQEAgUmVmPEhUTUxC
b2R5RWxlbWVudD4gSFRNTEJvZHlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW0KIAogSFRNTEJvZHlFbGVtZW50Ojp+SFRNTEJvZHlFbGVtZW50KCkgPSBk
ZWZhdWx0OwogCi1ib29sIEhUTUxCb2R5RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTEJvZHlFbGVtZW50Ojpo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUpIGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIgfHwgbmFtZSA9PSBt
YXJnaW53aWR0aEF0dHIgfHwgbmFtZSA9PSBsZWZ0bWFyZ2luQXR0ciB8fCBuYW1lID09IG1hcmdp
bmhlaWdodEF0dHIgfHwgbmFtZSA9PSB0b3BtYXJnaW5BdHRyIHx8IG5hbWUgPT0gYmdjb2xvckF0
dHIgfHwgbmFtZSA9PSB0ZXh0QXR0ciB8fCBuYW1lID09IGJncHJvcGVydGllc0F0dHIpCiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxCb2R5RWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHls
ZSkKK3ZvaWQgSFRNTEJvZHlFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYmFj
a2dyb3VuZEF0dHIpIHsKICAgICAgICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWls
aW5nSFRNTFNwYWNlcyh2YWx1ZSk7CkBAIC05MCw5ICs5MCw5IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYKICAgICAgICAgYWRkSFRNTENvbG9yVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlDb2xv
ciwgdmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBiZ3Byb3BlcnRpZXNBdHRyKSB7CiAg
ICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImZpeGVkIikp
Ci0gICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQXR0YWNobWVudCwgQ1NTVmFsdWVGaXhlZCk7CisgICAg
ICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1By
b3BlcnR5QmFja2dyb3VuZEF0dGFjaG1lbnQsIENTU1ZhbHVlRml4ZWQpOwogICAgIH0gZWxzZQot
ICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiBIVE1M
RWxlbWVudDo6RXZlbnRIYW5kbGVyTmFtZU1hcCBIVE1MQm9keUVsZW1lbnQ6OmNyZWF0ZVdpbmRv
d0V2ZW50SGFuZGxlck5hbWVNYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgK
aW5kZXggZGE3MmFhZjdlNzViLi5lYTc4OTgyOWYxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuaApAQCAtNDAsOCArNDAsOCBAQCBwcml2YXRlOgogICAgIEhUTUxCb2R5RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
LSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBmaW5hbDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmKSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVj
dFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKICAgICBJ
bnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25U
eXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdO
b2RlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmlu
ZGV4IDg3OGNhMDM0N2MyYS4uMjgxODQ1ZmFjMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmNwcApAQCAtOTUsNyArOTUsNyBAQCBjb25zdCBBdG9tU3RyaW5nJiBI
VE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4gZW1w
dHlBdG9tKCk7CiB9CiAKLWJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxCdXR0b25F
bGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gYWxpZ25BdHRyKSB7CiAgICAg
ICAgIC8vIERvbid0IG1hcCAnYWxpZ24nIGF0dHJpYnV0ZS4gIFRoaXMgbWF0Y2hlcyB3aGF0IEZp
cmVmb3ggYW5kIElFIGRvLCBidXQgbm90IE9wZXJhLgpAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wg
SFRNTEJ1dHRvbkVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFt
ZSk7CisgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFs
SGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIHZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCmluZGV4IDgzMmFi
Y2ViZjU4Zi4uYzNiYTlhZjE4OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxl
bWVudC5oCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGRlZmF1bHRUYWJJbmRl
eCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wg
aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JikgZmluYWw7
CiAKICAgICBib29sIGFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiwgYm9vbCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwCmluZGV4IGQ4OWU3ODljMzhlYi4uNDEy
NjkyOTUzMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmNwcApAQCAtNTAs
MTkgKzUwLDE5IEBAIFJlZjxIVE1MRGl2RWxlbWVudD4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSFRNTERpdkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBIVE1M
RGl2RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTERpdkVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBp
ZiAobmFtZSA9PSBhbGlnbkF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHZhbHVlLCAibWlkZGxlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UodmFsdWUsICJjZW50ZXIiKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Vi
a2l0Q2VudGVyKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0Q2VudGVyKTsK
ICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJs
ZWZ0IikpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZVdlYmtpdExlZnQpOworICAg
ICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQ
cm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRMZWZ0KTsKICAgICAgICAgZWxzZSBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJyaWdodCIpKQotICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRSaWdodCk7CisgICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWdu
LCBDU1NWYWx1ZVdlYmtpdFJpZ2h0KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRB
bGlnbiwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgdmFsdWUpOwogICAgIH0gZWxzZQot
ICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKaW5kZXggNjkyOTFhMjlhYjUyLi5lODlmODg1
MDI4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHJvdGVjdGVkOgogICAgIEhUTUxEaXZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGFkYmExZTZiMzQz
ZS4uMjBhYjY4ZDU3ZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMTM0
LDI2ICsxMzQsMjYgQEAgdW5zaWduZWQgSFRNTEVsZW1lbnQ6OnBhcnNlQm9yZGVyV2lkdGhBdHRy
aWJ1dGUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpIGNvbnN0CiAKIHZvaWQgSFRNTEVsZW1lbnQ6
OmFwcGx5Qm9yZGVyQXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7Ci0gICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlcldpZHRoLCBwYXJzZUJv
cmRlcldpZHRoQXR0cmlidXRlKHZhbHVlKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7Ci0gICAgYWRk
UHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJv
cmRlclN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKKyAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIHBhcnNlQm9yZGVyV2lk
dGhBdHRyaWJ1dGUodmFsdWUpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKKyAgICBhZGRQcm9wZXJ0
eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUs
IENTU1ZhbHVlU29saWQpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjptYXBMYW5ndWFnZUF0dHJp
YnV0ZVRvTG9jYWxlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSkKIHsKICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBI
YXZlIHRvIHF1b3RlIHNvIHRoZSBsb2NhbGUgaWQgaXMgdHJlYXRlZCBhcyBhIHN0cmluZyBpbnN0
ZWFkIG9mIGFzIGEgQ1NTIGtleXdvcmQuCi0gICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRMb2NhbGUsIHNlcmlhbGl6
ZVN0cmluZyh2YWx1ZSkpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0TG9jYWxlLCBzZXJpYWxpemVTdHJpbmcodmFs
dWUpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgZW1wdHkgc3RyaW5nIG1lYW5zIHRo
ZSBsYW5ndWFnZSBpcyBleHBsaWNpdGx5IHVua25vd24uCi0gICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRMb2NhbGUs
IENTU1ZhbHVlQXV0byk7CisgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRMb2NhbGUsIENTU1ZhbHVlQXV0byk7CiAgICAg
fQogfQogCi1ib29sIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAog
ewogICAgIGlmIChuYW1lID09IGFsaWduQXR0ciB8fCBuYW1lID09IGNvbnRlbnRlZGl0YWJsZUF0
dHIgfHwgbmFtZSA9PSBoaWRkZW5BdHRyIHx8IG5hbWUgPT0gbGFuZ0F0dHIgfHwgbmFtZS5tYXRj
aGVzKFhNTE5hbWVzOjpsYW5nQXR0cikgfHwgbmFtZSA9PSBkcmFnZ2FibGVBdHRyIHx8IG5hbWUg
PT0gZGlyQXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIFN0eWxlZEVsZW1l
bnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBTdHlsZWRFbGVt
ZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCiBzdGF0
aWMgYm9vbCBpc0xUUk9yUlRMSWdub3JpbmdDYXNlKGNvbnN0IEF0b21TdHJpbmcmIGRpckF0dHJp
YnV0ZVZhbHVlKQpAQCAtMTg3LDEzICsxODcsMTMgQEAgc3RhdGljIENvbnRlbnRFZGl0YWJsZVR5
cGUgY29udGVudEVkaXRhYmxlVHlwZShjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVudCkKICAgICBy
ZXR1cm4gY29udGVudEVkaXRhYmxlVHlwZShlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oY29udGVudGVkaXRhYmxlQXR0cikpOwogfQogCi12b2lkIEhUTUxFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0
eWxlKQordm9pZCBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IGFsaWdu
QXR0cikgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUs
ICJtaWRkbGUiKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1
dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlQ2VudGVyKTsKKyAg
ICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NT
UHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlQ2VudGVyKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQ
cm9wZXJ0eVRleHRBbGlnbiwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgdmFsdWUpOwog
ICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb250ZW50ZWRpdGFibGVBdHRyKSB7CiAgICAgICAgIENT
U1ZhbHVlSUQgdXNlck1vZGlmeVZhbHVlID0gQ1NTVmFsdWVSZWFkV3JpdGU7CiAgICAgICAgIHN3
aXRjaCAoY29udGVudEVkaXRhYmxlVHlwZSh2YWx1ZSkpIHsKQEAgLTIwNiwzNyArMjA2LDM3IEBA
IHZvaWQgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lCiAgICAgICAgICAgICB1c2VyTW9kaWZ5VmFsdWUgPSBD
U1NWYWx1ZVJlYWRXcml0ZVBsYWludGV4dE9ubHk7CiAgICAgICAgICAgICBGQUxMVEhST1VHSDsK
ICAgICAgICAgY2FzZSBDb250ZW50RWRpdGFibGVUeXBlOjpUcnVlOgotICAgICAgICAgICAgYWRk
UHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdv
cmRXcmFwLCBDU1NWYWx1ZUJyZWFrV29yZCk7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0TmJzcE1vZGUs
IENTU1ZhbHVlU3BhY2UpOwotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpbmVCcmVhaywgQ1NTVmFsdWVBZnRlcldo
aXRlU3BhY2UpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdvcmRXcmFwLCBDU1NWYWx1ZUJyZWFrV29yZCk7CisgICAg
ICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1By
b3BlcnR5V2Via2l0TmJzcE1vZGUsIENTU1ZhbHVlU3BhY2UpOworICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpbmVCcmVh
aywgQ1NTVmFsdWVBZnRlcldoaXRlU3BhY2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUs
IENTU1Byb3BlcnR5V2Via2l0VGV4dFNpemVBZGp1c3QsIENTU1ZhbHVlTm9uZSk7CisgICAgICAg
ICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3Bl
cnR5V2Via2l0VGV4dFNpemVBZGp1c3QsIENTU1ZhbHVlTm9uZSk7CiAjZW5kaWYKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LCB1c2VyTW9k
aWZ5VmFsdWUpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VXNlck1vZGlmeSwgdXNlck1vZGlmeVZhbHVlKTsKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gaGlkZGVuQXR0cikgewotICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5RGlzcGxheSwgQ1NT
VmFsdWVOb25lKTsKKyAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlTm9uZSk7CiAgICAgfSBlbHNlIGlm
IChuYW1lID09IGRyYWdnYWJsZUF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHZhbHVlLCAidHJ1ZSIpKSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VXNlckRy
YWcsIENTU1ZhbHVlRWxlbWVudCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0
aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVl
RWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoIWlzRHJhZ2dhYmxlSWdub3JpbmdBdHRyaWJ1dGVz
KCkpCi0gICAgICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3QsIENTU1ZhbHVlTm9uZSk7Cisg
ICAgICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3QsIENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJmYWxzZSIpKQot
ICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnLCBDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdl
YmtpdFVzZXJEcmFnLCBDU1NWYWx1ZU5vbmUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBkaXJB
dHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwg
ImF1dG8iKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgdW5pY29kZUJpZGlBdHRyaWJ1dGVG
b3JEaXJBdXRvKCp0aGlzKSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VW5pY29kZUJpZGksIHVuaWNvZGVCaWRpQXR0
cmlidXRlRm9yRGlyQXV0bygqdGhpcykpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGF1
dG8gdW5pY29kZUJpZGlWYWx1ZSA9IENTU1ZhbHVlRW1iZWQ7CiAKICAgICAgICAgICAgIGlmIChp
c0xUUk9yUlRMSWdub3JpbmdDYXNlKHZhbHVlKSkgewotICAgICAgICAgICAgICAgIGFkZFByb3Bl
cnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlEaXJlY3Rp
b24sIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5RGlyZWN0aW9uLCB2YWx1ZSk7CiAgICAgICAgICAg
ICAgICAgdW5pY29kZUJpZGlWYWx1ZSA9IENTU1ZhbHVlSXNvbGF0ZTsKICAgICAgICAgICAgIH0g
CiAKICAgICAgICAgICAgIGlmICghaGFzVGFnTmFtZShiZGlUYWcpICYmICFoYXNUYWdOYW1lKGJk
b1RhZykgJiYgIWhhc1RhZ05hbWUob3V0cHV0VGFnKSkKLSAgICAgICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VW5pY29k
ZUJpZGksIHVuaWNvZGVCaWRpVmFsdWUpOworICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgdW5p
Y29kZUJpZGlWYWx1ZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG5hbWUubWF0Y2hlcyhY
TUxOYW1lczo6bGFuZ0F0dHIpKQogICAgICAgICBtYXBMYW5ndWFnZUF0dHJpYnV0ZVRvTG9jYWxl
KHZhbHVlLCBzdHlsZSk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUKICAgICAgICAgaWYgKCFoYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFhNTE5h
bWVzOjpsYW5nQXR0cikpCiAgICAgICAgICAgICBtYXBMYW5ndWFnZUF0dHJpYnV0ZVRvTG9jYWxl
KHZhbHVlLCBzdHlsZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIFN0eWxlZEVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAg
ICAgICBTdHlsZWRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiBIVE1MRWxlbWVudDo6RXZlbnRIYW5kbGVyTmFt
ZU1hcCBIVE1MRWxlbWVudDo6Y3JlYXRlRXZlbnRIYW5kbGVyTmFtZU1hcCgpCkBAIC02NzYsMTAg
KzY3NiwxMCBAQCB2b2lkIEhUTUxFbGVtZW50OjphcHBseUFsaWdubWVudEF0dHJpYnV0ZVRvU3R5
bGUoY29uc3QgQXRvbVN0cmluZyYgYWxpZ25tZW50LCBNdQogICAgICAgICB2ZXJ0aWNhbEFsaWdu
VmFsdWUgPSBDU1NWYWx1ZVRleHRUb3A7CiAKICAgICBpZiAoZmxvYXRWYWx1ZSAhPSBDU1NWYWx1
ZUludmFsaWQpCi0gICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlGbG9hdCwgZmxvYXRWYWx1ZSk7CisgICAgICAgIGFkZFByb3Bl
cnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlGbG9hdCwgZmxv
YXRWYWx1ZSk7CiAKICAgICBpZiAodmVydGljYWxBbGlnblZhbHVlICE9IENTU1ZhbHVlSW52YWxp
ZCkKLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIHZlcnRpY2FsQWxpZ25WYWx1ZSk7CisgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduLCB2ZXJ0aWNhbEFsaWduVmFsdWUpOwogfQogCiBib29sIEhUTUxFbGVtZW50
OjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKQEAgLTEwNDAsMTIgKzEwNDAsMTIgQEAgdm9p
ZCBIVE1MRWxlbWVudDo6YWRkSFRNTExlbmd0aFRvU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYgc3R5bGUsIENTU1Byb3BlcnQKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwYXJzZWRMZW5n
dGggIT0gc3RyaW5nLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBwcm9wZXJ0eUlELCBzdHJpbmctPnN1YnN0cmlu
ZygwLCBwYXJzZWRMZW5ndGgpKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25hbEhpbnRTdHlsZShzdHlsZSwgcHJvcGVydHlJRCwgc3RyaW5nLT5zdWJzdHJpbmcoMCwgcGFy
c2VkTGVuZ3RoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIHByb3BlcnR5
SUQsIHZhbHVlKTsKKyAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIHByb3BlcnR5SUQsIHZhbHVlKTsKIH0KIAogLy8gQ29sb3IgcGFyc2luZyB0aGF0IG1hdGNo
ZXMgSFRNTCdzICJydWxlcyBmb3IgcGFyc2luZyBhIGxlZ2FjeSBjb2xvciB2YWx1ZSIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAwMWU2MjVmZWI2MWEuLjk4MDkzMTM0MjA1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtMTYxLDggKzE2MSw4IEBAIHByb3RlY3RlZDoK
IAogICAgIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOworICAgIGJvb2wgaGFz
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKICAgICB1bnNpZ25lZCBwYXJzZUJvcmRlcldpZHRoQXR0
cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdDsKIAogICAgIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmNwcAppbmRleCA3YmQ5NzUxYjAyNTYuLmNlZjZkMmJhNzM4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC03OSwxNSArNzksMTUgQEAg
UmVuZGVyV2lkZ2V0KiBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJXaWRnZXRMb2FkaW5nUGx1Z2lu
KCkgY29uc3QKICAgICByZXR1cm4gd2lkZ2V0ID8gd2lkZ2V0IDogZmluZFdpZGdldFJlbmRlcmVy
KHRoaXMpOwogfQogCi12b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhUTUxFbWJl
ZEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBoaWRkZW5BdHRyKSB7CiAgICAg
ICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgInllcyIpIHx8IGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAidHJ1ZSIpKSB7Ci0gICAgICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3Bl
cnR5V2lkdGgsIDAsIENTU1VuaXRUeXBlOjpDU1NfUFgpOwotICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUhlaWdodCwg
MCwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2lkdGgsIDAsIENTU1VuaXRUeXBl
OjpDU1NfUFgpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUhlaWdodCwgMCwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7Cisg
ICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHN0YXRpYyBib29sIGhhc1R5
cGVPclNyYyhjb25zdCBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmgKaW5kZXggN2ZhN2UxMDhiZWFkLi5lNWU3NjZmOTFhN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHByaXZh
dGU6CiAgICAgSFRNTEVtYmVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAgICAgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvbnRFbGVtZW50LmNwcAppbmRleCA0ZWI2NTE5MTBlNDYuLjYzMTMzNTYzMGEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcApAQCAtMTc1LDI2ICsxNzUsMjYgQEAg
Ym9vbCBIVE1MRm9udEVsZW1lbnQ6OmNzc1ZhbHVlRnJvbUZvbnRTaXplTnVtYmVyKGNvbnN0IFN0
cmluZyYgcywgQ1NTVmFsdWVJRCYgc2kKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBIVE1M
Rm9udEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0Citib29sIEhUTUxGb250RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewogICAgIGlm
IChuYW1lID09IHNpemVBdHRyIHx8IG5hbWUgPT0gY29sb3JBdHRyIHx8IG5hbWUgPT0gZmFjZUF0
dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVz
ZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxGb250RWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTEZvbnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5h
bWUgPT0gc2l6ZUF0dHIpIHsKICAgICAgICAgQ1NTVmFsdWVJRCBzaXplID0gQ1NTVmFsdWVJbnZh
bGlkOwogICAgICAgICBpZiAoY3NzVmFsdWVGcm9tRm9udFNpemVOdW1iZXIodmFsdWUsIHNpemUp
KQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCBzaXplKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlGb250U2l6ZSwgc2l6
ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNvbG9yQXR0cikKICAgICAgICAgYWRkSFRNTENv
bG9yVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlDb2xvciwgdmFsdWUpOwogICAgIGVsc2UgaWYg
KG5hbWUgPT0gZmFjZUF0dHIpIHsKICAgICAgICAgaWYgKGF1dG8gZm9udEZhY2VWYWx1ZSA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRm9udEZhY2VWYWx1ZSh2YWx1ZSkpCiAgICAg
ICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRGYW1p
bHksIFdURk1vdmUoZm9udEZhY2VWYWx1ZSkpKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwg
c3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvbnRFbGVtZW50LmgKaW5kZXggYzk4MWFmYjc4N2RlLi4yY2IxYjQ2ZjYzZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaApAQCAtMzcsOCArMzcsOCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEhUTUxGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAg
dm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5h
bDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuY3BwCmluZGV4IDk1YWU2YTFlNTViMi4uZGMzMjczMjgyMmRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKQEAgLTY5LDE5
ICs2OSwxOSBAQCBSZWY8SFRNTEZyYW1lU2V0RWxlbWVudD4gSFRNTEZyYW1lU2V0RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhUTUxGcmFtZVNldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotYm9vbCBI
VE1MRnJhbWVTZXRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpoYXNQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
CiB7CiAgICAgaWYgKG5hbWUgPT0gYm9yZGVyY29sb3JBdHRyKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUp
OworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBI
VE1MRnJhbWVTZXRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYm9yZGVyY29s
b3JBdHRyKQogICAgICAgICBhZGRIVE1MQ29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJv
cmRlckNvbG9yLCB2YWx1ZSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAg
ICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCA5MTEz
NWIwOGJjNmQuLjJlN2E0ZjA5NTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmgKQEAgLTU0LDggKzU0LDggQEAgcHJpdmF0ZToKICAgICBIVE1MRnJhbWVTZXRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAg
IHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSFJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxl
bWVudC5jcHAKaW5kZXggM2IxYzU4OTgzMTE5Li5jMzdlM2IxY2Y4MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSFJFbGVtZW50LmNwcApAQCAtNTMsMzggKzUzLDM4IEBAIFJlZjxIVE1MSFJFbGVt
ZW50PiBIVE1MSFJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEhSRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi1ib29sIEhUTUxIUkVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxIUkVsZW1l
bnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBj
b2xvckF0dHIgfHwgbmFtZSA9PSBub3NoYWRlQXR0ciB8fCBuYW1lID09IHNpemVBdHRyKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MSFJFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxl
KQordm9pZCBIVE1MSFJFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYWxpZ25B
dHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwg
ImxlZnQiKSkgewotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQsIDAsIENTU1VuaXRUeXBlOjpDU1Nf
UFgpOwotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBDU1NWYWx1ZUF1dG8pOworICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eU1hcmdpbkxlZnQsIDAsIENTU1VuaXRUeXBlOjpDU1NfUFgpOworICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpblJp
Z2h0LCBDU1NWYWx1ZUF1dG8pOwogICAgICAgICB9IGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHZhbHVlLCAicmlnaHQiKSkgewotICAgICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQs
IENTU1ZhbHVlQXV0byk7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQsIDAsIENTU1VuaXRUeXBl
OjpDU1NfUFgpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQsIENTU1ZhbHVlQXV0byk7CisgICAgICAg
ICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3Bl
cnR5TWFyZ2luUmlnaHQsIDAsIENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQsIENTU1ZhbHVlQXV0byk7Ci0gICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
TWFyZ2luUmlnaHQsIENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luTGVmdCwgQ1NTVmFs
dWVBdXRvKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5SaWdodCwgQ1NTVmFsdWVBdXRvKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSB3aWR0aEF0dHIpIHsKICAgICAgICAgaWYgKGF1dG8g
dmFsdWVJbnRlZ2VyID0gcGFyc2VIVE1MSW50ZWdlcih2YWx1ZSk7IHZhbHVlSW50ZWdlciAmJiAh
KnZhbHVlSW50ZWdlcikKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgMSwgQ1NTVW5pdFR5cGU6OkNTU19Q
WCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5V2lkdGgsIDEsIENTU1VuaXRUeXBlOjpDU1NfUFgpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlX
aWR0aCwgdmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb2xvckF0dHIpIHsKLSAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eUJvcmRlclN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKKyAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBDU1NW
YWx1ZVNvbGlkKTsKICAgICAgICAgYWRkSFRNTENvbG9yVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlCb3JkZXJDb2xvciwgdmFsdWUpOwogICAgICAgICBhZGRIVE1MQ29sb3JUb1N0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgdmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBub3NoYWRlQXR0cikgewogICAgICAgICBpZiAoIWhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oY29sb3JBdHRyKSkgewotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBDU1NW
YWx1ZVNvbGlkKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwgQ1NTVmFsdWVTb2xpZCk7CiAKICAg
ICAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZGFya0dyYXlWYWx1ZSA9IENTU1Zh
bHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlQ29sb3JWYWx1ZShDb2xvcjo6ZGFya0dyYXkpOwog
ICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgZGFy
a0dyYXlWYWx1ZSk7CkBAIC05MywxMSArOTMsMTEgQEAgdm9pZCBIVE1MSFJFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEK
ICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gc2l6ZUF0dHIpIHsKICAgICAgICAgaW50IHNpemUgPSBw
YXJzZUhUTUxJbnRlZ2VyKHZhbHVlKS52YWx1ZV9vcigwKTsKICAgICAgICAgaWYgKHNpemUgPD0g
MSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShz
dHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgMCwgQ1NTVW5pdFR5cGU6OkNTU19Q
WCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tV2lkdGgsIDAsIENTU1VuaXRUeXBlOjpDU1NfUFgp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0LCBzaXplIC0gMiwgQ1NTVW5pdFR5
cGU6OkNTU19QWCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0LCBzaXplIC0gMiwgQ1NTVW5pdFR5cGU6OkNT
U19QWCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVl
LCBzdHlsZSk7CiB9CiAKIGJvb2wgSFRNTEhSRWxlbWVudDo6Y2FuQ29udGFpblJhbmdlRW5kUG9p
bnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaAppbmRleCBmODM2YmU1Nzg2
YmYuLmIzYjU2NmM2MjAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKQEAgLTM1
LDggKzM1LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MSFJFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgYm9vbCBo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIGZpbmFsOwogICAgIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBj
b25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5j
cHAKaW5kZXggMGM1YmQ3ZTRkZDgzLi5hY2U5NjNlN2QwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC02OSwxNCArNjksMTQgQEAgRE9NVG9rZW5MaXN0
JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgpCiAgICAgcmV0dXJuICptX3NhbmRib3g7CiB9
CiAKLWJvb2wgSFRNTElGcmFtZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxJRnJhbWVFbGVtZW50OjpoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0
ciB8fCBuYW1lID09IGZyYW1lYm9yZGVyQXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
cmV0dXJuIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1l
KTsKKyAgICByZXR1cm4gSFRNTEZyYW1lRWxlbWVudEJhc2U6Omhhc1ByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUp
Cit2b2lkIEhUTUxJRnJhbWVFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lk
dGhBdHRyKQogICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlX
aWR0aCwgdmFsdWUpOwpAQCAtODksMTAgKzg5LDEwIEBAIHZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
CiAgICAgICAgIC8vIGEgcHJlc2VudGF0aW9uYWwgaGludCB0aGF0IHRoZSBib3JkZXIgc2hvdWxk
IGJlIG9mZiBpZiBzZXQgdG8gemVyby4KICAgICAgICAgaWYgKCFwYXJzZUhUTUxJbnRlZ2VyKHZh
bHVlKS52YWx1ZV9vcigwKSkgewogICAgICAgICAgICAgLy8gQWRkIGEgcnVsZSB0aGF0IG51bGxz
IG91dCBvdXIgYm9yZGVyIHdpZHRoLgotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlcldpZHRoLCAwLCBDU1NV
bml0VHlwZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25h
bEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgMCwgQ1NTVW5pdFR5cGU6
OkNTU19QWCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZyYW1lRWxlbWVu
dEJhc2U6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwg
c3R5bGUpOworICAgICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZTo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogdm9pZCBIVE1M
SUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmgKaW5kZXggMjFjMzdjNmZiMTRkLi41MjE1NWZlNzg3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTU5LDggKzU5LDggQEAgcHJpdmF0ZToKIAogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Ci0gICAg
Ym9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qg
ZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJikgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAgICAgYm9vbCBp
c0ludGVyYWN0aXZlQ29udGVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggN2Y4Nzg4ZTg3NGFlLi5i
MTljMjA1OTVjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApA
QCAtMTA2LDE0ICsxMDYsMTQgQEAgUmVmPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1l
bnQ6OmNyZWF0ZUZvckxlZ2FjeUZhY3RvcnlGdW5jdGlvbihEb2N1bWVudCYKICAgICByZXR1cm4g
aW1hZ2U7CiB9CiAKLWJvb2wgSFRNTEltYWdlRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTEltYWdlRWxlbWVu
dDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhl
aWdodEF0dHIgfHwgbmFtZSA9PSBib3JkZXJBdHRyIHx8IG5hbWUgPT0gdnNwYWNlQXR0ciB8fCBu
YW1lID09IGhzcGFjZUF0dHIgfHwgbmFtZSA9PSB2YWxpZ25BdHRyKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5h
bWUpOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBI
VE1MSW1hZ2VFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKSB7
CiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRoLCB2
YWx1ZSk7CkBAIC0xMzIsOSArMTMyLDkgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojpjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gYWxpZ25BdHRyKQogICAgICAgICBhcHBseUFsaWdubWVudEF0dHJp
YnV0ZVRvU3R5bGUodmFsdWUsIHN0eWxlKTsKICAgICBlbHNlIGlmIChuYW1lID09IHZhbGlnbkF0
dHIpCi0gICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCB2YWx1ZSk7CisgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWdu
LCB2YWx1ZSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxF
bGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSwgc3R5bGUpOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MSW1hZ2VFbGVtZW50OjppbWFn
ZVNvdXJjZVVSTCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmlu
ZGV4IDZlMWIzMzI5NzFlNS4uM2FiM2ZmMGFhNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaApAQCAtMTQ4LDggKzE0OCw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRl
OwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYp
IG92ZXJyaWRlOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb2xsZWN0UHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IGQ5MTE4ODdhNDZlYi4uYjI5Y2E4MDk2ZWQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTY4NiwxNCArNjg2LDE0IEBAIGJvb2wgSFRN
TElucHV0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQogICAg
IHJldHVybiBwcm90ZWN0ZWRJbnB1dFR5cGUtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVu
dHMpOwogfQogCi1ib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxJbnB1dEVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSB2c3BhY2VBdHRyIHx8IG5hbWUgPT0gaHNw
YWNlQXR0ciB8fCBuYW1lID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIgfHwgKG5h
bWUgPT0gYm9yZGVyQXR0ciAmJiBpc0ltYWdlQnV0dG9uKCkpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICByZXR1cm4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1M
SW5wdXRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAg
ICAgaWYgKG5hbWUgPT0gdnNwYWNlQXR0cikgewogICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5Ub3AsIHZhbHVlKTsKQEAgLTcxNyw3ICs3MTcsNyBA
QCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBib3JkZXJB
dHRyICYmIGlzSW1hZ2VCdXR0b24oKSkKICAgICAgICAgYXBwbHlCb3JkZXJBdHRyaWJ1dGVUb1N0
eWxlKHZhbHVlLCBzdHlsZSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVl
LCBzdHlsZSk7CisgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb2xsZWN0UHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiBp
bmxpbmUgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojppbml0aWFsaXplSW5wdXRUeXBlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNTJhYjgzMTdmMGI5Li4xZTUxN2Uw
MmMxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zOTAsOCAr
MzkwLDggQEAgcHJpdmF0ZToKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3Vz
ZUV2ZW50cykgZmluYWw7CiAKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAg
Ym9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVu
KCkgZmluYWw7CiAgICAgdm9pZCBwYXJzZXJEaWRTZXRBdHRyaWJ1dGVzKCkgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCmluZGV4IGIyYWE4ODU0NjkxNC4uOTk2YWEy
OTMxYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKQEAgLTU3LDMwICs1
NywzMCBAQCBSZWY8SFRNTExJRWxlbWVudD4gSFRNTExJRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEhUTUxMSUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotYm9vbCBIVE1MTElFbGVt
ZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBj
b25zdAorYm9vbCBIVE1MTElFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0g
dHlwZUF0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxM
SUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYgc3R5bGUpCit2b2lkIEhUTUxMSUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAo
bmFtZSA9PSB0eXBlQXR0cikgewogICAgICAgICBpZiAodmFsdWUgPT0gImEiKQotICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlTG93ZXJBbHBoYSk7CisgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZSwgQ1NTVmFsdWVMb3dlckFscGhhKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0g
IkEiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlVXBwZXJBbHBoYSk7Cisg
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVVcHBlckFscGhhKTsKICAgICAgICAgZWxz
ZSBpZiAodmFsdWUgPT0gImkiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVl
TG93ZXJSb21hbik7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVMb3dlclJvbWFu
KTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0gIkkiKQotICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHls
ZVR5cGUsIENTU1ZhbHVlVXBwZXJSb21hbik7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NT
VmFsdWVVcHBlclJvbWFuKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0gIjEiKQotICAgICAg
ICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQ
cm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlRGVjaW1hbCk7CisgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZSwgQ1NTVmFsdWVEZWNpbWFsKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYWRk
UHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxp
c3RTdHlsZVR5cGUsIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCB2YWx1ZSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7
CiB9CiAKIHZvaWQgSFRNTExJRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJ
RWxlbWVudC5oCmluZGV4IDhiZjliNzJiMmRlMy4uZDJkZjYxN2UxMzVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMSUVsZW1lbnQuaApAQCAtMzYsOCArMzYsOCBAQCBwcml2YXRlOgogICAgIEhUTUxM
SUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAg
ICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCmluZGV4IDE0YTQ3Mjk4YWU2Zi4uYjM5ZDE1NmEzNTY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCkBAIC02Miwx
NCArNjIsMTQgQEAgaW50IEhUTUxNYXJxdWVlRWxlbWVudDo6bWluaW11bURlbGF5KCkgY29uc3QK
ICAgICByZXR1cm4gMTY7IC8vIERvbid0IGFsbG93IHRpbWVycyBhdCA8IDE2bXMgaW50ZXJ2YWxz
IHRvIGF2b2lkIENQVSBob2dnaW5nOiB3ZWJraXQub3JnL2IvMTYwNjA5CiB9CiAKLWJvb2wgSFRN
TE1hcnF1ZWVFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MTWFycXVlZUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsK
ICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyIHx8IG5hbWUg
PT0gYmdjb2xvckF0dHIgfHwgbmFtZSA9PSB2c3BhY2VBdHRyIHx8IG5hbWUgPT0gaHNwYWNlQXR0
ciB8fCBuYW1lID09IHNjcm9sbGFtb3VudEF0dHIgfHwgbmFtZSA9PSBzY3JvbGxkZWxheUF0dHIg
fHwgbmFtZSA9PSBsb29wQXR0ciB8fCBuYW1lID09IGJlaGF2aW9yQXR0ciB8fCBuYW1lID09IGRp
cmVjdGlvbkF0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVu
dDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50
OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhU
TUxNYXJxdWVlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTE1hcnF1ZWVFbGVtZW50Ojpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUp
CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNF
bXB0eSgpKQpAQCAtOTksMTggKzk5LDE4IEBAIHZvaWQgSFRNTE1hcnF1ZWVFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtCiAgICAg
fSBlbHNlIGlmIChuYW1lID09IGxvb3BBdHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0xIiB8fCBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImluZmluaXRlIikpCi0gICAgICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtp
dE1hcnF1ZWVSZXBldGl0aW9uLCBDU1NWYWx1ZUluZmluaXRlKTsKKyAgICAgICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Vi
a2l0TWFycXVlZVJlcGV0aXRpb24sIENTU1ZhbHVlSW5maW5pdGUpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVdlYmtpdE1hcnF1ZWVSZXBldGl0aW9uLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
aWYgKG5hbWUgPT0gYmVoYXZpb3JBdHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgp
KQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVTdHlsZSwgdmFsdWUpOworICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdl
YmtpdE1hcnF1ZWVTdHlsZSwgdmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBkaXJlY3Rp
b25BdHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgYWRk
UHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdl
YmtpdE1hcnF1ZWVEaXJlY3Rpb24sIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlRGly
ZWN0aW9uLCB2YWx1ZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAg
ICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5h
bWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQgSFRNTE1hcnF1ZWVFbGVtZW50OjpzdGFydCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAppbmRleCBhMmYyZTU0NGU5
NWIuLmRmNWMyMjQ3YTk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFy
cXVlZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVu
dC5oCkBAIC01NCw4ICs1NCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1hcnF1ZWVF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0g
ICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmlu
YWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAgICAgdm9pZCBzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAppbmRleCA3YzhiOTM1NDExZTAuLmVi
MDU1MGJjZTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCkBA
IC01OSwyOCArNTksMjggQEAgUmVmPEhUTUxPTGlzdEVsZW1lbnQ+IEhUTUxPTGlzdEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIVE1MT0xpc3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLWJv
b2wgSFRNTE9MaXN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTE9MaXN0RWxlbWVudDo6aGFzUHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAog
ewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJl
dHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1l
KTsKIH0KIAotdm9pZCBIVE1MT0xpc3RFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MT0xpc3RFbGVt
ZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgaWYg
KHZhbHVlID09ICJhIikKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCBDU1NWYWx1ZUxvd2Vy
QWxwaGEpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlTG93ZXJBbHBoYSk7CiAg
ICAgICAgIGVsc2UgaWYgKHZhbHVlID09ICJBIikKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBl
LCBDU1NWYWx1ZVVwcGVyQWxwaGEpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVl
VXBwZXJBbHBoYSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09ICJpIikKLSAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlMaXN0U3R5bGVUeXBlLCBDU1NWYWx1ZUxvd2VyUm9tYW4pOworICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHls
ZVR5cGUsIENTU1ZhbHVlTG93ZXJSb21hbik7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09ICJJ
IikKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShz
dHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCBDU1NWYWx1ZVVwcGVyUm9tYW4pOworICAg
ICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQ
cm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlVXBwZXJSb21hbik7CiAgICAgICAgIGVsc2Ug
aWYgKHZhbHVlID09ICIxIikKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCBDU1NWYWx1ZURl
Y2ltYWwpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlRGVjaW1hbCk7CiAgICAg
fSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKIHZvaWQgSFRNTE9MaXN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCmluZGV4IDJmNGMzOTcyMGVjZS4uZmQ4MzU1YmVlMTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaApAQCAtNDksOCArNDksOCBAQCBwcml2YXRl
OgogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGl0ZW1Db3VudCgpIGNvbnN0OwogCiAgICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAg
dm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5h
bDsKIAogICAgIE9wdGlvbmFsPGludD4gbV9zdGFydDsKICAgICBtdXRhYmxlIE9wdGlvbmFsPHVu
c2lnbmVkPiBtX2l0ZW1Db3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAKaW5kZXggYTZmM2MwZjEyZDI3Li5kN2I4ZTRiYjBjZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC04NSwxOSArODUsMTkgQEAgaW50IEhUTUxP
YmplY3RFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXgoKSBjb25zdAogICAgIHJldHVybiAwOwogfQog
Ci1ib29sIEhUTUxPYmplY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6aGFzUHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBj
b25zdAogewogICAgIGlmIChuYW1lID09IGJvcmRlckF0dHIpCiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIHJldHVybiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAo
bmFtZSA9PSBib3JkZXJBdHRyKQogICAgICAgICBhcHBseUJvcmRlckF0dHJpYnV0ZVRvU3R5bGUo
dmFsdWUsIHN0eWxlKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUp
OworICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB2b2lkIEhUTUxPYmpl
Y3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aAppbmRleCA2ZjA2MmFhNzUxNjguLjdkYjVkMGI0MmY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuaApAQCAtNjMsOCArNjMsOCBAQCBwcml2YXRlOgogICAgIGludCBk
ZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKLSAgICBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5h
bDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMm
KSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKICAgICBJbnNlcnRlZElu
dG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250
YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwCmluZGV4
IGVmYTlkN2FkMWUxNC4uNzE3MGExZjMzMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQYXJhZ3JhcGhFbGVtZW50LmNwcApAQCAtNTEsMTkgKzUxLDE5IEBAIFJlZjxIVE1MUGFyYWdy
YXBoRWxlbWVudD4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFBhcmFncmFwaEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHls
ZSkKK3ZvaWQgSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9
PSBhbGlnbkF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KHZhbHVlLCAibWlkZGxlIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUs
ICJjZW50ZXIiKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1
dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0Q2VudGVy
KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0Q2VudGVyKTsKICAgICAgICAg
ZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJsZWZ0IikpCi0g
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUs
IENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZVdlYmtpdExlZnQpOworICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRl
eHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRMZWZ0KTsKICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJyaWdodCIpKQotICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRB
bGlnbiwgQ1NTVmFsdWVXZWJraXRSaWdodCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1
ZVdlYmtpdFJpZ2h0KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgdmFs
dWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgdmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBI
VE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZh
bHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmgKaW5kZXggZGMzYWE4Yjk1NDhhLi5hZjRk
ZDcyNzY0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmgK
QEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MUGFyYWdyYXBoRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIHZvaWQg
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuY3BwCmluZGV4IDg1MDc4MThlZjljZS4uNWNlY2FlYmZkM2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMTU5LDE0ICsxNTksMTQgQEAg
UmVuZGVyV2lkZ2V0KiBIVE1MUGx1Z0luRWxlbWVudDo6cmVuZGVyV2lkZ2V0TG9hZGluZ1BsdWdp
bigpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlcldpZGdldCgpOyAvLyBUaGlzIHdpbGwgcmV0dXJu
IG51bGxwdHIgaWYgdGhlIHJlbmRlcmVyIGlzIG5vdCBhIFJlbmRlcldpZGdldC4KIH0KIAotYm9v
bCBIVE1MUGx1Z0luRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QK
IHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyIHx8IG5h
bWUgPT0gdnNwYWNlQXR0ciB8fCBuYW1lID09IGhzcGFjZUF0dHIgfHwgbmFtZSA9PSBhbGlnbkF0
dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRnJhbWVPd25lckVsZW1l
bnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MRnJhbWVP
d25lckVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9
CiAKLXZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhUTUxQbHVnSW5FbGVtZW50
Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQogICAgICAgICBhZGRIVE1M
TGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgdmFsdWUpOwpAQCAtMTgxLDcg
KzE4MSw3IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lCiAgICAgfSBlbHNlIGlmIChuYW1lID09
IGFsaWduQXR0cikKICAgICAgICAgYXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVUb1N0eWxlKHZhbHVl
LCBzdHlsZSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAg
ICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IDAxZmRkOTc1YzFhMS4uYTczYTVkNGJlNzFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC04OCw4ICs4OCw4IEBAIHBy
b3RlY3RlZDoKIAogICAgIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgd2lsbERldGFjaFJlbmRlcmVycygpIG92
ZXJyaWRlOwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCB1c2VGYWxsYmFja0NvbnRlbnQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3Bw
CmluZGV4IGM4YjRmN2FjM2QwOC4uMDNmZGIxYjU4Y2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcmVFbGVtZW50LmNwcApAQCAtNDUsMTkgKzQ1LDE5IEBAIFJlZjxIVE1MUHJlRWxlbWVudD4g
SFRNTFByZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFByZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotYm9vbCBIVE1MUHJlRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFByZUVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSB3cmFwQXR0cikKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShu
YW1lKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFByZUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhU
TUxQcmVFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd3JhcEF0dHIpCiAgICAg
ICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQcmVX
cmFwKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBz
dHlsZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaAppbmRleCBkZGNk
YzU2YmI2NTkuLjc3MzNlMjVhMmY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQu
aApAQCAtMzQsOCArMzQsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQcmVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7Cisg
ICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCAzNGRhZWI4
ZGM0M2YuLjhkZjZhMWMxYWFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpOwogfQog
Ci1ib29sIEhUTUxTZWxlY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6aGFzUHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBj
b25zdAogewogICAgIGlmIChuYW1lID09IGFsaWduQXR0cikgewogICAgICAgICAvLyBEb24ndCBt
YXAgJ2FsaWduJyBhdHRyaWJ1dGUuIFRoaXMgbWF0Y2hlcyB3aGF0IEZpcmVmb3gsIE9wZXJhIGFu
ZCBJRSBkby4KQEAgLTI4NSw3ICsyODUsNyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50Ojppc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnRXaXRoU3RhdGU6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVy
biBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpoYXNQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKG5hbWUpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCAyNzJmMWM0MDQ4
MzEuLmI0NGI4Y2U1YzY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgZmluYWw7CiAKICAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7
Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgZmluYWw7CiAgICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKaW5kZXggOWQ5N2UyODZhOGMxLi5jNTQ4ZTUwNmMw
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
Y3BwCkBAIC00NiwxMyArNDYsMTMgQEAgUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBIVE1M
VGFibGVDYXB0aW9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQogCi12b2lkIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1M
VGFibGVDYXB0aW9uRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11
dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IGFsaWduQXR0
cikgewogICAgICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGFkZFByb3Bl
cnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlDYXB0aW9u
U2lkZSwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNhcHRpb25TaWRlLCB2YWx1ZSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCA4
MDFjZGUwYmIxNjUuLjQ5MmUzODkwNGM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCi0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJikgZmluYWw7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAKaW5kZXggNTkzZjdk
MjQ3NjdkLi40MzAxNGFhYWEzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuY3BwCkBAIC05MCwxNyArOTAsMTcgQEAgaW50IEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpjZWxsSW5kZXgoKSBjb25zdAogICAgIHJldHVybiBpbmRleDsKIH0KIAotYm9vbCBIVE1M
VGFibGVDZWxsRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6Omhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QK
IHsKICAgICBpZiAobmFtZSA9PSBub3dyYXBBdHRyIHx8IG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5h
bWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxU
YWJsZVBhcnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1
cm4gSFRNTFRhYmxlUGFydEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhU
TUxUYWJsZUNlbGxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gbm93cmFwQXR0
cikKLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlV2Via2l0Tm93cmFwKTsKKyAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdo
aXRlU3BhY2UsIENTU1ZhbHVlV2Via2l0Tm93cmFwKTsKICAgICBlbHNlIGlmIChuYW1lID09IHdp
ZHRoQXR0cikgewogICAgICAgICBpZiAocGFyc2VIVE1MSW50ZWdlcih2YWx1ZSkudmFsdWVfb3Io
MCkgPiAwKSAvLyB3aWR0aD0iMCIgaXMgaWdub3JlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFdp
bklFLgogICAgICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V2lkdGgsIHZhbHVlKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIEhUTUxUYWJsZUNlbGxFbGVt
ZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TgogICAgICAgICBpZiAocGFyc2VIVE1MSW50ZWdlcih2YWx1ZSkudmFsdWVfb3IoMCkgPiAwKSAv
LyBoZWlnaHQ9IjAiIGlzIGlnbm9yZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBXaW5JRS4KICAg
ICAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUhlaWdodCwg
dmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAg
ICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB2b2lkIEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
UwogICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogfQogCi1jb25zdCBTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZUNlbGxFbGVtZW50Ojph
ZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdAorY29uc3QgU3R5bGVQ
cm9wZXJ0aWVzKiBIVE1MVGFibGVDZWxsRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbmFs
SGludFN0eWxlKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byB0YWJsZSA9IGZpbmRQYXJlbnRUYWJs
ZSgpKQogICAgICAgICByZXR1cm4gdGFibGUtPmFkZGl0aW9uYWxDZWxsU3R5bGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAppbmRleCBmMDQ1MzkzMTNkYjcu
LjdmOTIzMDcwYmI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
ZWxsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1l
bnQuaApAQCAtNTUsOSArNTUsOSBAQCBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNlbGxFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwot
ICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIG92ZXJyaWRlOwotICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogYWRkaXRp
b25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOworICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyog
YWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAppbmRleCA1ZTI0
Yjk3ZDhkNWQuLjkxMjY1MTNjYjBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNvbEVsZW1lbnQuY3BwCkBAIC01NCwxOSArNTQsMTkgQEAgUmVmPEhUTUxUYWJsZUNvbEVsZW1l
bnQ+IEhUTUxUYWJsZUNvbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFibGVDb2xFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKLWJvb2wgSFRNTFRhYmxlQ29sRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFRh
YmxlQ29sRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTFRhYmxlUGFydEVs
ZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZv
aWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMm
IHN0eWxlKQogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgYWRkSFRNTExl
bmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2lkdGgsIHZhbHVlKTsKICAgICBlbHNlCi0g
ICAgICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTFRhYmxlUGFydEVsZW1l
bnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBz
dHlsZSk7CiB9CiAKIHZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC04OCw3
ICs4OCw3IEBAIHZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0CiAgICAgICAgIEhUTUxUYWJsZVBhcnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKLWNvbnN0IFN0eWxlUHJv
cGVydGllcyogSFRNTFRhYmxlQ29sRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKCkgY29uc3QKK2NvbnN0IFN0eWxlUHJvcGVydGllcyogSFRNTFRhYmxlQ29sRWxl
bWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3QKIHsKICAgICBp
ZiAoIWhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKaW5kZXggMmY0ZjYzODJiNjRj
Li42MTU3ZjA2YmU4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q29sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVu
dC5oCkBAIC00Myw5ICs0Myw5IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ29sRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIGZpbmFsOwotICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogYWRkaXRpb25h
bFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYpIGZpbmFsOworICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFBy
ZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3QgZmluYWw7CiAKICAgICB1bnNpZ25lZCBtX3Nw
YW47CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggYmY3
OWQyYzUwMGExLi40ZGU0NTM0Y2FhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVF
bGVtZW50LmNwcApAQCAtMzA0LDE0ICszMDQsMTQgQEAgc3RhdGljIGJvb2wgZ2V0Qm9yZGVyc0Zy
b21GcmFtZUF0dHJpYnV0ZVZhbHVlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBib29sJiBib3IK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9p
ZCBIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRy
KQogICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwg
dmFsdWUpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgYWRkSFRN
TExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0LCB2YWx1ZSk7CiAgICAgZWxz
ZSBpZiAobmFtZSA9PSBib3JkZXJBdHRyKSAKLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlcldpZHRoLCBwYXJzZUJv
cmRlcldpZHRoQXR0cmlidXRlKHZhbHVlKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CisgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlC
b3JkZXJXaWR0aCwgcGFyc2VCb3JkZXJXaWR0aEF0dHJpYnV0ZSh2YWx1ZSksIENTU1VuaXRUeXBl
OjpDU1NfUFgpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gYm9yZGVyY29sb3JBdHRyKSB7CiAgICAg
ICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWRkSFRNTENvbG9yVG9TdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgdmFsdWUpOwpAQCAtMzIzLDcgKzMyMyw3
IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0
eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1hZ2VWYWx1ZTo6
Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZTo6Tm8pKSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHZhbGlnbkF0dHIpIHsKICAgICAgICAg
aWYgKCF2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgdmFsdWUp
OworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIHZhbHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUg
PT0gY2VsbHNwYWNpbmdBdHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyU3Bh
Y2luZywgdmFsdWUpOwpAQCAtMzM2LDM2ICszMzYsMzYgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50
Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gYWxpZ25BdHRyKSB7CiAgICAgICAgIGlmICghdmFs
dWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UodmFsdWUsICJjZW50ZXIiKSkgewotICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5JbmxpbmVT
dGFydCwgQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luSW5saW5lRW5kLCBD
U1NWYWx1ZUF1dG8pOworICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25h
bEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5JbmxpbmVTdGFydCwgQ1NTVmFsdWVB
dXRvKTsKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luSW5saW5lRW5kLCBDU1NWYWx1ZUF1dG8pOwogICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZsb2F0LCB2YWx1ZSk7CisgICAgICAg
ICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQ
cm9wZXJ0eUZsb2F0LCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0g
cnVsZXNBdHRyKSB7CiAgICAgICAgIC8vIFRoZSBwcmVzZW5jZSBvZiBhIHZhbGlkIHJ1bGVzIGF0
dHJpYnV0ZSBjYXVzZXMgYm9yZGVyIGNvbGxhcHNpbmcgdG8gYmUgZW5hYmxlZC4KICAgICAgICAg
aWYgKG1fcnVsZXNBdHRyICE9IFVuc2V0UnVsZXMpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQ29sbGFw
c2UsIENTU1ZhbHVlQ29sbGFwc2UpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlckNvbGxhcHNlLCBDU1NWYWx1
ZUNvbGxhcHNlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gZnJhbWVBdHRyKSB7CiAgICAgICAg
IGJvb2wgYm9yZGVyVG9wOwogICAgICAgICBib29sIGJvcmRlclJpZ2h0OwogICAgICAgICBib29s
IGJvcmRlckJvdHRvbTsKICAgICAgICAgYm9vbCBib3JkZXJMZWZ0OwogICAgICAgICBpZiAoZ2V0
Qm9yZGVyc0Zyb21GcmFtZUF0dHJpYnV0ZVZhbHVlKHZhbHVlLCBib3JkZXJUb3AsIGJvcmRlclJp
Z2h0LCBib3JkZXJCb3R0b20sIGJvcmRlckxlZnQpKSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0
eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyV2lk
dGgsIENTU1ZhbHVlVGhpbik7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIGJvcmRlclRv
cCA/IENTU1ZhbHVlU29saWQgOiBDU1NWYWx1ZUhpZGRlbik7Ci0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVy
Qm90dG9tU3R5bGUsIGJvcmRlckJvdHRvbSA/IENTU1ZhbHVlU29saWQgOiBDU1NWYWx1ZUhpZGRl
bik7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlLCBib3JkZXJMZWZ0ID8gQ1NTVmFsdWVT
b2xpZCA6IENTU1ZhbHVlSGlkZGVuKTsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlLCBi
b3JkZXJSaWdodCA/IENTU1ZhbHVlU29saWQgOiBDU1NWYWx1ZUhpZGRlbik7CisgICAgICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
Qm9yZGVyV2lkdGgsIENTU1ZhbHVlVGhpbik7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIGJv
cmRlclRvcCA/IENTU1ZhbHVlU29saWQgOiBDU1NWYWx1ZUhpZGRlbik7CisgICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9y
ZGVyQm90dG9tU3R5bGUsIGJvcmRlckJvdHRvbSA/IENTU1ZhbHVlU29saWQgOiBDU1NWYWx1ZUhp
ZGRlbik7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlLCBib3JkZXJMZWZ0ID8gQ1NTVmFsdWVT
b2xpZCA6IENTU1ZhbHVlSGlkZGVuKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50
YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlLCBib3Jk
ZXJSaWdodCA/IENTU1ZhbHVlU29saWQgOiBDU1NWYWx1ZUhpZGRlbik7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6Y29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsK
IH0KIAotYm9vbCBIVE1MVGFibGVFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MVGFibGVFbGVtZW50OjpoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0
ciB8fCBuYW1lID09IGJnY29sb3JBdHRyIHx8IG5hbWUgPT0gYmFja2dyb3VuZEF0dHIgfHwgbmFt
ZSA9PSB2YWxpZ25BdHRyIHx8IG5hbWUgPT0gdnNwYWNlQXR0ciB8fCBuYW1lID09IGhzcGFjZUF0
dHIgfHwgbmFtZSA9PSBjZWxsc3BhY2luZ0F0dHIgfHwgbmFtZSA9PSBib3JkZXJBdHRyIHx8IG5h
bWUgPT0gYm9yZGVyY29sb3JBdHRyIHx8IG5hbWUgPT0gZnJhbWVBdHRyIHx8IG5hbWUgPT0gcnVs
ZXNBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omlz
UHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFz
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAogdm9pZCBIVE1MVGFi
bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTQyNyw3ICs0MjcsNyBAQCBzdGF0aWMgU3R5bGVQcm9w
ZXJ0aWVzKiBsZWFrQm9yZGVyU3R5bGUoQ1NTVmFsdWVJRCB2YWx1ZSkKICAgICByZXR1cm4gJnN0
eWxlLmxlYWtSZWYoKTsKIH0KIAotY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVFbGVt
ZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdAorY29uc3Qg
U3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoKSBjb25zdAogewogICAgIGlmIChtX2ZyYW1lQXR0cikKICAgICAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IDgyNDY4OTY4
ZWMyZi4uNTc2NGFkYTMzNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aApAQCAtNzIsMTIgKzcyLDEyIEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKLSAgICBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5h
bDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMm
KSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0
dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFVzZWQgdG8g
b2J0YWluIGVpdGhlciBhIHNvbGlkIG9yIG91dHNldCBib3JkZXIgZGVjbCBhbmQgdG8gZGVhbCB3
aXRoIHRoZSBmcmFtZSBhbmQgcnVsZXMgYXR0cmlidXRlcy4KLSAgICBjb25zdCBTdHlsZVByb3Bl
cnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIGNvbnN0IGZpbmFs
OworICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRl
VVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKaW5kZXggYzRjYzMzMTVjOTcyLi5lYWU1NjI4
MDRmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3Bw
CkBAIC00MiwxNCArNDIsMTQgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxUYWJs
ZVBhcnRFbGVtZW50KTsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotYm9vbCBIVE1M
VGFibGVQYXJ0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFRhYmxlUGFydEVsZW1lbnQ6Omhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QK
IHsKICAgICBpZiAobmFtZSA9PSBiZ2NvbG9yQXR0ciB8fCBuYW1lID09IGJhY2tncm91bmRBdHRy
IHx8IG5hbWUgPT0gdmFsaWduQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIpCiAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxl
KQordm9pZCBIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09
IGJnY29sb3JBdHRyKQogICAgICAgICBhZGRIVE1MQ29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvciwgdmFsdWUpOwpAQCAtNTksMzEgKzU5LDMxIEBAIHZvaWQgSFRN
TFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROCiAgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3Vt
ZW50KCkuY29tcGxldGVVUkwodXJsKSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6Tm8pKSk7CiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHZhbGlnbkF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAidG9wIikpCi0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgQ1NTVmFsdWVUb3ApOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIENTU1ZhbHVl
VG9wKTsKICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFs
dWUsICJtaWRkbGUiKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZU1pZGRs
ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFsdWVNaWRkbGUpOwogICAgICAgICBl
bHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImJvdHRvbSIpKQot
ICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIENTU1ZhbHVlQm90dG9tKTsKKyAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZUJvdHRvbSk7CiAgICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAiYmFzZWxpbmUiKSkKLSAgICAgICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZUJhc2VsaW5lKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWdu
LCBDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2Fs
QWxpZ24sIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhp
bnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCB2YWx1ZSk7CiAgICAgfSBl
bHNlIGlmIChuYW1lID09IGFsaWduQXR0cikgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UodmFsdWUsICJtaWRkbGUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSh2YWx1ZSwgImNlbnRlciIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFs
dWVXZWJraXRDZW50ZXIpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFs
SGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRDZW50
ZXIpOwogICAgICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1
ZSwgImFic21pZGRsZSIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVDZW50ZXIp
OworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBlbHNlIGlm
IChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImxlZnQiKSkKLSAgICAgICAg
ICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJv
cGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0TGVmdCk7CisgICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWdu
LCBDU1NWYWx1ZVdlYmtpdExlZnQpOwogICAgICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgInJpZ2h0IikpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBD
U1NWYWx1ZVdlYmtpdFJpZ2h0KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0
UmlnaHQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7Cisg
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGhlaWdo
dEF0dHIpIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhZGRI
VE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQsIHZhbHVlKTsKICAgICB9
IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVj
dFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0K
IAogUmVmUHRyPGNvbnN0IEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpm
aW5kUGFyZW50VGFibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVQYXJ0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0
RWxlbWVudC5oCmluZGV4IDA0Zjk0NzFiYWJhMi4uNzg0Yjk4YWRmMzM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCkBAIC0zOSw4ICszOSw4IEBAIHByb3Rl
Y3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CisgICAgYm9vbCBo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPGNvbnN0IEhUTUxUYWJsZUVs
ZW1lbnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKaW5kZXggNDk5OWMxNThlNmJhLi4xOGFl
MjRhZmE2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4g
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgY29uc3QKK2NvbnN0
IFN0eWxlUHJvcGVydGllcyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVz
ZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0CiB7CiAgICAgYXV0byB0YWJsZSA9IGZpbmRQYXJl
bnRUYWJsZSgpOwogICAgIGlmICghdGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmgKaW5kZXggZWZhMzNlOTdlYjk5Li43OTEwNDMwZThkMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCi0gICAgY29uc3Qg
U3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBj
b25zdCBmaW5hbDsKKyAgICBjb25zdCBTdHlsZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50
YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXgg
NWM2ZjhlYjBlZjA3Li5kNjc5NzRhZWViZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgSFRNTFRleHRBcmVh
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAg
ICAgIHNldE5vbkRpcnR5VmFsdWUoZGVmYXVsdFZhbHVlKCkpOwogfQogCi1ib29sIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0Citib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFs
SGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAg
ICBpZiAobmFtZSA9PSBhbGlnbkF0dHIpIHsKICAgICAgICAgLy8gRG9uJ3QgbWFwICdhbGlnbicg
YXR0cmlidXRlLiAgVGhpcyBtYXRjaGVzIHdoYXQgRmlyZWZveCwgT3BlcmEgYW5kIElFIGRvLgpA
QCAtMTQ5LDIxICsxNDksMjEgQEAgYm9vbCBIVE1MVGV4dEFyZWFFbGVtZW50Ojppc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb24KIAogICAgIGlmIChu
YW1lID09IHdyYXBBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAg
IHJldHVybiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxl
KQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0g
d3JhcEF0dHIpIHsKICAgICAgICAgaWYgKHNob3VsZFdyYXBUZXh0KCkpIHsKLSAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVByZVdyYXApOwotICAgICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdvcmRXcmFwLCBD
U1NWYWx1ZUJyZWFrV29yZCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQcmVXcmFw
KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlXb3JkV3JhcCwgQ1NTVmFsdWVCcmVha1dvcmQpOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlUHJlKTsKLSAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlXb3JkV3JhcCwgQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1Zh
bHVlUHJlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlXb3JkV3JhcCwgQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICB9
CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAg
ICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQgSFRNTFRleHRBcmVh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5oCmluZGV4IGVlYmM0NWE0YTBhMi4uM2E3YWI4ZGM4Y2M2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtMTExLDggKzExMSw4IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwogICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKLSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11
dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFs
SGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmlu
YWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKICAgICBib29s
IGFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCByZXNl
dCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCA0Y2EwM2RiODQ5MmMuLjQzYjUwYTFiMTMwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAg
LTgwMyw3ICs4MDMsNyBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjphZGp1c3RJ
bm5lclRleHRTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50UwogICAgIHRleHRCbG9ja1N0
eWxlLnNldFVuaWNvZGVCaWRpKHBhcmVudFN0eWxlLnVuaWNvZGVCaWRpKCkpOwogCiAgICAgaWYg
KGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0RWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChjb25z
dCBTdHlsZVByb3BlcnRpZXMqIHByb3BlcnRpZXMgPSBpbm5lclRleHQtPnByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKCkpIHsKKyAgICAgICAgaWYgKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJv
cGVydGllcyA9IGlubmVyVGV4dC0+cHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSkgewogICAgICAg
ICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IHByb3BlcnRpZXMtPmdldFByb3BlcnR5Q1NT
VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5KTsKICAgICAgICAgICAgIGlmIChpczxD
U1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQogICAgICAgICAgICAgICAgIHRleHRCbG9ja1N0eWxl
LnNldFVzZXJNb2RpZnkoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5jcHAKaW5kZXggNTcwZWE3ZmZmZWFjLi45
M2MzMTI0NmU5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcApA
QCAtNDksMTkgKzQ5LDE5IEBAIFJlZjxIVE1MVUxpc3RFbGVtZW50PiBIVE1MVUxpc3RFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTFVMaXN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1i
b29sIEhUTUxVTGlzdEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxVTGlzdEVsZW1lbnQ6Omhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QK
IHsKICAgICBpZiAobmFtZSA9PSB0eXBlQXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
cmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFt
ZSk7CiB9CiAKLXZvaWQgSFRNTFVMaXN0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTFVMaXN0RWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKQotICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlz
dFN0eWxlVHlwZSwgdmFsdWUpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgdmFsdWUpOwogICAgIGVs
c2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFBy
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaAppbmRleCBiNTJjMjAzMGU1N2Mu
LjBjYTIyMjk2MDcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmgKQEAg
LTM1LDggKzM1LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVUxpc3RFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAg
Ym9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggNDIzZWQxZDY1MmJi
Li5hN2FlYmUzN2I4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQXR0YWNoUmVu
ZGVyZXJzKCkKICAgICB9CiB9CiAKLXZvaWQgSFRNTFZpZGVvRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQg
SFRNTFZpZGVvRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikg
ewogICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwg
dmFsdWUpOwpAQCAtMTIwLDE0ICsxMjAsMTQgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAg
ICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0LCB2YWx1
ZSk7CiAgICAgICAgIGFwcGx5QXNwZWN0UmF0aW9Gcm9tV2lkdGhBbmRIZWlnaHRBdHRyaWJ1dGVz
VG9TdHlsZShzdHlsZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwor
ICAgICAgICBIVE1MTWVkaWFFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi1ib29sIEhUTUxWaWRlb0VsZW1lbnQ6
OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
Citib29sIEhUTUxWaWRlb0VsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSB3
aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gSFRNTE1lZGlhRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7
CisgICAgcmV0dXJuIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUobmFtZSk7CiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IDBjMTc0YjhiNDc2MS4uNGRh
MTc5MjY1M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtMTE3
LDggKzExNyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJikgZmluYWw7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsK
ICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYp
IGZpbmFsOwogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcGxheWVyKCkgJiYgcGxh
eWVyKCktPmhhc1ZpZGVvKCk7IH0KICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbihIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGNvbnN0IGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNw
cAppbmRleCBjMmIxODAwMzdlOTQuLjdiNTMzYzk5MDgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTExNDks
NyArMTE0OSw3IEBAIFJlZjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD4+
IEluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yTWF0CiBSZWZQdHI8UHJvdG9jb2w6OkNT
Uzo6Q1NTU3R5bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvckF0dHJpYnV0ZXNT
dHlsZShTdHlsZWRFbGVtZW50JiBlbGVtZW50KQogewogICAgIC8vIEZJWE1FOiBVZ2xpbmVzcyBi
ZWxvdy4KLSAgICBhdXRvKiBhdHRyaWJ1dGVTdHlsZSA9IGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0
aWVzKj4oZWxlbWVudC5wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpKTsKKyAgICBhdXRvKiBh
dHRyaWJ1dGVTdHlsZSA9IGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0aWVzKj4oZWxlbWVudC5wcmVz
ZW50YXRpb25hbEhpbnRTdHlsZSgpKTsKICAgICBpZiAoIWF0dHJpYnV0ZVN0eWxlKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3Bw
CmluZGV4IDYwN2U2MmVjMDg2OC4uYjI0YzM0YzE0NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTEVsZW1lbnQuY3BwCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCB2b2lkIE1hdGhNTEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmCiAgICAgfQogfQogCi1ib29sIE1hdGhNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIE1hdGhNTEVsZW1l
bnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBuYW1l
ID09IGNvbG9yQXR0ciB8fCBuYW1lID09IGRpckF0dHIgfHwgbmFtZSA9PSBmb250ZmFtaWx5QXR0
ciB8fCBuYW1lID09IGZvbnRzaXplQXR0ciB8fCBuYW1lID09IGZvbnRzdHlsZUF0dHIgfHwgbmFt
ZSA9PSBmb250d2VpZ2h0QXR0ciB8fCBuYW1lID09IG1hdGhiYWNrZ3JvdW5kQXR0ciB8fCBuYW1l
ID09IG1hdGhjb2xvckF0dHIgfHwgbmFtZSA9PSBtYXRoc2l6ZUF0dHIgfHwgbmFtZSA9PSBkaXNw
bGF5c3R5bGVBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gU3R5bGVkRWxl
bWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIFN0eWxlZEVs
ZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgY29udmVydE1hdGhTaXplSWZOZWVkZWQoY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCkBAIC0xMzIsNDMgKzEzMiw0MyBAQCBzdGF0aWMgU3RyaW5nIGNvbnZlcnRNYXRoU2l6ZUlm
TmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiBtYWtlU3RyaW5nKEZv
cm1hdHRlZE51bWJlcjo6Zml4ZWRXaWR0aCh1bml0bGVzc1ZhbHVlICogMTAwLCAzKSwgJyUnKTsK
IH0KIAotdm9pZCBNYXRoTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBNYXRoTUxFbGVtZW50Ojpjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5
bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gbWF0aGJhY2tncm91bmRBdHRyKQotICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5QmFj
a2dyb3VuZENvbG9yLCB2YWx1ZSk7CisgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25h
bEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIHZhbHVlKTsKICAg
ICBlbHNlIGlmIChuYW1lID09IG1hdGhzaXplQXR0cikKLSAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCBjb252
ZXJ0TWF0aFNpemVJZk5lZWRlZCh2YWx1ZSkpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Rm9udFNpemUsIGNvbnZlcnRNYXRo
U2l6ZUlmTmVlZGVkKHZhbHVlKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBtYXRoY29sb3JBdHRy
KQotICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUs
IENTU1Byb3BlcnR5Q29sb3IsIHZhbHVlKTsKKyAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNvbG9yLCB2YWx1ZSk7CiAgICAgZWxz
ZSBpZiAobmFtZSA9PSBkaXJBdHRyKSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdz
KCkuY29yZU1hdGhNTEVuYWJsZWQoKSB8fCBoYXNUYWdOYW1lKG1hdGhUYWcpIHx8IGhhc1RhZ05h
bWUobXJvd1RhZykgfHwgaGFzVGFnTmFtZShtc3R5bGVUYWcpIHx8IGlzTWF0aE1MVG9rZW4oKSkK
LSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHZh
bHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gZGlzcGxheXN0eWxlQXR0cikgewogICAgICAg
ICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJmYWxzZSIpKQotICAg
ICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBD
U1NQcm9wZXJ0eU1hdGhTdHlsZSwgQ1NTVmFsdWVDb21wYWN0KTsKKyAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXRoU3R5
bGUsIENTU1ZhbHVlQ29tcGFjdCk7CiAgICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHZhbHVlLCAidHJ1ZSIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hdGhTdHlsZSwgQ1NT
VmFsdWVOb3JtYWwpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hdGhTdHlsZSwgQ1NTVmFsdWVOb3JtYWwpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuY29yZU1hdGhNTEVu
YWJsZWQoKSkgewotICAgICAgICAgICAgU3R5bGVkRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgICAgICBTdHls
ZWRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSwgc3R5bGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8v
IEZJWE1FOiBUaGUgZm9sbG93aW5nIGFyZSBkZXByZWNhdGVkIGF0dHJpYnV0ZXMgdGhhdCBzaG91
bGQgbG9zZSBpZiB0aGVyZSBpcyBhIGNvbmZsaWN0IHdpdGggYSBub24tZGVwcmVjYXRlZCBhdHRy
aWJ1dGUuCiAgICAgICAgIGlmIChuYW1lID09IGZvbnRzaXplQXR0cikKLSAgICAgICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlG
b250U2l6ZSwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFs
SGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCB2YWx1ZSk7CiAgICAgICAgIGVs
c2UgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5QmFja2dyb3VuZENv
bG9yLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCB2YWx1ZSk7CiAgICAgICAg
IGVsc2UgaWYgKG5hbWUgPT0gY29sb3JBdHRyKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNvbG9yLCB2YWx1ZSk7
CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUs
IENTU1Byb3BlcnR5Q29sb3IsIHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSBmb250
c3R5bGVBdHRyKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgdmFsdWUpOworICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZv
bnRTdHlsZSwgdmFsdWUpOwogICAgICAgICBlbHNlIGlmIChuYW1lID09IGZvbnR3ZWlnaHRBdHRy
KQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFByb3Bl
cnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlGb250V2VpZ2h0
LCB2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gZm9udGZhbWlseUF0dHIpCi0gICAg
ICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5Rm9udEZhbWlseSwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIHZhbHVl
KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKG5hbWUpKTsKLSAgICAgICAgICAgIFN0eWxlZEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICAgICAg
QVNTRVJUKCFoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpKTsKKyAgICAg
ICAgICAgIFN0eWxlZEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuaAppbmRleCBlN2U4NWNhNmNlMTEuLjhmNzBjNzA0MTc4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCkBAIC05NSw4ICs5NSw4IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGJvb2wgaXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJy
aWRlOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0Vs
ZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCAwNWUyODQzZGMxZjEuLmUxZGNkNDViZjdiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAt
NTYzLDE1ICs1NjMsMTQgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBbGxSdWxl
cyhib29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcywgYm9vbCBpbmMKICAgICBpZiAobWF0Y2hB
dXRob3JBbmRVc2VyU3R5bGVzKQogICAgICAgICBtYXRjaFVzZXJSdWxlcygpOwogCi0gICAgLy8g
Tm93IGNoZWNrIGF1dGhvciBydWxlcywgYmVnaW5uaW5nIGZpcnN0IHdpdGggcHJlc2VudGF0aW9u
YWwgYXR0cmlidXRlcyBtYXBwZWQgZnJvbSBIVE1MLgogICAgIGlmIChpczxTdHlsZWRFbGVtZW50
PihlbGVtZW50KCkpKSB7CiAgICAgICAgIGF1dG8mIHN0eWxlZEVsZW1lbnQgPSBkb3duY2FzdDxT
dHlsZWRFbGVtZW50PihlbGVtZW50KCkpOwotICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0
aWVzKHN0eWxlZEVsZW1lbnQucHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSk7CisgICAgICAg
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3ByZXNlbnRhdGlvbmFsLWhpbnRzCisg
ICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoc3R5bGVkRWxlbWVudC5wcmVzZW50YXRp
b25hbEhpbnRTdHlsZSgpKTsKIAotICAgICAgICAvLyBOb3cgd2UgY2hlY2sgYWRkaXRpb25hbCBt
YXBwZWQgZGVjbGFyYXRpb25zLgotICAgICAgICAvLyBUYWJsZXMgYW5kIHRhYmxlIGNlbGxzIHNo
YXJlIGFuIGFkZGl0aW9uYWwgbWFwcGVkIHJ1bGUgdGhhdCBtdXN0IGJlIGFwcGxpZWQKLSAgICAg
ICAgLy8gYWZ0ZXIgYWxsIGF0dHJpYnV0ZXMsIHNpbmNlIHRoZWlyIG1hcHBlZCBzdHlsZSBkZXBl
bmRzIG9uIHRoZSB2YWx1ZXMgb2YgbXVsdGlwbGUgYXR0cmlidXRlcy4KLSAgICAgICAgYWRkRWxl
bWVudFN0eWxlUHJvcGVydGllcyhzdHlsZWRFbGVtZW50LmFkZGl0aW9uYWxQcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZSgpKTsKKyAgICAgICAgLy8gVGFibGVzIGFuZCB0YWJsZSBjZWxscyBzaGFy
ZSBhbiBhZGRpdGlvbmFsIHByZXNlbnRhdGlvbiBzdHlsZSB0aGF0IG11c3QgYmUgYXBwbGllZAor
ICAgICAgICAvLyBhZnRlciBhbGwgYXR0cmlidXRlcywgc2luY2UgdGhlaXIgc3R5bGUgZGVwZW5k
cyBvbiB0aGUgdmFsdWVzIG9mIG11bHRpcGxlIGF0dHJpYnV0ZXMuCisgICAgICAgIGFkZEVsZW1l
bnRTdHlsZVByb3BlcnRpZXMoc3R5bGVkRWxlbWVudC5hZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoKSk7CiAKICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50PihzdHlsZWRFbGVtZW50
KSkgewogICAgICAgICAgICAgYm9vbCBpc0F1dG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9NYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlLmNwcAppbmRleCBjZTVmMTVjZjZkOGUuLjViYTMw
OTg2MGU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvTWF0Y2hlZERlY2xhcmF0
aW9uc0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9NYXRjaGVkRGVjbGFyYXRp
b25zQ2FjaGUuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBNYXRjaGVkRGVjbGFyYXRpb25z
Q2FjaGU6OnN3ZWVwKCkKIHsKICAgICAvLyBMb29rIGZvciBjYWNoZSBlbnRyaWVzIGNvbnRhaW5p
bmcgYSBzdHlsZSBkZWNsYXJhdGlvbiB3aXRoIGEgc2luZ2xlIHJlZiBhbmQgcmVtb3ZlIHRoZW0u
CiAgICAgLy8gVGhpcyBtYXkgaGFwcGVuIHdoZW4gYW4gZWxlbWVudCBhdHRyaWJ1dGUgbXV0YXRp
b24gY2F1c2VzIGl0IHRvIGdlbmVyYXRlIGEgbmV3IGlubGluZVN0eWxlKCkKLSAgICAvLyBvciBw
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpLCBwb3RlbnRpYWxseSBsZWF2aW5nIHRoaXMgY2Fj
aGUgd2l0aCB0aGUgbGFzdCByZWYgb24gdGhlIG9sZCBvbmUuCisgICAgLy8gb3IgcHJlc2VudGF0
aW9uYWxIaW50U3R5bGUoKSwgcG90ZW50aWFsbHkgbGVhdmluZyB0aGlzIGNhY2hlIHdpdGggdGhl
IGxhc3QgcmVmIG9uIHRoZSBvbGQgb25lLgogICAgIGF1dG8gaGFzT25lUmVmID0gW10oYXV0byYg
ZGVjbGFyYXRpb25zKSB7CiAgICAgICAgIGZvciAoYXV0byYgbWF0Y2hlZFByb3BlcnRpZXMgOiBk
ZWNsYXJhdGlvbnMpIHsKICAgICAgICAgICAgIGlmIChtYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0
aWVzLT5oYXNPbmVSZWYoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jl
c29sdmVyLmNwcAppbmRleCBkOTYxZjc5NmU2ZjUuLmUwYWQxM2ExNjI1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjQxLDcgKzI0MSw3
IEBAIGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3Qg
Q29udGV4dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAoIXNoYXJpbmdDYW5kaWRhdGVIYXNJZGVudGljYWxTdHlsZUFmZmVjdGluZ0F0dHJpYnV0ZXMo
Y29udGV4dCwgY2FuZGlkYXRlRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Jj4oY2FuZGlkYXRlRWxlbWVudCkuYWRkaXRpb25h
bFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgIT0gY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50
Jj4oZWxlbWVudCkuYWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkpCisgICAg
aWYgKGNvbnN0X2Nhc3Q8U3R5bGVkRWxlbWVudCY+KGNhbmRpZGF0ZUVsZW1lbnQpLmFkZGl0aW9u
YWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpICE9IGNvbnN0X2Nhc3Q8U3R5bGVkRWxlbWVudCY+
KGVsZW1lbnQpLmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuYWZmZWN0c05leHRTaWJsaW5n
RWxlbWVudFN0eWxlKCkgfHwgY2FuZGlkYXRlRWxlbWVudC5zdHlsZUlzQWZmZWN0ZWRCeVByZXZp
b3VzU2libGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNDcsNyArMzQ3LDcgQEAg
Ym9vbCBTaGFyaW5nUmVzb2x2ZXI6OnNoYXJpbmdDYW5kaWRhdGVIYXNJZGVudGljYWxTdHlsZUFm
ZmVjdGluZ0F0dHJpYnV0ZXMoY29uc3QKICAgICB9IGVsc2UgaWYgKHNoYXJpbmdDYW5kaWRhdGUu
aGFzQ2xhc3MoKSAmJiBjbGFzc05hbWVzQWZmZWN0ZWRCeVJ1bGVzKHNoYXJpbmdDYW5kaWRhdGUu
Y2xhc3NOYW1lcygpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNvbnN0X2Nh
c3Q8U3R5bGVkRWxlbWVudCY+KGVsZW1lbnQpLnByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkg
IT0gY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Jj4oc2hhcmluZ0NhbmRpZGF0ZSkucHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoKSkKKyAgICBpZiAoY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Jj4o
ZWxlbWVudCkucHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSAhPSBjb25zdF9jYXN0PFN0eWxlZEVs
ZW1lbnQmPihzaGFyaW5nQ2FuZGlkYXRlKS5wcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCBlYmRhYTUyZDUzMGYuLmNkODFkMzk4Y2U1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2
b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3Vh
cmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoKTsKKyAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCA3
ZDJiOWRhN2U0MDMuLmQ1OTlkNjE2NThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApA
QCAtODIxLDE4ICs4MjEsMTggQEAgQ1NTUHJvcGVydHlJRCBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0
eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIHJldHVybiBw
cm9wZXJ0aWVzLmdldCgpLmdldChhdHRyTmFtZS5sb2NhbE5hbWUoKSk7CiB9CiAKLWJvb2wgU1ZH
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKK2Jvb2wgU1ZHRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewogICAgIGlmIChjc3NQcm9w
ZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShuYW1lKSA+IDApCiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1l
KTsKKyAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBTVkdFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBTVkdFbGVt
ZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyYgc3R5bGUpCiB7CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3NzUHJvcGVy
dHlJZEZvclNWR0F0dHJpYnV0ZU5hbWUobmFtZSk7CiAgICAgaWYgKHByb3BlcnR5SUQgPiAwKQot
ICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIHBy
b3BlcnR5SUQsIHZhbHVlKTsKKyAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBwcm9wZXJ0eUlELCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5oCmluZGV4IDljNGRiYTc2N2FkNy4uZjg5MzEwYTZlNWJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKQEAgLTgxLDkgKzgxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtKiBzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKSB7IHJldHVybiBudWxscHRy
OyB9CiAKICAgICB2b2lkIGludmFsaWRhdGVTVkdBdHRyaWJ1dGVzKCkgeyBlbnN1cmVVbmlxdWVF
bGVtZW50RGF0YSgpLnNldEFuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5KHRydWUpOyB9Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKQorICAgIHZv
aWQgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkKICAgICB7Ci0gICAgICAg
IGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkuc2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJ
c0RpcnR5KHRydWUpOworICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLnNldFByZXNl
bnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSh0cnVlKTsKICAgICAgICAgLy8gVHJpZ2dlciBzdHls
ZSByZWNhbGN1bGF0aW9uIGZvciAiZWxlbWVudHMgYXMgcmVzb3VyY2UiIChlLmcuIHJlZmVyZW5j
ZWQgYnkgZmVJbWFnZSkuCiAgICAgICAgIGludmFsaWRhdGVTdHlsZSgpOwogICAgIH0KQEAgLTE2
Nyw4ICsxNjcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXBvcnRBdHRyaWJ1dGVQYXJzaW5n
RXJyb3IoU1ZHUGFyc2luZ0Vycm9yLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpOwogICAgIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIGJvb2wgaXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKICAgICBJbnNlcnRlZEludG9B
bmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWlu
ZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWlu
ZXJOb2RlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNw
cAppbmRleCA3YzMyNWIyZGY4NWEuLjM0NzQ4ZjM4ZTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgU1ZHRWxsaXBzZUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiB7CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAg
ICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAgICAgICAg
aW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAppbmRleCAwYTgx
NjVjODNhM2MuLjgxM2JjYmQwODIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmNwcApAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKFBy
b3BlcnR5UmVnaXN0cnk6OmlzQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAg
ICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBp
bnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAgICAgICAgaW52YWxp
ZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmlu
ZGV4IDEzZDY3MzI0N2JkZS4uM2E1MTRjYjM4NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBTVkdG
b3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXQKIHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKGF0dHJO
YW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdo
dEF0dHIpIHsKLSAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KCk7CisgICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
CmluZGV4IDRmYmQ5NDU0YmM3ZS4uMTVhZWMyYjBkN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogCiAg
ICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OmhlaWdodEF0dHIpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBn
dWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSgpOworICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5j
cHAKaW5kZXggMjZkZTMyODkzNzg4Li40OGZkMzdiZjNkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lkIFNWR01hc2tFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAg
IGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1l
KSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAg
ICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7CisgICAgICAg
IGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCAx
Y2Y2MzZlMzkxYjAuLjM5NzY5MjQ4NmUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVy
bkVsZW1lbnQuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAg
ICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFt
ZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0g
ICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOworICAgICAg
ICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKaW5kZXggMzdiNjY2
NWU2NmVlLi5jYThkYmEyZjZmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNw
cApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIGlmIChQcm9wZXJ0eVJl
Z2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUlu
dmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7CisgICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRp
b25hbEhpbnRTdHlsZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggZTZiMWViNzUyMWZkLi40ZmFkMWZkYTBhOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIFNW
R1NWR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0
ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwotICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAg
ICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiAKICAgICAgICAg
aWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigq
cmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAppbmRleCBiOGY4NTIyMjFmMmQuLjllOWIyZGNiOTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTE0MCwyNCArMTQwLDI0IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6c2VsZWN0U3ViU3RyaW5nKHVuc2ln
bmVkIGNoYXJudW0sIHVuc2lnCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotYm9vbCBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0Citib29sIFNWR1RleHRDb250ZW50RWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewog
ICAgIGlmIChuYW1lLm1hdGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBTVkdHcmFwaGljc0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKG5hbWUpOworICAgIHJldHVybiBTVkdHcmFwaGljc0VsZW1lbnQ6Omhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgU1ZHVGV4dENvbnRlbnRF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIHN0eWxlKQordm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAg
ICBpZiAobmFtZS5tYXRjaGVzKFhNTE5hbWVzOjpzcGFjZUF0dHIpKSB7CiAgICAgICAgIGlmICh2
YWx1ZSA9PSAicHJlc2VydmUiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlUHJl
KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVByZSk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwg
Q1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZU5vd3JhcCk7CisgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVT
cGFjZSwgQ1NTVmFsdWVOb3dyYXApOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZH
R3JhcGhpY3NFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFt
ZSwgdmFsdWUsIHN0eWxlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQg
U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCBiYThlYWE3ZTYyNTAuLmRhYzMwNjAyMWU1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaApAQCAtOTcsOCArOTcs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wg
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJy
aWRlOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIG92ZXJyaWRlOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwog
CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKaW5kZXgg
MzZiYTUzYTI2NTBmLi45Y2FmMDEyMzRhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTgwLDE4ICs4MCwxOCBAQCB2b2lkIFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0CiAgICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CiB9CiAKLXZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHls
ZSkKK3ZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFs
SGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChu
YW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBuYW1lID09IFNWR05hbWVzOjp5QXR0cikKICAgICAg
ICAgcmV0dXJuOwotICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgU1ZHVGV4dENvbnRl
bnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSwgc3R5bGUpOwogfQogCi1ib29sIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OmlzUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29s
IFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9
PSBTVkdOYW1lczo6eEF0dHIgfHwgbmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICByZXR1cm4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCiB2b2lkIFNWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQuaAppbmRleCAzNzljNWE2Njk5MzcuLmMzOTQ2NmQyMzllZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCkBAIC01MSw4ICs1MSw4
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIGJv
b2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkm
IHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Byb3BlcnR5UmVn
aXN0cnk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QXR0cmlidXRlQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QXR0cmlidXRlQW5pbWF0b3IuY3BwCmluZGV4IDY1MmMyZDA2Y2ZkNy4uZjUyYTI1MGE2MDQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmlt
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRl
QW5pbWF0b3IuY3BwCkBAIC00MCw3ICs0MCw3IEBAIGJvb2wgU1ZHQXR0cmlidXRlQW5pbWF0b3I6
OmlzQW5pbWF0ZWRTdHlsZVByb3BlcnR5QW5pYW10b3IoY29uc3QgU1ZHRWxlbWVudCogdGFyCiB2
b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCkKIHsKICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0YXJnZXRFbGVtZW50KTsKLSAgICB0YXJnZXRFbGVtZW50LT5pbnZhbGlkYXRlU1ZH
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAgICB0YXJnZXRFbGVtZW50LT5pbnZhbGlk
YXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKIH0KIAogdm9pZCBTVkdBdHRyaWJ1dGVB
bmltYXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVudCogZWxl
bWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430203</attachid>
            <date>2021-05-31 06:34:43 -0700</date>
            <delta_ts>2021-05-31 08:03:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>presentational-hints-2.patch</filename>
            <type>text/plain</type>
            <size>146537</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxN2M3YTgyOWE3MzAuLmY1OGJhMTdmMDI0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2OSBAQAorMjAyMS0wNS0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlIHRvIHByZXNl
bnRhdGlvbmFsSGludFN0eWxlIHRvIG1hdGNoIHNwZWMgbGFuZ3VhZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjQ2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MIHNwZWNpZmljYXRpb24g
Y2FsbHMgdGhlc2UgInByZXNlbnRhdGlvbmFsIGhpbnRzIiwgaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy8jcHJlc2VudGF0aW9uYWwtaGludHMuCisKKyAgICAgICAgKiBkb20vQXR0ci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdHRyOjpzdHlsZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
aGFyZWFibGVFbGVtZW50RGF0YTo6U2hhcmVhYmxlRWxlbWVudERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6VW5pcXVlRWxlbWVudERhdGE6OlVuaXF1ZUVsZW1lbnREYXRhKToKKyAgICAgICAgKiBk
b20vRWxlbWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjpwcmVzZW50
YXRpb25hbEhpbnRTdHlsZUlzRGlydHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dERhdGE6OnNldFByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50RGF0YTo6cHJlc2VudGF0aW9uYWxIaW50U3R5bGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6OnByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
SXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6
c2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpyZWJ1aWxkUHJlc2VudGF0aW9uYWxIaW50U3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bmFsSGludFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnJlYnVpbGRQ
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZWRFbGVtZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUpOiBE
ZWxldGVkLgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZWRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6aGFz
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZWRFbGVtZW50OjpwcmVzZW50YXRpb25hbEhpbnRTdHlsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJSRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQlJFbGVt
ZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQlJFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQlJFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEJSRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OmNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQnV0dG9uRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEaXZFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGl2RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRWxlbWVudDo6YXBwbHlCb3JkZXJBdHRyaWJ1dGVUb1N0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50OjptYXBMYW5ndWFnZUF0dHJpYnV0ZVRvTG9jYWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVu
dDo6YXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVUb1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxFbGVtZW50OjphZGRIVE1MTGVuZ3RoVG9TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRF
bGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxGb250RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9udEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb250RWxlbWVudDo6
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvbnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUp
OiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFt
ZVNldEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxl
bWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxIUkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEhSRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSFJFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSFJFbGVtZW50Ojppc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MSFJFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxl
dGVkLgorICAgICAgICAqIGh0bWwvSFRNTEhSRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50Ojppc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSUZy
YW1lRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdl
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aGFz
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExJRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTElFbGVtZW50OjpoYXNQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMSUVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMSUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMSUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MTElF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1hcnF1ZWVFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1hcnF1ZWVFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT0xpc3RFbGVtZW50
Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MT0xpc3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MT0xpc3RFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTE9M
aXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6
OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPYmplY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxP
YmplY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcmFncmFw
aEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTFBsdWdJbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1l
bnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojppc1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MUHJlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJlRWxlbWVudDo6
aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJlRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcmVFbGVtZW50
Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTFByZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpoYXNQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNhcHRpb25FbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNl
bGxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlv
bmFsSGludFN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVt
ZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVt
ZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlQ29s
RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGFibGVDb2xFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDb2xFbGVtZW50
OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxIaW50U3R5bGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudDo6Y29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUYWJsZUNvbEVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxl
RWxlbWVudDo6YWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50
Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGFibGVFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRhYmxlUGFydEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWJsZVBhcnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxU
YWJsZVBhcnRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6YWRkaXRp
b25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpj
b2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OmFkanVzdElubmVyVGV4dFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxVTGlzdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFVMaXN0RWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VUxpc3RFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVUxpc3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVUxpc3RFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAq
IGh0bWwvSFRNTFVMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6YnVp
bGRPYmplY3RGb3JBdHRyaWJ1dGVzU3R5bGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MRWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWF0aE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBtYXRobWwvTWF0aE1M
RWxlbWVudC5oOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBbGxSdWxl
cyk6CisgICAgICAgICogc3R5bGUvTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpNYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGU6OnN3ZWVwKToKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6c2hhcmluZ0NhbmRp
ZGF0ZUhhc0lkZW50aWNhbFN0eWxlQWZmZWN0aW5nQXR0cmlidXRlcyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xl
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdFbGVtZW50OjppbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6aW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICog
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXNrRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBz
dmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Y29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6
OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1h
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppbnZhbGlk
YXRlU3R5bGUpOgorCiAyMDIxLTA1LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2hvdyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2lu
ZyBvbiBkYXRhIGRldGVjdGlvbiByZXN1bHRzIGluIGltYWdlIG92ZXJsYXlzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5j
cHAKaW5kZXggMmU5OTQwYTM4YmZlLi44YzBhZTgwNDliODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAg
LTExMiw3ICsxMTIsNyBAQCBDU1NTdHlsZURlY2xhcmF0aW9uKiBBdHRyOjpzdHlsZSgpCiAgICAg
aWYgKCFpczxTdHlsZWRFbGVtZW50PihtX2VsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBtX3N0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCk7Ci0gICAg
ZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oKm1fZWxlbWVudCkuY29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSwgKm1fc3R5bGUpOworICAg
IGRvd25jYXN0PFN0eWxlZEVsZW1lbnQ+KCptX2VsZW1lbnQpLmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSwgKm1fc3R5bGUpOwog
ICAgIHJldHVybiAmbV9zdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMGE1MjhlYmI3NWYyLi5iNDI2ZDI2NmEyZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTQzODcsNyArNDM4Nyw3IEBAIHZvaWQgRWxlbWVudDo6Y2xv
bmVBdHRyaWJ1dGVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYgb3RoZXIpCiAgICAgLy8gSWYg
J290aGVyJyBoYXMgYSBtdXRhYmxlIEVsZW1lbnREYXRhLCBjb252ZXJ0IGl0IHRvIGFuIGltbXV0
YWJsZSBvbmUgc28gd2UgY2FuIHNoYXJlIGl0IGJldHdlZW4gYm90aCBlbGVtZW50cy4KICAgICAv
LyBXZSBjYW4gb25seSBkbyB0aGlzIGlmIHRoZXJlIGlzIG5vIENTU09NIHdyYXBwZXIgZm9yIG90
aGVyJ3MgaW5saW5lIHN0eWxlLCBhbmQgdGhlcmUgYXJlIG5vIHByZXNlbnRhdGlvbiBhdHRyaWJ1
dGVzLgogICAgIGlmIChpczxVbmlxdWVFbGVtZW50RGF0YT4oKm90aGVyLm1fZWxlbWVudERhdGEp
Ci0gICAgICAgICYmICFvdGhlci5tX2VsZW1lbnREYXRhLT5wcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSgpCisgICAgICAgICYmICFvdGhlci5tX2VsZW1lbnREYXRhLT5wcmVzZW50YXRpb25hbEhp
bnRTdHlsZSgpCiAgICAgICAgICYmICghb3RoZXIubV9lbGVtZW50RGF0YS0+aW5saW5lU3R5bGUo
KSB8fCAhb3RoZXIubV9lbGVtZW50RGF0YS0+aW5saW5lU3R5bGUoKS0+aGFzQ1NTT01XcmFwcGVy
KCkpKQogICAgICAgICBjb25zdF9jYXN0PEVsZW1lbnQmPihvdGhlcikubV9lbGVtZW50RGF0YSA9
IGRvd25jYXN0PFVuaXF1ZUVsZW1lbnREYXRhPigqb3RoZXIubV9lbGVtZW50RGF0YSkubWFrZVNo
YXJlYWJsZUNvcHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5jcHAKaW5kZXggYmVkNmYz
Y2FlMzM0Li5iNzAzYWVmYWVhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREYXRhLmNwcApAQCAt
OTUsNyArOTUsNyBAQCBTaGFyZWFibGVFbGVtZW50RGF0YTo6flNoYXJlYWJsZUVsZW1lbnREYXRh
KCkKIFNoYXJlYWJsZUVsZW1lbnREYXRhOjpTaGFyZWFibGVFbGVtZW50RGF0YShjb25zdCBVbmlx
dWVFbGVtZW50RGF0YSYgb3RoZXIpCiAgICAgOiBFbGVtZW50RGF0YShvdGhlciwgZmFsc2UpCiB7
Ci0gICAgQVNTRVJUKCFvdGhlci5tX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKTsKKyAgICBB
U1NFUlQoIW90aGVyLm1fcHJlc2VudGF0aW9uYWxIaW50U3R5bGUpOwogCiAgICAgaWYgKG90aGVy
Lm1faW5saW5lU3R5bGUpIHsKICAgICAgICAgQVNTRVJUKCFvdGhlci5tX2lubGluZVN0eWxlLT5o
YXNDU1NPTVdyYXBwZXIoKSk7CkBAIC0xMzEsNyArMTMxLDcgQEAgVW5pcXVlRWxlbWVudERhdGE6
OlVuaXF1ZUVsZW1lbnREYXRhKCkKIAogVW5pcXVlRWxlbWVudERhdGE6OlVuaXF1ZUVsZW1lbnRE
YXRhKGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhJiBvdGhlcikKICAgICA6IEVsZW1lbnREYXRhKG90
aGVyLCB0cnVlKQotICAgICwgbV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShvdGhlci5tX3By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKQorICAgICwgbV9wcmVzZW50YXRpb25hbEhpbnRTdHls
ZShvdGhlci5tX3ByZXNlbnRhdGlvbmFsSGludFN0eWxlKQogICAgICwgbV9hdHRyaWJ1dGVWZWN0
b3Iob3RoZXIubV9hdHRyaWJ1dGVWZWN0b3IpCiB7CiAgICAgaWYgKG90aGVyLm1faW5saW5lU3R5
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5oCmluZGV4IGE0NTQ5OTlmOTE4YS4uMTA1NDA5ZmQ5
ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRJZEZvclN0eWxlUmVzb2x1dGlvbihjb25zdCBBdG9tU3RyaW5nJiBuZXdJ
ZCkgY29uc3QgeyBtX2lkRm9yU3R5bGVSZXNvbHV0aW9uID0gbmV3SWQ7IH0KIAogICAgIGNvbnN0
IFN0eWxlUHJvcGVydGllcyogaW5saW5lU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2lubGluZVN0
eWxlLmdldCgpOyB9Ci0gICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZSgpIGNvbnN0OworICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJlc2VudGF0
aW9uYWxIaW50U3R5bGUoKSBjb25zdDsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0Owog
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFsZW5ndGgoKTsgfQpAQCAtMTI4LDcg
KzEyOCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxhZ0NvdW50
ID0gNTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnSXNVbmlxdWUgPSAxOwogICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdIYXNOYW1lQXR0cmlidXRlID0gMSA8PCAxOwot
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHls
ZUlzRGlydHkgPSAxIDw8IDI7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxhZ1ByZXNl
bnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSA9IDEgPDwgMjsKICAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qgc19mbGFnU3R5bGVBdHRyaWJ1dGVJc0RpcnR5ID0gMSA8PCAzOwogICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBzX2ZsYWdBbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSA9IDEgPDwg
NDsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnc01hc2sgPSAoMSA8PCBzX2ZsYWdD
b3VudCkgLSAxOwpAQCAtMTU0LDggKzE1NCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIHN0eWxl
QXR0cmlidXRlSXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlTaXplQW5kRmxhZ3MgJiBz
X2ZsYWdTdHlsZUF0dHJpYnV0ZUlzRGlydHk7IH0KICAgICB2b2lkIHNldFN0eWxlQXR0cmlidXRl
SXNEaXJ0eShib29sIGlzRGlydHkpIGNvbnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdTdHlsZUF0dHJp
YnV0ZUlzRGlydHksIGlzRGlydHkpOyB9CiAKLSAgICBib29sIHByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlSXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlTaXplQW5kRmxhZ3MgJiBzX2Zs
YWdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHk7IH0KLSAgICB2b2lkIHNldFByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eShib29sIGlzRGlydHkpIGNvbnN0IHsgdXBkYXRl
RmxhZyhzX2ZsYWdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHksIGlzRGlydHkpOyB9
CisgICAgYm9vbCBwcmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHkoKSBjb25zdCB7IHJldHVy
biBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFnUHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0Rp
cnR5OyB9CisgICAgdm9pZCBzZXRQcmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHkoYm9vbCBp
c0RpcnR5KSBjb25zdCB7IHVwZGF0ZUZsYWcoc19mbGFnUHJlc2VudGF0aW9uYWxIaW50U3R5bGVJ
c0RpcnR5LCBpc0RpcnR5KTsgfQogCiAgICAgYm9vbCBhbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVE
aXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlTaXplQW5kRmxhZ3MgJiBzX2ZsYWdBbmltYXRl
ZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eTsgfQogICAgIHZvaWQgc2V0QW5pbWF0ZWRTVkdBdHRyaWJ1
dGVzQXJlRGlydHkoYm9vbCBkaXJ0eSkgY29uc3QgeyB1cGRhdGVGbGFnKHNfZmxhZ0FuaW1hdGVk
U1ZHQXR0cmlidXRlc0FyZURpcnR5LCBkaXJ0eSk7IH0KQEAgLTIyMSw3ICsyMjEsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IGF0dHJpYnV0ZVZlY3Rvck1lbW9yeU9mZnNldCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihVbmlxdWVFbGVtZW50RGF0YSwgbV9hdHRyaWJ1dGVW
ZWN0b3IpOyB9CiAKLSAgICBtdXRhYmxlIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+IG1fcHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGU7CisgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVz
PiBtX3ByZXNlbnRhdGlvbmFsSGludFN0eWxlOwogICAgIHR5cGVkZWYgVmVjdG9yPEF0dHJpYnV0
ZSwgND4gQXR0cmlidXRlVmVjdG9yOwogICAgIEF0dHJpYnV0ZVZlY3RvciBtX2F0dHJpYnV0ZVZl
Y3RvcjsKIH07CkBAIC0yNDcsMTEgKzI0NywxMSBAQCBpbmxpbmUgY29uc3QgQXR0cmlidXRlKiBF
bGVtZW50RGF0YTo6YXR0cmlidXRlQmFzZSgpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PFNo
YXJlYWJsZUVsZW1lbnREYXRhPigqdGhpcykubV9hdHRyaWJ1dGVBcnJheTsKIH0KIAotaW5saW5l
IGNvbnN0IFN0eWxlUHJvcGVydGllcyogRWxlbWVudERhdGE6OnByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKCkgY29uc3QKK2lubGluZSBjb25zdCBTdHlsZVByb3BlcnRpZXMqIEVsZW1lbnREYXRh
OjpwcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpczxVbmlxdWVF
bGVtZW50RGF0YT4oKnRoaXMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4g
ZG93bmNhc3Q8VW5pcXVlRWxlbWVudERhdGE+KCp0aGlzKS5tX3ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlLmdldCgpOworICAgIHJldHVybiBkb3duY2FzdDxVbmlxdWVFbGVtZW50RGF0YT4oKnRo
aXMpLm1fcHJlc2VudGF0aW9uYWxIaW50U3R5bGUuZ2V0KCk7CiB9CiAKIGlubGluZSBBdHRyaWJ1
dGVJdGVyYXRvckFjY2Vzc29yIEVsZW1lbnREYXRhOjphdHRyaWJ1dGVzSXRlcmF0b3IoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDQ0ZGQ2NjNkNTE5MS4uMzJm
MjdmZGQ4NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBAIC0xNDUsOCAr
MTQ1LDggQEAgdm9pZCBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcKICAgICBpZiAob2xkVmFsdWUgIT0gbmV3
VmFsdWUpIHsKICAgICAgICAgaWYgKG5hbWUgPT0gc3R5bGVBdHRyKQogICAgICAgICAgICAgc3R5
bGVBdHRyaWJ1dGVDaGFuZ2VkKG5ld1ZhbHVlLCByZWFzb24pOwotICAgICAgICBlbHNlIGlmIChp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKSkgewotICAgICAgICAgICAgZWxlbWVudERhdGEo
KS0+c2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KHRydWUpOworICAgICAgICBl
bHNlIGlmIChoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpKSB7CisgICAg
ICAgICAgICBlbGVtZW50RGF0YSgpLT5zZXRQcmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHko
dHJ1ZSk7CiAgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUoKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTI5MCwzMCArMjkwLDMwIEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6YWRkU3VicmVzb3VyY2VB
dHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mIHVybHMpIGNvbnN0CiAgICAgfSk7CiB9CiAK
LXZvaWQgU3R5bGVkRWxlbWVudDo6cmVidWlsZFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkK
K3ZvaWQgU3R5bGVkRWxlbWVudDo6cmVidWlsZFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkKIHsK
ICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRp
ZXM6OmNyZWF0ZShpc1NWR0VsZW1lbnQoKSA/IFNWR0F0dHJpYnV0ZU1vZGUgOiBIVE1MUXVpcmtz
TW9kZSk7CiAgICAgZm9yIChjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSA6IGF0dHJpYnV0ZXNJ
dGVyYXRvcigpKQotICAgICAgICBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
YXR0cmlidXRlLm5hbWUoKSwgYXR0cmlidXRlLnZhbHVlKCksIHN0YXRpY19jYXN0PE11dGFibGVT
dHlsZVByb3BlcnRpZXMmPigqc3R5bGUpKTsKKyAgICAgICAgY29sbGVjdFByZXNlbnRhdGlvbmFs
SGludHNGb3JBdHRyaWJ1dGUoYXR0cmlidXRlLm5hbWUoKSwgYXR0cmlidXRlLnZhbHVlKCksIHN0
YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXMmPigqc3R5bGUpKTsKIAogICAgIC8vIFNo
YXJlYWJsZUVsZW1lbnREYXRhIGRvZXNuJ3Qgc3RvcmUgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSBz
dHlsZSwgc28gbWFrZSBzdXJlIHdlIGhhdmUgYSBVbmlxdWVFbGVtZW50RGF0YS4KICAgICBVbmlx
dWVFbGVtZW50RGF0YSYgZWxlbWVudERhdGEgPSBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpOwog
Ci0gICAgZWxlbWVudERhdGEuc2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KGZh
bHNlKTsKLSAgICBlbGVtZW50RGF0YS5tX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlID0gc3R5
bGUtPmlzRW1wdHkoKSA/IG51bGxwdHIgOiBXVEZNb3ZlKHN0eWxlKTsKKyAgICBlbGVtZW50RGF0
YS5zZXRQcmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHkoZmFsc2UpOworICAgIGVsZW1lbnRE
YXRhLm1fcHJlc2VudGF0aW9uYWxIaW50U3R5bGUgPSBzdHlsZS0+aXNFbXB0eSgpID8gbnVsbHB0
ciA6IFdURk1vdmUoc3R5bGUpOwogfQogCi12b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHls
ZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZUlEIGlkZW50aWZpZXIpCit2b2lk
IFN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NW
YWx1ZUlEIGlkZW50aWZpZXIpCiB7CiAgICAgc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHlJRCwg
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoaWRlbnRpZmll
cikpOwogfQogCi12b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSwgQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlELCBkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlIHVuaXQpCit2b2lkIFN0eWxl
ZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBkb3VibGUgdmFs
dWUsIENTU1VuaXRUeXBlIHVuaXQpCiB7CiAgICAgc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHlJ
RCwgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZSwgdW5pdCkpOwog
fQogICAgIAotdm9pZCBTdHlsZWRFbGVtZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUsIENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU3R5bGVkRWxlbWVudDo6YWRk
UHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKE11dGFibGVTdHlsZVByb3BlcnRpZXMm
IHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7
CiAgICAgc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHlJRCwgdmFsdWUsIGZhbHNlLCBDU1NQYXJz
ZXJDb250ZXh0KGRvY3VtZW50KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCmlu
ZGV4IDkxNDAzNjg0ZmQ2ZC4uMjZhYWViMjQ2MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3R5bGVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmgKQEAgLTQyLDcgKzQyLDYgQEAgY2xhc3MgU3R5bGVkRWxlbWVudCA6IHB1YmxpYyBFbGVt
ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TdHlsZWRFbGVtZW50KCk7CiAKLSAgICB2aXJ0
dWFsIGNvbnN0IFN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZvaWQgaW52YWxpZGF0ZVN0
eWxlQXR0cmlidXRlKCk7CiAKICAgICBjb25zdCBTdHlsZVByb3BlcnRpZXMqIGlubGluZVN0eWxl
KCkgY29uc3QgeyByZXR1cm4gZWxlbWVudERhdGEoKSA/IGVsZW1lbnREYXRhKCktPm1faW5saW5l
U3R5bGUuZ2V0KCkgOiBudWxscHRyOyB9CkBAIC02MSw4ICs2MCwxMCBAQCBwdWJsaWM6CiAgICAg
U3R5bGVQcm9wZXJ0eU1hcCYgZW5zdXJlQXR0cmlidXRlU3R5bGVNYXAoKTsKICNlbmRpZgogCi0g
ICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIGNv
bnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJikgeyB9CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jcHJl
c2VudGF0aW9uYWwtaGludHMKKyAgICBjb25zdCBTdHlsZVByb3BlcnRpZXMqIHByZXNlbnRhdGlv
bmFsSGludFN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIHsgfQorICAgIHZpcnR1YWwgY29uc3QgU3R5
bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAKIHByb3RlY3RlZDoKICAgICBTdHlsZWRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlw
ZSB0eXBlKQpAQCAtNzIsMTEgKzczLDExIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gPSBNb2RpZmllZERpcmVjdGx5KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAg
IHZvaWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11dGFibGVTdHls
ZVByb3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZUlEIGlkZW50aWZpZXIpOwotICAg
IHZvaWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11dGFibGVTdHls
ZVByb3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlKTsK
LSAgICB2b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7Cisg
ICAgdm9pZCBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYsIENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlSUQgaWRlbnRpZmllcik7CisgICAg
dm9pZCBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYsIENTU1Byb3BlcnR5SUQsIGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUpOworICAg
IHZvaWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAogICAgIHZv
aWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBv
dmVycmlkZTsKIApAQCAtODksMTYgKzkwLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJbmxp
bmVTdHlsZUZyb21TdHJpbmcoY29uc3QgQXRvbVN0cmluZyYpOwogICAgIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmIGVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpOwogCi0gICAgdm9pZCByZWJ1aWxk
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAgICB2b2lkIHJlYnVpbGRQcmVzZW50YXRp
b25hbEhpbnRTdHlsZSgpOwogfTsKIAotaW5saW5lIGNvbnN0IFN0eWxlUHJvcGVydGllcyogU3R5
bGVkRWxlbWVudDo6cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdAoraW5saW5lIGNv
bnN0IFN0eWxlUHJvcGVydGllcyogU3R5bGVkRWxlbWVudDo6cHJlc2VudGF0aW9uYWxIaW50U3R5
bGUoKSBjb25zdAogewogICAgIGlmICghZWxlbWVudERhdGEoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgaWYgKGVsZW1lbnREYXRhKCktPnByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
SXNEaXJ0eSgpKQotICAgICAgICBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQmPigqdGhpcykucmVi
dWlsZFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7Ci0gICAgcmV0dXJuIGVsZW1lbnREYXRh
KCktPnByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7CisgICAgaWYgKGVsZW1lbnREYXRhKCkt
PnByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSgpKQorICAgICAgICBjb25zdF9jYXN0PFN0
eWxlZEVsZW1lbnQmPigqdGhpcykucmVidWlsZFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7Cisg
ICAgcmV0dXJuIGVsZW1lbnREYXRhKCktPnByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3Bw
CmluZGV4IDcyMDdlN2ZhODdhYS4uY2QzMzFiOWYxN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJSRWxlbWVudC5jcHAKQEAgLTUxLDI2ICs1MSwyNiBAQCBSZWY8SFRNTEJSRWxlbWVudD4gSFRN
TEJSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAotYm9vbCBIVE1MQlJFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MQlJFbGVtZW50OjpoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gY2xlYXJBdHRyKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUp
OworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MQlJFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MQlJF
bGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gY2xlYXJBdHRyKSB7CiAgICAgICAg
IC8vIElmIHRoZSBzdHJpbmcgaXMgZW1wdHksIHRoZW4gZG9uJ3QgYWRkIHRoZSBjbGVhciBwcm9w
ZXJ0eS4KICAgICAgICAgLy8gPGJyIGNsZWFyPiBhbmQgPGJyIGNsZWFyPSIiPiBhcmUganVzdCB0
cmVhdGVkIGxpa2UgPGJyPiBieSBHZWNrbywgTWFjIElFLCBldGMuIC1kd2gKICAgICAgICAgaWYg
KCF2YWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZSh2YWx1ZSwgImFsbCIpKQotICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlDbGVhciwgQ1NTVmFs
dWVCb3RoKTsKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Q2xlYXIsIENTU1ZhbHVlQm90aCk7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNsZWFyLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNs
ZWFyLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUp
OworICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQlJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQu
aAppbmRleCAwYmI3OTY4YzYyNTMuLjRjYjUzZmQwODQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QlJFbGVtZW50LmgKQEAgLTM4LDggKzM4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1M
QlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgYm9vbCBp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7
Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikg
ZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5
RWxlbWVudC5jcHAKaW5kZXggNWY4YThjNjYwZjc1Li5jZTEzZjM3Zjg1YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTYyLDE0ICs2MiwxNCBAQCBSZWY8SFRN
TEJvZHlFbGVtZW50PiBIVE1MQm9keUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bQogCiBIVE1MQm9keUVsZW1lbnQ6On5IVE1MQm9keUVsZW1lbnQoKSA9
IGRlZmF1bHQ7CiAKLWJvb2wgSFRNTEJvZHlFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MQm9keUVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBuYW1lID09
IG1hcmdpbndpZHRoQXR0ciB8fCBuYW1lID09IGxlZnRtYXJnaW5BdHRyIHx8IG5hbWUgPT0gbWFy
Z2luaGVpZ2h0QXR0ciB8fCBuYW1lID09IHRvcG1hcmdpbkF0dHIgfHwgbmFtZSA9PSBiZ2NvbG9y
QXR0ciB8fCBuYW1lID09IHRleHRBdHRyIHx8IG5hbWUgPT0gYmdwcm9wZXJ0aWVzQXR0cikKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEJvZHlFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0
eWxlKQordm9pZCBIVE1MQm9keUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBi
YWNrZ3JvdW5kQXR0cikgewogICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJh
aWxpbmdIVE1MU3BhY2VzKHZhbHVlKTsKQEAgLTkwLDkgKzkwLDkgQEAgdm9pZCBIVE1MQm9keUVs
ZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJgogICAgICAgICBhZGRIVE1MQ29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNv
bG9yLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGJncHJvcGVydGllc0F0dHIpIHsK
ICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAiZml4ZWQi
KSkKLSAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eUJhY2tncm91bmRBdHRhY2htZW50LCBDU1NWYWx1ZUZpeGVkKTsKKyAg
ICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kQXR0YWNobWVudCwgQ1NTVmFsdWVGaXhlZCk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIEhU
TUxFbGVtZW50OjpFdmVudEhhbmRsZXJOYW1lTWFwIEhUTUxCb2R5RWxlbWVudDo6Y3JlYXRlV2lu
ZG93RXZlbnRIYW5kbGVyTmFtZU1hcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCb2R5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQu
aAppbmRleCBkYTcyYWFmN2U3NWIuLmVhNzg5ODI5ZjE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5oCkBAIC00MCw4ICs0MCw4IEBAIHByaXZhdGU6CiAgICAgSFRNTEJvZHlF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAg
IEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlv
blR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGlu
Z05vZGUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAK
aW5kZXggODc4Y2EwMzQ3YzJhLi4yODE4NDVmYWMzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIGNvbnN0IEF0b21TdHJpbmcm
IEhUTUxCdXR0b25FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogICAgIHJldHVybiBl
bXB0eUF0b20oKTsKIH0KIAotYm9vbCBIVE1MQnV0dG9uRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTEJ1dHRv
bkVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSBhbGlnbkF0dHIpIHsKICAg
ICAgICAgLy8gRG9uJ3QgbWFwICdhbGlnbicgYXR0cmlidXRlLiAgVGhpcyBtYXRjaGVzIHdoYXQg
RmlyZWZveCBhbmQgSUUgZG8sIGJ1dCBub3QgT3BlcmEuCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9v
bCBIVE1MQnV0dG9uRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAg
IHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShu
YW1lKTsKKyAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAogdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgKaW5kZXggODMy
YWJjZWJmNThmLi5jM2JhOWFmMTg5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgZGVmYXVsdFRhYklu
ZGV4KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAgYm9v
bCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmKSBmaW5h
bDsKIAogICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmLCBib29sKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAKaW5kZXggZDg5ZTc4OWMzOGViLi40
MTI2OTI5NTMyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwCkBAIC01
MCwxOSArNTAsMTkgQEAgUmVmPEhUTUxEaXZFbGVtZW50PiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW4KICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MRGl2RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhU
TUxEaXZFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MRGl2RWxlbWVudDo6Y29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAg
IGlmIChuYW1lID09IGFsaWduQXR0cikgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UodmFsdWUsICJtaWRkbGUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZSh2YWx1ZSwgImNlbnRlciIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVX
ZWJraXRDZW50ZXIpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRDZW50ZXIp
OwogICAgICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwg
ImxlZnQiKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0TGVmdCk7Cisg
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZVdlYmtpdExlZnQpOwogICAgICAgICBlbHNlIGlm
IChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgInJpZ2h0IikpCi0gICAgICAg
ICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1By
b3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZVdlYmtpdFJpZ2h0KTsKKyAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxp
Z24sIENTU1ZhbHVlV2Via2l0UmlnaHQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4
dEFsaWduLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCA2OTI5MWEyOWFiNTIuLmU4OWY4
ODUwMjg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaApAQCAtMzYsNyArMzYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgSFRNTERpdkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggYWRiYTFlNmIz
NDNlLi4yMGFiNjhkNTdmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0x
MzQsMjYgKzEzNCwyNiBAQCB1bnNpZ25lZCBIVE1MRWxlbWVudDo6cGFyc2VCb3JkZXJXaWR0aEF0
dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkgY29uc3QKIAogdm9pZCBIVE1MRWxlbWVu
dDo6YXBwbHlCb3JkZXJBdHRyaWJ1dGVUb1N0eWxlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKLSAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIHBhcnNl
Qm9yZGVyV2lkdGhBdHRyaWJ1dGUodmFsdWUpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKLSAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
Qm9yZGVyU3R5bGUsIENTU1ZhbHVlU29saWQpOworICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgcGFyc2VCb3JkZXJX
aWR0aEF0dHJpYnV0ZSh2YWx1ZSksIENTU1VuaXRUeXBlOjpDU1NfUFgpOworICAgIGFkZFByb3Bl
cnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJTdHls
ZSwgQ1NTVmFsdWVTb2xpZCk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6Om1hcExhbmd1YWdlQXR0
cmlidXRlVG9Mb2NhbGUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIHN0eWxlKQogewogICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8v
IEhhdmUgdG8gcXVvdGUgc28gdGhlIGxvY2FsZSBpZCBpcyB0cmVhdGVkIGFzIGEgc3RyaW5nIGlu
c3RlYWQgb2YgYXMgYSBDU1Mga2V5d29yZC4KLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdExvY2FsZSwgc2VyaWFs
aXplU3RyaW5nKHZhbHVlKSk7CisgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhp
bnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRMb2NhbGUsIHNlcmlhbGl6ZVN0cmluZyh2
YWx1ZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFRoZSBlbXB0eSBzdHJpbmcgbWVhbnMg
dGhlIGxhbmd1YWdlIGlzIGV4cGxpY2l0bHkgdW5rbm93bi4KLSAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdExvY2Fs
ZSwgQ1NTVmFsdWVBdXRvKTsKKyAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdExvY2FsZSwgQ1NTVmFsdWVBdXRvKTsKICAg
ICB9CiB9CiAKLWJvb2wgSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
CiB7CiAgICAgaWYgKG5hbWUgPT0gYWxpZ25BdHRyIHx8IG5hbWUgPT0gY29udGVudGVkaXRhYmxl
QXR0ciB8fCBuYW1lID09IGhpZGRlbkF0dHIgfHwgbmFtZSA9PSBsYW5nQXR0ciB8fCBuYW1lLm1h
dGNoZXMoWE1MTmFtZXM6OmxhbmdBdHRyKSB8fCBuYW1lID09IGRyYWdnYWJsZUF0dHIgfHwgbmFt
ZSA9PSBkaXJBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gU3R5bGVkRWxl
bWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIFN0eWxlZEVs
ZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIHN0
YXRpYyBib29sIGlzTFRST3JSVExJZ25vcmluZ0Nhc2UoY29uc3QgQXRvbVN0cmluZyYgZGlyQXR0
cmlidXRlVmFsdWUpCkBAIC0xODcsMTMgKzE4NywxMyBAQCBzdGF0aWMgQ29udGVudEVkaXRhYmxl
VHlwZSBjb250ZW50RWRpdGFibGVUeXBlKGNvbnN0IEhUTUxFbGVtZW50JiBlbGVtZW50KQogICAg
IHJldHVybiBjb250ZW50RWRpdGFibGVUeXBlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihjb250ZW50ZWRpdGFibGVBdHRyKSk7CiB9CiAKLXZvaWQgSFRNTEVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYg
c3R5bGUpCit2b2lkIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYWxp
Z25BdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1
ZSwgIm1pZGRsZSIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVDZW50ZXIpOwor
ICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBD
U1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7
CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNvbnRlbnRlZGl0YWJsZUF0dHIpIHsKICAgICAgICAg
Q1NTVmFsdWVJRCB1c2VyTW9kaWZ5VmFsdWUgPSBDU1NWYWx1ZVJlYWRXcml0ZTsKICAgICAgICAg
c3dpdGNoIChjb250ZW50RWRpdGFibGVUeXBlKHZhbHVlKSkgewpAQCAtMjA2LDM3ICsyMDYsMzcg
QEAgdm9pZCBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUKICAgICAgICAgICAgIHVzZXJNb2RpZnlWYWx1ZSA9
IENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seTsKICAgICAgICAgICAgIEZBTExUSFJPVUdI
OwogICAgICAgICBjYXNlIENvbnRlbnRFZGl0YWJsZVR5cGU6OlRydWU6Ci0gICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V29yZFdyYXAsIENTU1ZhbHVlQnJlYWtXb3JkKTsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXROYnNwTW9k
ZSwgQ1NTVmFsdWVTcGFjZSk7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGluZUJyZWFrLCBDU1NWYWx1ZUFmdGVy
V2hpdGVTcGFjZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V29yZFdyYXAsIENTU1ZhbHVlQnJlYWtXb3JkKTsKKyAg
ICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NT
UHJvcGVydHlXZWJraXROYnNwTW9kZSwgQ1NTVmFsdWVTcGFjZSk7CisgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGluZUJy
ZWFrLCBDU1NWYWx1ZUFmdGVyV2hpdGVTcGFjZSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlXZWJraXRUZXh0U2l6ZUFkanVzdCwgQ1NTVmFsdWVOb25lKTsKKyAgICAg
ICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJv
cGVydHlXZWJraXRUZXh0U2l6ZUFkanVzdCwgQ1NTVmFsdWVOb25lKTsKICNlbmRpZgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnksIHVzZXJN
b2RpZnlWYWx1ZSk7CisgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LCB1c2VyTW9kaWZ5VmFsdWUpOwog
ICAgIH0gZWxzZSBpZiAobmFtZSA9PSBoaWRkZW5BdHRyKSB7Ci0gICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlEaXNwbGF5LCBD
U1NWYWx1ZU5vbmUpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5RGlzcGxheSwgQ1NTVmFsdWVOb25lKTsKICAgICB9IGVsc2Ug
aWYgKG5hbWUgPT0gZHJhZ2dhYmxlQXR0cikgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UodmFsdWUsICJ0cnVlIikpIHsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRVc2Vy
RHJhZywgQ1NTVmFsdWVFbGVtZW50KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50
YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFs
dWVFbGVtZW50KTsKICAgICAgICAgICAgIGlmICghaXNEcmFnZ2FibGVJZ25vcmluZ0F0dHJpYnV0
ZXMoKSkKLSAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVOb25lKTsK
KyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVOb25lKTsKICAgICAgICAg
fSBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImZhbHNlIikp
Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIENTU1ZhbHVlTm9uZSk7CisgICAgICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V2Via2l0VXNlckRyYWcsIENTU1ZhbHVlTm9uZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGRp
ckF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVl
LCAiYXV0byIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCB1bmljb2RlQmlkaUF0dHJpYnV0
ZUZvckRpckF1dG8oKnRoaXMpKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgdW5pY29kZUJpZGlB
dHRyaWJ1dGVGb3JEaXJBdXRvKCp0aGlzKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
YXV0byB1bmljb2RlQmlkaVZhbHVlID0gQ1NTVmFsdWVFbWJlZDsKIAogICAgICAgICAgICAgaWYg
KGlzTFRST3JSVExJZ25vcmluZ0Nhc2UodmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eURpcmVj
dGlvbiwgdmFsdWUpOworICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25h
bEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHZhbHVlKTsKICAgICAgICAg
ICAgICAgICB1bmljb2RlQmlkaVZhbHVlID0gQ1NTVmFsdWVJc29sYXRlOwogICAgICAgICAgICAg
fSAKIAogICAgICAgICAgICAgaWYgKCFoYXNUYWdOYW1lKGJkaVRhZykgJiYgIWhhc1RhZ05hbWUo
YmRvVGFnKSAmJiAhaGFzVGFnTmFtZShvdXRwdXRUYWcpKQotICAgICAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlVbmlj
b2RlQmlkaSwgdW5pY29kZUJpZGlWYWx1ZSk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCB1
bmljb2RlQmlkaVZhbHVlKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobmFtZS5tYXRjaGVz
KFhNTE5hbWVzOjpsYW5nQXR0cikpCiAgICAgICAgIG1hcExhbmd1YWdlQXR0cmlidXRlVG9Mb2Nh
bGUodmFsdWUsIHN0eWxlKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIEhUTUxFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZQogICAgICAgICBpZiAoIWhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oWE1M
TmFtZXM6OmxhbmdBdHRyKSkKICAgICAgICAgICAgIG1hcExhbmd1YWdlQXR0cmlidXRlVG9Mb2Nh
bGUodmFsdWUsIHN0eWxlKTsKICAgICB9IGVsc2UKLSAgICAgICAgU3R5bGVkRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7Cisg
ICAgICAgIFN0eWxlZEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIEhUTUxFbGVtZW50OjpFdmVudEhhbmRsZXJO
YW1lTWFwIEhUTUxFbGVtZW50OjpjcmVhdGVFdmVudEhhbmRsZXJOYW1lTWFwKCkKQEAgLTY3Niwx
MCArNjc2LDEwIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9T
dHlsZShjb25zdCBBdG9tU3RyaW5nJiBhbGlnbm1lbnQsIE11CiAgICAgICAgIHZlcnRpY2FsQWxp
Z25WYWx1ZSA9IENTU1ZhbHVlVGV4dFRvcDsKIAogICAgIGlmIChmbG9hdFZhbHVlICE9IENTU1Zh
bHVlSW52YWxpZCkKLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZsb2F0LCBmbG9hdFZhbHVlKTsKKyAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZsb2F0LCBm
bG9hdFZhbHVlKTsKIAogICAgIGlmICh2ZXJ0aWNhbEFsaWduVmFsdWUgIT0gQ1NTVmFsdWVJbnZh
bGlkKQotICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgdmVydGljYWxBbGlnblZhbHVlKTsKKyAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVZlcnRpY2FsQWxpZ24sIHZlcnRpY2FsQWxpZ25WYWx1ZSk7CiB9CiAKIGJvb2wgSFRNTEVsZW1l
bnQ6Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdApAQCAtMTA0MCwxMiArMTA0MCwxMiBAQCB2
b2lkIEhUTUxFbGVtZW50OjphZGRIVE1MTGVuZ3RoVG9TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSwgQ1NTUHJvcGVydAogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBhcnNlZExl
bmd0aCAhPSBzdHJpbmctPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIHByb3BlcnR5SUQsIHN0cmluZy0+c3Vic3Ry
aW5nKDAsIHBhcnNlZExlbmd0aCkpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBwcm9wZXJ0eUlELCBzdHJpbmctPnN1YnN0cmluZygwLCBw
YXJzZWRMZW5ndGgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgcHJvcGVy
dHlJRCwgdmFsdWUpOworICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShz
dHlsZSwgcHJvcGVydHlJRCwgdmFsdWUpOwogfQogCiAvLyBDb2xvciBwYXJzaW5nIHRoYXQgbWF0
Y2hlcyBIVE1MJ3MgInJ1bGVzIGZvciBwYXJzaW5nIGEgbGVnYWN5IGNvbG9yIHZhbHVlIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IDAxZTYyNWZlYjYxYS4uOTgwOTMxMzQyMDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0xNjEsOCArMTYxLDggQEAgcHJvdGVjdGVk
OgogCiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CisgICAgYm9vbCBo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogICAgIHVuc2lnbmVkIHBhcnNlQm9yZGVyV2lkdGhB
dHRyaWJ1dGUoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0OwogCiAgICAgdm9pZCBjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbWJlZEVsZW1lbnQuY3BwCmluZGV4IDdiZDk3NTFiMDI1Ni4uY2VmNmQyYmE3MzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKQEAgLTc5LDE1ICs3OSwxNSBA
QCBSZW5kZXJXaWRnZXQqIEhUTUxFbWJlZEVsZW1lbnQ6OnJlbmRlcldpZGdldExvYWRpbmdQbHVn
aW4oKSBjb25zdAogICAgIHJldHVybiB3aWRnZXQgPyB3aWRnZXQgOiBmaW5kV2lkZ2V0UmVuZGVy
ZXIodGhpcyk7CiB9CiAKLXZvaWQgSFRNTEVtYmVkRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTEVt
YmVkRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IGhpZGRlbkF0dHIpIHsKICAg
ICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAieWVzIikgfHwg
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJ0cnVlIikpIHsKLSAgICAgICAg
ICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJv
cGVydHlXaWR0aCwgMCwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7Ci0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0
LCAwLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVz
ZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgMCwgQ1NTVW5pdFR5
cGU6OkNTU19QWCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0LCAwLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsK
KyAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogc3RhdGljIGJvb2wgaGFz
VHlwZU9yU3JjKGNvbnN0IEhUTUxFbWJlZEVsZW1lbnQmIGVtYmVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaAppbmRleCA3ZmE3ZTEwOGJlYWQuLmU1ZTc2NmY5MWE3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHJp
dmF0ZToKICAgICBIVE1MRW1iZWRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKICAgICBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9udEVsZW1lbnQuY3BwCmluZGV4IDRlYjY1MTkxMGU0Ni4uNjMxMzM1NjMwYTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCkBAIC0xNzUsMjYgKzE3NSwyNiBA
QCBib29sIEhUTUxGb250RWxlbWVudDo6Y3NzVmFsdWVGcm9tRm9udFNpemVOdW1iZXIoY29uc3Qg
U3RyaW5nJiBzLCBDU1NWYWx1ZUlEJiBzaQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEhU
TUxGb250RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTEZvbnRFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhp
bnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAg
aWYgKG5hbWUgPT0gc2l6ZUF0dHIgfHwgbmFtZSA9PSBjb2xvckF0dHIgfHwgbmFtZSA9PSBmYWNl
QXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omhhc1By
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEZvbnRF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIHN0eWxlKQordm9pZCBIVE1MRm9udEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAo
bmFtZSA9PSBzaXplQXR0cikgewogICAgICAgICBDU1NWYWx1ZUlEIHNpemUgPSBDU1NWYWx1ZUlu
dmFsaWQ7CiAgICAgICAgIGlmIChjc3NWYWx1ZUZyb21Gb250U2l6ZU51bWJlcih2YWx1ZSwgc2l6
ZSkpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5Rm9udFNpemUsIHNpemUpOworICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCBz
aXplKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gY29sb3JBdHRyKQogICAgICAgICBhZGRIVE1M
Q29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNvbG9yLCB2YWx1ZSk7CiAgICAgZWxzZSBp
ZiAobmFtZSA9PSBmYWNlQXR0cikgewogICAgICAgICBpZiAoYXV0byBmb250RmFjZVZhbHVlID0g
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVGb250RmFjZVZhbHVlKHZhbHVlKSkKICAg
ICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5Rm9udEZh
bWlseSwgV1RGTW92ZShmb250RmFjZVZhbHVlKSkpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1M
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVl
LCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9udEVsZW1lbnQuaAppbmRleCBjOTgxYWZiNzg3ZGUuLjJjYjFiNDZmNjNkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCkBAIC0zNyw4ICszNyw4IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSFRNTEZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCi0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZp
bmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5kZXggOTVhZTZhMWU1NWIyLi5kYzMyNzMyODIyZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcApAQCAtNjks
MTkgKzY5LDE5IEBAIFJlZjxIVE1MRnJhbWVTZXRFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSFRNTEZyYW1lU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1ib29s
IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxGcmFtZVNldEVsZW1lbnQ6Omhhc1ByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29u
c3QKIHsKICAgICBpZiAobmFtZSA9PSBib3JkZXJjb2xvckF0dHIpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFt
ZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lk
IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBib3JkZXJj
b2xvckF0dHIpCiAgICAgICAgIGFkZEhUTUxDb2xvclRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
Qm9yZGVyQ29sb3IsIHZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAg
ICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IDkx
MTM1YjA4YmM2ZC4uMmU3YTRmMDk1NzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuaApAQCAtNTQsOCArNTQsOCBAQCBwcml2YXRlOgogICAgIEhUTUxGcmFtZVNl
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAg
ICAgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7CiAgICAgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxIUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJF
bGVtZW50LmNwcAppbmRleCAzYjFjNTg5ODMxMTkuLmMzN2UzYjFjZjgwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxIUkVsZW1lbnQuY3BwCkBAIC01MywzOCArNTMsMzggQEAgUmVmPEhUTUxIUkVs
ZW1lbnQ+IEhUTUxIUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MSFJFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLWJvb2wgSFRNTEhSRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTEhSRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0ciB8fCBuYW1lID09
IGNvbG9yQXR0ciB8fCBuYW1lID09IG5vc2hhZGVBdHRyIHx8IG5hbWUgPT0gc2l6ZUF0dHIpCiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxIUkVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5
bGUpCit2b2lkIEhUTUxIUkVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBhbGln
bkF0dHIpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVl
LCAibGVmdCIpKSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luTGVmdCwgMCwgQ1NTVW5pdFR5cGU6OkNT
U19QWCk7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQsIENTU1ZhbHVlQXV0byk7CisgICAgICAg
ICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3Bl
cnR5TWFyZ2luTGVmdCwgMCwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CisgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2lu
UmlnaHQsIENTU1ZhbHVlQXV0byk7CiAgICAgICAgIH0gZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UodmFsdWUsICJyaWdodCIpKSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0
eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luTGVm
dCwgQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5SaWdodCwgMCwgQ1NTVW5pdFR5
cGU6OkNTU19QWCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luTGVmdCwgQ1NTVmFsdWVBdXRvKTsKKyAgICAg
ICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJv
cGVydHlNYXJnaW5SaWdodCwgMCwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luTGVmdCwgQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlNYXJnaW5SaWdodCwgQ1NTVmFsdWVBdXRvKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5MZWZ0LCBDU1NW
YWx1ZUF1dG8pOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBDU1NWYWx1ZUF1dG8pOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHdpZHRoQXR0cikgewogICAgICAgICBpZiAoYXV0
byB2YWx1ZUludGVnZXIgPSBwYXJzZUhUTUxJbnRlZ2VyKHZhbHVlKTsgdmFsdWVJbnRlZ2VyICYm
ICEqdmFsdWVJbnRlZ2VyKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRoLCAxLCBDU1NVbml0VHlwZTo6Q1NT
X1BYKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShz
dHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgMSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVdpZHRoLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNvbG9yQXR0cikgewotICAg
ICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1By
b3BlcnR5Qm9yZGVyU3R5bGUsIENTU1ZhbHVlU29saWQpOworICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUsIENT
U1ZhbHVlU29saWQpOwogICAgICAgICBhZGRIVE1MQ29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eUJvcmRlckNvbG9yLCB2YWx1ZSk7CiAgICAgICAgIGFkZEhUTUxDb2xvclRvU3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlmIChu
YW1lID09IG5vc2hhZGVBdHRyKSB7CiAgICAgICAgIGlmICghaGFzQXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihjb2xvckF0dHIpKSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUsIENT
U1ZhbHVlU29saWQpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGlu
dFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKIAog
ICAgICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBkYXJrR3JheVZhbHVlID0gQ1NT
VmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVDb2xvclZhbHVlKENvbG9yOjpkYXJrR3JheSk7
CiAgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBk
YXJrR3JheVZhbHVlKTsKQEAgLTkzLDExICs5MywxMSBAQCB2b2lkIEhUTUxIUkVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBzaXplQXR0cikgewogICAgICAgICBpbnQgc2l6ZSA9
IHBhcnNlSFRNTEludGVnZXIodmFsdWUpLnZhbHVlX29yKDApOwogICAgICAgICBpZiAoc2l6ZSA8
PSAxKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoLCAwLCBDU1NVbml0VHlwZTo6Q1NT
X1BYKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShz
dHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgMCwgQ1NTVW5pdFR5cGU6OkNTU19Q
WCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQsIHNpemUgLSAyLCBDU1NVbml0
VHlwZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhp
bnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQsIHNpemUgLSAyLCBDU1NVbml0VHlwZTo6
Q1NTX1BYKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1M
RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFs
dWUsIHN0eWxlKTsKIH0KIAogYm9vbCBIVE1MSFJFbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQ
b2ludCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5oCmluZGV4IGY4MzZiZTU3
ODZiZi4uYjNiNTY2YzYyMDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
UkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaApAQCAt
MzUsOCArMzUsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxIUkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAgICBib29s
IGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmNwcAppbmRleCAwYzViZDdlNGRkODMuLmFjZTk2M2U3ZDAzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTY5LDE0ICs2OSwxNCBAQCBET01Ub2tlbkxp
c3QmIEhUTUxJRnJhbWVFbGVtZW50OjpzYW5kYm94KCkKICAgICByZXR1cm4gKm1fc2FuZGJveDsK
IH0KIAotYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTElGcmFtZUVsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRB
dHRyIHx8IG5hbWUgPT0gZnJhbWVib3JkZXJBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gSFRNTEZyYW1lRWxlbWVudEJhc2U6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5h
bWUpOworICAgIHJldHVybiBIVE1MRnJhbWVFbGVtZW50QmFzZTo6aGFzUHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHls
ZSkKK3ZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3
aWR0aEF0dHIpCiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVdpZHRoLCB2YWx1ZSk7CkBAIC04OSwxMCArODksMTAgQEAgdm9pZCBIVE1MSUZyYW1lRWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUKICAgICAgICAgLy8gYSBwcmVzZW50YXRpb25hbCBoaW50IHRoYXQgdGhlIGJvcmRlciBzaG91
bGQgYmUgb2ZmIGlmIHNldCB0byB6ZXJvLgogICAgICAgICBpZiAoIXBhcnNlSFRNTEludGVnZXIo
dmFsdWUpLnZhbHVlX29yKDApKSB7CiAgICAgICAgICAgICAvLyBBZGQgYSBydWxlIHRoYXQgbnVs
bHMgb3V0IG91ciBib3JkZXIgd2lkdGguCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIDAsIENT
U1VuaXRUeXBlOjpDU1NfUFgpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlcldpZHRoLCAwLCBDU1NVbml0VHlw
ZTo6Q1NTX1BYKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBIVE1MRnJhbWVFbGVt
ZW50QmFzZTo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVl
LCBzdHlsZSk7CisgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCiB2b2lkIEhU
TUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaAppbmRleCAyMWMzN2M2ZmIxNGQuLjUyMTU1ZmU3ODdmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNTksOCArNTksOCBAQCBwcml2YXRlOgogCiAg
ICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKLSAg
ICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmKSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFBy
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKICAgICBib29s
IGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3Zjg3ODhlODc0YWUu
LmIxOWMyMDU5NWM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CkBAIC0xMDYsMTQgKzEwNiwxNCBAQCBSZWY8SFRNTEltYWdlRWxlbWVudD4gSFRNTEltYWdlRWxl
bWVudDo6Y3JlYXRlRm9yTGVnYWN5RmFjdG9yeUZ1bmN0aW9uKERvY3VtZW50JgogICAgIHJldHVy
biBpbWFnZTsKIH0KIAotYm9vbCBIVE1MSW1hZ2VFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MSW1hZ2VFbGVt
ZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0g
aGVpZ2h0QXR0ciB8fCBuYW1lID09IGJvcmRlckF0dHIgfHwgbmFtZSA9PSB2c3BhY2VBdHRyIHx8
IG5hbWUgPT0gaHNwYWNlQXR0ciB8fCBuYW1lID09IHZhbGlnbkF0dHIpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
bmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lk
IEhUTUxJbWFnZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIp
IHsKICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2lkdGgs
IHZhbHVlKTsKQEAgLTEzMiw5ICsxMzIsOSBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAg
IH0gZWxzZSBpZiAobmFtZSA9PSBhbGlnbkF0dHIpCiAgICAgICAgIGFwcGx5QWxpZ25tZW50QXR0
cmlidXRlVG9TdHlsZSh2YWx1ZSwgc3R5bGUpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gdmFsaWdu
QXR0cikKLSAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIHZhbHVlKTsKKyAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxp
Z24sIHZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRN
TEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZh
bHVlLCBzdHlsZSk7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxJbWFnZUVsZW1lbnQ6Omlt
YWdlU291cmNlVVJMKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgK
aW5kZXggNmUxYjMzMjk3MWU1Li4zYWIzZmYwYWE3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5oCkBAIC0xNDgsOCArMTQ4LDggQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToK
ICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxlY3RQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKICAgICBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggZDkxMTg4N2E0NmViLi5iMjljYTgwOTZlZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNjg2LDE0ICs2ODYsMTQgQEAgYm9vbCBI
VE1MSW5wdXRFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiAg
ICAgcmV0dXJuIHByb3RlY3RlZElucHV0VHlwZS0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2
ZW50cyk7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTElucHV0RWxlbWVu
dDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09IHZzcGFjZUF0dHIgfHwgbmFtZSA9PSBo
c3BhY2VBdHRyIHx8IG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0ciB8fCAo
bmFtZSA9PSBib3JkZXJBdHRyICYmIGlzSW1hZ2VCdXR0b24oKSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIHJldHVybiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsK
ICAgICBpZiAobmFtZSA9PSB2c3BhY2VBdHRyKSB7CiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpblRvcCwgdmFsdWUpOwpAQCAtNzE3LDcgKzcxNyw3
IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgfSBlbHNlIGlmIChuYW1lID09IGJvcmRl
ckF0dHIgJiYgaXNJbWFnZUJ1dHRvbigpKQogICAgICAgICBhcHBseUJvcmRlckF0dHJpYnV0ZVRv
U3R5bGUodmFsdWUsIHN0eWxlKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFs
dWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbGxlY3RQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAK
IGlubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmluaXRpYWxpemVJbnB1dFR5cGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA1MmFiODMxN2YwYjkuLjFlNTE3
ZTAyYzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTM5MCw4
ICszOTAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1v
dXNlRXZlbnRzKSBmaW5hbDsKIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIGlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAg
ICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRy
ZW4oKSBmaW5hbDsKICAgICB2b2lkIHBhcnNlckRpZFNldEF0dHJpYnV0ZXMoKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKaW5kZXggYjJhYTg4NTQ2OTE0Li45OTZh
YTI5MzFiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcApAQCAtNTcsMzAg
KzU3LDMwIEBAIFJlZjxIVE1MTElFbGVtZW50PiBIVE1MTElFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTExJRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1ib29sIEhUTUxMSUVs
ZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0Citib29sIEhUTUxMSUVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9
PSB0eXBlQXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50
Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRN
TExJRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTExJRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlm
IChuYW1lID09IHR5cGVBdHRyKSB7CiAgICAgICAgIGlmICh2YWx1ZSA9PSAiYSIpCi0gICAgICAg
ICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1By
b3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVMb3dlckFscGhhKTsKKyAgICAgICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0
U3R5bGVUeXBlLCBDU1NWYWx1ZUxvd2VyQWxwaGEpOwogICAgICAgICBlbHNlIGlmICh2YWx1ZSA9
PSAiQSIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVVcHBlckFscGhhKTsK
KyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwg
Q1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCBDU1NWYWx1ZVVwcGVyQWxwaGEpOwogICAgICAgICBl
bHNlIGlmICh2YWx1ZSA9PSAiaSIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFs
dWVMb3dlclJvbWFuKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhp
bnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCBDU1NWYWx1ZUxvd2VyUm9t
YW4pOwogICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PSAiSSIpCi0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZSwgQ1NTVmFsdWVVcHBlclJvbWFuKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCBD
U1NWYWx1ZVVwcGVyUm9tYW4pOwogICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PSAiMSIpCi0gICAg
ICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVEZWNpbWFsKTsKKyAgICAgICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0
U3R5bGVUeXBlLCBDU1NWYWx1ZURlY2ltYWwpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
TGlzdFN0eWxlVHlwZSwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIHZhbHVlKTsK
ICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxl
KTsKIH0KIAogdm9pZCBIVE1MTElFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TElFbGVtZW50LmgKaW5kZXggOGJmOWI3MmIyZGUzLi5kMmRmNjE3ZTEzNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExJRWxlbWVudC5oCkBAIC0zNiw4ICszNiw4IEBAIHByaXZhdGU6CiAgICAgSFRN
TExJRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKLSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAK
ICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKaW5kZXggMTRhNDcyOThhZTZmLi5iMzlkMTU2YTM1
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKQEAgLTYy
LDE0ICs2MiwxNCBAQCBpbnQgSFRNTE1hcnF1ZWVFbGVtZW50OjptaW5pbXVtRGVsYXkoKSBjb25z
dAogICAgIHJldHVybiAxNjsgLy8gRG9uJ3QgYWxsb3cgdGltZXJzIGF0IDwgMTZtcyBpbnRlcnZh
bHMgdG8gYXZvaWQgQ1BVIGhvZ2dpbmc6IHdlYmtpdC5vcmcvYi8xNjA2MDkKIH0KIAotYm9vbCBI
VE1MTWFycXVlZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxNYXJxdWVlRWxlbWVudDo6aGFzUHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAog
ewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIgfHwgbmFt
ZSA9PSBiZ2NvbG9yQXR0ciB8fCBuYW1lID09IHZzcGFjZUF0dHIgfHwgbmFtZSA9PSBoc3BhY2VB
dHRyIHx8IG5hbWUgPT0gc2Nyb2xsYW1vdW50QXR0ciB8fCBuYW1lID09IHNjcm9sbGRlbGF5QXR0
ciB8fCBuYW1lID09IGxvb3BBdHRyIHx8IG5hbWUgPT0gYmVoYXZpb3JBdHRyIHx8IG5hbWUgPT0g
ZGlyZWN0aW9uQXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxFbGVt
ZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTEVsZW1l
bnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQg
SFRNTE1hcnF1ZWVFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MTWFycXVlZUVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHls
ZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIpIHsKICAgICAgICAgaWYgKCF2YWx1ZS5p
c0VtcHR5KCkpCkBAIC05OSwxOCArOTksMTggQEAgdm9pZCBIVE1MTWFycXVlZUVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW0KICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gbG9vcEF0dHIpIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLTEiIHx8IGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAiaW5maW5pdGUiKSkKLSAgICAgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Vi
a2l0TWFycXVlZVJlcGV0aXRpb24sIENTU1ZhbHVlSW5maW5pdGUpOworICAgICAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlX
ZWJraXRNYXJxdWVlUmVwZXRpdGlvbiwgQ1NTVmFsdWVJbmZpbml0ZSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3Bl
cnR5V2Via2l0TWFycXVlZVJlcGV0aXRpb24sIHZhbHVlKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSBpZiAobmFtZSA9PSBiZWhhdmlvckF0dHIpIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5
KCkpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVN0eWxlLCB2YWx1ZSk7CisgICAgICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V2Via2l0TWFycXVlZVN0eWxlLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGRpcmVj
dGlvbkF0dHIpIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V2Via2l0TWFycXVlZURpcmVjdGlvbiwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVE
aXJlY3Rpb24sIHZhbHVlKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAg
ICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogdm9pZCBIVE1MTWFycXVlZUVsZW1lbnQ6OnN0YXJ0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCmluZGV4IGEyZjJlNTQ0
ZTk1Yi4uZGY1YzIyNDdhOTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
YXJxdWVlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVt
ZW50LmgKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MTWFycXVl
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBib29sIGlz
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBm
aW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKICAgICB2b2lkIHN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCmluZGV4IDdjOGI5MzU0MTFlMC4u
ZWIwNTUwYmNlNzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAK
QEAgLTU5LDI4ICs1OSwyOCBAQCBSZWY8SFRNTE9MaXN0RWxlbWVudD4gSFRNTE9MaXN0RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEhUTUxPTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
Ym9vbCBIVE1MT0xpc3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MT0xpc3RFbGVtZW50OjpoYXNQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
CiB7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAg
cmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5h
bWUpOwogfQogCi12b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhUTUxPTGlzdEVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB0eXBlQXR0cikgewogICAgICAgICBp
ZiAodmFsdWUgPT0gImEiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlTG93
ZXJBbHBoYSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVMb3dlckFscGhhKTsK
ICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0gIkEiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5
cGUsIENTU1ZhbHVlVXBwZXJBbHBoYSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFs
dWVVcHBlckFscGhhKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0gImkiKQotICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlTG93ZXJSb21hbik7CisgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZSwgQ1NTVmFsdWVMb3dlclJvbWFuKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0g
IkkiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVlVXBwZXJSb21hbik7Cisg
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVVcHBlclJvbWFuKTsKICAgICAgICAgZWxz
ZSBpZiAodmFsdWUgPT0gIjEiKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUsIENTU1ZhbHVl
RGVjaW1hbCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgQ1NTVmFsdWVEZWNpbWFsKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6Y29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsK
IH0KIAogdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT0xpc3RFbGVtZW50LmgKaW5kZXggMmY0YzM5NzIwZWNlLi5mZDgzNTViZWUxMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCkBAIC00OSw4ICs0OSw4IEBAIHByaXZh
dGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgaXRlbUNvdW50KCkgY29uc3Q7CiAKICAg
ICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJikgZmluYWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZp
bmFsOwogCiAgICAgT3B0aW9uYWw8aW50PiBtX3N0YXJ0OwogICAgIG11dGFibGUgT3B0aW9uYWw8
dW5zaWduZWQ+IG1faXRlbUNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmNwcAppbmRleCBhNmYzYzBmMTJkMjcuLmQ3YjhlNGJiMGNkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTg1LDE5ICs4NSwxOSBAQCBpbnQgSFRN
TE9iamVjdEVsZW1lbnQ6OmRlZmF1bHRUYWJJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9
CiAKLWJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxPYmplY3RFbGVtZW50OjpoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gYm9yZGVyQXR0cikKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgcmV0dXJuIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpoYXNQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxPYmplY3RF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIHN0eWxlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlm
IChuYW1lID09IGJvcmRlckF0dHIpCiAgICAgICAgIGFwcGx5Qm9yZGVyQXR0cmlidXRlVG9TdHls
ZSh2YWx1ZSwgc3R5bGUpOwogICAgIGVsc2UKLSAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHls
ZSk7CisgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQgSFRNTE9i
amVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5oCmluZGV4IDZmMDYyYWE3NTE2OC4uN2RiNWQwYjQyZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC02Myw4ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgaW50
IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwotICAgIGJv
b2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZp
bmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIEluc2VydGVk
SW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENv
bnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAKaW5k
ZXggZWZhOWQ3YWQxZTE0Li43MTcwYTFmMzMxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwCkBAIC01MSwxOSArNTEsMTkgQEAgUmVmPEhUTUxQYXJh
Z3JhcGhFbGVtZW50PiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ04KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MUGFyYWdyYXBoRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxQYXJhZ3JhcGhFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0
eWxlKQordm9pZCBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewogICAgIGlmIChuYW1l
ID09IGFsaWduQXR0cikgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UodmFsdWUsICJtaWRkbGUiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1
ZSwgImNlbnRlciIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRDZW50
ZXIpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRDZW50ZXIpOwogICAgICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImxlZnQiKSkK
LSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1ZhbHVlV2Via2l0TGVmdCk7CisgICAgICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
VGV4dEFsaWduLCBDU1NWYWx1ZVdlYmtpdExlZnQpOwogICAgICAgICBlbHNlIGlmIChlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgInJpZ2h0IikpCi0gICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4
dEFsaWduLCBDU1NWYWx1ZVdlYmtpdFJpZ2h0KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIENTU1Zh
bHVlV2Via2l0UmlnaHQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCB2
YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwg
dmFsdWUsIHN0eWxlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaAppbmRleCBkYzNhYThiOTU0OGEuLmFm
NGRkNzI3NjQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBo
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQu
aApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQYXJhZ3JhcGhF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdm9pZCBjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAgdm9p
ZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luRWxlbWVudC5jcHAKaW5kZXggODUwNzgxOGVmOWNlLi41Y2VjYWViZmQzYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0xNTksMTQgKzE1OSwxNCBA
QCBSZW5kZXJXaWRnZXQqIEhUTUxQbHVnSW5FbGVtZW50OjpyZW5kZXJXaWRnZXRMb2FkaW5nUGx1
Z2luKCkgY29uc3QKICAgICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7IC8vIFRoaXMgd2lsbCByZXR1
cm4gbnVsbHB0ciBpZiB0aGUgcmVuZGVyZXIgaXMgbm90IGEgUmVuZGVyV2lkZ2V0LgogfQogCi1i
b29sIEhUTUxQbHVnSW5FbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25z
dAogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIgfHwg
bmFtZSA9PSB2c3BhY2VBdHRyIHx8IG5hbWUgPT0gaHNwYWNlQXR0ciB8fCBuYW1lID09IGFsaWdu
QXR0cikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxGcmFtZU93bmVyRWxl
bWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxGcmFt
ZU93bmVyRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsK
IH0KIAotdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIpCiAgICAgICAgIGFkZEhU
TUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRoLCB2YWx1ZSk7CkBAIC0xODEs
NyArMTgxLDcgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUKICAgICB9IGVsc2UgaWYgKG5hbWUg
PT0gYWxpZ25BdHRyKQogICAgICAgICBhcHBseUFsaWdubWVudEF0dHJpYnV0ZVRvU3R5bGUodmFs
dWUsIHN0eWxlKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6Y29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7Cisg
ICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0luRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggMDFmZGQ5NzVjMWExLi5hNzNhNWQ0YmU3MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKQEAgLTg4LDggKzg4LDggQEAg
cHJvdGVjdGVkOgogCiAgICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHVzZUZhbGxiYWNrQ29udGVudCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5j
cHAKaW5kZXggYzhiNGY3YWMzZDA4Li4wM2ZkYjFiNThjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByZUVsZW1lbnQuY3BwCkBAIC00NSwxOSArNDUsMTkgQEAgUmVmPEhUTUxQcmVFbGVtZW50
PiBIVE1MUHJlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MUHJlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi1ib29sIEhUTUxQcmVFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MUHJlRWxlbWVu
dDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09IHdyYXBBdHRyKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KG5hbWUpOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MUHJlRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQg
SFRNTFByZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3cmFwQXR0cikKICAg
ICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVBy
ZVdyYXApOwogICAgIGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUs
IHN0eWxlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5oCmluZGV4IGRk
Y2RjNTZiYjY1OS4uNzczM2UyNWEyZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVu
dC5oCkBAIC0zNCw4ICszNCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFByZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBib29sIGlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsK
KyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDM0ZGFl
YjhkYzQzZi4uOGRmNmExYzFhYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcApAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7CiB9
CiAKLWJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxTZWxlY3RFbGVtZW50OjpoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gYWxpZ25BdHRyKSB7CiAgICAgICAgIC8vIERvbid0
IG1hcCAnYWxpZ24nIGF0dHJpYnV0ZS4gVGhpcyBtYXRjaGVzIHdoYXQgRmlyZWZveCwgT3BlcmEg
YW5kIElFIGRvLgpAQCAtMjg1LDcgKzI4NSw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6Omlz
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZTo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0
dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omhhc1ByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDI3MmYxYzQw
NDgzMS4uYjQ0YjhjZTVjNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oCkBAIC0xMzAsNyArMTMwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBmaW5hbDsKIAogICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKLSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKICAgICBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcAppbmRleCA5ZDk3ZTI4NmE4YzEuLmM1NDhlNTA2
YzA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5jcHAKQEAgLTQ2LDEzICs0NiwxMyBAQCBSZWY8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZQogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYWxpZ25B
dHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNhcHRp
b25TaWRlLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Q2FwdGlvblNpZGUsIHZhbHVlKTsKICAgICB9IGVs
c2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFBy
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4
IDgwMWNkZTBiYjE2NS4uNDkyZTM4OTA0Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmKSBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAppbmRleCA1OTNm
N2QyNDc2N2QuLjQzMDE0YWFhYTM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDZWxsRWxlbWVudC5jcHAKQEAgLTkwLDE3ICs5MCwxNyBAQCBpbnQgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OmNlbGxJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIGluZGV4OwogfQogCi1ib29sIEhU
TUxUYWJsZUNlbGxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MVGFibGVDZWxsRWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25z
dAogewogICAgIGlmIChuYW1lID09IG5vd3JhcEF0dHIgfHwgbmFtZSA9PSB3aWR0aEF0dHIgfHwg
bmFtZSA9PSBoZWlnaHRBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSFRN
TFRhYmxlUGFydEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJl
dHVybiBIVE1MVGFibGVQYXJ0RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKK3ZvaWQg
SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBub3dyYXBB
dHRyKQotICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVXZWJraXROb3dyYXApOworICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V2hpdGVTcGFjZSwgQ1NTVmFsdWVXZWJraXROb3dyYXApOwogICAgIGVsc2UgaWYgKG5hbWUgPT0g
d2lkdGhBdHRyKSB7CiAgICAgICAgIGlmIChwYXJzZUhUTUxJbnRlZ2VyKHZhbHVlKS52YWx1ZV9v
cigwKSA+IDApIC8vIHdpZHRoPSIwIiBpcyBpZ25vcmVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGgg
V2luSUUuCiAgICAgICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlXaWR0aCwgdmFsdWUpOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROCiAgICAgICAgIGlmIChwYXJzZUhUTUxJbnRlZ2VyKHZhbHVlKS52YWx1ZV9vcigwKSA+IDAp
IC8vIGhlaWdodD0iMCIgaXMgaWdub3JlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFdpbklFLgog
ICAgICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5SGVpZ2h0
LCB2YWx1ZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAg
ICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKIHZvaWQgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQpAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TCiAgICAgICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CiB9CiAKLWNvbnN0IFN0eWxlUHJvcGVydGllcyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6
OmFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIGNvbnN0Citjb25zdCBTdHls
ZVByb3BlcnRpZXMqIEhUTUxUYWJsZUNlbGxFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoKSBjb25zdAogewogICAgIGlmIChhdXRvIHRhYmxlID0gZmluZFBhcmVudFRh
YmxlKCkpCiAgICAgICAgIHJldHVybiB0YWJsZS0+YWRkaXRpb25hbENlbGxTdHlsZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCmluZGV4IGYwNDUzOTMxM2Ri
Ny4uN2Y5MjMwNzBiYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNlbGxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxl
bWVudC5oCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ2VsbEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7Ci0gICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRp
dGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CisgICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVz
KiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCmluZGV4IDVl
MjRiOTdkOGQ1ZC4uOTEyNjUxM2NiMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ29sRWxlbWVudC5jcHAKQEAgLTU0LDE5ICs1NCwxOSBAQCBSZWY8SFRNTFRhYmxlQ29sRWxl
bWVudD4gSFRNTFRhYmxlQ29sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZUNvbEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAotYm9vbCBIVE1MVGFibGVDb2xFbGVtZW50Ojppc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1M
VGFibGVDb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRy
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSFRNTFRhYmxlUGFydEVsZW1lbnQ6
OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBIVE1MVGFibGVQYXJ0
RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAot
dm9pZCBIVE1MVGFibGVDb2xFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MVGFibGVDb2xFbGVtZW50
Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQogICAgICAgICBhZGRIVE1M
TGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgdmFsdWUpOwogICAgIGVsc2UK
LSAgICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAgICAgICBIVE1MVGFibGVQYXJ0RWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUs
IHN0eWxlKTsKIH0KIAogdm9pZCBIVE1MVGFibGVDb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTg4
LDcgKzg4LDcgQEAgdm9pZCBIVE1MVGFibGVDb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICAgICAgSFRNTFRhYmxlUGFy
dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotY29uc3QgU3R5bGVQ
cm9wZXJ0aWVzKiBIVE1MVGFibGVDb2xFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGUoKSBjb25zdAorY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVDb2xF
bGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdAogewogICAg
IGlmICghaGFzVGFnTmFtZShjb2xncm91cFRhZykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaAppbmRleCAyZjRmNjM4MmI2
NGMuLjYxNTdmMDZiZThkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVt
ZW50LmgKQEAgLTQzLDkgKzQzLDkgQEAgcHJpdmF0ZToKICAgICBIVE1MVGFibGVDb2xFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7Ci0gICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlv
bmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJikgZmluYWw7CisgICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFs
UHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIG1f
c3BhbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCBi
Zjc5ZDJjNTAwYTEuLjRkZTQ1MzRjYWE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwCkBAIC0zMDQsMTQgKzMwNCwxNCBAQCBzdGF0aWMgYm9vbCBnZXRCb3JkZXJz
RnJvbUZyYW1lQXR0cmlidXRlVmFsdWUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIGJvb2wmIGJv
cgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2
b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0
dHIpCiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRo
LCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBoZWlnaHRBdHRyKQogICAgICAgICBhZGRI
VE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQsIHZhbHVlKTsKICAgICBl
bHNlIGlmIChuYW1lID09IGJvcmRlckF0dHIpIAotICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIHBhcnNl
Qm9yZGVyV2lkdGhBdHRyaWJ1dGUodmFsdWUpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKKyAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eUJvcmRlcldpZHRoLCBwYXJzZUJvcmRlcldpZHRoQXR0cmlidXRlKHZhbHVlKSwgQ1NTVW5pdFR5
cGU6OkNTU19QWCk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBib3JkZXJjb2xvckF0dHIpIHsKICAg
ICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhZGRIVE1MQ29sb3JUb1N0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCB2YWx1ZSk7CkBAIC0zMjMsNyArMzIz
LDcgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICAgICAgICAgIHN0eWxlLnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZhbHVl
OjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9tT3BhcXVlU291
cmNlOjpObykpKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gdmFsaWduQXR0cikgewogICAgICAg
ICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCB2YWx1
ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgdmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBjZWxsc3BhY2luZ0F0dHIpIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJT
cGFjaW5nLCB2YWx1ZSk7CkBAIC0zMzYsMzYgKzMzNiwzNiBAQCB2b2lkIEhUTUxUYWJsZUVsZW1l
bnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbGlnbkF0dHIpIHsKICAgICAgICAgaWYgKCF2
YWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSh2YWx1ZSwgImNlbnRlciIpKSB7Ci0gICAgICAgICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpbklubGlu
ZVN0YXJ0LCBDU1NWYWx1ZUF1dG8pOwotICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5JbmxpbmVFbmQs
IENTU1ZhbHVlQXV0byk7CisgICAgICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hcmdpbklubGluZVN0YXJ0LCBDU1NWYWx1
ZUF1dG8pOworICAgICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgQ1NTUHJvcGVydHlNYXJnaW5JbmxpbmVFbmQsIENTU1ZhbHVlQXV0byk7CiAg
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5RmxvYXQsIHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENT
U1Byb3BlcnR5RmxvYXQsIHZhbHVlKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobmFtZSA9
PSBydWxlc0F0dHIpIHsKICAgICAgICAgLy8gVGhlIHByZXNlbmNlIG9mIGEgdmFsaWQgcnVsZXMg
YXR0cmlidXRlIGNhdXNlcyBib3JkZXIgY29sbGFwc2luZyB0byBiZSBlbmFibGVkLgogICAgICAg
ICBpZiAobV9ydWxlc0F0dHIgIT0gVW5zZXRSdWxlcykKLSAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJDb2xs
YXBzZSwgQ1NTVmFsdWVDb2xsYXBzZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Qm9yZGVyQ29sbGFwc2UsIENTU1Zh
bHVlQ29sbGFwc2UpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBmcmFtZUF0dHIpIHsKICAgICAg
ICAgYm9vbCBib3JkZXJUb3A7CiAgICAgICAgIGJvb2wgYm9yZGVyUmlnaHQ7CiAgICAgICAgIGJv
b2wgYm9yZGVyQm90dG9tOwogICAgICAgICBib29sIGJvcmRlckxlZnQ7CiAgICAgICAgIGlmIChn
ZXRCb3JkZXJzRnJvbUZyYW1lQXR0cmlidXRlVmFsdWUodmFsdWUsIGJvcmRlclRvcCwgYm9yZGVy
UmlnaHQsIGJvcmRlckJvdHRvbSwgYm9yZGVyTGVmdCkpIHsKLSAgICAgICAgICAgIGFkZFByb3Bl
cnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJX
aWR0aCwgQ1NTVmFsdWVUaGluKTsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZSwgYm9yZGVy
VG9wID8gQ1NTVmFsdWVTb2xpZCA6IENTU1ZhbHVlSGlkZGVuKTsKLSAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3Jk
ZXJCb3R0b21TdHlsZSwgYm9yZGVyQm90dG9tID8gQ1NTVmFsdWVTb2xpZCA6IENTU1ZhbHVlSGlk
ZGVuKTsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUsIGJvcmRlckxlZnQgPyBDU1NWYWx1
ZVNvbGlkIDogQ1NTVmFsdWVIaWRkZW4pOwotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGUs
IGJvcmRlclJpZ2h0ID8gQ1NTVmFsdWVTb2xpZCA6IENTU1ZhbHVlSGlkZGVuKTsKKyAgICAgICAg
ICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVy
dHlCb3JkZXJXaWR0aCwgQ1NTVmFsdWVUaGluKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9Q
cmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZSwg
Ym9yZGVyVG9wID8gQ1NTVmFsdWVTb2xpZCA6IENTU1ZhbHVlSGlkZGVuKTsKKyAgICAgICAgICAg
IGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21TdHlsZSwgYm9yZGVyQm90dG9tID8gQ1NTVmFsdWVTb2xpZCA6IENTU1ZhbHVl
SGlkZGVuKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHls
ZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUsIGJvcmRlckxlZnQgPyBDU1NWYWx1
ZVNvbGlkIDogQ1NTVmFsdWVIaWRkZW4pOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNl
bnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGUsIGJv
cmRlclJpZ2h0ID8gQ1NTVmFsdWVTb2xpZCA6IENTU1ZhbHVlSGlkZGVuKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpj
b2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUp
OwogfQogCi1ib29sIEhUTUxUYWJsZUVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Citib29sIEhUTUxUYWJsZUVsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRB
dHRyIHx8IG5hbWUgPT0gYmdjb2xvckF0dHIgfHwgbmFtZSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBu
YW1lID09IHZhbGlnbkF0dHIgfHwgbmFtZSA9PSB2c3BhY2VBdHRyIHx8IG5hbWUgPT0gaHNwYWNl
QXR0ciB8fCBuYW1lID09IGNlbGxzcGFjaW5nQXR0ciB8fCBuYW1lID09IGJvcmRlckF0dHIgfHwg
bmFtZSA9PSBib3JkZXJjb2xvckF0dHIgfHwgbmFtZSA9PSBmcmFtZUF0dHIgfHwgbmFtZSA9PSBy
dWxlc0F0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCiB2b2lkIEhUTUxU
YWJsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBTdHlsZVBy
b3BlcnRpZXMqIGxlYWtCb3JkZXJTdHlsZShDU1NWYWx1ZUlEIHZhbHVlKQogICAgIHJldHVybiAm
c3R5bGUubGVha1JlZigpOwogfQogCi1jb25zdCBTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZUVs
ZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIGNvbnN0Citjb25z
dCBTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZUVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRp
b25hbEhpbnRTdHlsZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWVBdHRyKQogICAgICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKaW5kZXggODI0Njg5
NjhlYzJmLi41NzY0YWRhMzM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5oCkBAIC03MiwxMiArNzIsMTIgQEAgcHJpdmF0ZToKICAgICBIVE1MVGFibGVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwotICAgIGJv
b2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZp
bmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBib29sIGlzVVJM
QXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gVXNlZCB0
byBvYnRhaW4gZWl0aGVyIGEgc29saWQgb3Igb3V0c2V0IGJvcmRlciBkZWNsIGFuZCB0byBkZWFs
IHdpdGggdGhlIGZyYW1lIGFuZCBydWxlcyBhdHRyaWJ1dGVzLgotICAgIGNvbnN0IFN0eWxlUHJv
cGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgY29uc3QgZmlu
YWw7CisgICAgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1
dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcAppbmRleCBjNGNjMzMxNWM5NzIuLmVhZTU2
MjgwNGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5j
cHAKQEAgLTQyLDE0ICs0MiwxNCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTFRh
YmxlUGFydEVsZW1lbnQpOwogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1ib29sIEhU
TUxUYWJsZVBhcnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBIVE1MVGFibGVQYXJ0RWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25z
dAogewogICAgIGlmIChuYW1lID09IGJnY29sb3JBdHRyIHx8IG5hbWUgPT0gYmFja2dyb3VuZEF0
dHIgfHwgbmFtZSA9PSB2YWxpZ25BdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJp
YnV0ZShuYW1lKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5
bGUpCit2b2lkIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gYmdjb2xvckF0dHIpCiAgICAgICAgIGFkZEhUTUxDb2xvclRvU3R5bGUoc3R5bGUsIENTU1By
b3BlcnR5QmFja2dyb3VuZENvbG9yLCB2YWx1ZSk7CkBAIC01OSwzMSArNTksMzEgQEAgdm9pZCBI
VE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE4KICAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3Bl
cnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9j
dW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObykpKTsK
ICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gdmFsaWduQXR0cikgewogICAgICAgICBpZiAoZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJ0b3AiKSkKLSAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlWZXJ0
aWNhbEFsaWduLCBDU1NWYWx1ZVRvcCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFs
dWVUb3ApOwogICAgICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2
YWx1ZSwgIm1pZGRsZSIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIENTU1ZhbHVlTWlk
ZGxlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShz
dHlsZSwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCBDU1NWYWx1ZU1pZGRsZSk7CiAgICAgICAg
IGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAiYm90dG9tIikp
Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwgQ1NTVmFsdWVCb3R0b20pOworICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVZlcnRpY2FsQWxpZ24sIENTU1ZhbHVlQm90dG9tKTsKICAgICAgICAgZWxzZSBpZiAoZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJiYXNlbGluZSIpKQotICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVZlcnRpY2FsQWxpZ24sIENTU1ZhbHVlQmFzZWxpbmUpOworICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxp
Z24sIENTU1ZhbHVlQmFzZWxpbmUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVydGlj
YWxBbGlnbiwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFs
SGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIHZhbHVlKTsKICAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gYWxpZ25BdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgIm1pZGRsZSIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHZhbHVlLCAiY2VudGVyIikpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NW
YWx1ZVdlYmtpdENlbnRlcik7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZVdlYmtpdENl
bnRlcik7CiAgICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZh
bHVlLCAiYWJzbWlkZGxlIikpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZUNlbnRl
cik7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCBDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGVsc2Ug
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAibGVmdCIpKQotICAgICAg
ICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQ
cm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJraXRMZWZ0KTsKKyAgICAgICAgICAgIGFkZFBy
b3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxp
Z24sIENTU1ZhbHVlV2Via2l0TGVmdCk7CiAgICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAicmlnaHQiKSkKLSAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24s
IENTU1ZhbHVlV2Via2l0UmlnaHQpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQ1NTVmFsdWVXZWJr
aXRSaWdodCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlUZXh0QWxpZ24sIHZhbHVlKTsK
KyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwg
Q1NTUHJvcGVydHlUZXh0QWxpZ24sIHZhbHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gaGVp
Z2h0QXR0cikgewogICAgICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFk
ZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUhlaWdodCwgdmFsdWUpOwogICAg
IH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwog
fQogCiBSZWZQdHI8Y29uc3QgSFRNTFRhYmxlRWxlbWVudD4gSFRNTFRhYmxlUGFydEVsZW1lbnQ6
OmZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVBhcnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBh
cnRFbGVtZW50LmgKaW5kZXggMDRmOTQ3MWJhYmEyLi43ODRiOThhZGYzMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmgKQEAgLTM5LDggKzM5LDggQEAgcHJv
dGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKKyAgICBib29s
IGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8Y29uc3QgSFRNTFRhYmxl
RWxlbWVudD4gZmluZFBhcmVudFRhYmxlKCkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAppbmRleCA0OTk5YzE1OGU2YmEuLjE4
YWUyNGFmYTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
PiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi1jb25zdCBTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdAorY29u
c3QgU3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6YWRkaXRpb25hbFBy
ZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3QKIHsKICAgICBhdXRvIHRhYmxlID0gZmluZFBh
cmVudFRhYmxlKCk7CiAgICAgaWYgKCF0YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaAppbmRleCBlZmEzM2U5N2ViOTkuLjc5MTA0MzBlOGQxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaApAQCAt
NDUsNyArNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKLSAgICBjb25z
dCBTdHlsZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgp
IGNvbnN0IGZpbmFsOworICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNl
bnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3QgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRl
eCA1YzZmOGViMGVmMDcuLmQ2Nzk3NGFlZWJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAg
ICAgICAgc2V0Tm9uRGlydHlWYWx1ZShkZWZhdWx0VmFsdWUoKSk7CiB9CiAKLWJvb2wgSFRNTFRl
eHRBcmVhRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewog
ICAgIGlmIChuYW1lID09IGFsaWduQXR0cikgewogICAgICAgICAvLyBEb24ndCBtYXAgJ2FsaWdu
JyBhdHRyaWJ1dGUuICBUaGlzIG1hdGNoZXMgd2hhdCBGaXJlZm94LCBPcGVyYSBhbmQgSUUgZG8u
CkBAIC0xNDksMjEgKzE0OSwyMSBAQCBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbgogCiAgICAgaWYg
KG5hbWUgPT0gd3JhcEF0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7Cisg
ICAgcmV0dXJuIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhp
bnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5
bGUpCit2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9
PSB3cmFwQXR0cikgewogICAgICAgICBpZiAoc2hvdWxkV3JhcFRleHQoKSkgewotICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlUHJlV3JhcCk7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0
eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V29yZFdyYXAs
IENTU1ZhbHVlQnJlYWtXb3JkKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVByZVdy
YXApOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVdvcmRXcmFwLCBDU1NWYWx1ZUJyZWFrV29yZCk7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQcmUpOwotICAgICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eVdvcmRXcmFwLCBDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NT
VmFsdWVQcmUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdvcmRXcmFwLCBDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAg
IH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOworICAg
ICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogdm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmgKaW5kZXggZWViYzQ1YTRhMGEyLi4zYTdhYjhkYzhjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMTEsOCArMTExLDggQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAg
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOworICAgIGJvb2wgaGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Cisg
ICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBm
aW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogICAgIGJv
b2wgYXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmLCBib29sKSBmaW5hbDsKICAgICB2b2lkIHJl
c2V0KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCmluZGV4IDRjYTAzZGI4NDkyYy4uNDNiNTBhMWIxMzAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApA
QCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmFkanVz
dElubmVyVGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTCiAgICAgdGV4dEJsb2Nr
U3R5bGUuc2V0VW5pY29kZUJpZGkocGFyZW50U3R5bGUudW5pY29kZUJpZGkoKSk7CiAKICAgICBp
ZiAoYXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGNv
bnN0IFN0eWxlUHJvcGVydGllcyogcHJvcGVydGllcyA9IGlubmVyVGV4dC0+cHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoKSkgeworICAgICAgICBpZiAoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBw
cm9wZXJ0aWVzID0gaW5uZXJUZXh0LT5wcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpKSB7CiAgICAg
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gcHJvcGVydGllcy0+Z2V0UHJvcGVydHlD
U1NWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnkpOwogICAgICAgICAgICAgaWYgKGlz
PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpCiAgICAgICAgICAgICAgICAgdGV4dEJsb2NrU3R5
bGUuc2V0VXNlck1vZGlmeShkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAppbmRleCA1NzBlYTdmZmZlYWMu
LjkzYzMxMjQ2ZTlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuY3Bw
CkBAIC00OSwxOSArNDksMTkgQEAgUmVmPEhUTUxVTGlzdEVsZW1lbnQ+IEhUTUxVTGlzdEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MVUxpc3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
LWJvb2wgSFRNTFVMaXN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgSFRNTFVMaXN0RWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25z
dAogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAg
IHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShu
YW1lKTsKIH0KIAotdm9pZCBIVE1MVUxpc3RFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9pZCBIVE1MVUxpc3RF
bGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpCi0gICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlM
aXN0U3R5bGVUeXBlLCB2YWx1ZSk7CisgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25h
bEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlLCB2YWx1ZSk7CiAgICAg
ZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5oCmluZGV4IGI1MmMyMDMwZTU3
Yy4uMGNhMjIyOTYwNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlz
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaApA
QCAtMzUsOCArMzUsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxVTGlzdEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBib29sIGlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAg
ICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCA0MjNlZDFkNjUy
YmIuLmE3YWViZTM3YjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRBdHRhY2hS
ZW5kZXJlcnMoKQogICAgIH0KIH0KIAotdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQordm9p
ZCBIVE1MVmlkZW9FbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRy
KSB7CiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRo
LCB2YWx1ZSk7CkBAIC0xMjAsMTQgKzEyMCwxNCBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJgog
ICAgICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlIZWlnaHQsIHZh
bHVlKTsKICAgICAgICAgYXBwbHlBc3BlY3RSYXRpb0Zyb21XaWR0aEFuZEhlaWdodEF0dHJpYnV0
ZXNUb1N0eWxlKHN0eWxlKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTE1lZGlhRWxlbWVudDo6
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7
CisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLWJvb2wgSFRNTFZpZGVvRWxlbWVu
dDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29u
c3QKK2Jvb2wgSFRNTFZpZGVvRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09
IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJldHVybiBIVE1MTWVkaWFFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1l
KTsKKyAgICByZXR1cm4gSFRNTE1lZGlhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShuYW1lKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggMGMxNzRiOGI0NzYxLi40
ZGExNzkyNjUzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0x
MTcsOCArMTE3LDggQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFs
OwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKKyAgICBib29sIGhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JikgZmluYWw7CiAgICAgYm9vbCBpc1ZpZGVvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiBwbGF5ZXIoKSAmJiBw
bGF5ZXIoKS0+aGFzVmlkZW8oKTsgfQogICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCmluZGV4IGMyYjE4MDAzN2U5NC4uN2I1MzNjOTkwODM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTE0
OSw3ICsxMTQ5LDcgQEAgUmVmPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNo
Pj4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJyYXlGb3JNYXQKIFJlZlB0cjxQcm90b2NvbDo6
Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXR0cmlidXRl
c1N0eWxlKFN0eWxlZEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgLy8gRklYTUU6IFVnbGluZXNz
IGJlbG93LgotICAgIGF1dG8qIGF0dHJpYnV0ZVN0eWxlID0gY29uc3RfY2FzdDxTdHlsZVByb3Bl
cnRpZXMqPihlbGVtZW50LnByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkpOworICAgIGF1dG8q
IGF0dHJpYnV0ZVN0eWxlID0gY29uc3RfY2FzdDxTdHlsZVByb3BlcnRpZXMqPihlbGVtZW50LnBy
ZXNlbnRhdGlvbmFsSGludFN0eWxlKCkpOwogICAgIGlmICghYXR0cmlidXRlU3R5bGUpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5j
cHAKaW5kZXggNjA3ZTYyZWMwODY4Li5iMjRjMzRjMTQ2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MRWxlbWVudC5jcHAKQEAgLTEwNiwxMSArMTA2LDExIEBAIHZvaWQgTWF0aE1MRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYKICAgICB9CiB9CiAKLWJvb2wgTWF0aE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jvb2wgTWF0aE1MRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1lID09IGJhY2tncm91bmRBdHRyIHx8IG5h
bWUgPT0gY29sb3JBdHRyIHx8IG5hbWUgPT0gZGlyQXR0ciB8fCBuYW1lID09IGZvbnRmYW1pbHlB
dHRyIHx8IG5hbWUgPT0gZm9udHNpemVBdHRyIHx8IG5hbWUgPT0gZm9udHN0eWxlQXR0ciB8fCBu
YW1lID09IGZvbnR3ZWlnaHRBdHRyIHx8IG5hbWUgPT0gbWF0aGJhY2tncm91bmRBdHRyIHx8IG5h
bWUgPT0gbWF0aGNvbG9yQXR0ciB8fCBuYW1lID09IG1hdGhzaXplQXR0ciB8fCBuYW1lID09IGRp
c3BsYXlzdHlsZUF0dHIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBTdHlsZWRF
bGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gU3R5bGVk
RWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAog
c3RhdGljIFN0cmluZyBjb252ZXJ0TWF0aFNpemVJZk5lZWRlZChjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKQEAgLTEzMiw0MyArMTMyLDQzIEBAIHN0YXRpYyBTdHJpbmcgY29udmVydE1hdGhTaXpl
SWZOZWVkZWQoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAgICAgcmV0dXJuIG1ha2VTdHJpbmco
Rm9ybWF0dGVkTnVtYmVyOjpmaXhlZFdpZHRoKHVuaXRsZXNzVmFsdWUgKiAxMDAsIDMpLCAnJScp
OwogfQogCi12b2lkIE1hdGhNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIE1hdGhNTEVsZW1lbnQ6OmNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBz
dHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBtYXRoYmFja2dyb3VuZEF0dHIpCi0gICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IsIHZhbHVlKTsKKyAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlv
bmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgdmFsdWUpOwog
ICAgIGVsc2UgaWYgKG5hbWUgPT0gbWF0aHNpemVBdHRyKQotICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Rm9udFNpemUsIGNv
bnZlcnRNYXRoU2l6ZUlmTmVlZGVkKHZhbHVlKSk7CisgICAgICAgIGFkZFByb3BlcnR5VG9QcmVz
ZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlGb250U2l6ZSwgY29udmVydE1h
dGhTaXplSWZOZWVkZWQodmFsdWUpKTsKICAgICBlbHNlIGlmIChuYW1lID09IG1hdGhjb2xvckF0
dHIpCi0gICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlDb2xvciwgdmFsdWUpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Q29sb3IsIHZhbHVlKTsKICAgICBl
bHNlIGlmIChuYW1lID09IGRpckF0dHIpIHsKICAgICAgICAgaWYgKGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS5jb3JlTWF0aE1MRW5hYmxlZCgpIHx8IGhhc1RhZ05hbWUobWF0aFRhZykgfHwgaGFzVGFn
TmFtZShtcm93VGFnKSB8fCBoYXNUYWdOYW1lKG1zdHlsZVRhZykgfHwgaXNNYXRoTUxUb2tlbigp
KQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eURpcmVjdGlvbiwg
dmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBkaXNwbGF5c3R5bGVBdHRyKSB7CiAgICAg
ICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImZhbHNlIikpCi0g
ICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUs
IENTU1Byb3BlcnR5TWF0aFN0eWxlLCBDU1NWYWx1ZUNvbXBhY3QpOworICAgICAgICAgICAgYWRk
UHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1hdGhT
dHlsZSwgQ1NTVmFsdWVDb21wYWN0KTsKICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UodmFsdWUsICJ0cnVlIikpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWF0aFN0eWxlLCBD
U1NWYWx1ZU5vcm1hbCk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWF0aFN0eWxlLCBDU1NWYWx1ZU5vcm1hbCk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5jb3JlTWF0aE1M
RW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICBTdHlsZWRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICAgICAgICAgIFN0
eWxlZEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUs
IHZhbHVlLCBzdHlsZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
Ly8gRklYTUU6IFRoZSBmb2xsb3dpbmcgYXJlIGRlcHJlY2F0ZWQgYXR0cmlidXRlcyB0aGF0IHNo
b3VsZCBsb3NlIGlmIHRoZXJlIGlzIGEgY29uZmxpY3Qgd2l0aCBhIG5vbi1kZXByZWNhdGVkIGF0
dHJpYnV0ZS4KICAgICAgICAgaWYgKG5hbWUgPT0gZm9udHNpemVBdHRyKQotICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eUZvbnRTaXplLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9u
YWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Rm9udFNpemUsIHZhbHVlKTsKICAgICAgICAg
ZWxzZSBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikKLSAgICAgICAgICAgIGFkZFByb3BlcnR5
VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
Q29sb3IsIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhp
bnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIHZhbHVlKTsKICAgICAg
ICAgZWxzZSBpZiAobmFtZSA9PSBjb2xvckF0dHIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Q29sb3IsIHZhbHVl
KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlDb2xvciwgdmFsdWUpOwogICAgICAgICBlbHNlIGlmIChuYW1lID09IGZv
bnRzdHlsZUF0dHIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Rm9udFN0eWxlLCB2YWx1ZSk7CisgICAgICAgICAg
ICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
Rm9udFN0eWxlLCB2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gZm9udHdlaWdodEF0
dHIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5Rm9udFdlaWdodCwgdmFsdWUpOworICAgICAgICAgICAgYWRkUHJv
cGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUZvbnRXZWln
aHQsIHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSBmb250ZmFtaWx5QXR0cikKLSAg
ICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwg
Q1NTUHJvcGVydHlGb250RmFtaWx5LCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uYWxIaW50U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5Rm9udEZhbWlseSwgdmFs
dWUpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVCghaXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSkpOwotICAgICAgICAgICAgU3R5bGVkRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CisgICAgICAgICAg
ICBBU1NFUlQoIWhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSkpOworICAg
ICAgICAgICAgU3R5bGVkRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCmluZGV4IGU3ZTg1Y2E2Y2UxMS4uOGY3MGM3MDQxNzhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKQEAgLTk1LDggKzk1LDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9vbCBpc1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3Zl
cnJpZGU7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCB3
aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDA1ZTI4NDNkYzFmMS4uZTFkY2Q0NWJmN2I2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBA
IC01NjMsMTUgKzU2MywxNCBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaEFsbFJ1
bGVzKGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzLCBib29sIGluYwogICAgIGlmIChtYXRj
aEF1dGhvckFuZFVzZXJTdHlsZXMpCiAgICAgICAgIG1hdGNoVXNlclJ1bGVzKCk7CiAKLSAgICAv
LyBOb3cgY2hlY2sgYXV0aG9yIHJ1bGVzLCBiZWdpbm5pbmcgZmlyc3Qgd2l0aCBwcmVzZW50YXRp
b25hbCBhdHRyaWJ1dGVzIG1hcHBlZCBmcm9tIEhUTUwuCiAgICAgaWYgKGlzPFN0eWxlZEVsZW1l
bnQ+KGVsZW1lbnQoKSkpIHsKICAgICAgICAgYXV0byYgc3R5bGVkRWxlbWVudCA9IGRvd25jYXN0
PFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQoKSk7Ci0gICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3Bl
cnRpZXMoc3R5bGVkRWxlbWVudC5wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpKTsKKyAgICAg
ICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jcHJlc2VudGF0aW9uYWwtaGludHMK
KyAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhzdHlsZWRFbGVtZW50LnByZXNlbnRh
dGlvbmFsSGludFN0eWxlKCkpOwogCi0gICAgICAgIC8vIE5vdyB3ZSBjaGVjayBhZGRpdGlvbmFs
IG1hcHBlZCBkZWNsYXJhdGlvbnMuCi0gICAgICAgIC8vIFRhYmxlcyBhbmQgdGFibGUgY2VsbHMg
c2hhcmUgYW4gYWRkaXRpb25hbCBtYXBwZWQgcnVsZSB0aGF0IG11c3QgYmUgYXBwbGllZAotICAg
ICAgICAvLyBhZnRlciBhbGwgYXR0cmlidXRlcywgc2luY2UgdGhlaXIgbWFwcGVkIHN0eWxlIGRl
cGVuZHMgb24gdGhlIHZhbHVlcyBvZiBtdWx0aXBsZSBhdHRyaWJ1dGVzLgotICAgICAgICBhZGRF
bGVtZW50U3R5bGVQcm9wZXJ0aWVzKHN0eWxlZEVsZW1lbnQuYWRkaXRpb25hbFByZXNlbnRhdGlv
bkF0dHJpYnV0ZVN0eWxlKCkpOworICAgICAgICAvLyBUYWJsZXMgYW5kIHRhYmxlIGNlbGxzIHNo
YXJlIGFuIGFkZGl0aW9uYWwgcHJlc2VudGF0aW9uIHN0eWxlIHRoYXQgbXVzdCBiZSBhcHBsaWVk
CisgICAgICAgIC8vIGFmdGVyIGFsbCBhdHRyaWJ1dGVzLCBzaW5jZSB0aGVpciBzdHlsZSBkZXBl
bmRzIG9uIHRoZSB2YWx1ZXMgb2YgbXVsdGlwbGUgYXR0cmlidXRlcy4KKyAgICAgICAgYWRkRWxl
bWVudFN0eWxlUHJvcGVydGllcyhzdHlsZWRFbGVtZW50LmFkZGl0aW9uYWxQcmVzZW50YXRpb25h
bEhpbnRTdHlsZSgpKTsKIAogICAgICAgICBpZiAoaXM8SFRNTEVsZW1lbnQ+KHN0eWxlZEVsZW1l
bnQpKSB7CiAgICAgICAgICAgICBib29sIGlzQXV0bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL01hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9NYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGUuY3BwCmluZGV4IGNlNWYxNWNmNmQ4ZS4uNWJh
MzA5ODYwZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9NYXRjaGVkRGVjbGFy
YXRpb25zQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoZWREZWNsYXJh
dGlvbnNDYWNoZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIE1hdGNoZWREZWNsYXJhdGlv
bnNDYWNoZTo6c3dlZXAoKQogewogICAgIC8vIExvb2sgZm9yIGNhY2hlIGVudHJpZXMgY29udGFp
bmluZyBhIHN0eWxlIGRlY2xhcmF0aW9uIHdpdGggYSBzaW5nbGUgcmVmIGFuZCByZW1vdmUgdGhl
bS4KICAgICAvLyBUaGlzIG1heSBoYXBwZW4gd2hlbiBhbiBlbGVtZW50IGF0dHJpYnV0ZSBtdXRh
dGlvbiBjYXVzZXMgaXQgdG8gZ2VuZXJhdGUgYSBuZXcgaW5saW5lU3R5bGUoKQotICAgIC8vIG9y
IHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCksIHBvdGVudGlhbGx5IGxlYXZpbmcgdGhpcyBj
YWNoZSB3aXRoIHRoZSBsYXN0IHJlZiBvbiB0aGUgb2xkIG9uZS4KKyAgICAvLyBvciBwcmVzZW50
YXRpb25hbEhpbnRTdHlsZSgpLCBwb3RlbnRpYWxseSBsZWF2aW5nIHRoaXMgY2FjaGUgd2l0aCB0
aGUgbGFzdCByZWYgb24gdGhlIG9sZCBvbmUuCiAgICAgYXV0byBoYXNPbmVSZWYgPSBbXShhdXRv
JiBkZWNsYXJhdGlvbnMpIHsKICAgICAgICAgZm9yIChhdXRvJiBtYXRjaGVkUHJvcGVydGllcyA6
IGRlY2xhcmF0aW9ucykgewogICAgICAgICAgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVzLnByb3Bl
cnRpZXMtPmhhc09uZVJlZigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5n
UmVzb2x2ZXIuY3BwCmluZGV4IGQ5NjFmNzk2ZTZmNS4uZTBhZDEzYTE2MjVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCkBAIC0yNDEsNyArMjQx
LDcgQEAgYm9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChjb25z
dCBDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghc2hhcmluZ0NhbmRpZGF0ZUhhc0lkZW50aWNhbFN0eWxlQWZmZWN0aW5nQXR0cmlidXRl
cyhjb250ZXh0LCBjYW5kaWRhdGVFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmIChjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQmPihjYW5kaWRhdGVFbGVtZW50KS5hZGRpdGlv
bmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSAhPSBjb25zdF9jYXN0PFN0eWxlZEVsZW1l
bnQmPihlbGVtZW50KS5hZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSkKKyAg
ICBpZiAoY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Jj4oY2FuZGlkYXRlRWxlbWVudCkuYWRkaXRp
b25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgIT0gY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50
Jj4oZWxlbWVudCkuYWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5hZmZlY3RzTmV4dFNpYmxp
bmdFbGVtZW50U3R5bGUoKSB8fCBjYW5kaWRhdGVFbGVtZW50LnN0eWxlSXNBZmZlY3RlZEJ5UHJl
dmlvdXNTaWJsaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM0Nyw3ICszNDcsNyBA
QCBib29sIFNoYXJpbmdSZXNvbHZlcjo6c2hhcmluZ0NhbmRpZGF0ZUhhc0lkZW50aWNhbFN0eWxl
QWZmZWN0aW5nQXR0cmlidXRlcyhjb25zdAogICAgIH0gZWxzZSBpZiAoc2hhcmluZ0NhbmRpZGF0
ZS5oYXNDbGFzcygpICYmIGNsYXNzTmFtZXNBZmZlY3RlZEJ5UnVsZXMoc2hhcmluZ0NhbmRpZGF0
ZS5jbGFzc05hbWVzKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoY29uc3Rf
Y2FzdDxTdHlsZWRFbGVtZW50Jj4oZWxlbWVudCkucHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
KSAhPSBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQmPihzaGFyaW5nQ2FuZGlkYXRlKS5wcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZSgpKQorICAgIGlmIChjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQm
PihlbGVtZW50KS5wcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpICE9IGNvbnN0X2Nhc3Q8U3R5bGVk
RWxlbWVudCY+KHNoYXJpbmdDYW5kaWRhdGUpLnByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IGViZGFhNTJkNTMwZi4uY2Q4MWQzOThjZTUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBA
IHZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBn
dWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSgpOworICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4
IDdkMmI5ZGE3ZTQwMy4uZDU5OWQ2MTY1OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
CkBAIC04MjEsMTggKzgyMSwxOCBAQCBDU1NQcm9wZXJ0eUlEIFNWR0VsZW1lbnQ6OmNzc1Byb3Bl
cnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgcmV0dXJu
IHByb3BlcnRpZXMuZ2V0KCkuZ2V0KGF0dHJOYW1lLmxvY2FsTmFtZSgpKTsKIH0KIAotYm9vbCBT
VkdFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lKSBjb25zdAorYm9vbCBTVkdFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKGNzc1By
b3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKG5hbWUpID4gMCkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5h
bWUpOworICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCit2b2lkIFNWR0Vs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJiBzdHlsZSkKIHsKICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjc3NQcm9w
ZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZShuYW1lKTsKICAgICBpZiAocHJvcGVydHlJRCA+IDAp
Ci0gICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwg
cHJvcGVydHlJRCwgdmFsdWUpOworICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxI
aW50U3R5bGUoc3R5bGUsIHByb3BlcnR5SUQsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggOWM0ZGJhNzY3YWQ3Li5mODkzMTBhNmU1YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtODEsOSArODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBBZmZpbmVUcmFuc2Zvcm0qIHN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpIHsgcmV0dXJuIG51bGxw
dHI7IH0KIAogICAgIHZvaWQgaW52YWxpZGF0ZVNWR0F0dHJpYnV0ZXMoKSB7IGVuc3VyZVVuaXF1
ZUVsZW1lbnREYXRhKCkuc2V0QW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkodHJ1ZSk7IH0K
LSAgICB2b2lkIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpCisgICAg
dm9pZCBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKQogICAgIHsKLSAgICAg
ICAgZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKS5zZXRQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHls
ZUlzRGlydHkodHJ1ZSk7CisgICAgICAgIGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkuc2V0UHJl
c2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KHRydWUpOwogICAgICAgICAvLyBUcmlnZ2VyIHN0
eWxlIHJlY2FsY3VsYXRpb24gZm9yICJlbGVtZW50cyBhcyByZXNvdXJjZSIgKGUuZy4gcmVmZXJl
bmNlZCBieSBmZUltYWdlKS4KICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAgICAgfQpAQCAt
MTY3LDggKzE2Nyw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihTVkdQYXJzaW5nRXJyb3IsIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJik7CiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgY3NzUHJvcGVydHlJZEZvclNWR0F0
dHJpYnV0ZU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgYm9vbCBpc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJp
ZGU7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogICAgIEluc2VydGVkSW50
b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRh
aW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKSBv
dmVycmlkZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRh
aW5lck5vZGUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQu
Y3BwCmluZGV4IDdjMzI1YjJkZjg1YS4uMzQ3NDhmMzhlNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBTVkdFbGxpcHNl
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFt
ZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0g
ICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOworICAgICAg
ICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDBh
ODE2NWM4M2EzYy4uODEzYmNiZDA4MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVs
ZW1lbnQuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAo
UHJvcGVydHlSZWdpc3RyeTo6aXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpIHsK
ICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAg
IGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOworICAgICAgICBpbnZh
bGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAK
aW5kZXggMTNkNjczMjQ3YmRlLi4zYTUxNGNiMzg0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdAogdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aGVp
Z2h0QXR0cikgewotICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoKTsKKyAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5j
cHAKaW5kZXggNGZiZDk0NTRiYzdlLi4xNWFlYzJiMGQ3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBTVkdJbWFnZUVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAK
ICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6aGVpZ2h0QXR0cikgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlKCk7CisgICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcAppbmRleCAyNmRlMzI4OTM3ODguLjQ4ZmQzN2JmM2Q2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAg
ICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5h
bWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwot
ICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAgICAg
ICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCmluZGV4
IDFjZjYzNmUzOTFiMC4uMzk3NjkyNDg2ZTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0
ZXJuRWxlbWVudC5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJO
YW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
LSAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCk7CisgICAg
ICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCAzN2I2
NjY1ZTY2ZWUuLmNhOGRiYTJmNmYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgU1ZHUmVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKFByb3BlcnR5
UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNl
SW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlU1ZHUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKKyAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRh
dGlvbmFsSGludFN0eWxlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCBlNmIxZWI3NTIxZmQuLjRmYWQxZmRhMGE4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQg
U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhp
cyk7Ci0gICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOwor
ICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKIAogICAgICAg
ICBpZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBSZW5k
ZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9u
KCpyZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
Y3BwCmluZGV4IGI4Zjg1MjIyMWYyZC4uOWU5YjJkY2I5MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMTQwLDI0ICsxNDAsMjQgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzZWxlY3RTdWJTdHJpbmcodW5z
aWduZWQgY2hhcm51bSwgdW5zaWcKICAgICByZXR1cm4geyB9OwogfQogCi1ib29sIFNWR1RleHRD
b250ZW50RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKK2Jvb2wgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpoYXNQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7
CiAgICAgaWYgKG5hbWUubWF0Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkKICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgcmV0dXJuIFNWR0dyYXBoaWNzRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSk7CisgICAgcmV0dXJuIFNWR0dyYXBoaWNzRWxlbWVudDo6aGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYgc3R5bGUpCit2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6Y29sbGVjdFByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQogewog
ICAgIGlmIChuYW1lLm1hdGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpIHsKICAgICAgICAgaWYg
KHZhbHVlID09ICJwcmVzZXJ2ZSIpCi0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQ
cmUpOworICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlUHJlKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlTm93cmFwKTsKKyAgICAgICAgICAgIGFk
ZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaGl0
ZVNwYWNlLCBDU1NWYWx1ZU5vd3JhcCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBT
VkdHcmFwaGljc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSwgc3R5bGUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6Y29sbGVjdFByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAogdm9p
ZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5oCmluZGV4IGJhOGVhYTdlNjI1MC4uZGFjMzA2MDIxZTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCkBAIC05Nyw4ICs5
Nyw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJikgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7
CiAKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAppbmRl
eCAzNmJhNTNhMjY1MGYuLjljYWYwMTIzNGFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcApAQCAtODAsMTggKzgwLDE4IEBAIHZvaWQg
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QKICAgICBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotdm9pZCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0
eWxlKQordm9pZCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCiB7CiAgICAgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyIHx8IG5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyKQogICAg
ICAgICByZXR1cm47Ci0gICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKKyAgICBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUs
IHZhbHVlLCBzdHlsZSk7CiB9CiAKLWJvb2wgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6aXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK2Jv
b2wgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAogewogICAgIGlmIChuYW1l
ID09IFNWR05hbWVzOjp4QXR0ciB8fCBuYW1lID09IFNWR05hbWVzOjp5QXR0cikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKG5hbWUpOworICAgIHJldHVybiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIHZvaWQgU1ZH
VGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudC5oCmluZGV4IDM3OWM1YTY2OTkzNy4uYzM5NDY2ZDIzOWVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgKQEAgLTUxLDggKzUx
LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CisgICAg
Ym9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3Ry
eSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcHJvcGVydHlS
ZWdpc3RyeTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBdHRyaWJ1dGVBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBdHRyaWJ1dGVBbmltYXRvci5jcHAKaW5kZXggNjUyYzJkMDZjZmQ3Li5mNTJhMjUwYTYwNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFu
aW1hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1
dGVBbmltYXRvci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgYm9vbCBTVkdBdHRyaWJ1dGVBbmltYXRv
cjo6aXNBbmltYXRlZFN0eWxlUHJvcGVydHlBbmlhbXRvcihjb25zdCBTVkdFbGVtZW50KiB0YXIK
IHZvaWQgU1ZHQXR0cmlidXRlQW5pbWF0b3I6OmludmFsaWRhdGVTdHlsZShTVkdFbGVtZW50KiB0
YXJnZXRFbGVtZW50KQogewogICAgIFNWR0VsZW1lbnQ6Okluc3RhbmNlSW52YWxpZGF0aW9uR3Vh
cmQgZ3VhcmQoKnRhcmdldEVsZW1lbnQpOwotICAgIHRhcmdldEVsZW1lbnQtPmludmFsaWRhdGVT
VkdQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpOworICAgIHRhcmdldEVsZW1lbnQtPmludmFs
aWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOwogfQogCiB2b2lkIFNWR0F0dHJpYnV0
ZUFuaW1hdG9yOjphcHBseUFuaW1hdGVkU3R5bGVQcm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50KiBl
bGVtZW50LCBDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>