<?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>189955</bug_id>
          
          <creation_ts>2018-09-25 11:09:22 -0700</creation_ts>
          <short_desc>[WHLSL] Implement Metal code generation for semantics and buffers</short_desc>
          <delta_ts>2018-10-13 14:51:58 -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>WebGPU</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>MOVED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=189936</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176199</blocked>
    
    <blocked>189202</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thomas Denney">tdenney</reporter>
          <assigned_to name="Thomas Denney">tdenney</assigned_to>
          <cc>dino</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1463204</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-25 11:09:22 -0700</bug_when>
    <thetext>There is no support for the new semantic syntax introduced in https://bugs.webkit.org/show_bug.cgi?id=189134.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463237</commentid>
    <comment_count>1</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-25 11:33:52 -0700</bug_when>
    <thetext>As part of the support for this, I’m going to rewrite the way that code generation for entry points works, so that the following is now true:

* All stage_in parameters are collected into a single struct type with appropriate attributes set based on semantics (e.g. position, other offsets)
* All other parameters (buffers, textures, etc) are separated out with appropriate offsets/attributes determined based on the semantics in the original WHLSL
* Entry points in WHLSL are just compiled as regular Metal functions, as they were before, except that now an additional wrapper method unpacks the new parameters and repacks them in the style expected by WHLSL, and the same is true on the return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464610</commentid>
    <comment_count>2</comment_count>
      <attachid>351141</attachid>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-28 16:47:01 -0700</bug_when>
    <thetext>Created attachment 351141
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468802</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:23:08 -0700</bug_when>
    <thetext>Migrated to https://api.github.com/repos/gpuweb/WHLSL/issues/25</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468846</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:51:58 -0700</bug_when>
    <thetext>https://github.com/gpuweb/WHLSL/issues/25</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351141</attachid>
            <date>2018-09-28 16:47:01 -0700</date>
            <delta_ts>2018-09-28 16:47:01 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-189955-20180928164650.patch</filename>
            <type>text/plain</type>
            <size>529305</size>
            <attacher name="Thomas Denney">tdenney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDcxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODNiYjNhMmUwMTkzYmQ0YWQwN2NmODJjZTI5OWMyNjlk
ZTlhNzJjMC4uMWYwMzY5ODhiYzBlYzJhOTA4OGE4MTg4NDZlMGJjODkyOTU5MDQzMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5
OCBAQAorMjAxOC0wOS0yOCAgVGhvbWFzIERlbm5leSAgPHRkZW5uZXlAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gSW1wbGVtZW50IE1ldGFsIGNvZGUgZ2VuZXJhdGlvbiBmb3Igc2VtYW50
aWNzIGFuZCBidWZmZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODk5NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qczoKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGxvY2F0ZUF0RW50cnlQb2ludHMuanM6CisgICAgICAgIChn
YXRoZXJWYXJpYWJsZXNBbmRGdW5jdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAoY3JlYXRlR2xv
YmFsU3RydWN0VHlwZUFuZFZhclRvRmllbGRNYXApOgorICAgICAgICAoYWxsb2NhdGVBdEVudHJ5
UG9pbnRzLnVwZGF0ZUZ1bmN0aW9uLlVwZGF0ZUZ1bmN0aW9ucy5wcm90b3R5cGUuX2FkZFZhcmlh
YmxlRGVjbGFyYXRpb24pOgorICAgICAgICAoYWxsb2NhdGVBdEVudHJ5UG9pbnRzLnVwZGF0ZUZ1
bmN0aW9uLlVwZGF0ZUZ1bmN0aW9ucy5wcm90b3R5cGUuX3JlY29uZmlndXJlUGFyYW1ldGVycyk6
CisgICAgICAgIChhbGxvY2F0ZUF0RW50cnlQb2ludHMudXBkYXRlRnVuY3Rpb24uVXBkYXRlRnVu
Y3Rpb25zLnByb3RvdHlwZS5fZGVyZWZlcmVuY2VkQ2FsbEV4cHJlc3Npb25Gb3JGaWVsZE5hbWUp
OgorICAgICAgICAoYWxsb2NhdGVBdEVudHJ5UG9pbnRzLnVwZGF0ZUZ1bmN0aW9uLlVwZGF0ZUZ1
bmN0aW9ucyk6CisgICAgICAgIChhbGxvY2F0ZUF0RW50cnlQb2ludHMudXBkYXRlRnVuY3Rpb24p
OgorICAgICAgICAoYWxsb2NhdGVBdEVudHJ5UG9pbnRzKToKKyAgICAgICAgKGdhdGhlckVudHJ5
UG9pbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKGdhdGhlckNhbGxlZXMuRmluZEZ1bmN0aW9uc1Ro
YXRBcmVDYWxsZWQucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOiBEZWxldGVkLgorICAg
ICAgICAoZ2F0aGVyQ2FsbGVlcy5GaW5kRnVuY3Rpb25zVGhhdEFyZUNhbGxlZCk6IERlbGV0ZWQu
CisgICAgICAgIChnYXRoZXJDYWxsZWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9CdWlsdEluU2VtYW50aWMuanM6IEFkZGVkLgorICAgICAgICAoQnVpbHRJ
blNlbWFudGljKToKKyAgICAgICAgKEJ1aWx0SW5TZW1hbnRpYy5wcm90b3R5cGUuZ2V0IG5hbWUp
OgorICAgICAgICAoQnVpbHRJblNlbWFudGljLnByb3RvdHlwZS5nZXQgZXh0cmFBcmd1bWVudHMp
OgorICAgICAgICAoQnVpbHRJblNlbWFudGljLnByb3RvdHlwZS5pc0FjY2VwdGFibGVUeXBlKToK
KyAgICAgICAgKEJ1aWx0SW5TZW1hbnRpYy5wcm90b3R5cGUuaXNBY2NlcHRhYmxlRm9yU2hhZGVy
VHlwZSk6CisgICAgICAgIChCdWlsdEluU2VtYW50aWMucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qczoKKyAgICAg
ICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5fcmVzb2x2ZVdpdGhPcGVyYXRvckFuZGVySW5k
ZXhlcik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuX3Jlc29sdmVXaXRoT3Bl
cmF0b3JMZW5ndGgpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIu
anM6CisgICAgICAgIChDaGVja2VyKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0
UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1hbnRpY3MuSXRl
bSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1hbnRpY3MuSXRlbS5wcm90
b3R5cGUuZ2V0IHR5cGUpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50
aWNzLkl0ZW0ucHJvdG90eXBlLmdldCBzZW1hbnRpYyk6CisgICAgICAgIChDaGVja2VyLnByb3Rv
dHlwZS5fY2hlY2tTZW1hbnRpY3MuR2F0aGVyZXIpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5
cGUuX2NoZWNrU2VtYW50aWNzLkdhdGhlcmVyLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChD
aGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1hbnRpY3MuR2F0aGVyZXIucHJvdG90eXBlLnNldCBj
dXJyZW50U2VtYW50aWMpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50
aWNzLkdhdGhlcmVyLnByb3RvdHlwZS5nZXQgY3VycmVudFNlbWFudGljKToKKyAgICAgICAgKENo
ZWNrZXIucHJvdG90eXBlLl9jaGVja1NlbWFudGljcy5HYXRoZXJlci5wcm90b3R5cGUuZ2V0IHJl
c3VsdCk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1hbnRpY3MuR2F0aGVy
ZXIucHJvdG90eXBlLnZpc2l0RW51bVR5cGUpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUu
X2NoZWNrU2VtYW50aWNzLkdhdGhlcmVyLnByb3RvdHlwZS52aXNpdFZlY3RvclR5cGUpOgorICAg
ICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLkdhdGhlcmVyLnByb3RvdHlw
ZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2Vt
YW50aWNzLkdhdGhlcmVyLnByb3RvdHlwZS52aXNpdE5hdGl2ZVR5cGUpOgorICAgICAgICAoQ2hl
Y2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLkdhdGhlcmVyLnByb3RvdHlwZS52aXNpdFN0
cnVjdFR5cGUpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLkdh
dGhlcmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5
cGUuX2NoZWNrU2VtYW50aWNzLkdhdGhlcmVyLnByb3RvdHlwZS52aXNpdFB0clR5cGUpOgorICAg
ICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLkdhdGhlcmVyLnByb3RvdHlw
ZS52aXNpdEFycmF5UmVmVHlwZSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tT
ZW1hbnRpY3MuR2F0aGVyZXIucHJvdG90eXBlLnZpc2l0QXJyYXlUeXBlKToKKyAgICAgICAgKENo
ZWNrZXIucHJvdG90eXBlLl9jaGVja1NlbWFudGljcy5HYXRoZXJlci5wcm90b3R5cGUudmlzaXRG
dW5jUGFyYW1ldGVyKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLl9jaGVja1NlbWFudGlj
cy5jaGVja0R1cGxpY2F0ZVNlbWFudGljcyk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5f
Y2hlY2tTZW1hbnRpY3MuY2hlY2tTZW1hbnRpY1R5cGVzKToKKyAgICAgICAgKENoZWNrZXIucHJv
dG90eXBlLl9jaGVja1NlbWFudGljcy5jaGVja1NlbWFudGljRm9yU2hhZGVyVHlwZSk6CisgICAg
ICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1hbnRpY3MuUE9EQ2hlY2tlci5wcm90b3R5
cGUudmlzaXRFbnVtVHlwZSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1h
bnRpY3MuUE9EQ2hlY2tlci5wcm90b3R5cGUudmlzaXRBcnJheVR5cGUpOgorICAgICAgICAoQ2hl
Y2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLlBPRENoZWNrZXIucHJvdG90eXBlLnZpc2l0
VmVjdG9yVHlwZSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTZW1hbnRpY3Mu
UE9EQ2hlY2tlci5wcm90b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLl9jaGVja1NlbWFudGljcy5QT0RDaGVja2VyLnByb3RvdHlwZS52aXNpdE5hdGl2
ZVR5cGUpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLlBPRENo
ZWNrZXIucHJvdG90eXBlLnZpc2l0UHRyVHlwZSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlw
ZS5fY2hlY2tTZW1hbnRpY3MuUE9EQ2hlY2tlci5wcm90b3R5cGUudmlzaXRBcnJheVJlZlR5cGUp
OgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzLlBPRENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0U3RydWN0VHlwZSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5f
Y2hlY2tTZW1hbnRpY3MuUE9EQ2hlY2tlci5wcm90b3R5cGUudmlzaXRUeXBlUmVmKToKKyAgICAg
ICAgKENoZWNrZXIucHJvdG90eXBlLl9jaGVja1NlbWFudGljcy5QT0RDaGVja2VyKToKKyAgICAg
ICAgKENoZWNrZXIucHJvdG90eXBlLl9jaGVja1NlbWFudGljcy5jaGVja1BPRERhdGEpOgorICAg
ICAgICAoQ2hlY2tlci5wcm90b3R5cGUuX2NoZWNrU2VtYW50aWNzKToKKyAgICAgICAgKENoZWNr
ZXIucHJvdG90eXBlLl9jaGVja1NoYWRlclR5cGUpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5
cGUuX2NoZWNrT3BlcmF0b3JPdmVybG9hZCk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52
aXNpdEZ1bmNEZWYpOgorICAgICAgICAoQ2hlY2tlci5wcm90b3R5cGUudmlzaXRFbnVtVHlwZSk6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdEFycmF5VHlwZSk6CisgICAgICAgIChD
aGVja2VyLnByb3RvdHlwZS52aXNpdE1ha2VQdHJFeHByZXNzaW9uKToKKyAgICAgICAgKENoZWNr
ZXIucHJvdG90eXBlLnZpc2l0TWFrZUFycmF5UmVmRXhwcmVzc2lvbik6CisgICAgICAgIChDaGVj
a2VyLnByb3RvdHlwZS5fZmluaXNoVmlzaXRpbmdQcm9wZXJ0eUFjY2Vzcyk6CisgICAgICAgIChD
aGVja2VyLnByb3RvdHlwZS52aXNpdEluZGV4RXhwcmVzc2lvbik6CisgICAgICAgIChDaGVja2Vy
LnByb3RvdHlwZS52aXNpdFJldHVybik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNp
dFN3aXRjaFN0YXRlbWVudCk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFRlcm5h
cnlFeHByZXNzaW9uKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJl
c3Npb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZpZWxkLmpzOgorICAg
ICAgICAoRmllbGQpOgorICAgICAgICAoRmllbGQucHJvdG90eXBlLmdldCBzZW1hbnRpYyk6Cisg
ICAgICAgIChGaWVsZC5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJv
dG90eXBlLmdldCBzZW1hbnRpYyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS50b0RlY2xTdHJp
bmcpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAg
ICAgIChGdW5jRGVmKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jUGFy
YW1ldGVyLmpzOgorICAgICAgICAoRnVuY1BhcmFtZXRlcik6CisgICAgICAgIChGdW5jUGFyYW1l
dGVyLnByb3RvdHlwZS5nZXQgc2VtYW50aWMpOgorICAgICAgICAoRnVuY1BhcmFtZXRlci5wcm90
b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0dhdGhl
ckVudHJ5UG9pbnRzLmpzOiBDb3BpZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9GdW5jRGVmLmpzLgorICAgICAgICAoZ2F0aGVyRW50cnlQb2ludHMpOgorICAgICAgICAoZ2F0
aGVyQ2FsbGVlcy5GaW5kRnVuY3Rpb25zVGhhdEFyZUNhbGxlZC5wcm90b3R5cGUudmlzaXRDYWxs
RXhwcmVzc2lvbik6CisgICAgICAgIChnYXRoZXJDYWxsZWVzLkZpbmRGdW5jdGlvbnNUaGF0QXJl
Q2FsbGVkKToKKyAgICAgICAgKGdhdGhlckNhbGxlZXMpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0ZUNoZWNrZXIuanM6CisgICAgICAgIChM
YXRlQ2hlY2tlci5wcm90b3R5cGUudmlzaXRSZWZlcmVuY2VUeXBlKToKKyAgICAgICAgKExhdGVD
aGVja2VyKToKKyAgICAgICAgKExhdGVDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tTaGFkZXJUeXBl
KTogRGVsZXRlZC4KKyAgICAgICAgKExhdGVDaGVja2VyLnByb3RvdHlwZS52aXNpdEZ1bmNEZWYp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEJh
Y2tlbmQuanM6CisgICAgICAgIChNU0xCYWNrZW5kKToKKyAgICAgICAgKE1TTEJhY2tlbmQucHJv
dG90eXBlLmNvbXBpbGUpOgorICAgICAgICAoTVNMQmFja2VuZC5wcm90b3R5cGUuX21zbCk6Cisg
ICAgICAgIChNU0xCYWNrZW5kLnByb3RvdHlwZS5fY3JlYXRlRnVuY3Rpb25EZWNscyk6CisgICAg
ICAgIChNU0xCYWNrZW5kLnByb3RvdHlwZS5fbWV0YWxTb3VyY2VGb3JBcnJheVJlZkRlZmluaXRp
b24uX21ldGFsU291cmNlRm9yU3RydWN0RGVmaW5pdGlvbi5fbWV0YWxTb3VyY2VGb3JUeXBlRGVm
LmVsc2UuTmF0aXZlVHlwZU5hbWVWaXNpdG9yLnByb3RvdHlwZS5fdGV4dHVyZVR5cGVOYW1lKToK
KyAgICAgICAgKE1TTEJhY2tlbmQucHJvdG90eXBlLl9tZXRhbFNvdXJjZUZvckFycmF5UmVmRGVm
aW5pdGlvbi5fbWV0YWxTb3VyY2VGb3JTdHJ1Y3REZWZpbml0aW9uLl9tZXRhbFNvdXJjZUZvclR5
cGVEZWYuZWxzZS5OYXRpdmVUeXBlTmFtZVZpc2l0b3IucHJvdG90eXBlLnZpc2l0TmF0aXZlVHlw
ZSk6CisgICAgICAgIChNU0xCYWNrZW5kLnByb3RvdHlwZS5fbWV0YWxTb3VyY2VGb3JBcnJheVJl
ZkRlZmluaXRpb24uTVNMRW50cnlQb2ludCk6CisgICAgICAgIChNU0xCYWNrZW5kLnByb3RvdHlw
ZS5fbWV0YWxTb3VyY2VGb3JBcnJheVJlZkRlZmluaXRpb24uTVNMRW50cnlQb2ludC5wcm90b3R5
cGUuX2RlY2xhcmF0aW9uKToKKyAgICAgICAgKE1TTEJhY2tlbmQucHJvdG90eXBlLl9tZXRhbFNv
dXJjZUZvckFycmF5UmVmRGVmaW5pdGlvbi5NU0xFbnRyeVBvaW50LnByb3RvdHlwZS5nZXQgZGVj
bGFyYXRpb25MaW5lKToKKyAgICAgICAgKE1TTEJhY2tlbmQucHJvdG90eXBlLl9tZXRhbFNvdXJj
ZUZvckFycmF5UmVmRGVmaW5pdGlvbi5NU0xFbnRyeVBvaW50LnByb3RvdHlwZS5nZXQgZGVmaW5p
dGlvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQ29kZWdl
bkFsbC5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xGdW5j
dGlvbkRlY2xhcmF0aW9uLmpzOgorICAgICAgICAoTVNMRnVuY3Rpb25EZWNsYXJhdGlvbi5wcm90
b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoTVNMRnVuY3Rpb25EZWNsYXJhdGlvbik6CisgICAg
ICAgIChNU0xGdW5jdGlvbkRlY2xhcmF0aW9uLnByb3RvdHlwZS5nZXQgaXNWZXJ0ZXhTaGFkZXIp
OiBEZWxldGVkLgorICAgICAgICAoTVNMRnVuY3Rpb25EZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2V0
IGlzU2hhZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKE1TTEZ1bmN0aW9uRGVjbGFyYXRpb24ucHJv
dG90eXBlLnBhcmFtZXRlcklzQXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKE1TTEZ1bmN0
aW9uRGVjbGFyYXRpb24ucHJvdG90eXBlLnBhcmFtZXRlcklzVmVydGV4SWQpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEluc2VydFRyYXBQYXJh
bWV0ZXIuanM6CisgICAgICAgIChpbnNlcnRUcmFwUGFyYW1ldGVyLlVwZGF0ZUNhbGxFeHByZXNz
aW9ucy5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChpbnNlcnRUcmFw
UGFyYW1ldGVyLlVwZGF0ZUNhbGxFeHByZXNzaW9ucyk6CisgICAgICAgIChpbnNlcnRUcmFwUGFy
YW1ldGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xOYXRp
dmVGdW5jdGlvbkNhbGwuanM6CisgICAgICAgIChzd2l6emxlQ2FzdCk6CisgICAgICAgIChUZXh0
dXJlMURTYW1wbGUpOgorICAgICAgICAoVGV4dHVyZTFEU2FtcGxlV2l0aE9mZnNldCk6CisgICAg
ICAgIChUZXh0dXJlMURMb2FkKToKKyAgICAgICAgKFRleHR1cmUxRExvYWRXaXRoT2Zmc2V0KToK
KyAgICAgICAgKFRleHR1cmUxREdldERpbWVuc2lvbnMpOgorICAgICAgICAoVGV4dHVyZTFEQXJy
YXlTYW1wbGUpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlTYW1wbGVXaXRoT2Zmc2V0KToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5TG9hZCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheUxvYWRX
aXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5R2V0RGltZW5zaW9ucyk6CisgICAg
ICAgIChUZXh0dXJlMkRTYW1wbGUpOgorICAgICAgICAoVGV4dHVyZTJEU2FtcGxlV2l0aE9mZnNl
dCk6CisgICAgICAgIChUZXh0dXJlMkRTYW1wbGVCaWFzKToKKyAgICAgICAgKFRleHR1cmUyRFNh
bXBsZUJpYXNXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmUyRFNhbXBsZUdyYWQpOgorICAg
ICAgICAoVGV4dHVyZTJEU2FtcGxlR3JhZFdpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZTJE
U2FtcGxlTGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEU2FtcGxlTGV2ZWxXaXRoT2Zmc2V0KToK
KyAgICAgICAgKFRleHR1cmUyREdhdGhlclJlZCk6CisgICAgICAgIChUZXh0dXJlMkRHYXRoZXJS
ZWRXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmUyREdhdGhlckdyZWVuKToKKyAgICAgICAg
KFRleHR1cmUyRExvYWRXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmUyREdldERpbWVuc2lv
bnMpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlTYW1wbGUpOgorICAgICAgICAoVGV4dHVyZTJE
QXJyYXlTYW1wbGVXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5U2FtcGxlQmlh
cyk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheVNhbXBsZUJpYXNXaXRoT2Zmc2V0KToKKyAgICAg
ICAgKFRleHR1cmUyREFycmF5U2FtcGxlR3JhZCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheVNh
bXBsZUdyYWRXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5U2FtcGxlTGV2ZWwp
OgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlTYW1wbGVMZXZlbFdpdGhPZmZzZXQpOgorICAgICAg
ICAoVGV4dHVyZTJEQXJyYXlHYXRoZXJSZWQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlMb2Fk
V2l0aE9mZnNldCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheUdldERpbWVuc2lvbnMpOgorICAg
ICAgICAoVGV4dHVyZTNEU2FtcGxlKToKKyAgICAgICAgKFRleHR1cmUzRFNhbXBsZVdpdGhPZmZz
ZXQpOgorICAgICAgICAoVGV4dHVyZTNETG9hZCk6CisgICAgICAgIChUZXh0dXJlM0RMb2FkV2l0
aE9mZnNldCk6CisgICAgICAgIChUZXh0dXJlM0RHZXREaW1lbnNpb25zKToKKyAgICAgICAgKFRl
eHR1cmVDdWJlU2FtcGxlKToKKyAgICAgICAgKFRleHR1cmVDdWJlU2FtcGxlV2l0aE9mZnNldCk6
CisgICAgICAgIChUZXh0dXJlQ3ViZVNhbXBsZUJpYXMpOgorICAgICAgICAoVGV4dHVyZUN1YmVT
YW1wbGVHcmFkKToKKyAgICAgICAgKFRleHR1cmVDdWJlU2FtcGxlTGV2ZWwpOgorICAgICAgICAo
VGV4dHVyZUN1YmVHYXRoZXJSZWQpOgorICAgICAgICAoUldUZXh0dXJlMURHZXREaW1lbnNpb25z
KToKKyAgICAgICAgKFJXVGV4dHVyZTFER2V0RGltZW5zaW9uc0Zsb2F0KToKKyAgICAgICAgKFJX
VGV4dHVyZTFETG9hZCk6CisgICAgICAgIChSV1RleHR1cmUxRFN0b3JlKToKKyAgICAgICAgKFJX
VGV4dHVyZTFEQXJyYXlHZXREaW1lbnNpb25zKToKKyAgICAgICAgKFJXVGV4dHVyZTFEQXJyYXlH
ZXREaW1lbnNpb25zRmxvYXQpOgorICAgICAgICAoUldUZXh0dXJlMURBcnJheUxvYWQpOgorICAg
ICAgICAoUldUZXh0dXJlMURBcnJheVN0b3JlKToKKyAgICAgICAgKFJXVGV4dHVyZTJER2V0RGlt
ZW5zaW9ucyk6CisgICAgICAgIChSV1RleHR1cmUyREdldERpbWVuc2lvbnNGbG9hdCk6CisgICAg
ICAgIChSV1RleHR1cmUyRExvYWQpOgorICAgICAgICAoUldUZXh0dXJlMkRTdG9yZSk6CisgICAg
ICAgIChSV1RleHR1cmUyREFycmF5R2V0RGltZW5zaW9ucyk6CisgICAgICAgIChSV1RleHR1cmUy
REFycmF5R2V0RGltZW5zaW9uc0Zsb2F0KToKKyAgICAgICAgKFJXVGV4dHVyZTJEQXJyYXlMb2Fk
KToKKyAgICAgICAgKFJXVGV4dHVyZTJEQXJyYXlTdG9yZSk6CisgICAgICAgIChSV1RleHR1cmUz
REdldERpbWVuc2lvbnMpOgorICAgICAgICAoUldUZXh0dXJlM0RHZXREaW1lbnNpb25zRmxvYXQp
OgorICAgICAgICAoUldUZXh0dXJlM0RMb2FkKToKKyAgICAgICAgKFJXVGV4dHVyZTNEU3RvcmUp
OgorICAgICAgICAoVGV4dHVyZURlcHRoMkRTYW1wbGUpOgorICAgICAgICAoVGV4dHVyZURlcHRo
MkRTYW1wbGVXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEU2FtcGxlQ21wKToK
KyAgICAgICAgKFRleHR1cmVEZXB0aDJEU2FtcGxlQ21wV2l0aE9mZnNldCk6CisgICAgICAgIChU
ZXh0dXJlRGVwdGgyRFNhbXBsZUNtcExldmVsWmVybyk6CisgICAgICAgIChUZXh0dXJlRGVwdGgy
RFNhbXBsZUNtcExldmVsWmVyb1dpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRT
YW1wbGVCaWFzKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEU2FtcGxlQmlhc1dpdGhPZmZzZXQp
OgorICAgICAgICAoVGV4dHVyZURlcHRoMkRTYW1wbGVHcmFkKToKKyAgICAgICAgKFRleHR1cmVE
ZXB0aDJEU2FtcGxlR3JhZFdpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRTYW1w
bGVMZXZlbCk6CisgICAgICAgIChUZXh0dXJlRGVwdGgyRFNhbXBsZUxldmVsV2l0aE9mZnNldCk6
CisgICAgICAgIChUZXh0dXJlRGVwdGgyREdhdGhlclJlZCk6CisgICAgICAgIChUZXh0dXJlRGVw
dGgyREdhdGhlclJlZFdpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRHYXRoZXJD
b21wYXJlUmVkKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJER2F0aGVyQ29tcGFyZVJlZFdpdGhP
ZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRMb2FkKToKKyAgICAgICAgKFRleHR1cmVE
ZXB0aDJETG9hZFdpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRHZXREaW1lbnNp
b25zKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJyYXlTYW1wbGUpOgorICAgICAgICAoVGV4
dHVyZURlcHRoMkRBcnJheVNhbXBsZVdpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRo
MkRBcnJheVNhbXBsZUNtcCk6CisgICAgICAgIChUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlQ21w
V2l0aE9mZnNldCk6CisgICAgICAgIChUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlQ21wTGV2ZWxa
ZXJvKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJyYXlTYW1wbGVDbXBMZXZlbFplcm9XaXRo
T2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJyYXlTYW1wbGVCaWFzKToKKyAgICAg
ICAgKFRleHR1cmVEZXB0aDJEQXJyYXlTYW1wbGVCaWFzV2l0aE9mZnNldCk6CisgICAgICAgIChU
ZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlR3JhZCk6CisgICAgICAgIChUZXh0dXJlRGVwdGgyREFy
cmF5U2FtcGxlR3JhZFdpdGhPZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRBcnJheVNh
bXBsZUxldmVsKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJyYXlTYW1wbGVMZXZlbFdpdGhP
ZmZzZXQpOgorICAgICAgICAoVGV4dHVyZURlcHRoMkRBcnJheUdhdGhlclJlZCk6CisgICAgICAg
IChUZXh0dXJlRGVwdGgyREFycmF5R2F0aGVyUmVkV2l0aE9mZnNldCk6CisgICAgICAgIChUZXh0
dXJlRGVwdGgyREFycmF5R2F0aGVyQ21wUmVkKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJy
YXlHYXRoZXJDbXBSZWRXaXRoT2Zmc2V0KToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJyYXlM
b2FkKToKKyAgICAgICAgKFRleHR1cmVEZXB0aDJEQXJyYXlMb2FkV2l0aE9mZnNldCk6CisgICAg
ICAgIChUZXh0dXJlRGVwdGgyREFycmF5R2V0RGltZW5zaW9ucyk6CisgICAgICAgIChUZXh0dXJl
RGVwdGhDdWJlU2FtcGxlKToKKyAgICAgICAgKFRleHR1cmVEZXB0aEN1YmVTYW1wbGVDbXApOgor
ICAgICAgICAoVGV4dHVyZURlcHRoQ3ViZVNhbXBsZUNtcExldmVsWmVybyk6CisgICAgICAgIChU
ZXh0dXJlRGVwdGhDdWJlU2FtcGxlQmlhcyk6CisgICAgICAgIChUZXh0dXJlRGVwdGhDdWJlU2Ft
cGxlR3JhZCk6CisgICAgICAgIChUZXh0dXJlRGVwdGhDdWJlU2FtcGxlTGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZURlcHRoQ3ViZUdhdGhlclJlZCk6CisgICAgICAgIChUZXh0dXJlRGVwdGhDdWJl
R2F0aGVyQ21wUmVkKToKKyAgICAgICAgKFRleHR1cmVEZXB0aEN1YmVHZXREaW1lbnNpb25zKToK
KyAgICAgICAgKFJXVGV4dHVyZURlcHRoMkRHZXREaW1lbnNpb25zKToKKyAgICAgICAgKFJXVGV4
dHVyZURlcHRoMkRHZXREaW1lbnNpb25zRmxvYXQpOgorICAgICAgICAoUldUZXh0dXJlRGVwdGgy
RExvYWQpOgorICAgICAgICAoUldUZXh0dXJlRGVwdGgyRFN0b3JlKToKKyAgICAgICAgKFJXVGV4
dHVyZURlcHRoMkRBcnJheUdldERpbWVuc2lvbnMpOgorICAgICAgICAoUldUZXh0dXJlRGVwdGgy
REFycmF5R2V0RGltZW5zaW9uc0Zsb2F0KToKKyAgICAgICAgKFJXVGV4dHVyZURlcHRoMkRBcnJh
eUxvYWQpOgorICAgICAgICAoUldUZXh0dXJlRGVwdGgyREFycmF5U3RvcmUpOgorICAgICAgICAo
bXNsTmF0aXZlRnVuY3Rpb25DYWxsKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9NU0xQc2V1ZG9OYXRpdmVGdW5jdGlvbkNhbGwuanM6IEFkZGVkLgorICAgICAgICAo
Y29uc3QucHNldWRvQ2FsbHMpOgorICAgICAgICAoYW5ub3RhdGVQc2V1ZG9DYWxscyk6CisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMUmV3cml0ZVNoYWRlcnMuanM6
IEFkZGVkLgorICAgICAgICAoRmluZFBhdGhBbmRTZW1hbnRpYyk6CisgICAgICAgIChGaW5kUGF0
aEFuZFNlbWFudGljLnByb3RvdHlwZS52aXNpdEZ1bmNQYXJhbWV0ZXIpOgorICAgICAgICAoRmlu
ZFBhdGhBbmRTZW1hbnRpYy5wcm90b3R5cGUudmlzaXRTdHJ1Y3RUeXBlKToKKyAgICAgICAgKEZp
bmRQYXRoQW5kU2VtYW50aWMucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChjb2xs
ZWN0UGFyYW1ldGVycyk6CisgICAgICAgIChyZXdyaXRlU2hhZGVycyk6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMU3RhdGVtZW50RW1pdHRlci5qczoKKyAgICAg
ICAgKE1TTFN0YXRlbWVudEVtaXR0ZXIucHJvdG90eXBlLl9lbWl0VHJhcCk6CisgICAgICAgIChN
U0xTdGF0ZW1lbnRFbWl0dGVyLnByb3RvdHlwZS5femVyb0luaXRpYWxpemUpOgorICAgICAgICAo
TVNMU3RhdGVtZW50RW1pdHRlci5wcm90b3R5cGUuX3plcm9Jbml0aWFsaXplLlplcm9Jbml0aWFs
aXplci5wcm90b3R5cGUudmlzaXROYXRpdmVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKE1TTFN0
YXRlbWVudEVtaXR0ZXIucHJvdG90eXBlLl96ZXJvSW5pdGlhbGl6ZS5aZXJvSW5pdGlhbGl6ZXIu
cHJvdG90eXBlLnZpc2l0UHRyVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChNU0xTdGF0ZW1lbnRF
bWl0dGVyLnByb3RvdHlwZS5femVyb0luaXRpYWxpemUuWmVyb0luaXRpYWxpemVyLnByb3RvdHlw
ZS52aXNpdEFycmF5VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChNU0xTdGF0ZW1lbnRFbWl0dGVy
LnByb3RvdHlwZS5femVyb0luaXRpYWxpemUuWmVyb0luaXRpYWxpemVyLnByb3RvdHlwZS52aXNp
dEFycmF5UmVmVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChNU0xTdGF0ZW1lbnRFbWl0dGVyLnBy
b3RvdHlwZS5femVyb0luaXRpYWxpemUuWmVyb0luaXRpYWxpemVyLnByb3RvdHlwZS52aXNpdEVu
dW1UeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKE1TTFN0YXRlbWVudEVtaXR0ZXIucHJvdG90eXBl
Ll96ZXJvSW5pdGlhbGl6ZS5aZXJvSW5pdGlhbGl6ZXIucHJvdG90eXBlLnZpc2l0U3RydWN0VHlw
ZSk6IERlbGV0ZWQuCisgICAgICAgIChNU0xTdGF0ZW1lbnRFbWl0dGVyLnByb3RvdHlwZS5femVy
b0luaXRpYWxpemUuWmVyb0luaXRpYWxpemVyLnByb3RvdHlwZS52aXNpdFZlY3RvclR5cGUpOiBE
ZWxldGVkLgorICAgICAgICAoTVNMU3RhdGVtZW50RW1pdHRlci5wcm90b3R5cGUuX3plcm9Jbml0
aWFsaXplLlplcm9Jbml0aWFsaXplci5wcm90b3R5cGUudmlzaXRNYXRyaXhUeXBlKTogRGVsZXRl
ZC4KKyAgICAgICAgKE1TTFN0YXRlbWVudEVtaXR0ZXIucHJvdG90eXBlLl96ZXJvSW5pdGlhbGl6
ZS5aZXJvSW5pdGlhbGl6ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6IERlbGV0ZWQuCisgICAg
ICAgIChNU0xTdGF0ZW1lbnRFbWl0dGVyLnByb3RvdHlwZS5femVyb0luaXRpYWxpemUuWmVyb0lu
aXRpYWxpemVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9N
ZXRhbC9NU0xUeXBlVW5pZmllci5qczoKKyAgICAgICAgKE1TTFR5cGVVbmlmaWVyLnByb3RvdHlw
ZS52aXNpdEFycmF5UmVmVHlwZSk6CisgICAgICAgIChNU0xUeXBlVW5pZmllci5wcm90b3R5cGUu
X2FkZEFycmF5UmVmUG9pbnRlclR5cGUpOgorICAgICAgICAoTVNMVHlwZVVuaWZpZXIucHJvdG90
eXBlLnZpc2l0TWFrZUFycmF5UmVmRXhwcmVzc2lvbik6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvLmdpdGlnbm9yZTogQWRkZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9BcHBEZWxl
Z2F0ZS5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9N
U0xDb2RlZ2VuQWxsLmpzLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvQXBwRGVsZWdhdGUubTogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQ29kZWdlbkFsbC5qcy4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0Fzc2V0cy54Y2Fzc2V0
cy9BcHBJY29uLmFwcGljb25zZXQvQ29udGVudHMuanNvbjogQWRkZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Bc3NldHMueGNhc3Nl
dHMvQ29udGVudHMuanNvbjogQWRkZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9CYXNlLmxwcm9qL01haW4uc3Rvcnlib2FyZDogQWRk
ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9Db21waWxlUmVzdWx0Lmg6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL01TTENvZGVnZW5BbGwuanMuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Db21waWxlUmVzdWx0Lm06IENvcGllZCBm
cm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENvZGVnZW5BbGwuanMu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29y
ZS9Db21waWxlci5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9N
ZXRhbC9NU0xDb2RlZ2VuQWxsLmpzLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIubTogQWRkZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9DdXN0b21NZXRhbFZp
ZXcuaDogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNM
Q29kZWdlbkFsbC5qcy4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL0N1c3RvbU1ldGFsVmlldy5tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xDb2RlZ2VuQWxsLmpzLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvRGVtbyBzaGFkZXJz
L0RlZmF1bHQud2hsc2w6IEFkZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL0NvcmUvRGVtbyBzaGFkZXJzL0p1bGlhLndobHNsOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3Jl
L0RlbW8gc2hhZGVycy9NYW5kZWxicm90LndobHNsOiBBZGRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0luZm8ucGxpc3Q6IEFkZGVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0Nv
cmUvUmVuZGVyZXIvT2Zmc2NyZWVuUmVuZGVyZXIuaDogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQ29kZWdlbkFsbC5qcy4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09mZnNj
cmVlblJlbmRlcmVyLm06IEFkZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT25zY3JlZW5SZW5kZXJlci5oOiBDb3Bp
ZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xDb2RlZ2VuQWxs
LmpzLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3Rz
L0NvcmUvUmVuZGVyZXIvT25zY3JlZW5SZW5kZXJlci5tOiBBZGRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL1JlbmRl
cmVyLmg6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01T
TENvZGVnZW5BbGwuanMuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9SZW5kZXJlci5tOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJn
dW1lbnQuaDogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
TVNMQ29kZWdlbkFsbC5qcy4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJndW1lbnQubTogQWRkZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RGVzY3Jp
cHRpb24uaDogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
TVNMQ29kZWdlbkFsbC5qcy4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5tOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RGYW1pbHku
aDogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQ29k
ZWdlbkFsbC5qcy4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExT
TCBUZXN0cy9Db3JlL1Rlc3RGYW1pbHkubTogQWRkZWQuCisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5UnVubmVyLmg6IENv
cGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENvZGVnZW5B
bGwuanMuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9UZXN0RmFtaWx5UnVubmVyLm06IEFkZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVmlld0NvbnRyb2xsZXIuaDogQ29w
aWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQ29kZWdlbkFs
bC5qcy4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9Db3JlL1ZpZXdDb250cm9sbGVyLm06IEFkZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvV0hMU0wuZW50aXRsZW1lbnRzOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9D
b3JlL19TaGFyZWRNZXRhbC50eHQ6IEFkZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvbWFpbi5tOiBDb3BpZWQgZnJvbSBUb29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xDb2RlZ2VuQWxsLmpzLgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRlc3RzLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRveVRlc3RzL0luZm8ucGxpc3Q6IEFk
ZGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3Rz
L1dITFNMIFRveVRlc3RzL1dITFNMX1RveVRlc3RzLm06IEFkZGVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanM6CisgICAgICAgIChOYXRpdmVGdW5jKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBh
cnNlUGFyYW1ldGVyKToKKyAgICAgICAgKHBhcnNlRnVuY0RlY2wpOgorICAgICAgICAocGFyc2VG
dW5jRGVmKToKKyAgICAgICAgKHBhcnNlU3RhZ2VJbk91dFNlbWFudGljKToKKyAgICAgICAgKHBh
cnNlUmVzb3VyY2VTZW1hbnRpYyk6CisgICAgICAgIChwYXJzZVNwZWNpYWxpemF0aW9uQ29uc3Rh
bnRTZW1hbnRpYyk6CisgICAgICAgIChwYXJzZUJ1aWx0SW5TZW1hbnRpYyk6CisgICAgICAgIChw
YXJzZUZpZWxkKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanM6
CisgICAgICAgIChwcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZCk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb3VyY2VTZW1hbnRpYy5qczogQWRkZWQuCisg
ICAgICAgIChSZXNvdXJjZVNlbWFudGljKToKKyAgICAgICAgKFJlc291cmNlU2VtYW50aWMucHJv
dG90eXBlLmdldCByZXNvdXJjZU1vZGUpOgorICAgICAgICAoUmVzb3VyY2VTZW1hbnRpYy5wcm90
b3R5cGUuZ2V0IGluZGV4KToKKyAgICAgICAgKFJlc291cmNlU2VtYW50aWMucHJvdG90eXBlLmdl
dCBzcGFjZSk6CisgICAgICAgIChSZXNvdXJjZVNlbWFudGljLnByb3RvdHlwZS5pc0FjY2VwdGFi
bGVUeXBlKToKKyAgICAgICAgKFJlc291cmNlU2VtYW50aWMucHJvdG90eXBlLmlzQWNjZXB0YWJs
ZUZvclNoYWRlclR5cGUpOgorICAgICAgICAoUmVzb3VyY2VTZW1hbnRpYy5wcm90b3R5cGUudG9T
dHJpbmcpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzOgor
ICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0RnVuY1BhcmFtZXRlcik6CisgICAgICAg
IChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRGaWVsZCk6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUudmlzaXRCdWlsdEluU2VtYW50aWMpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBl
LnZpc2l0UmVzb3VyY2VTZW1hbnRpYyk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRTdGFnZUluT3V0U2VtYW50aWMpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0
U3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljKToKKyAgICAgICAgKFJld3JpdGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NlbWFudGljLmpzOiBBZGRlZC4KKyAgICAgICAgKFNlbWFu
dGljKToKKyAgICAgICAgKFNlbWFudGljLnByb3RvdHlwZS5nZXQgb3JpZ2luKToKKyAgICAgICAg
KFNlbWFudGljLnByb3RvdHlwZS5lcXVhbFRvT3RoZXJTZW1hbnRpYy5Db21wYXJlci5wcm90b3R5
cGUudmlzaXRCdWlsdEluU2VtYW50aWMpOgorICAgICAgICAoU2VtYW50aWMucHJvdG90eXBlLmVx
dWFsVG9PdGhlclNlbWFudGljLkNvbXBhcmVyLnByb3RvdHlwZS52aXNpdFJlc291cmNlU2VtYW50
aWMpOgorICAgICAgICAoU2VtYW50aWMucHJvdG90eXBlLmVxdWFsVG9PdGhlclNlbWFudGljLkNv
bXBhcmVyLnByb3RvdHlwZS52aXNpdFN0YWdlSW5PdXRTZW1hbnRpYyk6CisgICAgICAgIChTZW1h
bnRpYy5wcm90b3R5cGUuZXF1YWxUb090aGVyU2VtYW50aWMuQ29tcGFyZXIucHJvdG90eXBlLnZp
c2l0U3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljKToKKyAgICAgICAgKFNlbWFudGljLnBy
b3RvdHlwZS5lcXVhbFRvT3RoZXJTZW1hbnRpYy5Db21wYXJlcik6CisgICAgICAgIChTZW1hbnRp
Yy5wcm90b3R5cGUuZXF1YWxUb090aGVyU2VtYW50aWMpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1NwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5qczogQ29waWVkIGZy
b20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmllbGQuanMuCisgICAgICAgIChTcGVj
aWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMpOgorICAgICAgICAoU3BlY2lhbGl6YXRpb25Db25z
dGFudFNlbWFudGljLnByb3RvdHlwZS5pc0FjY2VwdGFibGVUeXBlKToKKyAgICAgICAgKFNwZWNp
YWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYy5wcm90b3R5cGUuaXNBY2NlcHRhYmxlRm9yU2hhZGVy
VHlwZSk6CisgICAgICAgIChTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMucHJvdG90eXBl
LnRvU3RyaW5nKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFnZUluT3V0
U2VtYW50aWMuanM6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1
bmNEZWYuanMuCisgICAgICAgIChTdGFnZUluT3V0U2VtYW50aWMpOgorICAgICAgICAoU3RhZ2VJ
bk91dFNlbWFudGljLnByb3RvdHlwZS5nZXQgaW5kZXgpOgorICAgICAgICAoU3RhZ2VJbk91dFNl
bWFudGljLnByb3RvdHlwZS5pc0FjY2VwdGFibGVUeXBlKToKKyAgICAgICAgKFN0YWdlSW5PdXRT
ZW1hbnRpYy5wcm90b3R5cGUuaXNBY2NlcHRhYmxlRm9yU2hhZGVyVHlwZSk6CisgICAgICAgIChT
dGFnZUluT3V0U2VtYW50aWMucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6CisgICAgICAgIChTdGF0ZW1lbnRD
bG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanM6CisgICAgICAgIChz
eW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOgorICAgICAgICAo
c3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IpOgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzOgorICAg
ICAgICAoc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanM6CisgICAgICAgIChzZXR1cEFu
ZGVyKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnNGb3JTdHJ1Y3RUeXBlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWw6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qczoKKyAgICAgICAgKHRlc3RzLnNoYWRlclR5
cGVzKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzOgorICAg
ICAgICAoVmlzaXRvci5wcm90b3R5cGUudmlzaXRGdW5jKToKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0RnVuY1BhcmFtZXRlcik6CisgICAgICAgIChWaXNpdG9yLnByb3RvdHlwZS52
aXNpdEZpZWxkKToKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0QnVpbHRJblNlbWFu
dGljKToKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0UmVzb3VyY2VTZW1hbnRpYyk6
CisgICAgICAgIChWaXNpdG9yLnByb3RvdHlwZS52aXNpdFN0YWdlSW5PdXRTZW1hbnRpYyk6Cisg
ICAgICAgIChWaXNpdG9yLnByb3RvdHlwZS52aXNpdFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1h
bnRpYyk6CisgICAgICAgIChWaXNpdG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA5LTI1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjIz
NjQ1NQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDkwNDZlZDRmMjk5NjFj
YTBjNWE5ZWExMTAzNTFlYjc5MzM1ZDUwNTguLjJmM2UyOTAxYTJmMGE4ZjFiY2NkYTYxOTMwNjY5
ZWM2ZWE2NTE5YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Fs
bC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTM1LDYg
KzM1LDcgQEAgbG9hZCgiQ3JlYXRlTGl0ZXJhbC5qcyIpOwogbG9hZCgiQ3JlYXRlTGl0ZXJhbFR5
cGUuanMiKTsKIGxvYWQoIlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiTmF0
aXZlVHlwZS5qcyIpOworbG9hZCgiU2VtYW50aWMuanMiKTsKIAogbG9hZCgiQWRkcmVzc1NwYWNl
LmpzIik7CiBsb2FkKCJBbGxvY2F0ZUF0RW50cnlQb2ludHMuanMiKTsKQEAgLTQ2LDYgKzQ3LDcg
QEAgbG9hZCgiQXV0b1dyYXBwZXIuanMiKTsKIGxvYWQoIkJsb2NrLmpzIik7CiBsb2FkKCJCb29s
TGl0ZXJhbC5qcyIpOwogbG9hZCgiQnJlYWsuanMiKTsKK2xvYWQoIkJ1aWx0SW5TZW1hbnRpYy5q
cyIpOwogbG9hZCgiQnVpbHRpbk1hdHJpeEdldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpbk1hdHJp
eFNldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIpOwpAQCAtOTYsNiAr
OTgsNyBAQCBsb2FkKCJGdW5jRGVmLmpzIik7CiBsb2FkKCJGdW5jTnVtVGhyZWFkc0F0dHJpYnV0
ZS5qcyIpOwogbG9hZCgiRnVuY1BhcmFtZXRlci5qcyIpOwogbG9hZCgiRnVuY3Rpb25MaWtlQmxv
Y2suanMiKTsKK2xvYWQoIkdhdGhlckVudHJ5UG9pbnRzLmpzIik7CiBsb2FkKCJIaWdoWm9tYmll
RmluZGVyLmpzIik7CiBsb2FkKCJJZGVudGl0eUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIklmU3Rh
dGVtZW50LmpzIik7CkBAIC0xNDEsMTAgKzE0NCwxMyBAQCBsb2FkKCJSZXNvbHZlTmFtZXMuanMi
KTsKIGxvYWQoIlJlc29sdmVPdmVybG9hZEltcGwuanMiKTsKIGxvYWQoIlJlc29sdmVQcm9wZXJ0
aWVzLmpzIik7CiBsb2FkKCJSZXNvbHZlVHlwZURlZnMuanMiKTsKK2xvYWQoIlJlc291cmNlU2Vt
YW50aWMuanMiKTsKIGxvYWQoIlJldHVybi5qcyIpOwogbG9hZCgiUmV0dXJuQ2hlY2tlci5qcyIp
OwogbG9hZCgiUmV0dXJuRXhjZXB0aW9uLmpzIik7CiBsb2FkKCJTYW1wbGVyLmpzIik7Citsb2Fk
KCJTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuanMiKTsKK2xvYWQoIlN0YWdlSW5PdXRT
ZW1hbnRpYy5qcyIpOwogbG9hZCgiU3RhbmRhcmRMaWJyYXJ5LmpzIik7CiBsb2FkKCJTdGF0ZW1l
bnRDbG9uZXIuanMiKTsKIGxvYWQoIlN0cnVjdExheW91dEJ1aWxkZXIuanMiKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbG9jYXRlQXRFbnRyeVBvaW50cy5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbG9jYXRlQXRFbnRyeVBvaW50cy5q
cwppbmRleCBiODc0N2U2Mzg4MWZmNGNlYTZjMGJlMzNkMDA4ZTI0ZGFkYThjNmYxLi43ZjY4Mjc4
YjMxY2JiZWVjMmIzZGViODMxODJhNzQ5NjEyYjU3Mzk3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGxvY2F0ZUF0RW50cnlQb2ludHMuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzCkBAIC0yNCwz
OCArMjQsNiBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIGdhdGhlckVudHJ5UG9p
bnRzKHByb2dyYW0pCi17Ci0gICAgY29uc3QgZW50cnlQb2ludHMgPSBuZXcgU2V0KCk7Ci0gICAg
Zm9yIChsZXQgW25hbWUsIGZ1bmNEZWZzXSBvZiBwcm9ncmFtLmZ1bmN0aW9ucykgewotICAgICAg
ICBmb3IgKGxldCBmdW5jRGVmIG9mIGZ1bmNEZWZzKSB7Ci0gICAgICAgICAgICBpZiAoZnVuY0Rl
Zi5pc0VudHJ5UG9pbnQpCi0gICAgICAgICAgICAgICAgZW50cnlQb2ludHMuYWRkKGZ1bmNEZWYp
OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBlbnRyeVBvaW50czsKLX0KLQotZnVuY3Rp
b24gZ2F0aGVyQ2FsbGVlcyhmdW5jRGVmcykKLXsKLSAgICBjb25zdCBjYWxsZWVTZXQgPSBuZXcg
U2V0KCk7Ci0gICAgY2xhc3MgRmluZEZ1bmN0aW9uc1RoYXRBcmVDYWxsZWQgZXh0ZW5kcyBWaXNp
dG9yCi0gICAgewotICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgICAg
ICBpZiAobm9kZS5mdW5jIGluc3RhbmNlb2YgRnVuY0RlZiAmJiAhY2FsbGVlU2V0Lmhhcyhub2Rl
LmZ1bmMpKSB7Ci0gICAgICAgICAgICAgICAgY2FsbGVlU2V0LmFkZChub2RlLmZ1bmMpOwotICAg
ICAgICAgICAgICAgIG5vZGUuZnVuYy52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIH0KLSAgICBjb25zdCB2aXNpdG9yID0gbmV3IEZpbmRGdW5jdGlvbnNUaGF0QXJl
Q2FsbGVkKCk7Ci0gICAgZm9yIChsZXQgZnVuY0RlZiBvZiBmdW5jRGVmcykKLSAgICAgICAgZnVu
Y0RlZi52aXNpdCh2aXNpdG9yKTsKLSAgICByZXR1cm4gY2FsbGVlU2V0OwotfQotCiBmdW5jdGlv
biBnYXRoZXJWYXJpYWJsZXNBbmRGdW5jdGlvblBhcmFtZXRlcnMoZnVuY0RlZnMpCiB7CiAgICAg
Y29uc3QgdmFyc0FuZFBhcmFtcyA9IG5ldyBTZXQoKTsKQEAgLTc4LDE0ICs0NiwxNiBAQCBmdW5j
dGlvbiBnYXRoZXJWYXJpYWJsZXNBbmRGdW5jdGlvblBhcmFtZXRlcnMoZnVuY0RlZnMpCiAgICAg
ICAgICAgICB2YXJzQW5kUGFyYW1zLmFkZChub2RlKTsKICAgICAgICAgfQogICAgIH0KLSAgICBm
b3IgKGxldCBmdW5jIG9mIGZ1bmNEZWZzKQotICAgICAgICBmdW5jLnZpc2l0KG5ldyBWYXJBbmRQ
YXJhbVZpc2l0b3IoZnVuYy5pc0VudHJ5UG9pbnQpKTsKKyAgICBmb3IgKGxldCBmdW5jIG9mIGZ1
bmNEZWZzKSB7CisgICAgICAgIGlmIChmdW5jLm9yaWdpbi5sZXhlci5vcmlnaW4gIT09ICIvaW50
ZXJuYWwvc3RkbGliIikKKyAgICAgICAgICAgIGZ1bmMudmlzaXQobmV3IFZhckFuZFBhcmFtVmlz
aXRvcihmdW5jLmlzRW50cnlQb2ludCkpOworICAgIH0KICAgICByZXR1cm4gdmFyc0FuZFBhcmFt
czsKIH0KIAogZnVuY3Rpb24gY3JlYXRlR2xvYmFsU3RydWN0VHlwZUFuZFZhclRvRmllbGRNYXAo
b3JpZ2luLCBhbGxWYXJpYWJsZXNBbmRGdW5jdGlvblBhcmFtZXRlcnMsIGZ1bmN0aW9uc1RoYXRB
cmVDYWxsZWRCeUVudHJ5UG9pbnRzKQogewotICAgIGNvbnN0IGdsb2JhbFN0cnVjdFR5cGUgPSBu
ZXcgU3RydWN0VHlwZShvcmlnaW4sIG51bGwpOworICAgIGNvbnN0IGdsb2JhbFN0cnVjdFR5cGUg
PSBuZXcgU3RydWN0VHlwZShvcmlnaW4sICJHbG9iYWwgU3RydWN0IFR5cGUiKTsKICAgICBsZXQg
Y291bnRlciA9IDA7CiAgICAgY29uc3QgdmFyVG9GaWVsZE1hcCA9IG5ldyBNYXAoKTsKIApAQCAt
OTYsNyArNjYsNyBAQCBmdW5jdGlvbiBjcmVhdGVHbG9iYWxTdHJ1Y3RUeXBlQW5kVmFyVG9GaWVs
ZE1hcChvcmlnaW4sIGFsbFZhcmlhYmxlc0FuZEZ1bmN0aW9uUAogICAgIH0KIAogICAgIGZvciAo
bGV0IGZ1bmMgb2YgZnVuY3Rpb25zVGhhdEFyZUNhbGxlZEJ5RW50cnlQb2ludHMpIHsKLSAgICAg
ICAgaWYgKGZ1bmMucmV0dXJuVHlwZS5uYW1lICE9PSAidm9pZCIpIHsKKyAgICAgICAgaWYgKGZ1
bmMucmV0dXJuVHlwZS5uYW1lICE9PSAidm9pZCIgJiYgZnVuYy5vcmlnaW4ubGV4ZXIub3JpZ2lu
ICE9PSAiL2ludGVybmFsL3N0ZGxpYiIpIHsKICAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9
IGBmaWVsZCR7Y291bnRlcisrfV9yZXR1cm5fJHtmdW5jLm5hbWV9YDsKICAgICAgICAgICAgIGds
b2JhbFN0cnVjdFR5cGUuYWRkKG5ldyBGaWVsZChmdW5jLm9yaWdpbiwgZmllbGROYW1lLCBmdW5j
LnJldHVyblR5cGUpKTsKICAgICAgICAgICAgIGZ1bmMucmV0dXJuRmllbGROYW1lID0gZmllbGRO
YW1lOwpAQCAtMTQyLDE0ICsxMTIsMTQgQEAgZnVuY3Rpb24gYWxsb2NhdGVBdEVudHJ5UG9pbnRz
KHByb2dyYW0pCiAKICAgICAgICAgICAgIF9hZGRWYXJpYWJsZURlY2xhcmF0aW9uKCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZURlY2wgPSBuZXcgVmFyaWFi
bGVEZWNsKGZ1bmMub3JpZ2luLCBudWxsLCBnbG9iYWxTdHJ1Y3RUeXBlUmVmLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZURlY2wgPSBuZXcgVmFyaWFibGVEZWNsKGZ1bmMu
b3JpZ2luLCAiZ2xvYmFsIHN0cnVjdCIsIGdsb2JhbFN0cnVjdFR5cGVSZWYsIG51bGwpOwogICAg
ICAgICAgICAgICAgIHRoaXMubWFrZUdsb2JhbFN0cnVjdFZhcmlhYmxlUmVmID0gKCkgPT4gbmV3
IE1ha2VQdHJFeHByZXNzaW9uKGZ1bmMub3JpZ2luLCBWYXJpYWJsZVJlZi53cmFwKHRoaXMuX3Zh
cmlhYmxlRGVjbCkpOwogICAgICAgICAgICAgICAgIGZ1bmMuYm9keS5zdGF0ZW1lbnRzLnVuc2hp
ZnQodGhpcy5fdmFyaWFibGVEZWNsKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgX3Jl
Y29uZmlndXJlUGFyYW1ldGVycygpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29u
c3QgZnVuY1BhcmFtID0gbmV3IEZ1bmNQYXJhbWV0ZXIoZnVuYy5vcmlnaW4sIG51bGwsIHB0clRv
R2xvYmFsU3RydWN0VHlwZVJlZik7CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY1BhcmFtID0g
bmV3IEZ1bmNQYXJhbWV0ZXIoZnVuYy5vcmlnaW4sICJnbG9iYWwgc3RydWN0IiwgcHRyVG9HbG9i
YWxTdHJ1Y3RUeXBlUmVmKTsKICAgICAgICAgICAgICAgICB0aGlzLm1ha2VHbG9iYWxTdHJ1Y3RW
YXJpYWJsZVJlZiA9ICgpID0+ICBWYXJpYWJsZVJlZi53cmFwKGZ1bmNQYXJhbSk7CiAgICAgICAg
ICAgICAgICAgZnVuY05ld1BhcmFtZXRlck1hcHBpbmcuc2V0KGZ1bmMsIFsgZnVuY1BhcmFtIF0p
OwogICAgICAgICAgICAgfQpAQCAtMTY4LDYgKzEzOCw3IEBAIGZ1bmN0aW9uIGFsbG9jYXRlQXRF
bnRyeVBvaW50cyhwcm9ncmFtKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnN0
IGRlcmVmRXhwciA9IG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24obm9kZS5vcmlnaW4sIHRoaXMu
X2NhbGxFeHByZXNzaW9uRm9yRmllbGROYW1lKG5vZGUsIGZpZWxkTmFtZSksIG5vZGUudHlwZSwg
InRocmVhZCIpOwogICAgICAgICAgICAgICAgIGRlcmVmRXhwci50eXBlID0gcmVzdWx0VHlwZTsK
KyAgICAgICAgICAgICAgICBkZXJlZkV4cHIuZGVyZWZJc0tub3duVG9CZVNhZmUgPSB0cnVlOwog
ICAgICAgICAgICAgICAgIHJldHVybiBkZXJlZkV4cHI7CiAgICAgICAgICAgICB9CiAKQEAgLTE5
Myw3ICsxNjQsNyBAQCBmdW5jdGlvbiBhbGxvY2F0ZUF0RW50cnlQb2ludHMocHJvZ3JhbSkKICAg
ICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICBub2RlID0gc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKLSAgICAg
ICAgICAgICAgICBpZiAobm9kZS5mdW5jIGluc3RhbmNlb2YgRnVuY0RlZikgeworICAgICAgICAg
ICAgICAgIGlmIChub2RlLmZ1bmMgaW5zdGFuY2VvZiBGdW5jRGVmICYmIG5vZGUuZnVuYy5vcmln
aW4ubGV4ZXIub3JpZ2luICE9ICIvaW50ZXJuYWwvc3RkbGliIikgewogICAgICAgICAgICAgICAg
ICAgICBsZXQgZXhwcnMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5vbnltb3Vz
VmFyaWFibGVBc3NpZ25tZW50cyA9IFtdOwogICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gbm9kZS5hcmd1bWVudExpc3QubGVuZ3RoOyBpLS07KSB7CkBAIC0yMzIsMjAgKzIwMywyNCBA
QCBmdW5jdGlvbiBhbGxvY2F0ZUF0RW50cnlQb2ludHMocHJvZ3JhbSkKICAgICAgICAgZnVuYy52
aXNpdChuZXcgVXBkYXRlRnVuY3Rpb25zKCkpOwogICAgIH0KIAotICAgIGZvciAobGV0IGZ1bmNE
ZWYgb2YgYWxsRXhlY3V0ZWRGdW5jdGlvbnMpCi0gICAgICAgIHVwZGF0ZUZ1bmN0aW9uKGZ1bmNE
ZWYpOworICAgIGZvciAobGV0IGZ1bmNEZWYgb2YgYWxsRXhlY3V0ZWRGdW5jdGlvbnMpIHsKKyAg
ICAgICAgaWYgKGZ1bmNEZWYub3JpZ2luLmxleGVyLm9yaWdpbiAhPSAiL2ludGVybmFsL3N0ZGxp
YiIpCisgICAgICAgICAgICB1cGRhdGVGdW5jdGlvbihmdW5jRGVmKTsKKyAgICB9CiAKICAgICBm
b3IgKGxldCBbZnVuYywgbmV3UGFyYW1ldGVyc10gb2YgZnVuY05ld1BhcmFtZXRlck1hcHBpbmcp
CiAgICAgICAgIGZ1bmMucGFyYW1ldGVycyA9IG5ld1BhcmFtZXRlcnM7CiAKLSAgICBmb3IgKGxl
dCBmdW5jIG9mIGFsbENhbGxlZXMpCi0gICAgICAgIGZ1bmMuX3JldHVyblR5cGUgPSBUeXBlUmVm
LndyYXAocHJvZ3JhbS50eXBlcy5nZXQoInZvaWQiKSk7CisgICAgZm9yIChsZXQgZnVuYyBvZiBh
bGxDYWxsZWVzKSB7CisgICAgICAgIGlmIChmdW5jLm9yaWdpbi5sZXhlci5vcmlnaW4gIT0gIi9p
bnRlcm5hbC9zdGRsaWIiKQorICAgICAgICAgICAgZnVuYy5fcmV0dXJuVHlwZSA9IFR5cGVSZWYu
d3JhcChwcm9ncmFtLnR5cGVzLmdldCgidm9pZCIpKTsKKyAgICB9CiAKICAgICBjbGFzcyBVcGRh
dGVDYWxsRXhwcmVzc2lvblJldHVyblR5cGVzIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHZp
c2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICAgICAgewogICAgICAgICAgICAgc3VwZXIudmlz
aXRDYWxsRXhwcmVzc2lvbihub2RlKTsKLSAgICAgICAgICAgIGlmIChub2RlLmZ1bmMgaW5zdGFu
Y2VvZiBGdW5jRGVmKQorICAgICAgICAgICAgaWYgKG5vZGUuZnVuYyBpbnN0YW5jZW9mIEZ1bmNE
ZWYgJiYgbm9kZS5mdW5jLm9yaWdpbi5sZXhlci5vcmlnaW4gIT0gIi9pbnRlcm5hbC9zdGRsaWIi
KQogICAgICAgICAgICAgICAgIG5vZGUuX3JldHVyblR5cGUgPSBub2RlLnJlc3VsdFR5cGUgPSBU
eXBlUmVmLndyYXAocHJvZ3JhbS50eXBlcy5nZXQoInZvaWQiKSk7CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdEluU2VtYW50
aWMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdEluU2VtYW50aWMuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2Q3NTZmYTYxZGI4NWI5NGI0MDZhMDQ5YmJlOGViZTRhNWVmMjU0OAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0SW5TZW1h
bnRpYy5qcwpAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIEJ1aWx0SW5TZW1hbnRpYyBleHRl
bmRzIFNlbWFudGljIHsKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIC4uLmV4dHJhQXJn
dW1lbnRzKQorICAgIHsKKyAgICAgICAgc3VwZXIob3JpZ2luKTsKKyAgICAgICAgdGhpcy5fbmFt
ZSA9IG5hbWU7CisgICAgICAgIHRoaXMuX2V4dHJhQXJndW1lbnRzID0gZXh0cmFBcmd1bWVudHM7
CisgICAgfQorCisgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CisgICAgZ2V0
IGV4dHJhQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fZXh0cmFBcmd1bWVudHM7IH0KKworICAg
IGlzQWNjZXB0YWJsZVR5cGUodHlwZSwgcHJvZ3JhbSkKKyAgICB7CisgICAgICAgIGxldCByZXF1
aXJlZFR5cGU7CisgICAgICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7CisgICAgICAgIGNhc2UgIlNW
X0luc3RhbmNlSUQiOgorICAgICAgICAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5z
aWNzLnVpbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiU1ZfVmVydGV4SUQi
OgorICAgICAgICAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiUFNJWkUiOgorICAgICAgICAgICAgcmVx
dWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzLmZsb2F0OworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgIlNWX1Bvc2l0aW9uIjoKKyAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9
IHByb2dyYW0uaW50cmluc2ljc1sidmVjdG9yPGZsb2F0LCA0PiJdOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgIlNWX0lzRnJvbnRGYWNlIjoKKyAgICAgICAgICAgIHJlcXVpcmVk
VHlwZSA9IHByb2dyYW0uaW50cmluc2ljcy5ib29sOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgIlNWX1NhbXBsZUluZGV4IjoKKyAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHBy
b2dyYW0uaW50cmluc2ljcy51aW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
IlNWX0lubmVyQ292ZXJhZ2UiOgorICAgICAgICAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5p
bnRyaW5zaWNzLnVpbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiU1ZfVGFy
Z2V0IjoKKyAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljc1sidmVj
dG9yPGZsb2F0LCA0PiJdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIlNWX0Rl
cHRoIjoKKyAgICAgICAgICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljcy5mbG9h
dDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJTVl9Db3ZlcmFnZSI6CisgICAg
ICAgICAgICByZXF1aXJlZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3MudWludDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlICJTVl9EaXNwYXRjaFRocmVhZElEIjoKKyAgICAgICAg
ICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljc1sidmVjdG9yPHVpbnQsIDM+Il07
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiU1ZfR3JvdXBJRCI6CisgICAgICAg
ICAgICByZXF1aXJlZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3NbInZlY3Rvcjx1aW50LCAzPiJd
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIlNWX0dyb3VwSW5kZXgiOgorICAg
ICAgICAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiU1ZfR3JvdXBUaHJlYWRJRCI6CisgICAgICAgICAg
ICByZXF1aXJlZFR5cGUgPSBwcm9ncmFtLmludHJpbnNpY3NbInZlY3Rvcjx1aW50LCAzPiJdOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoYFVua25vd24gc2VtYW50aWM6ICR7dGhpcy5uYW1lfWApOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIHR5cGUuZXF1YWxzKHJlcXVpcmVkVHlwZSk7CisgICAgfQorCisgICAg
aXNBY2NlcHRhYmxlRm9yU2hhZGVyVHlwZShkaXJlY3Rpb24sIHNoYWRlclR5cGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHNoYWRlclR5cGUpIHsKKyAgICAgICAgY2FzZSAidmVydGV4IjoKKyAg
ICAgICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlICJpbnB1dCI6
CisgICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBj
YXNlICJTVl9JbnN0YW5jZUlEIjoKKyAgICAgICAgICAgICAgICBjYXNlICJTVl9WZXJ0ZXhJRCI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBjYXNlICJvdXRwdXQiOgorICAgICAgICAgICAgICAgIHN3aXRjaCAodGhp
cy5uYW1lKSB7CisgICAgICAgICAgICAgICAgY2FzZSAiUFNJWkUiOgorICAgICAgICAgICAgICAg
IGNhc2UgIlNWX1Bvc2l0aW9uIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAiZnJhZ21l
bnQiOgorICAgICAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2Ug
ImlucHV0IjoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMubmFtZSkgeworICAgICAgICAg
ICAgICAgIGNhc2UgIlNWX0lzRnJvbnRGYWNlIjoKKyAgICAgICAgICAgICAgICBjYXNlICJTVl9T
YW1wbGVJbmRleCI6CisgICAgICAgICAgICAgICAgY2FzZSAiU1ZfSW5uZXJDb3ZlcmFnZSI6Cisg
ICAgICAgICAgICAgICAgY2FzZSAiU1ZfUG9zaXRpb24iOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAib3V0
cHV0IjoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMubmFtZSkgeworICAgICAgICAgICAg
ICAgIGNhc2UgIlNWX1RhcmdldCI6CisgICAgICAgICAgICAgICAgY2FzZSAiU1ZfRGVwdGgiOgor
ICAgICAgICAgICAgICAgIGNhc2UgIlNWX0NvdmVyYWdlIjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgY2FzZSAiY29tcHV0ZSI6CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uICE9ICJpbnB1dCIp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgc3dpdGNoICh0aGlz
Lm5hbWUpIHsKKyAgICAgICAgICAgIGNhc2UgIlNWX0Rpc3BhdGNoVGhyZWFkSUQiOgorICAgICAg
ICAgICAgY2FzZSAiU1ZfR3JvdXBJRCI6CisgICAgICAgICAgICBjYXNlICJTVl9Hcm91cEluZGV4
IjoKKyAgICAgICAgICAgIGNhc2UgIlNWX0dyb3VwVGhyZWFkSUQiOgorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgInRlc3QiOgorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoYFVua25vd24gc2hhZGUgdHlwZTogJHtzaGFkZXJUeXBlfWApOworICAgICAgICB9Cisg
ICAgfQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMu
bmFtZTsKKyAgICAgICAgaWYgKHRoaXMuZXh0cmFBcmd1bWVudHMpCisgICAgICAgICAgICByZXN1
bHQgKz0gdGhpcy5leHRyYUFyZ3VtZW50cy5qb2luKCIiKTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxFeHByZXNzaW9uLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4
cHJlc3Npb24uanMKaW5kZXggNGU0ZDY1ZjA5MTM4MDRmNGQwZTcwYzAwMmJmNjMxNDA2MGIwZWUy
ZS4uYjRjMGRhNzg3NzMwYTFiMzg4MTBjOGI1OTQzMTc4NDkwOWRkYjNlMCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKQEAgLTEyOSw3ICsx
MjksNyBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgICAg
ICBjb25zdCBmdW5jID0gbmV3IE5hdGl2ZUZ1bmModGhpcy5vcmlnaW4sICJvcGVyYXRvciZbXSIs
IHRoaXMucmVzdWx0VHlwZSwgWwogICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodGhpcy5v
cmlnaW4sIG51bGwsIGFycmF5UmVmVHlwZSksCiAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRl
cih0aGlzLm9yaWdpbiwgbnVsbCwgdWludFR5cGUpCi0gICAgICAgIF0sIGZhbHNlLCBudWxsKTsK
KyAgICAgICAgXSwgZmFsc2UpOwogCiAgICAgICAgIGFycmF5UmVmQWNjZXNzb3IuaW5zdGFudGlh
dGVJbXBsZW1lbnRhdGlvbihmdW5jKTsKIApAQCAtMTQ0LDcgKzE0NCw3IEBAIGNsYXNzIENhbGxF
eHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgICAgICAgICBjb25zdCBhcnJheVR5
cGUgPSB0aGlzLmFyZ3VtZW50VHlwZXNbMF07CiAgICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3
IE5hdGl2ZUZ1bmModGhpcy5vcmlnaW4sICJvcGVyYXRvci5sZW5ndGgiLCB0aGlzLnJlc3VsdFR5
cGUsIFsKICAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVs
bCwgYXJyYXlUeXBlKQotICAgICAgICAgICAgXSwgZmFsc2UsIG51bGwpOworICAgICAgICAgICAg
XSwgZmFsc2UpOwogICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChhcmdzLCBub2Rl
KSA9PiBFUHRyLmJveChhcnJheVR5cGUubnVtRWxlbWVudHNWYWx1ZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gZnVuYzsKICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFyZ3VtZW50VHlwZXNbMF0uaXNB
cnJheVJlZikgewpAQCAtMTUzLDcgKzE1Myw3IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVu
ZHMgRXhwcmVzc2lvbiB7CiAgICAgICAgICAgICBjb25zdCBvcGVyYXRvckxlbmd0aCA9IG5ldyBP
cGVyYXRvckFycmF5UmVmTGVuZ3RoKGFycmF5UmVmVHlwZS50b1N0cmluZygpLCBhZGRyZXNzU3Bh
Y2UpOwogICAgICAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBOYXRpdmVGdW5jKHRoaXMub3JpZ2lu
LCAib3BlcmF0b3IubGVuZ3RoIiwgdGhpcy5yZXN1bHRUeXBlLCBbCiAgICAgICAgICAgICAgICAg
bmV3IEZ1bmNQYXJhbWV0ZXIodGhpcy5vcmlnaW4sIG51bGwsIGFycmF5UmVmVHlwZSkKLSAgICAg
ICAgICAgIF0sIGZhbHNlLCBudWxsKTsKKyAgICAgICAgICAgIF0sIGZhbHNlKTsKICAgICAgICAg
ICAgIG9wZXJhdG9yTGVuZ3RoLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYyk7CiAgICAg
ICAgICAgICByZXR1cm4gZnVuYzsKICAgICAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2hlY2tlci5qcwppbmRleCAxNGY5ZDJiNGY3YTJlYmI1ZDIxMDM2NjUzMjc3Yjk1
YTQwZDg2ZDJkLi40ZWE1MGVlMWIwNGRmYTdjMWQxYWE1MWViOWJhZTJmNjJmNDhhODQ2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKQEAgLTMyLDE1ICszMiwxNiBA
QCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRT
dGF0ZW1lbnQgPSBudWxsOwogICAgICAgICB0aGlzLl92ZXJ0ZXhFbnRyeVBvaW50cyA9IG5ldyBT
ZXQoKTsKICAgICAgICAgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50cyA9IG5ldyBTZXQoKTsKKyAg
ICAgICAgdGhpcy5fY29tcHV0ZUVudHJ5UG9pbnRzID0gbmV3IFNldCgpOwogICAgIH0KLSAgICAK
KwogICAgIHZpc2l0UHJvZ3JhbShub2RlKQogICAgIHsKICAgICAgICAgbGV0IGRvU3RhdGVtZW50
ID0gc3RhdGVtZW50ID0+IHsKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRTdGF0ZW1lbnQgPSBz
dGF0ZW1lbnQ7CiAgICAgICAgICAgICBzdGF0ZW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgIH0K
LSAgICAgICAgCisKICAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBub2RlLnR5cGVzLnZhbHVlcygp
KSB7CiAgICAgICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIEFycmF5KSB7CiAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgY29uc3RpdHVlbnRUeXBlIG9mIHR5cGUpCkBAIC01OSwxMCArNjAsMTk3
IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgfQogICAgIH0KIAor
ICAgIF9jaGVja1NlbWFudGljcyhub2RlKQorICAgIHsKKyAgICAgICAgY2xhc3MgSXRlbSB7Cisg
ICAgICAgICAgICBjb25zdHJ1Y3Rvcih0eXBlLCBzZW1hbnRpYykKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBpZiAobm9kZS5zaGFkZXJUeXBlICE9ICJ0ZXN0IiAmJiAhc2VtYW50aWMp
CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkFuIGVudHJ5LXBvaW50IGlucHV0L291dHB1dCBleGlzdHMgd2hpY2ggZG9l
c24ndCBoYXZlIGEgc2VtYW50aWMiKTsKKyAgICAgICAgICAgICAgICB0aGlzLl90eXBlID0gdHlw
ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9zZW1hbnRpYyA9IHNlbWFudGljOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAg
ICAgICAgICAgIGdldCBzZW1hbnRpYygpIHsgcmV0dXJuIHRoaXMuX3NlbWFudGljOyB9CisgICAg
ICAgIH0KKworICAgICAgICBjbGFzcyBHYXRoZXJlciBleHRlbmRzIFZpc2l0b3IgeworICAgICAg
ICAgICAgY29uc3RydWN0b3IoY3VycmVudFNlbWFudGljID0gbnVsbCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRT
ZW1hbnRpYyA9IGN1cnJlbnRTZW1hbnRpYzsKKyAgICAgICAgICAgICAgICB0aGlzLl9yZXN1bHQg
PSBbXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXQoY3VycmVudFNlbWFudGlj
ID0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZW1h
bnRpYyA9IGN1cnJlbnRTZW1hbnRpYzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2V0
IGN1cnJlbnRTZW1hbnRpYyh2YWx1ZSkgeyB0aGlzLl9jdXJyZW50U2VtYW50aWMgPSB2YWx1ZTsg
fQorICAgICAgICAgICAgZ2V0IGN1cnJlbnRTZW1hbnRpYygpIHsgcmV0dXJuIHRoaXMuX2N1cnJl
bnRTZW1hbnRpYzsgfQorICAgICAgICAgICAgZ2V0IHJlc3VsdCgpIHsgcmV0dXJuIHRoaXMuX3Jl
c3VsdDsgfQorCisgICAgICAgICAgICB2aXNpdEVudW1UeXBlKG5vZGUpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChuZXcgSXRlbShub2RlLCB0aGlzLmN1
cnJlbnRTZW1hbnRpYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2aXNpdFZlY3Rv
clR5cGUobm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdC5w
dXNoKG5ldyBJdGVtKG5vZGUsIHRoaXMuY3VycmVudFNlbWFudGljKSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHRoaXMucmVzdWx0LnB1c2gobmV3IEl0ZW0obm9kZSwgdGhpcy5jdXJyZW50
U2VtYW50aWMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmlzaXROYXRpdmVUeXBl
KG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChu
ZXcgSXRlbShub2RlLCB0aGlzLmN1cnJlbnRTZW1hbnRpYykpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBpZiAodGhpcy5jdXJyZW50U2VtYW50aWMgIT0gbnVsbCkKKyAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiU3Ry
dWN0cyBpbnNpZGUgZW50cnkgcG9pbnQgc2lnbmF0dXJlcyBjYW4ndCBoYXZlIHNlbWFudGljcy4i
KTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykgeworICAg
ICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZW1hbnRpYyA9IGZpZWxkLnNlbWFudGljOwor
ICAgICAgICAgICAgICAgICAgICBmaWVsZC50eXBlLnZpc2l0KHRoaXMpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2aXNpdFB0clR5cGUobm9kZSkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKG5ldyBJdGVtKG5vZGUsIHRoaXMu
Y3VycmVudFNlbWFudGljKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZpc2l0QXJy
YXlSZWZUeXBlKG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpcy5yZXN1
bHQucHVzaChuZXcgSXRlbShub2RlLCB0aGlzLmN1cnJlbnRTZW1hbnRpYykpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB2aXNpdEFycmF5VHlwZShub2RlKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LnB1c2gobmV3IEl0ZW0obm9kZSwgdGhpcy5jdXJy
ZW50U2VtYW50aWMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmlzaXRGdW5jUGFy
YW1ldGVyKG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVu
dFNlbWFudGljID0gbm9kZS5zZW1hbnRpYzsKKyAgICAgICAgICAgICAgICBub2RlLnR5cGUudmlz
aXQodGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsZXQgaW5wdXRH
YXRoZXJlciA9IG5ldyBHYXRoZXJlcigpOworICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Yg
bm9kZS5wYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBpbnB1dEdhdGhlcmVyLnJlc2V0KCk7Cisg
ICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQoaW5wdXRHYXRoZXJlcik7CisgICAgICAgIH0KKyAg
ICAgICAgbGV0IG91dHB1dEdhdGhlcmVyID0gbmV3IEdhdGhlcmVyKG5vZGUuc2VtYW50aWMpOwor
ICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQob3V0cHV0R2F0aGVyZXIpOworCisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrRHVwbGljYXRlU2VtYW50aWNzKGl0ZW1zKSB7CisgICAgICAgICAgICAv
LyBGSVhNRTogTWFrZSB0aGlzIGZhc3RlciB0aGFuIE8obl4yKQorICAgICAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAo
bGV0IGogPSBpICsgMTsgaiA8IGl0ZW1zLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpdGVtc1tpXS5zZW1hbnRpYyAmJiBpdGVtc1tpXS5zZW1hbnRpYy5lcXVhbFRvT3Ro
ZXJTZW1hbnRpYyhpdGVtc1tqXS5zZW1hbnRpYykpCisgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsIGBEdXBsaWNhdGUg
c2VtYW50aWMgZm91bmQgaW4gZW50cnkgcG9pbnQ6ICR7aXRlbXNbaV0uc2VtYW50aWN9YCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoZWNr
RHVwbGljYXRlU2VtYW50aWNzKGlucHV0R2F0aGVyZXIucmVzdWx0KTsKKyAgICAgICAgY2hlY2tE
dXBsaWNhdGVTZW1hbnRpY3Mob3V0cHV0R2F0aGVyZXIucmVzdWx0KTsKKworICAgICAgICBsZXQg
cHJvZ3JhbSA9IHRoaXMuX3Byb2dyYW07CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU2VtYW50aWNU
eXBlcyhpdGVtcykgeworICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBpdGVtcykgeworICAg
ICAgICAgICAgICAgIGlmIChpdGVtLnNlbWFudGljICYmICFpdGVtLnNlbWFudGljLmlzQWNjZXB0
YWJsZVR5cGUoaXRlbS50eXBlLCBwcm9ncmFtKSkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCBgU2VtYW50aWMgJHtpdGVt
LnNlbWFudGljfSBpcyB1bm5hY2NlcHRhYmxlIHR5cGUgJHtpdGVtLnR5cGV9YCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tTZW1hbnRpY1R5cGVzKGlucHV0R2F0aGVy
ZXIucmVzdWx0KTsKKyAgICAgICAgY2hlY2tTZW1hbnRpY1R5cGVzKG91dHB1dEdhdGhlcmVyLnJl
c3VsdCk7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTZW1hbnRpY0ZvclNoYWRlclR5cGUoaXRl
bXMsIGRpcmVjdGlvbikgeworICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBpdGVtcykgewor
ICAgICAgICAgICAgICAgIGlmIChpdGVtLnNlbWFudGljICYmICFpdGVtLnNlbWFudGljLmlzQWNj
ZXB0YWJsZUZvclNoYWRlclR5cGUoZGlyZWN0aW9uLCBub2RlLnNoYWRlclR5cGUpKQorICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJp
bmcsIGBTZW1hbnRpYyAke2l0ZW0uc2VtYW50aWN9IGlzIHVubmFjY2VwdGFibGUgYXMgYW4gJHtk
aXJlY3Rpb259IG9mIHNoYWRlciB0eXBlICR7bm9kZS5zaGFkZXJUeXBlfWApOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIGNoZWNrU2VtYW50aWNGb3JTaGFkZXJUeXBlKGlucHV0
R2F0aGVyZXIucmVzdWx0LCAiaW5wdXQiKTsKKyAgICAgICAgY2hlY2tTZW1hbnRpY0ZvclNoYWRl
clR5cGUob3V0cHV0R2F0aGVyZXIucmVzdWx0LCAib3V0cHV0Iik7CisKKyAgICAgICAgY2xhc3Mg
UE9EQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgeworICAgICAgICAgICAgdmlzaXRFbnVtVHlwZShu
b2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICB2aXNpdEFycmF5VHlwZShub2RlKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2aXNpdFZlY3RvclR5cGUobm9kZSkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZpc2l0
TmF0aXZlVHlwZShub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBu
b2RlLmlzTnVtYmVyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2aXNpdFB0clR5cGUo
bm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBsZXQgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBmaWVs
ZCBvZiBub2RlLmZpZWxkcykKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYm
IGZpZWxkLnR5cGUudmlzaXQodGhpcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBjaGVja1BPRERhdGEoaXRl
bXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgaXRlbXMpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoKGl0ZW0udHlwZSBpbnN0YW5jZW9mIFB0clR5cGUpIHx8IChpdGVtLnR5cGUgaW5z
dGFuY2VvZiBBcnJheVJlZlR5cGUpIHx8IChpdGVtLnR5cGUgaW5zdGFuY2VvZiBBcnJheVR5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXRlbS50eXBlLmVsZW1lbnRUeXBlLnZpc2l0
KG5ldyBQT0RDaGVja2VyKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQnVmZmVyIGF0dGFjaGVkIHRvIGVu
dHJ5IHBvaW50IG5lZWRzIHRvIG9ubHkgY29udGFpbiBQT0QgdHlwZXMiKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tQT0REYXRhKGlu
cHV0R2F0aGVyZXIucmVzdWx0KTsKKyAgICAgICAgY2hlY2tQT0REYXRhKG91dHB1dEdhdGhlcmVy
LnJlc3VsdCk7CisgICAgfQorCiAgICAgX2NoZWNrU2hhZGVyVHlwZShub2RlKQogICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IFJlbGF4IHRoZXNlIGNoZWNrcyBvbmNlIHdlIGhhdmUgaW1wbGVtZW50
ZWQgc3VwcG9ydCBmb3IgdGV4dHVyZXMgYW5kIHNhbXBsZXJzLgotICAgICAgICBsZXQgc2hhZGVy
RnVuYyA9IG5vZGU7CiAgICAgICAgIHN3aXRjaCAobm9kZS5zaGFkZXJUeXBlKSB7CiAgICAgICAg
IGNhc2UgInZlcnRleCI6CiAgICAgICAgICAgICBpZiAodGhpcy5fdmVydGV4RW50cnlQb2ludHMu
aGFzKG5vZGUubmFtZSkpCkBAIC03NCw2ICsyNjIsMTUgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3Jp
Z2luLm9yaWdpblN0cmluZywgIkR1cGxpY2F0ZSBmcmFnbWVudCBlbnRyeSBwb2ludCBuYW1lICIg
KyBub2RlLm5hbWUpOwogICAgICAgICAgICAgdGhpcy5fZnJhZ21lbnRFbnRyeVBvaW50cy5hZGQo
bm9kZS5uYW1lKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJjb21wdXRlIjoK
KyAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlRW50cnlQb2ludHMuaGFzKG5vZGUubmFtZSkp
CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCAiRHVwbGljYXRlIGNvbXB1dGUgZW50cnkgcG9pbnQgbmFtZSAiICsgbm9kZS5uYW1l
KTsKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVFbnRyeVBvaW50cy5hZGQobm9kZS5uYW1lKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJ0ZXN0IjoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
c2hhZGVyIHR5cGU6ICIgKyBub2RlLnNoYWRlclR5cGUpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC04NCw3ICsyODEsNyBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAKICAgICAg
ICAgaWYgKCFmdW5jLm5hbWUuc3RhcnRzV2l0aCgib3BlcmF0b3IiKSkKICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIG9wZXJhdG9yIG92ZXJsb2FkIG5hbWU6ICIgKyBmdW5jLm5hbWUp
OwotICAgICAgICAKKwogICAgICAgICBsZXQgY2hlY2tHZXR0ZXIgPSAoa2luZCkgPT4gewogICAg
ICAgICAgICAgbGV0IG51bUV4cGVjdGVkUGFyYW1ldGVycyA9IGtpbmQgPT0gImluZGV4IiA/IDIg
OiAxOwogICAgICAgICAgICAgaWYgKGZ1bmMucGFyYW1ldGVycy5sZW5ndGggIT0gbnVtRXhwZWN0
ZWRQYXJhbWV0ZXJzKQpAQCAtOTIsNyArMjg5LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICAgICAgaWYgKGZ1bmMucGFyYW1ldGVyVHlwZXNbMF0udW5pZnlOb2Rl
LmlzUHRyKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2lu
Lm9yaWdpblN0cmluZywgIkNhbm5vdCBoYXZlIGdldHRlciBmb3IgcG9pbnRlciB0eXBlOiAiICsg
ZnVuYy5wYXJhbWV0ZXJUeXBlc1swXSk7CiAgICAgICAgIH07Ci0gICAgICAgIAorCiAgICAgICAg
IGxldCBjaGVja1NldHRlciA9IChraW5kKSA9PiB7CiAgICAgICAgICAgICBsZXQgbnVtRXhwZWN0
ZWRQYXJhbWV0ZXJzID0ga2luZCA9PSAiaW5kZXgiID8gMyA6IDI7CiAgICAgICAgICAgICBpZiAo
ZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCAhPSBudW1FeHBlY3RlZFBhcmFtZXRlcnMpCkBAIC0xMTQs
NyArMzExLDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAg
aWYgKCFyZXN1bHRUeXBlLmVxdWFscyh2YWx1ZVR5cGUpKQogICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIlNldHRlciBhbmQgZ2V0
dGVyIG11c3QgYWdyZWUgb24gdmFsdWUgdHlwZSAoZ2V0dGVyIGF0ICIgKyBvdmVybG9hZC5mdW5j
Lm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiIHNheXMgIiArIHJlc3VsdFR5cGUgKyAiIHdoaWxlIHRo
aXMgc2V0dGVyIHNheXMgIiArIHZhbHVlVHlwZSArICIpIik7CiAgICAgICAgIH07Ci0gICAgICAg
IAorCiAgICAgICAgIGxldCBjaGVja0FuZGVyID0gKGtpbmQpID0+IHsKICAgICAgICAgICAgIGxl
dCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgPSBraW5kID09ICJpbmRleCIgPyAyIDogMTsKICAgICAg
ICAgICAgIGlmIChmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICE9IG51bUV4cGVjdGVkUGFyYW1ldGVy
cykKQEAgLTEyNCw3ICszMjEsNyBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgICAgICAgICBpZiAoIWZ1bmMucGFyYW1ldGVyVHlwZXNbMF0udW5pZnlOb2RlLmlzUmVmKQog
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0
cmluZywgIlBhcmFtZXRlciB0byBhbmRlciBpcyBub3QgYSByZWZlcmVuY2U6ICIgKyBmdW5jLnBh
cmFtZXRlclR5cGVzWzBdKTsKICAgICAgICAgfTsKLSAgICAgICAgCisKICAgICAgICAgc3dpdGNo
IChmdW5jLm5hbWUpIHsKICAgICAgICAgY2FzZSAib3BlcmF0b3IgY2FzdCI6CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTE4OSw0NCArMzg2LDQ2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNp
dG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUGFyc2VyIGFjY2VwdGVkIHVucmVj
b2duaXplZCBvcGVyYXRvcjogIiArIGZ1bmMubmFtZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
CisKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGlmIChub2RlLnNoYWRl
clR5cGUpCisgICAgICAgIGlmIChub2RlLnNoYWRlclR5cGUpIHsKICAgICAgICAgICAgIHRoaXMu
X2NoZWNrU2hhZGVyVHlwZShub2RlKTsKKyAgICAgICAgICAgIHRoaXMuX2NoZWNrU2VtYW50aWNz
KG5vZGUpOworICAgICAgICB9CiAgICAgICAgIHRoaXMuX2NoZWNrT3BlcmF0b3JPdmVybG9hZChu
b2RlLCBuYW1lID0+IHRoaXMuX3Byb2dyYW0uZnVuY3Rpb25zLmdldChuYW1lKSk7CiAgICAgICAg
IG5vZGUuYm9keS52aXNpdCh0aGlzKTsKICAgICB9Ci0gICAgCisKICAgICB2aXNpdEVudW1UeXBl
KG5vZGUpCiAgICAgewogICAgICAgICBub2RlLmJhc2VUeXBlLnZpc2l0KHRoaXMpOwotICAgICAg
ICAKKwogICAgICAgICBsZXQgYmFzZVR5cGUgPSBub2RlLmJhc2VUeXBlLnVuaWZ5Tm9kZTsKLSAg
ICAgICAgCisKICAgICAgICAgaWYgKCFiYXNlVHlwZS5pc0ludCkKICAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkJhc2UgdHlwZSBvZiBl
bnVtIGlzIG5vdCBhbiBpbnRlZ2VyOiAiICsgbm9kZS5iYXNlVHlwZSk7Ci0gICAgICAgIAorCiAg
ICAgICAgIGZvciAobGV0IG1lbWJlciBvZiBub2RlLm1lbWJlcnMpIHsKICAgICAgICAgICAgIGlm
ICghbWVtYmVyLnZhbHVlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
CisKICAgICAgICAgICAgIGxldCBtZW1iZXJUeXBlID0gbWVtYmVyLnZhbHVlLnZpc2l0KHRoaXMp
OwogICAgICAgICAgICAgaWYgKCFiYXNlVHlwZS5lcXVhbHNXaXRoQ29tbWl0KG1lbWJlclR5cGUp
KQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG1lbWJlci5vcmlnaW4ub3Jp
Z2luU3RyaW5nLCAiVHlwZSBvZiBlbnVtIG1lbWJlciAiICsgbWVtYmVyLnZhbHVlLm5hbWUgKyAi
IGRvZXMgbm90IHBhdGNoIGVudW0gYmFzZSB0eXBlIChtZW1iZXIgdHlwZSBpcyAiICsgbWVtYmVy
VHlwZSArICIsIGVudW0gYmFzZSB0eXBlIGlzICIgKyBub2RlLmJhc2VUeXBlICsgIikiKTsKICAg
ICAgICAgfQotICAgICAgICAKKwogICAgICAgICBsZXQgbmV4dFZhbHVlID0gYmFzZVR5cGUuZGVm
YXVsdFZhbHVlOwogICAgICAgICBmb3IgKGxldCBtZW1iZXIgb2Ygbm9kZS5tZW1iZXJzKSB7CiAg
ICAgICAgICAgICBpZiAobWVtYmVyLnZhbHVlKSB7CiAgICAgICAgICAgICAgICAgbmV4dFZhbHVl
ID0gYmFzZVR5cGUuc3VjY2Vzc29yVmFsdWUobWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZv
clNlbGVjdGVkVHlwZSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgbWVtYmVyLnZhbHVlID0gYmFzZVR5cGUuY3Jl
YXRlTGl0ZXJhbChtZW1iZXIub3JpZ2luLCBuZXh0VmFsdWUpOwogICAgICAgICAgICAgbmV4dFZh
bHVlID0gYmFzZVR5cGUuc3VjY2Vzc29yVmFsdWUobmV4dFZhbHVlKTsKICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICBsZXQgbWVtYmVyQXJyYXkgPSBBcnJheS5mcm9tKG5vZGUubWVtYmVy
cyk7CiAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVtYmVyQXJyYXkubGVuZ3RoOyArK2kp
IHsKICAgICAgICAgICAgIGxldCBtZW1iZXIgPSBtZW1iZXJBcnJheVtpXTsKQEAgLTIzNiw3ICs0
MzUsNyBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG90aGVyTWVtYmVyLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJEdXBsaWNhdGUgZW51bSBtZW1iZXIgdmFsdWUgKCIgKyBtZW1iZXIubmFtZSArICIgaGFzICIg
KyBtZW1iZXIudmFsdWUgKyAiIHdoaWxlICIgKyBvdGhlck1lbWJlci5uYW1lICsgIiBoYXMgIiAr
IG90aGVyTWVtYmVyLnZhbHVlICsgIikiKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICBsZXQgZm91bmRaZXJvID0gZmFsc2U7CiAgICAgICAgIGZvciAobGV0
IG1lbWJlciBvZiBub2RlLm1lbWJlcnMpIHsKICAgICAgICAgICAgIGlmIChiYXNlVHlwZS52YWx1
ZXNFcXVhbChtZW1iZXIudmFsdWUudW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRUeXBlLCBiYXNl
VHlwZS5kZWZhdWx0VmFsdWUpKSB7CkBAIC0yNDcsNyArNDQ2LDcgQEAgY2xhc3MgQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAoIWZvdW5kWmVybykKICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkVudW0gZG9lcyBu
b3QgaGF2ZSBhIG1lbWJlciB3aXRoIHRoZSB2YWx1ZSB6ZXJvIik7CiAgICAgfQotICAgIAorCiAg
ICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBpZiAoIW5vZGUudHlwZSkKQEAg
LTMwNiwyMCArNTA1LDIwIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAg
ICAgaWYgKG5vZGUubnVtQ29sdW1uc1ZhbHVlICE9IDIgJiYgbm9kZS5udW1Db2x1bW5zVmFsdWUg
IT0gMyAmJiBub2RlLm51bUNvbHVtbnNWYWx1ZSAhPSA0KQogICAgICAgICAgICAgdGhyb3cgbmV3
IFdUeXBlRXJyb3IoYCR7bm9kZS50b1N0cmluZygpfTogJHtub2RlLm51bUNvbHVtbnNWYWx1ZX0g
aXMgbm90IDIsIDMsIG9yIDQuYCk7CiAgICAgfQotICAgIAorCiAgICAgdmlzaXRBcnJheVR5cGUo
bm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUuZWxlbWVudFR5cGUudmlzaXQodGhpcyk7Ci0gICAg
ICAgIAorCiAgICAgICAgIGlmICghbm9kZS5udW1FbGVtZW50cy5pc0NvbnN0ZXhwcikKICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkFy
cmF5IGxlbmd0aCBtdXN0IGJlIGNvbnN0ZXhwciIpOwotICAgICAgICAKKwogICAgICAgICBsZXQg
dHlwZSA9IG5vZGUubnVtRWxlbWVudHMudmlzaXQodGhpcyk7Ci0gICAgICAgIAorCiAgICAgICAg
IGlmICghdHlwZS5lcXVhbHNXaXRoQ29tbWl0KHRoaXMuX3Byb2dyYW0uaW50cmluc2ljcy51aW50
KSkKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0
cmluZywgIkFycmF5IGxlbmd0aCBtdXN0IGJlIGEgdWludCIpOwogICAgIH0KLSAgICAKKwogICAg
IHZpc2l0VmFyaWFibGVEZWNsKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUudmlzaXQo
dGhpcyk7CkBAIC0zMzAsNyArNTI5LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdp
blN0cmluZywgIlR5cGUgbWlzbWF0Y2ggaW4gdmFyaWFibGUgaW5pdGlhbGl6YXRpb246ICIgKyBs
aHNUeXBlICsgIiB2ZXJzdXMgIiArIHJoc1R5cGUpOwogICAgICAgICB9CiAgICAgfQotICAgIAor
CiAgICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCiAgICAgewogICAgICAgICBsZXQgbGhzVHlwZSA9
IG5vZGUubGhzLnZpc2l0KHRoaXMpOwpAQCAtMzQyLDEyICs1NDEsMTIgQEAgY2xhc3MgQ2hlY2tl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBub2RlLnR5cGUgPSBsaHNUeXBlOwogICAgICAg
ICByZXR1cm4gbGhzVHlwZTsKICAgICB9Ci0gICAgCisKICAgICB2aXNpdElkZW50aXR5RXhwcmVz
c2lvbihub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5vZGUudGFyZ2V0LnZpc2l0KHRoaXMp
OwogICAgIH0KLSAgICAKKwogICAgIHZpc2l0UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbihub2Rl
KQogICAgIHsKICAgICAgICAgbGV0IGxoc1R5cGUgPSBub2RlLmxWYWx1ZS52aXNpdCh0aGlzKTsK
QEAgLTM2MiwxMyArNTYxLDEzIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICAgICAgICAgIHJldHVybiBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJUeXBlIG1pc21hdGNoIGluIHJlYWQtbW9kaWZ5LXdyaXRlOiAiICsgbGhzVHlwZSArICIgdmVy
c3VzICIgKyBuZXdWYWx1ZVR5cGUpOwogICAgICAgICByZXR1cm4gbm9kZS5yZXN1bHRFeHAudmlz
aXQodGhpcyk7CiAgICAgfQotICAgIAorCiAgICAgdmlzaXRBbm9ueW1vdXNWYXJpYWJsZShub2Rl
KQogICAgIHsKICAgICAgICAgaWYgKCFub2RlLnR5cGUpCiAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkFub255bW91cyB2YXJpYWJsZSBtdXN0IGtub3cgdHlwZSBiZWZvcmUgZmlyc3QgYXBw
ZWFyYW5jZSIpOwogICAgIH0KLSAgICAKKwogICAgIHZpc2l0RGVyZWZlcmVuY2VFeHByZXNzaW9u
KG5vZGUpCiAgICAgewogICAgICAgICBsZXQgdHlwZSA9IG5vZGUucHRyLnZpc2l0KHRoaXMpLnVu
aWZ5Tm9kZTsKQEAgLTM4MCwxNiArNTc5LDE2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNp
dG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBhZGRyZXNzIHNwYWNlIGlu
IHR5cGU6ICIgKyB0eXBlKTsKICAgICAgICAgcmV0dXJuIG5vZGUudHlwZTsKICAgICB9Ci0gICAg
CisKICAgICB2aXNpdE1ha2VQdHJFeHByZXNzaW9uKG5vZGUpCiAgICAgewogICAgICAgICBsZXQg
ZWxlbWVudFR5cGUgPSBub2RlLmxWYWx1ZS52aXNpdCh0aGlzKS51bmlmeU5vZGU7CiAgICAgICAg
IGlmICghbm9kZS5sVmFsdWUuaXNMVmFsdWUpCiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVF
cnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJPcGVyYW5kIHRvICYgaXMgbm90IGFuIExW
YWx1ZTogIiArIG5vZGUubFZhbHVlICsgbm9kZS5sVmFsdWUubm90TFZhbHVlUmVhc29uU3RyaW5n
KTsKLSAgICAgICAgCisKICAgICAgICAgcmV0dXJuIG5ldyBQdHJUeXBlKG5vZGUub3JpZ2luLCBu
b2RlLmxWYWx1ZS5hZGRyZXNzU3BhY2UsIGVsZW1lbnRUeXBlKTsKICAgICB9Ci0gICAgCisKICAg
ICB2aXNpdE1ha2VBcnJheVJlZkV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGxldCBl
bGVtZW50VHlwZSA9IG5vZGUubFZhbHVlLnZpc2l0KHRoaXMpLnVuaWZ5Tm9kZTsKQEAgLTM5Nywz
NyArNTk2LDM3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAg
IG5vZGUuYmVjb21lKG5ldyBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24obm9kZS5vcmln
aW4sIG5vZGUubFZhbHVlKSk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5UmVmVHlwZShu
b2RlLm9yaWdpbiwgZWxlbWVudFR5cGUuYWRkcmVzc1NwYWNlLCBlbGVtZW50VHlwZS5lbGVtZW50
VHlwZSk7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAgaWYgKCFub2RlLmxWYWx1ZS5p
c0xWYWx1ZSkKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIk9wZXJhbmQgdG8gQCBpcyBub3QgYW4gTFZhbHVlOiAiICsgbm9kZS5sVmFs
dWUgKyBub2RlLmxWYWx1ZS5ub3RMVmFsdWVSZWFzb25TdHJpbmcpOwotICAgICAgICAKKwogICAg
ICAgICBpZiAoZWxlbWVudFR5cGUuaXNBcnJheSkgewogICAgICAgICAgICAgbm9kZS5udW1FbGVt
ZW50cyA9IGVsZW1lbnRUeXBlLm51bUVsZW1lbnRzOwogICAgICAgICAgICAgZWxlbWVudFR5cGUg
PSBlbGVtZW50VHlwZS5lbGVtZW50VHlwZTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBu
b2RlLm51bUVsZW1lbnRzID0gVWludExpdGVyYWwud2l0aFR5cGUobm9kZS5vcmlnaW4sIDEsIHRo
aXMuX3Byb2dyYW0uaW50cmluc2ljcy51aW50KTsKLSAgICAgICAgICAgIAorCiAgICAgICAgIHJl
dHVybiBuZXcgQXJyYXlSZWZUeXBlKG5vZGUub3JpZ2luLCBub2RlLmxWYWx1ZS5hZGRyZXNzU3Bh
Y2UsIGVsZW1lbnRUeXBlKTsKICAgICB9Ci0gICAgCisKICAgICB2aXNpdENvbnZlcnRUb0FycmF5
UmVmRXhwcmVzc2lvbihub2RlKQogICAgIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91
bGQgbm90IGV4aXN0IHlldC4iKTsKICAgICB9Ci0gICAgCisKICAgICBfZmluaXNoVmlzaXRpbmdQ
cm9wZXJ0eUFjY2Vzcyhub2RlLCBiYXNlVHlwZSwgZXh0cmFBcmdzLCBleHRyYUFyZ1R5cGVzKQog
ICAgIHsKICAgICAgICAgYmFzZVR5cGUgPSBiYXNlVHlwZS52aXNpdChuZXcgQXV0b1dyYXBwZXIo
KSkKICAgICAgICAgbm9kZS5iYXNlVHlwZSA9IGJhc2VUeXBlOwotICAgICAgICAKKwogICAgICAg
ICAvLyBTdWNoIGEgdHlwZSBtdXN0IGV4aXN0LiBUaGlzIG1heSB0aHJvdyBpZiBpdCBkb2Vzbid0
LgogICAgICAgICBsZXQgdHlwZUZvckFuZCA9IGJhc2VUeXBlLmFyZ3VtZW50VHlwZUZvckFuZE92
ZXJsb2FkKG5vZGUub3JpZ2luKTsKICAgICAgICAgaWYgKCF0eXBlRm9yQW5kKQogICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IHR5cGVGb3JBbmQiKTsKLSAgICAgICAgCisK
ICAgICAgICAgbGV0IGVycm9yRm9yR2V0OwogICAgICAgICBsZXQgZXJyb3JGb3JBbmQ7Ci0gICAg
ICAgIAorCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJl
c3Npb24ucmVzb2x2ZSgKICAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJs
ZUdldE92ZXJsb2FkcywKQEAgLTQzOSwxMCArNjM4LDEwIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgICAgZXJyb3JG
b3JHZXQgPSBlOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHRyeSB7CiAgICAgICAg
ICAgICBsZXQgYmFzZUZvckFuZCA9IGJhc2VUeXBlLmFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQobm9k
ZS5vcmlnaW4sIG5vZGUuYmFzZSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCiAgICAgICAgICAgICAgICAgbm9kZS5vcmln
aW4sIG5vZGUucG9zc2libGVBbmRPdmVybG9hZHMsCiAgICAgICAgICAgICAgICAgbm9kZS5hbmRG
dW5jTmFtZSwgW2Jhc2VGb3JBbmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRy
YUFyZ1R5cGVzXSwKQEAgLTQ1NCw3ICs2NTMsNyBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgICAgIGVycm9yRm9yQW5k
ID0gZTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBpZiAoIW5vZGUucmVzdWx0VHlw
ZUZvckdldCAmJiAhbm9kZS5yZXN1bHRUeXBlRm9yQW5kKSB7CiAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcigKICAgICAgICAgICAgICAgICBub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcs
CkBAIC00NjMsMTEgKzY2MiwxMSBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgICAgICAgICAgICAgImFuZCB0cmllZCBieS1wb2ludGVyOlxuIiArCiAgICAgICAgICAgICAg
ICAgZXJyb3JGb3JBbmQudHlwZUVycm9yTWVzc2FnZSk7CiAgICAgICAgIH0KLSAgICAgICAgCisK
ICAgICAgICAgaWYgKG5vZGUucmVzdWx0VHlwZUZvckdldCAmJiBub2RlLnJlc3VsdFR5cGVGb3JB
bmQKICAgICAgICAgICAgICYmICFub2RlLnJlc3VsdFR5cGVGb3JHZXQuZXF1YWxzKG5vZGUucmVz
dWx0VHlwZUZvckFuZCkpCiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJSZXN1bHQgdHlwZSByZXNvbHZlZCBieS12YWx1ZSAoIiArIG5v
ZGUucmVzdWx0VHlwZUZvckdldCArICIpIGRvZXMgbm90IG1hdGNoIHJlc3VsdCB0eXBlIHJlc29s
dmVkIGJ5LXBvaW50ZXIgKCIgKyBub2RlLnJlc3VsdFR5cGVGb3JBbmQgKyAiKSIpOwotICAgICAg
ICAKKwogICAgICAgICB0cnkgewogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNz
aW9uLnJlc29sdmUoCiAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVT
ZXRPdmVybG9hZHMsCkBAIC00ODAsNyArNjc5LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICAgICAgICAgIHRocm93IGU7CiAgICAgICAgICAgICBub2RlLmVycm9y
Rm9yU2V0ID0gZTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICAvLyBPSywgbm93IHdl
IG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBhbiBsdmFsdWUuIFdlIGFyZSBhbiBsdmFsdWUg
aWYgd2UgY2FuIGJlIGFzc2lnbmVkIHRvLiBXZSBjYW4KICAgICAgICAgLy8gYmUgYXNzaWduZWQg
dG8gaWYgd2UgaGF2ZSBhbiBhbmRlciBvciBzZXR0ZXIuIEJ1dCBpdCdzIHdlaXJkZXIgdGhhbiB0
aGF0LiBXZSBhbHNvIG5lZWQgdGhlIGJhc2UgdG8gYmUKICAgICAgICAgLy8gYW4gbHZhbHVlLCBl
eGNlcHQgdW5sZXNzIHRoZSBiYXNlIGlzIGFuIGFycmF5IHJlZmVyZW5jZS4KQEAgLTQ5OCwzMSAr
Njk3LDMxIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIG5v
ZGUuaXNMVmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgbm9kZS5hZGRyZXNzU3BhY2UgPSBub2Rl
LmJhc2UuaXNMVmFsdWUgPyBub2RlLmJhc2UuYWRkcmVzc1NwYWNlIDogYmFzZVR5cGUuYWRkcmVz
c1NwYWNlOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHJldHVybiBub2RlLnJlc3Vs
dFR5cGU7CiAgICAgfQotICAgIAorCiAgICAgdmlzaXREb3RFeHByZXNzaW9uKG5vZGUpCiAgICAg
ewogICAgICAgICBsZXQgc3RydWN0VHlwZSA9IG5vZGUuc3RydWN0LnZpc2l0KHRoaXMpLnVuaWZ5
Tm9kZTsKICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmlzaFZpc2l0aW5nUHJvcGVydHlBY2Nlc3Mo
bm9kZSwgc3RydWN0VHlwZSwgW10sIFtdKTsKICAgICB9Ci0gICAgCisKICAgICB2aXNpdEluZGV4
RXhwcmVzc2lvbihub2RlKQogICAgIHsKICAgICAgICAgbGV0IGFycmF5VHlwZSA9IG5vZGUuYXJy
YXkudmlzaXQodGhpcykudW5pZnlOb2RlOwogICAgICAgICBsZXQgaW5kZXhUeXBlID0gbm9kZS5p
bmRleC52aXNpdCh0aGlzKTsKLSAgICAgICAgCisKICAgICAgICAgcmV0dXJuIHRoaXMuX2Zpbmlz
aFZpc2l0aW5nUHJvcGVydHlBY2Nlc3Mobm9kZSwgYXJyYXlUeXBlLCBbbm9kZS5pbmRleF0sIFtp
bmRleFR5cGVdKTsKICAgICB9Ci0gICAgCisKICAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCiAg
ICAgewogICAgICAgICBpZiAoIW5vZGUudmFyaWFibGUudHlwZSkKICAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiVmFyaWFibGUgaGFzIG5vIHR5cGU6ICIgKyBub2RlLnZhcmlhYmxlKTsKICAg
ICAgICAgcmV0dXJuIG5vZGUudmFyaWFibGUudHlwZTsKICAgICB9Ci0gICAgCisKICAgICB2aXNp
dFJldHVybihub2RlKQogICAgIHsKICAgICAgICAgaWYgKG5vZGUudmFsdWUpIHsKQEAgLTUzMywy
NiArNzMyLDI2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUcnlp
bmcgdG8gcmV0dXJuICIgKyByZXN1bHRUeXBlICsgIiBpbiBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJu
cyAiICsgbm9kZS5mdW5jLnJldHVyblR5cGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghbm9kZS5mdW5jLnJldHVyblR5cGUuZXF1YWxz
V2l0aENvbW1pdCh0aGlzLl9wcm9ncmFtLmludHJpbnNpY3Mudm9pZCkpCiAgICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOb24tdm9pZCBm
dW5jdGlvbiBtdXN0IHJldHVybiBhIHZhbHVlIik7CiAgICAgfQotICAgIAorCiAgICAgdmlzaXRH
ZW5lcmljTGl0ZXJhbChub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5vZGUudHlwZTsKICAg
ICB9Ci0gICAgCisKICAgICB2aXNpdE51bGxMaXRlcmFsKG5vZGUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gbm9kZS50eXBlOwogICAgIH0KLSAgICAKKwogICAgIHZpc2l0Qm9vbExpdGVyYWwobm9k
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9wcm9ncmFtLmludHJpbnNpY3MuYm9vbDsK
ICAgICB9Ci0gICAgCisKICAgICB2aXNpdEVudW1MaXRlcmFsKG5vZGUpCiAgICAgewogICAgICAg
ICByZXR1cm4gbm9kZS5tZW1iZXIuZW51bVR5cGU7CkBAIC02MTQsMTQgKzgxMywxNCBAQCBjbGFz
cyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgdmlzaXRTd2l0Y2hTdGF0ZW1lbnQobm9k
ZSkKICAgICB7CiAgICAgICAgIGxldCB0eXBlID0gbm9kZS52YWx1ZS52aXNpdCh0aGlzKS5jb21t
aXQoKTsKLSAgICAgICAgCisKICAgICAgICAgaWYgKCF0eXBlLnVuaWZ5Tm9kZS5pc0ludCAmJiAh
KHR5cGUudW5pZnlOb2RlIGluc3RhbmNlb2YgRW51bVR5cGUpKQogICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ2Fubm90IHN3aXRjaCBv
biBub24taW50ZWdlci9ub24tZW51bSB0eXBlOiAiICsgdHlwZSk7CiAKICAgICAgICAgbm9kZS50
eXBlID0gdHlwZTsKLSAgICAgICAgCisKICAgICAgICAgbGV0IGhhc0RlZmF1bHQgPSBmYWxzZTsK
LSAgICAgICAgCisKICAgICAgICAgZm9yIChsZXQgc3dpdGNoQ2FzZSBvZiBub2RlLnN3aXRjaENh
c2VzKSB7CiAgICAgICAgICAgICBzd2l0Y2hDYXNlLmJvZHkudmlzaXQodGhpcyk7CiAKQEAgLTYy
OSwyNiArODI4LDI2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgICAgICBoYXNEZWZhdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpZiAoIXN3aXRjaENhc2Uu
dmFsdWUuaXNDb25zdGV4cHIpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
c3dpdGNoQ2FzZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiU3dpdGNoIGNhc2Ugbm90IGNvbnN0ZXhw
cjogIiArIHN3aXRjaENhc2UudmFsdWUpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGxl
dCBjYXNlVHlwZSA9IHN3aXRjaENhc2UudmFsdWUudmlzaXQodGhpcyk7CiAgICAgICAgICAgICBp
ZiAoIXR5cGUuZXF1YWxzV2l0aENvbW1pdChjYXNlVHlwZSkpCiAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUeXBlRXJyb3Ioc3dpdGNoQ2FzZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiU3dpdGNo
IGNhc2UgdHlwZSBkb2VzIG5vdCBtYXRjaCBzd2l0Y2ggdmFsdWUgdHlwZSAoY2FzZSB0eXBlIGlz
ICIgKyBjYXNlVHlwZSArICIgYnV0IHN3aXRjaCB2YWx1ZSB0eXBlIGlzICIgKyB0eXBlICsgIiki
KTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5v
ZGUuc3dpdGNoQ2FzZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGxldCBmaXJzdENhc2Ug
PSBub2RlLnN3aXRjaENhc2VzW2ldOwogICAgICAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBq
IDwgbm9kZS5zd2l0Y2hDYXNlcy5sZW5ndGg7ICsraikgewogICAgICAgICAgICAgICAgIGxldCBz
ZWNvbmRDYXNlID0gbm9kZS5zd2l0Y2hDYXNlc1tqXTsKLSAgICAgICAgICAgICAgICAKKwogICAg
ICAgICAgICAgICAgIGlmIChmaXJzdENhc2UuaXNEZWZhdWx0ICE9IHNlY29uZENhc2UuaXNEZWZh
dWx0KQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAKKwog
ICAgICAgICAgICAgICAgIGlmIChmaXJzdENhc2UuaXNEZWZhdWx0KQogICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihzZWNvbmRDYXNlLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJEdXBsaWNhdGUgZGVmYXVsdCBjYXNlIGluIHN3aXRjaCBzdGF0ZW1lbnQiKTsKLSAgICAgICAg
ICAgICAgICAKKwogICAgICAgICAgICAgICAgIGxldCB2YWx1ZXNFcXVhbCA9IHR5cGUudW5pZnlO
b2RlLnZhbHVlc0VxdWFsKAogICAgICAgICAgICAgICAgICAgICBmaXJzdENhc2UudmFsdWUudW5p
ZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRUeXBlLAogICAgICAgICAgICAgICAgICAgICBzZWNvbmRD
YXNlLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CkBAIC02NTYsMTkgKzg1
NSwxOSBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHNlY29uZENhc2Uub3JpZ2luLm9yaWdpblN0cmluZywg
IkR1cGxpY2F0ZSBjYXNlIGluIHN3aXRjaCBzdGF0ZW1lbnQgZm9yIHZhbHVlICIgKyBmaXJzdENh
c2UudmFsdWUudW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBpZiAoIWhhc0RlZmF1bHQpIHsKICAgICAg
ICAgICAgIGxldCBpbmNsdWRlZFZhbHVlcyA9IG5ldyBTZXQoKTsKICAgICAgICAgICAgIGZvciAo
bGV0IHN3aXRjaENhc2Ugb2Ygbm9kZS5zd2l0Y2hDYXNlcykKICAgICAgICAgICAgICAgICBpbmNs
dWRlZFZhbHVlcy5hZGQoc3dpdGNoQ2FzZS52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3Rl
ZFR5cGUpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGZvciAobGV0IHt2YWx1ZSwgbmFt
ZX0gb2YgdHlwZS51bmlmeU5vZGUuYWxsVmFsdWVzKCkpIHsKICAgICAgICAgICAgICAgICBpZiAo
IWluY2x1ZGVkVmFsdWVzLmhhcyh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlZhbHVlIG5vdCBoYW5kbGVk
IGJ5IHN3aXRjaCBzdGF0ZW1lbnQ6ICIgKyBuYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KLSAgICAKKwogICAgIHZpc2l0Q29tbWFFeHByZXNzaW9uKG5vZGUpCiAgICAgewog
ICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDsKQEAgLTY4Nyw3ICs4ODYsNyBAQCBjbGFzcyBDaGVj
a2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlmICghZWxzZVR5cGUpCiAgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlcm5hcnkgZXhwcmVzc2lvbiBlbHNlIGhhcyBubyB0eXBlOiAi
ICsgbm9kZS5lbHNlRXhwcmVzc2lvbik7CiAgICAgICAgIGlmICghYm9keVR5cGUuZXF1YWxzV2l0
aENvbW1pdChlbHNlVHlwZSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigiQm9k
eSBhbmQgZWxzZSBjbGF1c2Ugb2YgdGVybmFyeSBzdGF0ZW1lbnQgZG9uJ3QgaGF2ZSB0aGUgc2Ft
ZSB0eXBlOiAiICsgbm9kZSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2Rl
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJCb2R5IGFuZCBlbHNlIGNsYXVzZSBvZiB0ZXJuYXJ5IHN0
YXRlbWVudCBkb24ndCBoYXZlIHRoZSBzYW1lIHR5cGU6ICIgKyBub2RlKTsKICAgICAgICAgcmV0
dXJuIGJvZHlUeXBlOwogICAgIH0KICAgICAKQEAgLTY5OSw3ICs4OTgsNyBAQCBjbGFzcyBDaGVj
a2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ2
aXNpdG9yIHJldHVybmVkIG51bGwgZm9yICIgKyBhcmd1bWVudCk7CiAgICAgICAgICAgICByZXR1
cm4gbmV3QXJndW1lbnQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICB9KTsKLSAg
ICAgICAgCisKICAgICAgICAgbm9kZS5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlczsKICAg
ICAgICAgaWYgKG5vZGUucmV0dXJuVHlwZSkKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52
aXNpdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zp
ZWxkLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmllbGQuanMKaW5kZXggOTBk
N2VmOGE2ODQxY2JmZTllNjlkODE1NDU3Y2NlNWFhN2NlYjlkZS4uMzEyYjAwZDllMjhjYjNlMzM2
YWUwOWZjMzk2ZmQ4OWMxNjBhYjBhOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRmllbGQuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmll
bGQuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTIwLDI1ICsyMCwzMCBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogInVzZSBzdHJpY3QiOwogCiBj
bGFzcyBGaWVsZCBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwg
dHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUsIHNlbWFudGljID0gbnVs
bCkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdp
bjsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBl
OworICAgICAgICB0aGlzLl9zZW1hbnRpYyA9IHNlbWFudGljOwogICAgIH0KICAgICAKICAgICBn
ZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJl
dHVybiB0aGlzLl9uYW1lOyB9CiAgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9
CisgICAgZ2V0IHNlbWFudGljKCkgeyByZXR1cm4gdGhpcy5fc2VtYW50aWM7IH0KICAgICAKICAg
ICB0b1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIiAiICsgdGhp
cy5uYW1lOworICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1l
OworICAgICAgICBpZiAodGhpcy5zZW1hbnRpYykKKyAgICAgICAgICAgIHJlc3VsdCArPSAiOiAi
ICsgdGhpcy5zZW1hbnRpYzsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcwppbmRleCA1NmIxZDJjYzc4Y2ZhMDUzYmU3Yzkx
Yjc4YjBlN2E2Yzk5OTdlMzI4Li5lMDZiNDM4MjkwMjc2ODE4MTczNjc2ODRmNWU2ODVjZWFkMTM5
YzhmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKQEAgLTI1LDcgKzI1LDcg
QEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0
cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlLCBhdHRyaWJ1dGVCbG9jayA9IG51bGwpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUgPSBudWxsLCBz
ZW1hbnRpYyA9IG51bGwsIGF0dHJpYnV0ZUJsb2NrID0gbnVsbCkKICAgICB7CiAgICAgICAgIGlm
ICghKG9yaWdpbiBpbnN0YW5jZW9mIExleGVyVG9rZW4pKQogICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgb3JpZ2luOiAiICsgb3JpZ2luKTsKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3Mg
RnVuYyBleHRlbmRzIE5vZGUgewogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gcGFyYW1ldGVy
czsKICAgICAgICAgdGhpcy5faXNDYXN0ID0gaXNDYXN0OwogICAgICAgICB0aGlzLl9zaGFkZXJU
eXBlID0gc2hhZGVyVHlwZTsKKyAgICAgICAgdGhpcy5fc2VtYW50aWMgPSBzZW1hbnRpYzsKICAg
ICAgICAgdGhpcy5fYXR0cmlidXRlQmxvY2sgPSBhdHRyaWJ1dGVCbG9jazsKICAgICB9CiAgICAg
CkBAIC01Miw2ICs1Myw3IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgcGFy
YW1ldGVyVHlwZXMoKSB7IHJldHVybiB0aGlzLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBw
YXJhbWV0ZXIudHlwZSk7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1cm4gdGhpcy5faXNDYXN0
OyB9CiAgICAgZ2V0IHNoYWRlclR5cGUoKSB7IHJldHVybiB0aGlzLl9zaGFkZXJUeXBlOyB9Cisg
ICAgZ2V0IHNlbWFudGljKCkgeyByZXR1cm4gdGhpcy5fc2VtYW50aWM7IH0KICAgICBnZXQgYXR0
cmlidXRlQmxvY2soKSB7IHJldHVybiB0aGlzLl9hdHRyaWJ1dGVCbG9jazsgfQogICAgIGdldCBp
c0VudHJ5UG9pbnQoKSB7IHJldHVybiB0aGlzLnNoYWRlclR5cGUgIT0gbnVsbDsgfQogICAgIGdl
dCByZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKCkgeyByZXR1cm4gdGhpcy5pc0Nhc3Qg
PyB0aGlzLnJldHVyblR5cGUgOiBudWxsOyB9CkBAIC03Miw3ICs3NCwxMCBAQCBjbGFzcyBGdW5j
IGV4dGVuZHMgTm9kZSB7CiAgICAgICAgICAgICByZXN1bHQgKz0gYG9wZXJhdG9yICR7dGhpcy5y
ZXR1cm5UeXBlfWA7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdCArPSBgJHt0aGlz
LnJldHVyblR5cGV9ICR7dGhpcy5uYW1lfWA7Ci0gICAgICAgIHJldHVybiByZXN1bHQgKyAiKCIg
KyB0aGlzLnBhcmFtZXRlcnMgKyAiKSI7CisgICAgICAgIHJlc3VsdCArPSAiKCIgKyB0aGlzLnBh
cmFtZXRlcnMgKyAiKSI7CisgICAgICAgIGlmICh0aGlzLnNlbWFudGljKQorICAgICAgICAgICAg
cmVzdWx0ICs9ICI6ICIgKyB0aGlzLnNlbWFudGljOworICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KICAgICAKICAgICB0b1N0cmluZygpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
RnVuY0RlZi5qcwppbmRleCBjMmQxMWYzMjYzY2MyMDNiZDcyYzMwZmMxM2RiYzE4NGFiOWQzNjQ1
Li5lZjM0Y2U0MDcxZjM2NmYyNzJhODAxYmJmNjUzYzE0NzYyYjk0OTFjIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKQEAgLTI1LDkgKzI1LDkgQEAKICJ1c2Ugc3Ry
aWN0IjsKIAogY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1bmMgewotICAgIGNvbnN0cnVjdG9yKG9y
aWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJU
eXBlLCBhdHRyaWJ1dGVCbG9jayA9IG51bGwpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1l
LCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5cGUgPSAiIiwg
c2VtYW50aWMgPSBudWxsLCBhdHRyaWJ1dGVCbG9jayA9IG51bGwpCiAgICAgewotICAgICAgICBz
dXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVy
VHlwZSwgYXR0cmlidXRlQmxvY2spOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVy
blR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSwgc2VtYW50aWMsIGF0dHJpYnV0
ZUJsb2NrKTsKICAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7CiAgICAgICAgIHRoaXMuaXNSZXN0
cmljdGVkID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY1BhcmFtZXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0Z1bmNQYXJhbWV0ZXIuanMKaW5kZXggZDBiYjFkNjIzMDRhNDg2Y2FiODUzNzc1NzU5ZDRlOGVk
NjdjODM4My4uMDVjZGI1MmZkZTM5MGRiMjUwZWM2YzI2YmM2N2U5ZjUwYjFmMWY0NyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY1BhcmFtZXRlci5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jUGFyYW1ldGVyLmpzCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMCwzMCArMjAsMzcg
QEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgRnVuY1BhcmFt
ZXRlciBleHRlbmRzIFZhbHVlIHsKICAgICAvLyBUaGUgbmFtZSBpcyBvcHRpb25hbC4gSXQncyBP
SyBmb3IgaXQgdG8gYmUgbnVsbCEKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUp
CisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlLCBzZW1hbnRpYyA9IG51bGwpCiAg
ICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAg
ICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKKyAg
ICAgICAgdGhpcy5fc2VtYW50aWMgPSBzZW1hbnRpYzsKICAgICB9CiAgICAgCiAgICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4g
dGhpcy5fbmFtZTsgfQogICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQorICAg
IGdldCBzZW1hbnRpYygpIHsgcmV0dXJuIHRoaXMuX3NlbWFudGljOyB9CiAgICAgZ2V0IHZhcklz
TFZhbHVlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7Cisg
ICAgICAgIGxldCByZXN1bHQ7CiAgICAgICAgIGlmICghdGhpcy5uYW1lKQotICAgICAgICAgICAg
cmV0dXJuICIiICsgdGhpcy50eXBlOwotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIiAiICsg
dGhpcy5uYW1lOworICAgICAgICAgICAgcmVzdWx0ID0gIiIgKyB0aGlzLnR5cGU7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMudHlwZSArICIgIiArIHRoaXMubmFtZTsK
KyAgICAgICAgaWYgKHRoaXMuc2VtYW50aWMpCisgICAgICAgICAgICByZXN1bHQgKz0gIjogIiAr
IHRoaXMuc2VtYW50aWM7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9HYXRoZXJFbnRyeVBvaW50cy5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0dhdGhlckVudHJ5UG9pbnRzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVjNGU4NjBjM2Q0NWE1ZGFkNWE5NTE5OWQzZjFiOWE5OTdlOTAxNDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9HYXRoZXJFbnRyeVBv
aW50cy5qcwpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gZ2F0aGVyRW50cnlQb2ludHMo
cHJvZ3JhbSkKK3sKKyAgICBjb25zdCBlbnRyeVBvaW50cyA9IG5ldyBTZXQoKTsKKyAgICBmb3Ig
KGxldCBbbmFtZSwgZnVuY0RlZnNdIG9mIHByb2dyYW0uZnVuY3Rpb25zKSB7CisgICAgICAgIGZv
ciAobGV0IGZ1bmNEZWYgb2YgZnVuY0RlZnMpIHsKKyAgICAgICAgICAgIGlmIChmdW5jRGVmLmlz
RW50cnlQb2ludCkKKyAgICAgICAgICAgICAgICBlbnRyeVBvaW50cy5hZGQoZnVuY0RlZik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGVudHJ5UG9pbnRzOworfQorCitmdW5jdGlvbiBn
YXRoZXJDYWxsZWVzKGZ1bmNEZWZzKQoreworICAgIGNvbnN0IGNhbGxlZVNldCA9IG5ldyBTZXQo
KTsKKyAgICBjbGFzcyBGaW5kRnVuY3Rpb25zVGhhdEFyZUNhbGxlZCBleHRlbmRzIFZpc2l0b3IK
KyAgICB7CisgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKKyAgICAgICAgICAgIGlm
IChub2RlLmZ1bmMgaW5zdGFuY2VvZiBGdW5jRGVmICYmICFjYWxsZWVTZXQuaGFzKG5vZGUuZnVu
YykpIHsKKyAgICAgICAgICAgICAgICBjYWxsZWVTZXQuYWRkKG5vZGUuZnVuYyk7CisgICAgICAg
ICAgICAgICAgbm9kZS5mdW5jLnZpc2l0KHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorICAgIGNvbnN0IHZpc2l0b3IgPSBuZXcgRmluZEZ1bmN0aW9uc1RoYXRBcmVDYWxs
ZWQoKTsKKyAgICBmb3IgKGxldCBmdW5jRGVmIG9mIGZ1bmNEZWZzKQorICAgICAgICBmdW5jRGVm
LnZpc2l0KHZpc2l0b3IpOworICAgIHJldHVybiBjYWxsZWVTZXQ7Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3Mu
anMKaW5kZXggMDRlNGI3ODI2ZTM0NzEwMDA4MjJiYzQ0Mzk0N2Q4OTQ4YWYxNzY2NC4uNjNhOTU3
MTNjOWY2MmViNjI5NzYwOTU1ZjNhMzg5YzVjMGI3Zjc3NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC0yMzAsMTYgKzIzMCw0OCBAQCBjbGFzcyBJ
bnRyaW5zaWNzIHsKICAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludCIsCiAg
ICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgIHRoaXMuYXRvbWljX2ludCA9
IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc051
bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQoY2FzdFRvSW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNp
emUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAg
ICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRl
cmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvSW50KHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUgKyAx
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBi
OwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9
PiBjYXN0VG9JbnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1
bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4
ZmZmZmZmZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNh
c3RUb0ludChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVl
LCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
IH07CiAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX3VpbnQiLAogICAgICAgICAgICAgIHR5cGUgPT4g
ewogICAgICAgICAgICAgICAgICB0aGlzLmF0b21pY191aW50ID0gdHlwZTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJ
bnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBl
LmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWludCh2
YWx1ZSksIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNy
ZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmln
aW4sIGNhc3RUb1VpbnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNj
ZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VpbnQodmFsdWUgKyAxKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
SW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VpbnQodmFsdWUpOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWludCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewor
ICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmZmZmZjsgKytp
KQorICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Cisg
ICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChsZXQg
dmVjdG9yVHlwZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKQEAgLTI1Niw2ICsyODgsNyBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICBmb3IgKGxldCB3aWR0aCA9IDI7IHdp
ZHRoIDw9IDQ7ICsrd2lkdGgpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldChg
bmF0aXZlIHR5cGVkZWYgbWF0cml4PCR7dHlwZU5hbWV9LCAke2hlaWdodH0sICR7d2lkdGh9PmAs
IHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgbWF0cml4PCR7dHlwZU5h
bWV9LCAke2hlaWdodH0sICR7d2lkdGh9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0yNzYsNiArMzA5LDcgQEAgY2xhc3Mg
SW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlw
ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLmlzVGV4dHVyZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKQEAgLTI4NCw2ICszMTgsNyBAQCBjbGFz
cyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fSR7aX0+YF0gPSB0eXBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5pc1RleHR1cmUgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0xhdGVDaGVja2VyLmpzCmluZGV4IGU1NGM3ZjNjNDgxYzRiNmM5YmM4OTcyMTEx
YzhmMDdjNjU0ZjhkMjUuLjQ3ZmQzMmMzYTg0ZDYzZTZkY2M1ZjM3YzdjZTQyMzdlZDI3NDM3MmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xhdGVDaGVja2VyLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xhdGVDaGVja2VyLmpzCkBAIC0z
Myw1OSArMzMsNSBAQCBjbGFzcyBMYXRlQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAg
ICBpZiAoIW5vZGUuZWxlbWVudFR5cGUuaXNQcmltaXRpdmUpCiAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJJbGxlZ2FsIHBvaW50ZXIg
dG8gbm9uLXByaW1pdGl2ZSB0eXBlOiAiICsgbm9kZSk7CiAgICAgfQotICAgIAotICAgIF9jaGVj
a1NoYWRlclR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaWdodGVuIHRoZXNl
IGNoZWNrcy4gRm9yIG5vdywgd2Ugc2hvdWxkIG9ubHkgYWNjZXB0IGludDMyLCB1aW50MzIsIGZs
b2F0MzIsIGFuZCBmbG9hdDY0LgotICAgICAgICBsZXQgYXNzZXJ0UHJpbWl0aXZlID0gdHlwZSA9
PiB7Ci0gICAgICAgICAgICBpZiAoIXR5cGUuaXNQcmltaXRpdmUpCi0gICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiU2hhZGVyIHNp
Z25hdHVyZSBjYW5ub3QgaW5jbHVkZSBub24tcHJpbWl0aXZlIHR5cGU6ICIgKyB0eXBlKTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKG5vZGUuc2hhZGVyVHlwZSA9PSAidmVydGV4
IiB8fCBub2RlLnNoYWRlclR5cGUgPT0gImZyYWdtZW50IikgewotICAgICAgICAgICAgYXNzZXJ0
UHJpbWl0aXZlKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRnJhZ21l
bnQgc2hhZGVycyBzaG91bGRuJ3QgaGF2ZSB0aGlzIHJlc3RyaWN0aW9uOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5Mzg3Ci0gICAgICAgICAgICBpZiAoIShub2Rl
LnJldHVyblR5cGUudW5pZnlOb2RlIGluc3RhbmNlb2YgU3RydWN0VHlwZSkpCi0gICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiU2hh
ZGVyICIgKyBub2RlLm5hbWUgKyAiIG11c3QgcmV0dXJuIGEgc3RydWN0LiIpOwotICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgc3dpdGNoIChub2RlLnNoYWRlclR5cGUpIHsKLSAgICAg
ICAgY2FzZSAidmVydGV4IjoKLSAgICAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2Rl
LnBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVyLnR5cGUudW5pZnlO
b2RlIGluc3RhbmNlb2YgU3RydWN0VHlwZSkKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0UHJp
bWl0aXZlKHBhcmFtZXRlci50eXBlKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmICghcGFyYW1l
dGVyLnR5cGUudW5pZnlOb2RlLmlzQXJyYXlSZWYpCi0gICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgbm9kZS5uYW1lICsgIiBh
Y2NlcHRzIGEgcGFyYW1ldGVyICIgKyBwYXJhbWV0ZXIubmFtZSArICIgd2hpY2ggaXNuJ3QgYSBz
dHJ1Y3QgYW5kIGlzbid0IGFuIEFycmF5UmVmLiIpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgImZyYWdtZW50IjoKLSAgICAgICAgICAgIGZvciAobGV0
IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgICAgICBpZiAocGFy
YW1ldGVyLm5hbWUgPT0gInN0YWdlSW4iKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghKHBh
cmFtZXRlci50eXBlLnVuaWZ5Tm9kZSBpbnN0YW5jZW9mIFN0cnVjdFR5cGUpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiRnJhZ21lbnQgZW50cnkgcG9pbnRzJyBzdGFnZUluIHBhcmFtZXRlciAob2YgIiArIG5v
ZGUubmFtZSArICIpIG11c3QgYmUgYSBzdHJ1Y3QgdHlwZS4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0UHJpbWl0aXZlKHBhcmFtZXRlci50eXBlKTsKLSAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmFtZXRlci50eXBlLnVuaWZ5Tm9kZS5p
c0FycmF5UmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRnJhZ21lbnQgZW50cnkgcG9pbnQncyAiICsgcGFy
YW1ldGVyLm5hbWUgKyAiIHBhcmFtZXRlciBpcyBub3QgYW4gYXJyYXkgcmVmZXJlbmNlLiIpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlICJjb21wdXRlIjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJj
b21wdXRlIjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJ0ZXN0IjoKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgc2hhZGVyIHR5cGU6ICIgKyBub2RlLnNoYWRlclR5cGUpOwotICAgICAgICB9Ci0g
ICAgfQotICAgIAotICAgIHZpc2l0RnVuY0RlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5v
ZGUuc2hhZGVyVHlwZSkKLSAgICAgICAgICAgIHRoaXMuX2NoZWNrU2hhZGVyVHlwZShub2RlKTsK
LSAgICAgICAgc3VwZXIudmlzaXRGdW5jRGVmKG5vZGUpOwotICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMQmFja2VuZC5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTEJhY2tlbmQuanMKaW5kZXggMzRi
ODI1MzM3N2YyZTk3Y2RlOGEzNmM2N2VhMjJiNzNjY2U2Mjk2My4uYWM5ODBlMjkyMGE2OGVmMDRi
MTgzMTE4YjIwOTAzNTA3MDg1MmIzZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvTVNMQmFja2VuZC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9NZXRhbC9NU0xCYWNrZW5kLmpzCkBAIC00Miw3ICs0Miw5IEBAIGNsYXNzIE1TTEJh
Y2tlbmQgewogICAgICAgICB0aGlzLl9mb3J3YXJkVHlwZURlY2xzID0gW107CiAgICAgICAgIHRo
aXMuX3R5cGVEZWZpbml0aW9ucyA9IFtdOwogICAgICAgICB0aGlzLl9mb3J3YXJkRnVuY3Rpb25E
ZWNscyA9IFtdOwotICAgICAgICB0aGlzLl9mdW5jdGlvbkRlZmludGlvbnMgPSBbXTsKKyAgICAg
ICAgdGhpcy5fZW50cnlQb2ludEZ1bmN0aW9uRGVjbHMgPSBbXTsKKyAgICAgICAgdGhpcy5fZnVu
Y3Rpb25EZWZpbml0aW9ucyA9IFtdOworICAgICAgICB0aGlzLl9lbnRyeVBvaW50RnVuY3Rpb25E
ZWZpbml0aW9ucyA9IFtdOwogICAgIH0KIAogICAgIGdldCBwcm9ncmFtKCkKQEAgLTY1LDcgKzY3
LDcgQEAgY2xhc3MgTVNMQmFja2VuZCB7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBjb25z
dCBzcmMgPSB0aGlzLl9tc2woKTsKICAgICAgICAgICAgIGNvbnN0IG1hbmdsZWRNYXAgPSB7fTsK
LSAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgdGhpcy5fZnVuY3Rpb25EZWZpbnRpb25zKSB7
CisgICAgICAgICAgICBmb3IgKGxldCBmdW5jIG9mIHRoaXMuX2Z1bmN0aW9uRGVmaW5pdGlvbnMp
IHsKICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBmdW5jLmZ1bmMubmFtZTsKICAgICAgICAg
ICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2Z1bmNOYW1lTWFuZ2xlci5tYW5nbGUoZnVuYy5m
dW5jKTsKICAgICAgICAgICAgICAgICBtYW5nbGVkTWFwW2tleV0gPSB2YWx1ZTsKQEAgLTc5LDEx
ICs4MSwxNiBAQCBjbGFzcyBNU0xCYWNrZW5kIHsKIAogICAgIF9tc2woKQogICAgIHsKKyAgICAg
ICAgYW5ub3RhdGVQc2V1ZG9DYWxscyh0aGlzLnByb2dyYW0pOworICAgICAgICByZXdyaXRlU2hh
ZGVycyh0aGlzLnByb2dyYW0pOwogICAgICAgICBpbnNlcnRUcmFwUGFyYW1ldGVyKHRoaXMucHJv
Z3JhbSk7CiAKICAgICAgICAgY29uc3QgZnVuY3Rpb25zVG9Db21waWxlID0gdGhpcy5fZmluZEZ1
bmN0aW9uc1RvQ29tcGlsZSgpOwotICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1bmN0aW9uc1Rv
Q29tcGlsZSkKKyAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jdGlvbnNUb0NvbXBpbGUpIHsK
ICAgICAgICAgICAgIGZ1bmMudmlzaXQodGhpcy5fdHlwZVVuaWZpZXIpOworICAgICAgICAgICAg
aWYgKGZ1bmMuc3RhZ2VJblN0cnVjdFR5cGUpCisgICAgICAgICAgICAgICAgZnVuYy5zdGFnZUlu
U3RydWN0VHlwZS52aXNpdCh0aGlzLl90eXBlVW5pZmllcik7CisgICAgICAgIH0KIAogICAgICAg
ICB0aGlzLl9hbGxUeXBlQXR0cmlidXRlcyA9IG5ldyBNU0xUeXBlQXR0cmlidXRlc01hcChmdW5j
dGlvbnNUb0NvbXBpbGUsIHRoaXMuX3R5cGVVbmlmaWVyKTsKICAgICAgICAgdGhpcy5fY3JlYXRl
VHlwZURlY2xzKCk7CkBAIC05OCw3ICsxMDUsOSBAQCBjbGFzcyBNU0xCYWNrZW5kIHsKICAgICAg
ICAgYWRkU2VjdGlvbigiRm9yd2FyZCB0eXBlIGRlY2xhcmF0aW9ucyIsIHRoaXMuX2ZvcndhcmRU
eXBlRGVjbHMpOwogICAgICAgICBhZGRTZWN0aW9uKCJUeXBlIGRlZmluaXRpb25zIiwgdGhpcy5f
dHlwZURlZmluaXRpb25zKTsKICAgICAgICAgYWRkU2VjdGlvbigiRm9yd2FyZCBmdW5jdGlvbiBk
ZWNsYXJhdGlvbnMiLCB0aGlzLl9mb3J3YXJkRnVuY3Rpb25EZWNscyk7Ci0gICAgICAgIGFkZFNl
Y3Rpb24oIkZ1bmN0aW9uIGRlZmluaXRpb25zIiwgdGhpcy5fZnVuY3Rpb25EZWZpbnRpb25zKTsK
KyAgICAgICAgYWRkU2VjdGlvbigiRW50cnkgcG9pbnQgZm9yd2FyZCBmdW5jdGlvbiBkZWNsYXJh
dGlvbnMiLCB0aGlzLl9lbnRyeVBvaW50RnVuY3Rpb25EZWNscyk7CisgICAgICAgIGFkZFNlY3Rp
b24oIkZ1bmN0aW9uIGRlZmluaXRpb25zIiwgdGhpcy5fZnVuY3Rpb25EZWZpbml0aW9ucyk7Cisg
ICAgICAgIGFkZFNlY3Rpb24oIkVudHJ5IHBvaW50IGRlZmluaXRpb25zIiwgdGhpcy5fZW50cnlQ
b2ludEZ1bmN0aW9uRGVmaW5pdGlvbnMpOwogCiAgICAgICAgIGlmICghdGhpcy5fYWxsb3dDb21t
ZW50cykKICAgICAgICAgICAgIG91dHB1dFN0ciA9IHRoaXMuX3JlbW92ZUNvbW1lbnRzQW5kRW1w
dHlMaW5lcyhvdXRwdXRTdHIpOwpAQCAtMTU4LDggKzE2NywxNiBAQCBjbGFzcyBNU0xCYWNrZW5k
IHsKICAgICBfY3JlYXRlRnVuY3Rpb25EZWNscyh1bmlmaWVkRnVuY3Rpb25EZWZzKQogICAgIHsK
ICAgICAgICAgZm9yIChsZXQgZnVuYyBvZiB1bmlmaWVkRnVuY3Rpb25EZWZzKSB7CisgICAgICAg
ICAgICBpZiAoZnVuYy5wc2V1ZG9OYXRpdmVDYWxsKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgdGhpcy5fZm9yd2FyZEZ1bmN0aW9uRGVjbHMucHVzaChuZXcgTVNMRnVu
Y3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24odGhpcy5wcm9ncmFtLCB0aGlzLl9mdW5jTmFtZU1hbmds
ZXIsIGZ1bmMsIHRoaXMuX3R5cGVVbmlmaWVyLCB0aGlzLl9hbGxUeXBlQXR0cmlidXRlcykpOwot
ICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25EZWZpbnRpb25zLnB1c2gobmV3IE1TTEZ1bmN0aW9u
RGVmaW5pdGlvbih0aGlzLnByb2dyYW0sIHRoaXMuX2Z1bmNOYW1lTWFuZ2xlciwgZnVuYywgdGhp
cy5fdHlwZVVuaWZpZXIsIHRoaXMuX2FsbFR5cGVBdHRyaWJ1dGVzKSk7CisgICAgICAgICAgICB0
aGlzLl9mdW5jdGlvbkRlZmluaXRpb25zLnB1c2gobmV3IE1TTEZ1bmN0aW9uRGVmaW5pdGlvbih0
aGlzLnByb2dyYW0sIHRoaXMuX2Z1bmNOYW1lTWFuZ2xlciwgZnVuYywgdGhpcy5fdHlwZVVuaWZp
ZXIsIHRoaXMuX2FsbFR5cGVBdHRyaWJ1dGVzKSk7CisKKyAgICAgICAgICAgIGlmIChmdW5jLmlz
RW50cnlQb2ludCAmJiBmdW5jLnNoYWRlclR5cGUgIT0gInRlc3QiKSB7CisgICAgICAgICAgICAg
ICAgY29uc3QgY2FsbGVyID0gbmV3IE1TTEVudHJ5UG9pbnQodGhpcy5wcm9ncmFtLCB0aGlzLl9m
dW5jTmFtZU1hbmdsZXIsIGZ1bmMsIHRoaXMuX3R5cGVVbmlmaWVyLCB0aGlzLl9hbGxUeXBlQXR0
cmlidXRlcyk7CisgICAgICAgICAgICAgICAgdGhpcy5fZW50cnlQb2ludEZ1bmN0aW9uRGVjbHMu
cHVzaChjYWxsZXIuZGVjbGFyYXRpb25MaW5lKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbnRy
eVBvaW50RnVuY3Rpb25EZWZpbml0aW9ucy5wdXNoKGNhbGxlci5kZWZpbml0aW9uKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMzMwLDE1ICszNDcsNzQgQEAgY2xhc3Mg
TVNMQmFja2VuZCB7CiAgICAgICAgICAgICBjb25zdCBtYW5nbGVkRmllbGROYW1lID0gc3RydWN0
VHlwZUF0dHJpYnV0ZXMubWFuZ2xlZEZpZWxkTmFtZShmaWVsZE5hbWUpOwogICAgICAgICAgICAg
c3JjICs9IGAgICAgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQoZmllbGQudHlwZSl9
ICR7bWFuZ2xlZEZpZWxkTmFtZX1gOwogCi0gICAgICAgICAgICBjb25zdCBhbm5vdGF0aW9ucyA9
IFtdOwotICAgICAgICAgICAgaWYgKHN0cnVjdFR5cGVBdHRyaWJ1dGVzLmlzVmVydGV4QXR0cmli
dXRlKQotICAgICAgICAgICAgICAgIGFubm90YXRpb25zLnB1c2goYGF0dHJpYnV0ZSgke2luZGV4
Kyt9KWApOwotICAgICAgICAgICAgaWYgKHN0cnVjdFR5cGVBdHRyaWJ1dGVzLmlzVmVydGV4T3V0
cHV0T3JGcmFnbWVudElucHV0ICYmIGZpZWxkTmFtZSA9PT0gIndzbF9Qb3NpdGlvbiIpCi0gICAg
ICAgICAgICAgICAgYW5ub3RhdGlvbnMucHVzaCgicG9zaXRpb24iKTsKLSAgICAgICAgICAgIGlm
IChzdHJ1Y3RUeXBlQXR0cmlidXRlcy5pc0ZyYWdtZW50T3V0cHV0ICYmIGZpZWxkTmFtZSA9PT0g
IndzbF9Db2xvciIpCi0gICAgICAgICAgICAgICAgYW5ub3RhdGlvbnMucHVzaCgiY29sb3IoMCki
KTsKLSAgICAgICAgICAgIGlmIChhbm5vdGF0aW9ucy5sZW5ndGgpCi0gICAgICAgICAgICAgICAg
c3JjICs9IGAgW1ske2Fubm90YXRpb25zLmpvaW4oIiwgIil9XV1gOworICAgICAgICAgICAgaWYg
KHN0cnVjdFR5cGUuaXNFbnRyeVBvaW50U3RhZ2VJblR5cGUpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZmllbGQuc2VtYW50aWMgaW5zdGFuY2VvZiBTdGFnZUluT3V0U2VtYW50aWMpCisgICAgICAg
ICAgICAgICAgICAgIHNyYyArPSBgIFtbYXR0cmlidXRlKCR7ZmllbGQuc2VtYW50aWMuaW5kZXh9
KV1dYDsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChmaWVsZC5zZW1hbnRpYyBpbnN0YW5jZW9m
IEJ1aWx0SW5TZW1hbnRpYykgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpZWxkLnNl
bWFudGljLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiU1ZfSW5zdGFuY2VJRCI6
CisgICAgICAgICAgICAgICAgICAgICAgICBzcmMgKz0gYCBbW2luc3RhbmNlX2lkXV1gOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgIlNW
X1ZlcnRleElEIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyArPSBgIFtbdmVydGV4X2lk
XV1gOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgIlBTSVpFIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDaGVjayB0
aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgc3JjICs9IGAgW1twb2ludF9zaXplXV1gOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
IlNWX1Bvc2l0aW9uIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyArPSBgIFtbcG9zaXRp
b25dXWA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSAiU1ZfSXNGcm9udEZhY2UiOgorICAgICAgICAgICAgICAgICAgICAgICAgc3JjICs9
IGAgW1tmcm9udF9mYWNpbmddXWA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSAiU1ZfU2FtcGxlSW5kZXgiOgorICAgICAgICAgICAgICAg
ICAgICAgICAgc3JjICs9IGAgW1tzYW1wbGVfaWRdXWA7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSAiU1ZfSW5uZXJDb3ZlcmFnZSI6
CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXb3JrIG91dCB3aGF0IHRoaXMgb25lIGlz
LgorICAgICAgICAgICAgICAgICAgICAvLyAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgIlNWX1RhcmdldCI6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhp
cyBpcyBwcm9iYWJseSB3aWxkbHkgdW5zYWZlIGxvbC4KKyAgICAgICAgICAgICAgICAgICAgICAg
IHNyYyArPSBgIFtbY29sb3IoJHtmaWVsZC5zZW1hbnRpYy5leHRyYUFyZ3VtZW50cy5sZW5ndGgg
PyBmaWVsZC5zZW1hbnRpYy5leHRyYUFyZ3VtZW50c1swXSA6ICIwIn0pXV1gOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIC8vIEkgbmVlZCB0byBm
aWd1cmUKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiU1ZfRGVwdGgiOgorICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEVzdGFibGlzaCB3aGljaCBkZXB0aCBhcmd1bWVudCB3ZSBh
Y3R1YWxseSB3YW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZGVwdGggYXJndW1l
bnQgY2FuIGJlIGFueSwgZ3JlYXRlciwgbGVzcworICAgICAgICAgICAgICAgICAgICAgICAgc3Jj
ICs9IGAgW1tkZXB0aChhbnkpXV1gOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIGNhc2UgIlNWX0NvdmVyYWdlIjoKKyAgICAgICAgICAgICAg
ICAgICAgLy8gICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmluc2ljcy51aW50OworICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IGZvciBjb21wdXRlIHNoYWRlcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODk2MTMKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSAiU1Zf
RGlzcGF0Y2hUaHJlYWRJRCI6CisgICAgICAgICAgICAgICAgICAgIC8vICAgICByZXF1aXJlZFR5
cGUgPSBwcm9ncmFtLmludHJpbnNpY3NbInZlY3Rvcjx1aW50LCAzPiJdOworICAgICAgICAgICAg
ICAgICAgICAvLyAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIC8vIGNhc2UgIlNWX0dy
b3VwSUQiOgorICAgICAgICAgICAgICAgICAgICAvLyAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3Jh
bS5pbnRyaW5zaWNzWyJ2ZWN0b3I8dWludCwgMz4iXTsKKyAgICAgICAgICAgICAgICAgICAgLy8g
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyBjYXNlICJTVl9Hcm91cEluZGV4IjoK
KyAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJlcXVpcmVkVHlwZSA9IHByb2dyYW0uaW50cmlu
c2ljcy51aW50OworICAgICAgICAgICAgICAgICAgICAvLyAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIC8vIGNhc2UgIlNWX0dyb3VwVGhyZWFkSUQiOgorICAgICAgICAgICAgICAgICAg
ICAvLyAgICAgcmVxdWlyZWRUeXBlID0gcHJvZ3JhbS5pbnRyaW5zaWNzWyJ2ZWN0b3I8dWludCwg
Mz4iXTsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBV
bmtub3duIHNlbWFudGljOiAke3RoaXMubmFtZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY29uc3Qg
YW5ub3RhdGlvbnMgPSBbXTsKKyAgICAgICAgICAgIC8vIGlmIChzdHJ1Y3RUeXBlQXR0cmlidXRl
cy5pc1ZlcnRleEF0dHJpYnV0ZSkKKyAgICAgICAgICAgIC8vICAgICBhbm5vdGF0aW9ucy5wdXNo
KGBhdHRyaWJ1dGUoJHtpbmRleCsrfSlgKTsKKyAgICAgICAgICAgIC8vIGlmIChzdHJ1Y3RUeXBl
QXR0cmlidXRlcy5pc1ZlcnRleE91dHB1dE9yRnJhZ21lbnRJbnB1dCAmJiBmaWVsZE5hbWUgPT09
ICJ3c2xfUG9zaXRpb24iKQorICAgICAgICAgICAgLy8gICAgIGFubm90YXRpb25zLnB1c2goInBv
c2l0aW9uIik7CisgICAgICAgICAgICAvLyBpZiAoc3RydWN0VHlwZUF0dHJpYnV0ZXMuaXNGcmFn
bWVudE91dHB1dCAmJiBmaWVsZE5hbWUgPT09ICJ3c2xfQ29sb3IiKQorICAgICAgICAgICAgLy8g
ICAgIGFubm90YXRpb25zLnB1c2goImNvbG9yKDApIik7CisgICAgICAgICAgICAvLyBpZiAoYW5u
b3RhdGlvbnMubGVuZ3RoKQorICAgICAgICAgICAgLy8gICAgIHNyYyArPSBgIFtbJHthbm5vdGF0
aW9ucy5qb2luKCIsICIpfV1dYDsKICAgICAgICAgICAgIHNyYyArPSBgOyAvLyAke2ZpZWxkTmFt
ZX0gKCR7ZmllbGQudHlwZX0pIFxuYDsKICAgICAgICAgfQogCkBAIC0zNTYsOCArNDMyLDQyIEBA
IGNsYXNzIE1TTEJhY2tlbmQgewogICAgICAgICAgICAgcmV0dXJuIGB0eXBlZGVmICR7bm9kZS5h
ZGRyZXNzU3BhY2V9ICR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKG5vZGUuZWxlbWVu
dFR5cGUpfSAoKiR7bmFtZX0pO2A7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgY2xhc3Mg
TmF0aXZlVHlwZU5hbWVWaXNpdG9yIGV4dGVuZHMgVmlzaXRvciB7CisgICAgICAgICAgICAgICAg
X3RleHR1cmVUeXBlTmFtZShub2RlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgY29uc3QgdGV4dHVyZVR5cGVOYW1lcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJUZXh0dXJlMUQiOiAidGV4dHVyZTFkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJSV1Rl
eHR1cmUxRCI6ICJ0ZXh0dXJlMWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlRleHR1cmUx
REFycmF5IiA6ICJ0ZXh0dXJlMWRfYXJyYXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlJX
VGV4dHVyZTFEQXJyYXkiOiAidGV4dHVyZTFkX2FycmF5IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJUZXh0dXJlMkQiOiAidGV4dHVyZTJkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJS
V1RleHR1cmUyRCI6ICJ0ZXh0dXJlMmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlRleHR1
cmUyREFycmF5IjogInRleHR1cmUyZF9hcnJheSIsCisgICAgICAgICAgICAgICAgICAgICAgICAi
UldUZXh0dXJlMkRBcnJheSI6ICJ0ZXh0dXJlMmRfYXJyYXkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIlRleHR1cmUzRCI6ICJ0ZXh0dXJlM2QiLAorICAgICAgICAgICAgICAgICAgICAgICAg
IlJXVGV4dHVyZTNEIjogInRleHR1cmUzZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAiVGV4
dHVyZUN1YmUiOiAidGV4dHVyZWN1YmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IFZlcmlmeSBlYWNoIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJUZXh0dXJlRGVwdGgyRCI6ICJ0ZXh0dXJlMmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
IlJXVGV4dHVyZURlcHRoMkQiOiAidGV4dHVyZTJkIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJUZXh0dXJlRGVwdGgyREFycmF5IjogInRleHR1cmUyZF9hcnJheSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAiUldUZXh0dXJlRGVwdGgyREFycmF5IjogInRleHR1cmUyZF9hcnJheSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAiVGV4dHVyZURlcHRoQ3ViZSI6ICJkZXB0aGN1YmUiCisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGlmICghKG5vZGUubmFt
ZSBpbiB0ZXh0dXJlVHlwZU5hbWVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBu
dWxsOworICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbWV0ZXJUeXBlID0gdHlwZU9mKG5v
ZGUudHlwZUFyZ3VtZW50c1swXSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgvXlJXLy50ZXN0
KG5vZGUubmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGV4dHVyZVR5
cGVOYW1lc1tub2RlLm5hbWVdfTwke3BhcmFtZXRlclR5cGUudmlzaXQodGhpcyl9LCBhY2Nlc3M6
OnJlYWRfd3JpdGU+YDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGAke3RleHR1cmVUeXBlTmFtZXNbbm9kZS5uYW1lXX08JHtwYXJhbWV0
ZXJUeXBlLnZpc2l0KHRoaXMpfT5gOworICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg
ICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdGV4dHVyZVR5cGUgPSB0aGlzLl90ZXh0dXJlVHlwZU5hbWUobm9kZSk7
CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0dXJlVHlwZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0ZXh0dXJlVHlwZTsKKwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogQWxzbyBhZGQgc2FtcGxlcnMgYW5kIHRleHR1cmVzIGhlcmUuCiAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IG5hdGl2ZVR5cGVOYW1lTWFwID0gewogICAgICAgICAgICAgICAgICAgICAgICAg
InZvaWQiOiAidm9pZCIsCkBAIC0zNzEsNyArNDgxLDggQEAgY2xhc3MgTVNMQmFja2VuZCB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAiaGFsZiI6ICJoYWxmIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICJmbG9hdCI6ICJmbG9hdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiYXRvbWlj
X2ludCI6ICJhdG9taWNfaW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJhdG9taWNfdWlu
dCI6ICJhdG9taWNfdWludCIKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdG9taWNfdWludCI6
ICJhdG9taWNfdWludCIsCisgICAgICAgICAgICAgICAgICAgICAgICAic2FtcGxlciI6ICJzYW1w
bGVyIgogICAgICAgICAgICAgICAgICAgICB9OwogCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBuYXRpdmVUeXBlTmFtZU1hcFtub2RlLm5hbWVdOwpAQCAtNDIwLDMgKzUzMSwxOTIgQEAgY2xh
c3MgTVNMQmFja2VuZCB7CiAgICAgICAgIH0KICAgICB9CiB9CisKKy8vIEZJWE1FOiBUaGlzIGRv
ZXNuJ3QgeWV0IHN1cHBvcnQgc3BlY2lhbGl6YXRpb24gY29uc3RhbnRzLgorY2xhc3MgTVNMRW50
cnlQb2ludAoreworICAgIGNvbnN0cnVjdG9yKHByb2dyYW0sIGZ1bmNOYW1lTWFuZ2xlciwgZnVu
YywgdHlwZVVuaWZpZXIsIGFsbFR5cGVBdHRyaWJ1dGVzKQorICAgIHsKKyAgICAgICAgdGhpcy5f
cHJvZ3JhbSA9IHByb2dyYW07CisgICAgICAgIHRoaXMuX2Z1bmNOYW1lTWFuZ2xlciA9IGZ1bmNO
YW1lTWFuZ2xlcjsKKyAgICAgICAgdGhpcy5fZnVuYyA9IGZ1bmM7CisgICAgICAgIHRoaXMuX3R5
cGVVbmlmaWVyID0gdHlwZVVuaWZpZXI7CisgICAgICAgIHRoaXMuX2FsbFR5cGVBdHRyaWJ1dGVz
ID0gYWxsVHlwZUF0dHJpYnV0ZXM7CisgICAgICAgIHRoaXMuX2RlY2xhcmF0aW9uVmFsdWUgPSBu
dWxsOworICAgICAgICB0aGlzLl9kZWZpbml0aW9uID0gbnVsbDsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogQ291bGQganVzdCBwdXQgYWxsIG9mIHRoZXNlIGF0IHRoZSBib3R0b20gYW5kIHRoZW4g
eW91IHdvdWxkbid0IG5lZWQgdG8gZG8gZm9yd2FyZCBkZWNsYXJhdGlvbnMuCisgICAgX2RlY2xh
cmF0aW9uKCkKKyAgICB7CisKKyAgICAgICAgaWYgKHRoaXMuX2RlY2xhcmF0aW9uVmFsdWUpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyYXRpb25WYWx1ZTsKKworICAgICAgICBsZXQg
c3JjID0gIiI7CisgICAgICAgIHN3aXRjaCAodGhpcy5fZnVuYy5zaGFkZXJUeXBlKSB7CisgICAg
ICAgIGNhc2UgInZlcnRleCI6CisgICAgICAgICAgICBzcmMgKz0gInZlcnRleCAiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImZyYWdtZW50IjoKKyAgICAgICAgICAgIHNyYyAr
PSAiZnJhZ21lbnQgIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTdXBwb3J0IGZvciBzaGFkZXIgdHlwZXMgb3RoZXIg
dGhhbiB2ZXJ0ZXggYW5kIGZyYWdtZW50IGlzIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLiIpOwor
ICAgICAgICAgICAgYnJlYWs7IC8vIEZJWE1FOiBOZWNlc3Nhcnk/CisgICAgICAgIH0KKyAgICAg
ICAgc3JjICs9IGAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZCh0aGlzLl9mdW5jLnJl
dHVyblR5cGUpfSBgOworICAgICAgICAvLyBQcmVmYWNlIHRoZSBuYW1lIG9mIHRoZSBzaGFkZXIg
Ym9keSB3aXRoIGFuIHVuZGVyc2NvcmUuCisgICAgICAgIHNyYyArPSBgXyR7dGhpcy5fZnVuY05h
bWVNYW5nbGVyLm1hbmdsZSh0aGlzLl9mdW5jKX1gOworICAgICAgICBzcmMgKz0gIigiOworICAg
ICAgICBjb25zdCBwYXJhbXMgPSBbXTsKKyAgICAgICAgbGV0IHBJbmRleCA9IDA7CisgICAgICAg
IC8vIEkgaGF2ZW4ndCB2ZXJpZmllZCBob3cgTWV0YWwgYmVoYXZlcyB3aXRoIHplcm8tc2l6ZWQg
YXR0cmlidXRlcy9zdGFnZV9pbiBzbyBJJ20gZG9pbmcgdGhpcyBhcyBhIHNhbml0eSBjaGVjay4K
KyAgICAgICAgaWYgKHRoaXMuX2Z1bmMuc3RhZ2VJblN0cnVjdFR5cGUuZmllbGRNYXAuc2l6ZSkK
KyAgICAgICAgICAgIHBhcmFtcy5wdXNoKGAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJ
ZCh0aGlzLl9mdW5jLnN0YWdlSW5TdHJ1Y3RUeXBlKX0gUCR7cEluZGV4Kyt9IFtbc3RhZ2VfaW5d
XWApOworCisgICAgICAgIC8vIFRoaXMgaXMgZm9yIHRoZSBsZW5ndGggb2YgYXJyYXkgcmVmcywg
d2hpY2ggaXMgcGFzc2VkIGluIHNlcGFyYXRlbHkuCisgICAgICAgIC8vIEZJWE1FOiBCdWZmZXIg
aW5kZXhlcyBkb24ndCBoYXZlIHRvIGJlIHNlcXVlbnRpYWwsIHNvIEkgbmVlZCB0byBjb25zaWRl
ciBhbGwgb2YgdGhlIGluZGV4ZXMgdGhhdCB3ZXJlIHNlbGVjdGVkIGZvciB0aGUgY29uc3RhbnQg
c3BhY2Ugc28gdGhhdCBJIGRvbid0IHJ1ZXVzZSB0aGVtLgorICAgICAgICBsZXQgbGVuZ3RoQnVm
ZmVySW5kZXggPSB0aGlzLl9mdW5jLnJlc291cmNlQnVmZmVyc0FuZFRleHR1cmVzLnNpemU7Cisg
ICAgICAgIHRoaXMuX3BhdGhUb0J1ZmZlcnNPclNhbXBsZXJzT3JUZXh0dXJlcyA9IG5ldyBNYXAo
KTsKKworICAgICAgICAvLyBUaGlzIGRvZXNuJ3QgYWNjb3VudCBmb3IgYXJyYXlzIHByb3Blcmx5
LgorICAgICAgICBmb3IgKGxldCBbIHBhdGgsIHNlbWFudGljIF0gb2YgdGhpcy5fZnVuYy5yZXNv
dXJjZUJ1ZmZlcnNBbmRUZXh0dXJlcykgeworICAgICAgICAgICAgY29uc3QgYnVmZmVyT3JUZXh0
dXJlVHlwZSA9IHR5cGVPZihwYXRoW3BhdGgubGVuZ3RoIC0gMV0pOworICAgICAgICAgICAgLy8g
Q3VyaW91c2x5LCB0aGlzIGNvdWxkIGJlIGEgdGV4dHVyZSBhcnJheSByZWYuCisgICAgICAgICAg
ICBpZiAoYnVmZmVyT3JUZXh0dXJlVHlwZS5pc0FycmF5UmVmKSB7CisgICAgICAgICAgICAgICAg
Y29uc3QgdGhpc1BJbmRleCA9IHBJbmRleDsKKyAgICAgICAgICAgICAgICAvLyBJIGRvIHRoaXMg
aW4gYSBmZXcgcGxhY2VzOyBtYXliZSBpdCB3b3VsZCBuaWNlIHRvIGFkZCBhIG1ldGhvZCBmb3Ig
dGhpcy4KKyAgICAgICAgICAgICAgICBjb25zdCBwb2ludGVyVHlwZSA9IG5ldyBQdHJUeXBlKGJ1
ZmZlck9yVGV4dHVyZVR5cGUub3JpZ2luLCBidWZmZXJPclRleHR1cmVUeXBlLmFkZHJlc3NTcGFj
ZSwgYnVmZmVyT3JUZXh0dXJlVHlwZS5lbGVtZW50VHlwZSk7CisgICAgICAgICAgICAgICAgbGV0
IHBhcmFtU3JjID0gYCR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKHBvaW50ZXJUeXBl
KX0gUCR7cEluZGV4Kyt9YDsKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBWZXJpZnkgdGhhdCBp
dCBpcyBzYWZlIHRvIG91dHB1dCBhbGwgb2YgdGhlIGFkZHJlc3Mgc3BhY2VzIGxpa2UgdGhpcy4K
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlbWFudGljLnJlc291cmNlTW9kZSkgeworICAgICAg
ICAgICAgICAgIGNhc2UgImIiOgorICAgICAgICAgICAgICAgIGNhc2UgInUiOgorICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogVmVyaWZ5IHRoYXQgdW5vcmRlcmVkIGFjY2VzcyB2aWV3cyAo
dSkgYXJlIHBhc3NlZCBhcyBidWZmZXJzLgorICAgICAgICAgICAgICAgICAgICBwYXJhbVNyYyAr
PSBgIFtbYnVmZmVyKCR7c2VtYW50aWMuaW5kZXh9KV1dYDsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAicyI6CisgICAgICAgICAgICAgICAgICAgIHBh
cmFtU3JjICs9IGAgW1tzYW1wbGVyKCR7c2VtYW50aWMuaW5kZXh9KV1dYDsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAidCI6CisgICAgICAgICAgICAg
ICAgICAgIHBhcmFtU3JjICs9IGAgW1t0ZXh0dXJlKCR7c2VtYW50aWMuaW5kZXh9KV1dYDsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGJhZCIpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBwYXJhbXMucHVzaChwYXJhbVNyYyk7CisgICAgICAgICAg
ICAgICAgLy8gQWxzbyBuZWVkIHRvIHBhc3MgaW4gdGhlIGxlbmd0aAorICAgICAgICAgICAgICAg
IHBhcmFtcy5wdXNoKGBjb25zdGFudCB1aW50MzJfdCogUCR7dGhpc1BJbmRleH1fc2l6ZSBbW2J1
ZmZlcigke2xlbmd0aEJ1ZmZlckluZGV4Kyt9KV1dYCk7CisgICAgICAgICAgICAgICAgdGhpcy5f
cGF0aFRvQnVmZmVyc09yU2FtcGxlcnNPclRleHR1cmVzLnNldChwYXRoLCBbIGBQJHt0aGlzUElu
ZGV4fWAsIGBQJHt0aGlzUEluZGV4fV9zaXplYCBdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgLy8gaWYgKGJ1ZmZlck9yVGV4dHVyZVR5cGUuaXNBcnJheSkgeworICAg
ICAgICAgICAgICAgIC8vICAgICBidWZmZXJPclRleHR1cmVUeXBlID0KKyAgICAgICAgICAgICAg
ICAvLyB9CisgICAgICAgICAgICAgICAgdGhpcy5fcGF0aFRvQnVmZmVyc09yU2FtcGxlcnNPclRl
eHR1cmVzLnNldChwYXRoLCBbIGBQJHtwSW5kZXh9YCBdKTsKKyAgICAgICAgICAgICAgICBsZXQg
cGFyYW1TcmMgPSBgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQoYnVmZmVyT3JUZXh0
dXJlVHlwZSl9IFAke3BJbmRleCsrfWA7CisgICAgICAgICAgICAgICAgc3dpdGNoIChzZW1hbnRp
Yy5yZXNvdXJjZU1vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlICJiIjoKKyAgICAgICAgICAg
ICAgICBjYXNlICJ1IjoKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFZlcmlmeSB0aGF0
IHVub3JkZXJlZCBhY2Nlc3Mgdmlld3MgKHUpIGFyZSBwYXNzZWQgYXMgYnVmZmVycy4KKyAgICAg
ICAgICAgICAgICAgICAgcGFyYW1TcmMgKz0gYCBbW2J1ZmZlcigke3NlbWFudGljLmluZGV4fSld
XWA7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgInMi
OgorICAgICAgICAgICAgICAgICAgICBwYXJhbVNyYyArPSBgIFtbc2FtcGxlcigke3NlbWFudGlj
LmluZGV4fSldXWA7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgInQiOgorICAgICAgICAgICAgICAgICAgICBwYXJhbVNyYyArPSBgIFtbdGV4dHVyZSgk
e3NlbWFudGljLmluZGV4fSldXWA7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
dGhpcyBiYWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFyYW1zLnB1
c2gocGFyYW1TcmMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc3JjICs9
IHBhcmFtcy5qb2luKCIsICIpOworCisgICAgICAgIHNyYyArPSAiKSI7CisgICAgICAgIHRoaXMu
X2RlY2xhcmF0aW9uVmFsdWUgPSBzcmM7CisgICAgICAgIHJldHVybiBzcmM7CisgICAgfQorCisg
ICAgZ2V0IGRlY2xhcmF0aW9uTGluZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZGVj
bGFyYXRpb24oKSArICI7IjsKKyAgICB9CisKKyAgICBnZXQgZGVmaW5pdGlvbigpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5fZGVmaW50aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rl
ZmludGlvbjsKKyAgICAgICAgbGV0IHNyYyA9IGAke3RoaXMuX2RlY2xhcmF0aW9uKCl9XG57XG5g
OworICAgICAgICAvLyBCYXNpY2FsbHkgbmVlZHMgdG8gY29uc3RydWN0IHN0cnVjdHMgYW5kIGFy
cmF5IHJlZnMsIGFuZCB0aGVuIHBhc3MgdGhlbSBvbgorICAgICAgICBsZXQgaSA9IDA7CisgICAg
ICAgIGNvbnN0IGFyZ3VtZW50c1RvUmVhbEZ1bmN0aW9uID0gW107CisgICAgICAgIGNvbnN0IHBh
cmFtVG9JbmRleE1hcCA9IG5ldyBNYXAoKTsKKyAgICAgICAgZm9yIChsZXQgcGFyYW0gb2YgdGhp
cy5fZnVuYy5wYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBwYXJhbVRvSW5kZXhNYXAuc2V0KHBh
cmFtLCBpKTsKKyAgICAgICAgICAgIGNvbnN0IHZhck5hbWUgPSBgViR7aSsrfWA7CisgICAgICAg
ICAgICBzcmMgKz0gYCAgICAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZChwYXJhbS50
eXBlKX0gJHt2YXJOYW1lfTtcbmA7CisgICAgICAgICAgICBhcmd1bWVudHNUb1JlYWxGdW5jdGlv
bi5wdXNoKHZhck5hbWUpOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLl9mdW5jLnNoYWRl
clR5cGUgPT0gInZlcnRleCIpIHsKKyAgICAgICAgICAgIC8vIFRPRE86IEFyZSB0aGVzZSBwYXRo
cyB0aGUgc2FtZSBjb25jZXB0IGFzIGxlbnNlcz8KKyAgICAgICAgICAgIGZvciAobGV0IFsgcGF0
aCwgZmllbGQgXSBvZiB0aGlzLl9mdW5jLnBhdGhUb0ZpZWxkTWFwKSB7CisgICAgICAgICAgICAg
ICAgbGV0IGZ1bGxQYXRoU3RyID0gIiI7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgcGF0aEVs
ZW1lbnQgb2YgcGF0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocGF0aEVsZW1lbnQgaW5z
dGFuY2VvZiBGdW5jUGFyYW1ldGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFBhdGhT
dHIgKz0gYFYke3BhcmFtVG9JbmRleE1hcC5nZXQocGF0aEVsZW1lbnQpfWA7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKHBhdGhFbGVtZW50IGluc3RhbmNlb2YgRmllbGQpCisgICAgICAg
ICAgICAgICAgICAgICAgICBmdWxsUGF0aFN0ciArPSBgLiR7dGhpcy5fYWxsVHlwZUF0dHJpYnV0
ZXMuYXR0cmlidXRlc0ZvclR5cGUocGF0aEVsZW1lbnQuc3RydWN0KS5tYW5nbGVkRmllbGROYW1l
KHBhdGhFbGVtZW50Lm5hbWUpfWA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IC8vIEl0IHdpbGwgYWx3YXlzIGJlIFAwLCBidXQgSSBzaG91bGQgcmVhbGx5IGNoYW5nZSB0aGlz
LgorICAgICAgICAgICAgICAgIGNvbnN0IG1hbmdsZWRGaWVsZE5hbWUgPSB0aGlzLl9hbGxUeXBl
QXR0cmlidXRlcy5hdHRyaWJ1dGVzRm9yVHlwZSh0aGlzLl9mdW5jLnN0YWdlSW5TdHJ1Y3RUeXBl
KS5tYW5nbGVkRmllbGROYW1lKGZpZWxkLm5hbWUpOworICAgICAgICAgICAgICAgIGNvbnN0IGZp
ZWxkVHlwZSA9IHR5cGVPZihmaWVsZCk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEkgZG9u
J3QgdGhpbmsgdGhpcyBzaG91bGQgYmUgYWxsb3dlZC4KKyAgICAgICAgICAgICAgICBpZiAoZmll
bGRUeXBlLmlzQXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCBmaWVsZFR5cGUubnVtRWxlbWVudHMudmFsdWU7IGkrKykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNyYyArPSBgICAgICR7ZnVsbFBhdGhTdHJ9WyR7aX1dID0gUDAuJHttYW5nbGVkRmllbGRO
YW1lfVske2l9XTtcbmA7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHNyYyArPSBgICAgICR7ZnVsbFBhdGhTdHJ9ID0gUDAuJHttYW5nbGVkRmllbGROYW1lfTtc
bmA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGxl
dCBwYXJhbSBvZiB0aGlzLl9mdW5jLnBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXBhcmFtLnNlbWFudGljIHx8IHBhcmFtLnNlbWFudGljIGluc3RhbmNlb2YgU3RhZ2VJbk91dFNl
bWFudGljKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYyArPSBgICAgIFYke3BhcmFtVG9JbmRl
eE1hcC5nZXQocGFyYW0pfSA9IFAwO1xuYDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9y
IChsZXQgWyBwYXRoLCBwYXJhbXMgXSBvZiB0aGlzLl9wYXRoVG9CdWZmZXJzT3JTYW1wbGVyc09y
VGV4dHVyZXMpIHsKKyAgICAgICAgICAgIGxldCBmdWxsUGF0aFN0ciA9ICIiOworICAgICAgICAg
ICAgZm9yIChsZXQgcGF0aEVsZW1lbnQgb2YgcGF0aCkgeworICAgICAgICAgICAgICAgIGlmIChw
YXRoRWxlbWVudCBpbnN0YW5jZW9mIEZ1bmNQYXJhbWV0ZXIpCisgICAgICAgICAgICAgICAgICAg
IGZ1bGxQYXRoU3RyICs9IGBWJHtwYXJhbVRvSW5kZXhNYXAuZ2V0KHBhdGhFbGVtZW50KX1gOwor
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBhdGhFbGVtZW50IGluc3RhbmNlb2YgRmllbGQpCisg
ICAgICAgICAgICAgICAgICAgIGZ1bGxQYXRoU3RyICs9IGAuJHt0aGlzLl9hbGxUeXBlQXR0cmli
dXRlcy5hdHRyaWJ1dGVzRm9yVHlwZShwYXRoRWxlbWVudC5zdHJ1Y3QpLm1hbmdsZWRGaWVsZE5h
bWUocGF0aEVsZW1lbnQubmFtZSl9YDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0
IHR5cGUgPSB0eXBlT2YocGF0aFtwYXRoLmxlbmd0aCAtIDFdKTsKKyAgICAgICAgICAgIGlmICh0
eXBlLmlzQXJyYXlSZWYpIHsKKyAgICAgICAgICAgICAgICBzcmMgKz0gYCAgICAke2Z1bGxQYXRo
U3RyfS5wdHIgPSAke3BhcmFtc1swXX07XG5gOworICAgICAgICAgICAgICAgIC8vIFdlIGdldCBw
YXNzZWQgYSBwb2ludGVyLCBzbyB3ZSBoYXZlIHRvIGRlcmVmZW5jZSBpdC4KKyAgICAgICAgICAg
ICAgICAvLyBUT0RPOiBWZXJpZnkgdGhhdCB0aGlzIGlzIHNhZmUuIEluIHRoZW9yeSB0aGlzIHBv
aW50ZXIgc2hvdWxkIGhhdmUgb25seSBiZSBpbml0aWFsaXplZCBieSB0aGUgQVBJIGl0c2VsZiwg
c28gaXQgc2hvdWxkbid0IGV2ZXIgYmUgbnVsbC4gSWYgdGhpcyBjb3VsZCBldmVyIHBvc3NpYmx5
IGJlIHRoZSBjYXNlIHdlIHNob3VsZCBkZXJlZmVyZW5jZSBpdC4KKyAgICAgICAgICAgICAgICBz
cmMgKz0gYCAgICAke2Z1bGxQYXRoU3RyfS5sZW5ndGggPSAqJHtwYXJhbXNbMV19O1xuYDsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFByb2JhYmx5IGhh
bmRsZSB0aGUgYXJyYXkgY2FzZSBhcyB3ZWxsCisgICAgICAgICAgICAgICAgc3JjICs9IGAgICAg
JHtmdWxsUGF0aFN0cn0gPSAke3BhcmFtc1swXX07XG5gOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgc3JjICs9IGAgICAgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBl
SWQodGhpcy5fZnVuYy5yZXR1cm5UeXBlKX0gcmVzdWx0ID0gYDsKKyAgICAgICAgc3JjICs9IGAk
e3RoaXMuX2Z1bmNOYW1lTWFuZ2xlci5tYW5nbGUodGhpcy5fZnVuYyl9KCR7YXJndW1lbnRzVG9S
ZWFsRnVuY3Rpb24uam9pbigiLCAiKX0pO1xuYDsKKyAgICAgICAgLy8gQSBuZXcgdHlwZSBuZWVk
cyB0byBiZSBpbnRyb2R1Y2VkIHRoYXQgd3JhcHMgdGhlIHJldHVybiB0eXBlIG9mIHRoaXMgZnVu
Y3Rpb24gc28gdGhhdCBzdHVmZiBsaWtlIFNWX1Bvc2l0aW9uIGlzIGNvcnJlY3RseSBvdXRwdXQu
CisgICAgICAgIHNyYyArPSBgICAgIC8vIFRPRE86IFBhY2tpbmcgZm9yICR7dGhpcy5fZnVuYy5u
YW1lfVxuYDsKKyAgICAgICAgc3JjICs9IGAgICAgcmV0dXJuIHJlc3VsdDtcbmA7CisgICAgICAg
IHNyYyArPSAifSI7CisgICAgICAgIHRoaXMuX2RlZmludGlvbiA9IHNyYzsKKyAgICAgICAgcmV0
dXJuIHNyYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NZXRhbC9NU0xDb2RlZ2VuQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTWV0YWwvTVNMQ29kZWdlbkFsbC5qcwppbmRleCA5M2U0Y2Y4OWU0M2E5ZGYxNjJhZTRlNDhj
YWUwNGUxZjI3ZjYwMWM0Li5jMzhjZWFiMDJmODkzNmVmMjFjYTBjOTI4YWUyNzBmZDk1ZmRjMmMz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xDb2Rl
Z2VuQWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTENv
ZGVnZW5BbGwuanMKQEAgLTMyLDYgKzMyLDggQEAgbG9hZCgiTVNMRnVuY3Rpb25Gb3J3YXJkRGVj
bGFyYXRpb24uanMiKTsKIGxvYWQoIk1TTEluc2VydFRyYXBQYXJhbWV0ZXIuanMiKTsKIGxvYWQo
Ik1TTE5hbWVNYW5nbGVyLmpzIik7CiBsb2FkKCJNU0xOYXRpdmVGdW5jdGlvbkNhbGwuanMiKTsK
K2xvYWQoIk1TTFBzZXVkb05hdGl2ZUZ1bmN0aW9uQ2FsbC5qcyIpOworbG9hZCgiTVNMUmV3cml0
ZVNoYWRlcnMuanMiKTsKIGxvYWQoIk1TTFN0YXRlbWVudEVtaXR0ZXIuanMiKTsKIGxvYWQoIk1T
TFR5cGVBdHRyaWJ1dGVzTWFwLmpzIik7CiBsb2FkKCJNU0xUeXBlQXR0cmlidXRlcy5qcyIpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMRnVuY3Rp
b25EZWNsYXJhdGlvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01T
TEZ1bmN0aW9uRGVjbGFyYXRpb24uanMKaW5kZXggZjNkOWM5OGUwNTMyN2U4ODc0NDlkNzYxYmUy
YjhiYTBlNjEzMGFiNS4uZmNhMjVjZmYzYjViY2ZjZWUyMzEzY2MyMjFmY2M0NWY5YmY2MGY2ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMRnVuY3Rp
b25EZWNsYXJhdGlvbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9NU0xGdW5jdGlvbkRlY2xhcmF0aW9uLmpzCkBAIC02MCwxMSArNjAsNiBAQCBjbGFzcyBNU0xG
dW5jdGlvbkRlY2xhcmF0aW9uIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGVBdHRyaWJ1dGVz
OwogICAgIH0KIAotICAgIGdldCBpc1ZlcnRleFNoYWRlcigpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fZnVuYy5zaGFkZXJUeXBlID09ICJ2ZXJ0ZXgiOwotICAgIH0KLQogICAgIGdldCBw
YXJhbU1hcCgpCiAgICAgewogICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7CkBAIC04NCw0
NyArNzksMTcgQEAgY2xhc3MgTVNMRnVuY3Rpb25EZWNsYXJhdGlvbiB7CiAKICAgICB0b1N0cmlu
ZygpCiAgICAgewotICAgICAgICBsZXQgZGVjbExpbmUgPSAiIjsKLQotICAgICAgICBpZiAodGhp
cy5pc1NoYWRlcikKLSAgICAgICAgICAgIGRlY2xMaW5lICs9IGAke3RoaXMuX2Z1bmMuc2hhZGVy
VHlwZX0gYDsKLSAgICAgICAgZGVjbExpbmUgKz0gYCR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVl
VHlwZUlkKHRoaXMuX2Z1bmMucmV0dXJuVHlwZSl9IGA7CisgICAgICAgIGxldCBkZWNsTGluZSA9
IGAke3RoaXMuX3R5cGVVbmlmaWVyLnVuaXF1ZVR5cGVJZCh0aGlzLl9mdW5jLnJldHVyblR5cGUp
fSBgOwogICAgICAgICBkZWNsTGluZSArPSB0aGlzLl9mdW5jTWFuZ2xlci5tYW5nbGUodGhpcy5m
dW5jKTsKICAgICAgICAgZGVjbExpbmUgKz0gIigiCiAKICAgICAgICAgbGV0IHBhcmFtcyA9IFtd
OwogICAgICAgICBjb25zdCBwYXJhbU1hcCA9IHRoaXMucGFyYW1NYXA7Ci0gICAgICAgIGZvciAo
bGV0IHBhcmFtIG9mIHRoaXMuX2Z1bmMucGFyYW1ldGVycykgewotICAgICAgICAgICAgbGV0IHBT
dHIgPSBgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQocGFyYW0udHlwZSl9ICR7cGFy
YW1NYXAuZ2V0KHBhcmFtKX1gOwotICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBwYXJzZXIgZG9l
c24ndCBjdXJyZW50bHkgc3VwcG9ydCB2ZXJ0ZXggc2hhZGVycyBoYXZpbmcgdWludCBwYXJhbWV0
ZXJzLCBzbyB0aGlzIGRvZXNuJ3Qgd29yay4KLSAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtZXRl
cklzVmVydGV4SWQocGFyYW0pICYmIHRoaXMuaXNWZXJ0ZXhTaGFkZXIpCi0gICAgICAgICAgICAg
ICAgcFN0ciArPSAiIFtbdmVydGV4X2lkXV0iOwotICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5w
YXJhbWV0ZXJJc0F0dHJpYnV0ZShwYXJhbSkpCi0gICAgICAgICAgICAgICAgcFN0ciArPSAiIFtb
c3RhZ2VfaW5dXSI7Ci0gICAgICAgICAgICBwYXJhbXMucHVzaChwU3RyKTsKLSAgICAgICAgfQor
ICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiB0aGlzLl9mdW5jLnBhcmFtZXRlcnMpCisgICAgICAg
ICAgICBwYXJhbXMucHVzaChgJHt0aGlzLl90eXBlVW5pZmllci51bmlxdWVUeXBlSWQocGFyYW0u
dHlwZSl9ICR7cGFyYW1NYXAuZ2V0KHBhcmFtKX1gKTsKIAogICAgICAgICBkZWNsTGluZSArPSBw
YXJhbXMuam9pbigiLCAiKSArICIpIjsKIAogICAgICAgICByZXR1cm4gZGVjbExpbmU7CiAgICAg
fQotCi0gICAgZ2V0IGlzU2hhZGVyKCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0
IFdITFNMICJjb21wdXRlIiBzaGFkZXJzIChNU0wgY2FsbHMgdGhlc2Uga2VybmVsIHNoYWRlcnMp
Ci0gICAgICAgIHJldHVybiB0aGlzLmZ1bmMuc2hhZGVyVHlwZSA9PT0gInZlcnRleCIgfHwgdGhp
cy5mdW5jLnNoYWRlclR5cGUgPT09ICJmcmFnbWVudCI7Ci0gICAgfQotCi0gICAgcGFyYW1ldGVy
SXNBdHRyaWJ1dGUobm9kZSkKLSAgICB7Ci0gICAgICAgIC8vIFdlIGN1cnJlbnRseSBhc3N1bWlu
ZyB0aGF0IGFsbCBwYXJhbWV0ZXJzIHRvIGVudHJ5IHBvaW50cyBhcmUgYXR0cmlidXRlcy4KLSAg
ICAgICAgLy8gVE9ETzogQmV0dGVyIGxvZ2ljIGZvciB0aGlzLCBpLmUuIHN1cHBvcnQgc2FtcGxl
cnMuCi0gICAgICAgIHJldHVybiB0aGlzLmlzU2hhZGVyOwotICAgIH0KLQotICAgIHBhcmFtZXRl
cklzVmVydGV4SWQobm9kZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzbid0IGZp
bmFsLCBhbmQgaXNuJ3QgZm9ybWFsbHkgc3BlY2lmaWVkIHlldC4KLSAgICAgICAgcmV0dXJuIHRo
aXMuaXNWZXJ0ZXhTaGFkZXIgJiYgbm9kZS5uYW1lID09ICJ3c2xfdmVydGV4SUQiICYmIG5vZGUu
dHlwZS5uYW1lID09ICJ1aW50MzIiOwotICAgIH0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xJ
bnNlcnRUcmFwUGFyYW1ldGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvTVNMSW5zZXJ0VHJhcFBhcmFtZXRlci5qcwppbmRleCA2OTNjNGM4Yzg5M2ZkYWQxYmIyNTNk
ZWUwOTQ4MDVmNTRhNjczYzQwLi5hOTE4NDBmNjFiNjI1ZTBlNTVmOWJhMGI0NjVmZWMxOWUyNTQw
ZGM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xJ
bnNlcnRUcmFwUGFyYW1ldGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL01TTEluc2VydFRyYXBQYXJhbWV0ZXIuanMKQEAgLTgwLDcgKzgwLDcgQEAgZnVuY3Rp
b24gaW5zZXJ0VHJhcFBhcmFtZXRlcihwcm9ncmFtKQogICAgICAgICB2aXNpdENhbGxFeHByZXNz
aW9uKG5vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Np
b24obm9kZSk7Ci0gICAgICAgICAgICBpZiAobm9kZS5mdW5jIGluc3RhbmNlb2YgRnVuY0RlZikg
eworICAgICAgICAgICAgaWYgKGZ1bmN0aW9uc0NhbGxlZEJ5RW50cnlQb2ludHMuaGFzKG5vZGUu
ZnVuYykpIHsKICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5wdXNoKHRoaXMuX2Nh
bGxlci5fdHJhcFBvaW50ZXJFeHByZXNzaW9uKTsKICAgICAgICAgICAgICAgICBuZXcgVXBkYXRl
Q2FsbEV4cHJlc3Npb25zKG5vZGUuZnVuYyk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xOYXRpdmVGdW5jdGlvbkNhbGwu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xOYXRpdmVGdW5jdGlv
bkNhbGwuanMKaW5kZXggMmFiODcxN2ZjZDFhZDcwNzU3ZmJmMGE4NzljZWM5MTIyNTgxM2NjZC4u
ZWUyZjFjZDQzZGNhYjE0MDBmYjdiN2M5MzAyNWI2YzRjYmMzMWNhYSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMTmF0aXZlRnVuY3Rpb25DYWxsLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTE5hdGl2ZUZ1bmN0
aW9uQ2FsbC5qcwpAQCAtMjUsMTEgKzI1LDgyNiBAQAogCiAidXNlIHN0cmljdCI7CiAKKy8vIEFs
bCBNZXRhbCB0ZXh0dXJlIHJlYWRpbmcgZnVuY3Rpb25zIHJldHVybiB2ZWN0b3I8VCwgND4gKHdo
ZXJlIFQgaXMgdGhlIHR5cGUgc2NhbGFyIGFyZ3VtZW50IG9mIHRoZSB0ZXh0dXJlKQorLy8gVGhl
IFdITFNMIEFQSSByZXR1cm5zIHRoZSBjb3JyZWN0IHNpemVkIHZlY3Rvci9zY2FsYXIsIHNvIHRo
aXMgZnVuY3Rpb24gZ2VuZXJhdGVzIHRoZSBuZWNlc3Nhcnkgc3dpenpsZSBvcGVyYXRvcgorZnVu
Y3Rpb24gc3dpenpsZUNhc3QobmF0aXZlRnVuY0RlZk5vZGUpCit7CisgICAgY29uc3QgZXhwZWN0
ZWRSZXR1cm5MZW5ndGggPSB0eXBlT2YobmF0aXZlRnVuY0RlZk5vZGUpLm51bUVsZW1lbnRzVmFs
dWU7CisgICAgcmV0dXJuIGB4eXp3YC5zbGljZSgwLCBleHBlY3RlZFJldHVybkxlbmd0aCk7Cit9
CisKK2Z1bmN0aW9uIFRleHR1cmUxRFNhbXBsZShub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNh
bXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSkuJHtzd2l6emxlQ2FzdChub2RlKX07YDsKK30K
KworZnVuY3Rpb24gVGV4dHVyZTFEU2FtcGxlV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBu
ZWVkcyBlbXVsYXRpb24gZm9yIHRoZSBvZmZzZXQgYmVjYXVzZSBNZXRhbCBkb2Vzbid0IG5hdGl2
ZWx5IHN1cHBvcnQgaXQuCisgICAgdGhyb3cgbmV3IEVycm9yKCdUZXh0dXJlMURTYW1wbGVXaXRo
T2Zmc2V0IG5vdCBpbXBsZW1lbnRlZC4nKTsKK30KKworLy8gRklYTUU6IEkgYmVsaWV2ZSBhbGwg
bG9hZCBmdW5jdGlvbnMgY2FuIHRyYXAuCisKK2Z1bmN0aW9uIFRleHR1cmUxRExvYWQobm9kZSwg
cmVzdWx0LCBbdGV4dHVyZSwgY29vcmRdKQoreworICAgIC8vIFRoZSBsYXN0IGNvbXBvbmVudCBp
cyB1c2VkIHRvIHNwZWNpZnkgdGhlIG1pcG1hcCBsZXZlbCwgYnV0IE1ldGFsIGRvZXNuJ3Qgc3Vw
cG9ydCBtaXBtYXBzIGZvciAxRCB0ZXh0dXJlcywgc28gd2UgaGF2ZSB0byBwYXNzIHplcm8uCisg
ICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnJlYWQoJHtjb29yZH0ueCwgMCkuJHtz
d2l6emxlQ2FzdChub2RlKX07YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZTFETG9hZFdpdGhPZmZz
ZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgLy8g
RklYTUU6IFRoaXMgbmVlZHMgZW11bGF0aW9uIGZvciB0aGUgb2Zmc2V0IGJlY2F1c2UgTWV0YWwg
ZG9lc24ndCBuYXRpdmVseSBzdXBwb3J0IGl0LgorICAgIHRocm93IG5ldyBFcnJvcignbG9hZFRl
eHR1cmVMb2NhdGlvbjFET2Zmc2V0IG5vdCBpbXBsZW1lbnRlZC4nKTsKK30KKworZnVuY3Rpb24g
VGV4dHVyZTFER2V0RGltZW5zaW9ucyhub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBtaXBMZXZlbCwg
d2lkdGhQb2ludGVyLCBudW1iZXJPZkxldmVsc1BvaW50ZXJdKQoreworICAgIC8vIG1pcExldmVs
IGlnbm9yZWQgZm9yIDFEIHRleHR1cmVzIGluIE1ldGFsLgorICAgIHJldHVybiBbCisgICAgICAg
IGAqKCR7d2lkdGhQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF93aWR0aCgpO2AsCisgICAgICAg
IGAqKCR7bnVtYmVyT2ZMZXZlbHNQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF9udW1fbWlwX2xl
dmVscygpO2AKKyAgICBdLmpvaW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUxREFycmF5
U2FtcGxlKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb25dKQor
eworICAgIC8vIEZJWE1FOiBBY2NvcmRpbmcgdG8gaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20v
ZW4tdXMvd2luZG93cy9kZXNrdG9wL2RpcmVjdDNkaGxzbC9keC1ncmFwaGljcy1obHNsLXRvLXNh
bXBsZSB0aGUgYXJyYXkgaW5kZXggaXMgcHJvZHVjZWQgYnkgdGFraW5nIHRoZSBsYXN0IGVsZW1l
bnQgb2YgdGhlIGZsb2F0IHZlY3RvciBwYXNzZWQgaW4sIHJvdW5kaW5nIGl0IHRvIHRoZSBuZWFy
ZXN0IGV2ZW4gaW50ZWdlciwgYW5kIHRoZW4gY29udmVydGluZyB0byBhIHVpbnQuIFRoZSBiZWxv
dyBkb2Vzbid0IGRvIHRoYXQgcm91bmRpbmcuCisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3Rl
eHR1cmVBcnJheX0uc2FtcGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LngsIHVpbnQoJHtsb2Nh
dGlvbn0ueSkpLiR7c3dpenpsZUNhc3Qobm9kZSl9O2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUx
REFycmF5U2FtcGxlV2l0aE9mZnNldChub2RlLCByZXN1bHQsIGFyZ3MpCit7CisgICAgLy8gRklY
TUU6IFRoaXMgbmVlZHMgZW11bGF0aW9uIGZvciB0aGUgb2Zmc2V0IGJlY2F1c2UgTWV0YWwgZG9l
c24ndCBuYXRpdmVseSBzdXBwb3J0IGl0LgorICAgIHRocm93IG5ldyBFcnJvcignVGV4dHVyZTFE
QXJyYXlTYW1wbGVXaXRoT2Zmc2V0IG5vdCBpbXBsZW1lbnRlZC4nKTsKK30KKworZnVuY3Rpb24g
VGV4dHVyZTFEQXJyYXlMb2FkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVBcnJheSwgbG9jYXRpb25d
KQoreworICAgIC8vIE1ldGFsIDFEIHRleHR1cmUgYXJyYXlzIGRvbid0IHN1cHBvcnQgbWlwbWFw
cGluZywgdGhlIG1pcG1hcCBwYXJhbWV0ZXIgaXMgaW1wbGljdGx5IDAuCisgICAgLy8gRklYTUU6
IFRoZXJlIGFyZSB0d28gb3ZlcmxvYWRzIG9mIHRoaXMgZnVuY3Rpb247IG9uZSB0YWtlcyB1aW50
IHdoaWxzdCB0aGUgb3RoZXIgdGFrZXMgdXNob3J0LiBWZXJpZnkgYXZhaWxhYmlsaXR5LgorICAg
IHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlQXJyYXl9LnJlYWQodWludCgke2xvY2F0aW9u
fS54KSwgdWludCgke2xvY2F0aW9ufS55KSkuJHtzd2l6emxlQ2FzdChub2RlKX07YAorfQorCitm
dW5jdGlvbiBUZXh0dXJlMURBcnJheUxvYWRXaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgYXJncykK
K3sKKyAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyBlbXVsYXRpb24gZm9yIHRoZSBvZmZzZXQgYmVj
YXVzZSBNZXRhbCBkb2Vzbid0IG5hdGl2ZWx5IHN1cHBvcnQgaXQuCisgICAgdGhyb3cgbmV3IEVy
cm9yKCdUZXh0dXJlMWRBcnJheUxvYWRXaXRoT2Zmc2V0IG5vdCBpbXBsZW1lbnRlZC4nKTsKK30K
KworZnVuY3Rpb24gVGV4dHVyZTFEQXJyYXlHZXREaW1lbnNpb25zKG5vZGUsIHJlc3VsdCwgW3Rl
eHR1cmVBcnJheSwgbWlwTGV2ZWwsIHdpZHRoUG9pbnRlciwgZWxlbWVudHNQb2ludGVyLCBudW1i
ZXJPZkxldmVsc1BvaW50ZXJdKQoreworICAgIC8vIE1pcCBsZXZlbCBpZ25vcmVkLCBzZWUgYWJv
dmUKKyAgICByZXR1cm4gWworICAgICAgICBgKigke3dpZHRoUG9pbnRlcn0pID0gJHt0ZXh0dXJl
QXJyYXl9LmdldF93aWR0aCgpO2AsCisgICAgICAgIGAqKCR7ZWxlbWVudHNQb2ludGVyfSkgPSAk
e3RleHR1cmVBcnJheX0uZ2V0X2FycmF5X3NpemUoKTtgCisgICAgICAgIGAqKCR7bnVtYmVyT2ZM
ZXZlbHNQb2ludGVyfSkgPSAke3RleHR1cmVBcnJheX0uZ2V0X251bV9taXBfbGV2ZWxzKCk7YAor
ICAgIF0uam9pbigiXG4iKTsKK30KKworLy8gRklYTUU6IFJld3JpdGUgdGhlIGFib3ZlIHVzaW5n
IHRoaXMgc3ludGF4CisvLyBGSVhNRTogVGhlcmUgYXJlbid0IGFzIG1hbnkgcmVwZWF0ZWQgZWxl
bWVudHMgYXMgSSBleHBlY3RlZCBoZXJlLCBzbyBtYW55IG9mIHRoZXNlIGNvdWxkIGJlIGlubGlu
ZWQgYXMgbGFtYmRhcy4KK2Z1bmN0aW9uIFRleHR1cmUyRFNhbXBsZShub2RlLCByZXN1bHQsIFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAk
e3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSkuJHtzd2l6emxlQ2FzdChu
b2RlKX07YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZTJEU2FtcGxlV2l0aE9mZnNldChub2RlLCBy
ZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkKK3sKKyAgICByZXR1
cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259
LCAke29mZnNldH0pLiR7c3dpenpsZUNhc3Qobm9kZSl9O2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1
cmUyRFNhbXBsZUJpYXMobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGJpYXNdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtz
YW1wbGVyfSwgJHtsb2NhdGlvbn0sIGJpYXMoJHtiaWFzfSkpLiR7c3dpenpsZUNhc3Qobm9kZSl9
O2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUyRFNhbXBsZUJpYXNXaXRoT2Zmc2V0KG5vZGUsIHJl
c3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKQoreworICAg
IHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2Nh
dGlvbn0sIGJpYXMoJHtiaWFzfSksICR7b2Zmc2V0fSkuJHtzd2l6emxlQ2FzdChub2RlKX07YDsK
K30KKworZnVuY3Rpb24gVGV4dHVyZTJEU2FtcGxlR3JhZChub2RlLCByZXN1bHQsIFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9
ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sIGdyYWRpZW50MmQo
JHtkZHh9LCAke2RkeX0pKS4ke3N3aXp6bGVDYXN0KG5vZGUpfTtgOworfQorCitmdW5jdGlvbiBU
ZXh0dXJlMkRTYW1wbGVHcmFkV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAke3Jlc3Vs
dH0gPSAke3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgZ3JhZGllbnQy
ZCgke2RkeH0sICR7ZGR5fSksICR7b2Zmc2V0fSkuJHtzd2l6emxlQ2FzdChub2RlKX07YDsKK30K
KworZnVuY3Rpb24gVGV4dHVyZTJEU2FtcGxlTGV2ZWwobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGxvZF0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3Rl
eHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgbGV2ZWwoJHtsb2R9KSkuJHtz
d2l6emxlQ2FzdChub2RlKX07YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZTJEU2FtcGxlTGV2ZWxX
aXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2Qs
IG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZSgk
e3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgbGV2ZWwoJHtsb2R9KSwgJHtvZmZzZXR9KS4ke3N3aXp6
bGVDYXN0KG5vZGUpfTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlMkRHYXRoZXJSZWQobm9kZSwg
cmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKQoreworICAgIHJldHVybiBgJHty
ZXN1bHR9ID0gJHt0ZXh0dXJlfS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0pO2A7Cit9
CisKK2Z1bmN0aW9uIFRleHR1cmUyREdhdGhlclJlZFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAke3Jl
c3VsdH0gPSAke3RleHR1cmV9LmdhdGhlcigke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgJHtvZmZz
ZXR9KTtgCit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREdhdGhlckdyZWVuKG5vZGUsIHJlc3VsdCwg
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9
ICR7dGV4dHVyZX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCBpbnQyKDAsIDApLCBj
b21wb25lbnQ6OnkpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREdhdGhlckdyZWVuV2l0aE9m
ZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkK
K3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyKCR7c2FtcGxlcn0s
ICR7bG9jYXRpb259LCAke29mZnNldH0sIGNvbXBvbmVudDo6eSk7YAorfQorCitmdW5jdGlvbiBU
ZXh0dXJlMkRHYXRoZXJCbHVlKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyKCR7c2Ft
cGxlcn0sICR7bG9jYXRpb259LCBpbnQyKDAsIDApLCBjb21wb25lbnQ6OnopO2A7Cit9CisKK2Z1
bmN0aW9uIFRleHR1cmUyREdhdGhlckJsdWVXaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9
ID0gJHt0ZXh0dXJlfS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sICR7b2Zmc2V0fSwg
Y29tcG9uZW50Ojp6KTtgCit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREdhdGhlckFscGhhKG5vZGUs
IHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7
cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCBpbnQy
KDAsIDApLCBjb21wb25lbnQ6OncpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREdhdGhlckFs
cGhhV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyKCR7
c2FtcGxlcn0sICR7bG9jYXRpb259LCAke29mZnNldH0sIGNvbXBvbmVudDo6dyk7YAorfQorCitm
dW5jdGlvbiBUZXh0dXJlMkRMb2FkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIGxvY2F0aW9uXSkK
K3sKKyAgICAvLyBGSVhNRTogTWV0YWwgc3VwcG9ydHMgYSBzZWNvbmRhcnkgbWlwbWFwIExPRCBw
YXJhbWV0ZXIgYnV0IGl0IGxvb2tzIGxpa2UgV0hMU0wgZG9lc24ndC4KKyAgICByZXR1cm4gYCR7
cmVzdWx0fSA9ICR7dGV4dHVyZX0ucmVhZCgke2xvY2F0aW9ufS54eSlgOworfQorCitmdW5jdGlv
biBUZXh0dXJlMkRMb2FkV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBsb2NhdGlv
biwgb2Zmc2V0XSkKK3sKKyAgICB0aHJvdyBuZXcgRXJyb3IoJ1RleHR1cmUyRExvYWRXaXRoT2Zm
c2V0IGlzIHVuaW1wbGVtZW50ZWQgKG5lZWRzIGVtdWxhdGlvbiBpbiBNU0wpLicpOworfQorCitm
dW5jdGlvbiBUZXh0dXJlMkRHZXREaW1lbnNpb25zKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIG1p
cExldmVsLCB3aWR0aFBvaW50ZXIsIGhlaWdodFBvaW50ZXIsIG51bWJlck9mTGV2ZWxzUG9pbnRl
cl0pCit7CisgICAgcmV0dXJuIFsKKyAgICAgICAgYCooJHt3aWR0aFBvaW50ZXJ9KSA9ICR7dGV4
dHVyZX0uZ2V0X3dpZHRoKCR7bWlwTGV2ZWx9KTtgCisgICAgICAgIGAqKCR7aGVpZ2h0UG9pbnRl
cn0pID0gJHt0ZXh0dXJlfS5nZXRfaGVpZ2h0KCR7bWlwTGV2ZWx9KTtgCisgICAgICAgIGAqKCR7
bnVtYmVyT2ZMZXZlbHNQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF9udW1fbWlwX2xldmVscygp
O2AKKyAgICBdLmpvaW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREFycmF5U2FtcGxl
KG5vZGUsIHJlc3VsdCwgW3RleHR1cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb25dKQoreworICAg
IC8vIEZJWE1FOiBTZWUgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvd2luZG93cy9k
ZXNrdG9wL2RpcmVjdDNkaGxzbC9keC1ncmFwaGljcy1obHNsLXRvLXNhbXBsZS4KKyAgICAvLyBG
SVhNRTogQ2FuIHlvdSBhY3R1YWxseSB3cml0ZSB1aW50IGluIE1TTD8/PworICAgIHJldHVybiBg
JHtyZXN1bHR9ID0gJHt0ZXh0dXJlQXJyYXl9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9u
fS54eSwgdWludCgke2xvY2F0aW9ufS56KSkuJHtzd2l6emxlQ2FzdChub2RlKX07YDsKK30KKwor
ZnVuY3Rpb24gVGV4dHVyZTJEQXJyYXlTYW1wbGVXaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgW3Rl
eHR1cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAk
e3Jlc3VsdH0gPSAke3RleHR1cmVBcnJheX0uc2FtcGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259
Lnh5LCB1aW50KCR7bG9jYXRpb259LnopLCAke29mZnNldH0pLiR7c3dpenpsZUNhc3Qobm9kZSl9
O2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREFycmF5U2FtcGxlQmlhcyhub2RlLCByZXN1bHQs
IFt0ZXh0dXJlQXJyYXksIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkKK3sKKyAgICByZXR1cm4g
YCR7cmVzdWx0fSA9ICR7dGV4dHVyZUFycmF5fS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlv
bn0ueHksIHVpbnQoJHtsb2NhdGlvbn0ueiksIGJpYXMoJHtiaWFzfSkpLiR7c3dpenpsZUNhc3Qo
bm9kZSl9O2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUyREFycmF5U2FtcGxlQmlhc1dpdGhPZmZz
ZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZUFycmF5LCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywg
b2Zmc2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZUFycmF5fS5zYW1w
bGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVpbnQoJHtsb2NhdGlvbn0ueiksIGJpYXMo
JHtiaWFzfSksICR7b2Zmc2V0fSkuJHtzd2l6emxlQ2FzdChub2RlKX07YDsKK30KKworZnVuY3Rp
b24gVGV4dHVyZTJEQXJyYXlTYW1wbGVHcmFkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVBcnJheSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9
ICR7dGV4dHVyZUFycmF5fS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVpbnQo
JHtsb2NhdGlvbn0ueiksIGdyYWRpZW50MmQoJHtkZHh9LCAke2RkeX0pKS4ke3N3aXp6bGVDYXN0
KG5vZGUpfTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlMkRBcnJheVNhbXBsZUdyYWRXaXRoT2Zm
c2V0KG5vZGUsIHJlc3VsdCwgW3RleHR1cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwg
ZGR5LCBvZmZzZXRdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlQXJyYXl9
LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSwg
Z3JhZGllbnQyZCgke2RkeH0sICR7ZGR5fSksICR7b2Zmc2V0fSkuJHtzd2l6emxlQ2FzdChub2Rl
KX07YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZTJEQXJyYXlTYW1wbGVMZXZlbChub2RlLCByZXN1
bHQsIFt0ZXh0dXJlQXJyYXksIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKQoreworICAgIHJldHVy
biBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlQXJyYXl9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0
aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSwgbGV2ZWwoJHtsb2R9KSkuJHtzd2l6emxlQ2Fz
dChub2RlKX07YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZTJEQXJyYXlTYW1wbGVMZXZlbFdpdGhP
ZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZUFycmF5LCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
LCBvZmZzZXRdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlQXJyYXl9LnNh
bXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSwgbGV2
ZWwoJHtsb2R9KSwgJHtvZmZzZXR9KS4ke3N3aXp6bGVDYXN0KG5vZGUpfTtgOworfQorCitmdW5j
dGlvbiBUZXh0dXJlMkRBcnJheUdhdGhlclJlZChub2RlLCByZXN1bHQsIFt0ZXh0dXJlQXJyYXks
IHNhbXBsZXIsIGxvY2F0aW9uXSkKK3sKKyAgICAvLyBGSVhNRTogU2VlIHRoZSBhYm92ZSBjb21t
ZW50cyBhYm91dCB0aGUgYXJyYXkgaW5kZXhpbmcgc3R1ZmYuCisgICAgcmV0dXJuIGAke3Jlc3Vs
dH0gPSAke3RleHR1cmVBcnJheX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259Lnh5LCB1
aW50KCR7bG9jYXRpb259LnopLCBpbnQyKDAsIDApLCBjb21wb25lbnQ6OngpO2A7Cit9CisKK2Z1
bmN0aW9uIFRleHR1cmUyREFycmF5R2F0aGVyUmVkV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0
ZXh0dXJlQXJyYXksIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIHJldHVybiBg
JHtyZXN1bHR9ID0gJHt0ZXh0dXJlQXJyYXl9LmdhdGhlcigke3NhbXBsZXJ9LCAke2xvY2F0aW9u
fS54eSwgdWludCgke2xvY2F0aW9ufS56KSwgJHtvZmZzZXR9LCBjb21wb25lbnQ6OngpO2A7Cit9
CisKK2Z1bmN0aW9uIFRleHR1cmUyREFycmF5R2F0aGVyR3JlZW4obm9kZSwgcmVzdWx0LCBbdGV4
dHVyZUFycmF5LCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0g
PSAke3RleHR1cmVBcnJheX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259Lnh5LCB1aW50
KCR7bG9jYXRpb259LnopLCBpbnQyKDAsIDApLCBjb21wb25lbnQ6OnkpO2A7Cit9CisKK2Z1bmN0
aW9uIFRleHR1cmUyREFycmF5R2F0aGVyR3JlZW5XaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgW3Rl
eHR1cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAk
e3Jlc3VsdH0gPSAke3RleHR1cmVBcnJheX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259
Lnh5LCB1aW50KCR7bG9jYXRpb259LnopLCAke29mZnNldH0sIGNvbXBvbmVudDo6eSk7YDsKK30K
KworZnVuY3Rpb24gVGV4dHVyZTJEQXJyYXlHYXRoZXJCbHVlKG5vZGUsIHJlc3VsdCwgW3RleHR1
cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb25dKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0g
JHt0ZXh0dXJlQXJyYXl9LmdhdGhlcigke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgk
e2xvY2F0aW9ufS56KSwgaW50MigwLCAwKSwgY29tcG9uZW50Ojp6KTtgOworfQorCitmdW5jdGlv
biBUZXh0dXJlMkRBcnJheUdhdGhlckJsdWVXaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgW3RleHR1
cmVBcnJheSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAke3Jl
c3VsdH0gPSAke3RleHR1cmVBcnJheX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259Lnh5
LCB1aW50KCR7bG9jYXRpb259LnopLCAke29mZnNldH0sIGNvbXBvbmVudDo6eik7YDsKK30KKwor
ZnVuY3Rpb24gVGV4dHVyZTJEQXJyYXlHYXRoZXJBbHBoYShub2RlLCByZXN1bHQsIFt0ZXh0dXJl
QXJyYXksIHNhbXBsZXIsIGxvY2F0aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7
dGV4dHVyZUFycmF5fS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVpbnQoJHts
b2NhdGlvbn0ueiksIGludDIoMCwgMCksIGNvbXBvbmVudDo6dyk7YDsKK30KKworZnVuY3Rpb24g
VGV4dHVyZTJEQXJyYXlHYXRoZXJBbHBoYVdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVy
ZUFycmF5LCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVz
dWx0fSA9ICR7dGV4dHVyZUFycmF5fS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHks
IHVpbnQoJHtsb2NhdGlvbn0ueiksICR7b2Zmc2V0fSwgY29tcG9uZW50Ojp3KTtgOworfQorCitm
dW5jdGlvbiBUZXh0dXJlMkRBcnJheUxvYWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZUFycmF5LCBs
b2NhdGlvbl0pCit7CisgICAgLy8gRklYTUU6IE1heWJlIGNoYW5nZSB0aGUgV0hMU0wgQVBJIHRv
IHRha2UgdWludDIgaGVyZSBzbyB0aGUgY2FzdCBpc24ndCBuZWNlc3NhcnkuCisgICAgcmV0dXJu
IGAke3Jlc3VsdH0gPSAke3RleHR1cmVBcnJheX0ucmVhZCh1aW50Mih1aW50KCR7bG9jYXRpb259
LngpLCB1aW50KCR7bG9jYXRpb259LnkpKSwgdWludCgke2xvY2F0aW9ufS56KSk7YDsKK30KKwor
ZnVuY3Rpb24gVGV4dHVyZTJEQXJyYXlMb2FkV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0
dXJlQXJyYXksIGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIC8vIEZJWE1FOiBJbnRyaW5zaWNz
IGxpdGVyYWxseSBqdXN0IGFkZHMgdGhlIG9mZnNldCB0byB0aGUgbG9jYXRpb24sIHNvIG1heWJl
IGRvIHRoYXQgPz8/CisgICAgdGhyb3cgbmV3IEVycm9yKCdGSVhNRTogVGV4dHVyZTJEQXJyYXlM
b2FkV2l0aE9mZnNldCBuZWVkcyBlbXVsYXRpb24nKTsKK30KKworZnVuY3Rpb24gVGV4dHVyZTJE
QXJyYXlHZXREaW1lbnNpb25zKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVBcnJheSwgbWlwTGV2ZWws
IHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9pbnRlciwgbnVtRWxlbWVudHNQb2ludGVyLCBudW1iZXJP
ZkxldmVsc1BvaW50ZXJdKQoreworICAgIHJldHVybiBbCisgICAgICAgIGAqKCR7d2lkdGhQb2lu
dGVyfSkgPSAke3RleHR1cmVBcnJheX0uZ2V0X3dpZHRoKCR7bWlwTGV2ZWx9KTtgLAorICAgICAg
ICBgKigke2hlaWdodFBvaW50ZXJ9KSA9ICR7dGV4dHVyZUFycmF5fS5nZXRfaGVpZ2h0KCR7bWlw
TGV2ZWx9KTtgLAorICAgICAgICBgKigke251bUVsZW1lbnRzUG9pbnRlcn0pID0gJHt0ZXh0dXJl
QXJyYXl9LmdldF9hcnJheV9zaXplKCk7YCwKKyAgICAgICAgYCooJHtudW1iZXJPZkxldmVsc1Bv
aW50ZXJ9KSA9ICR7dGV4dHVyZUFycmF5fS5nZXRfbnVtX21pcF9sZXZlbHMoKWAKKyAgICBdLmpv
aW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUzRFNhbXBsZShub2RlLCByZXN1bHQsIFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAk
e3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSkuJHtzd2l6emxlQ2FzdChu
b2RlKX07YAorfQorCitmdW5jdGlvbiBUZXh0dXJlM0RTYW1wbGVXaXRoT2Zmc2V0KG5vZGUsIHJl
c3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIHJldHVy
biBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0s
ICR7b2Zmc2V0fSkuJHtzd2l6emxlQ2FzdChub2RlKX07YAorfQorCitmdW5jdGlvbiBUZXh0dXJl
M0RMb2FkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIGxvY2F0aW9uXSkKK3sKKyAgICAvLyBBZ2Fp
biwgc2VlIG15IGFib3ZlIGNvbW1lbnRzIHVzaW5nIHRoZSB1aW50IHR5cGUgaGVyZSByYXRoZXIg
dGhhbiBpbnQKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlKCR7c2Ft
cGxlcn0sIHVpbnQzKHVpbnQoJHtsb2NhdGlvbn0ueCksIHVpbnQoJHtsb2NhdGlvbn0ueSksIHVp
bnQoJHtsb2NhdGlvbn0ueikpLCB1aW50KCR7bG9jYXRpb259LncpKTtgCit9CisKK2Z1bmN0aW9u
IFRleHR1cmUzRExvYWRXaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIC8vIEludHJpbnNpY3MganVzdCBhZGRzIHRoZSBv
ZmZzZXQgdG8gdGhlIGxvY2F0aW9uLgorICAgIHRocm93IG5ldyBFcnJvcignVGV4dHVyZTNETG9h
ZFdpdGhPZmZzZXQgbmVlZHMgZW11bGF0aW9uJyk7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmUzREdl
dERpbWVuc2lvbnMobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbWlwTGV2ZWwsIHdpZHRoUG9pbnRl
ciwgaGVpZ2h0UG9pbnRlciwgZGVwdGhQb2ludGVyLCBudW1iZXJPZkxldmVsc1BvaW50ZXJdKQor
eworICAgIHJldHVybiBbCisgICAgICAgIGAqKCR7d2lkdGhQb2ludGVyfSkgPSAke3RleHR1cmV9
LmdldF93aWR0aCgke21pcExldmVsfSk7YCwKKyAgICAgICAgYCooJHtoZWlnaHRQb2ludGVyfSkg
PSAke3RleHR1cmV9LmdldF9oZWlnaHQoJHttaXBMZXZlbH0pO2AsCisgICAgICAgIGAqKCR7ZGVw
dGhQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF9kZXB0aCgke21pcExldmVsfSk7YCwKKyAgICAg
ICAgYCooJHtudW1iZXJPZkxldmVsc1BvaW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X251bV9taXBf
bGV2ZWxzKCk7YCwKKyAgICBdLmpvaW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVDdWJl
U2FtcGxlKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVDdWJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7
CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmVDdWJlfS5zYW1wbGUoJHtzYW1wbGVy
fSwgJHtsb2NhdGlvbn0pO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVDdWJlU2FtcGxlV2l0aE9m
ZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlQ3ViZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmVDdWJlfS5zYW1wbGUoJHtz
YW1wbGVyfSwgJHtsb2NhdGlvbn0sICR7b2Zmc2V0fSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVy
ZUN1YmVTYW1wbGVCaWFzKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVDdWJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgYmlhc10pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmVDdWJlfS5z
YW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sICwgYmlhcygke2JpYXN9KSk7YDsKK30KKwor
ZnVuY3Rpb24gVGV4dHVyZUN1YmVTYW1wbGVHcmFkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVDdWJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9
ID0gJHt0ZXh0dXJlQ3ViZX0uc2FtcGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCAsIGdyYWRp
ZW50M2QoJHtkZHh9LCAke2RkeX0pKTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlQ3ViZVNhbXBs
ZUxldmVsKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVDdWJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbGV2
ZWxdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlQ3ViZX0uc2FtcGxlKCR7
c2FtcGxlcn0sICR7bG9jYXRpb259LCAsIGxldmVsKCR7bGV2ZWx9KSk7YDsKK30KKworZnVuY3Rp
b24gVGV4dHVyZUN1YmVHYXRoZXJSZWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZUN1YmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZUN1YmV9
LmdhdGhlcigke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgY29tcG9uZW50Ojp4KTtgOworfQorCitm
dW5jdGlvbiBUZXh0dXJlQ3ViZUdhdGhlckdyZWVuKG5vZGUsIHJlc3VsdCwgW3RleHR1cmVDdWJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1
cmVDdWJlfS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sIGNvbXBvbmVudDo6eSk7YDsK
K30KKworZnVuY3Rpb24gVGV4dHVyZUN1YmVHYXRoZXJCbHVlKG5vZGUsIHJlc3VsdCwgW3RleHR1
cmVDdWJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAk
e3RleHR1cmVDdWJlfS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sIGNvbXBvbmVudDo6
eik7YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZUN1YmVHYXRoZXJBbHBoYShub2RlLCByZXN1bHQs
IFt0ZXh0dXJlQ3ViZSwgc2FtcGxlciwgbG9jYXRpb25dKQoreworICAgIHJldHVybiBgJHtyZXN1
bHR9ID0gJHt0ZXh0dXJlQ3ViZX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCBjb21w
b25lbnQ6OncpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVDdWJlR2V0RGltZW5zaW9ucyhub2Rl
LCByZXN1bHQsIFt0ZXh0dXJlQ3ViZSwgbWlwTGV2ZWwsIHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9p
bnRlciwgbnVtYmVyT2ZMZXZlbHNQb2ludGVyXSkKK3sKKyAgICByZXR1cm4gWworICAgICAgICBg
Kigke3dpZHRoUG9pbnRlcn0pID0gJHt0ZXh0dXJlQ3ViZX0uZ2V0X3dpZHRoKCR7bWlwTGV2ZWx9
KTtgLAorICAgICAgICBgKigke2hlaWdodFBvaW50ZXJ9KSA9ICR7dGV4dHVyZUN1YmV9LmdldF9o
ZWlnaHQoJHttaXBMZXZlbH0pO2AsCisgICAgICAgIGAqKCR7bnVtYmVyT2ZMZXZlbHNQb2ludGVy
fSkgPSAke3RleHR1cmVDdWJlfS5nZXRfbnVtX21pcF9sZXZlbHMoKTtgCisgICAgXS5qb2luKCJc
biIpOworfQorCitmdW5jdGlvbiBSV1RleHR1cmUxREdldERpbWVuc2lvbnMobm9kZSwgcmVzdWx0
LCBbdGV4dHVyZSwgd2lkdGhQb2ludGVyXSkKK3sKKyAgICByZXR1cm4gYCooJHt3aWR0aFBvaW50
ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X3dpZHRoKCk7YDsKK30KKworZnVuY3Rpb24gUldUZXh0dXJl
MURHZXREaW1lbnNpb25zRmxvYXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgd2lkdGhQb2ludGVy
XSkKK3sKKyAgICByZXR1cm4gYCooJHt3aWR0aFBvaW50ZXJ9KSA9IGZsb2F0KCR7dGV4dHVyZX0u
Z2V0X3dpZHRoKCkpO2A7Cit9CisKK2Z1bmN0aW9uIFJXVGV4dHVyZTFETG9hZChub2RlLCByZXN1
bHQsIFt0ZXh0dXJlLCBsb2NhdGlvbl0pCit7CisgICAgLy8gRklYTUU6IFRoZSBzdGFuZGFyZCBs
aWJyYXJ5IHNob3VsZCBwcm9iYWJseSBoYXZlIGEgdWludCBoZXJlIHRvby4KKyAgICByZXR1cm4g
YCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0ucmVhZCh1aW50KCR7bG9jYXRpb259KSkuJHtzd2l6emxl
Q2FzdChub2RlKX07YDsKK30KKworZnVuY3Rpb24gUldUZXh0dXJlMURTdG9yZShub2RlLCByZXN1
bHQsIFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKQoreworICAgIC8vIFdlaXJkbHkgdGhlIHN0
YW5kYXJkIGxpYnJhcnkgZG9lcyBoYXZlIGEgdWludCBoZXJlIMKvXF8o44OEKV8vwq8KKyAgICAv
LyBGSVhNRTogVmVyaWZ5IHRoYXQgdGhlIHZhbHVlIHR5cGVzIG1hdGNoIHVwIHByb3Blcmx5OyBk
b2VzIHRoaXMgbmVlZCB0byBiZSB6ZXJvLXBhZGRlZD8KKyAgICByZXR1cm4gYCR7dGV4dHVyZX0u
d3JpdGUoJHt2YWx1ZX0sICR7bG9jYXRpb259KTtgOworfQorCitmdW5jdGlvbiBSV1RleHR1cmUx
REFycmF5R2V0RGltZW5zaW9ucyhub2RlLCByZXN1bHQsIFt0ZXh0dXJlQXJyYXksIHdpZHRoUG9p
bnRlciwgbnVtRWxlbWVudHNQb2ludGVyXSkKK3sKKyAgICByZXR1cm4gWworICAgICAgICBgKigk
e3dpZHRoUG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfd2lkdGgoKTtgLAorICAgICAgICBgKigk
e251bUVsZW1lbnRzUG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfYXJyYXlfc2l6ZSgpO2AsCisg
ICAgXS5qb2luKCJcbiIpOworfQorCitmdW5jdGlvbiBSV1RleHR1cmUxREFycmF5R2V0RGltZW5z
aW9uc0Zsb2F0KG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHdpZHRoUG9pbnRlciwgbnVtRWxlbWVu
dHNQb2ludGVyXSkKK3sKKyAgICByZXR1cm4gWworICAgICAgICBgKigke3dpZHRoUG9pbnRlcn0p
ID0gZmxvYXQoJHt0ZXh0dXJlfS5nZXRfd2lkdGgoKSk7YCwKKyAgICAgICAgYCooJHtudW1FbGVt
ZW50c1BvaW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X2FycmF5X3NpemUoKTtgLAorICAgIF0uam9p
bigiXG4iKTsKK30KKworZnVuY3Rpb24gUldUZXh0dXJlMURBcnJheUxvYWQobm9kZSwgcmVzdWx0
LCBbdGV4dHVyZSwgbG9jYXRpb25dKQoreworICAgIC8vIEZJWE1FOiBUaGUgc3RhbmRhcmQgbGli
cmFyeSBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIHVpbnQgaGVyZSB0b28uCisgICAgcmV0dXJuIGAk
e3Jlc3VsdH0gPSAke3RleHR1cmV9LnJlYWQodWludCgke2xvY2F0aW9ufS54KSwgdWludCgke2xv
Y2F0aW9ufS55KSkuJHtzd2l6emxlQ2FzdChub2RlKX07YDsKK30KKworZnVuY3Rpb24gUldUZXh0
dXJlMURBcnJheVN0b3JlKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0p
Cit7CisgICAgLy8gV2VpcmRseSB0aGUgc3RhbmRhcmQgbGlicmFyeSBkb2VzIGhhdmUgYSB1aW50
IGhlcmUgwq9cXyjjg4QpXy/CrworICAgIHJldHVybiBgJHt0ZXh0dXJlfS53cml0ZSgke3ZhbHVl
fSwgJHtsb2NhdGlvbn0ueCwgJHtsb2NhdGlvbn0ueSk7YDsKK30KKworZnVuY3Rpb24gUldUZXh0
dXJlMkRHZXREaW1lbnNpb25zKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHdpZHRoUG9pbnRlciwg
aGVpZ2h0UG9pbnRlcl0pCit7CisgICAgcmV0dXJuIFsKKyAgICAgICAgYCooJHt3aWR0aFBvaW50
ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X3dpZHRoKCk7YCwKKyAgICAgICAgYCooJHtoZWlnaHRQb2lu
dGVyfSkgPSAke3RleHR1cmV9LmdldF9oZWlnaHQoKTtgCisgICAgXS5qb2luKCJcbiIpOworfQor
CitmdW5jdGlvbiBSV1RleHR1cmUyREdldERpbWVuc2lvbnNGbG9hdChub2RlLCByZXN1bHQsIFt0
ZXh0dXJlLCB3aWR0aFBvaW50ZXIsIGhlaWdodFBvaW50ZXJdKQoreworICAgIHJldHVybiBbCisg
ICAgICAgIGAqKCR7d2lkdGhQb2ludGVyfSkgPSBmbG9hdCgke3RleHR1cmV9LmdldF93aWR0aCgp
KTtgLAorICAgICAgICBgKigke2hlaWdodFBvaW50ZXJ9KSA9IGZsb2F0KCR7dGV4dHVyZX0uZ2V0
X2hlaWdodCgpKTtgCisgICAgXS5qb2luKCJcbiIpOworfQorCitmdW5jdGlvbiBSV1RleHR1cmUy
RExvYWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbG9jYXRpb25dKQoreworICAgIC8vIEZJWE1F
OiBUaGUgc3RhbmRhcmQgbGlicmFyeSBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIHVpbnQgaGVyZSB0
b28uCisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnJlYWQodWludDIodWludCgk
e2xvY2F0aW9ufS54KSwgdWludCgke2xvY2F0aW9ufS55KSkpLiR7c3dpenpsZUNhc3Qobm9kZSl9
O2A7Cit9CisKK2Z1bmN0aW9uIFJXVGV4dHVyZTJEU3RvcmUobm9kZSwgcmVzdWx0LCBbdGV4dHVy
ZSwgdmFsdWUsIGxvY2F0aW9uXSkKK3sKKyAgICAvLyBXZWlyZGx5IHRoZSBzdGFuZGFyZCBsaWJy
YXJ5IGRvZXMgaGF2ZSBhIHVpbnQgaGVyZSDCr1xfKOODhClfL8KvCisgICAgcmV0dXJuIGAke3Rl
eHR1cmV9LndyaXRlKCR7dmFsdWV9LCAke2xvY2F0aW9ufSk7YDsKK30KKworZnVuY3Rpb24gUldU
ZXh0dXJlMkRBcnJheUdldERpbWVuc2lvbnMobm9kZSwgcmVzdWx0LCBbdGV4dHVyZUFycmF5LCB3
aWR0aFBvaW50ZXIsIGhlaWdodFBvaW50ZXIsIG51bUVsZW1lbnRzUG9pbnRlcl0pCit7CisgICAg
cmV0dXJuIFsKKyAgICAgICAgYCooJHt3aWR0aFBvaW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X3dp
ZHRoKCk7YCwKKyAgICAgICAgYCooJHtoZWlnaHRQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF9o
ZWlnaHQoKTtgLAorICAgICAgICBgKigke251bUVsZW1lbnRzUG9pbnRlcn0pID0gJHt0ZXh0dXJl
fS5nZXRfYXJyYXlfc2l6ZSgpO2AsCisgICAgXS5qb2luKCJcbiIpOworfQorCitmdW5jdGlvbiBS
V1RleHR1cmUyREFycmF5R2V0RGltZW5zaW9uc0Zsb2F0KG5vZGUsIHJlc3VsdCwgW3RleHR1cmUs
IHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9pbnRlciwgbnVtRWxlbWVudFBvaW50ZXJdKQoreworICAg
IHJldHVybiBbCisgICAgICAgIGAqKCR7d2lkdGhQb2ludGVyfSkgPSBmbG9hdCgke3RleHR1cmV9
LmdldF93aWR0aCgpKTtgLAorICAgICAgICBgKigke3dpZHRoUG9pbnRlcn0pID0gZmxvYXQoJHt0
ZXh0dXJlfS5nZXRfd2lkdGgoKSk7YCwKKyAgICAgICAgYCooJHtudW1FbGVtZW50c1BvaW50ZXJ9
KSA9ICR7dGV4dHVyZX0uZ2V0X2FycmF5X3NpemUoKTtgLAorICAgIF0uam9pbigiXG4iKTsKK30K
KworZnVuY3Rpb24gUldUZXh0dXJlMkRBcnJheUxvYWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwg
bG9jYXRpb25dKQoreworICAgIC8vIEZJWE1FOiBUaGUgc3RhbmRhcmQgbGlicmFyeSBzaG91bGQg
cHJvYmFibHkgaGF2ZSBhIHVpbnQgaGVyZSB0b28uCisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAk
e3RleHR1cmV9LnJlYWQodWludDIodWludCgke2xvY2F0aW9ufS54KSwgdWludCgke2xvY2F0aW9u
fS55KSksIHVpbnQoJHtsb2NhdGlvbn0ueikpLiR7c3dpenpsZUNhc3Qobm9kZSl9O2A7Cit9CisK
K2Z1bmN0aW9uIFJXVGV4dHVyZTJEQXJyYXlTdG9yZShub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCB2
YWx1ZSwgbG9jYXRpb25dKQoreworICAgIC8vIFdlaXJkbHkgdGhlIHN0YW5kYXJkIGxpYnJhcnkg
ZG9lcyBoYXZlIGEgdWludCBoZXJlIMKvXF8o44OEKV8vwq8KKyAgICByZXR1cm4gYCR7dGV4dHVy
ZX0ud3JpdGUoJHt2YWx1ZX0sIHVpbnQyKCR7bG9jYXRpb259LngsICR7bG9jYXRpb259LnkpLCAk
e2xvY2F0aW9ufS56KTtgOworfQorCitmdW5jdGlvbiBSV1RleHR1cmUzREdldERpbWVuc2lvbnMo
bm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgd2lkdGhQb2ludGVyLCBoZWlnaHRQb2ludGVyLCBkZXB0
aFBvaW50ZXJdKQoreworICAgIHJldHVybiBbCisgICAgICAgIGAqKCR7d2lkdGhQb2ludGVyfSkg
PSAke3RleHR1cmV9LmdldF93aWR0aCgpO2AsCisgICAgICAgIGAqKCR7aGVpZ2h0UG9pbnRlcn0p
ID0gJHt0ZXh0dXJlfS5nZXRfaGVpZ2h0KCk7YCwKKyAgICAgICAgYCooJHtkZXB0aFBvaW50ZXJ9
KSA9ICR7dGV4dHVyZX0uZ2V0X2RlcHRoKCk7YCwKKyAgICBdLmpvaW4oIlxuIik7Cit9CisKK2Z1
bmN0aW9uIFJXVGV4dHVyZTNER2V0RGltZW5zaW9uc0Zsb2F0KG5vZGUsIHJlc3VsdCwgW3RleHR1
cmUsIHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9pbnRlciwgZGVwdGhQb2ludGVyXSkKK3sKKyAgICBy
ZXR1cm4gWworICAgICAgICBgKigke3dpZHRoUG9pbnRlcn0pID0gZmxvYXQoJHt0ZXh0dXJlfS5n
ZXRfd2lkdGgoKSk7YCwKKyAgICAgICAgYCooJHtoZWlnaHRQb2ludGVyfSkgPSBmbG9hdCgke3Rl
eHR1cmV9LmdldF9oZWlnaHQoKSk7YCwKKyAgICAgICAgYCooJHtkZXB0aFBvaW50ZXJ9KSA9IGZs
b2F0KCR7dGV4dHVyZX0uZ2V0X2RlcHRoKCkpO2AsCisgICAgXS5qb2luKCJcbiIpOworfQorCitm
dW5jdGlvbiBSV1RleHR1cmUzRExvYWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbG9jYXRpb25d
KQoreworICAgIC8vIEZJWE1FOiBTYW1lIGNhdmFldHMgYXBwbHkgYWJvdXQgaW50My91aW50My4K
KyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0ucmVhZCh1aW50Myh1aW50KCR7bG9j
YXRpb259LngpLCB1aW50KCR7bG9jYXRpb259LnkpLCB1aW50KCR7bG9jYXRpb259LnopKSkuJHtz
d2l6emxlQ2FzdChub2RlKX07YDsKK30KKworZnVuY3Rpb24gUldUZXh0dXJlM0RTdG9yZShub2Rl
LCByZXN1bHQsIFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKQoreworICAgIHJldHVybiBgJHt0
ZXh0dXJlfS53cml0ZSgke3ZhbHVlfSwgJHtsb2NhdGlvbn0pO2AKK30KKworZnVuY3Rpb24gVGV4
dHVyZURlcHRoMkRTYW1wbGUobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtzYW1w
bGVyfSwgJHtsb2NhdGlvbn0pO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJEU2FtcGxl
V2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlKCR7c2Ft
cGxlcn0sICR7bG9jYXRpb259LCAke29mZnNldH0pO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVE
ZXB0aDJEU2FtcGxlQ21wKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWVdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5z
YW1wbGVfY29tcGFyZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgJHtjb21wYXJlVmFsdWV9KTtg
OworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyRFNhbXBsZUNtcFdpdGhPZmZzZXQobm9kZSwg
cmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0
XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlX2NvbXBhcmUo
JHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sICR7Y29tcGFyZVZhbHVlfSwgJHtvZmZzZXR9KTtgOwor
fQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyRFNhbXBsZUNtcExldmVsWmVybyhub2RlLCByZXN1
bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkKK3sKKyAgICBy
ZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlX2NvbXBhcmUoJHtzYW1wbGVyfSwg
JHtsb2NhdGlvbn0sICR7Y29tcGFyZVZhbHVlfSwgbGV2ZWwoMCkpO2A7Cit9CisKK2Z1bmN0aW9u
IFRleHR1cmVEZXB0aDJEU2FtcGxlQ21wTGV2ZWxaZXJvV2l0aE9mZnNldChub2RlLCByZXN1bHQs
IFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKQorewor
ICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGVfY29tcGFyZSgke3NhbXBs
ZXJ9LCAke2xvY2F0aW9ufSwgJHtjb21wYXJlVmFsdWV9LCBsZXZlbCgwKSwgJHtvZmZzZXR9KTtg
OworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyRFNhbXBsZUJpYXMobm9kZSwgcmVzdWx0LCBb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKQoreworICAgIHJldHVybiBgJHtyZXN1
bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sIGJpYXMoJHti
aWFzfSkpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJEU2FtcGxlQmlhc1dpdGhPZmZz
ZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1
ZSwgYmlhcywgb2Zmc2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0u
c2FtcGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LGJpYXMoJHtiaWFzfSksICR7b2Zmc2V0fSk7
YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRoMkRTYW1wbGVHcmFkKG5vZGUsIHJlc3VsdCwg
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pCit7CisgICAgcmV0dXJuIGAk
e3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwgZ3Jh
ZGllbnQyZCgke2RkeH0sICR7ZGR5fSkpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJE
U2FtcGxlR3JhZFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0
ZXh0dXJlfS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sIGdyYWRpZW50MmQoJHtkZHh9
LCAke2RkeX0pLCAke29mZnNldH0pO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJEU2Ft
cGxlTGV2ZWwobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0p
Cit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9
LCAke2xvY2F0aW9ufSwgbGV2ZWwoJHtsb2R9KSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURl
cHRoMkRTYW1wbGVMZXZlbFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7
dGV4dHVyZX0uc2FtcGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCBsZXZlbCgke2xvZH0pLCAk
e29mZnNldH0pO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJER2F0aGVyUmVkKG5vZGUs
IHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7
cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyKCR7c2FtcGxlcn0sICR7bG9jYXRpb259KTtgOwor
fQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREdhdGhlclJlZFdpdGhPZmZzZXQobm9kZSwgcmVz
dWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgcmV0dXJu
IGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LmdhdGhlcigke3NhbXBsZXJ9LCAke2xvY2F0aW9ufSwg
JHtvZmZzZXR9KTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREdhdGhlckNvbXBhcmVS
ZWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1
ZV0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LmdhdGhlcl9jb21wYXJl
KCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCAke2NvbXBhcmVWYWx1ZX0pO2A7Cit9CisKK2Z1bmN0
aW9uIFRleHR1cmVEZXB0aDJER2F0aGVyQ29tcGFyZVJlZFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0
LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkKK3sK
KyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyX2NvbXBhcmUoJHtzYW1w
bGVyfSwgJHtsb2NhdGlvbn0sICR7Y29tcGFyZVZhbHVlfSwgJHtvZmZzZXR9KTtgOworfQorCitm
dW5jdGlvbiBUZXh0dXJlRGVwdGgyRExvYWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbG9jYXRp
b25dKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5yZWFkKHVpbnQyKHVp
bnQoJHtsb2NhdGlvbn0ueCksIHVpbnQoJHtsb2NhdGlvbn0ueSkpLCB1aW50KCR7bG9jYXRpb259
LnopKTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyRExvYWRXaXRoT2Zmc2V0KG5vZGUs
IHJlc3VsdCwgW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIHRocm93IG5ldyBF
cnJvcigiRklYTUU6IFRleHR1cmVEZXB0aDJETG9hZFdpdGhPZmZzZXQgbmVlZHMgZW11bGF0aW9u
LiIpOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREdldERpbWVuc2lvbnMobm9kZSwgcmVz
dWx0LCBbdGV4dHVyZSwgbWlwTGV2ZWwsIHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9pbnRlciwgbnVt
YmVyT2ZMZXZlbHNQb2ludGVyXSkKK3sKKyAgICByZXR1cm4gWworICAgICAgICBgKigke3dpZHRo
UG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfd2lkdGgoJHttaXBMZXZlbH0pO2AsCisgICAgICAg
IGAqKCR7aGVpZ2h0UG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfaGVpZ2h0KCR7bWlwTGV2ZWx9
KTtgLAorICAgICAgICBgKigke251bWJlck9mTGV2ZWxzUG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5n
ZXRfbnVtX21pcF9sZXZlbHMoKTtgLAorICAgIF0uam9pbigiXG4iKTsKK30KKworLy8gRklYTUU6
IHRleHR1cmUgLT4gdGV4dHVyZUFycmF5IGZvciBjb25zaXN0ZW5jeT8KKworZnVuY3Rpb24gVGV4
dHVyZURlcHRoMkRBcnJheVNhbXBsZShub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZSgk
e3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSk7YDsKK30KKwor
ZnVuY3Rpb24gVGV4dHVyZURlcHRoMkRBcnJheVNhbXBsZVdpdGhPZmZzZXQobm9kZSwgcmVzdWx0
LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pCit7CisgICAgcmV0dXJuIGAk
e3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwg
dWludCgke2xvY2F0aW9ufS56KSwgJHtvZmZzZXR9KTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJl
RGVwdGgyREFycmF5U2FtcGxlQ21wKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBjb21wYXJlVmFsdWVdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0
dXJlfS5zYW1wbGVfY29tcGFyZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xv
Y2F0aW9ufS56LCAke2NvbXBhcmVWYWx1ZX0pKTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVw
dGgyREFycmF5U2FtcGxlQ21wV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4
dHVyZX0uc2FtcGxlX2NvbXBhcmUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVpbnQoJHts
b2NhdGlvbn0ueiksICR7Y29tcGFyZVZhbHVlfSwgJHtvZmZzZXR9KTtgOworfQorCitmdW5jdGlv
biBUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlQ21wTGV2ZWxaZXJvKG5vZGUsIHJlc3VsdCwgW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKQoreworICAgIHJldHVybiBg
JHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGVfY29tcGFyZSgke3NhbXBsZXJ9LCAke2xvY2F0
aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56LCAke2NvbXBhcmVWYWx1ZX0sIGxldmVsKDApKSk7
YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRoMkRBcnJheVNhbXBsZUNtcExldmVsWmVyb1dp
dGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZV9jb21wYXJl
KCR7c2FtcGxlcn0sICR7bG9jYXRpb259Lnh5LCB1aW50KCR7bG9jYXRpb259LnopLCAke2NvbXBh
cmVWYWx1ZX0sIGxldmVsKDApLCAke29mZnNldH0pO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVE
ZXB0aDJEQXJyYXlTYW1wbGVCaWFzKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBiaWFzXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2Ft
cGxlKCR7c2FtcGxlcn0sICR7bG9jYXRpb259Lnh5LCB1aW50KCR7bG9jYXRpb259LnosIGJpYXMo
JHtiaWFzfSkpKTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlQmlh
c1dpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldCwgYmlhc10pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBs
ZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSwgYmlhcygk
e2JpYXN9KSwgJHtvZmZzZXR9KTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREFycmF5
U2FtcGxlR3JhZChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4
LCBkZHldKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGUoJHtz
YW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVpbnQoJHtsb2NhdGlvbn0ueiwgZ3JhZGllbnQyZCgk
e2RkeH0sICR7ZGR5fSkpKTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREFycmF5U2Ft
cGxlR3JhZFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldCwgYmlhc10pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9
LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSwg
Z3JhZGllbnQyZCgke2RkeH0sICR7ZGR5fSksICR7b2Zmc2V0fSk7YDsKK30KKworZnVuY3Rpb24g
VGV4dHVyZURlcHRoMkRBcnJheVNhbXBsZUxldmVsKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBsb2RdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0
dXJlfS5zYW1wbGUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVpbnQoJHtsb2NhdGlvbn0u
eiwgbGV2ZWwoJHtsb2R9KSkpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJEQXJyYXlT
YW1wbGVMZXZlbFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldCwgYmlhc10pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1
cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56
KSwgbGV2ZWwoJHtsb2R9KSwgJHtvZmZzZXR9KTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVw
dGgyREFycmF5R2F0aGVyUmVkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyKCR7c2Ft
cGxlcn0sICR7bG9jYXRpb259Lnh5LCB1aW50KCR7bG9jYXRpb259LnopKTtgCit9CisKK2Z1bmN0
aW9uIFRleHR1cmVEZXB0aDJEQXJyYXlHYXRoZXJSZWRXaXRoT2Zmc2V0KG5vZGUsIHJlc3VsdCwg
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKQoreworICAgIHJldHVybiBgJHty
ZXN1bHR9ID0gJHt0ZXh0dXJlfS5nYXRoZXIoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0ueHksIHVp
bnQoJHtsb2NhdGlvbn0ueiwgJHtvZmZzZXR9KSk7YAorfQorCitmdW5jdGlvbiBUZXh0dXJlRGVw
dGgyREFycmF5R2F0aGVyQ21wUmVkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBjb21wYXJlVmFsdWVdKQoreworICAgIHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0
dXJlfS5nYXRoZXJfY29tcGFyZSgke3NhbXBsZXJ9LCAke2xvY2F0aW9ufS54eSwgdWludCgke2xv
Y2F0aW9ufS56KSwgJHtjb21wYXJlVmFsdWV9KTtgOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVw
dGgyREFycmF5R2F0aGVyQ21wUmVkV2l0aE9mZnNldChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKQoreworICAgIHJldHVybiBg
JHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5nYXRoZXJfY29tcGFyZSgke3NhbXBsZXJ9LCAke2xvY2F0
aW9ufS54eSwgdWludCgke2xvY2F0aW9ufS56KSwgJHtjb21wYXJlVmFsdWV9LCAke29mZnNldH0p
O2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJEQXJyYXlMb2FkKG5vZGUsIHJlc3VsdCwg
W3RleHR1cmUsIGxvY2F0aW9uXSkKK3sKKyAgICAvLyBGSVhNRTogSSdtIG5vdCBzdXJlIHdoeSB0
aGUgV0hMU0wgQVBJIHRha2VzIGFuIGludDQgZm9yIHRoZSBsb2NhdGlvbiwgc28gSSdtIGxlYXZp
bmcgdW5pbXBsZW1lbnRlZCBmb3Igbm93LgorICAgIHRocm93IG5ldyBFcnJvcigiSW1wbGVtZW50
IFRleHR1cmVEZXB0aDJETG9hZCIpOworfQorCitmdW5jdGlvbiBUZXh0dXJlRGVwdGgyREFycmF5
TG9hZFdpdGhPZmZzZXQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0p
Cit7CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aHkgdGhlIFdITFNMIEFQSSB0YWtlcyBh
biBpbnQ0IGZvciB0aGUgbG9jYXRpb24sIHNvIEknbSBsZWF2aW5nIHVuaW1wbGVtZW50ZWQgZm9y
IG5vdy4KKyAgICB0aHJvdyBuZXcgRXJyb3IoIkltcGxlbWVudCBUZXh0dXJlRGVwdGgyRExvYWRX
aXRoT2Zmc2V0Iik7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aDJEQXJyYXlHZXREaW1lbnNp
b25zKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIG1pcExldmVsLCB3aWR0aFBvaW50ZXIsIGhlaWdo
dFBvaW50ZXIsIG51bUVsZW1lbnRzUG9pbnRlciwgbnVtYmVyTGV2ZWxzUG9pbnRlcl0pCit7Cisg
ICAgcmV0dXJuIFsKKyAgICAgICAgYCooJHt3aWR0aFBvaW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0
X3dpZHRoKCR7bWlwTGV2ZWx9KTtgLAorICAgICAgICBgKigke2hlaWdodFBvaW50ZXJ9KSA9ICR7
dGV4dHVyZX0uZ2V0X2hlaWdodCgke21pcExldmVsfSk7YCwKKyAgICAgICAgYCooJHtudW1FbGVt
ZW50c1BvaW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X2FycmF5X3NpemUoKTtgLAorICAgICAgICBg
Kigke251bWJlckxldmVsc1BvaW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X251bV9taXBfbGV2ZWxz
KCk7YAorICAgIF0uam9pbigiXG4iKTsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRoQ3ViZVNh
bXBsZShub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pCit7CisgICAg
cmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LnNhbXBsZSgke3NhbXBsZXJ9LCAke2xvY2F0
aW9ufSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRoQ3ViZVNhbXBsZUNtcChub2RlLCBy
ZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkKK3sKKyAg
ICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlX2NvbXBhcmUoJHtzYW1wbGVy
fSwgJHtsb2NhdGlvbn0sICR7Y29tcGFyZVZhbHVlfSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVy
ZURlcHRoQ3ViZVNhbXBsZUNtcExldmVsWmVybyhub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9
ICR7dGV4dHVyZX0uc2FtcGxlX2NvbXBhcmUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sICR7Y29t
cGFyZVZhbHVlfSwgbGV2ZWwoMCkpO2A7Cit9CisKK2Z1bmN0aW9uIFRleHR1cmVEZXB0aEN1YmVT
YW1wbGVCaWFzKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFz
XSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uc2FtcGxlX2JpYXMoJHtz
YW1wbGVyfSwgJHtsb2NhdGlvbn0sIGJpYXMoJHtiaWFzfSkpO2A7Cit9CisKK2Z1bmN0aW9uIFRl
eHR1cmVEZXB0aEN1YmVTYW1wbGVHcmFkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBkZHgsIGRkeV0pCit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1
cmV9LnNhbXBsZV9iaWFzKCR7c2FtcGxlcn0sICR7bG9jYXRpb259LCBncmFkaWVudDJkKCR7ZGR4
fSwgJHtkZHl9KSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRoQ3ViZVNhbXBsZUxldmVs
KG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKQoreworICAg
IHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5zYW1wbGVfYmlhcygke3NhbXBsZXJ9LCAk
e2xvY2F0aW9ufSwgbGV2ZWwoJHtsb2R9KSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRo
Q3ViZUdhdGhlclJlZChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
Cit7CisgICAgcmV0dXJuIGAke3Jlc3VsdH0gPSAke3RleHR1cmV9LmdhdGhlcigke3NhbXBsZXJ9
LCAke2xvY2F0aW9ufSk7YDsKK30KKworZnVuY3Rpb24gVGV4dHVyZURlcHRoQ3ViZUdhdGhlckNt
cFJlZChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlXSkKK3sKKyAgICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0uZ2F0aGVyX2NvbXBh
cmUoJHtzYW1wbGVyfSwgJHtsb2NhdGlvbn0sICR7Y29tcGFyZVZhbHVlfSk7YDsKK30KKworZnVu
Y3Rpb24gVGV4dHVyZURlcHRoQ3ViZUdldERpbWVuc2lvbnMobm9kZSwgcmVzdWx0LCBbdGV4dHVy
ZSwgbWlwTGV2ZWwsIHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9pbnRlciwgbnVtYmVyT2ZMZXZlbHNQ
b2ludGVyXSkKK3sKKyAgICByZXR1cm4gWworICAgICAgICBgKigke3dpZHRoUG9pbnRlcn0pID0g
JHt0ZXh0dXJlfS5nZXRfd2lkdGgoJHttaXBMZXZlbH0pO2AsCisgICAgICAgIGAqKCR7aGVpZ2h0
UG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfaGVpZ2h0KCR7bWlwTGV2ZWx9KTtgLAorICAgICAg
ICBgKigke251bWJlck9mTGV2ZWxzUG9pbnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfbnVtX21pcF9s
ZXZlbHMoKTtgCisgICAgXS5qb2luKCJcbiIpOworfQorCitmdW5jdGlvbiBSV1RleHR1cmVEZXB0
aDJER2V0RGltZW5zaW9ucyhub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCB3aWR0aFBvaW50ZXIsIGhl
aWdodFBvaW50ZXJdKQoreworICAgIHJldHVybiBbCisgICAgICAgIGAqKCR7d2lkdGhQb2ludGVy
fSkgPSAke3RleHR1cmV9LmdldF93aWR0aCgpO2AsCisgICAgICAgIGAqKCR7aGVpZ2h0UG9pbnRl
cn0pID0gJHt0ZXh0dXJlfS5nZXRfaGVpZ2h0KCk7YCwKKyAgICBdLmpvaW4oIlxuIik7Cit9CisK
K2Z1bmN0aW9uIFJXVGV4dHVyZURlcHRoMkRHZXREaW1lbnNpb25zRmxvYXQobm9kZSwgcmVzdWx0
LCBbdGV4dHVyZSwgd2lkdGhQb2ludGVyLCBoZWlnaHRQb2ludGVyXSkKK3sKKyAgICByZXR1cm4g
WworICAgICAgICBgKigke3dpZHRoUG9pbnRlcn0pID0gZmxvYXQoJHt0ZXh0dXJlfS5nZXRfd2lk
dGgoKSk7YCwKKyAgICAgICAgYCooJHtoZWlnaHRQb2ludGVyfSkgPSBmbG9hdCgke3RleHR1cmV9
LmdldF9oZWlnaHQoKSk7YCwKKyAgICBdLmpvaW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFJXVGV4
dHVyZURlcHRoMkRMb2FkKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIGxvY2F0aW9uXSkKK3sKKyAg
ICByZXR1cm4gYCR7cmVzdWx0fSA9ICR7dGV4dHVyZX0ucmVhZCh1aW50Mih1aW50KCR7bG9jYXRp
b259LngpLCB1aW50KCR7bG9jYXRpb259LnkpKSk7YDsKK30KKworZnVuY3Rpb24gUldUZXh0dXJl
RGVwdGgyRFN0b3JlKG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pCit7
CisgICAgLy8gSXQgaXNuJ3QgZG9jdW1lbnRlZCB0aGF0IHN1Y2ggYSBmdW5jdGlvbiBleGlzdHMg
aW4gTVNMLgorICAgIHRocm93IG5ldyBFcnJvcigiSW1wbGVtZW50IFJXVGV4dHVyZURlcHRoMkRT
dG9yZSIpOworfQorCitmdW5jdGlvbiBSV1RleHR1cmVEZXB0aDJEQXJyYXlHZXREaW1lbnNpb25z
KG5vZGUsIHJlc3VsdCwgW3RleHR1cmUsIHdpZHRoUG9pbnRlciwgaGVpZ2h0UG9pbnRlciwgbnVt
RWxlbWVudHNQb2ludGVyXSkKK3sKKyAgICByZXR1cm4gWworICAgICAgICBgKigke3dpZHRoUG9p
bnRlcn0pID0gJHt0ZXh0dXJlfS5nZXRfd2lkdGgoKTtgLAorICAgICAgICBgKigke2hlaWdodFBv
aW50ZXJ9KSA9ICR7dGV4dHVyZX0uZ2V0X2hlaWdodCgpO2AsCisgICAgICAgIGAqKCR7bnVtRWxl
bWVudHNQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF9hcnJheV9zaXplKCk7YCwKKyAgICBdLmpv
aW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFJXVGV4dHVyZURlcHRoMkRBcnJheUdldERpbWVuc2lv
bnNGbG9hdChub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCB3aWR0aFBvaW50ZXIsIGhlaWdodFBvaW50
ZXIsIG51bUVsZW1lbnRzUG9pbnRlcl0pCit7CisgICAgcmV0dXJuIFsKKyAgICAgICAgYCooJHt3
aWR0aFBvaW50ZXJ9KSA9IGZsb2F0KCR7dGV4dHVyZX0uZ2V0X3dpZHRoKCkpO2AsCisgICAgICAg
IGAqKCR7aGVpZ2h0UG9pbnRlcn0pID0gZmxvYXQoJHt0ZXh0dXJlfS5nZXRfaGVpZ2h0KCkpO2As
CisgICAgICAgIGAqKCR7bnVtRWxlbWVudHNQb2ludGVyfSkgPSAke3RleHR1cmV9LmdldF9hcnJh
eV9zaXplKCk7YCwKKyAgICBdLmpvaW4oIlxuIik7Cit9CisKK2Z1bmN0aW9uIFJXVGV4dHVyZURl
cHRoMkRBcnJheUxvYWQobm9kZSwgcmVzdWx0LCBbdGV4dHVyZSwgbG9jYXRpb25dKQoreworICAg
IHJldHVybiBgJHtyZXN1bHR9ID0gJHt0ZXh0dXJlfS5yZWFkKHVpbnQyKHVpbnQoJHtsb2NhdGlv
bn0ueCksIHVpbnQoJHtsb2NhdGlvbn0ueSkpKTtgOworfQorCitmdW5jdGlvbiBSV1RleHR1cmVE
ZXB0aDJEQXJyYXlTdG9yZShub2RlLCByZXN1bHQsIFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25d
KQoreworICAgIC8vIEl0IGlzbid0IGRvY3VtZW50ZWQgdGhhdCBzdWNoIGEgZnVuY3Rpb24gZXhp
c3RzIGluIE1TTC4KKyAgICB0aHJvdyBuZXcgRXJyb3IoIkltcGxlbWVudCBSV1RleHR1cmVEZXB0
aDJEQXJyYXlTdG9yZSIpOworfQorCiBmdW5jdGlvbiBtc2xOYXRpdmVGdW5jdGlvbkNhbGwobm9k
ZSwgcmVzdWx0VmFyaWFibGUsIGFyZ3MpCiB7CiAgICAgY29uc3Qga2V5ID0gbm9kZS50b1N0cmlu
ZygpOwogCi0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGUgc2FtcGxpbmcgZnVuY3Rpb25zLgog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZnVuY3Rpb25zIGxpa2UgZjE2dG9mMzIsIGFzZmxvYXQs
IGV0Yy4KICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRlc3RzIGZvciBhbGwgbmF0aXZlIGZ1bmN0
aW9ucyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NTM1LgogICAg
IGNvbnN0IGZ1bmN0aW9uc1dpdGhUaGVTYW1lQ2FsbGluZ0NvbnZlbnRpb24gPSB7CkBAIC03Miwx
MSArODg3LDE3OSBAQCBmdW5jdGlvbiBtc2xOYXRpdmVGdW5jdGlvbkNhbGwobm9kZSwgcmVzdWx0
VmFyaWFibGUsIGFyZ3MpCiAgICAgfQogCiAgICAgY29uc3QgZnVuY3Rpb25zV2l0aERpZmZlcmVu
dENhbGxpbmdDb252ZW50aW9ucyA9IHsKLSAgICAgICAgIm5hdGl2ZSB1aW50IGYzMnRvZjE2KGZs
b2F0KSIgOiAoKSA9PiBgJHtyZXN1bHRWYXJpYWJsZX0gPSB1aW50KHN0YXRpY19jYXN0PHVzaG9y
dD4oaGFsZigke2FyZ3NbMF19KSkpO2AsCi0gICAgICAgICJuYXRpdmUgZmxvYXQgZjE2dG9mMzIo
dWludCkiIDogKCkgPT4gYCR7cmVzdWx0VmFyaWFibGV9ID0gZmxvYXQoc3RhdGljX2Nhc3Q8aGFs
Zj4odXNob3J0KCR7YXJnc1swXX0pKSk7YAorICAgICAgICAibmF0aXZlIHVpbnQgZjMydG9mMTYo
ZmxvYXQpIiA6IChub2RlLCByZXN1bHRWYXJpYWJsZSwgYXJncykgPT4gYCR7cmVzdWx0VmFyaWFi
bGV9ID0gdWludChzdGF0aWNfY2FzdDx1c2hvcnQ+KGhhbGYoJHthcmdzWzBdfSkpKTtgLAorICAg
ICAgICAibmF0aXZlIGZsb2F0IGYxNnRvZjMyKHVpbnQpIiA6IChub2RlLCByZXN1bHRWYXJpYWJs
ZSwgYXJncykgPT4gYCR7cmVzdWx0VmFyaWFibGV9ID0gZmxvYXQoc3RhdGljX2Nhc3Q8aGFsZj4o
dXNob3J0KCR7YXJnc1swXX0pKSk7YAogICAgIH07CisKKyAgICAvLyBGSVhNRTogSSBjb3VsZCB1
c2UgdGhlIGZ1bGwgdmFyaWFibGUgbmFtZSBidXQgSSB3YW50ZWQgdG8gc2F2ZSB0eXBpbmcuCisg
ICAgY29uc3QgZnMgPSBmdW5jdGlvbnNXaXRoRGlmZmVyZW50Q2FsbGluZ0NvbnZlbnRpb25zOwor
CisgICAgLy8gVGhpcyBsb29wIGlzIGNvcGllZCBmcm9tIEludHJpbnNpY3MuanMKKyAgICBmb3Ig
KGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIs
ICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgIGZvciAobGV0IGxlbmd0aFZhcmlh
YmxlIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKKyAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9
IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdCBsb2NhdGlv
bilgXSA9IFRleHR1cmUxRFNhbXBsZTsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQg
bG9jYXRpb24saW50IG9mZnNldClgXSA9IFRleHR1cmUxRFNhbXBsZVdpdGhPZmZzZXQ7CisgICAg
ICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBl
fSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgXSA9IFRleHR1cmUxRExvYWQ7CisgICAgICAgICAg
ICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVu
Z3RofT4saW50MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWBdID0gVGV4dHVyZTFETG9hZFdpdGhPZmZz
ZXQ7CisgICAgICAgICAgICBmc1sgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBOdW1iZXJPZkxldmVscylgXSA9IFRleHR1cmUxREdldERpbWVuc2lvbnM7CisgICAg
ICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWBdID0gVGV4dHVyZTFE
QXJyYXlTYW1wbGU7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGludCBvZmZzZXQpYF0gPSBUZXh0dXJlMURBcnJheVNhbXBsZVdpdGhPZmZzZXQ7CisgICAg
ICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZTFEQXJyYXlMb2FkOwor
ICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQgb2Zmc2V0KWBdID0gVGV4dHVy
ZTFEQXJyYXlMb2FkV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWws
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYF0gPSBUZXh0dXJlMURBcnJheUdldERpbWVuc2lvbnM7CisgICAgICAgICAg
ICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgXSA9IFRleHR1cmUyRFNhbXBsZTsKKyAg
ICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWBdID0g
VGV4dHVyZTJEU2FtcGxlV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWBdID0gVGV4dHVyZTJEU2FtcGxlQmlhczsKKyAg
ICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGlu
dDIgb2Zmc2V0KWBdID0gVGV4dHVyZTJEU2FtcGxlQmlhc1dpdGhPZmZzZXQ7CisgICAgICAgICAg
ICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZ
KWBdID0gVGV4dHVyZTJEU2FtcGxlR3JhZDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYF0gPSBU
ZXh0dXJlMkRTYW1wbGVHcmFkV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWBdID0gVGV4dHVyZTJEU2FtcGxlTGV2ZWw7
CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExP
RCxpbnQyIG9mZnNldClgXSA9IFRleHR1cmUyRFNhbXBsZUxldmVsV2l0aE9mZnNldDsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBOb3QgYWxsIGdhdGhlciBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSBm
b3IgYWxsIHR5cGUgYXJndW1lbnQgbGVuZ3RocywgYnV0IHRoZSBjaGVja2VyIGhhcyBhbHJlYWR5
IGVuc3VyZWQgdGhhdCB0aGV5IGFyZW4ndCBiZWluZyB1c2VkLCBzbyBJJ20gYmVpbmcgbGF6eSBm
b3Igbm93IGFuZCBqdXN0IGluc2VydGluZyAqYWxsKiBvZiB0aGVtLgorICAgICAgICAgICAgZnNb
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uKWBdID0gVGV4dHVyZTJER2F0aGVyUmVkOworICAgICAgICAgICAg
ZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZTJER2F0aGVyUmVk
V2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgXSA9IFRl
eHR1cmUyREdhdGhlclJlZDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgXSA9IFRleHR1cmUyREdhdGhlclJlZFdpdGhPZmZzZXQ7CisgICAgICAgICAg
ICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgXSA9IFRleHR1cmUyREdhdGhlckdyZWVuOwor
ICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYF0gPSBU
ZXh0dXJlMkRHYXRoZXJHcmVlbldpdGhPZmZzZXQ7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWBdID0gVGV4dHVyZTJER2F0aGVyQmx1ZTsKKyAgICAgICAgICAgIGZzW2Bu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYF0gPSBUZXh0dXJlMkRHYXRoZXJCbHVl
V2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWBdID0g
VGV4dHVyZTJER2F0aGVyQWxwaGE7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdh
dGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgXSA9IFRleHR1cmUyREdhdGhlckFscGhhV2l0aE9mZnNldDsKKyAg
ICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZTJETG9hZDsKKyAgICAgICAg
ICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZTJETG9hZFdpdGhP
ZmZzZXQ7CisgICAgICAgICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
MkQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYF0gPSBUZXh0dXJl
MkRHZXREaW1lbnNpb25zOworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgXSA9IFRleHR1cmUyREFycmF5U2FtcGxlOworICAgICAgICAgICAgZnNbYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9IFRleHR1cmUyREFycmF5
U2FtcGxlV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYF0gPSBUZXh0dXJlMkRBcnJheVNhbXBsZUJpYXM7Cisg
ICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBC
aWFzLGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZTJEQXJyYXlTYW1wbGVCaWFzV2l0aE9mZnNldDsK
KyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
MiBERFgsZmxvYXQyIEREWSlgXSA9IFRleHR1cmUyREFycmF5U2FtcGxlR3JhZDsKKyAgICAgICAg
ICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxv
YXQyIEREWSxpbnQyIG9mZnNldClgXSA9IFRleHR1cmUyREFycmF5U2FtcGxlR3JhZFdpdGhPZmZz
ZXQ7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgTE9EKWBdID0gVGV4dHVyZTJEQXJyYXlTYW1wbGVMZXZlbDsKKyAgICAgICAgICAgIGZz
W2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZz
ZXQpYF0gPSBUZXh0dXJlMkRBcnJheVNhbXBsZUxldmVsV2l0aE9mZnNldDsKKyAgICAgICAgICAg
IGZzW2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZTJEQXJyYXlHYXRoZXJSZWQ7
CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9
IFRleHR1cmUyREFycmF5R2F0aGVyUmVkV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZTJEQXJyYXlHYXRoZXJSZWQ7CisgICAg
ICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9IFRl
eHR1cmUyREFycmF5R2F0aGVyUmVkV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYF0gPSBUZXh0dXJlMkRBcnJheUdhdGhlckdyZWVuOworICAg
ICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9
IFRleHR1cmUyREFycmF5R2F0aGVyR3JlZW5XaXRoT2Zmc2V0OworICAgICAgICAgICAgZnNbYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZTJEQXJyYXlHYXRoZXJCbHVlOwor
ICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWBd
ID0gVGV4dHVyZTJEQXJyYXlHYXRoZXJCbHVlV2l0aE9mZnNldDsKKyAgICAgICAgICAgIGZzW2Bu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYF0gPSBUZXh0dXJlMkRBcnJheUdhdGhlckFscGhh
OworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgXSA9IFRleHR1cmUyREFycmF5R2F0aGVyQWxwaGFXaXRoT2Zmc2V0OworICAgICAgICAgICAg
ZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4saW50NCBsb2NhdGlvbilgXSA9IFRleHR1cmUyREFycmF5TG9hZDsKKyAgICAgICAg
ICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYF0gPSBUZXh0dXJlMkRBcnJh
eUxvYWRXaXRoT2Zmc2V0OworICAgICAgICAgICAgZnNbYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWlu
dCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWBdID0gVGV4dHVyZTJEQXJyYXlHZXREaW1lbnNpb25z
OworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYF0gPSBUZXh0dXJl
M0RTYW1wbGU7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
KFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQz
IG9mZnNldClgXSA9IFRleHR1cmUzRFNhbXBsZVdpdGhPZmZzZXQ7CisgICAgICAgICAgICBmc1tg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
aW50NCBsb2NhdGlvbilgXSA9IFRleHR1cmUzRExvYWQ7CisgICAgICAgICAgICBmc1tgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBs
b2NhdGlvbixpbnQzIG9mZnNldClgXSA9IFRleHR1cmUzRExvYWRXaXRoT2Zmc2V0OworICAgICAg
ICAgICAgZnNbYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xl
bmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQsdWludCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgXSA9IFRl
eHR1cmUzREdldERpbWVuc2lvbnM7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWBdID0gVGV4dHVyZUN1YmVTYW1wbGU7CisgICAgICAgICAgICBmc1tgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWBdID0gVGV4dHVyZUN1YmVTYW1w
bGVCaWFzOworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdy
YWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQzIEREWCxmbG9hdDMgRERZKWBdID0gVGV4dHVyZUN1YmVTYW1wbGVHcmFkOworICAgICAg
ICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVDdWJl
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgXSA9
IFRleHR1cmVDdWJlU2FtcGxlTGV2ZWw7CisgICAgICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgXSA9IFRleHR1cmVDdWJlR2F0aGVyUmVkOworICAgICAgICAgICAgZnNbYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYF0gPSBUZXh0dXJlQ3ViZUdhdGhlclJlZDsKKyAgICAgICAgICAgIGZz
W2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYF0gPSBUZXh0dXJlQ3ViZUdhdGhlckdyZWVuOwor
ICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZUN1YmVH
YXRoZXJCbHVlOworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgXSA9
IFRleHR1cmVDdWJlR2F0aGVyQWxwaGE7CisgICAgICAgICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVp
bnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJP
ZkxldmVscylgXSA9IFRleHR1cmVDdWJlR2V0RGltZW5zaW9uczsKKyAgICAgICAgICAgIGZzW2Bu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVp
bnQqIHRocmVhZCBXaWR0aClgXSA9IFJXVGV4dHVyZTFER2V0RGltZW5zaW9uczsKKyAgICAgICAg
ICAgIGZzW2BuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xl
bmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYF0gPSBSV1RleHR1cmUxREdldERpbWVuc2lvbnNG
bG9hdDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludCBsb2NhdGlvbilgXSA9IFJXVGV4dHVyZTFETG9h
ZDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9
JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQgbG9jYXRpb24pYF0gPSBSV1RleHR1cmUx
RFN0b3JlOworICAgICAgICAgICAgZnNbYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0
dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEVsZW1lbnRzKWBdID0gUldUZXh0dXJlMURBcnJheUdldERpbWVuc2lvbnM7CisgICAgICAg
ICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWBd
ID0gUldUZXh0dXJlMURBcnJheUdldERpbWVuc2lvbnNGbG9hdDsKKyAgICAgICAgICAgIGZzW2Bu
YXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4saW50MiBsb2NhdGlvbilgXSA9IFJXVGV4dHVyZTFEQXJyYXlMb2FkOworICAgICAgICAg
ICAgZnNbYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgXSA9IFJXVGV4dHVyZTFEQXJyYXlT
dG9yZTsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0KWBdID0gUldUZXh0dXJlMkRHZXREaW1lbnNpb25zOworICAgICAgICAgICAgZnNbYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQq
IHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgXSA9IFJXVGV4dHVyZTJER2V0RGlt
ZW5zaW9uc0Zsb2F0OworICAgICAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgXSA9IFJXVGV4
dHVyZTJETG9hZDsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWBdID0g
UldUZXh0dXJlMkRTdG9yZTsKKyAgICAgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWBdID0gUldUZXh0dXJl
MkRBcnJheUdldERpbWVuc2lvbnM7CisgICAgICAgICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQg
V2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgXSA9IFJX
VGV4dHVyZTJEQXJyYXlHZXREaW1lbnNpb25zRmxvYXQ7CisgICAgICAgICAgICBmc1tgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LGludDMgbG9jYXRpb24pYF0gPSBSV1RleHR1cmUyREFycmF5TG9hZDsKKyAgICAgICAgICAgIGZz
W2BuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7
dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24pYF0gPSBSV1RleHR1cmUyREFycmF5U3RvcmU7
CisgICAgICAgICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgRGVwdGgpYF0gPSBSV1RleHR1cmUzREdldERpbWVuc2lvbnM7CisgICAgICAg
ICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0
aHJlYWQgRGVwdGgpYF0gPSBSV1RleHR1cmUzREdldERpbWVuc2lvbnNGbG9hdDsKKyAgICAgICAg
ICAgIGZzW2BuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LGludDMgbG9jYXRpb24pYF0gPSBSV1RleHR1cmUzRExvYWQ7CisgICAgICAgICAg
ICBmc1tgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0
eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgXSA9IFJXVGV4dHVyZTNEU3RvcmU7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICAvLyBBZ2FpbiwgdGhpcyBsaW5lIGlzIGNvcGllZCBmcm9tIElu
dHJpbnNpY3MuanMgKGFyb3VuZCBsaW5lIDE2NzgpCisgICAgZm9yIChsZXQgdHlwZSBvZiBbImhh
bGYiLCAiZmxvYXQiXSkgeworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWBdID0gVGV4dHVyZURl
cHRoMkRTYW1wbGU7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYF0gPSBU
ZXh0dXJlRGVwdGgyRFNhbXBsZVdpdGhPZmZzZXQ7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYF0gPSBUZXh0dXJlRGVwdGgyRFNhbXBsZUNtcDsKKyAg
ICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNl
dClgXSA9IFRleHR1cmVEZXB0aDJEU2FtcGxlQ21wV2l0aE9mZnNldDsKKyAgICAgICAgZnNbYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgXSA9IFRleHR1cmVE
ZXB0aDJEU2FtcGxlQ21wTGV2ZWxaZXJvOworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZURlcHRo
MkRTYW1wbGVDbXBMZXZlbFplcm9XaXRoT2Zmc2V0OworICAgICAgICBmc1tgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixmbG9hdCBCaWFzKWBdID0gVGV4dHVyZURlcHRoMkRTYW1wbGVCaWFzOworICAgICAgICBm
c1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZURl
cHRoMkRTYW1wbGVCaWFzV2l0aE9mZnNldDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
ZmxvYXQyIEREWCxmbG9hdDIgRERZKWBdID0gVGV4dHVyZURlcHRoMkRTYW1wbGVHcmFkOworICAg
ICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZz
ZXQpYF0gPSBUZXh0dXJlRGVwdGgyRFNhbXBsZUdyYWRXaXRoT2Zmc2V0OworICAgICAgICBmc1tg
bmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWBdID0gVGV4dHVyZURlcHRoMkRTYW1wbGVMZXZl
bDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClg
XSA9IFRleHR1cmVEZXB0aDJEU2FtcGxlTGV2ZWxXaXRoT2Zmc2V0OworICAgICAgICBmc1tgbmF0
aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgXSA9IFRleHR1cmVEZXB0aDJER2F0aGVyUmVkOworICAgICAgICBmc1tgbmF0
aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9IFRleHR1cmVEZXB0aDJER2F0aGVyUmVkV2l0aE9m
ZnNldDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYF0gPSBUZXh0dXJlRGVwdGgyREdh
dGhlclJlZDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYF0gPSBU
ZXh0dXJlRGVwdGgyREdhdGhlclJlZFdpdGhPZmZzZXQ7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYF0gPSBUZXh0dXJlRGVwdGgyREdhdGhlckNvbXBh
cmVSZWQ7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUs
aW50MiBvZmZzZXQpYF0gPSBUZXh0dXJlRGVwdGgyREdhdGhlckNvbXBhcmVSZWRXaXRoT2Zmc2V0
OworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWBd
ID0gVGV4dHVyZURlcHRoMkRHYXRoZXJDb21wYXJlUmVkOworICAgICAgICBmc1tgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZURl
cHRoMkRHYXRoZXJDb21wYXJlUmVkV2l0aE9mZnNldDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgXSA9IFRleHR1
cmVEZXB0aDJETG9hZDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9IFRleHR1cmVEZXB0
aDJETG9hZFdpdGhPZmZzZXQ7CisgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWBdID0gVGV4
dHVyZURlcHRoMkRHZXREaW1lbnNpb25zOworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YF0gPSBUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlOworICAgICAgICBmc1tgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24saW50MiBvZmZzZXQpYF0gPSBUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlV2l0aE9mZnNl
dDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVl
KWBdID0gVGV4dHVyZURlcHRoMkRBcnJheVNhbXBsZUNtcDsKKyAgICAgICAgZnNbYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWBdID0gVGV4dHVy
ZURlcHRoMkRBcnJheVNhbXBsZUNtcFdpdGhPZmZzZXQ7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0
eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgXSA9IFRleHR1cmVEZXB0
aDJEQXJyYXlTYW1wbGVDbXBMZXZlbFplcm87CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSBT
YW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgXSA9IFRleHR1
cmVEZXB0aDJEQXJyYXlTYW1wbGVDbXBMZXZlbFplcm9XaXRoT2Zmc2V0OworICAgICAgICBmc1tg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYF0gPSBUZXh0dXJlRGVwdGgyREFycmF5
U2FtcGxlQmlhczsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFz
LGludDIgb2Zmc2V0KWBdID0gVGV4dHVyZURlcHRoMkRBcnJheVNhbXBsZUJpYXNXaXRoT2Zmc2V0
OworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIERE
WSlgXSA9IFRleHR1cmVEZXB0aDJEQXJyYXlTYW1wbGVHcmFkOworICAgICAgICBmc1tgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgXSA9IFRl
eHR1cmVEZXB0aDJEQXJyYXlTYW1wbGVHcmFkV2l0aE9mZnNldDsKKyAgICAgICAgZnNbYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWBdID0gVGV4dHVyZURlcHRoMkRBcnJheVNhbXBs
ZUxldmVsOworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50
MiBvZmZzZXQpYF0gPSBUZXh0dXJlRGVwdGgyREFycmF5U2FtcGxlTGV2ZWxXaXRoT2Zmc2V0Owor
ICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZURlcHRoMkRBcnJheUdh
dGhlclJlZDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9
IFRleHR1cmVEZXB0aDJEQXJyYXlHYXRoZXJSZWRXaXRoT2Zmc2V0OworICAgICAgICBmc1tgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4dHVyZURlcHRoMkRBcnJheUdhdGhlclJlZDsKKyAg
ICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgXSA9IFRleHR1cmVE
ZXB0aDJEQXJyYXlHYXRoZXJSZWRXaXRoT2Zmc2V0OworICAgICAgICBmc1tgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYF0gPSBUZXh0dXJlRGVwdGgyREFycmF5R2F0
aGVyQ21wUmVkOworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBh
cmVfdmFsdWUsaW50MiBvZmZzZXQpYF0gPSBUZXh0dXJlRGVwdGgyREFycmF5R2F0aGVyQ21wUmVk
V2l0aE9mZnNldDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBj
b21wYXJlX3ZhbHVlKWBdID0gVGV4dHVyZURlcHRoMkRBcnJheUdhdGhlckNtcFJlZDsKKyAgICAg
ICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIg
b2Zmc2V0KWBdID0gVGV4dHVyZURlcHRoMkRBcnJheUdhdGhlckNtcFJlZFdpdGhPZmZzZXQ7Cisg
ICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4saW50NCBsb2NhdGlvbilgXSA9IFRleHR1cmVEZXB0aDJEQXJyYXlMb2FkOworICAgICAgICBm
c1tgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDQg
bG9jYXRpb24saW50MiBvZmZzZXQpYF0gPSBUZXh0dXJlRGVwdGgyREFycmF5TG9hZFdpdGhPZmZz
ZXQ7CisgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2
ZWxzKWBdID0gVGV4dHVyZURlcHRoMkRBcnJheUdldERpbWVuc2lvbnM7CisgICAgICAgIGZzW2Bu
YXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgXSA9IFRleHR1cmVEZXB0aEN1YmVTYW1wbGU7CisgICAgICAgIGZzW2Bu
YXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgXSA9IFRleHR1cmVEZXB0aEN1
YmVTYW1wbGVDbXA7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFpl
cm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5
cGV9IENvbXBhcmVWYWx1ZSlgXSA9IFRleHR1cmVEZXB0aEN1YmVTYW1wbGVDbXBMZXZlbFplcm87
CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgXSA9IFRleHR1cmVE
ZXB0aEN1YmVTYW1wbGVCaWFzOworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
MyBERFgsZmxvYXQzIEREWSlgXSA9IFRleHR1cmVEZXB0aEN1YmVTYW1wbGVHcmFkOworICAgICAg
ICBmc1tgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYF0gPSBUZXh0dXJlRGVwdGhDdWJl
U2FtcGxlTGV2ZWw7CisgICAgICAgIGZzW2BuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVE
ZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYF0gPSBUZXh0dXJlRGVw
dGhDdWJlR2F0aGVyUmVkOworICAgICAgICBmc1tgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWBdID0gVGV4
dHVyZURlcHRoQ3ViZUdhdGhlclJlZDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBjb21wYXJlX3ZhbHVlKWBdID0gVGV4dHVyZURlcHRoQ3ViZUdhdGhlckNtcFJlZDsKKyAg
ICAgICAgZnNbYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWBdID0g
VGV4dHVyZURlcHRoQ3ViZUdhdGhlckNtcFJlZDsKKyAgICAgICAgZnNbYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgXSA9IFRleHR1cmVEZXB0aEN1YmVHZXREaW1lbnNpb25zOworICAgICAgICBmc1tgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWBdID0gUldUZXh0dXJlRGVwdGgyREdldERp
bWVuc2lvbnM7CisgICAgICAgIGZzW2BuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdo
dClgXSA9IFJXVGV4dHVyZURlcHRoMkRHZXREaW1lbnNpb25zRmxvYXQ7CisgICAgICAgIGZzW2Bu
YXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50MiBsb2NhdGlv
bilgXSA9IFJXVGV4dHVyZURlcHRoMkRMb2FkOworICAgICAgICBmc1tgbmF0aXZlIHZvaWQgU3Rv
cmUoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWBdID0g
UldUZXh0dXJlRGVwdGgyRFN0b3JlOworICAgICAgICBmc1tgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVp
bnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWBdID0gUldUZXh0dXJlRGVw
dGgyREFycmF5R2V0RGltZW5zaW9uczsKKyAgICAgICAgZnNbYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgs
ZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgXSA9IFJXVGV4dHVy
ZURlcHRoMkRBcnJheUdldERpbWVuc2lvbnNGbG9hdDsKKyAgICAgICAgZnNbYG5hdGl2ZSAke3R5
cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYF0g
PSBSV1RleHR1cmVEZXB0aDJEQXJyYXlMb2FkOworICAgICAgICBmc1tgbmF0aXZlIHZvaWQgU3Rv
cmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24p
YF0gPSBSV1RleHR1cmVEZXB0aDJEQXJyYXlTdG9yZTsKKyAgICB9CisKICAgICBpZiAoa2V5IGlu
IGZ1bmN0aW9uc1dpdGhEaWZmZXJlbnRDYWxsaW5nQ29udmVudGlvbnMpCi0gICAgICAgIHJldHVy
biBmdW5jdGlvbnNXaXRoRGlmZmVyZW50Q2FsbGluZ0NvbnZlbnRpb25zW2tleV0oKTsKKyAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uc1dpdGhEaWZmZXJlbnRDYWxsaW5nQ29udmVudGlvbnNba2V5XShu
b2RlLCByZXN1bHRWYXJpYWJsZSwgYXJncyk7CiAKICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bm9k
ZX0gZG9lc24ndCBoYXZlIG1hcHBpbmcgdG8gYSBuYXRpdmUgTWV0YWwgZnVuY3Rpb24uYCk7CiB9
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMUHNldWRvTmF0aXZlRnVuY3Rpb25DYWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMUHNldWRvTmF0aXZlRnVuY3Rpb25D
YWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlMzAyZjMwNGVjM2E4MGE0YTMzNmM3OGM4ODgyN2Q0MGEyNjc4
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9NU0xQc2V1ZG9OYXRpdmVGdW5jdGlvbkNhbGwuanMKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NvbnN0IHBzZXVkb0NhbGxz
ID0gKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IGZzID0ge307CisgICAgZnNbIm9wZXJhdG9yIGZs
b2F0NChmbG9hdCB4LGZsb2F0IHksZmxvYXQgeixmbG9hdCB3KSJdID0gKG4sIHIsIFt4LCB5LCB6
LCB3XSkgPT4gYCR7cn0gPSBmbG9hdDQoJHt4fSwgJHt5fSwgJHt6fSwgJHt3fSk7YDsKKyAgICBm
c1sib3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LGZsb2F0IHksZmxvYXQgeikiXSA9IChuLCByLCBb
eCwgeSwgel0pID0+IGAke3J9ID0gZmxvYXQ0KCR7eH0sICR7eX0sICR7en0pO2A7CisgICAgZnNb
ImZsb2F0MiBvcGVyYXRvci54eShmbG9hdDIgdikiXSA9IChuLCByLCBbdl0pID0+IGAke3J9ID0g
JHt2fS54eTtgOworICAgIGZzWyJvcGVyYXRvciBmbG9hdDIoZmxvYXQgeCxmbG9hdCB5KSJdID0g
KG4sIHIsIFt4LCB5XSkgPT4gYCR7cn0gPSBmbG9hdDIoJHt4fSwgJHt5fSk7YDsKKyAgICAvLyBG
SVhNRTogTWFueSBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCB0cmFwLgorICAgIGZzWyJmbG9hdDIg
b3BlcmF0b3IvKGZsb2F0MiBhLGZsb2F0IGIpIl0gPSAobiwgciwgW2EsIGJdKSA9PiBgJHtyfSA9
ICR7YX0gLyAke2J9O2AKKyAgICAvLyBmc1siZmxvYXQgb3BlcmF0b3JbXShmbG9hdDIgdix1aW50
IGluZGV4KSJdID0gKgorICAgIC8vIGZzWyJmbG9hdDIgb3BlcmF0b3JbXT0oZmxvYXQyIHYsdWlu
dCBpbmRleCxmbG9hdCBhKSJdCisgICAgZnNbImZsb2F0MiBvcGVyYXRvci8oZmxvYXQyIGEsZmxv
YXQyIGIpIl0gPSAobiwgciwgW2EsIGJdKSA9PiBgJHtyfSA9ICR7YX0gLyAke2J9O2A7CisgICAg
Ly8gRklYTUU6IENoZWNrIHRoaXMgb25lLgorICAgIC8vIGZzWyJmbG9hdDQgb3BlcmF0b3IueHk9
KGZsb2F0NCB2LGZsb2F0MiBjKSJdID0gKG4sIHIsIFt2LCBjXSkgPT4gYCR7cn0gPSAke3Z9Lnh5
ID0gJHtjfTtgOworICAgIGZzWyJmbG9hdDMgb3BlcmF0b3IueHl6KGZsb2F0NCB2KSJdID0gKG4s
IHIsIFt2XSkgPT4gYCR7cn0gPSAke3Z9Lnh5ejtgOworICAgIGZzWyJvcGVyYXRvciBmbG9hdDQo
ZmxvYXQzIHgsZmxvYXQgeSkiXSA9IChuLCByLCBbeCwgeV0pID0+IGAke3J9ID0gZmxvYXQ0KCR7
eH0sICR7eX0pO2A7CisgICAgcmV0dXJuIGZzOworfSkoKTsKKworZnVuY3Rpb24gYW5ub3RhdGVQ
c2V1ZG9DYWxscyhwcm9ncmFtKQoreworICAgIGNvbnN0IGVudHJ5UG9pbnRzID0gZ2F0aGVyRW50
cnlQb2ludHMocHJvZ3JhbSk7CisgICAgY29uc3QgY2FsbGVlcyA9IGdhdGhlckNhbGxlZXMoZW50
cnlQb2ludHMpOworICAgIAorICAgIGZvciAobGV0IGNhbGxlZSBvZiBjYWxsZWVzKSB7CisgICAg
ICAgIGlmIChjYWxsZWUub3JpZ2luLmxleGVyLm9yaWdpbiA9PSAiL2ludGVybmFsL3N0ZGxpYiIp
IHsKKyAgICAgICAgICAgIGNvbnN0IGtleSA9IGNhbGxlZS50b0RlY2xTdHJpbmcoKTsKKyAgICAg
ICAgICAgIGlmIChwc2V1ZG9DYWxsc1trZXldKQorICAgICAgICAgICAgICAgIGNhbGxlZS5wc2V1
ZG9OYXRpdmVDYWxsID0gcHNldWRvQ2FsbHNba2V5XTsKKyAgICAgICAgfQorICAgIH0KK30KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9NU0xSZXdyaXRlU2hhZGVycy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL01TTFJld3JpdGVTaGFkZXJzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyZTU0
YWJkODFiNjZhNmViN2E0ZDQ5MWQ1ZTZmZGIzMTE5NGFhOWMKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xSZXdyaXRlU2hhZGVycy5qcwpA
QCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIGNvbGxlY3RQYXJhbWV0ZXJzKHByb2dyYW0s
IGVudHJ5UG9pbnQpCit7CisgICAgY29uc3QgcGFyYW1ldGVyT3JGaWVsZFBhdGhUb1NlbWFudGlj
TWFwID0gbmV3IE1hcCgpOworICAgIAorICAgIGNsYXNzIEZpbmRQYXRoQW5kU2VtYW50aWMgZXh0
ZW5kcyBWaXNpdG9yIHsKKyAgICAgICAgY29uc3RydWN0b3IocGFyYW0pCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICB0aGlzLl9wYXRoID0gWyBwYXJhbSBdOwor
ICAgICAgICAgICAgcGFyYW0udmlzaXQodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
bm9kZS5zZW1hbnRpYykKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXJPckZpZWxkUGF0aFRvU2Vt
YW50aWNNYXAuc2V0KHRoaXMuX3BhdGguc2xpY2UoKSwgbm9kZS5zZW1hbnRpYyk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3VwZXIudmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUp
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpIHsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9wYXRoLnB1c2goZmllbGQpOworICAgICAgICAgICAgICAgIGlm
IChmaWVsZC5zZW1hbnRpYykKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyT3JGaWVsZFBh
dGhUb1NlbWFudGljTWFwLnNldCh0aGlzLl9wYXRoLnNsaWNlKCksIGZpZWxkLnNlbWFudGljKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRo
aXMpOworICAgICAgICAgICAgICAgIHRoaXMuX3BhdGgucG9wKCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICB2aXNpdFR5cGVSZWYobm9kZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IGZvciAobGV0IHBhcmFtIG9mIGVudHJ5UG9pbnQucGFyYW1ldGVycykgeworICAgICAgICBuZXcg
RmluZFBhdGhBbmRTZW1hbnRpYyhwYXJhbSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBwYXJh
bWV0ZXJPckZpZWxkUGF0aFRvU2VtYW50aWNNYXA7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGZ1bmN0
aW9uIG5lZWRzIGEgYmV0dGVyIG5hbWU7IGl0IGFjdHVhbGx5IGNsYXNzaWZpZXMgdGhlIHBhcmFt
ZXRlcnMgb2YgYSBzaGFkZXIgYmFzZWQgb24gc2VtYW50aWNzL2F0dHJpYnV0ZXMuCitmdW5jdGlv
biByZXdyaXRlU2hhZGVycyhwcm9ncmFtKQoreworICAgIGNvbnN0IGVudHJ5UG9pbnRzID0gZ2F0
aGVyRW50cnlQb2ludHMocHJvZ3JhbSk7CisgICAgZm9yIChsZXQgZW50cnlQb2ludCBvZiBlbnRy
eVBvaW50cykgeworICAgICAgICBjb25zdCBwYXJhbWV0ZXJPckZpZWxkUGF0aFRvU2VtYW50aWNN
YXAgPSBjb2xsZWN0UGFyYW1ldGVycyhwcm9ncmFtLCBlbnRyeVBvaW50KTsKKyAgICAgICAgY29u
c3Qgc3RhZ2VJbkF0dHJpYnV0ZXMgPSBuZXcgTWFwKCk7CisgICAgICAgIGNvbnN0IHJlc291cmNl
QnVmZmVyc0FuZFRleHR1cmVzID0gbmV3IE1hcCgpOworICAgICAgICBmb3IgKGxldCBbaywgdl0g
b2YgcGFyYW1ldGVyT3JGaWVsZFBhdGhUb1NlbWFudGljTWFwKSB7CisgICAgICAgICAgICBpZiAo
diBpbnN0YW5jZW9mIFN0YWdlSW5PdXRTZW1hbnRpYykKKyAgICAgICAgICAgICAgICBzdGFnZUlu
QXR0cmlidXRlcy5zZXQoaywgdik7CisgICAgICAgICAgICBlbHNlIGlmICh2IGluc3RhbmNlb2Yg
UmVzb3VyY2VTZW1hbnRpYykKKyAgICAgICAgICAgICAgICByZXNvdXJjZUJ1ZmZlcnNBbmRUZXh0
dXJlcy5zZXQoaywgdik7CisgICAgICAgICAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgQnVpbHRJ
blNlbWFudGljKQorICAgICAgICAgICAgICAgIHN0YWdlSW5BdHRyaWJ1dGVzLnNldChrLCB2KTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBz
dXJlIGhvdyB0byBoYW5kbGUgJHt2fWApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZiAoZW50cnlQb2ludC5zaGFkZXJUeXBlID09ICJ2ZXJ0ZXgiKSB7CisgICAgICAgICAgICBjb25z
dCBzdGFnZUluU3RydWN0VHlwZSA9IG5ldyBTdHJ1Y3RUeXBlKGVudHJ5UG9pbnQub3JpZ2luLCBg
JHtlbnRyeVBvaW50Lm5hbWV9IHN0YWdlIGluYCk7CisgICAgICAgICAgICBzdGFnZUluU3RydWN0
VHlwZS5pc0VudHJ5UG9pbnRTdGFnZUluVHlwZSA9IHRydWU7CisgICAgICAgICAgICBjb25zdCBw
YXRoVG9GaWVsZE1hcCA9IG5ldyBNYXAoKTsKKyAgICAgICAgCisgICAgICAgICAgICBsZXQgZmll
bGRDb3VudGVyID0gMDsKKyAgICAgICAgICAgIGZvciAobGV0IFtwYXRoLCBhdHRyXSBvZiBzdGFn
ZUluQXR0cmlidXRlcykgeworICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGBzdGFn
ZV9pbl8ke2ZpZWxkQ291bnRlcisrfWA7CisgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IHR5
cGVPZihwYXRoW3BhdGgubGVuZ3RoIC0gMV0pOworICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxk
ID0gbmV3IEZpZWxkKGVudHJ5UG9pbnQub3JpZ2luLCBmaWVsZE5hbWUsIHR5cGUpOworICAgICAg
ICAgICAgICAgIGZpZWxkLl9zZW1hbnRpYyA9IGF0dHI7CisgICAgICAgICAgICAgICAgc3RhZ2VJ
blN0cnVjdFR5cGUuYWRkKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBwYXRoVG9GaWVsZE1hcC5z
ZXQocGF0aCwgZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvZ3JhbS5hZGQo
c3RhZ2VJblN0cnVjdFR5cGUpOworICAgICAgICAgICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29y
c0ZvclN0cnVjdFR5cGUocHJvZ3JhbSwgc3RhZ2VJblN0cnVjdFR5cGUpOworCisgICAgICAgICAg
ICBlbnRyeVBvaW50LnN0YWdlSW5TdHJ1Y3RUeXBlID0gc3RhZ2VJblN0cnVjdFR5cGU7CisgICAg
ICAgICAgICBlbnRyeVBvaW50LnBhdGhUb0ZpZWxkTWFwID0gcGF0aFRvRmllbGRNYXA7CisgICAg
ICAgIH0gZWxzZSBpZiAoZW50cnlQb2ludC5zaGFkZXJUeXBlID09ICJmcmFnbWVudCIpIHsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIG9ubHkgd29ya3MgZm9yIHRoZSBjYXNlIG9mIGEgc2lu
Z2xlIHN0YWdlIGluIHBhcmFtZXRlciwgYnV0IEhMU0wgY2VydGFpbmx5IGFsbG93cyBzcGxpdHRp
bmcgdGhhdCBzdHJ1Y3QgdXAuIEkgc3RpbGwgaGF2ZW4ndCB3b3JrZWQgYSBnb29kIGFwcHJvYWNo
IHRoZXJlLgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXNuJ3QgZ29pbmcgdG8gd29yayBw
cm9wZXJseSBmb3IgbmVzdGVkIHN0cnVjdHMuCisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBp
cyBmdW5kYW1lbnRhbGx5IHdyb25nIGluIG1hbnkgd2F5cyA6KAorICAgICAgICAgICAgZm9yIChs
ZXQgcGFyYW0gb2YgZW50cnlQb2ludC5wYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFwYXJhbS5zZW1hbnRpYyB8fCBwYXJhbS5zZW1hbnRpYyBpbnN0YW5jZW9mIFN0YWdlSW5PdXRT
ZW1hbnRpYykgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFnZUluVHlwZSA9IHR5cGVP
ZihwYXJhbSk7CisgICAgICAgICAgICAgICAgICAgIGVudHJ5UG9pbnQuc3RhZ2VJblN0cnVjdFR5
cGUgPSBzdGFnZUluVHlwZTsKKyAgICAgICAgICAgICAgICAgICAgc3RhZ2VJblR5cGUuaXNFbnRy
eVBvaW50U3RhZ2VJblR5cGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBJIGhhdmUgYmFzaWNhbGx5IHplcm8gc3VwcG9ydCBmb3IgZnJhZ21lbnQgcmV0
dXJuIHR5cGVzIHRoYXQgYXJlbid0IGp1c3QgZmxvYXQ0LgorICAgICAgICB9CisgICAgICAgIGVu
dHJ5UG9pbnQucmVzb3VyY2VCdWZmZXJzQW5kVGV4dHVyZXMgPSByZXNvdXJjZUJ1ZmZlcnNBbmRU
ZXh0dXJlczsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMU3RhdGVtZW50RW1pdHRl
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL01TTFN0YXRlbWVudEVt
aXR0ZXIuanMKaW5kZXggMDFhMWE0MTk1ZDQwNTY5NzQzNDdkMTFjZDdhZGM5MzdkZjNiOTdiNi4u
NDk0NzIyZTc4MTc5ZTdlM2U0YThiMjZjMTkzYTJjNTkxOTkwZDg4ZiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMU3RhdGVtZW50RW1pdHRlci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xTdGF0ZW1lbnRFbWl0
dGVyLmpzCkBAIC00OSw4ICs0OSwxMiBAQCBjbGFzcyBNU0xTdGF0ZW1lbnRFbWl0dGVyIGV4dGVu
ZHMgVmlzaXRvciB7CiAgICAgX2VtaXRUcmFwKCkKICAgICB7CiAgICAgICAgIC8vIE5vIG5lZWQg
dG8gdXBkYXRlIHRoaXMgaWYgaW4gYW4gZW50cnkgcG9pbnQsIHdlIGNhbiBqdXN0IHJldHVybiB6
ZXJvLgotICAgICAgICBpZiAoIXRoaXMuX2Z1bmMuaXNFbnRyeVBvaW50KQotICAgICAgICAgICAg
dGhpcy5fYWRkKGAqKCR7dGhpcy5fZnVuYy5fdHJhcFBvaW50ZXJFeHByZXNzaW9uLnZpc2l0KHRo
aXMpfSkgPSBmYWxzZTtgKTsKKyAgICAgICAgaWYgKCF0aGlzLl9mdW5jLmlzRW50cnlQb2ludCkg
eworICAgICAgICAgICAgaWYgKHRoaXMuX2Z1bmMuX3RyYXBQb2ludGVyRXhwcmVzc2lvbikKKyAg
ICAgICAgICAgICAgICB0aGlzLl9hZGQoYCooJHt0aGlzLl9mdW5jLl90cmFwUG9pbnRlckV4cHJl
c3Npb24udmlzaXQodGhpcyl9KSA9IGZhbHNlO2ApOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHRoaXMuX2FkZCgnLy8gV0FSTklORzogY2Fubm90IHRyYXAgaW4gdGhpcyBmdW5j
dGlvbicpOworICAgICAgICB9CiAgICAgICAgIHRoaXMuX2VtaXRUcmFwUmV0dXJuKCk7CiAgICAg
fQogCkBAIC02OCw3MiArNzIsNzMgQEAgY2xhc3MgTVNMU3RhdGVtZW50RW1pdHRlciBleHRlbmRz
IFZpc2l0b3IgewogCiAgICAgX3plcm9Jbml0aWFsaXplKHR5cGUsIHZhcmlhYmxlTmFtZSwgYWxs
b3dDb21tZW50ID0gdHJ1ZSkKICAgICB7Ci0gICAgICAgIGNvbnN0IGVtaXR0ZXIgPSB0aGlzOwot
Ci0gICAgICAgIGNsYXNzIFplcm9Jbml0aWFsaXplciBleHRlbmRzIFZpc2l0b3IgewotICAgICAg
ICAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgaWYgKG5vZGUubmFtZSA9PSAiYm9vbCIpCi0gICAgICAgICAgICAgICAgICAgIGVtaXR0ZXIu
X2FkZChgJHt2YXJpYWJsZU5hbWV9ID0gZmFsc2U7YCk7Ci0gICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLl9hZGQoYCR7dmFyaWFibGVOYW1lfSA9IDA7YCk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpc2l0UHRyVHlwZShub2RlKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGVtaXR0ZXIuX2FkZChgJHt2YXJpYWJsZU5hbWV9ID0g
bnVsbHB0cjtgKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRBcnJheVR5cGUo
bm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IG5vZGUubnVtRWxlbWVudHMudmFsdWU7IGkrKykKLSAgICAgICAgICAgICAgICAgICAgZW1pdHRl
ci5femVyb0luaXRpYWxpemUobm9kZS5lbGVtZW50VHlwZSwgYCR7dmFyaWFibGVOYW1lfVske2l9
XWAsIGZhbHNlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRBcnJheVJlZlR5
cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlbWl0dGVyLl9hZGQoYCR7
dmFyaWFibGVOYW1lfS5wdHIgPSBudWxscHRyO2ApOwotICAgICAgICAgICAgICAgIGVtaXR0ZXIu
X2FkZChgJHt2YXJpYWJsZU5hbWV9Lmxlbmd0aCA9IDA7YCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHZpc2l0RW51bVR5cGUobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBlbWl0dGVyLl96ZXJvSW5pdGlhbGl6ZShub2RlLmJhc2VUeXBlLCB2YXJpYWJsZU5hbWUs
IGZhbHNlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5v
ZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29uc3QgdHlwZUF0dHJpYnV0ZXMg
PSBlbWl0dGVyLl90eXBlQXR0cmlidXRlcy5hdHRyaWJ1dGVzRm9yVHlwZShub2RlKTsKLQotICAg
ICAgICAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHR5cGVBdHRyaWJ1dGVzLm1hbmdsZWRGaWVsZE5h
bWUoZmllbGQubmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtaXR0ZXIuX3plcm9Jbml0aWFs
aXplKGZpZWxkLnR5cGUsIGAke3ZhcmlhYmxlTmFtZX0uJHtmaWVsZE5hbWV9YCwgZmFsc2UpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlzaXRWZWN0
b3JUeXBlKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVu
dE5hbWVzID0gWyAieCIsICJ5IiwgInoiLCAidyIgXTsKLSAgICAgICAgICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IG5vZGUubnVtRWxlbWVudHNWYWx1ZTsgaSsrKQotICAgICAgICAgICAgICAg
ICAgICBlbWl0dGVyLl9hZGQoYCR7dmFyaWFibGVOYW1lfS4ke2VsZW1lbnROYW1lc1tpXX0gPSAw
O2ApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUu
bnVtUm93c1ZhbHVlOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7
IGogPCBub2RlLm51bVJvd3NWYWx1ZTsgaisrKQotICAgICAgICAgICAgICAgICAgICAgICAgZW1p
dHRlci5femVyb0luaXRpYWxpemUobm9kZS5lbGVtZW50VHlwZSwgYCR7dmFyaWFibGVOYW1lfVsk
e2l9XVske2p9XWAsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBpZiAoYWxsb3dDb21tZW50KQotICAgICAgICAgICAgdGhpcy5fYWRkKGAvLyBaZXJv
IGluaXRpYWxpemF0aW9uIG9mICR7dmFyaWFibGVOYW1lfWApOwotICAgICAgICBOb2RlLnZpc2l0
KHR5cGUsIG5ldyBaZXJvSW5pdGlhbGl6ZXIoKSk7CisgICAgICAgIHRoaXMuX2FkZChgJHt2YXJp
YWJsZU5hbWV9ID0ge307YCk7CisgICAgICAgIC8vIGNvbnN0IGVtaXR0ZXIgPSB0aGlzOworICAg
ICAgICAvLworICAgICAgICAvLyBjbGFzcyBaZXJvSW5pdGlhbGl6ZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKKyAgICAgICAgLy8gICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQorICAgICAgICAvLyAgICAg
eworICAgICAgICAvLyAgICAgICAgIGlmIChub2RlLm5hbWUgPT0gImJvb2wiKQorICAgICAgICAv
LyAgICAgICAgICAgICBlbWl0dGVyLl9hZGQoYCR7dmFyaWFibGVOYW1lfSA9IGZhbHNlO2ApOwor
ICAgICAgICAvLyAgICAgICAgIGVsc2UKKyAgICAgICAgLy8gICAgICAgICAgICAgZW1pdHRlci5f
YWRkKGAke3ZhcmlhYmxlTmFtZX0gPSAwO2ApOworICAgICAgICAvLyAgICAgfQorICAgICAgICAv
LworICAgICAgICAvLyAgICAgdmlzaXRQdHJUeXBlKG5vZGUpCisgICAgICAgIC8vICAgICB7Cisg
ICAgICAgIC8vICAgICAgICAgZW1pdHRlci5fYWRkKGAke3ZhcmlhYmxlTmFtZX0gPSBudWxscHRy
O2ApOworICAgICAgICAvLyAgICAgfQorICAgICAgICAvLworICAgICAgICAvLyAgICAgdmlzaXRB
cnJheVR5cGUobm9kZSkKKyAgICAgICAgLy8gICAgIHsKKyAgICAgICAgLy8gICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IG5vZGUubnVtRWxlbWVudHMudmFsdWU7IGkrKykKKyAgICAgICAgLy8g
ICAgICAgICAgICAgZW1pdHRlci5femVyb0luaXRpYWxpemUobm9kZS5lbGVtZW50VHlwZSwgYCR7
dmFyaWFibGVOYW1lfVske2l9XWAsIGZhbHNlKTsKKyAgICAgICAgLy8gICAgIH0KKyAgICAgICAg
Ly8KKyAgICAgICAgLy8gICAgIHZpc2l0QXJyYXlSZWZUeXBlKG5vZGUpCisgICAgICAgIC8vICAg
ICB7CisgICAgICAgIC8vICAgICAgICAgZW1pdHRlci5fYWRkKGAke3ZhcmlhYmxlTmFtZX0ucHRy
ID0gbnVsbHB0cjtgKTsKKyAgICAgICAgLy8gICAgICAgICBlbWl0dGVyLl9hZGQoYCR7dmFyaWFi
bGVOYW1lfS5sZW5ndGggPSAwO2ApOworICAgICAgICAvLyAgICAgfQorICAgICAgICAvLworICAg
ICAgICAvLyAgICAgdmlzaXRFbnVtVHlwZShub2RlKQorICAgICAgICAvLyAgICAgeworICAgICAg
ICAvLyAgICAgICAgIGVtaXR0ZXIuX3plcm9Jbml0aWFsaXplKG5vZGUuYmFzZVR5cGUsIHZhcmlh
YmxlTmFtZSwgZmFsc2UpOworICAgICAgICAvLyAgICAgfQorICAgICAgICAvLworICAgICAgICAv
LyAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCisgICAgICAgIC8vICAgICB7CisgICAgICAgIC8v
ICAgICAgICAgY29uc3QgdHlwZUF0dHJpYnV0ZXMgPSBlbWl0dGVyLl90eXBlQXR0cmlidXRlcy5h
dHRyaWJ1dGVzRm9yVHlwZShub2RlKTsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgICBm
b3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykgeworICAgICAgICAvLyAgICAgICAgICAgICBj
b25zdCBmaWVsZE5hbWUgPSB0eXBlQXR0cmlidXRlcy5tYW5nbGVkRmllbGROYW1lKGZpZWxkLm5h
bWUpOworICAgICAgICAvLyAgICAgICAgICAgICBlbWl0dGVyLl96ZXJvSW5pdGlhbGl6ZShmaWVs
ZC50eXBlLCBgJHt2YXJpYWJsZU5hbWV9LiR7ZmllbGROYW1lfWAsIGZhbHNlKTsKKyAgICAgICAg
Ly8gICAgICAgICB9CisgICAgICAgIC8vICAgICB9CisgICAgICAgIC8vCisgICAgICAgIC8vICAg
ICB2aXNpdFZlY3RvclR5cGUobm9kZSkKKyAgICAgICAgLy8gICAgIHsKKyAgICAgICAgLy8gICAg
ICAgICBjb25zdCBlbGVtZW50TmFtZXMgPSBbICJ4IiwgInkiLCAieiIsICJ3IiBdOworICAgICAg
ICAvLyAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5udW1FbGVtZW50c1ZhbHVlOyBp
KyspCisgICAgICAgIC8vICAgICAgICAgICAgIGVtaXR0ZXIuX2FkZChgJHt2YXJpYWJsZU5hbWV9
LiR7ZWxlbWVudE5hbWVzW2ldfSA9IDA7YCk7CisgICAgICAgIC8vICAgICB9CisgICAgICAgIC8v
CisgICAgICAgIC8vICAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkKKyAgICAgICAgLy8gICAgIHsK
KyAgICAgICAgLy8gICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUubnVtUm93c1ZhbHVl
OyBpKyspIHsKKyAgICAgICAgLy8gICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBub2Rl
Lm51bVJvd3NWYWx1ZTsgaisrKQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgZW1pdHRlci5f
emVyb0luaXRpYWxpemUobm9kZS5lbGVtZW50VHlwZSwgYCR7dmFyaWFibGVOYW1lfVske2l9XVsk
e2p9XWAsIGZhbHNlKTsKKyAgICAgICAgLy8gICAgICAgICB9CisgICAgICAgIC8vICAgICB9Cisg
ICAgICAgIC8vCisgICAgICAgIC8vICAgICB2aXNpdFR5cGVSZWYobm9kZSkKKyAgICAgICAgLy8g
ICAgIHsKKyAgICAgICAgLy8gICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CisgICAgICAg
IC8vICAgICB9CisgICAgICAgIC8vIH0KKyAgICAgICAgLy8gaWYgKGFsbG93Q29tbWVudCkKKyAg
ICAgICAgLy8gICAgIHRoaXMuX2FkZChgLy8gWmVybyBpbml0aWFsaXphdGlvbiBvZiAke3Zhcmlh
YmxlTmFtZX1gKTsKKyAgICAgICAgLy8gTm9kZS52aXNpdCh0eXBlLCBuZXcgWmVyb0luaXRpYWxp
emVyKCkpOwogICAgIH0KIAogICAgIGdldCBhY3R1YWxSZXN1bHQoKQpAQCAtMjYzLDkgKzI2OCwx
MSBAQCBjbGFzcyBNU0xTdGF0ZW1lbnRFbWl0dGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgdmlz
aXREZXJlZmVyZW5jZUV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGNvbnN0IHB0ciA9
IG5vZGUucHRyLnZpc2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9hZGQoYGlmICghJHtwdHJ9KSB7
YCk7Ci0gICAgICAgIHRoaXMuX2luZGVudCgoKSA9PiB0aGlzLl9lbWl0VHJhcCgpKTsKLSAgICAg
ICAgdGhpcy5fYWRkKCd9Jyk7CisgICAgICAgIGlmICghbm9kZS5kZXJlZklzS25vd25Ub0JlU2Fm
ZSkgeworICAgICAgICAgICAgdGhpcy5fYWRkKGBpZiAoISR7cHRyfSkge2ApOworICAgICAgICAg
ICAgdGhpcy5faW5kZW50KCgpID0+IHRoaXMuX2VtaXRUcmFwKCkpOworICAgICAgICAgICAgdGhp
cy5fYWRkKCd9Jyk7CisgICAgICAgIH0KICAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9mcmVzaCgp
OwogICAgICAgICB0aGlzLl9hZGQoYCR7dGhpcy5fdHlwZVVuaWZpZXIudW5pcXVlVHlwZUlkKG5v
ZGUudHlwZSl9ICR7aWR9O2ApOwogICAgICAgICB0aGlzLl9lbWl0TWVtQ29weShub2RlLnR5cGUs
IGlkLCBgKCoke3B0cn0pYCk7CkBAIC00MjQsMTYgKzQzMSwyMCBAQCBjbGFzcyBNU0xTdGF0ZW1l
bnRFbWl0dGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobm9k
ZS5mdW5jIGluc3RhbmNlb2YgRnVuY0RlZikgewotICAgICAgICAgICAgY29uc3QgbWFuZ2xlZENh
bGxOYW1lID0gdGhpcy5fZnVuY01hbmdsZXIubWFuZ2xlKG5vZGUuZnVuYyk7Ci0gICAgICAgICAg
ICBjb25zdCBjYWxsU3RyaW5nID0gYCR7bWFuZ2xlZENhbGxOYW1lfSgke2FyZ3Muam9pbigiLCAi
KX0pYDsKLSAgICAgICAgICAgIGlmIChyZXN1bHRWYXJpYWJsZSkKLSAgICAgICAgICAgICAgICB0
aGlzLl9hZGQoYCR7cmVzdWx0VmFyaWFibGV9ID0gJHtjYWxsU3RyaW5nfTtgKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGQoYCR7Y2FsbFN0cmluZ307YCk7Cisg
ICAgICAgICAgICBpZiAobm9kZS5mdW5jLnBzZXVkb05hdGl2ZUNhbGwpCisgICAgICAgICAgICAg
ICAgdGhpcy5fYWRkKG5vZGUuZnVuYy5wc2V1ZG9OYXRpdmVDYWxsKG5vZGUuZnVuYywgcmVzdWx0
VmFyaWFibGUsIGFyZ3MpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNv
bnN0IG1hbmdsZWRDYWxsTmFtZSA9IHRoaXMuX2Z1bmNNYW5nbGVyLm1hbmdsZShub2RlLmZ1bmMp
OworICAgICAgICAgICAgICAgIGNvbnN0IGNhbGxTdHJpbmcgPSBgJHttYW5nbGVkQ2FsbE5hbWV9
KCR7YXJncy5qb2luKCIsICIpfSlgOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRWYXJpYWJs
ZSkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkKGAke3Jlc3VsdFZhcmlhYmxlfSA9ICR7
Y2FsbFN0cmluZ307YCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9hZGQoYCR7Y2FsbFN0cmluZ307YCk7CiAKLSAgICAgICAgICAgIHRoaXMuX2FkZChg
aWYgKCEoKigke3RoaXMuX2Z1bmMuX3RyYXBQb2ludGVyRXhwcmVzc2lvbi52aXNpdCh0aGlzKX0p
KSkge2ApOwotICAgICAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHRoaXMuX2VtaXRUcmFwUmV0
dXJuKCkpOwotICAgICAgICAgICAgdGhpcy5fYWRkKCJ9Iik7CisgICAgICAgICAgICAgICAgdGhp
cy5fYWRkKGBpZiAoISgqKCR7dGhpcy5fZnVuYy5fdHJhcFBvaW50ZXJFeHByZXNzaW9uLnZpc2l0
KHRoaXMpfSkpKSB7YCk7CisgICAgICAgICAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHRoaXMu
X2VtaXRUcmFwUmV0dXJuKCkpOworICAgICAgICAgICAgICAgIHRoaXMuX2FkZCgifSIpOworICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHRoaXMuX21ha2VOYXRpdmVG
dW5jdGlvbkNhbGwobm9kZS5mdW5jLCByZXN1bHRWYXJpYWJsZSwgYXJncyk7CiAKQEAgLTUzMiw3
ICs1NDMsNyBAQCBjbGFzcyBNU0xTdGF0ZW1lbnRFbWl0dGVyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgICAgIGlmICghKHR5cGVPZihub2RlLnBhcmFtZXRlcnNbMF0pIGluc3RhbmNlb2YgQXJyYXlS
ZWZUeXBlKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU3VwcG9ydCBmb3Igb3BlcmF0
b3ImW10gJHtub2RlLnBhcmFtZXRlcnNbMF19IG5vdCBpbXBsZW1lbnRlZC5gKTsKIAotICAgICAg
ICB0aGlzLl9hZGQoYGlmICgke2FyZ3NbMV19ID49ICR7YXJnc1swXX0ubGVuZ3RoKSB7YCk7Cisg
ICAgICAgIHRoaXMuX2FkZChgaWYgKCR7YXJnc1swXX0ucHRyICYmICR7YXJnc1sxXX0gPj0gJHth
cmdzWzBdfS5sZW5ndGgpIHtgKTsKICAgICAgICAgdGhpcy5faW5kZW50KCgpID0+IHRoaXMuX2Vt
aXRUcmFwKCkpOwogICAgICAgICB0aGlzLl9hZGQoYH1gKTsKICAgICAgICAgdGhpcy5fYWRkKGAv
LyBPcGVyYXRvciBpbmRleGVyYCk7CkBAIC01NjUsOCArNTc2LDggQEAgY2xhc3MgTVNMU3RhdGVt
ZW50RW1pdHRlciBleHRlbmRzIFZpc2l0b3IgewogCiAgICAgdmlzaXRNYWtlUHRyRXhwcmVzc2lv
bihub2RlKQogICAgIHsKLSAgICAgICAgaWYgKG5vZGUudGFyZ2V0IGluc3RhbmNlb2YgRGVyZWZl
cmVuY2VFeHByZXNzaW9uKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VtaXRBc0xWYWx1ZShu
b2RlLnRhcmdldC5wdHIpOworICAgICAgICBpZiAobm9kZS5sVmFsdWUgaW5zdGFuY2VvZiBEZXJl
ZmVyZW5jZUV4cHJlc3Npb24pCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZW1pdEFzTFZhbHVl
KG5vZGUubFZhbHVlLnB0cik7CiAgICAgICAgIHJldHVybiBgJigke3RoaXMuX2VtaXRBc0xWYWx1
ZShub2RlLmxWYWx1ZSl9KWA7CiAgICAgfQogCkBAIC02OTMsNyArNzA0LDEwIEBAIGNsYXNzIE1T
TFN0YXRlbWVudEVtaXR0ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKIAogICAgIHZpc2l0TnVsbExpdGVy
YWwobm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBgbnVsbHB0cmA7CisgICAgICAgIGlmICh0
eXBlT2Yobm9kZSkudHlwZSBpbnN0YW5jZW9mIEFycmF5UmVmVHlwZSkKKyAgICAgICAgICAgIHJl
dHVybiAieyBudWxscHRyLCAwIH0iOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4g
Im51bGxwdHIiOwogICAgIH0KIAogICAgIHZpc2l0RG90RXhwcmVzc2lvbihub2RlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvTVNMVHlwZVVuaWZpZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlVW5pZmllci5q
cwppbmRleCAwMjkyNTc1NTlhODMzZmViYjBiNmFlYTU4OTM2YmM2MDg1OTI4YTNiLi4zZDMyNjA4
NjYxNGViYmQ5YTBjMjMzNjYzNjFmNmZlZDczMTczMmRiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlVW5pZmllci5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9NU0xUeXBlVW5pZmllci5qcwpAQCAtMTA5LDgg
KzEwOSwxNyBAQCBjbGFzcyBNU0xUeXBlVW5pZmllciBleHRlbmRzIFZpc2l0b3IgewogICAgICAg
ICAvLyBUaGUgbmFtZSBtYW5nbGVyIGlzIHVzZWQgaGVyZSBiZWNhdXNlIGFycmF5IHJlZnMgYXJl
ICJ1c2VyLWRlZmluZWQiIHR5cGVzIGluIHRoZSBzZW5zZQogICAgICAgICAvLyB0aGF0IHRoZXkg
d2lsbCBuZWVkIHRvIGJlIGRlZmluZWQgYXMgc3RydWN0cyBpbiB0aGUgTWV0YWwgb3V0cHV0Lgog
ICAgICAgICBub2RlLl90eXBlSUQgPSB0aGlzLl90eXBlTmFtZU1hbmdsZXIubWFuZ2xlKGAke25v
ZGUuZWxlbWVudFR5cGUudmlzaXQodGhpcyl9W10gJHtub2RlLmFkZHJlc3NTcGFjZX1gKTsKKyAg
ICAgICAgdGhpcy5fYWRkQXJyYXlSZWZQb2ludGVyVHlwZShub2RlKTsKICAgICAgICAgcmV0dXJu
IG5vZGUuX3R5cGVJRDsKICAgICB9CisgICAgCisgICAgX2FkZEFycmF5UmVmUG9pbnRlclR5cGUo
bm9kZSkKKyAgICB7CisgICAgICAgIC8vIFdoZW4gdGhlIGFycmF5IHJlZiBpcyBkZWNsYXJlZCBp
biBNU0wgaXQgd2lsbCBjb250YWluZWQgYSBwb2ludGVyIHRvIHRoZSBlbGVtZW50IHR5cGUuIEhv
d2V2ZXIsIHRoZSBvcmlnaW5hbAorICAgICAgICAvLyBXSExTTCBkb2Vzbid0IG5lZWQgdG8gY29u
dGFpbiB0aGUgdHlwZSAicG9pbnRlciB0byB0aGUgZWxlbWVudCB0eXBlIiwgc28gd2UgZW5zdXJl
IHRoYXQgdGhlIHR5cGUgaXMgcHJlc2VudAorICAgICAgICAvLyBoZXJlLiBUaGUgbG9naWMgaXNu
J3QgbmVlZGVkIGZvciBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24gYmVjYXVzZSB0aGUg
dHlwZSBpcyBuZWNlc3NzYXJpbHkgcHJlc2VudCB0aGVyZS4KKyAgICAgICAgbmV3IFB0clR5cGUo
bm9kZS5vcmlnaW4sIG5vZGUuYWRkcmVzc1NwYWNlID8gbm9kZS5hZGRyZXNzU3BhY2UgOiAidGhy
ZWFkIiwgdHlwZU9mKG5vZGUpLmVsZW1lbnRUeXBlKS52aXNpdCh0aGlzKTsKKyAgICB9CiAKICAg
ICB2aXNpdFZlY3RvclR5cGUobm9kZSkKICAgICB7CkBAIC0xMzAsMTAgKzEzOSw3IEBAIGNsYXNz
IE1TTFR5cGVVbmlmaWVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICBzdXBlci52
aXNpdE1ha2VBcnJheVJlZkV4cHJlc3Npb24obm9kZSk7CiAgICAgICAgIG5vZGUuX3R5cGVJRCA9
IG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgLy8gV2hlbiB0aGUgYXJyYXkgcmVmIGlz
IGRlY2xhcmVkIGluIE1TTCBpdCB3aWxsIGNvbnRhaW5lZCBhIHBvaW50ZXIgdG8gdGhlIGVsZW1l
bnQgdHlwZS4gSG93ZXZlciwgdGhlIG9yaWdpbmFsCi0gICAgICAgIC8vIFdITFNMIGRvZXNuJ3Qg
bmVlZCB0byBjb250YWluIHRoZSB0eXBlICJwb2ludGVyIHRvIHRoZSBlbGVtZW50IHR5cGUiLCBz
byB3ZSBlbnN1cmUgdGhhdCB0aGUgdHlwZSBpcyBwcmVzZW50Ci0gICAgICAgIC8vIGhlcmUuIFRo
ZSBsb2dpYyBpc24ndCBuZWVkZWQgZm9yIENvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbiBi
ZWNhdXNlIHRoZSB0eXBlIGlzIG5lY2Vzc3NhcmlseSBwcmVzZW50IHRoZXJlLgotICAgICAgICBu
ZXcgUHRyVHlwZShub2RlLm9yaWdpbiwgbm9kZS5hZGRyZXNzU3BhY2UgPyBub2RlLmFkZHJlc3NT
cGFjZSA6ICJ0aHJlYWQiLCB0eXBlT2Yobm9kZSkuZWxlbWVudFR5cGUpLnZpc2l0KHRoaXMpOwor
ICAgICAgICB0aGlzLl9hZGRBcnJheVJlZlBvaW50ZXJUeXBlKG5vZGUpOwogICAgICAgICByZXR1
cm4gbm9kZS5fdHlwZUlEOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvLmdpdGlnbm9yZSBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzNiOWEyMmNiMWFjZWIwMDAxNGJmNTY4MmI4M2MzMzEyNmM5NjMyYgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzLy5naXRp
Z25vcmUJCkBAIC0wLDAgKzEsMyBAQAorV0hMU0wgVGVzdHMueGNvZGVwcm9qL3hjdXNlcmRhdGEK
K1dITFNMIFRlc3RzLnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YQor
V0hMU0wgVGVzdHMueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3BhY2UveGN1c2VyZGF0YQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9BcHBEZWxlZ2F0ZS5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9BcHBEZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwY2Q5MjA1OGE4OWEy
NDUzYmUzM2FmZGRmODdjNmMzNDhiNDUyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0FwcERlbGVnYXRlLmgJ
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgorCitAaW50ZXJmYWNlIEFwcERlbGVnYXRl
IDogTlNPYmplY3QgPE5TQXBwbGljYXRpb25EZWxlZ2F0ZT4KKworCitAZW5kCisKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
QXBwRGVsZWdhdGUubSBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL0NvcmUvQXBwRGVsZWdhdGUubQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWJjMjQ5MGI1MjE4MzE1Njg4
MDJiODk0NzIxZDE2YjM3YzJmMGU3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9BcHBEZWxlZ2F0ZS5tCQpAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiQXBwRGVsZWdhdGUuaCIKKworQGludGVyZmFjZSBBcHBEZWxlZ2F0ZSAoKQor
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBBcHBEZWxlZ2F0ZQorCistICh2b2lkKWFwcGxpY2F0
aW9uRGlkRmluaXNoTGF1bmNoaW5nOihOU05vdGlmaWNhdGlvbiAqKWFOb3RpZmljYXRpb24gewor
ICAgIC8vIEluc2VydCBjb2RlIGhlcmUgdG8gaW5pdGlhbGl6ZSB5b3VyIGFwcGxpY2F0aW9uCit9
CisKKworLSAodm9pZClhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGU6KE5TTm90aWZpY2F0aW9uICop
YU5vdGlmaWNhdGlvbiB7CisgICAgLy8gSW5zZXJ0IGNvZGUgaGVyZSB0byB0ZWFyIGRvd24geW91
ciBhcHBsaWNhdGlvbgorfQorCisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0FwcElj
b24uYXBwaWNvbnNldC9Db250ZW50cy5qc29uIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Bc3NldHMueGNhc3NldHMvQXBwSWNvbi5hcHBpY29u
c2V0L0NvbnRlbnRzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRiMmIxYzdjNmMzMTY1MDBhN2EzNDgwNzY0
ODQzNDI4OTQ5NGJhMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBw
aWNvbnNldC9Db250ZW50cy5qc29uCQpAQCAtMCwwICsxLDU4IEBACit7CisgICJpbWFnZXMiIDog
WworICAgIHsKKyAgICAgICJpZGlvbSIgOiAibWFjIiwKKyAgICAgICJzaXplIiA6ICIxNngxNiIs
CisgICAgICAic2NhbGUiIDogIjF4IgorICAgIH0sCisgICAgeworICAgICAgImlkaW9tIiA6ICJt
YWMiLAorICAgICAgInNpemUiIDogIjE2eDE2IiwKKyAgICAgICJzY2FsZSIgOiAiMngiCisgICAg
fSwKKyAgICB7CisgICAgICAiaWRpb20iIDogIm1hYyIsCisgICAgICAic2l6ZSIgOiAiMzJ4MzIi
LAorICAgICAgInNjYWxlIiA6ICIxeCIKKyAgICB9LAorICAgIHsKKyAgICAgICJpZGlvbSIgOiAi
bWFjIiwKKyAgICAgICJzaXplIiA6ICIzMngzMiIsCisgICAgICAic2NhbGUiIDogIjJ4IgorICAg
IH0sCisgICAgeworICAgICAgImlkaW9tIiA6ICJtYWMiLAorICAgICAgInNpemUiIDogIjEyOHgx
MjgiLAorICAgICAgInNjYWxlIiA6ICIxeCIKKyAgICB9LAorICAgIHsKKyAgICAgICJpZGlvbSIg
OiAibWFjIiwKKyAgICAgICJzaXplIiA6ICIxMjh4MTI4IiwKKyAgICAgICJzY2FsZSIgOiAiMngi
CisgICAgfSwKKyAgICB7CisgICAgICAiaWRpb20iIDogIm1hYyIsCisgICAgICAic2l6ZSIgOiAi
MjU2eDI1NiIsCisgICAgICAic2NhbGUiIDogIjF4IgorICAgIH0sCisgICAgeworICAgICAgImlk
aW9tIiA6ICJtYWMiLAorICAgICAgInNpemUiIDogIjI1NngyNTYiLAorICAgICAgInNjYWxlIiA6
ICIyeCIKKyAgICB9LAorICAgIHsKKyAgICAgICJpZGlvbSIgOiAibWFjIiwKKyAgICAgICJzaXpl
IiA6ICI1MTJ4NTEyIiwKKyAgICAgICJzY2FsZSIgOiAiMXgiCisgICAgfSwKKyAgICB7CisgICAg
ICAiaWRpb20iIDogIm1hYyIsCisgICAgICAic2l6ZSIgOiAiNTEyeDUxMiIsCisgICAgICAic2Nh
bGUiIDogIjJ4IgorICAgIH0KKyAgXSwKKyAgImluZm8iIDogeworICAgICJ2ZXJzaW9uIiA6IDEs
CisgICAgImF1dGhvciIgOiAieGNvZGUiCisgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExT
TCBUZXN0cy9Db3JlL0Fzc2V0cy54Y2Fzc2V0cy9Db250ZW50cy5qc29uIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Bc3NldHMueGNhc3NldHMv
Q29udGVudHMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTRhMTY0YzkxODY1MWNkZDFlMTFkY2E1Y2M2MmMz
MzNmMDk3NjAxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Bc3NldHMueGNhc3NldHMvQ29udGVudHMuanNvbgkK
QEAgLTAsMCArMSw2IEBACit7CisgICJpbmZvIiA6IHsKKyAgICAidmVyc2lvbiIgOiAxLAorICAg
ICJhdXRob3IiIDogInhjb2RlIgorICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9CYXNlLmxwcm9qL01haW4uc3Rvcnlib2FyZCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQmFzZS5scHJvai9NYWluLnN0b3J5Ym9h
cmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzY3NmQ5Zjc0Y2M1NjdiZmY1NmJlZDFkZDU2NWRjZGQ3MGJlYjNkZgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvQmFzZS5scHJvai9NYWluLnN0b3J5Ym9hcmQJCkBAIC0wLDAgKzEsODQ3
IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGRvY3VtZW50IHR5
cGU9ImNvbS5hcHBsZS5JbnRlcmZhY2VCdWlsZGVyMy5Db2NvYS5TdG9yeWJvYXJkLlhJQiIgdmVy
c2lvbj0iMy4wIiB0b29sc1ZlcnNpb249IjE0MjY5LjE0IiB0YXJnZXRSdW50aW1lPSJNYWNPU1gu
Q29jb2EiIHByb3BlcnR5QWNjZXNzQ29udHJvbD0ibm9uZSIgdXNlQXV0b2xheW91dD0iWUVTIiBp
bml0aWFsVmlld0NvbnRyb2xsZXI9IkI4RC0wTi01d1MiPgorICAgIDxkZXBlbmRlbmNpZXM+Cisg
ICAgICAgIDxwbHVnSW4gaWRlbnRpZmllcj0iY29tLmFwcGxlLkludGVyZmFjZUJ1aWxkZXIuQ29j
b2FQbHVnaW4iIHZlcnNpb249IjE0MjY5LjE0Ii8+CisgICAgICAgIDxjYXBhYmlsaXR5IG5hbWU9
ImRvY3VtZW50cyBzYXZlZCBpbiB0aGUgWGNvZGUgOCBmb3JtYXQiIG1pblRvb2xzVmVyc2lvbj0i
OC4wIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPHNjZW5lcz4KKyAgICAgICAgPCEtLUFw
cGxpY2F0aW9uLS0+CisgICAgICAgIDxzY2VuZSBzY2VuZUlEPSJKUG8tNHktRlgzIj4KKyAgICAg
ICAgICAgIDxvYmplY3RzPgorICAgICAgICAgICAgICAgIDxhcHBsaWNhdGlvbiBpZD0iaG53LXhW
LTB6biIgc2NlbmVNZW1iZXJJRD0idmlld0NvbnRyb2xsZXIiPgorICAgICAgICAgICAgICAgICAg
ICA8bWVudSBrZXk9Im1haW5NZW51IiB0aXRsZT0iTWFpbiBNZW51IiBzeXN0ZW1NZW51PSJtYWlu
IiBpZD0iQVl1LXNLLXFTNiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJXSExTTCBUZXN0cyIgaWQ9
IjFYdC1IWS11QnciPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJN
YXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJXSExTTCBUZXN0cyIgc3lz
dGVtTWVudT0iYXBwbGUiIGlkPSJ1UXktREQtSkRyIj4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxpdGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bWVudUl0ZW0gdGl0bGU9IkFib3V0IFdITFNMIFRlc3RzIiBpZD0iNWtWLVZiLVF4UyI+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1h
c2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im9yZGVyRnJv
bnRTdGFuZGFyZEFib3V0UGFuZWw6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJFeHAtQ1otVmVt
Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNT
ZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJWT3EteTAtU0VIIi8+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJQcmVmZXJlbmNlc+KApiIga2V5
RXF1aXZhbGVudD0iLCIgaWQ9IkJPRi1OTS0xY1ciLz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJ3RkMt
VE8tU0NKIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJTZXJ2aWNlcyIgaWQ9Ik5Nby1vbS1ua3oiPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVu
dE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJTZXJ2aWNlcyIgc3lzdGVtTWVudT0ic2Vy
dmljZXMiIGlkPSJoejktQjQtWHk1Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSI0amUtSlItdTZSIi8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJI
aWRlIFdITFNMIFRlc3RzIiBrZXlFcXVpdmFsZW50PSJoIiBpZD0iT2x3LW5QLWJRTiI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2Vs
ZWN0b3I9ImhpZGU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJQbk4tVWMtbTY4Ii8+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkhpZGUg
T3RoZXJzIiBrZXlFcXVpdmFsZW50PSJoIiBpZD0iVmRyLWZwLVh6TyI+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVp
dmFsZW50TW9kaWZpZXJNYXNrIiBvcHRpb249IllFUyIgY29tbWFuZD0iWUVTIi8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0
b3I9ImhpZGVPdGhlckFwcGxpY2F0aW9uczoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IlZUNC1h
WS1YQ1QiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9j
b25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRl
bSB0aXRsZT0iU2hvdyBBbGwiIGlkPSJLZDItbXAtcFVTIj4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRN
b2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idW5oaWRlQWxsQXBwbGljYXRpb25zOiIgdGFyZ2V0
PSJBZHktaEktNWdkIiBpZD0iRGhnLUxlLXhveCIvPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0iWUVTIiBpZD0ia0N4LU9F
LXZnVCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRl
bSB0aXRsZT0iUXVpdCBXSExTTCBUZXN0cyIga2V5RXF1aXZhbGVudD0icSIgaWQ9IjRzYi00cy1W
TGkiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
YWN0aW9uIHNlbGVjdG9yPSJ0ZXJtaW5hdGU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJUZTct
cG4tWXpGIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRlbXM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
SXRlbSB0aXRsZT0iRmlsZSIgaWQ9ImRNcy1jSS1telEiPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIv
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRp
dGxlPSJGaWxlIiBpZD0iYmliLVVqLXZ6dSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1lbnVJdGVtIHRpdGxlPSJOZXciIGtleUVxdWl2YWxlbnQ9Im4iIGlkPSJXYXMtSkEtdEdsIj4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25z
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlv
biBzZWxlY3Rvcj0ibmV3RG9jdW1lbnQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSI0U2ktWE4t
YzU0Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
dGl0bGU9Ik9wZW7igKYiIGtleUVxdWl2YWxlbnQ9Im8iIGlkPSJJQW8tU1ktZmQ5Ij4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxl
Y3Rvcj0ib3BlbkRvY3VtZW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iYlZuLU5NLUtOWiIv
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rp
b25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJPcGVuIERlZmF1bHQiIGtleUVxdWl2YWxlbnQ9IkQiIGlkPSJhZWktMnotRmRTIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxl
Y3Rvcj0ibG9hZERlZmF1bHQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJRa2MtbW8tTThxIi8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9
Ik9wZW4gTWFuZGVsYnJvdCIga2V5RXF1aXZhbGVudD0iZCIgaWQ9Ik9vNy1Mdi1peFoiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJsb2FkTWFuZGVsYnJvdDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9InJCdS1UWS1x
OXUiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25u
ZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJ
dGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0
aXRsZT0iT3BlbiBKdWxpYSIga2V5RXF1aXZhbGVudD0iaiIgaWQ9Imdobi1UTy1QZjgiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJsb2FkSnVsaWE6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJMZDMtTlktaGpaIi8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9
Ik9wZW4gUmVjZW50IiBpZD0idFhJLW1yLXd3cyI+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51IGtleT0ic3VibWVudSIgdGl0bGU9Ik9wZW4gUmVjZW50IiBzeXN0ZW1NZW51PSJyZWNlbnRE
b2N1bWVudHMiIGlkPSJvYXMtT2MtZmlaIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxpdGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkNsZWFyIE1lbnUiIGlkPSJ2
TlktcnotajQyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2si
Lz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iY2xlYXJSZWNlbnREb2N1bWVu
dHM6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJEYWEtOWQtQjNVIi8+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvaXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bWVudT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVt
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRs
ZT0iT3BlbiBOYXRpdmUgRmxhdCBDb2xvciIgaWQ9IjRmRi1sZS1iejIiPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1
aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJsb2FkTmF0aXZlRmxhdENvbG9yOiIg
dGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRDhWLXRULVV1ZSIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJPcGVuIE5hdGl2ZSBNYW5kZWxi
cm90IiBpZD0idmtBLWc1LUs1ZiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9u
cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rp
b24gc2VsZWN0b3I9ImxvYWROYXRpdmVNYW5kZWxicm90OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBp
ZD0iZjBmLXpQLUVYWiIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1lbnVJdGVtIHRpdGxlPSJPcGVuIE5hdGl2ZSBKdWxpYSIgaWQ9InJhZy1oSS0xN0giPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtl
eT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJsb2FkTmF0aXZlSnVs
aWE6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJsVmgtbGwtc2c4Ii8+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMi
IGlkPSJtNTQtSXMtaUxFIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnVJdGVtIHRpdGxlPSJDbG9zZSIga2V5RXF1aXZhbGVudD0idyIgaWQ9IkRWby1hRy1w
aUciPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
YWN0aW9uIHNlbGVjdG9yPSJwZXJmb3JtQ2xvc2U6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJI
bU8tTHMtaTdRIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IlNhdmXigKYiIGtleUVxdWl2YWxlbnQ9InMiIGlkPSJweHgtNTktUFhWIj4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25z
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlv
biBzZWxlY3Rvcj0ic2F2ZURvY3VtZW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0idGVaLVhC
LXFKWSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVu
dUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJTYXZlIEFz4oCmIiBrZXlFcXVpdmFsZW50PSJTIiBpZD0iQnc3LUZULWkzQSI+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24g
c2VsZWN0b3I9InNhdmVEb2N1bWVudEFzOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0ibURmLXpy
LUkwQyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVu
dUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJSZXZlcnQgdG8gU2F2ZWQiIGtleUVxdWl2YWxlbnQ9InIiIGlkPSJLYVctZnQtODVI
Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFj
dGlvbiBzZWxlY3Rvcj0icmV2ZXJ0RG9jdW1lbnRUb1NhdmVkOiIgdGFyZ2V0PSJBZHktaEktNWdk
IiBpZD0iaUozLVB2LWt3cSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0iWUVTIiBpZD0iYUpoLWk0LWJlZiIvPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iUGFn
ZSBTZXR1cOKApiIga2V5RXF1aXZhbGVudD0iUCIgaWQ9InFJUy1XOC1TaUsiPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5
RXF1aXZhbGVudE1vZGlmaWVyTWFzayIgc2hpZnQ9IllFUyIgY29tbWFuZD0iWUVTIi8+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2Vs
ZWN0b3I9InJ1blBhZ2VMYXlvdXQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJEaW4tcnotZ0M1
Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9IlByaW504oCmIiBrZXlFcXVpdmFsZW50PSJwIiBpZD0iYVRsLTF1LUpGUyI+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0
b3I9InByaW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0icWFaLTR3LWFvTyIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkVkaXQi
IGlkPSI1UUYtT2EtcDBUIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlm
aWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iRWRpdCIgaWQ9Ilc0
OC02Zi00RGwiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0i
VW5kbyIga2V5RXF1aXZhbGVudD0ieiIgaWQ9ImRSSi00bi1ZemciPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ1bmRv
OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iTTZlLWN1LWc3ViIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJSZWRvIiBrZXlFcXVpdmFs
ZW50PSJaIiBpZD0iNmRoLXpTLVZhbSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InJlZG86IiB0YXJnZXQ9IkFkeS1o
SS01Z2QiIGlkPSJvSUEtUnMtNk9EIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJXUlYtTkktRXh6Ii8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJDdXQiIGtleUVxdWl2YWxlbnQ9IngiIGlkPSJ1UmwtaVktdW5HIj4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iY3V0
OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iWUplLTY4LUk5cyIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJDb3B5IiBrZXlFcXVpdmFs
ZW50PSJjIiBpZD0ieDN2LUdHLWlXVSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImNvcHk6IiB0YXJnZXQ9IkFkeS1o
SS01Z2QiIGlkPSJHMWYtR0wtSm95Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlBhc3RlIiBrZXlFcXVpdmFsZW50PSJ2IiBpZD0iZ1ZB
LVU0LXNkTCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxj
b25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxhY3Rpb24gc2VsZWN0b3I9InBhc3RlOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iVXZT
LThlLVFkZyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJQYXN0ZSBhbmQgTWF0Y2ggU3R5bGUiIGtleUVxdWl2YWxlbnQ9IlYiIGlkPSJX
ZVQtM1YtendrIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siIG9wdGlvbj0iWUVT
IiBjb21tYW5kPSJZRVMiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGFzdGVBc1BsYWluVGV4dDoiIHRhcmdldD0i
QWR5LWhJLTVnZCIgaWQ9ImNFaC1LWC13SlEiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iRGVsZXRlIiBpZD0icGEzLVFJLXUyayI+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sg
a2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImRlbGV0ZToiIHRh
cmdldD0iQWR5LWhJLTVnZCIgaWQ9IjBNay1NbC1QYU0iLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU2VsZWN0IEFsbCIga2V5RXF1aXZh
bGVudD0iYSIgaWQ9IlJ1dy02bS1CMm0iPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzZWxlY3RBbGw6IiB0YXJnZXQ9
IkFkeS1oSS01Z2QiIGlkPSJWTm0tTWktZGlOIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJ1eWwtaDgt
WE8yIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJGaW5kIiBpZD0iNEVOLXlBLXAwdSI+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51IGtleT0ic3VibWVudSIgdGl0bGU9IkZpbmQiIGlkPSIxYjctbDAtbnh4Ij4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpdGVtcz4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9IkZpbmTigKYiIHRhZz0iMSIga2V5RXF1aXZhbGVudD0iZiIgaWQ9Ilh6NS1uNC1PMFciPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJwZXJmb3JtRmluZFBhbmVsQWN0aW9u
OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iY0Q3LVFzLUJONCIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVu
dUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnVJdGVtIHRpdGxlPSJGaW5kIGFuZCBSZXBsYWNl4oCmIiB0YWc9IjEyIiBrZXlFcXVp
dmFsZW50PSJmIiBpZD0iWUV5LUpILVRmeiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFs
ZW50TW9kaWZpZXJNYXNrIiBvcHRpb249IllFUyIgY29tbWFuZD0iWUVTIi8+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9u
cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBlcmZvcm1GaW5kUGFuZWxBY3Rpb246IiB0YXJnZXQ9
IkFkeS1oSS01Z2QiIGlkPSJXRDMtR2ctNUFKIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0
ZW0gdGl0bGU9IkZpbmQgTmV4dCIgdGFnPSIyIiBrZXlFcXVpdmFsZW50PSJnIiBpZD0icTA5LWZU
LVN5ZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBlcmZvcm1GaW5kUGFu
ZWxBY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJORG8tUlotdjlSIi8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkZpbmQgUHJldmlvdXMiIHRhZz0iMyIga2V5RXF1
aXZhbGVudD0iRyIgaWQ9Ik93TS1taC1RTVYiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJwZXJmb3JtRmluZFBhbmVsQWN0aW9uOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0i
SE9oLXNZLTNheSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJVc2UgU2Vs
ZWN0aW9uIGZvciBGaW5kIiB0YWc9IjciIGtleUVxdWl2YWxlbnQ9ImUiIGlkPSJidUotdWctcEt0
Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGVyZm9ybUZpbmRQYW5lbEFj
dGlvbjoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IlU3Ni1udi1wNUQiLz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9u
cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSB0aXRsZT0iSnVtcCB0byBTZWxlY3Rpb24iIGtleUVxdWl2YWxlbnQ9
ImoiIGlkPSJTMHAtb0MtbUxkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0i
Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYToiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IklP
Ry02RC1nNUIiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pdGVtcz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51PgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTcGVsbGluZyBhbmQgR3JhbW1hciIgaWQ9IkR2
MS1pby1ZdjciPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRp
dGxlPSJTcGVsbGluZyIgaWQ9IjNJTi1zVS0zQmciPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU2hvdyBTcGVsbGlu
ZyBhbmQgR3JhbW1hciIga2V5RXF1aXZhbGVudD0iOiIgaWQ9IkhGby1jeS16eEkiPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzaG93R3Vlc3NQYW5lbDoiIHRhcmdldD0iQWR5
LWhJLTVnZCIgaWQ9InZGai1Lcy1oeTMiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0
aXRsZT0iQ2hlY2sgRG9jdW1lbnQgTm93IiBrZXlFcXVpdmFsZW50PSI7IiBpZD0iaHoyLUNVLUNS
NyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImNoZWNrU3BlbGxpbmc6IiB0
YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJmejctVkMtcmVNIi8+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJiTnctb2QtbXA1Ii8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciIGlkPSJyYkQtUmgtd0lOIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlm
aWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc6IiB0YXJn
ZXQ9IkFkeS1oSS01Z2QiIGlkPSI3dzYtUXotMGtCIi8+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IkNoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZyIgaWQ9Im1LNi0ycC00Skci
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVHcmFtbWFyQ2hlY2tpbmc6IiB0YXJn
ZXQ9IkFkeS1oSS01Z2QiIGlkPSJtdUQtUW4tajR3Ii8+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IkNvcnJlY3QgU3BlbGxpbmcgQXV0b21hdGljYWxseSIgaWQ9Ijc4WS1oQS02
MnYiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29u
bmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0Nv
cnJlY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSIybE0tUWktV0FQIi8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRl
bSB0aXRsZT0iU3Vic3RpdHV0aW9ucyIgaWQ9IjlpYy1GTC1vYngiPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZh
bGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJTdWJzdGl0dXRpb25zIiBpZD0iRmVN
LUQ4LVdWciI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8aXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTaG93IFN1YnN0aXR1dGlvbnMiIGlkPSJ6NkYtRlctM256
Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5l
Y3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ib3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5l
bDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9Im9rdS1tci1pU3EiLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21l
bnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9ImdQeC1DOS11VU8iLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0
ZW0gdGl0bGU9IlNtYXJ0IENvcHkvUGFzdGUiIGlkPSI5eXQtNEItblNNIj4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFz
ayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFj
dGlvbiBzZWxlY3Rvcj0idG9nZ2xlU21hcnRJbnNlcnREZWxldGU6IiB0YXJnZXQ9IkFkeS1oSS01
Z2QiIGlkPSIzSUotU2UtRFpEIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9
IlNtYXJ0IFF1b3RlcyIgaWQ9ImhRYi0ydi1mWXYiPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1
aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJ0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbjoiIHRhcmdldD0iQWR5LWhJLTVnZCIg
aWQ9InB0cS14ZC1RT0EiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU21h
cnQgRGFzaGVzIiBpZD0icmdNLWY0LXljbiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFs
ZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRv
Z2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJv
Q3QtcE8tOWdTIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlNtYXJ0IExp
bmtzIiBpZD0iY3dMLVAxLWppZCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZUF1
dG9tYXRpY0xpbmtEZXRlY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJHaXAtRTMtRm92
Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkRhdGEgRGV0ZWN0b3JzIiBp
ZD0idFJyLXBkLTFQUyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJN
YXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZUF1dG9tYXRp
Y0RhdGFEZXRlY3Rpb246IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJSMUktTnEtS2JsIi8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlRleHQgUmVwbGFjZW1lbnQiIGlkPSJI
RlEtZ0stTkZBIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2si
Lz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlQXV0b21hdGljVGV4
dFJlcGxhY2VtZW50OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRHZQLUZlLVB5NiIvPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IlRyYW5zZm9ybWF0aW9ucyIgaWQ9IjJvSS1Sbi1aSkMiPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5
RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJUcmFuc2Zvcm1hdGlvbnMi
IGlkPSJjOGEteTYtVlFkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxpdGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ik1ha2UgVXBwZXIgQ2FzZSIgaWQ9InZtVi02
ZC03akkiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ1cHBlcmNhc2VXb3JkOiIgdGFyZ2V0
PSJBZHktaEktNWdkIiBpZD0ic1BoLVRrLWVkdSIvPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJNYWtlIExvd2VyIENhc2UiIGlkPSJkOU0tQ0QtYU1kIj4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFz
ayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFj
dGlvbiBzZWxlY3Rvcj0ibG93ZXJjYXNlV29yZDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9ImlV
Wi1iNS1oaWwiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQ2FwaXRhbGl6
ZSIgaWQ9IlVFWi1Ccy1scUciPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlm
aWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJjYXBpdGFsaXpl
V29yZDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjI2SC1UTC1uc2giLz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9u
cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9pdGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0
ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJTcGVlY2giIGlkPSJ4ckUtTVotalgwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmll
ck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1l
bnUga2V5PSJzdWJtZW51IiB0aXRsZT0iU3BlZWNoIiBpZD0iM3JTLVpBLU5vSCI+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJTdGFydCBTcGVha2luZyIgaWQ9Illuay1mOC1jTFoiPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0i
a2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJzdGFydFNwZWFraW5nOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iNjU0LU5nLWt5
bCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTdG9wIFNwZWFraW5nIiBp
ZD0iT3l6LWR5LURHbSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJN
YXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InN0b3BTcGVha2luZzoi
IHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9ImRYOC02cC1qeTkiLz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJ
dGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9p
dGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9
IkZvcm1hdCIgaWQ9Imp4VC1DVS1uSVMiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJGb3Jt
YXQiIGlkPSJHRU8tSXctY0tyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxpdGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0
ZW0gdGl0bGU9IkZvbnQiIGlkPSJHaTUtMVMtUlFCIj4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2Rp
Zmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iRm9udCIgc3lzdGVtTWVudT0iZm9udCIgaWQ9ImFY
YS1hTS1KYXEiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSB0aXRsZT0iU2hvdyBGb250cyIga2V5RXF1aXZhbGVudD0idCIgaWQ9
IlE1ZS04Sy1ORHEiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJvcmRlckZy
b250Rm9udFBhbmVsOiIgdGFyZ2V0PSJZTHktNjUtMWJ6IiBpZD0iV0hyLW5xLTJ4QSIvPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJCb2xkIiB0YWc9IjIiIGtleUVxdWl2YWxl
bnQ9ImIiIGlkPSJHQjktT00tZTI3Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rv
cj0iYWRkRm9udFRyYWl0OiIgdGFyZ2V0PSJZTHktNjUtMWJ6IiBpZD0iaHFrLWhyLXNZViIvPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJJdGFsaWMiIHRhZz0iMSIga2V5RXF1
aXZhbGVudD0iaSIgaWQ9IlZqeC14aS1uanEiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJhZGRGb250VHJhaXQ6IiB0YXJnZXQ9IllMeS02NS0xYnoiIGlkPSJJSFYtT0ItYzAz
Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlVuZGVybGluZSIga2V5RXF1
aXZhbGVudD0idSIgaWQ9IldSRy1DRC1LMVMiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJ1bmRlcmxpbmU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJGWVMtMmItSkFZIi8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSI1
Z1QtS0MtV1NPIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJCaWdnZXIiIHRhZz0iMyIga2V5RXF1aXZhbGVudD0i
KyIgaWQ9IlB0cC1TUC1WRUwiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJt
b2RpZnlGb250OiIgdGFyZ2V0PSJZTHktNjUtMWJ6IiBpZD0iVWM3LWRpLVVuTCIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5l
Y3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTbWFsbGVyIiB0YWc9IjQiIGtleUVxdWl2YWxl
bnQ9Ii0iIGlkPSJpMWQtRXItcVNUIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rv
cj0ibW9kaWZ5Rm9udDoiIHRhcmdldD0iWUx5LTY1LTFieiIgaWQ9IkhjWC1MZi1lTmQiLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9j
b25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9Imt4My1E
ay14M0IiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bWVudUl0ZW0gdGl0bGU9Iktlcm4iIGlkPSJqQlEtcjYtVksyIj4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFz
ayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0
aXRsZT0iS2VybiIgaWQ9InRsRC1PYS1vQU0iPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRl
bSB0aXRsZT0iVXNlIERlZmF1bHQiIGlkPSJHVWEtZU8tY3dZIj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlm
aWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idXNlU3RhbmRhcmRL
ZXJuaW5nOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iNmRrLTlsLUNrZyIvPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJVc2UgTm9uZSIgaWQ9ImNEQi1JSy1oYlIiPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNr
IGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0dXJuT2ZmS2VybmluZzoiIHRh
cmdldD0iQWR5LWhJLTVnZCIgaWQ9IlU4YS1nei1NYWEiLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0
aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVGlnaHRl
biIgaWQ9IjQ2UC1jQi1BWWoiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1
aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0aWdodGVuS2VybmluZzoiIHRhcmdldD0iQWR5LWhJ
LTVnZCIgaWQ9ImhyNy1Oei04cm8iLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTG9vc2VuIiBpZD0ib2djLXJY
LXRDMSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rp
b24gc2VsZWN0b3I9Imxvb3Nlbktlcm5pbmc6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSI4aTQt
ZjktRktFIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvaXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTGlnYXR1cmVzIiBpZD0i
bzZlLXIwLU1XcSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNr
Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IkxpZ2F0dXJlcyIgaWQ9IncwbS12eS1TQzki
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVXNlIERlZmF1bHQiIGlkPSJh
Z3QtVUwtMGUzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRN
b2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGFjdGlvbiBzZWxlY3Rvcj0idXNlU3RhbmRhcmRMaWdhdHVyZXM6IiB0YXJnZXQ9IkFkeS1oSS01
Z2QiIGlkPSI3dVItd2QtRHg2Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlVzZSBOb25lIiBpZD0iSjd5LWxN
LXFQViI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rp
b24gc2VsZWN0b3I9InR1cm5PZmZMaWdhdHVyZXM6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJp
WDItZ0EtSWx6Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRl
bT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlVzZSBBbGwiIGlkPSJ4UUQtMWYtVzR0Ij4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rv
cj0idXNlQWxsTGlnYXR1cmVzOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iS2NCLWtBLVR1SyIv
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0
ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkJhc2VsaW5lIiBpZD0iT2FRLVgzLVZz
byI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
IGtleT0ic3VibWVudSIgdGl0bGU9IkJhc2VsaW5lIiBpZD0iaWprLUVCLWRnYSI+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRl
bXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJVc2UgRGVmYXVsdCIgaWQ9IjNPbS1FeS0yVksi
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFz
ayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJ1bnNjcmlwdDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjB2Wi05NS1Zd24iLz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51SXRlbSB0aXRsZT0iU3VwZXJzY3JpcHQiIGlkPSJScWMtMzQtY0lGIj4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ic3VwZXJz
Y3JpcHQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSIzcVYtZm8td3BVIi8+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9IlN1YnNjcmlwdCIgaWQ9IkkwUy1naC00NmwiPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNr
IGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzdWJzY3JpcHQ6IiB0YXJnZXQ9
IkFkeS1oSS01Z2QiIGlkPSJRNlctNFctSUd6Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlJhaXNlIiBpZD0i
Mmg3LUVSLUFvRyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50
TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxhY3Rpb24gc2VsZWN0b3I9InJhaXNlQmFzZWxpbmU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlk
PSI0c2stMzEtN1E5Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ikxvd2VyIiBpZD0iMXR4LVcwLXhEdyI+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0
b3I9Imxvd2VyQmFzZWxpbmU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJPRjEtYmMtS1c0Ii8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRl
bXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9Ik5kdy1x
My1mYXEiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bWVudUl0ZW0gdGl0bGU9IlNob3cgQ29sb3JzIiBrZXlFcXVpdmFsZW50PSJDIiBpZD0i
YmduLUNULWNFayI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im9yZGVyRnJv
bnRDb2xvclBhbmVsOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0ibVNYLVh6LURWMyIvPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0iWUVTIiBpZD0iaU1zLXpB
LVVGSiIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtZW51SXRlbSB0aXRsZT0iQ29weSBTdHlsZSIga2V5RXF1aXZhbGVudD0iYyIgaWQ9IjVW
di1sei1Cc0QiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIg
b3B0aW9uPSJZRVMiIGNvbW1hbmQ9IllFUyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNl
bGVjdG9yPSJjb3B5Rm9udDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IkdKTy14QS1MNHEiLz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iUGFzdGUgU3R5bGUiIGtleUVxdWl2
YWxlbnQ9InYiIGlkPSJ2S0Mtak0tTWtIIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxl
bnRNb2RpZmllck1hc2siIG9wdGlvbj0iWUVTIiBjb21tYW5kPSJZRVMiLz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25z
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGFzdGVGb250OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBp
ZD0iSmZELUNMLWxlTyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlRleHQiIGlkPSJGYWwtSTQtUFprIj4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFz
ayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iVGV4dCIg
aWQ9ImQ5Yy1tZS1MMkgiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQWxpZ24gTGVmdCIga2V5RXF1aXZhbGVudD0i
eyIgaWQ9IlpNMS02US15eTEiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJh
bGlnbkxlZnQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJ6VXYtUjEtdUFhIi8+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkNlbnRlciIga2V5RXF1aXZhbGVudD0ifCIgaWQ9
IlZJWS1BZy16Y2IiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJhbGlnbkNl
bnRlcjoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9InNwWC1tay1rY1MiLz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9u
cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSB0aXRsZT0iSnVzdGlmeSIgaWQ9Iko1VS01dy1nMjMiPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZp
ZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YWN0aW9uIHNlbGVjdG9yPSJhbGlnbkp1c3RpZmllZDoiIHRhcmdldD0iQWR5LWhJLTVnZCIg
aWQ9ImxqTC03VS1qTkQiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQWxp
Z24gUmlnaHQiIGtleUVxdWl2YWxlbnQ9In0iIGlkPSJ3YjItdkQtbHE0Ij4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25z
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iYWxpZ25SaWdodDoiIHRhcmdldD0iQWR5LWhJLTVnZCIg
aWQ9InI0OC1iRy1ZZVkiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRv
ckl0ZW09IllFUyIgaWQ9IjRzMi1HWS1WZksiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IldyaXRpbmcgRGlyZWN0
aW9uIiBpZD0iSDFiLVNpLW85SiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IldyaXRpbmcgRGlyZWN0aW9u
IiBpZD0iOG1yLXNtLVlqZCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJQ
YXJhZ3JhcGgiIGVuYWJsZWQ9Ik5PIiBpZD0iWnZPLUdrLVFVSCI+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2Rp
Zmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bWVudUl0ZW0gaWQ9IllHcy1qNS1TQVIiPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ry
aW5nIGtleT0idGl0bGUiPglEZWZhdWx0PC9zdHJpbmc+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1h
c2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0
aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im1ha2VCYXNlV3JpdGluZ0Rp
cmVjdGlvbk5hdHVyYWw6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJxdFYtNWUtVUJQIi8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gaWQ9IkxiaC1KMi1xVlUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5nIGtleT0idGl0bGUiPglM
ZWZ0IHRvIFJpZ2h0PC9zdHJpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlF
cXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9Im1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvbkxlZnRU
b1JpZ2h0OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iUzBYLTlTLVFTZiIvPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlk
PSJqRnEtdEItNEt4Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZyBrZXk9InRpdGxlIj4JUmlnaHQgdG8g
TGVmdDwvc3RyaW5nPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVu
dE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YWN0aW9uIHNlbGVjdG9yPSJtYWtlQmFzZVdyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDoi
IHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9IjVmay1xQi1BcUoiLz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25u
ZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRv
ckl0ZW09IllFUyIgaWQ9InN3cC1nci1hMjEiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlNl
bGVjdGlvbiIgZW5hYmxlZD0iTk8iIGlkPSJjcXYtZmotSWhBIj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlm
aWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJ
dGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtZW51SXRlbSBpZD0iTm9wLWNqLTkzUSI+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJp
bmcga2V5PSJ0aXRsZSI+CURlZmF1bHQ8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFz
ayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ibWFrZVRleHRXcml0aW5nRGly
ZWN0aW9uTmF0dXJhbDoiIHRhcmdldD0iQWR5LWhJLTVnZCIgaWQ9ImxQSS1TZS1aSHAiLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51
SXRlbSBpZD0iQmdNLXZlLWM5MyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmcga2V5PSJ0aXRsZSI+CUxl
ZnQgdG8gUmlnaHQ8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVx
dWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ibWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRv
UmlnaHQ6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJjYVctQnYtdzk0Ii8+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaWQ9
IlJCNC1TbS1IdUMiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5nIGtleT0idGl0bGUiPglSaWdodCB0byBM
ZWZ0PC9zdHJpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50
TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxhY3Rpb24gc2VsZWN0b3I9Im1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OiIg
dGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRVhELTZyLVpVdSIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5l
Y3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSJmS3ktZzktMWdtIi8+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJTaG93IFJ1bGVyIiBpZD0idkxtLTNJLUlVTCI+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVp
dmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9
InRvZ2dsZVJ1bGVyOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRk94LUhKLUt3WSIvPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJDb3B5IFJ1bGVyIiBrZXlFcXVpdmFsZW50
PSJjIiBpZD0iTWtWLVByLVBLNSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9k
aWZpZXJNYXNrIiBjb250cm9sPSJZRVMiIGNvbW1hbmQ9IllFUyIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YWN0aW9uIHNlbGVjdG9yPSJjb3B5UnVsZXI6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSI3
MWktZlctM1cyIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlBhc3RlIFJ1
bGVyIiBrZXlFcXVpdmFsZW50PSJ2IiBpZD0iTFZNLWtPLWZWSSI+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5
PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIiBjb250cm9sPSJZRVMiIGNvbW1hbmQ9IllFUyIv
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJwYXN0ZVJ1bGVyOiIgdGFyZ2V0
PSJBZHktaEktNWdkIiBpZD0iY1NoLXdkLXFNMiIvPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJ
dGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVmlldyIg
aWQ9Ikg4aC03Yi1NNHYiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZp
ZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJWaWV3IiBpZD0iSHlW
LWZoLVJnTyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJT
aG93IFRvb2xiYXIiIGtleUVxdWl2YWxlbnQ9InQiIGlkPSJzblctUzgtQ3c1Ij4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9Imtl
eUVxdWl2YWxlbnRNb2RpZmllck1hc2siIG9wdGlvbj0iWUVTIiBjb21tYW5kPSJZRVMiLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBz
ZWxlY3Rvcj0idG9nZ2xlVG9vbGJhclNob3duOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iQlhZ
LXdjLXowQyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJ
dGVtIHRpdGxlPSJDdXN0b21pemUgVG9vbGJhcuKApiIgaWQ9IjFVSy04bi1RUFAiPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0i
a2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJydW5Ub29sYmFyQ3VzdG9t
aXphdGlvblBhbGV0dGU6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJwUUktZzMtTVRXIi8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0
b3JJdGVtPSJZRVMiIGlkPSJoQjMtTEYtaDBZIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJSZXNldCB2aWV3cG9ydCIga2V5RXF1aXZh
bGVudD0iUiIgaWQ9IjBSRS1BbS14U2MiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJyZXNldFZpZXdwb3J0OiIgdGFy
Z2V0PSJBZHktaEktNWdkIiBpZD0iUGRGLXViLTM1RiIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJTaG93IFNpZGViYXIiIGtleUVxdWl2
YWxlbnQ9InMiIGlkPSJrSVAtdmYtaGFFIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1h
c2siIGNvbnRyb2w9IllFUyIgY29tbWFuZD0iWUVTIi8+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZVNvdXJj
ZUxpc3Q6IiB0YXJnZXQ9IkFkeS1oSS01Z2QiIGlkPSJpd2EtZ2MtNUtNIi8+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkVudGVyIEZ1bGwg
U2NyZWVuIiBrZXlFcXVpdmFsZW50PSJmIiBpZD0iNEo3LWRQLXR4YSI+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVp
dmFsZW50TW9kaWZpZXJNYXNrIiBjb250cm9sPSJZRVMiIGNvbW1hbmQ9IllFUyIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVj
dG9yPSJ0b2dnbGVGdWxsU2NyZWVuOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iZFUzLU1BLTFS
cSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5l
Y3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0
ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0g
dGl0bGU9IldpbmRvdyIgaWQ9ImFVRi1kMS01YlIiPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudSBrZXk9InN1Ym1lbnUiIHRpdGxl
PSJXaW5kb3ciIHN5c3RlbU1lbnU9IndpbmRvdyIgaWQ9IlRkNy1hRC01bG8iPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTWluaW1pemUiIGtleUVxdWl2YWxl
bnQ9Im0iIGlkPSJPWTctV0YtcG9WIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGVyZm9ybU1pbmlhdHVyaXplOiIg
dGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iVndULVdELVlQZSIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJab29tIiBpZD0iUjRvLW4yLUVx
NCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmll
ck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InBlcmZv
cm1ab29tOiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRElsLWNDLWNDcyIvPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIGlzU2VwYXJhdG9ySXRlbT0i
WUVTIiBpZD0iZXUzLTdpLXlJTSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSB0aXRsZT0iQnJpbmcgQWxsIHRvIEZyb250IiBpZD0iTEUyLWFSLTBY
SiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmll
ck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9ImFycmFu
Z2VJbkZyb250OiIgdGFyZ2V0PSJBZHktaEktNWdkIiBpZD0iRFJOLWZ1LWdRaCIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51
SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkhlbHAi
IGlkPSJ3cHItM3EtTWNkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlm
aWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iSGVscCIgc3lzdGVt
TWVudT0iaGVscCIgaWQ9IkYyUy1mei1OVlEiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51SXRlbSB0aXRsZT0iV0hMU0wgVGVzdHMgSGVscCIga2V5RXF1aXZhbGVudD0iPyIgaWQ9
IkZLRS1TbS1LdW0iPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJzaG93SGVscDoiIHRhcmdldD0iQWR5LWhJLTVnZCIg
aWQ9Ink3WC0yUS05bm8iLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9p
dGVtcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51PgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICA8
L2l0ZW1zPgorICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAgICAg
IDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRsZXQgcHJvcGVydHk9
ImRlbGVnYXRlIiBkZXN0aW5hdGlvbj0iVm9lLVR4LXJMQyIgaWQ9IlByRC1mdS1QNm0iLz4KKyAg
ICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICA8L2FwcGxp
Y2F0aW9uPgorICAgICAgICAgICAgICAgIDxjdXN0b21PYmplY3QgaWQ9IlZvZS1UeC1yTEMiIGN1
c3RvbUNsYXNzPSJBcHBEZWxlZ2F0ZSIvPgorICAgICAgICAgICAgICAgIDxjdXN0b21PYmplY3Qg
aWQ9IllMeS02NS0xYnoiIGN1c3RvbUNsYXNzPSJOU0ZvbnRNYW5hZ2VyIi8+CisgICAgICAgICAg
ICAgICAgPGN1c3RvbU9iamVjdCBpZD0iQWR5LWhJLTVnZCIgdXNlckxhYmVsPSJGaXJzdCBSZXNw
b25kZXIiIGN1c3RvbUNsYXNzPSJOU1Jlc3BvbmRlciIgc2NlbmVNZW1iZXJJRD0iZmlyc3RSZXNw
b25kZXIiLz4KKyAgICAgICAgICAgIDwvb2JqZWN0cz4KKyAgICAgICAgICAgIDxwb2ludCBrZXk9
ImNhbnZhc0xvY2F0aW9uIiB4PSI3NSIgeT0iMC4wIi8+CisgICAgICAgIDwvc2NlbmU+CisgICAg
ICAgIDwhLS1XaW5kb3cgQ29udHJvbGxlci0tPgorICAgICAgICA8c2NlbmUgc2NlbmVJRD0iUjJW
LUIwLW5JNCI+CisgICAgICAgICAgICA8b2JqZWN0cz4KKyAgICAgICAgICAgICAgICA8d2luZG93
Q29udHJvbGxlciBpZD0iQjhELTBOLTV3UyIgc2NlbmVNZW1iZXJJRD0idmlld0NvbnRyb2xsZXIi
PgorICAgICAgICAgICAgICAgICAgICA8d2luZG93IGtleT0id2luZG93IiB0aXRsZT0iV2luZG93
IiBhbGxvd3NUb29sVGlwc1doZW5BcHBsaWNhdGlvbklzSW5hY3RpdmU9Ik5PIiBhdXRvcmVjYWxj
dWxhdGVzS2V5Vmlld0xvb3A9Ik5PIiByZWxlYXNlZFdoZW5DbG9zZWQ9Ik5PIiB2aXNpYmxlQXRM
YXVuY2g9Ik5PIiBhbmltYXRpb25CZWhhdmlvcj0iZGVmYXVsdCIgaWQ9IklRdi1JQi1pTEEiPgor
ICAgICAgICAgICAgICAgICAgICAgICAgPHdpbmRvd1N0eWxlTWFzayBrZXk9InN0eWxlTWFzayIg
dGl0bGVkPSJZRVMiIGNsb3NhYmxlPSJZRVMiIG1pbmlhdHVyaXphYmxlPSJZRVMiIHJlc2l6YWJs
ZT0iWUVTIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8d2luZG93UG9zaXRpb25NYXNrIGtl
eT0iaW5pdGlhbFBvc2l0aW9uTWFzayIgbGVmdFN0cnV0PSJZRVMiIHJpZ2h0U3RydXQ9IllFUyIg
dG9wU3RydXQ9IllFUyIgYm90dG9tU3RydXQ9IllFUyIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgPHJlY3Qga2V5PSJjb250ZW50UmVjdCIgeD0iMTk2IiB5PSIyNDAiIHdpZHRoPSI0ODAiIGhl
aWdodD0iMjcwIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9InNjcmVlblJl
Y3QiIHg9IjAuMCIgeT0iMC4wIiB3aWR0aD0iMTY4MCIgaGVpZ2h0PSIxMDI3Ii8+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG91dGxldCBwcm9wZXJ0eT0iZGVsZWdhdGUiIGRlc3RpbmF0aW9uPSJCOEQtME4tNXdTIiBp
ZD0iOThyLWlOLXpaYyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4K
KyAgICAgICAgICAgICAgICAgICAgPC93aW5kb3c+CisgICAgICAgICAgICAgICAgICAgIDxjb25u
ZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzZWd1ZSBkZXN0aW5hdGlvbj0iWGZH
LWxRLTl3RCIga2luZD0icmVsYXRpb25zaGlwIiByZWxhdGlvbnNoaXA9IndpbmRvdy5zaGFkb3dl
ZENvbnRlbnRWaWV3Q29udHJvbGxlciIgaWQ9ImNxMi1GRS1KUU0iLz4KKyAgICAgICAgICAgICAg
ICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICA8L3dpbmRvd0NvbnRyb2xsZXI+
CisgICAgICAgICAgICAgICAgPGN1c3RvbU9iamVjdCBpZD0iT2t5LXpZLW9QNCIgdXNlckxhYmVs
PSJGaXJzdCBSZXNwb25kZXIiIGN1c3RvbUNsYXNzPSJOU1Jlc3BvbmRlciIgc2NlbmVNZW1iZXJJ
RD0iZmlyc3RSZXNwb25kZXIiLz4KKyAgICAgICAgICAgIDwvb2JqZWN0cz4KKyAgICAgICAgICAg
IDxwb2ludCBrZXk9ImNhbnZhc0xvY2F0aW9uIiB4PSI3NSIgeT0iMjUwIi8+CisgICAgICAgIDwv
c2NlbmU+CisgICAgICAgIDwhLS1WaWV3IENvbnRyb2xsZXItLT4KKyAgICAgICAgPHNjZW5lIHNj
ZW5lSUQ9ImhJei1BUC1WT0QiPgorICAgICAgICAgICAgPG9iamVjdHM+CisgICAgICAgICAgICAg
ICAgPHZpZXdDb250cm9sbGVyIGlkPSJYZkctbFEtOXdEIiBjdXN0b21DbGFzcz0iVmlld0NvbnRy
b2xsZXIiIHNjZW5lTWVtYmVySUQ9InZpZXdDb250cm9sbGVyIj4KKyAgICAgICAgICAgICAgICAg
ICAgPHZpZXcga2V5PSJ2aWV3IiB3YW50c0xheWVyPSJZRVMiIGlkPSJtMlMtSnAtUWRsIj4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGtleT0iZnJhbWUiIHg9IjAuMCIgeT0iMC4wIiB3
aWR0aD0iMTI1NiIgaGVpZ2h0PSI0MzkiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhdXRv
cmVzaXppbmdNYXNrIGtleT0iYXV0b3Jlc2l6aW5nTWFzayIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPHN1YnZpZXdzPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdmVy
dGljYWxIdWdnaW5nUHJpb3JpdHk9Ijc1MCIgZml4ZWRGcmFtZT0iWUVTIiB0cmFuc2xhdGVzQXV0
b3Jlc2l6aW5nTWFza0ludG9Db25zdHJhaW50cz0iTk8iIGlkPSJ6V0EtdXMtRmtmIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qga2V5PSJmcmFtZSIgeD0iMTQiIHk9IjEz
IiB3aWR0aD0iOTAiIGhlaWdodD0iMzIiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJhdXRvcmVzaXppbmdNYXNrIiBmbGV4aWJsZU1heFg9
IllFUyIgZmxleGlibGVNYXhZPSJZRVMiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGJ1dHRvbkNlbGwga2V5PSJjZWxsIiB0eXBlPSJwdXNoIiB0aXRsZT0iQ29tcGlsZSIgYmV6
ZWxTdHlsZT0icm91bmRlZCIgYWxpZ25tZW50PSJjZW50ZXIiIGJvcmRlclN0eWxlPSJib3JkZXIi
IGltYWdlU2NhbGluZz0icHJvcG9ydGlvbmFsbHlEb3duIiBpbnNldD0iMiIgaWQ9IjFLNS1QTi1u
TEUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJlaGF2aW9yIGtleT0i
YmVoYXZpb3IiIHB1c2hJbj0iWUVTIiBsaWdodEJ5QmFja2dyb3VuZD0iWUVTIiBsaWdodEJ5R3Jh
eT0iWUVTIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBrZXk9
ImZvbnQiIG1ldGFGb250PSJzeXN0ZW0iLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxzdHJpbmcga2V5PSJrZXlFcXVpdmFsZW50Ij5yPC9zdHJpbmc+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVu
dE1vZGlmaWVyTWFzayIgY29tbWFuZD0iWUVTIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvYnV0dG9uQ2VsbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNv
bm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBz
ZWxlY3Rvcj0iY29tcGlsZUNsaWNrZWQ6IiB0YXJnZXQ9IlhmRy1sUS05d0QiIGlkPSIxRlItS0Ut
bnR5Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHNjcm9sbFZpZXcgZml4ZWRGcmFtZT0iWUVTIiBib3JkZXJUeXBlPSJub25lIiBo
b3Jpem9udGFsTGluZVNjcm9sbD0iMTAiIGhvcml6b250YWxQYWdlU2Nyb2xsPSIxMCIgdmVydGlj
YWxMaW5lU2Nyb2xsPSIxMCIgdmVydGljYWxQYWdlU2Nyb2xsPSIxMCIgaGFzSG9yaXpvbnRhbFNj
cm9sbGVyPSJOTyIgdHJhbnNsYXRlc0F1dG9yZXNpemluZ01hc2tJbnRvQ29uc3RyYWludHM9Ik5P
IiBpZD0iZWdGLThMLWNJNiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0
IGtleT0iZnJhbWUiIHg9IjIwIiB5PSI2MSIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzNTgiLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJhdXRv
cmVzaXppbmdNYXNrIiBmbGV4aWJsZU1pblg9IllFUyIgZmxleGlibGVNYXhYPSJZRVMiIGZsZXhp
YmxlTWluWT0iWUVTIiBmbGV4aWJsZU1heFk9IllFUyIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8Y2xpcFZpZXcga2V5PSJjb250ZW50VmlldyIgYW1iaWd1b3VzPSJZRVMiIGRy
YXdzQmFja2dyb3VuZD0iTk8iIGNvcGllc09uU2Nyb2xsPSJOTyIgaWQ9IkhXOC1MNy0zUFgiPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qga2V5PSJmcmFtZSIgeD0i
MC4wIiB5PSIwLjAiIHdpZHRoPSI0MDAiIGhlaWdodD0iMzU4Ii8+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9ImF1dG9yZXNpemluZ01h
c2siIHdpZHRoU2l6YWJsZT0iWUVTIiBoZWlnaHRTaXphYmxlPSJZRVMiLz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWJ2aWV3cz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGV4dFZpZXcgYW1iaWd1b3VzPSJZRVMiIGltcG9ydHNHcmFw
aGljcz0iTk8iIHJpY2hUZXh0PSJOTyIgdmVydGljYWxseVJlc2l6YWJsZT0iWUVTIiBmaW5kU3R5
bGU9ImJhciIgc21hcnRJbnNlcnREZWxldGU9IllFUyIgaWQ9InBSUC05ZC04bkIiPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1lIiB4
PSIwLjAiIHk9IjAuMCIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzNTgiLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJhdXRv
cmVzaXppbmdNYXNrIiB3aWR0aFNpemFibGU9IllFUyIgaGVpZ2h0U2l6YWJsZT0iWUVTIi8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2xvciBrZXk9InRl
eHRDb2xvciIgbmFtZT0idGV4dENvbG9yIiBjYXRhbG9nPSJTeXN0ZW0iIGNvbG9yU3BhY2U9ImNh
dGFsb2ciLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNv
bG9yIGtleT0iYmFja2dyb3VuZENvbG9yIiBuYW1lPSJ0ZXh0QmFja2dyb3VuZENvbG9yIiBjYXRh
bG9nPSJTeXN0ZW0iIGNvbG9yU3BhY2U9ImNhdGFsb2ciLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHNpemUga2V5PSJtaW5TaXplIiB3aWR0aD0iNDAwIiBo
ZWlnaHQ9IjM1OCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8c2l6ZSBrZXk9Im1heFNpemUiIHdpZHRoPSIxMzE3IiBoZWlnaHQ9IjEwMDAwMDAwIi8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGVkU3Ry
aW5nIGtleT0idGV4dFN0b3JhZ2UiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGZyYWdtZW50IGNvbnRlbnQ9IldITFNM4oCoVGV4dFZpZXciPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHRyaWJ1
dGVzPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8Y29sb3Iga2V5PSJOU0NvbG9yIiBuYW1lPSJ0ZXh0Q29sb3IiIGNhdGFsb2c9IlN5c3Rl
bSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBrZXk9Ik5TRm9udCIgc2l6ZT0iMTIiIG5h
bWU9Ik1lbmxvLVJlZ3VsYXIiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHBhcmFncmFwaFN0eWxlIGtleT0iTlNQYXJhZ3JhcGhTdHls
ZSIgYWxpZ25tZW50PSJuYXR1cmFsIiBsaW5lQnJlYWtNb2RlPSJ3b3JkV3JhcHBpbmciIGJhc2VX
cml0aW5nRGlyZWN0aW9uPSJuYXR1cmFsIiB0aWdodGVuaW5nRmFjdG9yRm9yVHJ1bmNhdGlvbj0i
MC4wIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9hdHRyaWJ1dGVzPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9mcmFnbWVudD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9hdHRyaWJ1dGVkU3RyaW5nPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8Y29sb3Iga2V5PSJpbnNlcnRpb25Qb2ludENvbG9yIiBuYW1lPSJ0
ZXh0Q29sb3IiIGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFZpZXc+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1YnZpZXdzPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2NsaXBWaWV3PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8c2Nyb2xsZXIga2V5PSJ2ZXJ0aWNhbFNjcm9sbGVyIiB3YW50c0xheWVyPSJZRVMiIHZlcnRp
Y2FsSHVnZ2luZ1ByaW9yaXR5PSI3NTAiIGhvcml6b250YWw9Ik5PIiBpZD0iMVQ0LVBMLWRJNCI+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1lIiB4
PSIzODQiIHk9IjAuMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjM1OCIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5PSJhdXRvcmVzaXppbmdN
YXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2Nyb2xsZXI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9zY3JvbGxWaWV3PgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzY3JvbGxWaWV3IGZpeGVkRnJhbWU9IllFUyIgYm9yZGVyVHlwZT0ibm9uZSIg
aG9yaXpvbnRhbExpbmVTY3JvbGw9IjEwIiBob3Jpem9udGFsUGFnZVNjcm9sbD0iMTAiIHZlcnRp
Y2FsTGluZVNjcm9sbD0iMTAiIHZlcnRpY2FsUGFnZVNjcm9sbD0iMTAiIGhhc0hvcml6b250YWxT
Y3JvbGxlcj0iTk8iIHRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRzPSJO
TyIgaWQ9InR1dS11Yy1EeGciPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVj
dCBrZXk9ImZyYW1lIiB4PSI0MjgiIHk9IjYxIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjM1OCIvPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9ImF1
dG9yZXNpemluZ01hc2siIGZsZXhpYmxlTWluWD0iWUVTIiBmbGV4aWJsZU1heFg9IllFUyIgZmxl
eGlibGVNaW5ZPSJZRVMiIGZsZXhpYmxlTWF4WT0iWUVTIi8+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjbGlwVmlldyBrZXk9ImNvbnRlbnRWaWV3IiBhbWJpZ3VvdXM9IllFUyIg
ZHJhd3NCYWNrZ3JvdW5kPSJOTyIgY29waWVzT25TY3JvbGw9Ik5PIiBpZD0iMVVzLXBILXpBcyI+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1lIiB4
PSIwLjAiIHk9IjAuMCIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIzNTgiLz4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxhdXRvcmVzaXppbmdNYXNrIGtleT0iYXV0b3Jlc2l6aW5n
TWFzayIgd2lkdGhTaXphYmxlPSJZRVMiIGhlaWdodFNpemFibGU9IllFUyIvPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1YnZpZXdzPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0VmlldyBhbWJpZ3VvdXM9IllFUyIgaW1wb3J0c0dy
YXBoaWNzPSJOTyIgcmljaFRleHQ9Ik5PIiB2ZXJ0aWNhbGx5UmVzaXphYmxlPSJZRVMiIGZpbmRT
dHlsZT0iYmFyIiBzbWFydEluc2VydERlbGV0ZT0iWUVTIiBpZD0iODJuLXl2LU9WbyI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGtleT0iZnJhbWUi
IHg9IjAuMCIgeT0iMC4wIiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjM1OCIvPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9ImF1
dG9yZXNpemluZ01hc2siIHdpZHRoU2l6YWJsZT0iWUVTIiBoZWlnaHRTaXphYmxlPSJZRVMiLz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbG9yIGtleT0i
dGV4dENvbG9yIiBuYW1lPSJ0ZXh0Q29sb3IiIGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0i
Y2F0YWxvZyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
Y29sb3Iga2V5PSJiYWNrZ3JvdW5kQ29sb3IiIG5hbWU9InRleHRCYWNrZ3JvdW5kQ29sb3IiIGNh
dGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8c2l6ZSBrZXk9Im1pblNpemUiIHdpZHRoPSI0MDAi
IGhlaWdodD0iMzU4Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxzaXplIGtleT0ibWF4U2l6ZSIgd2lkdGg9IjEzOTEiIGhlaWdodD0iMTAwMDAwMDAiLz4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbG9yIGtleT0i
aW5zZXJ0aW9uUG9pbnRDb2xvciIgbmFtZT0idGV4dENvbG9yIiBjYXRhbG9nPSJTeXN0ZW0iIGNv
bG9yU3BhY2U9ImNhdGFsb2ciLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L3RleHRWaWV3PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9z
dWJ2aWV3cz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwVmlldz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcm9sbGVyIGtleT0idmVydGljYWxTY3Jv
bGxlciIgd2FudHNMYXllcj0iWUVTIiB2ZXJ0aWNhbEh1Z2dpbmdQcmlvcml0eT0iNzUwIiBob3Jp
em9udGFsPSJOTyIgaWQ9ImV2OS14ci1NU1AiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHJlY3Qga2V5PSJmcmFtZSIgeD0iMzg0IiB5PSIwLjAiIHdpZHRoPSIxNiIgaGVp
Z2h0PSIzNTgiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdXRvcmVz
aXppbmdNYXNrIGtleT0iYXV0b3Jlc2l6aW5nTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L3Njcm9sbGVyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2Ny
b2xsVmlldz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VzdG9tVmlldyBmaXhlZEZy
YW1lPSJZRVMiIHRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRzPSJOTyIg
aWQ9IjlGRy1pdi02cHIiIGN1c3RvbUNsYXNzPSJDdXN0b21NZXRhbFZpZXciPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBrZXk9ImZyYW1lIiB4PSI4MzYiIHk9IjYxIiB3
aWR0aD0iNDAwIiBoZWlnaHQ9IjM1OCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YXV0b3Jlc2l6aW5nTWFzayBrZXk9ImF1dG9yZXNpemluZ01hc2siIGZsZXhpYmxlTWF4WD0i
WUVTIiBmbGV4aWJsZU1pblk9IllFUyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
Y3VzdG9tVmlldz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dEZpZWxkIGhvcml6
b250YWxIdWdnaW5nUHJpb3JpdHk9IjI1MSIgdmVydGljYWxIdWdnaW5nUHJpb3JpdHk9Ijc1MCIg
Zml4ZWRGcmFtZT0iWUVTIiB0cmFuc2xhdGVzQXV0b3Jlc2l6aW5nTWFza0ludG9Db25zdHJhaW50
cz0iTk8iIGlkPSJhU1ktMnItdk11Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHJlY3Qga2V5PSJmcmFtZSIgeD0iMTA2IiB5PSIyMCIgd2lkdGg9IjExMzIiIGhlaWdodD0iMTgi
Lz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF1dG9yZXNpemluZ01hc2sga2V5
PSJhdXRvcmVzaXppbmdNYXNrIiBmbGV4aWJsZU1heFg9IllFUyIgZmxleGlibGVNYXhZPSJZRVMi
Lz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRGaWVsZENlbGwga2V5PSJj
ZWxsIiBsaW5lQnJlYWtNb2RlPSJjbGlwcGluZyIgdGl0bGU9IkxhYmVsIiBpZD0iSkswLTNxLWVw
VyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBrZXk9ImZvbnQi
IG1ldGFGb250PSJzeXN0ZW0iLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxjb2xvciBrZXk9InRleHRDb2xvciIgbmFtZT0ibGFiZWxDb2xvciIgY2F0YWxvZz0iU3lzdGVt
IiBjb2xvclNwYWNlPSJjYXRhbG9nIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8Y29sb3Iga2V5PSJiYWNrZ3JvdW5kQ29sb3IiIG5hbWU9InRleHRCYWNrZ3JvdW5kQ29s
b3IiIGNhdGFsb2c9IlN5c3RlbSIgY29sb3JTcGFjZT0iY2F0YWxvZyIvPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L3RleHRGaWVsZENlbGw+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC90ZXh0RmllbGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3N1YnZpZXdz
PgorICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+CisgICAgICAgICAgICAgICAgICAgIDxjb25u
ZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRsZXQgcHJvcGVydHk9ImRlYnVn
TGFiZWwiIGRlc3RpbmF0aW9uPSJhU1ktMnItdk11IiBpZD0iaFNDLTlOLW5qOSIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgPG91dGxldCBwcm9wZXJ0eT0ibWV0YWxWaWV3IiBkZXN0aW5hdGlv
bj0iOUZHLWl2LTZwciIgaWQ9ImQxSy1FNy04ekwiLz4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxvdXRsZXQgcHJvcGVydHk9Im1zbFRleHRWaWV3IiBkZXN0aW5hdGlvbj0iODJuLXl2LU9WbyIg
aWQ9ImVvRS0zaC12aFYiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxvdXRsZXQgcHJvcGVy
dHk9Im1zbFZpZXdDb250YWluZXIiIGRlc3RpbmF0aW9uPSJ0dXUtdWMtRHhnIiBpZD0iWjNELWNQ
LXFZMiIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPG91dGxldCBwcm9wZXJ0eT0id2hsc2xU
ZXh0VmlldyIgZGVzdGluYXRpb249InBSUC05ZC04bkIiIGlkPSJNdWYtYm8tTktrIi8+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8b3V0bGV0IHByb3BlcnR5PSJ3aGxzbFZpZXdDb250YWluZXIi
IGRlc3RpbmF0aW9uPSJlZ0YtOEwtY0k2IiBpZD0iRElHLWoyLTJ0YiIvPgorICAgICAgICAgICAg
ICAgICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgIDwvdmlld0NvbnRyb2xsZXI+
CisgICAgICAgICAgICAgICAgPGN1c3RvbU9iamVjdCBpZD0iclB0LU5ULW5rVSIgdXNlckxhYmVs
PSJGaXJzdCBSZXNwb25kZXIiIGN1c3RvbUNsYXNzPSJOU1Jlc3BvbmRlciIgc2NlbmVNZW1iZXJJ
RD0iZmlyc3RSZXNwb25kZXIiLz4KKyAgICAgICAgICAgIDwvb2JqZWN0cz4KKyAgICAgICAgICAg
IDxwb2ludCBrZXk9ImNhbnZhc0xvY2F0aW9uIiB4PSItMzMyIiB5PSI5MTEuNSIvPgorICAgICAg
ICA8L3NjZW5lPgorICAgIDwvc2NlbmVzPgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZVJl
c3VsdC5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9Db21waWxlUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc1ZTFkYmI1NDYzYjhjNWI4N2Q5ZWY0
NzI3ZTBiM2IzOWI3Nzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZVJlc3VsdC5oCQpAQCAtMCww
ICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK05TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCisKK0BpbnRlcmZhY2UgQ29tcGlsZVJlc3VsdCA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aE1ldGFsU291cmNlOihOU1N0cmluZyopc291cmNlIGZ1bmN0aW9uTmFtZU1h
cDooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nKiwgTlNBcnJheTxOU1N0cmluZyo+Kj4qKW1hcDsKKwor
QHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKnNvdXJjZTsKKy8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBiZSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcqLCBOU0FycmF5PE5TU3RyaW5nKj4qPioKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIE5TRGljdGlvbmFyeTxOU1N0cmluZyosIE5TU3RyaW5nKj4qIGZ1
bmN0aW9uTmFtZU1hcDsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
Q29tcGlsZVJlc3VsdC5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hM
U0wgVGVzdHMvQ29yZS9Db21waWxlUmVzdWx0Lm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5ODgwZDQxNDc5NmUy
Y2NiYzhiMmIyZGY2ZjkyZGZlMGU3MWVhZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZVJlc3VsdC5t
CQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiQ29tcGlsZVJlc3VsdC5oIgorCitAaW50ZXJmYWNlIENvbXBpbGVS
ZXN1bHQgKCkKKworQHByb3BlcnR5IE5TU3RyaW5nICpzb3VyY2U7CitAcHJvcGVydHkgTlNEaWN0
aW9uYXJ5PE5TU3RyaW5nKiwgTlNTdHJpbmcqPiogZnVuY3Rpb25OYW1lTWFwOworCitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBDb21waWxlUmVzdWx0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aE1ldGFsU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmdW5jdGlvbk5hbWVNYXA6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKW1hcAoreworICAgIGlmIChzZWxmID0gW3N1
cGVyIGluaXRdKSB7CisgICAgICAgIHNlbGYuc291cmNlID0gc291cmNlOworICAgICAgICBzZWxm
LmZ1bmN0aW9uTmFtZU1hcCA9IG1hcDsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKK0Bl
bmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL0NvcmUvQ29tcGlsZXIuaCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01l
dGFsL1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTRlOTNiNzZlOTQz
NjA1ZGQ2NGNjZDI0NzYyYWJmY2ZiMGIzMzg1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9Db21waWxlci5oCQpA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworQGltcG9ydCBGb3VuZGF0aW9uOworQGltcG9ydCBKYXZhU2NyaXB0Q29yZTsKKworI2lt
cG9ydCAiQ29tcGlsZVJlc3VsdC5oIgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitAaW50
ZXJmYWNlIENvbXBpbGVyIDogTlNPYmplY3QKKworLSAoQ29tcGlsZVJlc3VsdCopY29tcGlsZVdo
bHNsVG9NZXRhbDooTlNTdHJpbmcqKXdobHNsU291cmNlIGVycm9yOihOU0Vycm9yKiopZXJyb3I7
CisKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBpbGVyLm0gYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0NvbXBp
bGVyLm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzAzZDBjMmJkYjU4MTgyMmMyNzBlYWYwZDdmMDIwYjQ0OGNhNWZi
MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFs
L1dITFNMIFRlc3RzL0NvcmUvQ29tcGlsZXIubQkKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJDb21waWxlci5o
IgorCitAaW1wb3J0IENvY29hOworQGltcG9ydCBKYXZhU2NyaXB0Q29yZTsKKworQGludGVyZmFj
ZSBDb21waWxlciAoKQorCitAcHJvcGVydHkgSlNDb250ZXh0KiBjb250ZXh0OworCitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBDb21waWxlcgorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKHNlbGYpIHsKKyAgICAgICAgc2VsZi5jb250
ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOworICAgICAgICBbc2VsZiBsb2FkU2NyaXB0
c107CisgICAgfQorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWxvYWRTY3JpcHRzCit7
CisgICAgX193ZWFrIEpTQ29udGV4dCogd2Vha0NvbnRleHQgPSBzZWxmLmNvbnRleHQ7CisgICAg
X19ibG9jayBOU011dGFibGVTZXQ8TlNTdHJpbmcqPiogYWxyZWFkeUxvYWRlZCA9IFtOU011dGFi
bGVTZXQgbmV3XTsKKyAgICB2b2lkIChebG9hZEZ1bmN0aW9uKShOU1N0cmluZyAqKSA9IF52b2lk
KE5TU3RyaW5nKiBuYW1lKQorICAgIHsKKyAgICAgICAgaWYgKCFbYWxyZWFkeUxvYWRlZCBjb250
YWluc09iamVjdDpuYW1lXSkgeworICAgICAgICAgICAgTlNTdHJpbmcqIHBhdGggPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIHBhdGhGb3JSZXNvdXJjZTpbbmFtZSBzdHJpbmdCeURlbGV0aW5nUGF0
aEV4dGVuc2lvbl0gb2ZUeXBlOkAianMiXTsKKyAgICAgICAgICAgIE5TRXJyb3IqIGxvYWRFcnJv
ciA9IG5pbDsKKyAgICAgICAgICAgIE5TU3RyaW5nKiBzcmMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aENvbnRlbnRzT2ZGaWxlOnBhdGggZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6
JmxvYWRFcnJvcl07CisgICAgICAgICAgICBpZiAobG9hZEVycm9yKQorICAgICAgICAgICAgICAg
IE5TTG9nKEAiTG9hZGluZyAlQCBmYWlsZWQ6ICVAIiwgbmFtZSwgbG9hZEVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFt3ZWFr
Q29udGV4dCBldmFsdWF0ZVNjcmlwdDpzcmNdOworICAgICAgICAgICAgICAgIFthbHJlYWR5TG9h
ZGVkIGFkZE9iamVjdDpuYW1lXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBOU0xvZyhAIkF0dGVtcHRpbmcgdG8gbG9hZCBkdXBsaWNhdGUgZmlsZSAlQCIsIG5h
bWUpOworICAgIH07CisgICAgc2VsZi5jb250ZXh0W0AibG9hZCJdID0gbG9hZEZ1bmN0aW9uOwor
CisgICAgbG9hZEZ1bmN0aW9uKEAiQWxsLmpzIik7CisgICAgbG9hZEZ1bmN0aW9uKEAiTVNMQ29k
ZWdlbkFsbC5qcyIpOworfQorCistIChDb21waWxlUmVzdWx0Kiljb21waWxlV2hsc2xUb01ldGFs
OihOU1N0cmluZyAqKXdobHNsU291cmNlIGVycm9yOihOU0Vycm9yICogX051bGxhYmxlIF9fYXV0
b3JlbGVhc2luZyAqKWVycm9yCit7CisgICAgSlNWYWx1ZSAqY29tcGlsZUZ1bmN0aW9uID0gW3Nl
bGYuY29udGV4dCBvYmplY3RGb3JLZXllZFN1YnNjcmlwdDpAIndobHNsVG9Nc2wiXTsKKyAgICBp
ZiAoY29tcGlsZUZ1bmN0aW9uKSB7CisgICAgICAgIEpTVmFsdWUgKiByZXN1bHQgPSBbY29tcGls
ZUZ1bmN0aW9uIGNhbGxXaXRoQXJndW1lbnRzOkBbd2hsc2xTb3VyY2VdXTsKKyAgICAgICAgaWYg
KHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKFtyZXN1bHQgaGFzUHJvcGVydHk6QCJfZXJyb3Ii
XSAmJiBbcmVzdWx0IGhhc1Byb3BlcnR5OkAiX21ldGFsU2hhZGVyTGFuZ3VhZ2VTb3VyY2UiXSAm
JiBbcmVzdWx0IGhhc1Byb3BlcnR5OkAiX29yaWdpbmFsRnVuY3Rpb25OYW1lVG9NYW5nbGVkTmFt
ZXMiXSkgeworICAgICAgICAgICAgICAgIGlmIChbW3Jlc3VsdCB2YWx1ZUZvclByb3BlcnR5OkAi
X2Vycm9yIl0gaXNOdWxsXSkgeworICAgICAgICAgICAgICAgICAgICBOU1N0cmluZyAqc3JjID0g
W1tyZXN1bHQgdmFsdWVGb3JQcm9wZXJ0eTpAIl9tZXRhbFNoYWRlckxhbmd1YWdlU291cmNlIl0g
dG9TdHJpbmddOworICAgICAgICAgICAgICAgICAgICBOU0RpY3Rpb25hcnkgKm1hcCA9IFtbcmVz
dWx0IHZhbHVlRm9yUHJvcGVydHk6QCJfb3JpZ2luYWxGdW5jdGlvbk5hbWVUb01hbmdsZWROYW1l
cyJdIHRvRGljdGlvbmFyeV07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbW0NvbXBpbGVS
ZXN1bHQgYWxsb2NdIGluaXRXaXRoTWV0YWxTb3VyY2U6c3JjIGZ1bmN0aW9uTmFtZU1hcDptYXBd
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICplcnJvciA9IFtOU0Vycm9y
IGVycm9yV2l0aERvbWFpbjpAIldobHNsQ29tcGlsZXIiIGNvZGU6MSB1c2VySW5mbzpAeyBOU0xv
Y2FsaXplZERlc2NyaXB0aW9uS2V5OiBbW3Jlc3VsdCB2YWx1ZUZvclByb3BlcnR5OkAiX2Vycm9y
Il0gdG9TdHJpbmddfV07CisgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgKmVycm9yID0gW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOkAiV2hs
c2xDb21waWxlciIgY29kZToyIHVzZXJJbmZvOkB7IE5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXk6
IEAiS2V5cyBub3QgcHJlc2VudCBpbiByZXN1bHQiIH1dOworICAgICAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICAgICAgfQorCisgICAgICAgICplcnJvciA9IFtOU0Vycm9yIGVycm9yV2l0aERvbWFp
bjpAIldobHNsQ29tcGlsZXIiIGNvZGU6MyB1c2VySW5mbzpAeyBOU0xvY2FsaXplZERlc2NyaXB0
aW9uS2V5OiBAIkNvbXBpbGF0aW9uIGZhaWxlZCIgfV07CisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICB9CisKKyAgICAqZXJyb3IgPSBbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJXaGxzbENv
bXBpbGVyIiBjb2RlOjQgdXNlckluZm86QHsgTlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleTogQCJE
aWRuJ3QgZmluZCBjb21waWxhdGlvbiBmdW5jdGlvbiIgfV07CisgICAgcmV0dXJuIG5pbDsKK30K
KworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9DdXN0b21NZXRhbFZpZXcuaCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvQ3VzdG9tTWV0YWxWaWV3LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmU1OWE2ODUzZGIwZmQ3ZWIwYTBjMzI5OGE3N2UwMjkxOGZiM2JiMAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3Rz
L0NvcmUvQ3VzdG9tTWV0YWxWaWV3LmgJCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KKyNpbXBvcnQgPE1ldGFsS2l0L01ldGFsS2l0Lmg+CisKK05TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKK0BjbGFzcyBDdXN0b21NZXRhbFZpZXc7CisKK0Bwcm90b2NvbCBDdXN0b21N
ZXRhbFZpZXdEZWxlZ2F0ZSA8TlNPYmplY3Q+CisKKy0gKHZvaWQpY3VzdG9tTWV0YWxWaWV3OihD
dXN0b21NZXRhbFZpZXcqKW1ldGFsVmlldyBzY3JvbGxlZERlbHRhWDooQ0dGbG9hdClkZWx0YVgg
ZGVsdGFZOihDR0Zsb2F0KWRlbHRhWTsKKworQGVuZAorCitAaW50ZXJmYWNlIEN1c3RvbU1ldGFs
VmlldyA6IE1US1ZpZXcKKworQHByb3BlcnR5IGlkPEN1c3RvbU1ldGFsVmlld0RlbGVnYXRlPiBz
Y3JvbGxEZWxlZ2F0ZTsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
Q3VzdG9tTWV0YWxWaWV3Lm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL0N1c3RvbU1ldGFsVmlldy5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyNzM5MGRiYWFi
OWUyMWEyZmFlNGUzNjMyZWI3MDg1YzBjNjM3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0N1c3RvbU1ldGFs
Vmlldy5tCQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiQ3VzdG9tTWV0YWxWaWV3LmgiCisKK0BpbXBsZW1lbnRh
dGlvbiBDdXN0b21NZXRhbFZpZXcKKworLSAodm9pZClzY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2
ZW50Cit7CisgICAgW3NlbGYuc2Nyb2xsRGVsZWdhdGUgY3VzdG9tTWV0YWxWaWV3OnNlbGYgc2Ny
b2xsZWREZWx0YVg6ZXZlbnQuZGVsdGFYIGRlbHRhWTpldmVudC5kZWx0YVldOworfQorCitAZW5k
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL0RlbW8gc2hhZGVycy9EZWZhdWx0LndobHNsIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRlcnMvRGVmYXVsdC53
aGxzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNDE5ZGY3YTBiYjllZjdiODQ3N2VmMDI5ZGZlODk0NTk0MTdlYjcz
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRlcnMvRGVmYXVsdC53aGxzbAkKQEAgLTAsMCArMSwy
NiBAQAorc3RydWN0IFZlcnRleElucHV0IHsKKyAgICBmbG9hdDIgcG9zaXRpb247CisgICAgZmxv
YXQyIHV2OworfQorCitzdHJ1Y3QgVmVydGV4T3V0cHV0IHsKKyAgICBmbG9hdDQgd3NsX1Bvc2l0
aW9uOworICAgIGZsb2F0NCBjb2xvcjsKK30KKworc3RydWN0IEZyYWdtZW50T3V0cHV0IHsKKyAg
ICBmbG9hdDQgd3NsX0NvbG9yOworfQorCit2ZXJ0ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRl
cihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCkgeworICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Cisg
ICAgcmVzdWx0LndzbF9Qb3NpdGlvbiA9IGZsb2F0NCh2ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4s
IDEuKTsKKyAgICByZXN1bHQuY29sb3IgPSBmbG9hdDQodmVydGV4SW5wdXQudXYsIDAuMCwgMS4w
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmcmFnbWVudCBGcmFnbWVudE91dHB1dCBmcmFn
bWVudFNoYWRlcihWZXJ0ZXhPdXRwdXQgc3RhZ2VJbikgeworICAgIEZyYWdtZW50T3V0cHV0IHJl
c3VsdDsKKyAgICByZXN1bHQud3NsX0NvbG9yID0gc3RhZ2VJbi5jb2xvcjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRlcnMvSnVsaWEud2hsc2wgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0RlbW8gc2hhZGVycy9K
dWxpYS53aGxzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjgwODhlZDMzODA3YWMxYzM5MmVmYzc0MDQzN2UzNjQx
NDc1ODgyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRlcnMvSnVsaWEud2hsc2wJCkBAIC0wLDAg
KzEsMTAzIEBACitzdHJ1Y3QgVmVydGV4SW5wdXQgeworICAgIGZsb2F0MiBwb3NpdGlvbjsKKyAg
ICBmbG9hdDIgdXY7Cit9CisKK3N0cnVjdCBWZXJ0ZXhPdXRwdXQgeworICAgIGZsb2F0NCB3c2xf
UG9zaXRpb247CisgICAgZmxvYXQyIHV2OworfQorCitzdHJ1Y3QgRnJhZ21lbnRPdXRwdXQgewor
ICAgIGZsb2F0NCB3c2xfQ29sb3I7Cit9CisKK3ZlcnRleCBWZXJ0ZXhPdXRwdXQgdmVydGV4U2hh
ZGVyKFZlcnRleElucHV0IHZlcnRleElucHV0KSB7CisgICAgVmVydGV4T3V0cHV0IHJlc3VsdDsK
KyAgICByZXN1bHQud3NsX1Bvc2l0aW9uID0gZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0aW9uLCAw
LiwgMS4pOworICAgIHJlc3VsdC51diA9IHZlcnRleElucHV0LnV2OworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2ZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZyYWdtZW50U2hhZGVyKFZlcnRleE91
dHB1dCBzdGFnZUluKSB7CisgICAgRnJhZ21lbnRPdXRwdXQgcmVzdWx0OworICAgIGZsb2F0IG0g
PSBqdWxpYShzdGFnZUluLnV2KTsKKyAgICBmbG9hdDMgaG90ID0gZmxvYXQzKDEsIDEsIDEpOwor
ICAgIGZsb2F0MyBjb2xkID0gZmxvYXQzKDAsIDEsIDAuMSk7CisgICAgZmxvYXQzIHJlcyA9IGlu
dGVycG9sYXRlKGNvbGQsIGhvdCwgbSk7CisgICAgcmVzID0gaHNsVG9SZ2IocmVzKTsKKyAgICBy
ZXN1bHQud3NsX0NvbG9yID0gZmxvYXQ0KHJlcywgMSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworZmxvYXQzIGludGVycG9sYXRlKGZsb2F0MyB4LCBmbG9hdDMgeSwgZmxvYXQgeikKK3sKKyAg
ICBmbG9hdDMgcmVzOworICAgIHJlcy54ID0geC54ICsgKHkueCAtIHgueCkgKiB6OworICAgIHJl
cy55ID0geC55ICsgKHkueSAtIHgueSkgKiB6OworICAgIHJlcy56ID0geC56ICsgKHkueiAtIHgu
eikgKiB6OworICAgIHJldHVybiByZXM7Cit9CisKK2Zsb2F0IGh1ZVRvUmdiKGZsb2F0IHAsIGZs
b2F0IHEsIGZsb2F0IHQpCit7CitpZih0IDwgMC4wKSB0ICs9IDEuMDsKKyAgICAgICAgICAgIGlm
KHQgPiAxLjApIHQgLT0gMS4wOworICAgICAgICAgICAgaWYodCA8IDEuMC82LjApIHJldHVybiBw
ICsgKHEgLSBwKSAqIDYuMCAqIHQ7CisgICAgICAgICAgICBpZih0IDwgMS4wLzIuMCkgcmV0dXJu
IHE7CisgICAgICAgICAgICBpZih0IDwgMi4wLzMuMCkgcmV0dXJuIHAgKyAocSAtIHApICogKDIu
MC8zLjAgLSB0KSAqIDYuMDsKKyAgICAgICAgICAgIHJldHVybiBwOworfQorCitmbG9hdDMgaHNs
VG9SZ2IoZmxvYXQzIGhzbCkKK3sKKyAgICBmbG9hdDMgcmdiOworICAgIGZsb2F0IGggPSBoc2wu
eDsKKyAgICBmbG9hdCBzID0gaHNsLnk7CisgICAgZmxvYXQgbCA9IGhzbC56OworICAgIGlmKHMg
PT0gMCl7CisgICAgICAgIHJnYiA9IGZsb2F0MyhsLCBsLCBsKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBmbG9hdCBxOworICAgICAgICBpZiAobCA8IDAuNSkgeyBxID0gbCAqICgxLjAgKyBzKTsg
fSBlbHNlIHsgcSA9IGwgKyBzIC0gbCAqIHM7IH0KKyAgICAgICAgZmxvYXQgcCA9IDIuMCAqIGwg
LSBxOworICAgICAgICByZ2IueCA9IGh1ZVRvUmdiKHAsIHEsIGggKyAxLjAvMy4wKTsKKyAgICAg
ICAgcmdiLnkgPSBodWVUb1JnYihwLCBxLCBoKTsKKyAgICAgICAgcmdiLnogPSBodWVUb1JnYihw
LCBxLCBoIC0gMS4wLzMuMCk7CisgICAgfQorCisgICAgcmV0dXJuIHJnYjsKKworfQorCitmbG9h
dCBqdWxpYShmbG9hdDIgdXYpCit7CisgICAgZmxvYXQgbiA9IDIuMGY7CisgICAgZmxvYXQyIHo7
CisgICAgZmxvYXQyIGM7CisgICAgZmxvYXQyIHNjYWxlID0gZmxvYXQyKDIsIDIuOSk7CisgICAg
ZmxvYXQyIGNlbnRlciA9IGZsb2F0MigwLjcsIDApOworICAgIGludCBpdGVyID0gMTAwOworICAg
IGMueCA9IDEuMzMzMyAqICh1di54IC0gMC41KSAqIHNjYWxlLnggLSBjZW50ZXIueDsKKyAgICBj
LnkgPSAodXYueSAtIDAuNSkgKiBzY2FsZS55IC0gY2VudGVyLnk7CisgICAgeiA9IGM7CisgICAg
aW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGl0ZXI7IGkrKykgeworICAgICAgICBmbG9hdCB4
ID0gcG93KHoueCAqIHoueCArIHoueSAqIHoueSwgbiAvIDIuMCkgKiBjb3MobiAqIGF0YW4yKHou
eSwgei54KSkgKyBjLng7CisgICAgICAgIGZsb2F0IHkgPSBwb3coei54ICogei54ICsgei55ICog
ei55LCBuIC8gMi4wKSAqIHNpbihuICogYXRhbjIoei55LCB6LngpKSArIGMueTsKKworICAgICAg
ICBpZihwb3coeCwgMi4wZikgKyBwb3coeSwgMi4wZikgPiAxNi4wZikgYnJlYWs7CisgICAgICAg
IHoueCA9IHg7CisgICAgICAgIHoueSA9IHk7CisgICAgfQorICAgIGZsb2F0IHJlczsKKyAgICBp
ZiAoaSA8IGl0ZXIpIHsKKyAgICAgICAgZmxvYXQgbG9nX3puID0gbG9nKCB6Lngqei54ICsgei55
KnoueSApIC8gMi4wZjsKKyAgICAgICAgZmxvYXQgbnUgPSBsb2coIGxvZ196biAvIGxvZyhuKSAp
IC8gbG9nKDIuMGYpOworICAgICAgICByZXMgPSAoZmxvYXQoaSkgKyAxIC0gbnUpIC8gZmxvYXQo
aXRlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICByZXMgPSAxOworICAgIH0KKyAgICByZXR1cm4g
cmVzOworfQorCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL0RlbW8gc2hhZGVycy9NYW5kZWxicm90LndobHNsIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRl
cnMvTWFuZGVsYnJvdC53aGxzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjFmMGNlZDQwNjA1OTc4MDNkMGY4Njdl
NmNjMGQ3NzI5YjRlOTFhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9EZW1vIHNoYWRlcnMvTWFuZGVsYnJvdC53
aGxzbAkKQEAgLTAsMCArMSw5OCBAQAorc3RydWN0IFZlcnRleElucHV0IHsKKyAgICBmbG9hdDIg
cG9zaXRpb247CisgICAgZmxvYXQyIHV2OworfQorCitzdHJ1Y3QgVmVydGV4T3V0cHV0IHsKKyAg
ICBmbG9hdDQgd3NsX1Bvc2l0aW9uOworICAgIGZsb2F0MiB1djsKK30KKworc3RydWN0IEZyYWdt
ZW50T3V0cHV0IHsKKyAgICBmbG9hdDQgd3NsX0NvbG9yOworfQorCit2ZXJ0ZXggVmVydGV4T3V0
cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCkgeworICAgIFZlcnRleE91
dHB1dCByZXN1bHQ7CisgICAgcmVzdWx0LndzbF9Qb3NpdGlvbiA9IGZsb2F0NCh2ZXJ0ZXhJbnB1
dC5wb3NpdGlvbiwgMC4sIDEuKTsKKyAgICByZXN1bHQudXYgPSB2ZXJ0ZXhJbnB1dC51djsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitmcmFnbWVudCBGcmFnbWVudE91dHB1dCBmcmFnbWVudFNo
YWRlcihWZXJ0ZXhPdXRwdXQgc3RhZ2VJbikgeworICAgIEZyYWdtZW50T3V0cHV0IHJlc3VsdDsK
KyAgICBmbG9hdCBtID0gbWFuZGVsYnJvdChzdGFnZUluLnV2KTsKKyAgICBmbG9hdDMgaG90ID0g
ZmxvYXQzKDEsIDEsIDEpOworICAgIGZsb2F0MyBjb2xkID0gZmxvYXQzKDAsIDEsIDAuMSk7Cisg
ICAgZmxvYXQzIHJlcyA9IGludGVycG9sYXRlKGNvbGQsIGhvdCwgbSk7CisgICAgcmVzID0gaHNs
VG9SZ2IocmVzKTsKKyAgICByZXN1bHQud3NsX0NvbG9yID0gZmxvYXQ0KHJlcywgMSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworZmxvYXQzIGludGVycG9sYXRlKGZsb2F0MyB4LCBmbG9hdDMg
eSwgZmxvYXQgeikKK3sKKyAgICBmbG9hdDMgcmVzOworICAgIHJlcy54ID0geC54ICsgKHkueCAt
IHgueCkgKiB6OworICAgIHJlcy55ID0geC55ICsgKHkueSAtIHgueSkgKiB6OworICAgIHJlcy56
ID0geC56ICsgKHkueiAtIHgueikgKiB6OworICAgIHJldHVybiByZXM7Cit9CisKK2Zsb2F0IGh1
ZVRvUmdiKGZsb2F0IHAsIGZsb2F0IHEsIGZsb2F0IHQpCit7CisgICAgaWYodCA8IDAuMCkgdCAr
PSAxLjA7CisgICAgaWYodCA+IDEuMCkgdCAtPSAxLjA7CisgICAgaWYodCA8IDEuMC82LjApIHJl
dHVybiBwICsgKHEgLSBwKSAqIDYuMCAqIHQ7CisgICAgaWYodCA8IDEuMC8yLjApIHJldHVybiBx
OworICAgIGlmKHQgPCAyLjAvMy4wKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMi4wLzMuMCAtIHQp
ICogNi4wOworICAgIHJldHVybiBwOworfQorCitmbG9hdDMgaHNsVG9SZ2IoZmxvYXQzIGhzbCkK
K3sKKyAgICBmbG9hdDMgcmdiOworICAgIGZsb2F0IGggPSBoc2wueDsKKyAgICBmbG9hdCBzID0g
aHNsLnk7CisgICAgZmxvYXQgbCA9IGhzbC56OworICAgIGlmKHMgPT0gMCl7CisgICAgICAgIHJn
YiA9IGZsb2F0MyhsLCBsLCBsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmbG9hdCBxOworICAg
ICAgICBpZiAobCA8IDAuNSkgeyBxID0gbCAqICgxLjAgKyBzKTsgfSBlbHNlIHsgcSA9IGwgKyBz
IC0gbCAqIHM7IH0KKyAgICAgICAgZmxvYXQgcCA9IDIuMCAqIGwgLSBxOworICAgICAgICByZ2Iu
eCA9IGh1ZVRvUmdiKHAsIHEsIGggKyAxLjAvMy4wKTsKKyAgICAgICAgcmdiLnkgPSBodWVUb1Jn
YihwLCBxLCBoKTsKKyAgICAgICAgcmdiLnogPSBodWVUb1JnYihwLCBxLCBoIC0gMS4wLzMuMCk7
CisgICAgfQorCisgICAgcmV0dXJuIHJnYjsKK30KKworZmxvYXQgbWFuZGVsYnJvdChmbG9hdDIg
dXYpCit7CisgICAgZmxvYXQyIHo7CisgICAgZmxvYXQyIGMgPSB1djsKKyAgICBpbnQgaXRlciA9
IDEwMDsKKyAgICB6ID0gYzsKKyAgICBpbnQgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgaXRlcjsg
aSsrKSB7CisgICAgICAgIGZsb2F0IHggPSAoei54ICogei54IC0gei55ICogei55KSArIGMueDsK
KyAgICAgICAgZmxvYXQgeSA9ICh6LnkgKiB6LnggKyB6LnggKiB6LnkpICsgYy55OworCisgICAg
ICAgIGlmKHBvdyh4LCAyLjBmKSArIHBvdyh5LCAyLjBmKSA+IDI1Ni4wKSBicmVhazsKKyAgICAg
ICAgei54ID0geDsKKyAgICAgICAgei55ID0geTsKKyAgICB9CisgICAgZmxvYXQgcmVzOworICAg
IGlmIChpIDwgaXRlcikgeworICAgICAgICBmbG9hdCBsb2dfem4gPSBsb2coIHoueCp6LnggKyB6
Lnkqei55ICkgLyAyOworICAgICAgICBmbG9hdCBudSA9IGxvZyggbG9nX3puIC8gbG9nKDIuMGYp
ICkgLyBsb2coMi4wZik7CisgICAgICAgIHJlcyA9IChmbG9hdChpKSArIDEgLSBudSkgLyBmbG9h
dChpdGVyKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXMgPSAxOworICAgIH0KK3JldHVybiBy
ZXM7Cit9CisKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0
YWwvV0hMU0wgVGVzdHMvQ29yZS9JbmZvLnBsaXN0IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9JbmZvLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxODU3
ZjUyZGFiMzNjNmUwZTBjM2MzZjI4ZGE2MDQ2MWEwN2E1N2UKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL0luZm8u
cGxpc3QJCkBAIC0wLDAgKzEsMzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8v
RU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxw
bGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVn
aW9uPC9rZXk+CisJPHN0cmluZz4kKERFVkVMT1BNRU5UX0xBTkdVQUdFKTwvc3RyaW5nPgorCTxr
ZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4kKEVYRUNVVEFCTEVfTkFNRSk8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWNvbkZpbGU8L2tleT4KKwk8c3RyaW5nPjwvc3RyaW5n
PgorCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz4kKFBST0RVQ1RfQlVO
RExFX0lERU5USUZJRVIpPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVy
c2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tl
eT4KKwk8c3RyaW5nPiQoUFJPRFVDVF9OQU1FKTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNr
YWdlVHlwZTwva2V5PgorCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9y
dFZlcnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPjEuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4xPC9zdHJpbmc+CisJPGtleT5MU01pbmltdW1TeXN0
ZW1WZXJzaW9uPC9rZXk+CisJPHN0cmluZz4kKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCk8L3N0
cmluZz4KKwk8a2V5Pk5TSHVtYW5SZWFkYWJsZUNvcHlyaWdodDwva2V5PgorCTxzdHJpbmc+Q29w
eXJpZ2h0IMKpIDIwMTggQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3N0cmluZz4K
Kwk8a2V5Pk5TTWFpblN0b3J5Ym9hcmRGaWxlPC9rZXk+CisJPHN0cmluZz5NYWluPC9zdHJpbmc+
CisJPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9z
dHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9PZmZzY3JlZW5SZW5k
ZXJlci5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9SZW5kZXJlci9PZmZzY3JlZW5SZW5kZXJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNjY1ZmIxNjVh
ZTRiMjVkMDVkZWJmNDcwOTRiNDVkOTliOTg4YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09m
ZnNjcmVlblJlbmRlcmVyLmgJCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJSZW5kZXJlci5oIgorCitOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgorCitAaW50ZXJmYWNlIE9mZnNjcmVlblJlbmRlcmVyIDogUmVuZGVy
ZXIKKworQHByb3BlcnR5IE1UTFBpeGVsRm9ybWF0IG91dHB1dFBpeGVsRm9ybWF0OworCistICh2
b2lkKXNldExpYnJhcnk6KGlkPE1UTExpYnJhcnk+KWxpYnJhcnkgdmVydGV4U2hhZGVyTmFtZToo
TlNTdHJpbmcqKXZlcnRleFNoYWRlciBmcmFnbWVudFNoYWRlck5hbWU6KE5TU3RyaW5nKilmcmFn
bWVudFNoYWRlck5hbWU7CistICh2b2lkKXJlYWRUZXh0dXJlRGF0YVRvQnVmZmVyOih1aW50OF90
KilidWZmZXIgYnl0ZXNQZXJSb3c6KE5TVUludGVnZXIpYnl0ZXNQZXJSb3c7CisKKy0gKGludClp
bnRWYWx1ZTsKKy0gKHVuc2lnbmVkKXVpbnRWYWx1ZTsKKy0gKGZsb2F0KWZsb2F0VmFsdWU7CisK
K0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09mZnNjcmVl
blJlbmRlcmVyLm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL1JlbmRlcmVyL09mZnNjcmVlblJlbmRlcmVyLm0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdlZjIw
YzVmM2I5YzY3NjdjZjMwNzYxM2ZmNWEyY2FhMDRlNTRlNQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVy
ZXIvT2Zmc2NyZWVuUmVuZGVyZXIubQkKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJPZmZzY3JlZW5SZW5kZXJl
ci5oIgorCitAaW50ZXJmYWNlIE9mZnNjcmVlblJlbmRlcmVyICgpCit7CisgICAgaWQ8TVRMVGV4
dHVyZT4gX291dHB1dFRleHR1cmU7Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE9mZnNj
cmVlblJlbmRlcmVyCisKKy0gKHZvaWQpc2V0TGlicmFyeTooaWQ8TVRMTGlicmFyeT4pbGlicmFy
eSB2ZXJ0ZXhTaGFkZXJOYW1lOihOU1N0cmluZyopdmVydGV4U2hhZGVyIGZyYWdtZW50U2hhZGVy
TmFtZTooTlNTdHJpbmcqKWZyYWdtZW50U2hhZGVyTmFtZQoreworICAgIFtzdXBlciBzZXRMaWJy
YXJ5OmxpYnJhcnkgdmVydGV4U2hhZGVyTmFtZTp2ZXJ0ZXhTaGFkZXIgZnJhZ21lbnRTaGFkZXJO
YW1lOmZyYWdtZW50U2hhZGVyTmFtZSBwaXhlbEZvcm1hdDpzZWxmLm91dHB1dFBpeGVsRm9ybWF0
XTsKK30KKworLSAodm9pZClzZXRUYXJnZXRXaWR0aDooTlNVSW50ZWdlcil3aWR0aCBzZXRUYXJn
ZXRIZWlnaHQ6KE5TVUludGVnZXIpaGVpZ2h0Cit7CisgICAgW3N1cGVyIHNldFRhcmdldFdpZHRo
OndpZHRoIHNldFRhcmdldEhlaWdodDpoZWlnaHRdOworICAgIE1UTFRleHR1cmVEZXNjcmlwdG9y
ICpvdXRwdXREZXNjcmlwdG9yID0gW01UTFRleHR1cmVEZXNjcmlwdG9yIHRleHR1cmUyRERlc2Ny
aXB0b3JXaXRoUGl4ZWxGb3JtYXQ6c2VsZi5vdXRwdXRQaXhlbEZvcm1hdCB3aWR0aDpzZWxmLnRh
cmdldFdpZHRoIGhlaWdodDpzZWxmLnRhcmdldEhlaWdodCBtaXBtYXBwZWQ6Tk9dOworICAgIG91
dHB1dERlc2NyaXB0b3IudXNhZ2UgPSBNVExUZXh0dXJlVXNhZ2VSZW5kZXJUYXJnZXQ7CisgICAg
b3V0cHV0RGVzY3JpcHRvci5zdG9yYWdlTW9kZSA9IE1UTFN0b3JhZ2VNb2RlTWFuYWdlZDsKKyAg
ICBfb3V0cHV0VGV4dHVyZSA9IFtzZWxmLmRldmljZSBuZXdUZXh0dXJlV2l0aERlc2NyaXB0b3I6
b3V0cHV0RGVzY3JpcHRvcl07Cit9CisKKy0gKE1UTFJlbmRlclBhc3NEZXNjcmlwdG9yKilyZW5k
ZXJQYXNzRGVzY3JpcHRvcgoreworICAgIE1UTFJlbmRlclBhc3NEZXNjcmlwdG9yICpyZW5kZXJQ
YXNzRGVzY3JpcHRvciA9IFtNVExSZW5kZXJQYXNzRGVzY3JpcHRvciByZW5kZXJQYXNzRGVzY3Jp
cHRvcl07CisgICAgcmVuZGVyUGFzc0Rlc2NyaXB0b3IuY29sb3JBdHRhY2htZW50c1swXS50ZXh0
dXJlID0gX291dHB1dFRleHR1cmU7CisgICAgcmV0dXJuIHJlbmRlclBhc3NEZXNjcmlwdG9yOwor
fQorCistICh2b2lkKWNvbmZpZ3VyZUNvbW1hbmRCdWZmZXJCZWZvcmVDb21taXQ6KGlkPE1UTENv
bW1hbmRCdWZmZXI+KWNvbW1hbmRCdWZmZXIKK3sKKyAgICBpZCA8TVRMQmxpdENvbW1hbmRFbmNv
ZGVyPiBibGl0RW5jb2RlciA9IFtjb21tYW5kQnVmZmVyIGJsaXRDb21tYW5kRW5jb2Rlcl07Cisg
ICAgW2JsaXRFbmNvZGVyIHN5bmNocm9uaXplUmVzb3VyY2U6X291dHB1dFRleHR1cmVdOworICAg
IFtibGl0RW5jb2RlciBlbmRFbmNvZGluZ107Cit9CisKKy0gKHZvaWQpcmVhZFRleHR1cmVEYXRh
VG9CdWZmZXI6KHVpbnQ4X3QgKilidWZmZXIgYnl0ZXNQZXJSb3c6KE5TVUludGVnZXIpYnl0ZXNQ
ZXJSb3cKK3sKKyAgICAvLyBUaGUgdGV4dHVyZSBpc24ndCBtaXBtYXBwZWQsIHNvIHdlIHVzZSB0
aGUgZGVmYXVsdCBsZXZlbCBvZiAwCisgICAgW19vdXRwdXRUZXh0dXJlIGdldEJ5dGVzOmJ1ZmZl
ciBieXRlc1BlclJvdzpieXRlc1BlclJvdyBmcm9tUmVnaW9uOk1UTFJlZ2lvbk1ha2UyRCgwLCAw
LCBzZWxmLnRhcmdldFdpZHRoLCBzZWxmLnRhcmdldEhlaWdodCkgbWlwbWFwTGV2ZWw6MF07Cit9
CisKKy0gKGludClpbnRWYWx1ZQoreworICAgIC8vIFdlIGFsd2F5cyBoYXZlIDQgYnl0ZXMgcGVy
IHBpeGVsCisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBzZWxmLnRhcmdldFdpZHRoICogc2VsZi50
YXJnZXRIZWlnaHQgKiA0OworICAgIHVpbnQ4X3QgKmJ1ZmZlciA9IGNhbGxvYyhsZW5ndGgsIHNp
emVvZih1aW50OF90KSk7CisgICAgW3NlbGYgcmVhZFRleHR1cmVEYXRhVG9CdWZmZXI6KHVpbnQ4
X3QqKWJ1ZmZlciBieXRlc1BlclJvdzo0ICogc2VsZi50YXJnZXRXaWR0aF07CisgICAgaW50IGlu
dFZhbHVlID0gKChpbnQqKWJ1ZmZlcilbMF07CisgICAgZnJlZShidWZmZXIpOworICAgIHJldHVy
biBpbnRWYWx1ZTsKK30KKworLSAodW5zaWduZWQpdWludFZhbHVlCit7CisgICAgLy8gV2UgYWx3
YXlzIGhhdmUgNCBieXRlcyBwZXIgcGl4ZWwKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IHNlbGYu
dGFyZ2V0V2lkdGggKiBzZWxmLnRhcmdldEhlaWdodCAqIDQ7CisgICAgdWludDhfdCAqYnVmZmVy
ID0gY2FsbG9jKGxlbmd0aCwgc2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICBbc2VsZiByZWFkVGV4dHVy
ZURhdGFUb0J1ZmZlcjoodWludDhfdCopYnVmZmVyIGJ5dGVzUGVyUm93OjQgKiBzZWxmLnRhcmdl
dFdpZHRoXTsKKyAgICB1bnNpZ25lZCB1aW50VmFsdWUgPSAoKHVuc2lnbmVkKilidWZmZXIpWzBd
OworICAgIGZyZWUoYnVmZmVyKTsKKyAgICByZXR1cm4gdWludFZhbHVlOworfQorCistIChmbG9h
dClmbG9hdFZhbHVlCit7CisgICAgLy8gV2UgYWx3YXlzIGhhdmUgNCBieXRlcyBwZXIgcGl4ZWwK
KyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IHNlbGYudGFyZ2V0V2lkdGggKiBzZWxmLnRhcmdldEhl
aWdodCAqIDQ7CisgICAgdWludDhfdCAqYnVmZmVyID0gY2FsbG9jKGxlbmd0aCwgc2l6ZW9mKHVp
bnQ4X3QpKTsKKyAgICBbc2VsZiByZWFkVGV4dHVyZURhdGFUb0J1ZmZlcjoodWludDhfdCopYnVm
ZmVyIGJ5dGVzUGVyUm93OjQgKiBzZWxmLnRhcmdldFdpZHRoXTsKKyAgICBmbG9hdCBmbG9hdFZh
bHVlID0gKChmbG9hdCopYnVmZmVyKVswXTsKKyAgICBmcmVlKGJ1ZmZlcik7CisgICAgcmV0dXJu
IGZsb2F0VmFsdWU7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT25zY3JlZW5SZW5kZXJl
ci5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29y
ZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTYwYWI2MGNlMTRmN2Nm
NTE5MWI4NDlkY2MyYzExMTBiZGFmMTk4OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvT25zY3Jl
ZW5SZW5kZXJlci5oCQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisK
KyNpbXBvcnQgIlJlbmRlcmVyLmgiCisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK0BpbnRl
cmZhY2UgT25zY3JlZW5SZW5kZXJlciA6IFJlbmRlcmVyPE1US1ZpZXdEZWxlZ2F0ZT4KKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooTVRLVmlldyopdmlldyBkZXZpY2U6KGlkPE1UTERl
dmljZT4pZGV2aWNlOworCitAcHJvcGVydHkgKHJlYWRvbmx5KSBNVEtWaWV3ICp2aWV3OworCist
ICh2b2lkKXNldFNoYWRlclNvdXJjZTooTlNTdHJpbmcqKXNvdXJjZSB2ZXJ0ZXhTaGFkZXJOYW1l
OihOU1N0cmluZyopdmVydGV4U2hhZGVyIGZyYWdtZW50U2hhZGVyTmFtZTooTlNTdHJpbmcqKWZy
YWdtZW50U2hhZGVyOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9S
ZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL09uc2NyZWVuUmVuZGVyZXIubQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMDYyNDgyMTVmOGNmNGQzZDQzYzM4NDYxOWVjMmY0NGY3Y2Y4M2IzCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9SZW5kZXJlci9PbnNjcmVlblJlbmRlcmVyLm0JCkBAIC0wLDAgKzEsODIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJPbnNj
cmVlblJlbmRlcmVyLmgiCisKKyNpbXBvcnQgPHNpbWQvc2ltZC5oPgorCitAaW50ZXJmYWNlIE9u
c2NyZWVuUmVuZGVyZXIgKCkKKworQHByb3BlcnR5IE1US1ZpZXcgKnZpZXc7CitAcHJvcGVydHkg
Q0dTaXplIGRyYXdhYmxlU2l6ZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gT25zY3JlZW5S
ZW5kZXJlcgorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihNVEtWaWV3ICopdmlldyBk
ZXZpY2U6KG5vbm51bGwgaWQ8TVRMRGV2aWNlPilkZXZpY2UKK3sKKyAgICBzZWxmID0gW3N1cGVy
IGluaXRXaXRoRGV2aWNlOmRldmljZV07CisgICAgaWYgKHNlbGYpIHsKKyAgICAgICAgc2VsZi52
aWV3ID0gdmlldzsKKyAgICAgICAgc2VsZi52aWV3LmRlbGVnYXRlID0gc2VsZjsKKyAgICB9Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpbXRrVmlldzooTVRLVmlldyAqKXZpZXcgZHJh
d2FibGVTaXplV2lsbENoYW5nZTooQ0dTaXplKXNpemUKK3sKKyAgICBbc2VsZiBzZXRUYXJnZXRX
aWR0aDpzaXplLndpZHRoIHNldFRhcmdldEhlaWdodDpzaXplLmhlaWdodF07Cit9CisKKy0gKHZv
aWQpZHJhd0luTVRLVmlldzooTVRLVmlldyAqKXZpZXcKK3sKKyAgICBbc2VsZiBkcmF3XTsKK30K
KworLSAoTVRMUmVuZGVyUGFzc0Rlc2NyaXB0b3IqKXJlbmRlclBhc3NEZXNjcmlwdG9yCit7Cisg
ICAgcmV0dXJuIHNlbGYudmlldy5jdXJyZW50UmVuZGVyUGFzc0Rlc2NyaXB0b3I7Cit9CisKKy0g
KHZvaWQpY29uZmlndXJlQ29tbWFuZEJ1ZmZlckJlZm9yZUNvbW1pdDooaWQ8TVRMQ29tbWFuZEJ1
ZmZlcj4pY29tbWFuZEJ1ZmZlcgoreworICAgIFtjb21tYW5kQnVmZmVyIHByZXNlbnREcmF3YWJs
ZTpzZWxmLnZpZXcuY3VycmVudERyYXdhYmxlXTsKK30KKworLSAodm9pZClzZXRTaGFkZXJTb3Vy
Y2U6KE5TU3RyaW5nICopc291cmNlIHZlcnRleFNoYWRlck5hbWU6KE5TU3RyaW5nICopdmVydGV4
U2hhZGVyTmFtZSBmcmFnbWVudFNoYWRlck5hbWU6KE5TU3RyaW5nICopZnJhZ21lbnRTaGFkZXJO
YW1lCit7CisgICAgTVRMQ29tcGlsZU9wdGlvbnMgKmNvbXBpbGVPcHRpb25zID0gW1tNVExDb21w
aWxlT3B0aW9ucyBhbGxvY10gaW5pdF07CisgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CisgICAg
aWQ8TVRMTGlicmFyeT4gbGlicmFyeSA9IFtzZWxmLmRldmljZSBuZXdMaWJyYXJ5V2l0aFNvdXJj
ZTpzb3VyY2Ugb3B0aW9uczpjb21waWxlT3B0aW9ucyBlcnJvcjomZXJyb3JdOworICAgIGlmICgh
bGlicmFyeSAmJiBlcnJvcikgeworICAgICAgICBOU0xvZyhAIkNvbXBpbGUgZXJyb3I6ICVAIiwg
ZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgW3NlbGYgc2V0TGlicmFyeTpsaWJyYXJ5IHZlcnRleFNoYWRlck5hbWU6dmVydGV4U2hhZGVy
TmFtZSBmcmFnbWVudFNoYWRlck5hbWU6ZnJhZ21lbnRTaGFkZXJOYW1lIHBpeGVsRm9ybWF0OnNl
bGYudmlldy5jb2xvclBpeGVsRm9ybWF0XTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9S
ZW5kZXJlci5oIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVz
dHMvQ29yZS9SZW5kZXJlci9SZW5kZXJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYjIzNTNiODI2M2Q3YjNi
NTA0MGI2YTk3MDJjMzZjNDNiMDc4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1JlbmRlcmVyL1JlbmRlcmVy
LmgJCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPE1l
dGFsS2l0L01ldGFsS2l0Lmg+CisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK0BpbnRlcmZh
Y2UgUmVuZGVyZXIgOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEZXZpY2U6
KGlkPE1UTERldmljZT4pZGV2aWNlOworCitAcHJvcGVydHkgKG5vbmF0b21pYykgc2ltZF9mbG9h
dDN4MyB0cmFuc2Zvcm1NYXRyaXg7CisKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGlkPE1UTERldmlj
ZT4gZGV2aWNlOworCitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1VJbnRlZ2VyIHRhcmdldFdpZHRo
OworQHByb3BlcnR5IChyZWFkb25seSkgTlNVSW50ZWdlciB0YXJnZXRIZWlnaHQ7CisKKy0gKHZv
aWQpc2V0VGFyZ2V0V2lkdGg6KE5TVUludGVnZXIpd2lkdGggc2V0VGFyZ2V0SGVpZ2h0OihOU1VJ
bnRlZ2VyKWhlaWdodDsKKworLSAodm9pZClzZXRMaWJyYXJ5OihpZDxNVExMaWJyYXJ5PilsaWJy
YXJ5IHZlcnRleFNoYWRlck5hbWU6KE5TU3RyaW5nKil2ZXJ0ZXhTaGFkZXIgZnJhZ21lbnRTaGFk
ZXJOYW1lOihOU1N0cmluZyopZnJhZ21lbnRTaGFkZXJOYW1lIHBpeGVsRm9ybWF0OihNVExQaXhl
bEZvcm1hdClwaXhlbEZvcm1hdDsKKworLSAodm9pZClkcmF3OworCisvLyBNZXRob2RzIHRoYXQg
Y2FuIGJlIG92ZXJsb2FkZWQgdG8gY29uZmlndXJlIHRoZSByZW5kZXIgcGlwZWxpbmUKKy0gKE1U
TFJlbmRlclBhc3NEZXNjcmlwdG9yKilyZW5kZXJQYXNzRGVzY3JpcHRvcjsKKy0gKHZvaWQpY29u
ZmlndXJlQ29tbWFuZEJ1ZmZlckJlZm9yZUNvbW1pdDooaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4pY29t
bWFuZEJ1ZmZlcjsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvUmVu
ZGVyZXIvUmVuZGVyZXIubSBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvUmVuZGVyZXIvUmVuZGVyZXIubQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjFmOTVjZTc4
MjY0YzlmYzI1Y2Q0YWMwNDQ2YmQ2NGFkNjZhYzNmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9SZW5kZXJlci9S
ZW5kZXJlci5tCQpAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIlJlbmRlcmVyLmgiCisKKy8vIFRoaXMgc2hvdWxk
IG1pcnJvciB0aGUgc3RydWN0dXJlIHRoYXQgaXMgdXNlZCBmb3IgdGhlIHZlcnRleCBzaGFkZXJz
Cit0eXBlZGVmIHN0cnVjdCB7CisgICAgdmVjdG9yX2Zsb2F0MiBwb3NpdGlvbjsKKyAgICB2ZWN0
b3JfZmxvYXQyIHV2OworfSBWZXJ0ZXhTdHJ1Y3Q7CisKKy8vIEEgcXVhZCB0aGF0IGZpbGxzIHRo
ZSB2aWV3cG9ydAorc3RhdGljIFZlcnRleFN0cnVjdCB2ZXJ0ZXhEYXRhW10gPQoreworICAgIC8v
IDJEIHBvc2l0aW9ucworICAgIHsgeyAtMS4wLCAgLTEuMCB9LCB7IDAsIDAgfSB9LAorICAgIHsg
eyAgMS4wLCAgLTEuMCB9LCB7IDEsIDAgfSB9LAorICAgIHsgeyAtMS4wLCAxLjAgfSwgeyAwLCAx
IH0gfSwKKyAgICB7IHsgIDEuMCwgMS4wIH0sIHsgMSwgMSB9IH0KK307CisKK0BpbnRlcmZhY2Ug
UmVuZGVyZXIgKCkKKworQHByb3BlcnR5IGlkPE1UTERldmljZT4gZGV2aWNlOworQHByb3BlcnR5
IE5TVUludGVnZXIgdGFyZ2V0V2lkdGg7CitAcHJvcGVydHkgTlNVSW50ZWdlciB0YXJnZXRIZWln
aHQ7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFJlbmRlcmVyIHsKKyAgICBpZDxNVExDb21t
YW5kUXVldWU+IF9jb21tYW5kUXVldWU7CisgICAgaWQ8TVRMTGlicmFyeT4gX2xpYnJhcnk7CisK
KyAgICBNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IgKl9waXBlbGluZVN0YXRlRGVzY3JpcHRv
cjsKKworICAgIGlkPE1UTFJlbmRlclBpcGVsaW5lU3RhdGU+IF9waXBlbGluZVN0YXRlOworfQor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEZXZpY2U6KGlkPE1UTERldmljZT4pZGV2aWNlCit7
CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikgeworICAgICAgICBfZGV2
aWNlID0gZGV2aWNlOworICAgICAgICBfY29tbWFuZFF1ZXVlID0gW19kZXZpY2UgbmV3Q29tbWFu
ZFF1ZXVlXTsKKyAgICAgICAgc2VsZi50cmFuc2Zvcm1NYXRyaXggPSBtYXRyaXhfaWRlbnRpdHlf
ZmxvYXQzeDM7CisgICAgfQorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXNldExpYnJh
cnk6KGlkPE1UTExpYnJhcnk+KWxpYnJhcnkgdmVydGV4U2hhZGVyTmFtZTooTlNTdHJpbmcqKXZl
cnRleFNoYWRlck5hbWUgZnJhZ21lbnRTaGFkZXJOYW1lOihOU1N0cmluZyopZnJhZ21lbnRTaGFk
ZXJOYW1lIHBpeGVsRm9ybWF0OihNVExQaXhlbEZvcm1hdClwaXhlbEZvcm1hdAoreworICAgIF9s
aWJyYXJ5ID0gbGlicmFyeTsKKyAgICBpZDxNVExGdW5jdGlvbj4gdmVydGV4RnVuY3Rpb24gPSBb
X2xpYnJhcnkgbmV3RnVuY3Rpb25XaXRoTmFtZTp2ZXJ0ZXhTaGFkZXJOYW1lXTsKKyAgICBpZDxN
VExGdW5jdGlvbj4gZnJhZ21lbnRGdW5jdGlvbiA9IFtfbGlicmFyeSBuZXdGdW5jdGlvbldpdGhO
YW1lOmZyYWdtZW50U2hhZGVyTmFtZV07CisKKyAgICAvLyBDb25maWd1cmUgYSBwaXBlbGluZSBk
ZXNjcmlwdG9yIHRoYXQgaXMgdXNlZCB0byBjcmVhdGUgYSBwaXBlbGluZSBzdGF0ZQorICAgIF9w
aXBlbGluZVN0YXRlRGVzY3JpcHRvciA9IFtbTVRMUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yIGFs
bG9jXSBpbml0XTsKKworICAgIE1UTFZlcnRleERlc2NyaXB0b3IgKnZlcnRleERlc2NyaXB0b3Ig
PSBbTVRMVmVydGV4RGVzY3JpcHRvciB2ZXJ0ZXhEZXNjcmlwdG9yXTsKKyAgICB2ZXJ0ZXhEZXNj
cmlwdG9yLmF0dHJpYnV0ZXNbMF0uZm9ybWF0ID0gTVRMVmVydGV4Rm9ybWF0RmxvYXQyOworICAg
IHZlcnRleERlc2NyaXB0b3IuYXR0cmlidXRlc1swXS5idWZmZXJJbmRleCA9IDA7CisgICAgdmVy
dGV4RGVzY3JpcHRvci5hdHRyaWJ1dGVzWzBdLm9mZnNldCA9IDA7CisKKyAgICB2ZXJ0ZXhEZXNj
cmlwdG9yLmF0dHJpYnV0ZXNbMV0uZm9ybWF0ID0gTVRMVmVydGV4Rm9ybWF0RmxvYXQyOworICAg
IHZlcnRleERlc2NyaXB0b3IuYXR0cmlidXRlc1sxXS5idWZmZXJJbmRleCA9IDA7CisgICAgdmVy
dGV4RGVzY3JpcHRvci5hdHRyaWJ1dGVzWzFdLm9mZnNldCA9IG9mZnNldG9mKFZlcnRleFN0cnVj
dCwgdXYpOworCisgICAgdmVydGV4RGVzY3JpcHRvci5sYXlvdXRzWzBdLnN0cmlkZSA9IHNpemVv
ZihWZXJ0ZXhTdHJ1Y3QpOworICAgIHZlcnRleERlc2NyaXB0b3IubGF5b3V0c1swXS5zdGVwRnVu
Y3Rpb24gPSBNVExWZXJ0ZXhTdGVwRnVuY3Rpb25QZXJWZXJ0ZXg7CisKKyAgICBfcGlwZWxpbmVT
dGF0ZURlc2NyaXB0b3IudmVydGV4RGVzY3JpcHRvciA9IHZlcnRleERlc2NyaXB0b3I7CisKKyAg
ICBfcGlwZWxpbmVTdGF0ZURlc2NyaXB0b3IubGFiZWwgPSBAIlNpbXBsZSBQaXBlbGluZSI7Cisg
ICAgX3BpcGVsaW5lU3RhdGVEZXNjcmlwdG9yLnZlcnRleEZ1bmN0aW9uID0gdmVydGV4RnVuY3Rp
b247CisgICAgX3BpcGVsaW5lU3RhdGVEZXNjcmlwdG9yLmZyYWdtZW50RnVuY3Rpb24gPSBmcmFn
bWVudEZ1bmN0aW9uOworICAgIF9waXBlbGluZVN0YXRlRGVzY3JpcHRvci5jb2xvckF0dGFjaG1l
bnRzWzBdLnBpeGVsRm9ybWF0ID0gcGl4ZWxGb3JtYXQ7CisKKyAgICBOU0Vycm9yICplcnJvciA9
IG5pbDsKKyAgICBfcGlwZWxpbmVTdGF0ZSA9IFtfZGV2aWNlIG5ld1JlbmRlclBpcGVsaW5lU3Rh
dGVXaXRoRGVzY3JpcHRvcjpfcGlwZWxpbmVTdGF0ZURlc2NyaXB0b3IgZXJyb3I6JmVycm9yXTsK
KworICAgIE5TQXNzZXJ0KF9waXBlbGluZVN0YXRlLCBAIkZhaWxlZCB0byBjcmVhdGVkIHBpcGVs
aW5lIHN0YXRlOiAlQCIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTsKK30KKworLSAodm9p
ZClzZXRUYXJnZXRXaWR0aDooTlNVSW50ZWdlcil3aWR0aCBzZXRUYXJnZXRIZWlnaHQ6KE5TVUlu
dGVnZXIpaGVpZ2h0Cit7CisgICAgX3RhcmdldFdpZHRoID0gd2lkdGg7CisgICAgX3RhcmdldEhl
aWdodCA9IGhlaWdodDsKK30KKworLSAodm9pZClkcmF3Cit7CisgICAgaWYgKCFfcGlwZWxpbmVT
dGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQ3JlYXRlIGEgbmV3IGNvbW1hbmQgYnVm
ZmVyIGZvciBlYWNoIHJlbmRlciBwYXNzIHRvIHRoZSBjdXJyZW50IGRyYXdhYmxlCisgICAgaWQ8
TVRMQ29tbWFuZEJ1ZmZlcj4gY29tbWFuZEJ1ZmZlciA9IFtfY29tbWFuZFF1ZXVlIGNvbW1hbmRC
dWZmZXJdOworICAgIGNvbW1hbmRCdWZmZXIubGFiZWwgPSBAIk15Q29tbWFuZCI7CisKKyAgICBN
VExSZW5kZXJQYXNzRGVzY3JpcHRvciAqcmVuZGVyUGFzc0Rlc2NyaXB0b3IgPSBbc2VsZiByZW5k
ZXJQYXNzRGVzY3JpcHRvcl07CisKKyAgICBOU0Fzc2VydChyZW5kZXJQYXNzRGVzY3JpcHRvciwg
QCJuaWwgTVRMUmVuZGVyUGFzc0Rlc2NyaXB0b3IiKTsKKworICAgIHJlbmRlclBhc3NEZXNjcmlw
dG9yLmNvbG9yQXR0YWNobWVudHNbMF0uY2xlYXJDb2xvciA9IE1UTENsZWFyQ29sb3JNYWtlKDAs
IDAsIDAsIDApOworICAgIHJlbmRlclBhc3NEZXNjcmlwdG9yLmNvbG9yQXR0YWNobWVudHNbMF0u
bG9hZEFjdGlvbiA9IE1UTExvYWRBY3Rpb25DbGVhcjsKKyAgICByZW5kZXJQYXNzRGVzY3JpcHRv
ci5jb2xvckF0dGFjaG1lbnRzWzBdLnN0b3JlQWN0aW9uID0gTVRMU3RvcmVBY3Rpb25TdG9yZTsK
KworICAgIC8vIENyZWF0ZSBhIHJlbmRlciBjb21tYW5kIGVuY29kZXIgc28gd2UgY2FuIHJlbmRl
ciBpbnRvIHNvbWV0aGluZworICAgIGlkPE1UTFJlbmRlckNvbW1hbmRFbmNvZGVyPiByZW5kZXJF
bmNvZGVyID0gW2NvbW1hbmRCdWZmZXIgcmVuZGVyQ29tbWFuZEVuY29kZXJXaXRoRGVzY3JpcHRv
cjpyZW5kZXJQYXNzRGVzY3JpcHRvcl07CisgICAgcmVuZGVyRW5jb2Rlci5sYWJlbCA9IEAiTXlS
ZW5kZXJFbmNvZGVyIjsKKworICAgIFtyZW5kZXJFbmNvZGVyIHNldFZpZXdwb3J0OihNVExWaWV3
cG9ydCkgeyAwLjAsIDAuMCwgX3RhcmdldFdpZHRoLCBfdGFyZ2V0SGVpZ2h0LCAtMS4wLCAxLjAg
fV07CisKKyAgICBbcmVuZGVyRW5jb2RlciBzZXRSZW5kZXJQaXBlbGluZVN0YXRlOl9waXBlbGlu
ZVN0YXRlXTsKKworICAgIFtyZW5kZXJFbmNvZGVyIHNldFZlcnRleEJ5dGVzOnZlcnRleERhdGEg
bGVuZ3RoOnNpemVvZih2ZXJ0ZXhEYXRhKSBhdEluZGV4OjBdOworCisgICAgW3JlbmRlckVuY29k
ZXIgZHJhd1ByaW1pdGl2ZXM6TVRMUHJpbWl0aXZlVHlwZVRyaWFuZ2xlU3RyaXAgdmVydGV4U3Rh
cnQ6MCB2ZXJ0ZXhDb3VudDo0XTsKKworICAgIFtyZW5kZXJFbmNvZGVyIGVuZEVuY29kaW5nXTsK
KworICAgIFtzZWxmIGNvbmZpZ3VyZUNvbW1hbmRCdWZmZXJCZWZvcmVDb21taXQ6Y29tbWFuZEJ1
ZmZlcl07CisKKyAgICBbY29tbWFuZEJ1ZmZlciBjb21taXRdOworICAgIFtjb21tYW5kQnVmZmVy
IHdhaXRVbnRpbENvbXBsZXRlZF07Cit9CisKKy0gKHZvaWQpc2V0VHJhbnNmb3JtTWF0cml4Oihz
aW1kX2Zsb2F0M3gzKXRyYW5zZm9ybU1hdHJpeAoreworICAgIF90cmFuc2Zvcm1NYXRyaXggPSB0
cmFuc2Zvcm1NYXRyaXg7CisgICAgc2ltZF9mbG9hdDMgdjAgPSBtYXRyaXhfbXVsdGlwbHkoX3Ry
YW5zZm9ybU1hdHJpeCwgdmVjdG9yMygwLjBmLCAwLjBmLCAxLjBmKSk7CisgICAgc2ltZF9mbG9h
dDMgdjEgPSBtYXRyaXhfbXVsdGlwbHkoX3RyYW5zZm9ybU1hdHJpeCwgdmVjdG9yMygxLjBmLCAw
LjBmLCAxLjBmKSk7CisgICAgc2ltZF9mbG9hdDMgdjIgPSBtYXRyaXhfbXVsdGlwbHkoX3RyYW5z
Zm9ybU1hdHJpeCwgdmVjdG9yMygwLjBmLCAxLjBmLCAxLjBmKSk7CisgICAgc2ltZF9mbG9hdDMg
djMgPSBtYXRyaXhfbXVsdGlwbHkoX3RyYW5zZm9ybU1hdHJpeCwgdmVjdG9yMygxLjBmLCAxLjBm
LCAxLjBmKSk7CisKKyAgICB2ZXJ0ZXhEYXRhWzBdLnV2ID0gdmVjdG9yMih2MC54LCB2MC55KTsK
KyAgICB2ZXJ0ZXhEYXRhWzFdLnV2ID0gdmVjdG9yMih2MS54LCB2MS55KTsKKyAgICB2ZXJ0ZXhE
YXRhWzJdLnV2ID0gdmVjdG9yMih2Mi54LCB2Mi55KTsKKyAgICB2ZXJ0ZXhEYXRhWzNdLnV2ID0g
dmVjdG9yMih2My54LCB2My55KTsKK30KKworLSAoTVRMUmVuZGVyUGFzc0Rlc2NyaXB0b3IgKily
ZW5kZXJQYXNzRGVzY3JpcHRvcgoreworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKHZvaWQpY29u
ZmlndXJlQ29tbWFuZEJ1ZmZlckJlZm9yZUNvbW1pdDooaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4pY29t
bWFuZEJ1ZmZlcgoreworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJndW1lbnQuaCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdENh
bGxBcmd1bWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYjMzNWJkZTFjYWVjNjZhMzI1OWE5NDE0MGJhZDk5
ZDAyOTFmMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJndW1lbnQuaAkKQEAgLTAsMCArMSw1
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCit0eXBlZGVmIGVudW0gOiBOU1VJbnRlZ2Vy
IHsKKyAgICBXSExTTFR5cGVCb29sLAorICAgIFdITFNMVHlwZVVjaGFyLAorICAgIFdITFNMVHlw
ZVNob3J0LAorICAgIFdITFNMVHlwZUludCwKKyAgICBXSExTTFR5cGVVc2hvcnQsCisgICAgV0hM
U0xUeXBlVWludCwKKyAgICBXSExTTFR5cGVIYWxmLAorICAgIFdITFNMVHlwZUZsb2F0Cit9IFdI
TFNMVHlwZTsKKworTlNTdHJpbmcqIFdITFNMVHlwZVN0cmluZyhXSExTTFR5cGUpOworCitOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgorCitAaW50ZXJmYWNlIFRlc3RDYWxsQXJndW1lbnQgOiBOU09i
amVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooTlNOdW1iZXIqKXZhbHVlIHR5
cGU6KFdITFNMVHlwZSl0eXBlOworCitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU051bWJlciogdmFs
dWU7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBXSExTTFR5cGUgdHlwZTsKKworLSAoTlNTdHJpbmcq
KXdobHNsU291cmNlOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9U
ZXN0Q2FsbEFyZ3VtZW50Lm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL1Rlc3RDYWxsQXJndW1lbnQubQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTcwNDZlMmQx
NDRkNjIzMGM4MjY0MjAzYTgwMDEzMjM0MmZlOWFiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0Q2FsbEFy
Z3VtZW50Lm0JCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJUZXN0Q2FsbEFyZ3VtZW50LmgiCisKK05TU3RyaW5n
KiBXSExTTFR5cGVTdHJpbmcoV0hMU0xUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBXSExTTFR5cGVCb29sOgorICAgICAgICByZXR1cm4gQCJib29sIjsKKyAgICBj
YXNlIFdITFNMVHlwZVVjaGFyOgorICAgICAgICByZXR1cm4gQCJ1Y2hhciI7CisgICAgY2FzZSBX
SExTTFR5cGVTaG9ydDoKKyAgICAgICAgcmV0dXJuIEAidXNob3J0IjsKKyAgICBjYXNlIFdITFNM
VHlwZUludDoKKyAgICAgICAgcmV0dXJuIEAiaW50IjsKKyAgICBjYXNlIFdITFNMVHlwZVVzaG9y
dDoKKyAgICAgICAgcmV0dXJuIEAidXNob3J0IjsKKyAgICBjYXNlIFdITFNMVHlwZVVpbnQ6Cisg
ICAgICAgIHJldHVybiBAInVpbnQiOworICAgIGNhc2UgV0hMU0xUeXBlSGFsZjoKKyAgICAgICAg
cmV0dXJuIEAiaGFsZiI7CisgICAgY2FzZSBXSExTTFR5cGVGbG9hdDoKKyAgICAgICAgcmV0dXJu
IEAiZmxvYXQiOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorfQor
CitAaW50ZXJmYWNlIFRlc3RDYWxsQXJndW1lbnQgKCkKKworQHByb3BlcnR5IE5TTnVtYmVyKiB2
YWx1ZTsKK0Bwcm9wZXJ0eSBXSExTTFR5cGUgdHlwZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gVGVzdENhbGxBcmd1bWVudAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooTlNO
dW1iZXIgKil2YWx1ZSB0eXBlOihXSExTTFR5cGUpdHlwZQoreworICAgIGlmIChzZWxmID0gW3N1
cGVyIGluaXRdKSB7CisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgc2VsZi50
eXBlID0gdHlwZTsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy8vIEZJWE1FOiBUaGlz
IHNob3VsZCBwcm9iYWJseSBiZSBNU0wgc291cmNlCistIChOU1N0cmluZyopd2hsc2xTb3VyY2UK
K3sKKyAgICBzd2l0Y2ggKHNlbGYudHlwZSkgeworICAgIGNhc2UgV0hMU0xUeXBlQm9vbDoKKyAg
ICAgICAgcmV0dXJuIHNlbGYudmFsdWUuYm9vbFZhbHVlID8gQCJ0cnVlIiA6IEAiZmFsc2UiOwor
ICAgIGNhc2UgV0hMU0xUeXBlVWNoYXI6CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAInVpbnQ4X3QoJXV1KSIsIHNlbGYudmFsdWUudW5zaWduZWRJbnRWYWx1ZV07
CisgICAgY2FzZSBXSExTTFR5cGVTaG9ydDoKKyAgICAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiaW50MTZfdCglZCkiLCBzZWxmLnZhbHVlLmludFZhbHVlXTsKKyAgICBj
YXNlIFdITFNMVHlwZVVzaG9ydDoKKyAgICAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAidWludDE2X3QoJXV1KSIsIHNlbGYudmFsdWUudW5zaWduZWRJbnRWYWx1ZV07Cisg
ICAgY2FzZSBXSExTTFR5cGVJbnQ6CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIiVkIiwgc2VsZi52YWx1ZS5pbnRWYWx1ZV07CisgICAgY2FzZSBXSExTTFR5cGVV
aW50OgorICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIldXUiLCBz
ZWxmLnZhbHVlLnVuc2lnbmVkSW50VmFsdWVdOworICAgIGNhc2UgV0hMU0xUeXBlSGFsZjoKKyAg
ICAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWYiLCBzZWxmLnZhbHVl
LmZsb2F0VmFsdWVdOworICAgIGNhc2UgV0hMU0xUeXBlRmxvYXQ6CisgICAgICAgIHJldHVybiBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImhhbGYoJWYpIiwgc2VsZi52YWx1ZS5mbG9hdFZh
bHVlXTsKKyAgICB9Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdERlc2NyaXB0aW9uLmggYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNj
cmlwdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MThiYzViMzAyZDc3ZjQzZjU2ZGJhZjdkNDg5YTI4MjRj
NDQxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9N
ZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5oCQpAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworQGltcG9ydCBG
b3VuZGF0aW9uOworI2ltcG9ydCAiVGVzdENhbGxBcmd1bWVudC5oIgorCitAY2xhc3MgVGVzdEZh
bWlseTsKKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworQGludGVyZmFjZSBUZXN0RGVzY3Jp
cHRpb24gOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGdW5jdGlvbk5hbWU6
KE5TU3RyaW5nKilmdW5jdGlvbk5hbWUgYXJndW1lbnRzOihOU0FycmF5PFRlc3RDYWxsQXJndW1l
bnQqPiopYXJndW1lbnRzOworCitAcHJvcGVydHkgTlNTdHJpbmcqIGZ1bmN0aW9uTmFtZTsKK0Bw
cm9wZXJ0eSBOU0FycmF5PFRlc3RDYWxsQXJndW1lbnQqPiogYXJndW1lbnRzOworCitAcHJvcGVy
dHkgV0hMU0xUeXBlIHJldHVyblR5cGU7CitAcHJvcGVydHkgTlNOdW1iZXIqIGV4cGVjdGF0aW9u
OworCitAcHJvcGVydHkgKHdlYWspIFRlc3RGYW1pbHkqIHRlc3RGYW1pbHk7CitAcHJvcGVydHkg
TlNTdHJpbmcqIGZyYWdtZW50U2hhZGVyTmFtZTsKKworLSAoTlNTdHJpbmcqKW1ldGFsRnJhZ21l
bnRTaGFkZXJTb3VyY2VGb3JDYWxsVG9NZXRhbEZ1bmN0aW9uOihOU1N0cmluZyopY29tcGlsZWRO
YW1lT2ZGdW5jdGlvbjsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
VGVzdERlc2NyaXB0aW9uLm0gYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL1Rlc3REZXNjcmlwdGlvbi5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1ODJlMmM5ODkw
ZDhiNTZiYWUyMTcwYzUwZDliM2U0YzdhNGNmMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rlc3REZXNjcmlw
dGlvbi5tCQpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgIlRlc3REZXNjcmlwdGlvbi5oIgorCitAaW1wbGVtZW50
YXRpb24gVGVzdERlc2NyaXB0aW9uCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZ1bmN0aW9u
TmFtZTooTlNTdHJpbmcgKilmdW5jdGlvbk5hbWUgYXJndW1lbnRzOihOU0FycmF5PFRlc3RDYWxs
QXJndW1lbnQgKj4gKilhcmd1bWVudHMKK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkg
eworICAgICAgICBzZWxmLmZ1bmN0aW9uTmFtZSA9IGZ1bmN0aW9uTmFtZTsKKyAgICAgICAgc2Vs
Zi5hcmd1bWVudHMgPSBhcmd1bWVudHM7CisgICAgfQorICAgIHJldHVybiBzZWxmOworfQorCist
IChOU1N0cmluZyopY2FsbFN0cmluZzooTlNTdHJpbmcqKWNvbXBpbGVkTmFtZU9mRnVuY3Rpb24K
K3sKKyAgICBOU011dGFibGVTdHJpbmcqIHN0cmluZyA9IFtOU011dGFibGVTdHJpbmcgbmV3XTsK
KyAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAIiVAKCIsIGNvbXBpbGVkTmFtZU9mRnVuY3Rpb25d
OworCisgICAgQk9PTCBmaXJzdCA9IFlFUzsKKyAgICBmb3IgKFRlc3RDYWxsQXJndW1lbnQqIGFy
Z3VtZW50IGluIHNlbGYuYXJndW1lbnRzKSB7CisgICAgICAgIGlmICghZmlyc3QpCisgICAgICAg
ICAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAIiwgJUAiLCBhcmd1bWVudC53aGxzbFNvdXJjZV07
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFtzdHJpbmcgYXBwZW5kU3RyaW5nOmFyZ3VtZW50
LndobHNsU291cmNlXTsKKyAgICAgICAgZmlyc3QgPSBOTzsKKyAgICB9CisKKyAgICBbc3RyaW5n
IGFwcGVuZFN0cmluZzpAIikiXTsKKyAgICByZXR1cm4gc3RyaW5nOworfQorCistIChOU1N0cmlu
ZyopZGVzY3JpcHRpb24KK3sKKyAgICBOU011dGFibGVTdHJpbmcqIHN0cmluZyA9IFtOU011dGFi
bGVTdHJpbmcgbmV3XTsKKyAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAIiVAICVAKCIsIFdITFNM
VHlwZVN0cmluZyhzZWxmLnJldHVyblR5cGUpLCBzZWxmLmZ1bmN0aW9uTmFtZV07CisgICAgQk9P
TCBmaXJzdCA9IFlFUzsKKyAgICBmb3IgKFRlc3RDYWxsQXJndW1lbnQqIGFyZ3VtZW50IGluIHNl
bGYuYXJndW1lbnRzKSB7CisgICAgICAgIGlmICghZmlyc3QpCisgICAgICAgICAgICBbc3RyaW5n
IGFwcGVuZEZvcm1hdDpAIiwgJUAgJUAiLCBXSExTTFR5cGVTdHJpbmcoc2VsZi5yZXR1cm5UeXBl
KSwgYXJndW1lbnQud2hsc2xTb3VyY2VdOworICAgICAgICBlbHNlCisgICAgICAgICAgICBbc3Ry
aW5nIGFwcGVuZEZvcm1hdDpAIiVAICVAIiwgV0hMU0xUeXBlU3RyaW5nKHNlbGYucmV0dXJuVHlw
ZSksIGFyZ3VtZW50LndobHNsU291cmNlXTsKKyAgICAgICAgZmlyc3QgPSBOTzsKKyAgICB9Cisg
ICAgW3N0cmluZyBhcHBlbmRTdHJpbmc6QCIpIl07CisgICAgcmV0dXJuIHN0cmluZzsKK30KKwor
LSAoTlNTdHJpbmcqKW1ldGFsRnJhZ21lbnRTaGFkZXJTb3VyY2VGb3JDYWxsVG9NZXRhbEZ1bmN0
aW9uOihOU1N0cmluZyAqKWNvbXBpbGVkTmFtZU9mRnVuY3Rpb24KK3sKKyAgICBOU1N0cmluZyog
cmV0dXJuVHlwZVN0cmluZzsKKyAgICBzd2l0Y2ggKHNlbGYucmV0dXJuVHlwZSkgeworICAgIGNh
c2UgV0hMU0xUeXBlQm9vbDoKKyAgICBjYXNlIFdITFNMVHlwZVVjaGFyOgorICAgIGNhc2UgV0hM
U0xUeXBlVXNob3J0OgorICAgIGNhc2UgV0hMU0xUeXBlVWludDoKKyAgICAgICAgcmV0dXJuVHlw
ZVN0cmluZyA9IEAiRnJhZ21lbnRPdXRwdXRVaW50IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXSExTTFR5cGVTaG9ydDoKKyAgICBjYXNlIFdITFNMVHlwZUludDoKKyAgICAgICAgcmV0dXJu
VHlwZVN0cmluZyA9IEAiRnJhZ21lbnRPdXRwdXRJbnQiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdITFNMVHlwZUhhbGY6CisgICAgY2FzZSBXSExTTFR5cGVGbG9hdDoKKyAgICAgICAgcmV0
dXJuVHlwZVN0cmluZyA9IEAiRnJhZ21lbnRPdXRwdXRGbG9hdCI7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBOU011dGFibGVTdHJpbmcqIHN0cmluZyA9IFtOU011dGFibGVTdHJpbmcgbmV3
XTsKKyAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAImZyYWdtZW50ICVAICVAKFZlcnRleE91dHB1
dCBzdGFnZUluIFtbc3RhZ2VfaW5dXSlcbiIsIHJldHVyblR5cGVTdHJpbmcsIHNlbGYuZnJhZ21l
bnRTaGFkZXJOYW1lXTsKKyAgICBbc3RyaW5nIGFwcGVuZFN0cmluZzpAIntcbiJdOworICAgIFtz
dHJpbmcgYXBwZW5kRm9ybWF0OkAiICAgICVAIGZyYWdtZW50T3V0cHV0O1xuIiwgcmV0dXJuVHlw
ZVN0cmluZ107CisKKyAgICBOU1N0cmluZyAqIGNhbGwgPSBbc2VsZiBjYWxsU3RyaW5nOmNvbXBp
bGVkTmFtZU9mRnVuY3Rpb25dOworCisgICAgc3dpdGNoIChzZWxmLnJldHVyblR5cGUpIHsKKyAg
ICBjYXNlIFdITFNMVHlwZUJvb2w6CisgICAgY2FzZSBXSExTTFR5cGVVY2hhcjoKKyAgICBjYXNl
IFdITFNMVHlwZVVzaG9ydDoKKyAgICBjYXNlIFdITFNMVHlwZVVpbnQ6CisgICAgICAgIFtzdHJp
bmcgYXBwZW5kRm9ybWF0OkAiICAgIGZyYWdtZW50T3V0cHV0LnJlc3VsdCA9IHVpbnQzMl90KCVA
KTtcbiIsIGNhbGxdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdITFNMVHlwZVNob3J0Ogor
ICAgIGNhc2UgV0hMU0xUeXBlSW50OgorICAgICAgICBbc3RyaW5nIGFwcGVuZEZvcm1hdDpAIiAg
ICBmcmFnbWVudE91dHB1dC5yZXN1bHQgPSBpbnQzMl90KCVAKTtcbiIsIGNhbGxdOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdITFNMVHlwZUhhbGY6CisgICAgY2FzZSBXSExTTFR5cGVGbG9h
dDoKKyAgICAgICAgW3N0cmluZyBhcHBlbmRGb3JtYXQ6QCIgICAgZnJhZ21lbnRPdXRwdXQucmVz
dWx0ID0gZmxvYXQoJUApO1xuIiwgY2FsbF07CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IFtzdHJpbmcgYXBwZW5kU3RyaW5nOkAiICAgIHJldHVybiBmcmFnbWVudE91dHB1dDtcbiJdOwor
ICAgIFtzdHJpbmcgYXBwZW5kU3RyaW5nOkAifVxuIl07CisKKyAgICByZXR1cm4gc3RyaW5nOwor
fQorCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RGYW1pbHkuaCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0
MWViOWQyMDQxMmRkZDQ4ZmNiNTQxYWRlMTIzOGFiYjc0MDc1MGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9Db3JlL1Rl
c3RGYW1pbHkuaAkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2lt
cG9ydCAiVGVzdENhbGxBcmd1bWVudC5oIgorI2ltcG9ydCAiVGVzdERlc2NyaXB0aW9uLmgiCisK
K05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK0BpbnRlcmZhY2UgVGVzdEZhbWlseSA6IE5TT2Jq
ZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE5hbWU6KE5TU3RyaW5nKiluYW1lIHNvdXJj
ZTooTlNTdHJpbmcqKXNvdXJjZTsKKworQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcqIG5h
bWU7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyogd2hsc2xTb3VyY2U7CitAcHJvcGVy
dHkgKHJlYWRvbmx5KSBOU1VJbnRlZ2VyIHRvdGFsVGVzdENhc2VDb3VudDsKKworLSAodm9pZClh
ZGRUZXN0RGVzY3JpcHRpb246KFRlc3REZXNjcmlwdGlvbiopdGVzdERlc2NyaXB0aW9uOworLSAo
TlNBcnJheTxUZXN0RGVzY3JpcHRpb24qPiopdGVzdHNGb3JSZXR1cm5UeXBlOihXSExTTFR5cGUp
dHlwZTsKKworKyAoTlNTdHJpbmcqKXNoYXJlZE1ldGFsU291cmNlOworLSAoTlNTdHJpbmcqKW1l
dGFsU291cmNlRm9yQ2FsbGluZ0Z1bmN0aW9uc1dpdGhDb21waWxlZE5hbWVzOihOU0RpY3Rpb25h
cnk8TlNTdHJpbmcqLCBOU1N0cmluZyo+Kiljb21waWxlZE5hbWVzOworCisrIChOU0FycmF5PFRl
c3RGYW1pbHkqPiopYWxsVGVzdHM7CisKKy0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKWlu
dGVnZXJUZXN0czsKKy0gKE5TQXJyYXk8VGVzdERlc2NyaXB0aW9uKj4qKXVuc2lnbmVkSW50ZWdl
clRlc3RzOworLSAoTlNBcnJheTxUZXN0RGVzY3JpcHRpb24qPiopZmxvYXRUZXN0czsKKworQGVu
ZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseS5tIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFtaWx5
Lm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmI1OTJkMmE5MWJjMWFlOGQ3MmU2OTQ5NjE0ZDM1ZjUwZmQwNTdlOAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dI
TFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseS5tCQpAQCAtMCwwICsxLDI1NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIlRlc3RGYW1pbHku
aCIKKworQGltcG9ydCBKYXZhU2NyaXB0Q29yZTsKKworQGludGVyZmFjZSBUZXN0RmFtaWx5ICgp
CisKK0Bwcm9wZXJ0eSBOU1N0cmluZyogbmFtZTsKK0Bwcm9wZXJ0eSBOU1N0cmluZyogd2hsc2xT
b3VyY2U7CitAcHJvcGVydHkgTlNVSW50ZWdlciB0b3RhbFRlc3RDYXNlQ291bnQ7CisKK0Bwcm9w
ZXJ0eSBOU011dGFibGVEaWN0aW9uYXJ5PE5TTnVtYmVyKiwgTlNNdXRhYmxlQXJyYXk8VGVzdERl
c2NyaXB0aW9uKj4qPiogdGVzdHM7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RGYW1p
bHkKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTmFtZTooTlNTdHJpbmcgKiluYW1lIHNvdXJj
ZTooTlNTdHJpbmcgKilzb3VyY2UKK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgewor
ICAgICAgICBzZWxmLm5hbWUgPSBuYW1lOworICAgICAgICBzZWxmLndobHNsU291cmNlID0gc291
cmNlOworICAgICAgICBzZWxmLnRlc3RzID0gW05TTXV0YWJsZURpY3Rpb25hcnkgbmV3XTsKKyAg
ICAgICAgc2VsZi50ZXN0c1tAKFdITFNMVHlwZUJvb2wpXSA9IFtOU011dGFibGVBcnJheSBuZXdd
OworICAgICAgICBzZWxmLnRlc3RzW0AoV0hMU0xUeXBlVWNoYXIpXSA9IFtOU011dGFibGVBcnJh
eSBuZXddOworICAgICAgICBzZWxmLnRlc3RzW0AoV0hMU0xUeXBlU2hvcnQpXSA9IFtOU011dGFi
bGVBcnJheSBuZXddOworICAgICAgICBzZWxmLnRlc3RzW0AoV0hMU0xUeXBlVXNob3J0KV0gPSBb
TlNNdXRhYmxlQXJyYXkgbmV3XTsKKyAgICAgICAgc2VsZi50ZXN0c1tAKFdITFNMVHlwZVVpbnQp
XSA9IFtOU011dGFibGVBcnJheSBuZXddOworICAgICAgICBzZWxmLnRlc3RzW0AoV0hMU0xUeXBl
SW50KV0gPSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsKKyAgICAgICAgc2VsZi50ZXN0c1tAKFdITFNM
VHlwZUZsb2F0KV0gPSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsKKyAgICAgICAgc2VsZi50ZXN0c1tA
KFdITFNMVHlwZUhhbGYpXSA9IFtOU011dGFibGVBcnJheSBuZXddOworICAgIH0KKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAodm9pZClhZGRUZXN0RGVzY3JpcHRpb246KFRlc3REZXNjcmlwdGlv
biAqKXRlc3REZXNjcmlwdGlvbgoreworICAgIFtzZWxmLnRlc3RzW0AodGVzdERlc2NyaXB0aW9u
LnJldHVyblR5cGUpXSBhZGRPYmplY3Q6dGVzdERlc2NyaXB0aW9uXTsKKyAgICB0ZXN0RGVzY3Jp
cHRpb24udGVzdEZhbWlseSA9IHNlbGY7CisgICAgdGVzdERlc2NyaXB0aW9uLmZyYWdtZW50U2hh
ZGVyTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiZnJhZ21lbnRfJUBfJWxkIiwg
c2VsZi5uYW1lLCBzZWxmLnRvdGFsVGVzdENhc2VDb3VudCsrXTsKK30KKworLSAoTlNBcnJheTxU
ZXN0RGVzY3JpcHRpb24qPiopdGVzdHNGb3JSZXR1cm5UeXBlOihXSExTTFR5cGUpdHlwZQorewor
ICAgIHJldHVybiBzZWxmLnRlc3RzW0AodHlwZSldOworfQorCistIChOU0FycmF5PFRlc3REZXNj
cmlwdGlvbio+KilpbnRlZ2VyVGVzdHMKK3sKKyAgICBOU011dGFibGVBcnJheTxUZXN0RGVzY3Jp
cHRpb24qPiogcmVzdWx0ID0gW05TTXV0YWJsZUFycmF5IG5ld107CisgICAgW3Jlc3VsdCBhZGRP
YmplY3RzRnJvbUFycmF5OltzZWxmIHRlc3RzRm9yUmV0dXJuVHlwZTpXSExTTFR5cGVTaG9ydF1d
OworICAgIFtyZXN1bHQgYWRkT2JqZWN0c0Zyb21BcnJheTpbc2VsZiB0ZXN0c0ZvclJldHVyblR5
cGU6V0hMU0xUeXBlSW50XV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAoTlNBcnJheTxU
ZXN0RGVzY3JpcHRpb24qPiopdW5zaWduZWRJbnRlZ2VyVGVzdHMKK3sKKyAgICBOU011dGFibGVB
cnJheTxUZXN0RGVzY3JpcHRpb24qPiogcmVzdWx0ID0gW05TTXV0YWJsZUFycmF5IG5ld107Cisg
ICAgW3Jlc3VsdCBhZGRPYmplY3RzRnJvbUFycmF5OltzZWxmIHRlc3RzRm9yUmV0dXJuVHlwZTpX
SExTTFR5cGVCb29sXV07CisgICAgW3Jlc3VsdCBhZGRPYmplY3RzRnJvbUFycmF5OltzZWxmIHRl
c3RzRm9yUmV0dXJuVHlwZTpXSExTTFR5cGVVY2hhcl1dOworICAgIFtyZXN1bHQgYWRkT2JqZWN0
c0Zyb21BcnJheTpbc2VsZiB0ZXN0c0ZvclJldHVyblR5cGU6V0hMU0xUeXBlVXNob3J0XV07Cisg
ICAgW3Jlc3VsdCBhZGRPYmplY3RzRnJvbUFycmF5OltzZWxmIHRlc3RzRm9yUmV0dXJuVHlwZTpX
SExTTFR5cGVVaW50XV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAoTlNBcnJheTxUZXN0
RGVzY3JpcHRpb24qPiopZmxvYXRUZXN0cworeworICAgIE5TTXV0YWJsZUFycmF5PFRlc3REZXNj
cmlwdGlvbio+KiByZXN1bHQgPSBbTlNNdXRhYmxlQXJyYXkgbmV3XTsKKyAgICBbcmVzdWx0IGFk
ZE9iamVjdHNGcm9tQXJyYXk6W3NlbGYgdGVzdHNGb3JSZXR1cm5UeXBlOldITFNMVHlwZUhhbGZd
XTsKKyAgICBbcmVzdWx0IGFkZE9iamVjdHNGcm9tQXJyYXk6W3NlbGYgdGVzdHNGb3JSZXR1cm5U
eXBlOldITFNMVHlwZUZsb2F0XV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKyAoTlNTdHJp
bmcqKXNoYXJlZE1ldGFsU291cmNlCit7CisgICAgc3RhdGljIE5TU3RyaW5nKiByZXN1bHQ7Cisg
ICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgm
b25jZVRva2VuLCBeeworICAgICAgICBOU1N0cmluZyogcGF0aCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gcGF0aEZvclJlc291cmNlOkAiX1NoYXJlZE1ldGFsIiBvZlR5cGU6QCJ0eHQiXTsKKyAg
ICAgICAgcmVzdWx0ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpwYXRoIGVu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF07CisgICAgfSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworLSAoTlNTdHJpbmcqKW1ldGFsU291cmNlRm9yQ2FsbGluZ0Z1bmN0
aW9uc1dpdGhDb21waWxlZE5hbWVzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcg
Kj4gKiljb21waWxlZE5hbWVzCit7CisgICAgTlNNdXRhYmxlU3RyaW5nKiBzb3VyY2UgPSBbTlNN
dXRhYmxlU3RyaW5nIG5ld107CisKKyAgICBbc2VsZi50ZXN0cyBlbnVtZXJhdGVLZXlzQW5kT2Jq
ZWN0c1VzaW5nQmxvY2s6XihOU051bWJlciAqIF9Ob25udWxsIHR5cGUsIE5TTXV0YWJsZUFycmF5
PFRlc3REZXNjcmlwdGlvbiAqPiAqIF9Ob25udWxsIHRlc3RzLCBCT09MICogX05vbm51bGwgc3Rv
cCkgeworICAgICAgICBmb3IgKFRlc3REZXNjcmlwdGlvbiogdGVzdERlc2NyaXB0aW9uIGluIHRl
c3RzKQorICAgICAgICAgICAgW3NvdXJjZSBhcHBlbmRGb3JtYXQ6QCIlQFxuIiwgW3Rlc3REZXNj
cmlwdGlvbiBtZXRhbEZyYWdtZW50U2hhZGVyU291cmNlRm9yQ2FsbFRvTWV0YWxGdW5jdGlvbjpj
b21waWxlZE5hbWVzW3Rlc3REZXNjcmlwdGlvbi5mdW5jdGlvbk5hbWVdXV07CisgICAgfV07CisK
KyAgICByZXR1cm4gc291cmNlOworfQorCisrIChOU0FycmF5PFRlc3RGYW1pbHkqPiopYWxsVGVz
dHMKK3sKKyAgICBKU0NvbnRleHQqIGNvbXBpbGVyQ29udGV4dCA9IFtKU0NvbnRleHQgbmV3XTsK
KyAgICAvLyBUaGUgdGVzdCBzdWl0ZSBkb2Vzbid0IGFjdHVhbGx5IG5lZWQgdG8gbG9hZCBhbnkg
b2YgaXRzIGRlcGVuZGVuY2llcyBpbiBvcmRlciB0byBnZW5lcmF0ZSB0aGUgZGF0YSBuZWVkZWQg
Zm9yIHRlc3QgZXhlY3V0aW9uLgorICAgIGNvbXBpbGVyQ29udGV4dFtAImxvYWQiXSA9IF52b2lk
KE5TU3RyaW5nKiBmaWxlUGF0aCkgeyB9OworICAgIC8vIFNvbWUgb2YgdGhlIHRlc3RzIGRpcmVj
dGx5IGNhbGwgcHJlcGFyZTsgYnV0IHRoZXNlIHRlc3RzIGNhbiBiZSBpZ25vcmVkIGJlY2F1c2Ug
dGhleSBhcmUgdGVzdGluZyBhc3BlY3RzIG9mIHRoZSBpbnRlcnByZXRlci4KKyAgICBjb21waWxl
ckNvbnRleHRbQCJwcmVwYXJlIl0gPSBeaWQoTlNTdHJpbmcqIGZpbGVQYXRoLCBOU051bWJlciog
bGluZU51bWJlciwgTlNTdHJpbmcqIHNyYywgTlNOdW1iZXIqIGVuYWJsZUlubGluaW5nKSAKKyAg
ICB7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfTsKKworICAgIE5TU3RyaW5nKiB0ZXN0Rmls
ZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBwYXRoRm9yUmVzb3VyY2U6QCJUZXN0IiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRG
OFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF07CisgICAgW2NvbXBpbGVyQ29udGV4dCBldmFsdWF0
ZVNjcmlwdDp0ZXN0RmlsZV07CisKKyAgICBfX2Jsb2NrIE5TU3RyaW5nICpjdXJyZW50VGVzdE5h
bWUgPSBuaWw7CisgICAgX19ibG9jayBCT09MIGluY2x1ZGVUZXN0ID0gWUVTOworCisgICAgTlNN
dXRhYmxlQXJyYXk8VGVzdEZhbWlseSo+KiB0ZXN0RmFtaWxpZXMgPSBbTlNNdXRhYmxlQXJyYXkg
bmV3XTsKKworICAgIC8vIFNlZSB0aGUgYm90dG9tIG9mIFRlc3QuanMKKyAgICBjb21waWxlckNv
bnRleHRbQCJydW5uaW5nSW5Db2NvYUhvc3QiXSA9IFtKU1ZhbHVlIHZhbHVlV2l0aEJvb2w6WUVT
IGluQ29udGV4dDpjb21waWxlckNvbnRleHRdOworCisgICAgY29tcGlsZXJDb250ZXh0W0AiZG9Q
cmVwIl0gPSBeVGVzdEZhbWlseSooTlNTdHJpbmcqIGNvZGUpCisgICAgeworICAgICAgICBUZXN0
RmFtaWx5KiBmYW1pbHkgPSBbW1Rlc3RGYW1pbHkgYWxsb2NdIGluaXRXaXRoTmFtZTpjdXJyZW50
VGVzdE5hbWUgc291cmNlOmNvZGVdOworICAgICAgICBbdGVzdEZhbWlsaWVzIGFkZE9iamVjdDpm
YW1pbHldOworICAgICAgICBpbmNsdWRlVGVzdCA9IFlFUzsKKyAgICAgICAgcmV0dXJuIGZhbWls
eTsKKyAgICB9OworCisgICAgY29tcGlsZXJDb250ZXh0LmV4Y2VwdGlvbkhhbmRsZXIgPSBeKEpT
Q29udGV4dCAqY29udGV4dCwgSlNWYWx1ZSAqZXhjZXB0aW9uKSB7CisgICAgICAgIGluY2x1ZGVU
ZXN0ID0gTk87CisgICAgfTsKKyAgICAvLyBGSVhNRTogSW4gbGluZSB3aXRoIFRlc3QuanMsIHRo
ZXNlIHNob3VsZCByYWlzZSBzb21lIGtpbmQgb2YgZXJyb3IgaWYgdGhlIHZhbHVlIGNhbm5vdCBi
ZSBjYXN0IHNhZmVseS4KKyAgICAvLyBIb3dldmVyLCB0aGUgY29udmVyc2lvbiB0byBhbiBOU051
bWJlciBtYXkgaGF2ZSBhbHJlYWR5IGxvc3QgdGhlIHByZWNpc2lvbi4KKworICAgIGNvbXBpbGVy
Q29udGV4dFtAIm1ha2VJbnQiXSA9IF5UZXN0Q2FsbEFyZ3VtZW50KihUZXN0RmFtaWx5KiBwcm9n
cmFtLCBOU051bWJlciogbnVtYmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFtbVGVzdENhbGxB
cmd1bWVudCBhbGxvY10gaW5pdFdpdGhWYWx1ZTpudW1iZXIgdHlwZTpXSExTTFR5cGVJbnRdOwor
ICAgIH07CisKKyAgICBjb21waWxlckNvbnRleHRbQCJtYWtlVWludCJdID0gXlRlc3RDYWxsQXJn
dW1lbnQqKFRlc3RGYW1pbHkqIHByb2dyYW0sIE5TTnVtYmVyKiBudW1iZXIpCisgICAgeworICAg
ICAgICByZXR1cm4gW1tUZXN0Q2FsbEFyZ3VtZW50IGFsbG9jXSBpbml0V2l0aFZhbHVlOm51bWJl
ciB0eXBlOldITFNMVHlwZVVpbnRdOworICAgIH07CisKKyAgICBjb21waWxlckNvbnRleHRbQCJt
YWtlVWNoYXIiXSA9IF5UZXN0Q2FsbEFyZ3VtZW50KihUZXN0RmFtaWx5KiBwcm9ncmFtLCBOU051
bWJlciogbnVtYmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFtbVGVzdENhbGxBcmd1bWVudCBh
bGxvY10gaW5pdFdpdGhWYWx1ZTpudW1iZXIgdHlwZTpXSExTTFR5cGVVY2hhcl07CisgICAgfTsK
KworICAgIGNvbXBpbGVyQ29udGV4dFtAIm1ha2VCb29sIl0gPSBeVGVzdENhbGxBcmd1bWVudCoo
VGVzdEZhbWlseSogcHJvZ3JhbSwgTlNOdW1iZXIqIG51bWJlcikKKyAgICB7CisgICAgICAgIHJl
dHVybiBbW1Rlc3RDYWxsQXJndW1lbnQgYWxsb2NdIGluaXRXaXRoVmFsdWU6bnVtYmVyIHR5cGU6
V0hMU0xUeXBlQm9vbF07CisgICAgfTsKKworICAgIGNvbXBpbGVyQ29udGV4dFtAIm1ha2VGbG9h
dCJdID0gXlRlc3RDYWxsQXJndW1lbnQqKFRlc3RGYW1pbHkqIHByb2dyYW0sIE5TTnVtYmVyKiBu
dW1iZXIpCisgICAgeworICAgICAgICByZXR1cm4gW1tUZXN0Q2FsbEFyZ3VtZW50IGFsbG9jXSBp
bml0V2l0aFZhbHVlOm51bWJlciB0eXBlOldITFNMVHlwZUZsb2F0XTsKKyAgICB9OworCisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbG9naWMgYXMgdGhlIGltcGxlbWVu
dGF0aW9uIGluIFRlc3RzLmpzCisgICAgY29tcGlsZXJDb250ZXh0W0AibWFrZUNhc3RlZEZsb2F0
Il0gPSBeVGVzdENhbGxBcmd1bWVudCooVGVzdEZhbWlseSogcHJvZ3JhbSwgTlNOdW1iZXIqIG51
bWJlcikKKyAgICB7CisgICAgICAgIHJldHVybiBbW1Rlc3RDYWxsQXJndW1lbnQgYWxsb2NdIGlu
aXRXaXRoVmFsdWU6bnVtYmVyIHR5cGU6V0hMU0xUeXBlRmxvYXRdOworICAgIH07CisKKyAgICBj
b21waWxlckNvbnRleHRbQCJtYWtlSGFsZiJdID0gXlRlc3RDYWxsQXJndW1lbnQqKFRlc3RGYW1p
bHkqIHByb2dyYW0sIE5TTnVtYmVyKiBudW1iZXIpCisgICAgeworICAgICAgICByZXR1cm4gW1tU
ZXN0Q2FsbEFyZ3VtZW50IGFsbG9jXSBpbml0V2l0aFZhbHVlOm51bWJlciB0eXBlOldITFNMVHlw
ZUhhbGZdOworICAgIH07CisKKyAgICBjb21waWxlckNvbnRleHRbQCJjYWxsRnVuY3Rpb24iXSA9
IF5UZXN0RGVzY3JpcHRpb24qKFRlc3RGYW1pbHkqIHByb2dyYW0sIE5TU3RyaW5nKiBmdW5jdGlv
bk5hbWUsIE5TQXJyYXkqIGFyZ3MpCisgICAgeworICAgICAgICByZXR1cm4gW1tUZXN0RGVzY3Jp
cHRpb24gYWxsb2NdIGluaXRXaXRoRnVuY3Rpb25OYW1lOmZ1bmN0aW9uTmFtZSBhcmd1bWVudHM6
YXJnc107CisgICAgfTsKKworICAgIHZvaWQoXmFkZFRlc3QpKFRlc3RGYW1pbHkqLCBUZXN0RGVz
Y3JpcHRpb24qLCBOU051bWJlciosIFdITFNMVHlwZSkgPSBedm9pZChUZXN0RmFtaWx5KiBwcm9n
cmFtLCBUZXN0RGVzY3JpcHRpb24qIHRlc3REZXNjLCBOU051bWJlciogZXhwZWN0YXRpb24sIFdI
TFNMVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgaWYgKGluY2x1ZGVUZXN0KSB7CisgICAgICAg
ICAgICB0ZXN0RGVzYy5yZXR1cm5UeXBlID0gdHlwZTsKKyAgICAgICAgICAgIHRlc3REZXNjLmV4
cGVjdGF0aW9uID0gZXhwZWN0YXRpb247CisgICAgICAgICAgICBbcHJvZ3JhbSBhZGRUZXN0RGVz
Y3JpcHRpb246dGVzdERlc2NdOworICAgICAgICB9CisgICAgfTsKKworICAgIGNvbXBpbGVyQ29u
dGV4dFtAImNoZWNrSW50Il0gPSBedm9pZChUZXN0RmFtaWx5KiBwcm9ncmFtLCBUZXN0RGVzY3Jp
cHRpb24qIHRlc3REZXNjLCBOU051bWJlciogZXhwZWN0YXRpb24pCisgICAgeworICAgICAgICBh
ZGRUZXN0KHByb2dyYW0sIHRlc3REZXNjLCBleHBlY3RhdGlvbiwgV0hMU0xUeXBlSW50KTsKKyAg
ICB9OworCisgICAgY29tcGlsZXJDb250ZXh0W0AiY2hlY2tVaW50Il0gPSBedm9pZChUZXN0RmFt
aWx5KiBwcm9ncmFtLCBUZXN0RGVzY3JpcHRpb24qIHRlc3REZXNjLCBOU051bWJlciogZXhwZWN0
YXRpb24pCisgICAgeworICAgICAgICBhZGRUZXN0KHByb2dyYW0sIHRlc3REZXNjLCBleHBlY3Rh
dGlvbiwgV0hMU0xUeXBlVWludCk7CisgICAgfTsKKworICAgIGNvbXBpbGVyQ29udGV4dFtAImNo
ZWNrSGFsZiJdID0gXnZvaWQoVGVzdEZhbWlseSogcHJvZ3JhbSwgVGVzdERlc2NyaXB0aW9uKiB0
ZXN0RGVzYywgTlNOdW1iZXIqIGV4cGVjdGF0aW9uKQorICAgIHsKKyAgICAgICAgYWRkVGVzdChw
cm9ncmFtLCB0ZXN0RGVzYywgZXhwZWN0YXRpb24sIFdITFNMVHlwZUhhbGYpOworICAgIH07CisK
KyAgICBjb21waWxlckNvbnRleHRbQCJjaGVja0Zsb2F0Il0gPSBedm9pZChUZXN0RmFtaWx5KiBw
cm9ncmFtLCBUZXN0RGVzY3JpcHRpb24qIHRlc3REZXNjLCBOU051bWJlciogZXhwZWN0YXRpb24p
CisgICAgeworICAgICAgICBhZGRUZXN0KHByb2dyYW0sIHRlc3REZXNjLCBleHBlY3RhdGlvbiwg
V0hMU0xUeXBlRmxvYXQpOworICAgIH07CisKKyAgICBjb21waWxlckNvbnRleHRbQCJjaGVja0Jv
b2wiXSA9IF52b2lkKFRlc3RGYW1pbHkqIHByb2dyYW0sIFRlc3REZXNjcmlwdGlvbiogdGVzdERl
c2MsIE5TTnVtYmVyKiBleHBlY3RhdGlvbikKKyAgICB7CisgICAgICAgIGFkZFRlc3QocHJvZ3Jh
bSwgdGVzdERlc2MsIGV4cGVjdGF0aW9uLCBXSExTTFR5cGVCb29sKTsKKyAgICB9OworCisgICAg
Y29tcGlsZXJDb250ZXh0W0AiY2hlY2tVY2hhciJdID0gXnZvaWQoVGVzdEZhbWlseSogcHJvZ3Jh
bSwgVGVzdERlc2NyaXB0aW9uKiB0ZXN0RGVzYywgTlNOdW1iZXIqIGV4cGVjdGF0aW9uKQorICAg
IHsKKyAgICAgICAgYWRkVGVzdChwcm9ncmFtLCB0ZXN0RGVzYywgZXhwZWN0YXRpb24sIFdITFNM
VHlwZVVjaGFyKTsKKyAgICB9OworCisgICAgLy8gRGVsaWJlcmF0ZWx5IG5vdCBpbmNsdWRlZAor
ICAgIGNvbXBpbGVyQ29udGV4dFtAImNoZWNrRW51bSJdID0gXnZvaWQoVGVzdEZhbWlseSogcHJv
Z3JhbSwgVGVzdERlc2NyaXB0aW9uKiB0ZXN0RGVzYywgTlNOdW1iZXIqIGV4cGVjdGF0aW9uKSB7
IH07CisgICAgY29tcGlsZXJDb250ZXh0W0AiY2hlY2tGbG9hdDQiXSA9IF52b2lkKFRlc3RGYW1p
bHkqIHByb2dyYW0sIFRlc3REZXNjcmlwdGlvbiogdGVzdERlc2MsIE5TTnVtYmVyKiBleHBlY3Rh
dGlvbikgeyB9OworICAgIGNvbXBpbGVyQ29udGV4dFtAImNoZWNrRmFpbCJdID0gXnZvaWQoaWQg
Y2FsbGJhY2ssIGlkIGVycm9yQ2FsbGJhY2spIHsgfTsKKyAgICBjb21waWxlckNvbnRleHRbQCJj
aGVja0xleGVyVG9rZW4iXSA9IF52b2lkKE5TU3RyaW5nKiB0b2tlbiwgTlNOdW1iZXIqIGlkLCBO
U1N0cmluZyogbmFtZSwgTlNTdHJpbmcqIHRva2VuVGV4dCkgeyB9OworCisgICAgSlNWYWx1ZSog
dGVzdHMgPSBbY29tcGlsZXJDb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAidGVzdHMiXTsKKworICAg
IE5TQXJyYXk8TlNTdHJpbmcqPiogdGVzdE5hbWVzID0gW3Rlc3RzLnRvRGljdGlvbmFyeS5hbGxL
ZXlzIHNvcnRlZEFycmF5VXNpbmdTZWxlY3RvcjpAc2VsZWN0b3IobG9jYWxpemVkQ2FzZUluc2Vu
c2l0aXZlQ29tcGFyZTopXTsKKworICAgIGZvciAoY3VycmVudFRlc3ROYW1lIGluIHRlc3ROYW1l
cykgeworICAgICAgICBKU1ZhbHVlKiBmdW5jID0gW3Rlc3RzIG9iamVjdEZvcktleWVkU3Vic2Ny
aXB0OmN1cnJlbnRUZXN0TmFtZV07CisgICAgICAgIFtmdW5jIGNhbGxXaXRoQXJndW1lbnRzOkBb
XV07CisgICAgfQorCisgICAgcmV0dXJuIHRlc3RGYW1pbGllczsKK30KKworQGVuZApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29y
ZS9UZXN0RmFtaWx5UnVubmVyLmggYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RGYW1pbHlSdW5uZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjViYjIw
MTNiMTA2MzkwYjRmYTg0ZmU3MTJlYjg4YjlmYTI1ZjIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9UZXN0RmFt
aWx5UnVubmVyLmgJCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNp
bXBvcnQgIlRlc3RGYW1pbHkuaCIKKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworQGludGVy
ZmFjZSBUZXN0RmFtaWx5UnVubmVyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoVGVzdEZhbWlseTooVGVzdEZhbWlseSopdGVzdEZhbWlseTsKKworQHByb3BlcnR5IChyZWFk
b25seSkgVGVzdEZhbWlseSogdGVzdEZhbWlseTsKKworLSAoQk9PTClleGVjdXRlQWxsVGVzdHM7
CisKKysgKE5TVUludGVnZXIpZXhlY3V0aW9uQ291bnQ7CisKK0BlbmQKKworTlNfQVNTVU1FX05P
Tk5VTExfRU5ECmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9Db3JlL1Rlc3RGYW1pbHlSdW5uZXIubSBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVGVzdEZhbWlseVJ1bm5lci5tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUxN2UyYjFkMGUyMzg0YjMxYTZjMjkxOWU0YzQ3ODQ0Yzg1NGYzNWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBU
ZXN0cy9Db3JlL1Rlc3RGYW1pbHlSdW5uZXIubQkKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJUZXN0RmFtaWx5
UnVubmVyLmgiCisKKyNpbXBvcnQgIkNvbXBpbGVyLmgiCisjaW1wb3J0ICJPZmZzY3JlZW5SZW5k
ZXJlci5oIgorCitzdGF0aWMgTlNVSW50ZWdlciBleGVjdXRpb25Db3VudCA9IDA7CisKK0BpbnRl
cmZhY2UgVGVzdEZhbWlseVJ1bm5lciAoKQorCitAcHJvcGVydHkgVGVzdEZhbWlseSogdGVzdEZh
bWlseTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdEZhbWlseVJ1bm5lcgorCistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhUZXN0RmFtaWx5OihUZXN0RmFtaWx5ICopdGVzdEZhbWlseQor
eworICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKQorICAgICAgICBzZWxmLnRlc3RGYW1pbHkg
PSB0ZXN0RmFtaWx5OworICAgIHJldHVybiBzZWxmOworfQorCisrIChpZDxNVExEZXZpY2U+KWRl
ZmF1bHRUZXN0aW5nRGV2aWNlCit7CisgICAgTlNBcnJheTxpZDxNVExEZXZpY2U+PiogYWxsRGV2
aWNlcyA9IE1UTENvcHlBbGxEZXZpY2VzKCk7CisgICAgZm9yIChpZDxNVExEZXZpY2U+IGRldmlj
ZSBpbiBhbGxEZXZpY2VzKSB7CisgICAgICAgIGlmIChkZXZpY2UuaXNMb3dQb3dlcikKKyAgICAg
ICAgICAgIHJldHVybiBkZXZpY2U7CisgICAgfQorICAgIHJldHVybiBNVExDcmVhdGVTeXN0ZW1E
ZWZhdWx0RGV2aWNlKCk7Cit9CisKKysgKE9mZnNjcmVlblJlbmRlcmVyKilpbnRPZmZzY3JlZW5S
ZW5kZXJlcgoreworICAgIHN0YXRpYyBPZmZzY3JlZW5SZW5kZXJlciogb2Zmc2NyZWVuUmVuZGVy
ZXI7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hf
b25jZSgmb25jZVRva2VuLCBeeworICAgICAgICBvZmZzY3JlZW5SZW5kZXJlciA9IFtbT2Zmc2Ny
ZWVuUmVuZGVyZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlOltUZXN0RmFtaWx5UnVubmVyIGRlZmF1
bHRUZXN0aW5nRGV2aWNlXV07CisgICAgICAgIFtvZmZzY3JlZW5SZW5kZXJlciBzZXRPdXRwdXRQ
aXhlbEZvcm1hdDpNVExQaXhlbEZvcm1hdFIzMlNpbnRdOworICAgICAgICBbb2Zmc2NyZWVuUmVu
ZGVyZXIgc2V0VGFyZ2V0V2lkdGg6MSBzZXRUYXJnZXRIZWlnaHQ6MV07CisgICAgfSk7CisgICAg
cmV0dXJuIG9mZnNjcmVlblJlbmRlcmVyOworfQorCisrIChPZmZzY3JlZW5SZW5kZXJlciopdWlu
dE9mZnNjcmVlblJlbmRlcmVyCit7CisgICAgc3RhdGljIE9mZnNjcmVlblJlbmRlcmVyKiBvZmZz
Y3JlZW5SZW5kZXJlcjsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAg
ICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIG9mZnNjcmVlblJlbmRlcmVy
ID0gW1tPZmZzY3JlZW5SZW5kZXJlciBhbGxvY10gaW5pdFdpdGhEZXZpY2U6W1Rlc3RGYW1pbHlS
dW5uZXIgZGVmYXVsdFRlc3RpbmdEZXZpY2VdXTsKKyAgICAgICAgW29mZnNjcmVlblJlbmRlcmVy
IHNldE91dHB1dFBpeGVsRm9ybWF0Ok1UTFBpeGVsRm9ybWF0UjMyVWludF07CisgICAgICAgIFtv
ZmZzY3JlZW5SZW5kZXJlciBzZXRUYXJnZXRXaWR0aDoxIHNldFRhcmdldEhlaWdodDoxXTsKKyAg
ICB9KTsKKyAgICByZXR1cm4gb2Zmc2NyZWVuUmVuZGVyZXI7Cit9CisKKysgKE9mZnNjcmVlblJl
bmRlcmVyKilmbG9hdE9mZnNjcmVlblJlbmRlcmVyCit7CisgICAgc3RhdGljIE9mZnNjcmVlblJl
bmRlcmVyKiBvZmZzY3JlZW5SZW5kZXJlcjsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9u
Y2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIG9mZnNj
cmVlblJlbmRlcmVyID0gW1tPZmZzY3JlZW5SZW5kZXJlciBhbGxvY10gaW5pdFdpdGhEZXZpY2U6
W1Rlc3RGYW1pbHlSdW5uZXIgZGVmYXVsdFRlc3RpbmdEZXZpY2VdXTsKKyAgICAgICAgW29mZnNj
cmVlblJlbmRlcmVyIHNldE91dHB1dFBpeGVsRm9ybWF0Ok1UTFBpeGVsRm9ybWF0UjMyRmxvYXRd
OworICAgICAgICBbb2Zmc2NyZWVuUmVuZGVyZXIgc2V0VGFyZ2V0V2lkdGg6MSBzZXRUYXJnZXRI
ZWlnaHQ6MV07CisgICAgfSk7CisgICAgcmV0dXJuIG9mZnNjcmVlblJlbmRlcmVyOworfQorCisr
IChDb21waWxlciopY29tcGlsZXIKK3sKKyAgICBzdGF0aWMgQ29tcGlsZXIqIGNvbXBpbGVyOwor
ICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2Uo
Jm9uY2VUb2tlbiwgXnsKKyAgICAgICAgY29tcGlsZXIgPSBbQ29tcGlsZXIgbmV3XTsKKyAgICB9
KTsKKyAgICByZXR1cm4gY29tcGlsZXI7Cit9CisKKy0gKEJPT0wpZXhlY3V0ZUFsbFRlc3RzCit7
CisgICAgaWYgKCFzZWxmLnRlc3RGYW1pbHkudG90YWxUZXN0Q2FzZUNvdW50KQorICAgICAgICBy
ZXR1cm4gWUVTOworCisgICAgTlNTdHJpbmcqIHdobHNsU291cmNlID0gc2VsZi50ZXN0RmFtaWx5
LndobHNsU291cmNlOworICAgIE5TRXJyb3IqIHdobHNsQ29tcGlsZUVycm9yID0gbmlsOworICAg
IENvbXBpbGVSZXN1bHQqIHJlc3VsdCA9IFtbVGVzdEZhbWlseVJ1bm5lciBjb21waWxlcl0gY29t
cGlsZVdobHNsVG9NZXRhbDp3aGxzbFNvdXJjZSBlcnJvcjomd2hsc2xDb21waWxlRXJyb3JdOwor
ICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIE5TTG9nKEAiWyVAXTogV0hMU0wgQ29tcGlsZSBF
cnJvcjogJUAiLCBzZWxmLnRlc3RGYW1pbHkubmFtZSwgd2hsc2xDb21waWxlRXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm4gTk87CisgICAgfQorCisgICAgTlNMb2co
QCJDb21waWxlZCBXSExTTCIpOworCisgICAgTlNNdXRhYmxlU3RyaW5nKiBtc2xTdHJpbmcgPSBb
TlNNdXRhYmxlU3RyaW5nIG5ld107CisgICAgW21zbFN0cmluZyBhcHBlbmRTdHJpbmc6cmVzdWx0
LnNvdXJjZV07CisgICAgW21zbFN0cmluZyBhcHBlbmRTdHJpbmc6QCJcbiJdOworICAgIFttc2xT
dHJpbmcgYXBwZW5kU3RyaW5nOltUZXN0RmFtaWx5IHNoYXJlZE1ldGFsU291cmNlXV07CisgICAg
W21zbFN0cmluZyBhcHBlbmRTdHJpbmc6W3NlbGYudGVzdEZhbWlseSBtZXRhbFNvdXJjZUZvckNh
bGxpbmdGdW5jdGlvbnNXaXRoQ29tcGlsZWROYW1lczpyZXN1bHQuZnVuY3Rpb25OYW1lTWFwXV07
CisKKyAgICBpZDxNVExEZXZpY2U+IGRldmljZSA9IE1UTENyZWF0ZVN5c3RlbURlZmF1bHREZXZp
Y2UoKTsKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAgICBpZDxNVExMaWJyYXJ5PiBsaWJy
YXJ5ID0gW2RldmljZSBuZXdMaWJyYXJ5V2l0aFNvdXJjZTptc2xTdHJpbmcgb3B0aW9uczpuaWwg
ZXJyb3I6JmVycm9yXTsKKyAgICBpZiAoIWxpYnJhcnkpIHsKKyAgICAgICAgTlNMb2coQCJbTGli
cmFyeV06ICVAIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm4g
Tk87CisgICAgfQorCisgICAgaWYgKGVycm9yKQorICAgICAgICBOU0xvZyhAIltMaWJyYXJ5IGNv
bXBpbGVkIHdpdGggd2FybmluZ3NdOiAlQCIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTsK
KyAgICBOU0xvZyhAIkNvbXBpbGVkIG1ldGFsIik7CisKKyAgICBCT09MIHN0YXR1cyA9IFlFUzsK
KworICAgIE5TU3RyaW5nICp2ZXJ0ZXhTaGFkZXJOYW1lID0gQCJ2ZXJ0ZXhTaGFkZXIiOworCisg
ICAgT2Zmc2NyZWVuUmVuZGVyZXIgKmludFJlbmRlcmVyID0gW1Rlc3RGYW1pbHlSdW5uZXIgaW50
T2Zmc2NyZWVuUmVuZGVyZXJdOworICAgIGZvciAoVGVzdERlc2NyaXB0aW9uKiB0ZXN0IGluIHNl
bGYudGVzdEZhbWlseS5pbnRlZ2VyVGVzdHMpIHsKKyAgICAgICAgW2ludFJlbmRlcmVyIHNldExp
YnJhcnk6bGlicmFyeSB2ZXJ0ZXhTaGFkZXJOYW1lOnZlcnRleFNoYWRlck5hbWUgZnJhZ21lbnRT
aGFkZXJOYW1lOnRlc3QuZnJhZ21lbnRTaGFkZXJOYW1lXTsKKyAgICAgICAgW2ludFJlbmRlcmVy
IGRyYXddOworCisgICAgICAgIGludCByZXN1bHQgPSBpbnRSZW5kZXJlci5pbnRWYWx1ZTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPSB0ZXN0LmV4cGVjdGF0aW9uLmludFZhbHVlKSB7CisgICAgICAg
ICAgICBOU0xvZyhAIiVAID0gJWQsIHNob3VsZCBiZSAlZCIsIHRlc3QsIHJlc3VsdCwgdGVzdC5l
eHBlY3RhdGlvbi5pbnRWYWx1ZSk7CisgICAgICAgICAgICBzdGF0dXMgPSBOTzsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBOU0xvZyhAIiVAID0gJWQiLCB0ZXN0LCByZXN1bHQpOworICAg
ICAgICBleGVjdXRpb25Db3VudCsrOworICAgIH0KKworICAgIE9mZnNjcmVlblJlbmRlcmVyICp1
aW50UmVuZGVyZXIgPSBbVGVzdEZhbWlseVJ1bm5lciB1aW50T2Zmc2NyZWVuUmVuZGVyZXJdOwor
ICAgIGZvciAoVGVzdERlc2NyaXB0aW9uKiB0ZXN0IGluIHNlbGYudGVzdEZhbWlseS51bnNpZ25l
ZEludGVnZXJUZXN0cykgeworICAgICAgICBbdWludFJlbmRlcmVyIHNldExpYnJhcnk6bGlicmFy
eSB2ZXJ0ZXhTaGFkZXJOYW1lOnZlcnRleFNoYWRlck5hbWUgZnJhZ21lbnRTaGFkZXJOYW1lOnRl
c3QuZnJhZ21lbnRTaGFkZXJOYW1lXTsKKyAgICAgICAgW3VpbnRSZW5kZXJlciBkcmF3XTsKKwor
ICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSB1aW50UmVuZGVyZXIudWludFZhbHVlOworICAgICAg
ICBpZiAocmVzdWx0ICE9IHRlc3QuZXhwZWN0YXRpb24udW5zaWduZWRJbnRWYWx1ZSkgeworICAg
ICAgICAgICAgTlNMb2coQCIlQCA9ICV1LCBzaG91bGQgYmUgJXUiLCB0ZXN0LCByZXN1bHQsIHRl
c3QuZXhwZWN0YXRpb24udW5zaWduZWRJbnRWYWx1ZSk7CisgICAgICAgICAgICBzdGF0dXMgPSBO
TzsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBOU0xvZyhAIiVAID0gJXUiLCB0ZXN0LCBy
ZXN1bHQpOworICAgICAgICBleGVjdXRpb25Db3VudCsrOworICAgIH0KKworICAgIE9mZnNjcmVl
blJlbmRlcmVyICpmbG9hdFJlbmRlcmVyID0gW1Rlc3RGYW1pbHlSdW5uZXIgZmxvYXRPZmZzY3Jl
ZW5SZW5kZXJlcl07CisgICAgZm9yIChUZXN0RGVzY3JpcHRpb24qIHRlc3QgaW4gc2VsZi50ZXN0
RmFtaWx5LmZsb2F0VGVzdHMpIHsKKyAgICAgICAgW2Zsb2F0UmVuZGVyZXIgc2V0TGlicmFyeTps
aWJyYXJ5IHZlcnRleFNoYWRlck5hbWU6dmVydGV4U2hhZGVyTmFtZSBmcmFnbWVudFNoYWRlck5h
bWU6dGVzdC5mcmFnbWVudFNoYWRlck5hbWVdOworICAgICAgICBbZmxvYXRSZW5kZXJlciBkcmF3
XTsKKworICAgICAgICBmbG9hdCByZXN1bHQgPSBmbG9hdFJlbmRlcmVyLmZsb2F0VmFsdWU7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT0gdGVzdC5leHBlY3RhdGlvbi5mbG9hdFZhbHVlKSB7CisgICAg
ICAgICAgICBOU0xvZyhAIiVAID0gJWYsIHNob3VsZCBiZSAlZiIsIHRlc3QsIHJlc3VsdCwgdGVz
dC5leHBlY3RhdGlvbi5mbG9hdFZhbHVlKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IE5POworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIE5TTG9nKEAiJUAgPSAlZiIsIHRlc3QsIHJlc3VsdCk7
CisgICAgICAgIGV4ZWN1dGlvbkNvdW50Kys7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXR1czsK
K30KKworKyAoTlNVSW50ZWdlcilleGVjdXRpb25Db3VudAoreworICAgIHJldHVybiBleGVjdXRp
b25Db3VudDsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9WaWV3Q29udHJvbGxlci5oIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9WaWV3Q29udHJvbGxl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEwZTYzNjM0NzIxOTcwMmI4YmQ3ZWRlNjM2NTJiMTYxMzU3YmVkMzUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9Db3JlL1ZpZXdDb250cm9sbGVyLmgJCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxDb2NvYS9D
b2NvYS5oPgorI2ltcG9ydCA8TWV0YWxLaXQvTWV0YWxLaXQuaD4KKworI2ltcG9ydCAiQ29tcGls
ZXIuaCIKKyNpbXBvcnQgIkN1c3RvbU1ldGFsVmlldy5oIgorCitAaW50ZXJmYWNlIFZpZXdDb250
cm9sbGVyIDogTlNWaWV3Q29udHJvbGxlcjxOU0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIEN1
c3RvbU1ldGFsVmlld0RlbGVnYXRlPgorCitAcHJvcGVydHkgKHVuc2FmZV91bnJldGFpbmVkKSBJ
Qk91dGxldCBOU1RleHRWaWV3ICp3aGxzbFRleHRWaWV3OworQHByb3BlcnR5ICh1bnNhZmVfdW5y
ZXRhaW5lZCkgSUJPdXRsZXQgTlNUZXh0VmlldyAqbXNsVGV4dFZpZXc7CitAcHJvcGVydHkgKHdl
YWspIElCT3V0bGV0IEN1c3RvbU1ldGFsVmlldyAqbWV0YWxWaWV3OworCitAcHJvcGVydHkgQ29t
cGlsZXIgKmNvbXBpbGVyOworCitAZW5kCisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVmlld0NvbnRyb2xsZXIubSBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUvVmlld0Nv
bnRyb2xsZXIubQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjU2NGJmYzdhMTJkYmUxYmUxYTg0Y2JkZTViZjFmZDAz
YjA0ZTRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9WaWV3Q29udHJvbGxlci5tCQpAQCAtMCwwICsxLDIxMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
IlZpZXdDb250cm9sbGVyLmgiCisjaW1wb3J0ICJPbnNjcmVlblJlbmRlcmVyLmgiCisKK0BpbnRl
cmZhY2UgVmlld0NvbnRyb2xsZXIgKCkKKworQHByb3BlcnR5IE9uc2NyZWVuUmVuZGVyZXIgKnJl
bmRlcmVyOworQHByb3BlcnR5IE5TTWFnbmlmaWNhdGlvbkdlc3R1cmVSZWNvZ25pemVyICptYWdu
aWZ5R2VzdHVyZTsKK0Bwcm9wZXJ0eSBOU1JvdGF0aW9uR2VzdHVyZVJlY29nbml6ZXIgKnJvdGF0
aW9uR2VzdHVyZTsKK0Bwcm9wZXJ0eSAod2VhaykgSUJPdXRsZXQgTlNUZXh0RmllbGQgKmRlYnVn
TGFiZWw7CitAcHJvcGVydHkgKHdlYWspIElCT3V0bGV0IE5TU2Nyb2xsVmlldyAqd2hsc2xWaWV3
Q29udGFpbmVyOworQHByb3BlcnR5ICh3ZWFrKSBJQk91dGxldCBOU1Njcm9sbFZpZXcgKm1zbFZp
ZXdDb250YWluZXI7CitAcHJvcGVydHkgaWQ8TVRMTGlicmFyeT4gbGlicmFyeTsKKworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gVmlld0NvbnRyb2xsZXIKKworLSAodm9pZCl2aWV3RGlkTG9hZCB7
CisgICAgW3N1cGVyIHZpZXdEaWRMb2FkXTsKKworICAgIFtzZWxmIGxvYWRGaWxlOkAiRGVmYXVs
dCJdOworCisgICAgc2VsZi5jb21waWxlciA9IFtbQ29tcGlsZXIgYWxsb2NdIGluaXRdOworCisg
ICAgc2VsZi5tZXRhbFZpZXcuZGV2aWNlID0gTVRMQ3JlYXRlU3lzdGVtRGVmYXVsdERldmljZSgp
OworICAgIHNlbGYucmVuZGVyZXIgPSBbW09uc2NyZWVuUmVuZGVyZXIgYWxsb2NdIGluaXRXaXRo
VmlldzpzZWxmLm1ldGFsVmlldyBkZXZpY2U6c2VsZi5tZXRhbFZpZXcuZGV2aWNlXTsKKworICAg
IHNlbGYubWFnbmlmeUdlc3R1cmUgPSBbW05TTWFnbmlmaWNhdGlvbkdlc3R1cmVSZWNvZ25pemVy
IGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3Ioem9vbTopXTsKKyAg
ICBzZWxmLm1hZ25pZnlHZXN0dXJlLmRlbGVnYXRlID0gc2VsZjsKKyAgICBbc2VsZi5tZXRhbFZp
ZXcgYWRkR2VzdHVyZVJlY29nbml6ZXI6c2VsZi5tYWduaWZ5R2VzdHVyZV07CisKKyAgICBzZWxm
LnJvdGF0aW9uR2VzdHVyZSA9IFtbTlNSb3RhdGlvbkdlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBp
bml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3Iocm90YXRlOildOworICAgIHNlbGYu
cm90YXRpb25HZXN0dXJlLmRlbGVnYXRlID0gc2VsZjsKKyAgICBbc2VsZi5tZXRhbFZpZXcgYWRk
R2VzdHVyZVJlY29nbml6ZXI6c2VsZi5yb3RhdGlvbkdlc3R1cmVdOworCisgICAgc2VsZi5tZXRh
bFZpZXcuc2Nyb2xsRGVsZWdhdGUgPSBzZWxmOworCisgICAgW3NlbGYgdmlld0RpZExheW91dF07
CisKKyAgICBzZWxmLmxpYnJhcnkgPSBbc2VsZi5yZW5kZXJlci5kZXZpY2UgbmV3RGVmYXVsdExp
YnJhcnlXaXRoQnVuZGxlOltOU0J1bmRsZSBtYWluQnVuZGxlXSBlcnJvcjpuaWxdOworfQorCist
IChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihOU0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJl
Y29nbml6ZXIgc2hvdWxkUmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6
ZXI6KG5vbm51bGwgTlNHZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIK
K3sKKyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lkKXZpZXdEaWRMYXlvdXQKK3sKKyAgICBb
c3VwZXIgdmlld0RpZExheW91dF07CisKKyAgICBDR0Zsb2F0IHdpZHRoID0gQ0dSZWN0R2V0V2lk
dGgoc2VsZi52aWV3LmZyYW1lKTsKKyAgICBDR0Zsb2F0IGJveFdpZHRoID0gKHdpZHRoIC0gMjAg
KiAyIC0gMTAgKiAyKSAvIDM7CisgICAgQ0dGbG9hdCBoZWlnaHQgPSBDR1JlY3RHZXRIZWlnaHQo
c2VsZi52aWV3LmZyYW1lKTsKKyAgICBDR0Zsb2F0IGJveEhlaWdodCA9IGhlaWdodCAtIDYwIC0g
MjA7CisKKyAgICBzZWxmLndobHNsVmlld0NvbnRhaW5lci5mcmFtZSA9IENHUmVjdE1ha2UoMjAs
IDYwLCBib3hXaWR0aCwgYm94SGVpZ2h0KTsKKyAgICBzZWxmLm1zbFZpZXdDb250YWluZXIuZnJh
bWUgPSBDR1JlY3RNYWtlKDIwICsgYm94V2lkdGggKyAxMCwgNjAsIGJveFdpZHRoLCBib3hIZWln
aHQpOworICAgIHNlbGYubWV0YWxWaWV3LmZyYW1lID0gQ0dSZWN0TWFrZSgyMCArIGJveFdpZHRo
ICsgMTAgKyBib3hXaWR0aCArIDEwLCA2MCwgYm94V2lkdGgsIGJveEhlaWdodCk7CisKKyAgICBm
bG9hdCByYXRpbyA9IGJveEhlaWdodCAvIChib3hXaWR0aCAvIDMpOworICAgIC8vIE5PVEU6IHNp
bWRfbWF0cml4IHRha2VzIGNvbHVtbnMsIG5vdCByb3dzIQorICAgIHNlbGYucmVuZGVyZXIudHJh
bnNmb3JtTWF0cml4ID0gc2ltZF9tYXRyaXgoc2ltZF9tYWtlX2Zsb2F0MygzLCAwLCAwKSwgc2lt
ZF9tYWtlX2Zsb2F0MygwLCAgcmF0aW8sIDApLCBzaW1kX21ha2VfZmxvYXQzKC0yLjIsIC1yYXRp
byAvIDIsIDEpKTsKKworICAgIHNlbGYuZGVidWdMYWJlbC5zdHJpbmdWYWx1ZSA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiV2lkdGggPSAlZiwgaGVpZ2h0ID0gJWYiLCBib3hXaWR0aCwg
Ym94SGVpZ2h0XTsKK30KKworLSAoSUJBY3Rpb24pcmVzZXRWaWV3cG9ydDooaWQpc2VuZGVyCit7
CisgICAgW3NlbGYgdmlld0RpZExheW91dF07CisgICAgW3NlbGYubWV0YWxWaWV3IHNldE5lZWRz
RGlzcGxheTpZRVNdOworfQorCistIChJQkFjdGlvbilsb2FkRGVmYXVsdDooaWQpc2VuZGVyCit7
CisgICAgW3NlbGYgbG9hZEZpbGU6QCJEZWZhdWx0Il07Cit9CisKKy0gKElCQWN0aW9uKWxvYWRN
YW5kZWxicm90OihpZClzZW5kZXIKK3sKKyAgICBbc2VsZiBsb2FkRmlsZTpAIk1hbmRlbGJyb3Qi
XTsKK30KKworLSAoSUJBY3Rpb24pbG9hZEp1bGlhOihpZClzZW5kZXIKK3sKKyAgICBbc2VsZiBs
b2FkRmlsZTpAIkp1bGlhIl07Cit9CisKKy0gKHZvaWQpbG9hZEZpbGU6KE5TU3RyaW5nKiluYW1l
Cit7CisgICAgTlNTdHJpbmcqIGRlZmF1bHRGaWxlUGF0aCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gcGF0aEZvclJlc291cmNlOm5hbWUgb2ZUeXBlOkAid2hsc2wiXTsKKyAgICBOU1N0cmluZyog
ZGVmYXVsdENvbnRlbnRzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpkZWZh
dWx0RmlsZVBhdGggZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXTsKKwor
ICAgIC8vIERvIGFueSBhZGRpdGlvbmFsIHNldHVwIGFmdGVyIGxvYWRpbmcgdGhlIHZpZXcuCisg
ICAgc2VsZi53aGxzbFRleHRWaWV3LnN0cmluZyA9IGRlZmF1bHRDb250ZW50czsKKyAgICBzZWxm
Lm1zbFRleHRWaWV3LnN0cmluZyA9IEAiIjsKKyAgICBzZWxmLm1ldGFsVmlldy5oaWRkZW4gPSBZ
RVM7Cit9CisKKy0gKElCQWN0aW9uKWNvbXBpbGVDbGlja2VkOihpZClzZW5kZXIgeworICAgIE5T
RXJyb3IgKmVycm9yID0gbmlsOworICAgIENvbXBpbGVSZXN1bHQgKm91dHB1dCA9IFtzZWxmLmNv
bXBpbGVyIGNvbXBpbGVXaGxzbFRvTWV0YWw6c2VsZi53aGxzbFRleHRWaWV3LnN0cmluZyBlcnJv
cjomZXJyb3JdOworICAgIGlmIChlcnJvcikKKyAgICAgICAgc2VsZi5tc2xUZXh0Vmlldy5zdHJp
bmcgPSBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbjsKKyAgICBlbHNlIHsKKyAgICAgICAgc2Vs
Zi5tZXRhbFZpZXcuaGlkZGVuID0gTk87CisgICAgICAgIHNlbGYubXNsVGV4dFZpZXcuc3RyaW5n
ID0gb3V0cHV0LnNvdXJjZTsKKyAgICAgICAgTlNTdHJpbmcgKnZlcnRleFNoYWRlck5hbWUgPSBv
dXRwdXQuZnVuY3Rpb25OYW1lTWFwW0AidmVydGV4U2hhZGVyIl07CisgICAgICAgIE5TU3RyaW5n
ICpmcmFnbWVudFNoYWRlck5hbWUgPSBvdXRwdXQuZnVuY3Rpb25OYW1lTWFwW0AiZnJhZ21lbnRT
aGFkZXIiXTsKKyAgICAgICAgW3NlbGYgdmlld0RpZExheW91dF07CisgICAgICAgIFtzZWxmLnJl
bmRlcmVyIHNldFNoYWRlclNvdXJjZTpvdXRwdXQuc291cmNlIHZlcnRleFNoYWRlck5hbWU6dmVy
dGV4U2hhZGVyTmFtZSBmcmFnbWVudFNoYWRlck5hbWU6ZnJhZ21lbnRTaGFkZXJOYW1lXTsKKyAg
ICAgICAgW3NlbGYubWV0YWxWaWV3IHNldE5lZWRzRGlzcGxheTpZRVNdOworICAgIH0KKyAgICBz
ZWxmLm1zbFRleHRWaWV3LmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTpAIk1lbmxvIiBzaXpl
OjEyXTsKK30KKworLSAoSUJBY3Rpb24pbG9hZE5hdGl2ZUZsYXRDb2xvcjooaWQpc2VuZGVyCit7
CisgICAgW3NlbGYgbG9hZE5hdGl2ZUZsYXRDb2xvcjpAImZsYXRDb2xvciJdOworfQorCistIChJ
QkFjdGlvbilsb2FkTmF0aXZlTWFuZGVsYnJvdDooaWQpc2VuZGVyCit7CisgICAgW3NlbGYgbG9h
ZE5hdGl2ZU1ldGFsU2hhZGVyV2l0aE5hbWU6QCJtYW5kZWxicm90Il07Cit9CisKKy0gKElCQWN0
aW9uKWxvYWROYXRpdmVKdWxpYTooaWQpc2VuZGVyCit7CisgICAgW3NlbGYgbG9hZE5hdGl2ZU1l
dGFsU2hhZGVyV2l0aE5hbWU6QCJqdWxpYSJdOworfQorCistICh2b2lkKWxvYWROYXRpdmVNZXRh
bFNoYWRlcldpdGhOYW1lOihOU1N0cmluZyopbmFtZQoreworICAgIE5TU3RyaW5nKiB2ZXJ0ZXhT
aGFkZXJOYW1lID0gW25hbWUgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6QCJWZXJ0ZXhTaGFkZXIi
XTsKKyAgICBOU1N0cmluZyogZnJhZ21lbnRTaGFkZXJOYW1lID0gW25hbWUgc3RyaW5nQnlBcHBl
bmRpbmdTdHJpbmc6QCJGcmFnbWVudFNoYWRlciJdOworICAgIFtzZWxmIHZpZXdEaWRMYXlvdXRd
OworICAgIFtzZWxmLnJlbmRlcmVyIHNldExpYnJhcnk6c2VsZi5saWJyYXJ5IHZlcnRleFNoYWRl
ck5hbWU6dmVydGV4U2hhZGVyTmFtZSBmcmFnbWVudFNoYWRlck5hbWU6ZnJhZ21lbnRTaGFkZXJO
YW1lIHBpeGVsRm9ybWF0OnNlbGYubWV0YWxWaWV3LmNvbG9yUGl4ZWxGb3JtYXRdOworICAgIFtz
ZWxmLm1ldGFsVmlldyBzZXROZWVkc0Rpc3BsYXk6WUVTXTsKK30KKworLSAoSUJBY3Rpb24pem9v
bTooaWQpc2VuZGVyCit7CisgICAgZmxvYXQgZmFjdG9yID0gMS4wZiAvICgxICsgc2VsZi5tYWdu
aWZ5R2VzdHVyZS5tYWduaWZpY2F0aW9uKTsKKyAgICBOU1BvaW50IGxvY2F0aW9uID0gW3NlbGYu
bWFnbmlmeUdlc3R1cmUgbG9jYXRpb25JblZpZXc6c2VsZi5tZXRhbFZpZXddOworICAgIGZsb2F0
IG5vcm1hbGl6ZWRYID0gbG9jYXRpb24ueCAvIENHUmVjdEdldFdpZHRoKHNlbGYubWV0YWxWaWV3
LmZyYW1lKTsKKyAgICBmbG9hdCBub3JtYWxpemVkWSA9IGxvY2F0aW9uLnkgLyBDR1JlY3RHZXRI
ZWlnaHQoc2VsZi5tZXRhbFZpZXcuZnJhbWUpOworICAgIHNpbWRfZmxvYXQzIG5vcm1hbGl6ZWQg
PSBzaW1kX21ha2VfZmxvYXQzKG5vcm1hbGl6ZWRYLCBub3JtYWxpemVkWSwgMSk7CisgICAgbm9y
bWFsaXplZCA9IG1hdHJpeF9tdWx0aXBseShzZWxmLnJlbmRlcmVyLnRyYW5zZm9ybU1hdHJpeCwg
bm9ybWFsaXplZCk7CisgICAgc2ltZF9mbG9hdDN4MyBpbml0VHJhbnNmb3JtID0gc2ltZF9tYXRy
aXgoc2ltZF9tYWtlX2Zsb2F0MygxLCAwLCAwKSwgc2ltZF9tYWtlX2Zsb2F0MygwLCAxLCAwKSwg
c2ltZF9tYWtlX2Zsb2F0Mygtbm9ybWFsaXplZC54LCAtbm9ybWFsaXplZC55LCAxKSk7CisgICAg
c2ltZF9mbG9hdDN4MyBzY2FsZU1hdHJpeCA9IHNpbWRfbWF0cml4KHNpbWRfbWFrZV9mbG9hdDMo
ZmFjdG9yLCAwLmYsIDAuZiksIHNpbWRfbWFrZV9mbG9hdDMoMC5mLCBmYWN0b3IsIDAuZiksIHNp
bWRfbWFrZV9mbG9hdDMoMC5mLCAwLmYsIDEpKTsKKyAgICBzaW1kX2Zsb2F0M3gzIGJhY2tUcmFu
c2Zvcm0gPSBzaW1kX21hdHJpeChzaW1kX21ha2VfZmxvYXQzKDEsIDAsIDApLCBzaW1kX21ha2Vf
ZmxvYXQzKDAsIDEsIDApLCBzaW1kX21ha2VfZmxvYXQzKG5vcm1hbGl6ZWQueCwgbm9ybWFsaXpl
ZC55LCAxKSk7CisgICAgc2VsZi5yZW5kZXJlci50cmFuc2Zvcm1NYXRyaXggPSBtYXRyaXhfbXVs
dGlwbHkobWF0cml4X211bHRpcGx5KGJhY2tUcmFuc2Zvcm0sIG1hdHJpeF9tdWx0aXBseShzY2Fs
ZU1hdHJpeCwgaW5pdFRyYW5zZm9ybSkpLCBzZWxmLnJlbmRlcmVyLnRyYW5zZm9ybU1hdHJpeCk7
CisgICAgc2VsZi5tYWduaWZ5R2VzdHVyZS5tYWduaWZpY2F0aW9uID0gMDsKKyAgICBbc2VsZi5t
ZXRhbFZpZXcgc2V0TmVlZHNEaXNwbGF5OllFU107Cit9CisKKy0gKElCQWN0aW9uKXJvdGF0ZToo
aWQpc2VuZGVyCit7CisgICAgZmxvYXQgYW5nbGUgPSAtc2VsZi5yb3RhdGlvbkdlc3R1cmUucm90
YXRpb247CisgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtzZWxmLnJvdGF0aW9uR2VzdHVyZSBsb2Nh
dGlvbkluVmlldzpzZWxmLm1ldGFsVmlld107CisgICAgZmxvYXQgbm9ybWFsaXplZFggPSBsb2Nh
dGlvbi54IC8gQ0dSZWN0R2V0V2lkdGgoc2VsZi5tZXRhbFZpZXcuZnJhbWUpOworICAgIGZsb2F0
IG5vcm1hbGl6ZWRZID0gbG9jYXRpb24ueSAvIENHUmVjdEdldEhlaWdodChzZWxmLm1ldGFsVmll
dy5mcmFtZSk7CisgICAgc2ltZF9mbG9hdDMgbm9ybWFsaXplZCA9IHNpbWRfbWFrZV9mbG9hdDMo
bm9ybWFsaXplZFgsIG5vcm1hbGl6ZWRZLCAxKTsKKyAgICBub3JtYWxpemVkID0gbWF0cml4X211
bHRpcGx5KHNlbGYucmVuZGVyZXIudHJhbnNmb3JtTWF0cml4LCBub3JtYWxpemVkKTsKKworICAg
IHNpbWRfZmxvYXQzeDMgaW5pdFRyYW5zZm9ybSA9IHNpbWRfbWF0cml4KHNpbWRfbWFrZV9mbG9h
dDMoMSwgMCwgMCksIHNpbWRfbWFrZV9mbG9hdDMoMCwgMSwgMCksIHNpbWRfbWFrZV9mbG9hdDMo
LW5vcm1hbGl6ZWQueCwgLW5vcm1hbGl6ZWQueSwgMSkpOworICAgIHNpbWRfZmxvYXQzeDMgcm90
YXRpb25NYXRyaXggPSBzaW1kX21hdHJpeChzaW1kX21ha2VfZmxvYXQzKGNvcyhhbmdsZSksIHNp
bihhbmdsZSksIDAuZiksIHNpbWRfbWFrZV9mbG9hdDMoLXNpbihhbmdsZSksIGNvcyhhbmdsZSks
IDAuZiksIHNpbWRfbWFrZV9mbG9hdDMoMC5mLCAwLmYsIDEpKTsKKyAgICBzaW1kX2Zsb2F0M3gz
IGJhY2tUcmFuc2Zvcm0gPSBzaW1kX21hdHJpeChzaW1kX21ha2VfZmxvYXQzKDEsIDAsIDApLCBz
aW1kX21ha2VfZmxvYXQzKDAsIDEsIDApLCBzaW1kX21ha2VfZmxvYXQzKG5vcm1hbGl6ZWQueCwg
bm9ybWFsaXplZC55LCAxKSk7CisgICAgc2VsZi5yZW5kZXJlci50cmFuc2Zvcm1NYXRyaXggPSBt
YXRyaXhfbXVsdGlwbHkobWF0cml4X211bHRpcGx5KGJhY2tUcmFuc2Zvcm0sIG1hdHJpeF9tdWx0
aXBseShyb3RhdGlvbk1hdHJpeCwgaW5pdFRyYW5zZm9ybSkpLCBzZWxmLnJlbmRlcmVyLnRyYW5z
Zm9ybU1hdHJpeCk7CisgICAgc2VsZi5yb3RhdGlvbkdlc3R1cmUucm90YXRpb24gPSAwOworICAg
IFtzZWxmLm1ldGFsVmlldyBzZXROZWVkc0Rpc3BsYXk6WUVTXTsKK30KKworLSAodm9pZCljdXN0
b21NZXRhbFZpZXc6KEN1c3RvbU1ldGFsVmlldyAqKW1ldGFsVmlldyBzY3JvbGxlZERlbHRhWDoo
Q0dGbG9hdClkZWx0YVggZGVsdGFZOihDR0Zsb2F0KWRlbHRhWQoreworICAgIGZsb2F0IHdpZHRo
ID0gc2VsZi5tZXRhbFZpZXcuYm91bmRzLnNpemUud2lkdGg7CisgICAgZmxvYXQgaGVpZ2h0ID0g
c2VsZi5tZXRhbFZpZXcuYm91bmRzLnNpemUuaGVpZ2h0OworICAgIGZsb2F0IHNjcm9sbFZlbG9j
aXR5ID0gNjsKKyAgICBmbG9hdCB4ID0gLWRlbHRhWCAvIHdpZHRoICogc2Nyb2xsVmVsb2NpdHk7
CisgICAgZmxvYXQgeSA9IGRlbHRhWSAvIGhlaWdodCAqIHNjcm9sbFZlbG9jaXR5OworICAgIHNp
bWRfZmxvYXQzeDMgbSA9IHNpbWRfbWF0cml4KHNpbWRfbWFrZV9mbG9hdDMoMSwgMCwgMCksIHNp
bWRfbWFrZV9mbG9hdDMoMCwgMSwgMCksIHNpbWRfbWFrZV9mbG9hdDMoeCwgeSwgMSkpOworICAg
IHNlbGYucmVuZGVyZXIudHJhbnNmb3JtTWF0cml4ID0gbWF0cml4X211bHRpcGx5KHNlbGYucmVu
ZGVyZXIudHJhbnNmb3JtTWF0cml4LCBtKTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9XSExTTC5lbnRp
dGxlbWVudHMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0
cy9Db3JlL1dITFNMLmVudGl0bGVtZW50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmVmM2FlMDI2NWI0MGM0NzVl
OGVmOTBlM2EzMTFjMzE3ODZjNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9XSExTTC5lbnRpdGxlbWVudHMJ
CkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2
ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisgICAgPGtleT5jb20uYXBwbGUuc2VjdXJpdHkuYXBwLXNh
bmRib3g8L2tleT4KKyAgICA8dHJ1ZS8+CisgICAgPGtleT5jb20uYXBwbGUuc2VjdXJpdHkuZmls
ZXMudXNlci1zZWxlY3RlZC5yZWFkLW9ubHk8L2tleT4KKyAgICA8dHJ1ZS8+Cis8L2RpY3Q+Cis8
L3BsaXN0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvQ29yZS9fU2hhcmVkTWV0YWwudHh0IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvQ29yZS9fU2hhcmVkTWV0YWwudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJkNjRlNDFkZTQyZWY1OTExYTRkZGMyMTc5N2E1NGQ2YWYwN2QzZWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9D
b3JlL19TaGFyZWRNZXRhbC50eHQJCkBAIC0wLDAgKzEsMTIgQEAKK3N0cnVjdCBWZXJ0ZXhJbnB1
dCB7IGZsb2F0MiBwb3NpdGlvbiBbW2F0dHJpYnV0ZSgwKV1dOyBmbG9hdDIgdXYgW1thdHRyaWJ1
dGUoMSldXTsgfTsKK3N0cnVjdCBWZXJ0ZXhPdXRwdXQgeyBmbG9hdDQgcG9zaXRpb24gW1twb3Np
dGlvbl1dOyB9Oworc3RydWN0IEZyYWdtZW50T3V0cHV0RmxvYXQgeyBmbG9hdCByZXN1bHQ7IH07
CitzdHJ1Y3QgRnJhZ21lbnRPdXRwdXRJbnQgeyBpbnQgcmVzdWx0OyB9Oworc3RydWN0IEZyYWdt
ZW50T3V0cHV0VWludCB7IHVpbnQgcmVzdWx0OyB9OworCit2ZXJ0ZXggVmVydGV4T3V0cHV0IHZl
cnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCBbW3N0YWdlX2luXV0pCit7CisgICAg
VmVydGV4T3V0cHV0IHJlc3VsdDsKKyAgICByZXN1bHQucG9zaXRpb24gPSBmbG9hdDQodmVydGV4
SW5wdXQucG9zaXRpb24sIDAuLCAxLik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL0NvcmUv
bWFpbi5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMv
Q29yZS9tYWluLm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRjMzM2NWVmNTk0Mzc1NDE0NDJmNGY4MWNhOGNmMDA1
Y2ZlOWU0OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL0NvcmUvbWFpbi5tCQpAQCAtMCwwICsxLDMxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Q29jb2EvQ29j
b2EuaD4KKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCit7CisgICAg
cmV0dXJuIE5TQXBwbGljYXRpb25NYWluKGFyZ2MsIGFyZ3YpOworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvV0hMU0wgVGVzdHMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRlc3RzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGEyYTY5MzdkNmY4YTk3Njg4YzExZWM2MjFiN2JjMDMwMmZjMjBhYgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL1dITFNMIFRlc3RzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJCkBAIC0wLDAgKzEs
MTMzMCBAQAorLy8gISQqVVRGOCokIQoreworCWFyY2hpdmVWZXJzaW9uID0gMTsKKwljbGFzc2Vz
ID0geworCX07CisJb2JqZWN0VmVyc2lvbiA9IDUwOworCW9iamVjdHMgPSB7CisKKy8qIEJlZ2lu
IFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisJCUU5MDZCMDQ2MjExMzlCNzcwMEFEMUM1RSAvKiBK
dWxpYS53aGxzbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTkwNkIwNDUyMTEzOUI3NzAwQUQxQzVFIC8qIEp1bGlhLndobHNsICovOyB9OworCQlFOTIx
RDYzNjIxMzhDMDI2MDA3NzUwOTkgLyogT3BlcmF0b3JBbmRlckluZGV4ZXIuanMgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MjFENjMyMjEzOEMwMjYw
MDc3NTA5OSAvKiBPcGVyYXRvckFuZGVySW5kZXhlci5qcyAqLzsgfTsKKwkJRTkyMUQ2MzcyMTM4
QzAyNjAwNzc1MDk5IC8qIE1hdHJpeFR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MjFENjMzMjEzOEMwMjYwMDc3NTA5OSAvKiBNYXRyaXhU
eXBlLmpzICovOyB9OworCQlFOTIxRDYzODIxMzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJp
eEdldHRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTkyMUQ2MzQyMTM4QzAyNjAwNzc1MDk5IC8qIEJ1aWx0aW5NYXRyaXhHZXR0ZXIuanMgKi87
IH07CisJCUU5MjFENjM5MjEzOEMwMjYwMDc3NTA5OSAvKiBCdWlsdGluTWF0cml4U2V0dGVyLmpz
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTIxRDYz
NTIxMzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeFNldHRlci5qcyAqLzsgfTsKKwkJRTky
RDEwOEEyMEY1NkYwNjAwRDc3NkIyIC8qIENvbXBpbGVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA4OTIwRjU2RjA2MDBENzc2QjIgLyogQ29t
cGlsZXIubSAqLzsgfTsKKwkJRTkyRDEwOEQyMEY1NkY0NTAwRDc3NkIyIC8qIE1ldGFsS2l0LmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU5MkQxMDhDMjBGNTZGNDUwMEQ3NzZCMiAvKiBNZXRhbEtpdC5mcmFtZXdvcmsgKi87IH07CisJ
CUU5MkQxMDhGMjBGNTZGNEYwMEQ3NzZCMiAvKiBNZXRhbC5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA4RTIwRjU2RjRGMDBE
Nzc2QjIgLyogTWV0YWwuZnJhbWV3b3JrICovOyB9OworCQlFOTJEMTA5MTIwRjU2RjU3MDBENzc2
QjIgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwOTAyMEY1NkY1NzAwRDc3NkIyIC8qIEphdmFT
Y3JpcHRDb3JlLmZyYW1ld29yayAqLzsgfTsKKwkJRTkyRDEwOTMyMEY1NzM0OTAwRDc3NkIyIC8q
IERlZmF1bHQud2hsc2wgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5MkQxMDkyMjBGNTczNDkwMEQ3NzZCMiAvKiBEZWZhdWx0LndobHNsICovOyB9Owor
CQlFOTJEMTBBRjIwRjU3QzlGMDBENzc2QjIgLyogT25zY3JlZW5SZW5kZXJlci5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwQUUyMEY1N0M5RjAw
RDc3NkIyIC8qIE9uc2NyZWVuUmVuZGVyZXIubSAqLzsgfTsKKwkJRTkyRDExMTUyMEY2RkZCNjAw
RDc3NkIyIC8qIFJlbmRlcmVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOTJEMTExNDIwRjZGRkI2MDBENzc2QjIgLyogUmVuZGVyZXIubSAqLzsgfTsK
KwkJRTkyRDExMTYyMEY3MDYwRTAwRDc3NkIyIC8qIEFkZHJlc3NTcGFjZS5qcyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5QkEyMEY1NkNENjAw
RjVDRjM0IC8qIEFkZHJlc3NTcGFjZS5qcyAqLzsgfTsKKwkJRTkyRDExMTcyMEY3MDYwRTAwRDc3
NkIyIC8qIEFsbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTk1NTY5QkMyMEY1NkNENzAwRjVDRjM0IC8qIEFsbC5qcyAqLzsgfTsKKwkJRTkyRDEx
MTgyMEY3MDYwRTAwRDc3NkIyIC8qIEFub255bW91c1ZhcmlhYmxlLmpzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlCRDIwRjU2Q0Q3MDBGNUNG
MzQgLyogQW5vbnltb3VzVmFyaWFibGUuanMgKi87IH07CisJCUU5MkQxMTE5MjBGNzA2MEUwMEQ3
NzZCMiAvKiBBcnJheVJlZlR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI1MjBGNTZDRDYwMEY1Q0YzNCAvKiBBcnJheVJlZlR5cGUu
anMgKi87IH07CisJCUU5MkQxMTFBMjBGNzA2MEUwMEQ3NzZCMiAvKiBBcnJheVR5cGUuanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI0MjBG
NTZDRDYwMEY1Q0YzNCAvKiBBcnJheVR5cGUuanMgKi87IH07CisJCUU5MkQxMTFCMjBGNzA2MEUw
MEQ3NzZCMiAvKiBBc3NpZ25tZW50LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlCOTIwRjU2Q0Q2MDBGNUNGMzQgLyogQXNzaWdubWVudC5q
cyAqLzsgfTsKKwkJRTkyRDExMUMyMEY3MDYwRTAwRDc3NkIyIC8qIEF1dG9XcmFwcGVyLmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlCRTIw
RjU2Q0Q3MDBGNUNGMzQgLyogQXV0b1dyYXBwZXIuanMgKi87IH07CisJCUU5MkQxMTFEMjBGNzA2
MEUwMEQ3NzZCMiAvKiBCbG9jay5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTk0QzA2RkMyMEY1NkNBMzAwNjcyOTkyIC8qIEJsb2NrLmpzICovOyB9
OworCQlFOTJEMTExRTIwRjcwNjBFMDBENzc2QjIgLyogQm9vbExpdGVyYWwuanMgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUIxMjBGNTZDRDYw
MEY1Q0YzNCAvKiBCb29sTGl0ZXJhbC5qcyAqLzsgfTsKKwkJRTkyRDExMUYyMEY3MDYwRTAwRDc3
NkIyIC8qIEJyZWFrLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFOTU1NjlCMDIwRjU2Q0Q2MDBGNUNGMzQgLyogQnJlYWsuanMgKi87IH07CisJCUU5
MkQxMTIwMjBGNzA2MEUwMEQ3NzZCMiAvKiBDYWxsRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5QkYyMEY1NkNENzAwRjVD
RjM0IC8qIENhbGxFeHByZXNzaW9uLmpzICovOyB9OworCQlFOTJEMTEyMTIwRjcwNjBFMDBENzc2
QjIgLyogQ2FsbEZ1bmN0aW9uLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOTU1NjlDMDIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2FsbEZ1bmN0aW9uLmpz
ICovOyB9OworCQlFOTJEMTEyMjIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2suanMgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI4MjBGNTZDRDYw
MEY1Q0YzNCAvKiBDaGVjay5qcyAqLzsgfTsKKwkJRTkyRDExMjMyMEY3MDYwRTAwRDc3NkIyIC8q
IENoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5NTU2OUMxMjBGNTZDRDcwMEY1Q0YzNCAvKiBDaGVja2VyLmpzICovOyB9OworCQlFOTJE
MTEyNDIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tMaXRlcmFsVHlwZXMuanMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUI2MjBGNTZDRDYwMEY1
Q0YzNCAvKiBDaGVja0xpdGVyYWxUeXBlcy5qcyAqLzsgfTsKKwkJRTkyRDExMjUyMEY3MDYwRTAw
RDc3NkIyIC8qIENoZWNrTG9vcHMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5NTU2OUIzMjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja0xvb3BzLmpz
ICovOyB9OworCQlFOTJEMTEyNjIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tSZWN1cnNpb24uanMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NEMwNkZB
MjBGNTZDQTMwMDY3Mjk5MiAvKiBDaGVja1JlY3Vyc2lvbi5qcyAqLzsgfTsKKwkJRTkyRDExMjcy
MEY3MDYwRTAwRDc3NkIyIC8qIENoZWNrUmVjdXJzaXZlVHlwZXMuanMgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NTU2OUJCMjBGNTZDRDYwMEY1Q0Yz
NCAvKiBDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzICovOyB9OworCQlFOTJEMTEyODIwRjcwNjBFMDBE
Nzc2QjIgLyogQ2hlY2tSZXR1cm5zLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlCMjIwRjU2Q0Q2MDBGNUNGMzQgLyogQ2hlY2tSZXR1cm5z
LmpzICovOyB9OworCQlFOTJEMTEyOTIwRjcwNjBFMDBENzc2QjIgLyogQ2hlY2tVbnJlYWNoYWJs
ZUNvZGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU5NTU2OUI3MjBGNTZDRDYwMEY1Q0YzNCAvKiBDaGVja1VucmVhY2hhYmxlQ29kZS5qcyAqLzsg
fTsKKwkJRTkyRDExMkEyMEY3MDYwRTAwRDc3NkIyIC8qIENoZWNrV3JhcHBlZC5qcyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5RDQyMEY1NkNF
RDAwRjVDRjM0IC8qIENoZWNrV3JhcHBlZC5qcyAqLzsgfTsKKwkJRTkyRDExMkIyMEY3MDYwRTAw
RDc3NkIyIC8qIENsb25lUHJvZ3JhbS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5REIyMEY1NkNFRTAwRjVDRjM0IC8qIENsb25lUHJvZ3Jh
bS5qcyAqLzsgfTsKKwkJRTkyRDExMkMyMEY3MDYwRTAwRDc3NkIyIC8qIENvbW1hRXhwcmVzc2lv
bi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1
NTY5REMyMEY1NkNFRTAwRjVDRjM0IC8qIENvbW1hRXhwcmVzc2lvbi5qcyAqLzsgfTsKKwkJRTky
RDExMkUyMEY3MDYwRTAwRDc3NkIyIC8qIENvbnN0ZXhwckZvbGRlci5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5RDUyMEY1NkNFRDAwRjVD
RjM0IC8qIENvbnN0ZXhwckZvbGRlci5qcyAqLzsgfTsKKwkJRTkyRDExMzAyMEY3MDYwRTAwRDc3
NkIyIC8qIENvbnRpbnVlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOTU1NjlENzIwRjU2Q0VEMDBGNUNGMzQgLyogQ29udGludWUuanMgKi87IH07
CisJCUU5MkQxMTMxMjBGNzA2MEUwMEQ3NzZCMiAvKiBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJl
c3Npb24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU5NTU2OUQ5MjBGNTZDRUQwMEY1Q0YzNCAvKiBDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Np
b24uanMgKi87IH07CisJCUU5MkQxMTMyMjBGNzA2MEUwMEQ3NzZCMiAvKiBDcmVhdGVMaXRlcmFs
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1
NjlEODIwRjU2Q0VEMDBGNUNGMzQgLyogQ3JlYXRlTGl0ZXJhbC5qcyAqLzsgfTsKKwkJRTkyRDEx
MzMyMEY3MDYwRTAwRDc3NkIyIC8qIENyZWF0ZUxpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlENjIwRjU2Q0VEMDBGNUNG
MzQgLyogQ3JlYXRlTGl0ZXJhbFR5cGUuanMgKi87IH07CisJCUU5MkQxMTM0MjBGNzA2MEUwMEQ3
NzZCMiAvKiBEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NEMwNkY5MjBGNTZDQTMwMDY3Mjk5MiAvKiBEZXJl
ZmVyZW5jZUV4cHJlc3Npb24uanMgKi87IH07CisJCUU5MkQxMTM1MjBGNzA2MEUwMEQ3NzZCMiAv
KiBEb3RFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOUFEMDc0QjIwRjU2RDVCMDA3RjI0NjYgLyogRG90RXhwcmVzc2lvbi5qcyAq
LzsgfTsKKwkJRTkyRDExMzgyMEY3MDYwRTAwRDc3NkIyIC8qIERvV2hpbGVMb29wLmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUFEMDc0NjIwRjU2
RDVBMDA3RjI0NjYgLyogRG9XaGlsZUxvb3AuanMgKi87IH07CisJCUU5MkQxMTM5MjBGNzA2MEUw
MEQ3NzZCMiAvKiBFQXJyYXlSZWYuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5QUQwNzQ5MjBGNTZENUEwMDdGMjQ2NiAvKiBFQXJyYXlSZWYuanMg
Ki87IH07CisJCUU5MkQxMTNBMjBGNzA2MEUwMEQ3NzZCMiAvKiBFQnVmZmVyLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUFEMDc0ODIwRjU2RDVB
MDA3RjI0NjYgLyogRUJ1ZmZlci5qcyAqLzsgfTsKKwkJRTkyRDExM0IyMEY3MDYwRTAwRDc3NkIy
IC8qIEVCdWZmZXJCdWlsZGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOUFEMDc0QTIwRjU2RDVCMDA3RjI0NjYgLyogRUJ1ZmZlckJ1aWxkZXIu
anMgKi87IH07CisJCUU5MkQxMTNDMjBGNzA2MEUwMEQ3NzZCMiAvKiBFbnVtTGl0ZXJhbC5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk0QzA2RkQy
MEY1NkNBMzAwNjcyOTkyIC8qIEVudW1MaXRlcmFsLmpzICovOyB9OworCQlFOTJEMTEzRDIwRjcw
NjBFMDBENzc2QjIgLyogRW51bU1lbWJlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NTUyMEY1NkQ2OTAwN0YyNDY2IC8qIEVudW1NZW1i
ZXIuanMgKi87IH07CisJCUU5MkQxMTNFMjBGNzA2MEUwMEQ3NzZCMiAvKiBFbnVtVHlwZS5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NUEy
MEY1NkQ2OTAwN0YyNDY2IC8qIEVudW1UeXBlLmpzICovOyB9OworCQlFOTJEMTEzRjIwRjcwNjBF
MDBENzc2QjIgLyogRVB0ci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTk1NTY5RTcyMEY1NkQwNTAwRjVDRjM0IC8qIEVQdHIuanMgKi87IH07CisJ
CUU5MkQxMTQwMjBGNzA2MEUwMEQ3NzZCMiAvKiBFdmFsdWF0aW9uQ29tbW9uLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUFEMDc1MzIwRjU2RDY5
MDA3RjI0NjYgLyogRXZhbHVhdGlvbkNvbW1vbi5qcyAqLzsgfTsKKwkJRTkyRDExNDEyMEY3MDYw
RTAwRDc3NkIyIC8qIEV2YWx1YXRvci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NTcyMEY1NkQ2OTAwN0YyNDY2IC8qIEV2YWx1YXRvci5q
cyAqLzsgfTsKKwkJRTkyRDExNDIyMEY3MDYwRTAwRDc3NkIyIC8qIEV4cHJlc3Npb24uanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5QUQwNzU0MjBG
NTZENjkwMDdGMjQ2NiAvKiBFeHByZXNzaW9uLmpzICovOyB9OworCQlFOTJEMTE0MzIwRjcwNjBF
MDBENzc2QjIgLyogRXhwcmVzc2lvbkZpbmRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlBRDA3NTkyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4cHJl
c3Npb25GaW5kZXIuanMgKi87IH07CisJCUU5MkQxMTQ0MjBGNzA2MEUwMEQ3NzZCMiAvKiBFeHRl
cm5hbE9yaWdpbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTlBRDA3NUIyMEY1NkQ2OTAwN0YyNDY2IC8qIEV4dGVybmFsT3JpZ2luLmpzICovOyB9
OworCQlFOTJEMTE0NTIwRjcwNjBFMDBENzc2QjIgLyogRmllbGQuanMgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RkNFQjVCMjBGNTZEOTMwMDlCMzYy
OSAvKiBGaWVsZC5qcyAqLzsgfTsKKwkJRTkyRDExNDYyMEY3MDYwRTAwRDc3NkIyIC8qIEZpbmRI
aWdoWm9tYmllcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTlBRDA3NTgyMEY1NkQ2OTAwN0YyNDY2IC8qIEZpbmRIaWdoWm9tYmllcy5qcyAqLzsg
fTsKKwkJRTkyRDExNDcyMEY3MDYwRTAwRDc3NkIyIC8qIEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdh
dGhlcmVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFOUFEMDc1NjIwRjU2RDY5MDA3RjI0NjYgLyogRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVy
ZXIuanMgKi87IH07CisJCUU5MkQxMTQ5MjBGNzA2MEUwMEQ3NzZCMiAvKiBGbG9hdExpdGVyYWwu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5QUQw
NzVDMjBGNTZENjkwMDdGMjQ2NiAvKiBGbG9hdExpdGVyYWwuanMgKi87IH07CisJCUU5MkQxMTRB
MjBGNzA2MEUwMEQ3NzZCMiAvKiBGbG9hdExpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlFQTIwRjU2RDA1MDBGNUNGMzQg
LyogRmxvYXRMaXRlcmFsVHlwZS5qcyAqLzsgfTsKKwkJRTkyRDExNEIyMEY3MDYwRTAwRDc3NkIy
IC8qIEZvbGRDb25zdGV4cHJzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOTU1NjlFQjIwRjU2RDA1MDBGNUNGMzQgLyogRm9sZENvbnN0ZXhwcnMu
anMgKi87IH07CisJCUU5MkQxMTRDMjBGNzA2MEUwMEQ3NzZCMiAvKiBGb3JMb29wLmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI1QTIwRjU2
RDkzMDA5QjM2MjkgLyogRm9yTG9vcC5qcyAqLzsgfTsKKwkJRTkyRDExNEQyMEY3MDYwRTAwRDc3
NkIyIC8qIEZ1bmMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5RkNFQjU1MjBGNTZEOTIwMDlCMzYyOSAvKiBGdW5jLmpzICovOyB9OworCQlFOTJE
MTE0RTIwRjcwNjBFMDBENzc2QjIgLyogRnVuY0RlZi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTk1NTY5RTgyMEY1NkQwNTAwRjVDRjM0IC8qIEZ1
bmNEZWYuanMgKi87IH07CisJCUU5MkQxMTUwMjBGNzA2MEUwMEQ3NzZCMiAvKiBGdW5jUGFyYW1l
dGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTU1NjlFOTIwRjU2RDA1MDBGNUNGMzQgLyogRnVuY1BhcmFtZXRlci5qcyAqLzsgfTsKKwkJRTky
RDExNTEyMEY3MDYwRTAwRDc3NkIyIC8qIEZ1bmN0aW9uTGlrZUJsb2NrLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTU1NjlFNjIwRjU2RDA1MDBG
NUNGMzQgLyogRnVuY3Rpb25MaWtlQmxvY2suanMgKi87IH07CisJCUU5MkQxMTUyMjBGNzA2MEUw
MEQ3NzZCMiAvKiBIaWdoWm9tYmllRmluZGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTRDMDZGQjIwRjU2Q0EzMDA2NzI5OTIgLyogSGlnaFpv
bWJpZUZpbmRlci5qcyAqLzsgfTsKKwkJRTkyRDExNTMyMEY3MDYwRTAwRDc3NkIyIC8qIElkZW50
aXR5RXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTlGQ0VCNTgyMEY1NkQ5MzAwOUIzNjI5IC8qIElkZW50aXR5RXhwcmVzc2lvbi5q
cyAqLzsgfTsKKwkJRTkyRDExNTQyMEY3MDYwRTAwRDc3NkIyIC8qIElmU3RhdGVtZW50LmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI1NzIw
RjU2RDkzMDA5QjM2MjkgLyogSWZTdGF0ZW1lbnQuanMgKi87IH07CisJCUU5MkQxMTU1MjBGNzA2
MEUwMEQ3NzZCMiAvKiBJbmRleEV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RkNFQjYzMjBGNTZEQTQwMDlCMzYyOSAvKiBJbmRl
eEV4cHJlc3Npb24uanMgKi87IH07CisJCUU5MkQxMTU2MjBGNzA2MEUwMEQ3NzZCMiAvKiBJbmZl
clR5cGVzRm9yQ2FsbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTlGQ0VCNjUyMEY1NkRBNTAwOUIzNjI5IC8qIEluZmVyVHlwZXNGb3JDYWxsLmpz
ICovOyB9OworCQlFOTJEMTE1NzIwRjcwNjBFMDBENzc2QjIgLyogSW5saW5lLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI2NjIwRjU2REE1
MDA5QjM2MjkgLyogSW5saW5lLmpzICovOyB9OworCQlFOTJEMTE1ODIwRjcwNjBFMDBENzc2QjIg
LyogSW5saW5lci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTkyRDBGRTgyMEY1NkRERDAwRDc3NkIyIC8qIElubGluZXIuanMgKi87IH07CisJCUU5
MkQxMTVBMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFNDIwRjU2REREMDBENzc2QjIg
LyogSW50TGl0ZXJhbC5qcyAqLzsgfTsKKwkJRTkyRDExNUIyMEY3MDYwRTAwRDc3NkIyIC8qIElu
dExpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFOTJEMEZFNTIwRjU2REREMDBENzc2QjIgLyogSW50TGl0ZXJhbFR5cGUuanMgKi87
IH07CisJCUU5MkQxMTVDMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRyaW5zaWNzLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFNzIwRjU2RERE
MDBENzc2QjIgLyogSW50cmluc2ljcy5qcyAqLzsgfTsKKwkJRTkyRDExNUQyMEY3MDYwRTAwRDc3
NkIyIC8qIExhdGVDaGVja2VyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOUZDRUI2NDIwRjU2REE1MDA5QjM2MjkgLyogTGF0ZUNoZWNrZXIuanMg
Ki87IH07CisJCUU5MkQxMTVFMjBGNzA2MEUwMEQ3NzZCMiAvKiBMZXhlci5qcyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRjEyMEY1NkRFQzAw
RDc3NkIyIC8qIExleGVyLmpzICovOyB9OworCQlFOTJEMTE1RjIwRjcwNjBFMDBENzc2QjIgLyog
TGV4ZXJUb2tlbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTkyRDBGRjAyMEY1NkRFQjAwRDc3NkIyIC8qIExleGVyVG9rZW4uanMgKi87IH07CisJ
CUU5MkQxMTYwMjBGNzA2MEUwMEQ3NzZCMiAvKiBMaXRlcmFsVHlwZUNoZWNrZXIuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQwRkYyMjBGNTZE
RUMwMEQ3NzZCMiAvKiBMaXRlcmFsVHlwZUNoZWNrZXIuanMgKi87IH07CisJCUU5MkQxMTYxMjBG
NzA2MEUwMEQ3NzZCMiAvKiBMb2dpY2FsRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRUUyMEY1NkRFQjAwRDc3NkIyIC8q
IExvZ2ljYWxFeHByZXNzaW9uLmpzICovOyB9OworCQlFOTJEMTE2MjIwRjcwNjBFMDBENzc2QjIg
LyogTG9naWNhbE5vdC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTkyRDBGRUYyMEY1NkRFQjAwRDc3NkIyIC8qIExvZ2ljYWxOb3QuanMgKi87IH07
CisJCUU5MkQxMTYzMjBGNzA2MEUwMEQ3NzZCMiAvKiBMb29wQ2hlY2tlci5qcyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRkIyMEY1NkRGQjAw
RDc3NkIyIC8qIExvb3BDaGVja2VyLmpzICovOyB9OworCQlFOTJEMTE2NDIwRjcwNjBFMDBENzc2
QjIgLyogTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRkMyMEY1NkRGQjAwRDc3NkIyIC8qIE1ha2VB
cnJheVJlZkV4cHJlc3Npb24uanMgKi87IH07CisJCUU5MkQxMTY1MjBGNzA2MEUwMEQ3NzZCMiAv
KiBNYWtlUHRyRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTkyRDBGRjkyMEY1NkRGQTAwRDc3NkIyIC8qIE1ha2VQdHJFeHByZXNz
aW9uLmpzICovOyB9OworCQlFOTJEMTE2NjIwRjcwNjBFMDBENzc2QjIgLyogTmFtZUNvbnRleHQu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQw
RkY4MjBGNTZERkEwMEQ3NzZCMiAvKiBOYW1lQ29udGV4dC5qcyAqLzsgfTsKKwkJRTkyRDExNjcy
MEY3MDYwRTAwRDc3NkIyIC8qIE5hbWVGaW5kZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQwRkZBMjBGNTZERkIwMEQ3NzZCMiAvKiBOYW1l
RmluZGVyLmpzICovOyB9OworCQlFOTJEMTE2ODIwRjcwNjBFMDBENzc2QjIgLyogTmFtZVJlc29s
dmVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTJEMTAwMzIwRjU2RTA5MDBENzc2QjIgLyogTmFtZVJlc29sdmVyLmpzICovOyB9OworCQlFOTJE
MTE2OTIwRjcwNjBFMDBENzc2QjIgLyogTmF0aXZlRnVuYy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMDUyMEY1NkUwOTAwRDc3NkIyIC8q
IE5hdGl2ZUZ1bmMuanMgKi87IH07CisJCUU5MkQxMTZCMjBGNzA2MEUwMEQ3NzZCMiAvKiBOYXRp
dmVUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFOTJEMTAwNjIwRjU2RTA5MDBENzc2QjIgLyogTmF0aXZlVHlwZS5qcyAqLzsgfTsKKwkJRTky
RDExNkQyMEY3MDYwRTAwRDc3NkIyIC8qIE5vZGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDBGMjBGNTZFMTUwMEQ3NzZCMiAvKiBOb2Rl
LmpzICovOyB9OworCQlFOTJEMTE2RTIwRjcwNjBFMDBENzc2QjIgLyogTm9ybWFsVXNlUHJvcGVy
dHlSZXNvbHZlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTkyRDEwMEQyMEY1NkUxNTAwRDc3NkIyIC8qIE5vcm1hbFVzZVByb3BlcnR5UmVzb2x2
ZXIuanMgKi87IH07CisJCUU5MkQxMTZGMjBGNzA2MEUwMEQ3NzZCMiAvKiBOdWxsTGl0ZXJhbC5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEw
MEMyMEY1NkUxNTAwRDc3NkIyIC8qIE51bGxMaXRlcmFsLmpzICovOyB9OworCQlFOTJEMTE3MDIw
RjcwNjBFMDBENzc2QjIgLyogTnVsbFR5cGUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDEwMjBGNTZFMTUwMEQ3NzZCMiAvKiBOdWxsVHlw
ZS5qcyAqLzsgfTsKKwkJRTkyRDExNzEyMEY3MDYwRTAwRDc3NkIyIC8qIE9yaWdpbktpbmQuanMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDBF
MjBGNTZFMTUwMEQ3NzZCMiAvKiBPcmlnaW5LaW5kLmpzICovOyB9OworCQlFOTJEMTE3MjIwRjcw
NjBFMDBENzc2QjIgLyogT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMTkyMEY1NkUyMjAwRDc3
NkIyIC8qIE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMgKi87IH07CisJCUU5MkQxMTczMjBG
NzA2MEUwMEQ3NzZCMiAvKiBQYXJzZS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMTcyMEY1NkUyMjAwRDc3NkIyIC8qIFBhcnNlLmpzICov
OyB9OworCQlFOTJEMTE3NDIwRjcwNjBFMDBENzc2QjIgLyogUHJlcGFyZS5qcyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMTgyMEY1NkUyMjAw
RDc3NkIyIC8qIFByZXBhcmUuanMgKi87IH07CisJCUU5MkQxMTc1MjBGNzA2MEUwMEQ3NzZCMiAv
KiBQcm9ncmFtLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOTJEMTAxQTIwRjU2RTIyMDBENzc2QjIgLyogUHJvZ3JhbS5qcyAqLzsgfTsKKwkJRTky
RDExNzYyMEY3MDYwRTAwRDc3NkIyIC8qIFByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1v
dmVkLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTJEMTAxNjIwRjU2RTIxMDBENzc2QjIgLyogUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1Jl
bW92ZWQuanMgKi87IH07CisJCUU5MkQxMTc3MjBGNzA2MEUwMEQ3NzZCMiAvKiBQcm9wZXJ0eUFj
Y2Vzc0V4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU5MkQxMDIzMjBGNTZFMkYwMEQ3NzZCMiAvKiBQcm9wZXJ0eUFjY2Vzc0V4cHJl
c3Npb24uanMgKi87IH07CisJCUU5MkQxMTc4MjBGNzA2MEUwMEQ3NzZCMiAvKiBQcm9wZXJ0eVJl
c29sdmVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFOTJEMTAyMDIwRjU2RTJGMDBENzc2QjIgLyogUHJvcGVydHlSZXNvbHZlci5qcyAqLzsgfTsK
KwkJRTkyRDExN0QyMEY3MDYwRTAwRDc3NkIyIC8qIFB0clR5cGUuanMgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDJCMjBGNTZFM0YwMEQ3NzZC
MiAvKiBQdHJUeXBlLmpzICovOyB9OworCQlFOTJEMTE3RTIwRjcwNjBFMDBENzc2QjIgLyogUmVh
ZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMkEyMEY1NkUzRjAwRDc3NkIyIC8qIFJlYWRNb2RpZnlX
cml0ZUV4cHJlc3Npb24uanMgKi87IH07CisJCUU5MkQxMTdGMjBGNzA2MEUwMEQ3NzZCMiAvKiBS
ZWN1cnNpb25DaGVja2VyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOTJEMTAyQzIwRjU2RTNGMDBENzc2QjIgLyogUmVjdXJzaW9uQ2hlY2tlci5q
cyAqLzsgfTsKKwkJRTkyRDExODAyMEY3MDYwRTAwRDc3NkIyIC8qIFJlY3Vyc2l2ZVR5cGVDaGVj
a2VyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTJEMTAyRTIwRjU2RTQwMDBENzc2QjIgLyogUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMgKi87IH07
CisJCUU5MkQxMTgxMjBGNzA2MEUwMEQ3NzZCMiAvKiBSZWZlcmVuY2VUeXBlLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTAzNTIwRjU2RTRG
MDBENzc2QjIgLyogUmVmZXJlbmNlVHlwZS5qcyAqLzsgfTsKKwkJRTkyRDExODIyMEY3MDYwRTAw
RDc3NkIyIC8qIFJlc29sdmVOYW1lcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMzQyMEY1NkU0RjAwRDc3NkIyIC8qIFJlc29sdmVOYW1l
cy5qcyAqLzsgfTsKKwkJRTkyRDExODMyMEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVPdmVybG9h
ZEltcGwuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU5MkQxMDM4MjBGNTZFNEYwMEQ3NzZCMiAvKiBSZXNvbHZlT3ZlcmxvYWRJbXBsLmpzICovOyB9
OworCQlFOTJEMTE4NDIwRjcwNjBFMDBENzc2QjIgLyogUmVzb2x2ZVByb3BlcnRpZXMuanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDM2MjBG
NTZFNEYwMEQ3NzZCMiAvKiBSZXNvbHZlUHJvcGVydGllcy5qcyAqLzsgfTsKKwkJRTkyRDExODUy
MEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVUeXBlRGVmcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwMzcyMEY1NkU0RjAwRDc3NkIyIC8q
IFJlc29sdmVUeXBlRGVmcy5qcyAqLzsgfTsKKwkJRTkyRDExODYyMEY3MDYwRTAwRDc3NkIyIC8q
IFJldHVybi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTkyRDEwM0UyMEY1NkU2MTAwRDc3NkIyIC8qIFJldHVybi5qcyAqLzsgfTsKKwkJRTkyRDEx
ODcyMEY3MDYwRTAwRDc3NkIyIC8qIFJldHVybkNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDQwMjBGNTZFNjIwMEQ3NzZCMiAv
KiBSZXR1cm5DaGVja2VyLmpzICovOyB9OworCQlFOTJEMTE4ODIwRjcwNjBFMDBENzc2QjIgLyog
UmV0dXJuRXhjZXB0aW9uLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOTJEMTA0MjIwRjU2RTYyMDBENzc2QjIgLyogUmV0dXJuRXhjZXB0aW9uLmpz
ICovOyB9OworCQlFOTJEMTE4OTIwRjcwNjBFMDBENzc2QjIgLyogUmV3cml0ZXIuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDQxMjBGNTZF
NjIwMEQ3NzZCMiAvKiBSZXdyaXRlci5qcyAqLzsgfTsKKwkJRTkyRDExOEEyMEY3MDYwRTAwRDc3
NkIyIC8qIFN0YW5kYXJkTGlicmFyeS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwM0YyMEY1NkU2MjAwRDc3NkIyIC8qIFN0YW5kYXJkTGli
cmFyeS5qcyAqLzsgfTsKKwkJRTkyRDExOEIyMEY3MDYwRTAwRDc3NkIyIC8qIFN0YXRlbWVudENs
b25lci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTkyRDEwNDgyMEY1NkU3MzAwRDc3NkIyIC8qIFN0YXRlbWVudENsb25lci5qcyAqLzsgfTsKKwkJ
RTkyRDExOEMyMEY3MDYwRTAwRDc3NkIyIC8qIFN0cnVjdExheW91dEJ1aWxkZXIuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDQ5MjBGNTZF
NzMwMEQ3NzZCMiAvKiBTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzICovOyB9OworCQlFOTJEMTE4RDIw
RjcwNjBFMDBENzc2QjIgLyogU3RydWN0VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNEEyMEY1NkU3MzAwRDc3NkIyIC8qIFN0cnVj
dFR5cGUuanMgKi87IH07CisJCUU5MkQxMThGMjBGNzA2MEUwMEQ3NzZCMiAvKiBTd2l0Y2hDYXNl
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MTA0QjIwRjU2RTczMDBENzc2QjIgLyogU3dpdGNoQ2FzZS5qcyAqLzsgfTsKKwkJRTkyRDExOTAy
MEY3MDYwRTAwRDc3NkIyIC8qIFN3aXRjaFN0YXRlbWVudC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNTIyMEY1NkU4NDAwRDc3NkIyIC8q
IFN3aXRjaFN0YXRlbWVudC5qcyAqLzsgfTsKKwkJRTkyRDExOTEyMEY3MDYwRTAwRDc3NkIyIC8q
IFN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA1NDIwRjU2RTg1MDBENzc2QjIgLyogU3ludGhlc2l6
ZUVudW1GdW5jdGlvbnMuanMgKi87IH07CisJCUU5MkQxMTkyMjBGNzA2MEUwMEQ3NzZCMiAvKiBT
eW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA1MzIwRjU2RTg0MDBENzc2QjIgLyogU3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29ycy5qcyAqLzsgfTsKKwkJRTkyRDExOTMyMEY3MDYwRTAwRDc3NkIyIC8q
IFRyYXBTdGF0ZW1lbnQuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU5MkQxMDU2MjBGNTZFODUwMEQ3NzZCMiAvKiBUcmFwU3RhdGVtZW50LmpzICov
OyB9OworCQlFOTJEMTE5NDIwRjcwNjBFMDBENzc2QjIgLyogVHlwZS5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNTUyMEY1NkU4NTAwRDc3
NkIyIC8qIFR5cGUuanMgKi87IH07CisJCUU5MkQxMTk1MjBGNzA2MEUwMEQ3NzZCMiAvKiBUeXBl
RGVmLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTJEMTA1RjIwRjU2RTk1MDBENzc2QjIgLyogVHlwZURlZi5qcyAqLzsgfTsKKwkJRTkyRDExOTYy
MEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVEZWZSZXNvbHZlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNUUyMEY1NkU5NTAwRDc3NkIyIC8q
IFR5cGVEZWZSZXNvbHZlci5qcyAqLzsgfTsKKwkJRTkyRDExOTcyMEY3MDYwRTAwRDc3NkIyIC8q
IFR5cGVkVmFsdWUuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5MkQxMDYwMjBGNTZFOTUwMEQ3NzZCMiAvKiBUeXBlZFZhbHVlLmpzICovOyB9Owor
CQlFOTJEMTE5QTIwRjcwNjBFMDBENzc2QjIgLyogVHlwZVJlZi5qcyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwNjYyMEY1NkVBNDAwRDc3NkIy
IC8qIFR5cGVSZWYuanMgKi87IH07CisJCUU5MkQxMTlEMjBGNzA2MEUwMEQ3NzZCMiAvKiBVaW50
TGl0ZXJhbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTkyRDEwNjgyMEY1NkVBNDAwRDc3NkIyIC8qIFVpbnRMaXRlcmFsLmpzICovOyB9OworCQlF
OTJEMTE5RTIwRjcwNjBFMDBENzc2QjIgLyogVWludExpdGVyYWxUeXBlLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA2NzIwRjU2RUE0MDBE
Nzc2QjIgLyogVWludExpdGVyYWxUeXBlLmpzICovOyB9OworCQlFOTJEMTE5RjIwRjcwNjBFMDBE
Nzc2QjIgLyogVW5pZmljYXRpb25Db250ZXh0LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3MjIwRjU2RUJCMDBENzc2QjIgLyogVW5pZmlj
YXRpb25Db250ZXh0LmpzICovOyB9OworCQlFOTJEMTFBMDIwRjcwNjBFMDBENzc2QjIgLyogVW5y
ZWFjaGFibGVDb2RlQ2hlY2tlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTkyRDEwNzMyMEY1NkVCQzAwRDc3NkIyIC8qIFVucmVhY2hhYmxlQ29k
ZUNoZWNrZXIuanMgKi87IH07CisJCUU5MkQxMUExMjBGNzA2MEUwMEQ3NzZCMiAvKiBWYWx1ZS5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEw
NzQyMEY1NkVCQzAwRDc3NkIyIC8qIFZhbHVlLmpzICovOyB9OworCQlFOTJEMTFBMjIwRjcwNjBF
MDBENzc2QjIgLyogVmFyaWFibGVEZWNsLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3MDIwRjU2RUJCMDBENzc2QjIgLyogVmFyaWFibGVE
ZWNsLmpzICovOyB9OworCQlFOTJEMTFBMzIwRjcwNjBFMDBENzc2QjIgLyogVmFyaWFibGVSZWYu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQx
MDcxMjBGNTZFQkIwMEQ3NzZCMiAvKiBWYXJpYWJsZVJlZi5qcyAqLzsgfTsKKwkJRTkyRDExQTQy
MEY3MDYwRTAwRDc3NkIyIC8qIFZpc2l0aW5nU2V0LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3QzIwRjU2RUNGMDBENzc2QjIgLyogVmlz
aXRpbmdTZXQuanMgKi87IH07CisJCUU5MkQxMUE1MjBGNzA2MEUwMEQ3NzZCMiAvKiBWaXNpdG9y
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MTA3QTIwRjU2RUNGMDBENzc2QjIgLyogVmlzaXRvci5qcyAqLzsgfTsKKwkJRTkyRDExQTYyMEY3
MDYwRTAwRDc3NkIyIC8qIFdoaWxlTG9vcC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDEwN0QyMEY1NkVDRjAwRDc3NkIyIC8qIFdoaWxlTG9v
cC5qcyAqLzsgfTsKKwkJRTkyRDExQTcyMEY3MDYwRTAwRDc3NkIyIC8qIFdyYXBDaGVja2VyLmpz
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMTA3
QjIwRjU2RUNGMDBENzc2QjIgLyogV3JhcENoZWNrZXIuanMgKi87IH07CisJCUU5MkQxMUE4MjBG
NzA2MEUwMEQ3NzZCMiAvKiBXU3ludGF4RXJyb3IuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDgyMjBGNTZFREUwMEQ3NzZCMiAvKiBXU3lu
dGF4RXJyb3IuanMgKi87IH07CisJCUU5MkQxMUE5MjBGNzA2MEUwMEQ3NzZCMiAvKiBXVHJhcEVy
cm9yLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
OTJEMTA4NDIwRjU2RURFMDBENzc2QjIgLyogV1RyYXBFcnJvci5qcyAqLzsgfTsKKwkJRTkyRDEx
QUEyMEY3MDYwRTAwRDc3NkIyIC8qIFdUeXBlRXJyb3IuanMgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQxMDgzMjBGNTZFREUwMEQ3NzZCMiAvKiBX
VHlwZUVycm9yLmpzICovOyB9OworCQlFOTJEMTFBRDIwRjcwODE1MDBENzc2QjIgLyogT2Zmc2Ny
ZWVuUmVuZGVyZXIubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5MkQxMUFDMjBGNzA4MTUwMEQ3NzZCMiAvKiBPZmZzY3JlZW5SZW5kZXJlci5tICovOyB9
OworCQlFOTJEMTFCQjIwRjdGNjczMDBENzc2QjIgLyogQ29tcGlsZVJlc3VsdC5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDExQkEyMEY3RjY3MzAw
RDc3NkIyIC8qIENvbXBpbGVSZXN1bHQubSAqLzsgfTsKKwkJRTkyRURGRkIyMTE1NDZBNDAwNDJG
OTYwIC8qIEN1c3RvbU1ldGFsVmlldy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTkyRURGRjYyMTE1NDZBNDAwNDJGOTYwIC8qIEN1c3RvbU1ldGFsVmll
dy5tICovOyB9OworCQlFOTJFREZGQzIxMTU0NkE0MDA0MkY5NjAgLyogQXBwRGVsZWdhdGUubSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkVERkY3MjEx
NTQ2QTQwMDQyRjk2MCAvKiBBcHBEZWxlZ2F0ZS5tICovOyB9OworCQlFOTJFREZGRDIxMTU0NkE0
MDA0MkY5NjAgLyogVmlld0NvbnRyb2xsZXIubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkVERkZBMjExNTQ2QTQwMDQyRjk2MCAvKiBWaWV3Q29udHJv
bGxlci5tICovOyB9OworCQlFOTJFRTAwMDIxMTU0NkFCMDA0MkY5NjAgLyogTWFpbi5zdG9yeWJv
YXJkIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJF
REZGRTIxMTU0NkFCMDA0MkY5NjAgLyogTWFpbi5zdG9yeWJvYXJkICovOyB9OworCQlFOTJFRTAw
NDIxMTU0OUM1MDA0MkY5NjAgLyogVGVzdENhbGxBcmd1bWVudC5tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRUUwMDMyMTE1NDlDNTAwNDJGOTYwIC8q
IFRlc3RDYWxsQXJndW1lbnQubSAqLzsgfTsKKwkJRTkyRUUwMDcyMTE1NEFDNDAwNDJGOTYwIC8q
IFRlc3RGYW1pbHkubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU5MkVFMDA2MjExNTRBQzQwMDQyRjk2MCAvKiBUZXN0RmFtaWx5Lm0gKi87IH07CisJCUU5
MkVFMDBBMjExNTRCNUEwMDQyRjk2MCAvKiBUZXN0RGVzY3JpcHRpb24ubSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkVFMDA5MjExNTRCNUEwMDQyRjk2
MCAvKiBUZXN0RGVzY3JpcHRpb24ubSAqLzsgfTsKKwkJRTkyRUUwMEMyMTE1NTQ5ODAwNDJGOTYw
IC8qIF9TaGFyZWRNZXRhbC50eHQgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5MkVFMDBCMjExNTU0OTgwMDQyRjk2MCAvKiBfU2hhcmVkTWV0YWwudHh0
ICovOyB9OworCQlFOTJFRTAwRjIxMTU2MzMwMDA0MkY5NjAgLyogVGVzdEZhbWlseVJ1bm5lci5t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRUUwMEUy
MTE1NjMzMDAwNDJGOTYwIC8qIFRlc3RGYW1pbHlSdW5uZXIubSAqLzsgfTsKKwkJRTk0MUFDQkYy
MTM0QTVCQzAwMzkyQkE5IC8qIENoZWNrVHlwZXNXaXRoQXJndW1lbnRzLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNBRTIxMzRBNUJBMDAz
OTJCQTkgLyogQ2hlY2tUeXBlc1dpdGhBcmd1bWVudHMuanMgKi87IH07CisJCUU5NDFBQ0MwMjEz
NEE1QkMwMDM5MkJBOSAvKiBTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NDFBQ0FGMjEz
NEE1QkEwMDM5MkJBOSAvKiBTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMgKi87
IH07CisJCUU5NDFBQ0M0MjEzNEE1QkMwMDM5MkJBOSAvKiBTeW50aGVzaXplRGVmYXVsdENvbnN0
cnVjdG9yT3BlcmF0b3IuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU5NDFBQ0IzMjEzNEE1QkIwMDM5MkJBOSAvKiBTeW50aGVzaXplRGVmYXVsdENv
bnN0cnVjdG9yT3BlcmF0b3IuanMgKi87IH07CisJCUU5NDFBQ0M2MjEzNEE1QkMwMDM5MkJBOSAv
KiBUZXJuYXJ5RXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTk0MUFDQjUyMTM0QTVCQjAwMzkyQkE5IC8qIFRlcm5hcnlFeHByZXNz
aW9uLmpzICovOyB9OworCQlFOTQxQUNDNzIxMzRBNUJDMDAzOTJCQTkgLyogT3BlcmF0b3JBcnJh
eVJlZkxlbmd0aC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTk0MUFDQjYyMTM0QTVCQjAwMzkyQkE5IC8qIE9wZXJhdG9yQXJyYXlSZWZMZW5ndGgu
anMgKi87IH07CisJCUU5NDFBQ0M4MjEzNEE1QkMwMDM5MkJBOSAvKiBTeW50aGVzaXplQXJyYXlP
cGVyYXRvckxlbmd0aC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk0MUFDQjcyMTM0QTVCQjAwMzkyQkE5IC8qIFN5bnRoZXNpemVBcnJheU9wZXJh
dG9yTGVuZ3RoLmpzICovOyB9OworCQlFOTQxQUNDQTIxMzRBNUJDMDAzOTJCQTkgLyogQnVpbHRp
blZlY3RvckdldHRlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk0MUFDQjkyMTM0QTVCQjAwMzkyQkE5IC8qIEJ1aWx0aW5WZWN0b3JHZXR0ZXIu
anMgKi87IH07CisJCUU5NDFBQ0NCMjEzNEE1QkMwMDM5MkJBOSAvKiBUeXBlT3ZlcmxvYWRSZXNv
bHV0aW9uRmFpbHVyZS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk0MUFDQkEyMTM0QTVCQjAwMzkyQkE5IC8qIFR5cGVPdmVybG9hZFJlc29sdXRp
b25GYWlsdXJlLmpzICovOyB9OworCQlFOTQxQUNDQzIxMzRBNUJDMDAzOTJCQTkgLyogVmVjdG9y
VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTk0MUFDQkIyMTM0QTVCQjAwMzkyQkE5IC8qIFZlY3RvclR5cGUuanMgKi87IH07CisJCUU5NDFB
Q0NEMjEzNEE1QkMwMDM5MkJBOSAvKiBCdWlsdGluVmVjdG9yU2V0dGVyLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTQxQUNCQzIxMzRBNUJCMDAz
OTJCQTkgLyogQnVpbHRpblZlY3RvclNldHRlci5qcyAqLzsgfTsKKwkJRTk0QzA2Q0EyMEY1NkE0
MjAwNjcyOTkyIC8qIEFzc2V0cy54Y2Fzc2V0cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTk0QzA2QzkyMEY1NkE0MjAwNjcyOTkyIC8qIEFzc2V0cy54
Y2Fzc2V0cyAqLzsgfTsKKwkJRTk0QzA2RDAyMEY1NkE0MjAwNjcyOTkyIC8qIG1haW4ubSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5NEMwNkNGMjBGNTZB
NDIwMDY3Mjk5MiAvKiBtYWluLm0gKi87IH07CisJCUU5NEMwNkRCMjBGNTZBNDIwMDY3Mjk5MiAv
KiBXSExTTF9Ub3lUZXN0cy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk0QzA2REEyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNMX1RveVRlc3RzLm0gKi87
IH07CisJCUU5NEQxMjRGMjExNEJENzYwMEIwRjk2NyAvKiBNYW5kZWxicm90LndobHNsIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTREMTI0RTIxMTRC
RDc2MDBCMEY5NjcgLyogTWFuZGVsYnJvdC53aGxzbCAqLzsgfTsKKwkJRTk0RDEyN0YyMTE0QzZG
RjAwQjBGOTY3IC8qIFRlc3QuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5NEQxMjdFMjExNEM2RkYwMEIwRjk2NyAvKiBUZXN0LmpzICovOyB9Owor
CQlFOTczRTVDRTIxM0YzMzg1MDA1RDc5RkMgLyogTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRp
b24uanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
NzNFNUM3MjEzRjMzODUwMDVENzlGQyAvKiBNU0xGdW5jdGlvbkZvcndhcmREZWNsYXJhdGlvbi5q
cyAqLzsgfTsKKwkJRTk3M0U1Q0YyMTNGMzM4NTAwNUQ3OUZDIC8qIE1TTFN0YXRlbWVudEVtaXR0
ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
NzNFNUM4MjEzRjMzODUwMDVENzlGQyAvKiBNU0xTdGF0ZW1lbnRFbWl0dGVyLmpzICovOyB9Owor
CQlFOTczRTVERTIxM0YzNDFEMDA1RDc5RkMgLyogTVNMRnVuY3Rpb25EZWNsYXJhdGlvbi5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyNzg5QUMy
MTNGMzM2NDAwMUVBNzNFIC8qIE1TTEZ1bmN0aW9uRGVjbGFyYXRpb24uanMgKi87IH07CisJCUU5
NzNFNURGMjEzRjM0MUQwMDVENzlGQyAvKiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5Mjc4OUFCMjEzRjMz
NjQwMDFFQTczRSAvKiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgKi87IH07CisJCUU5NzNFNUUz
MjEzRjM0MUQwMDVENzlGQyAvKiBUeXBlT2YuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5Mjc4OUIwMjEzRjMzNjQwMDFFQTczRSAvKiBUeXBlT2Yu
anMgKi87IH07CisJCUU5QkM1MERBMjE1NUFEMUUwMDA1OTRFOCAvKiBBbGxvY2F0ZUF0RW50cnlQ
b2ludHMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU5QkM1MEQ5MjE1NUFEMUUwMDA1OTRFOCAvKiBBbGxvY2F0ZUF0RW50cnlQb2ludHMuanMgKi87
IH07CisJCUU5RDdDQjk3MjE0QjgyNDIwMEYxQzkxOCAvKiBXaGxzbFRvTXNsLmpzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUQ3Q0I5NDIxNEI4MjQy
MDBGMUM5MTggLyogV2hsc2xUb01zbC5qcyAqLzsgfTsKKwkJRTlEN0NCOTgyMTRCODI0MjAwRjFD
OTE4IC8qIE1TTEJhY2tlbmQuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5RDdDQjk1MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xCYWNrZW5kLmpzICov
OyB9OworCQlFOUQ3Q0I5OTIxNEI4MjQyMDBGMUM5MTggLyogTVNMQ29uc3RleHByRW1pdHRlci5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NC
OTYyMTRCODI0MjAwRjFDOTE4IC8qIE1TTENvbnN0ZXhwckVtaXR0ZXIuanMgKi87IH07CisJCUU5
RDdDQkEwMjE0QjgyQjgwMEYxQzkxOCAvKiBUZXh0dXJlLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUQ3Q0I5QTIxNEI4MkI3MDBGMUM5MTggLyog
VGV4dHVyZS5qcyAqLzsgfTsKKwkJRTlEN0NCQTEyMTRCODJCODAwRjFDOTE4IC8qIExhdGVDaGVj
a0FuZExheW91dEJ1ZmZlcnMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU5RDdDQjlCMjE0QjgyQjcwMEYxQzkxOCAvKiBMYXRlQ2hlY2tBbmRMYXlv
dXRCdWZmZXJzLmpzICovOyB9OworCQlFOUQ3Q0JBMjIxNEI4MkI4MDBGMUM5MTggLyogQ2FzdHMu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RDdD
QjlDMjE0QjgyQjcwMEYxQzkxOCAvKiBDYXN0cy5qcyAqLzsgfTsKKwkJRTlEN0NCQTMyMTRCODJC
ODAwRjFDOTE4IC8qIFNhbXBsZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5RDdDQjlEMjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzICov
OyB9OworCQlFOUQ3Q0JBNDIxNEI4MkI4MDBGMUM5MTggLyogVGV4dHVyZU9wZXJhdGlvbnMuanMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RDdDQjlF
MjE0QjgyQjgwMEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyAqLzsgfTsKKwkJRTlEN0NC
QTUyMTRCODJCODAwRjFDOTE4IC8qIFdMZXhpY2FsRXJyb3IuanMgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RDdDQjlGMjE0QjgyQjgwMEYxQzkxOCAv
KiBXTGV4aWNhbEVycm9yLmpzICovOyB9OworCQlFOUQ3Q0JBNjIxNEI5RTVGMDBGMUM5MTggLyog
TVNMQ29kZWdlbkFsbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTk3RUQ3RTUyMTRCODIyOTAwQUQxMTQwIC8qIE1TTENvZGVnZW5BbGwuanMgKi87
IH07CisJCUU5RDdDQkE3MjE0QjlFNUYwMEYxQzkxOCAvKiBNU0xDb21waWxlUmVzdWx0LmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTdFRDdFODIx
NEI4MjI5MDBBRDExNDAgLyogTVNMQ29tcGlsZVJlc3VsdC5qcyAqLzsgfTsKKwkJRTlEN0NCQTgy
MTRCOUU1RjAwRjFDOTE4IC8qIE1TTE5hbWVNYW5nbGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTdFRDdFMTIxNEI4MjI5MDBBRDExNDAgLyog
TVNMTmFtZU1hbmdsZXIuanMgKi87IH07CisJCUU5RDdDQkE5MjE0QjlFNUYwMEYxQzkxOCAvKiBN
U0xOYXRpdmVGdW5jdGlvbkNhbGwuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5N0VEN0U0MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xOYXRpdmVGdW5j
dGlvbkNhbGwuanMgKi87IH07CisJCUU5RDdDQkFBMjE0QjlFNUYwMEYxQzkxOCAvKiBNU0xUeXBl
QXR0cmlidXRlcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTk3RUQ3RTcyMTRCODIyOTAwQUQxMTQwIC8qIE1TTFR5cGVBdHRyaWJ1dGVzLmpzICov
OyB9OworCQlFOUQ3Q0JBQjIxNEI5RTVGMDBGMUM5MTggLyogTVNMVHlwZUF0dHJpYnV0ZXNNYXAu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5N0VE
N0UyMjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xUeXBlQXR0cmlidXRlc01hcC5qcyAqLzsgfTsKKwkJ
RTlEN0NCQUMyMTRCOUU1RjAwRjFDOTE4IC8qIE1TTFR5cGVVbmlmaWVyLmpzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTdFRDdFNjIxNEI4MjI5MDBB
RDExNDAgLyogTVNMVHlwZVVuaWZpZXIuanMgKi87IH07CisJCUU5RUZDRkUwMjE1QUE2Q0MwMDVE
Mzk3RSAvKiBNU0xJbnNlcnRUcmFwUGFyYW1ldGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUVGQ0ZERjIxNUFBNkNCMDA1RDM5N0UgLyogTVNM
SW5zZXJ0VHJhcFBhcmFtZXRlci5qcyAqLzsgfTsKKwkJRTlFRkNGRTQyMTVBQTZFNjAwNUQzOTdF
IC8qIEZ1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUVGQ0ZFMTIxNUFBNkU1MDA1RDM5N0UgLyogRnVuY051
bVRocmVhZHNBdHRyaWJ1dGUuanMgKi87IH07CisJCUU5RUZDRkU1MjE1QUE2RTYwMDVEMzk3RSAv
KiBGdW5jQXR0cmlidXRlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFOUVGQ0ZFMjIxNUFBNkU2MDA1RDM5N0UgLyogRnVuY0F0dHJpYnV0ZS5qcyAq
LzsgfTsKKwkJRTlFRkNGRTYyMTVBQTZFNjAwNUQzOTdFIC8qIENoZWNrTmF0aXZlRnVuY1N0YWdl
cy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlF
RkNGRTMyMTVBQTZFNjAwNUQzOTdFIC8qIENoZWNrTmF0aXZlRnVuY1N0YWdlcy5qcyAqLzsgfTsK
KwkJRTlFRkNGRUMyMTVBQjRGRDAwNUQzOTdFIC8qIFNlbWFudGljLmpzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUVGQ0ZFNzIxNUFCNEZDMDA1RDM5
N0UgLyogU2VtYW50aWMuanMgKi87IH07CisJCUU5RUZDRkVEMjE1QUI0RkQwMDVEMzk3RSAvKiBT
cGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RUZDRkU4MjE1QUI0RkMwMDVEMzk3RSAvKiBTcGVj
aWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuanMgKi87IH07CisJCUU5RUZDRkVFMjE1QUI0RkQw
MDVEMzk3RSAvKiBCdWlsdEluU2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RUZDRkU5MjE1QUI0RkMwMDVEMzk3RSAvKiBCdWlsdElu
U2VtYW50aWMuanMgKi87IH07CisJCUU5RUZDRkVGMjE1QUI0RkQwMDVEMzk3RSAvKiBSZXNvdXJj
ZVNlbWFudGljLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFOUVGQ0ZFQTIxNUFCNEZDMDA1RDM5N0UgLyogUmVzb3VyY2VTZW1hbnRpYy5qcyAqLzsg
fTsKKwkJRTlFRkNGRjAyMTVBQjRGRDAwNUQzOTdFIC8qIFN0YWdlSW5PdXRTZW1hbnRpYy5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlFRkNGRUIy
MTVBQjRGRDAwNUQzOTdFIC8qIFN0YWdlSW5PdXRTZW1hbnRpYy5qcyAqLzsgfTsKKwkJRTlFRkNG
RjIyMTVBRDYyMzAwNUQzOTdFIC8qIEdhdGhlckVudHJ5UG9pbnRzLmpzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUVGQ0ZGMTIxNUFENjIyMDA1RDM5
N0UgLyogR2F0aGVyRW50cnlQb2ludHMuanMgKi87IH07CisvKiBFbmQgUEJYQnVpbGRGaWxlIHNl
Y3Rpb24gKi8KKworLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KKwkJ
RTk0QzA2RDcyMEY1NkE0MjAwNjcyOTkyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsK
KwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IEU5
NEMwNkI4MjBGNTZBNDAwMDY3Mjk5MiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlw
ZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEU5NEMwNkJGMjBGNTZBNDAwMDY3Mjk5
MjsKKwkJCXJlbW90ZUluZm8gPSAiV0hMU0wgVG95IjsKKwkJfTsKKy8qIEVuZCBQQlhDb250YWlu
ZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKwkJRTkwNkIwNDUyMTEzOUI3NzAwQUQxQzVFIC8qIEp1bGlhLndobHNsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEp1bGlhLndobHNsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFOTIxRDYzMjIxMzhDMDI2MDA3NzUwOTkgLyogT3BlcmF0b3JBbmRlckluZGV4ZXIuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBPcGVyYXRvckFuZGVySW5kZXhl
ci5qczsgcGF0aCA9IC4uLy4uLy4uL09wZXJhdG9yQW5kZXJJbmRleGVyLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTIxRDYzMzIxMzhDMDI2MDA3NzUwOTkgLyogTWF0cml4VHlw
ZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1hdHJpeFR5cGUu
anM7IHBhdGggPSAuLi8uLi8uLi9NYXRyaXhUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTIxRDYzNDIxMzhDMDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeEdldHRlci5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEJ1aWx0aW5NYXRyaXhH
ZXR0ZXIuanM7IHBhdGggPSAuLi8uLi8uLi9CdWlsdGluTWF0cml4R2V0dGVyLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTIxRDYzNTIxMzhDMDI2MDA3NzUwOTkgLyogQnVpbHRp
bk1hdHJpeFNldHRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IEJ1aWx0aW5NYXRyaXhTZXR0ZXIuanM7IHBhdGggPSAuLi8uLi8uLi9CdWlsdGluTWF0cml4U2V0
dGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTI3ODlBQjIxM0YzMzY0MDAx
RUE3M0UgLyogTVNMRnVuY3Rpb25EZWZpbml0aW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0g
TVNMRnVuY3Rpb25EZWZpbml0aW9uLmpzOyBwYXRoID0gLi4vLi4vTVNMRnVuY3Rpb25EZWZpbml0
aW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTI3ODlBQzIxM0YzMzY0MDAx
RUE3M0UgLyogTVNMRnVuY3Rpb25EZWNsYXJhdGlvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IE1TTEZ1bmN0aW9uRGVjbGFyYXRpb24uanM7IHBhdGggPSAuLi8uLi9NU0xGdW5jdGlvbkRlY2xh
cmF0aW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTI3ODlCMDIxM0YzMzY0
MDAxRUE3M0UgLyogVHlwZU9mLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHlwZU9mLmpzOyBw
YXRoID0gLi4vLi4vVHlwZU9mLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJE
MEZFNDIwRjU2REREMDBENzc2QjIgLyogSW50TGl0ZXJhbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEludExpdGVyYWwuanM7IHBhdGggPSAuLi8uLi8uLi9JbnRM
aXRlcmFsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZFNTIwRjU2RERE
MDBENzc2QjIgLyogSW50TGl0ZXJhbFR5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBJbnRMaXRlcmFsVHlwZS5qczsgcGF0aCA9IC4uLy4uLy4uL0ludExpdGVy
YWxUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZFNzIwRjU2RERE
MDBENzc2QjIgLyogSW50cmluc2ljcy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IEludHJpbnNpY3MuanM7IHBhdGggPSAuLi8uLi8uLi9JbnRyaW5zaWNzLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZFODIwRjU2REREMDBENzc2QjIgLyog
SW5saW5lci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IElubGlu
ZXIuanM7IHBhdGggPSAuLi8uLi8uLi9JbmxpbmVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMEZFRTIwRjU2REVCMDBENzc2QjIgLyogTG9naWNhbEV4cHJlc3Npb24uanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBMb2dpY2FsRXhwcmVzc2lv
bi5qczsgcGF0aCA9IC4uLy4uLy4uL0xvZ2ljYWxFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOTJEMEZFRjIwRjU2REVCMDBENzc2QjIgLyogTG9naWNhbE5vdC5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IExvZ2ljYWxOb3QuanM7
IHBhdGggPSAuLi8uLi8uLi9Mb2dpY2FsTm90LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTJEMEZGMDIwRjU2REVCMDBENzc2QjIgLyogTGV4ZXJUb2tlbi5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IExleGVyVG9rZW4uanM7IHBhdGggPSAuLi8u
Li8uLi9MZXhlclRva2VuLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZG
MTIwRjU2REVDMDBENzc2QjIgLyogTGV4ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBMZXhlci5qczsgcGF0aCA9IC4uLy4uLy4uL0xleGVyLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZGMjIwRjU2REVDMDBENzc2QjIgLyogTGl0ZXJh
bFR5cGVDaGVja2VyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0g
TGl0ZXJhbFR5cGVDaGVja2VyLmpzOyBwYXRoID0gLi4vLi4vLi4vTGl0ZXJhbFR5cGVDaGVja2Vy
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZGODIwRjU2REZBMDBENzc2
QjIgLyogTmFtZUNvbnRleHQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5h
bWUgPSBOYW1lQ29udGV4dC5qczsgcGF0aCA9IC4uLy4uLy4uL05hbWVDb250ZXh0LmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZGOTIwRjU2REZBMDBENzc2QjIgLyogTWFr
ZVB0ckV4cHJlc3Npb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBNYWtlUHRyRXhwcmVzc2lvbi5qczsgcGF0aCA9IC4uLy4uLy4uL01ha2VQdHJFeHByZXNzaW9u
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZGQTIwRjU2REZCMDBENzc2
QjIgLyogTmFtZUZpbmRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFt
ZSA9IE5hbWVGaW5kZXIuanM7IHBhdGggPSAuLi8uLi8uLi9OYW1lRmluZGVyLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMEZGQjIwRjU2REZCMDBENzc2QjIgLyogTG9vcENo
ZWNrZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBMb29wQ2hl
Y2tlci5qczsgcGF0aCA9IC4uLy4uLy4uL0xvb3BDaGVja2VyLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJEMEZGQzIwRjU2REZCMDBENzc2QjIgLyogTWFrZUFycmF5UmVmRXhw
cmVzc2lvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1ha2VB
cnJheVJlZkV4cHJlc3Npb24uanM7IHBhdGggPSAuLi8uLi8uLi9NYWtlQXJyYXlSZWZFeHByZXNz
aW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAwMzIwRjU2RTA5MDBE
Nzc2QjIgLyogTmFtZVJlc29sdmVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gTmFtZVJlc29sdmVyLmpzOyBwYXRoID0gLi4vLi4vLi4vTmFtZVJlc29sdmVyLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAwNTIwRjU2RTA5MDBENzc2QjIg
LyogTmF0aXZlRnVuYy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IE5hdGl2ZUZ1bmMuanM7IHBhdGggPSAuLi8uLi8uLi9OYXRpdmVGdW5jLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAwNjIwRjU2RTA5MDBENzc2QjIgLyogTmF0aXZlVHlw
ZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE5hdGl2ZVR5cGUu
anM7IHBhdGggPSAuLi8uLi8uLi9OYXRpdmVUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMTAwQzIwRjU2RTE1MDBENzc2QjIgLyogTnVsbExpdGVyYWwuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBOdWxsTGl0ZXJhbC5qczsgcGF0aCA9
IC4uLy4uLy4uL051bGxMaXRlcmFsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OTJEMTAwRDIwRjU2RTE1MDBENzc2QjIgLyogTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE5vcm1hbFVzZVByb3BlcnR5
UmVzb2x2ZXIuanM7IHBhdGggPSAuLi8uLi8uLi9Ob3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAwRTIwRjU2RTE1MDBENzc2QjIg
LyogT3JpZ2luS2luZC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IE9yaWdpbktpbmQuanM7IHBhdGggPSAuLi8uLi8uLi9PcmlnaW5LaW5kLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAwRjIwRjU2RTE1MDBENzc2QjIgLyogTm9kZS5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE5vZGUuanM7IHBhdGggPSAu
Li8uLi8uLi9Ob2RlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAxMDIw
RjU2RTE1MDBENzc2QjIgLyogTnVsbFR5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBOdWxsVHlwZS5qczsgcGF0aCA9IC4uLy4uLy4uL051bGxUeXBlLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAxNjIwRjU2RTIxMDBENzc2QjIgLyog
UHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3Zl
ZC5qczsgcGF0aCA9IC4uLy4uLy4uL1Byb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVk
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAxNzIwRjU2RTIyMDBENzc2
QjIgLyogUGFyc2UuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBQ
YXJzZS5qczsgcGF0aCA9IC4uLy4uLy4uL1BhcnNlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMTAxODIwRjU2RTIyMDBENzc2QjIgLyogUHJlcGFyZS5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFByZXBhcmUuanM7IHBhdGggPSAuLi8uLi8u
Li9QcmVwYXJlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAxOTIwRjU2
RTIyMDBENzc2QjIgLyogT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanM7
IHBhdGggPSAuLi8uLi8uLi9PdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAxQTIwRjU2RTIyMDBENzc2QjIgLyogUHJvZ3JhbS5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFByb2dyYW0uanM7IHBh
dGggPSAuLi8uLi8uLi9Qcm9ncmFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OTJEMTAyMDIwRjU2RTJGMDBENzc2QjIgLyogUHJvcGVydHlSZXNvbHZlci5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFByb3BlcnR5UmVzb2x2ZXIuanM7IHBhdGgg
PSAuLi8uLi8uLi9Qcm9wZXJ0eVJlc29sdmVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTJEMTAyMzIwRjU2RTJGMDBENzc2QjIgLyogUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9u
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUHJvcGVydHlBY2Nl
c3NFeHByZXNzaW9uLmpzOyBwYXRoID0gLi4vLi4vLi4vUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9u
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAyQTIwRjU2RTNGMDBENzc2
QjIgLyogUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IFJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanM7IHBhdGggPSAu
Li8uLi8uLi9SZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJEMTAyQjIwRjU2RTNGMDBENzc2QjIgLyogUHRyVHlwZS5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFB0clR5cGUuanM7IHBhdGggPSAuLi8u
Li8uLi9QdHJUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAyQzIw
RjU2RTNGMDBENzc2QjIgLyogUmVjdXJzaW9uQ2hlY2tlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlY3Vyc2lvbkNoZWNrZXIuanM7IHBhdGggPSAuLi8uLi8u
Li9SZWN1cnNpb25DaGVja2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJE
MTAyRTIwRjU2RTQwMDBENzc2QjIgLyogUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBSZWN1cnNpdmVUeXBlQ2hlY2tlci5qczsg
cGF0aCA9IC4uLy4uLy4uL1JlY3Vyc2l2ZVR5cGVDaGVja2VyLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJEMTAzNDIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZU5hbWVzLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmVzb2x2ZU5hbWVzLmpz
OyBwYXRoID0gLi4vLi4vLi4vUmVzb2x2ZU5hbWVzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMTAzNTIwRjU2RTRGMDBENzc2QjIgLyogUmVmZXJlbmNlVHlwZS5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlZmVyZW5jZVR5cGUuanM7IHBh
dGggPSAuLi8uLi8uLi9SZWZlcmVuY2VUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTJEMTAzNjIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZVByb3BlcnRpZXMuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBSZXNvbHZlUHJvcGVydGllcy5q
czsgcGF0aCA9IC4uLy4uLy4uL1Jlc29sdmVQcm9wZXJ0aWVzLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJEMTAzNzIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZVR5cGVEZWZz
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmVzb2x2ZVR5cGVE
ZWZzLmpzOyBwYXRoID0gLi4vLi4vLi4vUmVzb2x2ZVR5cGVEZWZzLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOTJEMTAzODIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZU92ZXJs
b2FkSW1wbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlc29s
dmVPdmVybG9hZEltcGwuanM7IHBhdGggPSAuLi8uLi8uLi9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTAzRTIwRjU2RTYxMDBENzc2QjIg
LyogUmV0dXJuLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gUmV0
dXJuLmpzOyBwYXRoID0gLi4vLi4vLi4vUmV0dXJuLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMTAzRjIwRjU2RTYyMDBENzc2QjIgLyogU3RhbmRhcmRMaWJyYXJ5LmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3RhbmRhcmRMaWJyYXJ5Lmpz
OyBwYXRoID0gLi4vLi4vLi4vU3RhbmRhcmRMaWJyYXJ5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJEMTA0MDIwRjU2RTYyMDBENzc2QjIgLyogUmV0dXJuQ2hlY2tlci5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJldHVybkNoZWNrZXIuanM7
IHBhdGggPSAuLi8uLi8uLi9SZXR1cm5DaGVja2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMTA0MTIwRjU2RTYyMDBENzc2QjIgLyogUmV3cml0ZXIuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBSZXdyaXRlci5qczsgcGF0aCA9IC4uLy4u
Ly4uL1Jld3JpdGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA0MjIw
RjU2RTYyMDBENzc2QjIgLyogUmV0dXJuRXhjZXB0aW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gUmV0dXJuRXhjZXB0aW9uLmpzOyBwYXRoID0gLi4vLi4vLi4v
UmV0dXJuRXhjZXB0aW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA0
ODIwRjU2RTczMDBENzc2QjIgLyogU3RhdGVtZW50Q2xvbmVyLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3RhdGVtZW50Q2xvbmVyLmpzOyBwYXRoID0gLi4vLi4v
Li4vU3RhdGVtZW50Q2xvbmVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJE
MTA0OTIwRjU2RTczMDBENzc2QjIgLyogU3RydWN0TGF5b3V0QnVpbGRlci5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFN0cnVjdExheW91dEJ1aWxkZXIuanM7IHBh
dGggPSAuLi8uLi8uLi9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJEMTA0QTIwRjU2RTczMDBENzc2QjIgLyogU3RydWN0VHlwZS5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFN0cnVjdFR5cGUuanM7IHBhdGgg
PSAuLi8uLi8uLi9TdHJ1Y3RUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OTJEMTA0QjIwRjU2RTczMDBENzc2QjIgLyogU3dpdGNoQ2FzZS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFN3aXRjaENhc2UuanM7IHBhdGggPSAuLi8uLi8uLi9T
d2l0Y2hDYXNlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA1MjIwRjU2
RTg0MDBENzc2QjIgLyogU3dpdGNoU3RhdGVtZW50LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBuYW1lID0gU3dpdGNoU3RhdGVtZW50LmpzOyBwYXRoID0gLi4vLi4vLi4vU3dp
dGNoU3RhdGVtZW50LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA1MzIw
RjU2RTg0MDBENzc2QjIgLyogU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMu
anM7IHBhdGggPSAuLi8uLi8uLi9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA1NDIwRjU2RTg1MDBENzc2QjIgLyogU3ludGhl
c2l6ZUVudW1GdW5jdGlvbnMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5h
bWUgPSBTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qczsgcGF0aCA9IC4uLy4uLy4uL1N5bnRoZXNp
emVFbnVtRnVuY3Rpb25zLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA1
NTIwRjU2RTg1MDBENzc2QjIgLyogVHlwZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNj
cmlwdDsgbmFtZSA9IFR5cGUuanM7IHBhdGggPSAuLi8uLi8uLi9UeXBlLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA1NjIwRjU2RTg1MDBENzc2QjIgLyogVHJhcFN0YXRl
bWVudC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFRyYXBTdGF0
ZW1lbnQuanM7IHBhdGggPSAuLi8uLi8uLi9UcmFwU3RhdGVtZW50LmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOTJEMTA1RTIwRjU2RTk1MDBENzc2QjIgLyogVHlwZURlZlJlc29s
dmVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHlwZURlZlJl
c29sdmVyLmpzOyBwYXRoID0gLi4vLi4vLi4vVHlwZURlZlJlc29sdmVyLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA1RjIwRjU2RTk1MDBENzc2QjIgLyogVHlwZURlZi5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFR5cGVEZWYuanM7IHBh
dGggPSAuLi8uLi8uLi9UeXBlRGVmLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OTJEMTA2MDIwRjU2RTk1MDBENzc2QjIgLyogVHlwZWRWYWx1ZS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFR5cGVkVmFsdWUuanM7IHBhdGggPSAuLi8uLi8uLi9U
eXBlZFZhbHVlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA2NjIwRjU2
RUE0MDBENzc2QjIgLyogVHlwZVJlZi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IFR5cGVSZWYuanM7IHBhdGggPSAuLi8uLi8uLi9UeXBlUmVmLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA2NzIwRjU2RUE0MDBENzc2QjIgLyogVWludExp
dGVyYWxUeXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVWlu
dExpdGVyYWxUeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4vVWludExpdGVyYWxUeXBlLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA2ODIwRjU2RUE0MDBENzc2QjIgLyogVWlu
dExpdGVyYWwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBVaW50
TGl0ZXJhbC5qczsgcGF0aCA9IC4uLy4uLy4uL1VpbnRMaXRlcmFsLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOTJEMTA3MDIwRjU2RUJCMDBENzc2QjIgLyogVmFyaWFibGVEZWNs
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVmFyaWFibGVEZWNs
LmpzOyBwYXRoID0gLi4vLi4vLi4vVmFyaWFibGVEZWNsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJEMTA3MTIwRjU2RUJCMDBENzc2QjIgLyogVmFyaWFibGVSZWYuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBWYXJpYWJsZVJlZi5qczsgcGF0
aCA9IC4uLy4uLy4uL1ZhcmlhYmxlUmVmLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFOTJEMTA3MjIwRjU2RUJCMDBENzc2QjIgLyogVW5pZmljYXRpb25Db250ZXh0LmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVW5pZmljYXRpb25Db250ZXh0Lmpz
OyBwYXRoID0gLi4vLi4vLi4vVW5pZmljYXRpb25Db250ZXh0LmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJEMTA3MzIwRjU2RUJDMDBENzc2QjIgLyogVW5yZWFjaGFibGVDb2Rl
Q2hlY2tlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFVucmVh
Y2hhYmxlQ29kZUNoZWNrZXIuanM7IHBhdGggPSAuLi8uLi8uLi9VbnJlYWNoYWJsZUNvZGVDaGVj
a2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA3NDIwRjU2RUJDMDBE
Nzc2QjIgLyogVmFsdWUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBWYWx1ZS5qczsgcGF0aCA9IC4uLy4uLy4uL1ZhbHVlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJEMTA3QTIwRjU2RUNGMDBENzc2QjIgLyogVmlzaXRvci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFZpc2l0b3IuanM7IHBhdGggPSAuLi8u
Li8uLi9WaXNpdG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA3QjIw
RjU2RUNGMDBENzc2QjIgLyogV3JhcENoZWNrZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IG5hbWUgPSBXcmFwQ2hlY2tlci5qczsgcGF0aCA9IC4uLy4uLy4uL1dyYXBDaGVj
a2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA3QzIwRjU2RUNGMDBE
Nzc2QjIgLyogVmlzaXRpbmdTZXQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBWaXNpdGluZ1NldC5qczsgcGF0aCA9IC4uLy4uLy4uL1Zpc2l0aW5nU2V0LmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA3RDIwRjU2RUNGMDBENzc2QjIgLyog
V2hpbGVMb29wLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gV2hp
bGVMb29wLmpzOyBwYXRoID0gLi4vLi4vLi4vV2hpbGVMb29wLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJEMTA4MjIwRjU2RURFMDBENzc2QjIgLyogV1N5bnRheEVycm9yLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gV1N5bnRheEVycm9yLmpz
OyBwYXRoID0gLi4vLi4vLi4vV1N5bnRheEVycm9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTJEMTA4MzIwRjU2RURFMDBENzc2QjIgLyogV1R5cGVFcnJvci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFdUeXBlRXJyb3IuanM7IHBhdGggPSAu
Li8uLi8uLi9XVHlwZUVycm9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJE
MTA4NDIwRjU2RURFMDBENzc2QjIgLyogV1RyYXBFcnJvci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IFdUcmFwRXJyb3IuanM7IHBhdGggPSAuLi8uLi8uLi9XVHJh
cEVycm9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTA4ODIwRjU2RjA2
MDBENzc2QjIgLyogQ29tcGlsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGlsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRDEwODkyMEY1NkYwNjAwRDc3NkIyIC8qIENvbXBp
bGVyLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IENvbXBpbGVyLm07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUU5MkQxMDhDMjBGNTZGNDUwMEQ3NzZCMiAvKiBNZXRhbEtpdC5mcmFtZXdvcmsg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVy
LmZyYW1ld29yazsgbmFtZSA9IE1ldGFsS2l0LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvTWV0YWxLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsg
fTsKKwkJRTkyRDEwOEUyMEY1NkY0RjAwRDc3NkIyIC8qIE1ldGFsLmZyYW1ld29yayAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3
b3JrOyBuYW1lID0gTWV0YWwuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9NZXRhbC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworCQlFOTJEMTA5
MDIwRjU2RjU3MDBENzc2QjIgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0phdmFTY3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7
IH07CisJCUU5MkQxMDkyMjBGNTczNDkwMEQ3NzZCMiAvKiBEZWZhdWx0LndobHNsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERl
ZmF1bHQud2hsc2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU5MkQxMEFEMjBGNTdD
OUYwMEQ3NzZCMiAvKiBPbnNjcmVlblJlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9uc2NyZWVu
UmVuZGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRDEwQUUyMEY1N0M5
RjAwRDc3NkIyIC8qIE9uc2NyZWVuUmVuZGVyZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gT25zY3Jl
ZW5SZW5kZXJlci5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJEMTExMzIwRjZG
RkI2MDBENzc2QjIgLyogUmVuZGVyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRDExMTQyMEY2RkZCNjAwRDc3NkIyIC8qIFJl
bmRlcmVyLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFJlbmRlcmVyLm07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU5MkQxMUFCMjBGNzA4MTUwMEQ3NzZCMiAvKiBPZmZzY3JlZW5SZW5kZXJl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBPZmZzY3JlZW5SZW5kZXJlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJEMTFBQzIwRjcwODE1MDBENzc2QjIgLyogT2Zmc2NyZWVuUmVuZGVy
ZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gT2Zmc2NyZWVuUmVuZGVyZXIubTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRDExQjkyMEY3RjY3MzAwRDc3NkIyIC8qIENvbXBpbGVSZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGlsZVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJEMTFCQTIwRjdGNjczMDBENzc2QjIgLyogQ29tcGlsZVJlc3VsdC5tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLm9iamM7IHBhdGggPSBDb21waWxlUmVzdWx0Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUU5MkVERkY1MjExNTQ2QTQwMDQyRjk2MCAvKiBBcHBEZWxlZ2F0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJFREZGNjIxMTU0NkE0MDA0MkY5NjAgLyogQ3VzdG9tTWV0YWxWaWV3
Lm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IEN1c3RvbU1ldGFsVmlldy5t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJFREZGNzIxMTU0NkE0MDA0MkY5NjAg
LyogQXBwRGVsZWdhdGUubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gQXBw
RGVsZWdhdGUubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRURGRjgyMTE1NDZB
NDAwNDJGOTYwIC8qIEN1c3RvbU1ldGFsVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDdXN0b21NZXRhbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTkyRURGRjkyMTE1NDZBNDAwNDJGOTYwIC8qIFZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU5MkVERkZBMjExNTQ2QTQwMDQyRjk2MCAvKiBWaWV3Q29udHJvbGxlci5t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBWaWV3Q29udHJvbGxlci5tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJFREZGRjIxMTU0NkFCMDA0MkY5NjAgLyog
QmFzZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZp
bGUuc3Rvcnlib2FyZDsgbmFtZSA9IEJhc2U7IHBhdGggPSBCYXNlLmxwcm9qL01haW4uc3Rvcnli
b2FyZDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRUUwMDIyMTE1NDlDNTAwNDJG
OTYwIC8qIFRlc3RDYWxsQXJndW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdENhbGxBcmd1bWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJFRTAwMzIxMTU0OUM1MDA0MkY5
NjAgLyogVGVzdENhbGxBcmd1bWVudC5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBUZXN0Q2FsbEFyZ3Vt
ZW50Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU5MkVFMDA1MjExNTRBQzQwMDQy
Rjk2MCAvKiBUZXN0RmFtaWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RGYW1pbHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTkyRUUwMDYyMTE1NEFDNDAwNDJGOTYwIC8qIFRlc3RG
YW1pbHkubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gVGVzdEZhbWlseS5tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTJFRTAwODIxMTU0QjVBMDA0MkY5NjAgLyogVGVzdERlc2NyaXB0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3REZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJFRTAwOTIxMTU0QjVBMDA0MkY5NjAgLyogVGVzdERlc2NyaXB0aW9uLm0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMub2JqYzsgcGF0aCA9IFRlc3REZXNjcmlwdGlvbi5tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTJFRTAwQjIxMTU1NDk4MDA0MkY5NjAgLyogX1NoYXJlZE1ldGFsLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBfU2hhcmVkTWV0YWwudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTJF
RTAwRDIxMTU2MzMwMDA0MkY5NjAgLyogVGVzdEZhbWlseVJ1bm5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXN0RmFtaWx5UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU5MkVF
MDBFMjExNTYzMzAwMDQyRjk2MCAvKiBUZXN0RmFtaWx5UnVubmVyLm0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0
aCA9IFRlc3RGYW1pbHlSdW5uZXIubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0
MUFDQUUyMTM0QTVCQTAwMzkyQkE5IC8qIENoZWNrVHlwZXNXaXRoQXJndW1lbnRzLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ2hlY2tUeXBlc1dpdGhBcmd1bWVu
dHMuanM7IHBhdGggPSAuLi8uLi8uLi9DaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0MUFDQUYyMTM0QTVCQTAwMzkyQkE5IC8qIFN5bnRo
ZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IFN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qczsgcGF0
aCA9IC4uLy4uLy4uL1N5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0MUFDQjMyMTM0QTVCQjAwMzkyQkE5IC8qIFN5bnRo
ZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IFN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5q
czsgcGF0aCA9IC4uLy4uLy4uL1N5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5q
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0MUFDQjUyMTM0QTVCQjAwMzkyQkE5
IC8qIFRlcm5hcnlFeHByZXNzaW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gVGVybmFyeUV4cHJlc3Npb24uanM7IHBhdGggPSAuLi8uLi8uLi9UZXJuYXJ5RXhw
cmVzc2lvbi5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0MUFDQjYyMTM0QTVC
QjAwMzkyQkE5IC8qIE9wZXJhdG9yQXJyYXlSZWZMZW5ndGguanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzOyBwYXRoID0g
Li4vLi4vLi4vT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTk0MUFDQjcyMTM0QTVCQjAwMzkyQkE5IC8qIFN5bnRoZXNpemVBcnJheU9wZXJh
dG9yTGVuZ3RoLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3lu
dGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanM7IHBhdGggPSAuLi8uLi8uLi9TeW50aGVzaXpl
QXJyYXlPcGVyYXRvckxlbmd0aC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0
MUFDQjkyMTM0QTVCQjAwMzkyQkE5IC8qIEJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBCdWlsdGluVmVjdG9yR2V0dGVyLmpzOyBw
YXRoID0gLi4vLi4vLi4vQnVpbHRpblZlY3RvckdldHRlci5qczsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTk0MUFDQkEyMTM0QTVCQjAwMzkyQkE5IC8qIFR5cGVPdmVybG9hZFJlc29s
dXRpb25GYWlsdXJlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0g
VHlwZU92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanM7IHBhdGggPSAuLi8uLi8uLi9UeXBlT3Zl
cmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTk0MUFDQkIyMTM0QTVCQjAwMzkyQkE5IC8qIFZlY3RvclR5cGUuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBWZWN0b3JUeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4v
VmVjdG9yVHlwZS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTk0MUFDQkMyMTM0
QTVCQjAwMzkyQkE5IC8qIEJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBCdWlsdGluVmVjdG9yU2V0dGVyLmpzOyBwYXRoID0gLi4v
Li4vLi4vQnVpbHRpblZlY3RvclNldHRlci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTk0QzA2QzAyMEY1NkE0MDAwNjcyOTkyIC8qIFdITFNMIFRlc3RzLmFwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlv
bjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gIldITFNMIFRlc3RzLmFwcCI7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUU5NEMwNkM5MjBGNTZBNDIwMDY3Mjk5MiAv
KiBBc3NldHMueGNhc3NldHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmb2xkZXIuYXNzZXRjYXRhbG9nOyBwYXRoID0gQXNzZXRzLnhjYXNzZXRzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTRDMDZDRTIwRjU2QTQyMDA2NzI5OTIgLyog
SW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTk0QzA2Q0YyMEY1NkE0MjAwNjcyOTkyIC8qIG1haW4ubSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpj
OyBwYXRoID0gbWFpbi5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTRDMDZEMTIw
RjU2QTQyMDA2NzI5OTIgLyogV0hMU0wuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVudHM7IHBh
dGggPSBXSExTTC5lbnRpdGxlbWVudHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU5
NEMwNkQ2MjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTCBUZXN0c1Rlc3RzLnhjdGVzdCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRs
ZTsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gIldITFNMIFRlc3RzVGVzdHMueGN0ZXN0Ijsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTk0QzA2REEyMEY1NkE0MjAw
NjcyOTkyIC8qIFdITFNMX1RveVRlc3RzLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdITFNMX1RveVRl
c3RzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU5NEMwNkRDMjBGNTZBNDIwMDY3
Mjk5MiAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTRDMDZGOTIwRjU2Q0EzMDA2NzI5OTIgLyogRGVyZWZlcmVu
Y2VFeHByZXNzaW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRGVyZWZlcmVuY2VFeHByZXNz
aW9uLmpzOyBwYXRoID0gLi4vLi4vLi4vRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTRDMDZGQTIwRjU2Q0EzMDA2NzI5OTIgLyogQ2hlY2tS
ZWN1cnNpb24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDaGVja1JlY3Vyc2lvbi5qczsgcGF0
aCA9IC4uLy4uLy4uL0NoZWNrUmVjdXJzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTRDMDZGQjIwRjU2Q0EzMDA2NzI5OTIgLyogSGlnaFpvbWJpZUZpbmRlci5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IEhpZ2hab21iaWVGaW5kZXIuanM7IHBhdGggPSAuLi8uLi8uLi9I
aWdoWm9tYmllRmluZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTRDMDZG
QzIwRjU2Q0EzMDA2NzI5OTIgLyogQmxvY2suanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBCbG9j
ay5qczsgcGF0aCA9IC4uLy4uLy4uL0Jsb2NrLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTRDMDZGRDIwRjU2Q0EzMDA2NzI5OTIgLyogRW51bUxpdGVyYWwuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBFbnVtTGl0ZXJhbC5qczsgcGF0aCA9IC4uLy4uLy4uL0VudW1MaXRlcmFs
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTREMTI0RTIxMTRCRDc2MDBCMEY5
NjcgLyogTWFuZGVsYnJvdC53aGxzbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNYW5kZWxicm90
LndobHNsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTREMTI3RTIxMTRDNkZGMDBC
MEY5NjcgLyogVGVzdC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IFRlc3QuanM7IHBhdGggPSAuLi8uLi8uLi9UZXN0LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOTU1NjlCMDIwRjU2Q0Q2MDBGNUNGMzQgLyogQnJlYWsuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBCcmVhay5qczsgcGF0aCA9IC4uLy4uLy4uL0Jy
ZWFrLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCMTIwRjU2Q0Q2MDBG
NUNGMzQgLyogQm9vbExpdGVyYWwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBCb29sTGl0ZXJhbC5qczsgcGF0aCA9IC4uLy4uLy4uL0Jvb2xMaXRlcmFsLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCMjIwRjU2Q0Q2MDBGNUNGMzQgLyog
Q2hlY2tSZXR1cm5zLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0g
Q2hlY2tSZXR1cm5zLmpzOyBwYXRoID0gLi4vLi4vLi4vQ2hlY2tSZXR1cm5zLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCMzIwRjU2Q0Q2MDBGNUNGMzQgLyogQ2hlY2tM
b29wcy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENoZWNrTG9v
cHMuanM7IHBhdGggPSAuLi8uLi8uLi9DaGVja0xvb3BzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTU1NjlCNDIwRjU2Q0Q2MDBGNUNGMzQgLyogQXJyYXlUeXBlLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQXJyYXlUeXBlLmpzOyBwYXRoID0g
Li4vLi4vLi4vQXJyYXlUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1
NjlCNTIwRjU2Q0Q2MDBGNUNGMzQgLyogQXJyYXlSZWZUeXBlLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQXJyYXlSZWZUeXBlLmpzOyBwYXRoID0gLi4vLi4vLi4v
QXJyYXlSZWZUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCNjIw
RjU2Q0Q2MDBGNUNGMzQgLyogQ2hlY2tMaXRlcmFsVHlwZXMuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDaGVja0xpdGVyYWxUeXBlcy5qczsgcGF0aCA9IC4uLy4u
Ly4uL0NoZWNrTGl0ZXJhbFR5cGVzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OTU1NjlCNzIwRjU2Q0Q2MDBGNUNGMzQgLyogQ2hlY2tVbnJlYWNoYWJsZUNvZGUuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDaGVja1VucmVhY2hhYmxlQ29kZS5q
czsgcGF0aCA9IC4uLy4uLy4uL0NoZWNrVW5yZWFjaGFibGVDb2RlLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOTU1NjlCODIwRjU2Q0Q2MDBGNUNGMzQgLyogQ2hlY2suanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDaGVjay5qczsgcGF0aCA9IC4u
Ly4uLy4uL0NoZWNrLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCOTIw
RjU2Q0Q2MDBGNUNGMzQgLyogQXNzaWdubWVudC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IEFzc2lnbm1lbnQuanM7IHBhdGggPSAuLi8uLi8uLi9Bc3NpZ25tZW50
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCQTIwRjU2Q0Q2MDBGNUNG
MzQgLyogQWRkcmVzc1NwYWNlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBu
YW1lID0gQWRkcmVzc1NwYWNlLmpzOyBwYXRoID0gLi4vLi4vLi4vQWRkcmVzc1NwYWNlLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCQjIwRjU2Q0Q2MDBGNUNGMzQgLyog
Q2hlY2tSZWN1cnNpdmVUeXBlcy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
bmFtZSA9IENoZWNrUmVjdXJzaXZlVHlwZXMuanM7IHBhdGggPSAuLi8uLi8uLi9DaGVja1JlY3Vy
c2l2ZVR5cGVzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCQzIwRjU2
Q0Q3MDBGNUNGMzQgLyogQWxsLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBu
YW1lID0gQWxsLmpzOyBwYXRoID0gLi4vLi4vLi4vQWxsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTU1NjlCRDIwRjU2Q0Q3MDBGNUNGMzQgLyogQW5vbnltb3VzVmFyaWFibGUu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBBbm9ueW1vdXNWYXJp
YWJsZS5qczsgcGF0aCA9IC4uLy4uLy4uL0Fub255bW91c1ZhcmlhYmxlLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlCRTIwRjU2Q0Q3MDBGNUNGMzQgLyogQXV0b1dyYXBw
ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBBdXRvV3JhcHBl
ci5qczsgcGF0aCA9IC4uLy4uLy4uL0F1dG9XcmFwcGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTU1NjlCRjIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2FsbEV4cHJlc3Npb24uanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDYWxsRXhwcmVzc2lvbi5q
czsgcGF0aCA9IC4uLy4uLy4uL0NhbGxFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTU1NjlDMDIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2FsbEZ1bmN0aW9uLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ2FsbEZ1bmN0aW9uLmpzOyBw
YXRoID0gLi4vLi4vLi4vQ2FsbEZ1bmN0aW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTU1NjlDMTIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2hlY2tlci5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IENoZWNrZXIuanM7IHBhdGggPSAuLi8uLi8uLi9D
aGVja2VyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlENDIwRjU2Q0VE
MDBGNUNGMzQgLyogQ2hlY2tXcmFwcGVkLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBuYW1lID0gQ2hlY2tXcmFwcGVkLmpzOyBwYXRoID0gLi4vLi4vLi4vQ2hlY2tXcmFwcGVk
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlENTIwRjU2Q0VEMDBGNUNG
MzQgLyogQ29uc3RleHByRm9sZGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gQ29uc3RleHByRm9sZGVyLmpzOyBwYXRoID0gLi4vLi4vLi4vQ29uc3RleHByRm9s
ZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlENjIwRjU2Q0VEMDBG
NUNGMzQgLyogQ3JlYXRlTGl0ZXJhbFR5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBDcmVhdGVMaXRlcmFsVHlwZS5qczsgcGF0aCA9IC4uLy4uLy4uL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlENzIw
RjU2Q0VEMDBGNUNGMzQgLyogQ29udGludWUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBDb250aW51ZS5qczsgcGF0aCA9IC4uLy4uLy4uL0NvbnRpbnVlLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlEODIwRjU2Q0VEMDBGNUNGMzQgLyog
Q3JlYXRlTGl0ZXJhbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IENyZWF0ZUxpdGVyYWwuanM7IHBhdGggPSAuLi8uLi8uLi9DcmVhdGVMaXRlcmFsLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlEOTIwRjU2Q0VEMDBGNUNGMzQgLyogQ29u
dmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBuYW1lID0gQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzOyBwYXRoID0g
Li4vLi4vLi4vQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOTU1NjlEQjIwRjU2Q0VFMDBGNUNGMzQgLyogQ2xvbmVQcm9ncmFt
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ2xvbmVQcm9ncmFt
LmpzOyBwYXRoID0gLi4vLi4vLi4vQ2xvbmVQcm9ncmFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTU1NjlEQzIwRjU2Q0VFMDBGNUNGMzQgLyogQ29tbWFFeHByZXNzaW9uLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ29tbWFFeHByZXNzaW9u
LmpzOyBwYXRoID0gLi4vLi4vLi4vQ29tbWFFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTU1NjlFNjIwRjU2RDA1MDBGNUNGMzQgLyogRnVuY3Rpb25MaWtlQmxv
Y2suanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBGdW5jdGlvbkxpa2VCbG9jay5qczsgcGF0aCA9
IC4uLy4uLy4uL0Z1bmN0aW9uTGlrZUJsb2NrLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOTU1NjlFNzIwRjU2RDA1MDBGNUNGMzQgLyogRVB0ci5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
bmFtZSA9IEVQdHIuanM7IHBhdGggPSAuLi8uLi8uLi9FUHRyLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTU1NjlFODIwRjU2RDA1MDBGNUNGMzQgLyogRnVuY0RlZi5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IEZ1bmNEZWYuanM7IHBhdGggPSAuLi8uLi8uLi9GdW5jRGVmLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTU1NjlFOTIwRjU2RDA1MDBGNUNGMzQg
LyogRnVuY1BhcmFtZXRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZ1bmNQYXJhbWV0ZXIu
anM7IHBhdGggPSAuLi8uLi8uLi9GdW5jUGFyYW1ldGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTU1NjlFQTIwRjU2RDA1MDBGNUNGMzQgLyogRmxvYXRMaXRlcmFsVHlwZS5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZsb2F0TGl0ZXJhbFR5cGUuanM7IHBhdGggPSAuLi8u
Li8uLi9GbG9hdExpdGVyYWxUeXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OTU1NjlFQjIwRjU2RDA1MDBGNUNGMzQgLyogRm9sZENvbnN0ZXhwcnMuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBGb2xkQ29uc3RleHBycy5qczsgcGF0aCA9IC4uLy4uLy4uL0ZvbGRDb25zdGV4
cHJzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTczRTVDNzIxM0YzMzg1MDA1
RDc5RkMgLyogTVNMRnVuY3Rpb25Gb3J3YXJkRGVjbGFyYXRpb24uanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBNU0xGdW5jdGlvbkZvcndhcmREZWNsYXJhdGlvbi5q
czsgcGF0aCA9IC4uLy4uL01TTEZ1bmN0aW9uRm9yd2FyZERlY2xhcmF0aW9uLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTczRTVDODIxM0YzMzg1MDA1RDc5RkMgLyogTVNMU3Rh
dGVtZW50RW1pdHRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IE1TTFN0YXRlbWVudEVtaXR0ZXIuanM7IHBhdGggPSAuLi8uLi9NU0xTdGF0ZW1lbnRFbWl0dGVy
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTdFRDdFMTIxNEI4MjI5MDBBRDEx
NDAgLyogTVNMTmFtZU1hbmdsZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBNU0xOYW1lTWFu
Z2xlci5qczsgcGF0aCA9IC4uLy4uL01TTE5hbWVNYW5nbGVyLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOTdFRDdFMjIxNEI4MjI5MDBBRDExNDAgLyogTVNMVHlwZUF0dHJpYnV0
ZXNNYXAuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBNU0xUeXBlQXR0cmlidXRlc01hcC5qczsg
cGF0aCA9IC4uLy4uL01TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTdFRDdFNDIxNEI4MjI5MDBBRDExNDAgLyogTVNMTmF0aXZlRnVuY3Rpb25D
YWxsLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTVNMTmF0aXZlRnVuY3Rpb25DYWxsLmpzOyBw
YXRoID0gLi4vLi4vTVNMTmF0aXZlRnVuY3Rpb25DYWxsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTdFRDdFNTIxNEI4MjI5MDBBRDExNDAgLyogTVNMQ29kZWdlbkFsbC5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTENvZGVnZW5BbGwuanM7IHBhdGggPSAuLi8uLi9NU0xD
b2RlZ2VuQWxsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOTdFRDdFNjIxNEI4
MjI5MDBBRDExNDAgLyogTVNMVHlwZVVuaWZpZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBN
U0xUeXBlVW5pZmllci5qczsgcGF0aCA9IC4uLy4uL01TTFR5cGVVbmlmaWVyLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOTdFRDdFNzIxNEI4MjI5MDBBRDExNDAgLyogTVNMVHlw
ZUF0dHJpYnV0ZXMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBNU0xUeXBlQXR0cmlidXRlcy5q
czsgcGF0aCA9IC4uLy4uL01TTFR5cGVBdHRyaWJ1dGVzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOTdFRDdFODIxNEI4MjI5MDBBRDExNDAgLyogTVNMQ29tcGlsZVJlc3VsdC5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTENvbXBpbGVSZXN1bHQuanM7IHBhdGggPSAuLi8u
Li9NU0xDb21waWxlUmVzdWx0LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFE
MDc0NjIwRjU2RDVBMDA3RjI0NjYgLyogRG9XaGlsZUxvb3AuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBEb1doaWxlTG9vcC5qczsgcGF0aCA9IC4uLy4uLy4uL0Rv
V2hpbGVMb29wLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc0ODIwRjU2
RDVBMDA3RjI0NjYgLyogRUJ1ZmZlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgbmFtZSA9IEVCdWZmZXIuanM7IHBhdGggPSAuLi8uLi8uLi9FQnVmZmVyLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc0OTIwRjU2RDVBMDA3RjI0NjYgLyogRUFycmF5
UmVmLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRUFycmF5UmVm
LmpzOyBwYXRoID0gLi4vLi4vLi4vRUFycmF5UmVmLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOUFEMDc0QTIwRjU2RDVCMDA3RjI0NjYgLyogRUJ1ZmZlckJ1aWxkZXIuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFQnVmZmVyQnVpbGRlci5qczsg
cGF0aCA9IC4uLy4uLy4uL0VCdWZmZXJCdWlsZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOUFEMDc0QjIwRjU2RDVCMDA3RjI0NjYgLyogRG90RXhwcmVzc2lvbi5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IERvdEV4cHJlc3Npb24uanM7IHBh
dGggPSAuLi8uLi8uLi9Eb3RFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOUFEMDc1MzIwRjU2RDY5MDA3RjI0NjYgLyogRXZhbHVhdGlvbkNvbW1vbi5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IEV2YWx1YXRpb25Db21tb24uanM7IHBhdGggPSAuLi8uLi8uLi9F
dmFsdWF0aW9uQ29tbW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc1
NDIwRjU2RDY5MDA3RjI0NjYgLyogRXhwcmVzc2lvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9
IEV4cHJlc3Npb24uanM7IHBhdGggPSAuLi8uLi8uLi9FeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc1NTIwRjU2RDY5MDA3RjI0NjYgLyogRW51bU1lbWJl
ci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVudW1NZW1iZXIuanM7IHBhdGggPSAuLi8uLi8u
Li9FbnVtTWVtYmVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc1NjIw
RjU2RDY5MDA3RjI0NjYgLyogRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IG5hbWUgPSBGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qczsgcGF0aCA9
IC4uLy4uLy4uL0ZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOUFEMDc1NzIwRjU2RDY5MDA3RjI0NjYgLyogRXZhbHVhdG9yLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRXZhbHVhdG9yLmpzOyBwYXRoID0gLi4vLi4vLi4vRXZh
bHVhdG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc1ODIwRjU2RDY5
MDA3RjI0NjYgLyogRmluZEhpZ2hab21iaWVzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRmlu
ZEhpZ2hab21iaWVzLmpzOyBwYXRoID0gLi4vLi4vLi4vRmluZEhpZ2hab21iaWVzLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc1OTIwRjU2RDY5MDA3RjI0NjYgLyogRXhw
cmVzc2lvbkZpbmRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEV4cHJlc3Npb25GaW5kZXIu
anM7IHBhdGggPSAuLi8uLi8uLi9FeHByZXNzaW9uRmluZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOUFEMDc1QTIwRjU2RDY5MDA3RjI0NjYgLyogRW51bVR5cGUuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IG5hbWUgPSBFbnVtVHlwZS5qczsgcGF0aCA9IC4uLy4uLy4uL0VudW1UeXBl
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUFEMDc1QjIwRjU2RDY5MDA3RjI0
NjYgLyogRXh0ZXJuYWxPcmlnaW4uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFeHRlcm5hbE9y
aWdpbi5qczsgcGF0aCA9IC4uLy4uLy4uL0V4dGVybmFsT3JpZ2luLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOUFEMDc1QzIwRjU2RDY5MDA3RjI0NjYgLyogRmxvYXRMaXRlcmFs
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRmxvYXRMaXRlcmFsLmpzOyBwYXRoID0gLi4vLi4v
Li4vRmxvYXRMaXRlcmFsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUJDNTBE
OTIxNTVBRDFFMDAwNTk0RTggLyogQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzOyBw
YXRoID0gLi4vLi4vLi4vQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOUQ3Q0I5NDIxNEI4MjQyMDBGMUM5MTggLyogV2hsc2xUb01zbC5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFdobHNsVG9Nc2wuanM7IHBh
dGggPSAuLi8uLi9XaGxzbFRvTXNsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
OUQ3Q0I5NTIxNEI4MjQyMDBGMUM5MTggLyogTVNMQmFja2VuZC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTEJhY2tlbmQuanM7IHBhdGggPSAuLi8uLi9NU0xC
YWNrZW5kLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUQ3Q0I5NjIxNEI4MjQy
MDBGMUM5MTggLyogTVNMQ29uc3RleHByRW1pdHRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IE1TTENvbnN0ZXhwckVtaXR0ZXIuanM7IHBhdGggPSAuLi8uLi9N
U0xDb25zdGV4cHJFbWl0dGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUQ3
Q0I5QTIxNEI4MkI3MDBGMUM5MTggLyogVGV4dHVyZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgbmFtZSA9IFRleHR1cmUuanM7IHBhdGggPSAuLi8uLi8uLi9UZXh0dXJlLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUQ3Q0I5QjIxNEI4MkI3MDBGMUM5MTgg
LyogTGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgbmFtZSA9IExhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMuanM7IHBhdGggPSAuLi8u
Li8uLi9MYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOUQ3Q0I5QzIxNEI4MkI3MDBGMUM5MTggLyogQ2FzdHMuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDYXN0cy5qczsgcGF0aCA9IC4uLy4uLy4uL0Nh
c3RzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUQ3Q0I5RDIxNEI4MkI4MDBG
MUM5MTggLyogU2FtcGxlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFt
ZSA9IFNhbXBsZXIuanM7IHBhdGggPSAuLi8uLi8uLi9TYW1wbGVyLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOUQ3Q0I5RTIxNEI4MkI4MDBGMUM5MTggLyogVGV4dHVyZU9wZXJh
dGlvbnMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBUZXh0dXJl
T3BlcmF0aW9ucy5qczsgcGF0aCA9IC4uLy4uLy4uL1RleHR1cmVPcGVyYXRpb25zLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUQ3Q0I5RjIxNEI4MkI4MDBGMUM5MTggLyogV0xl
eGljYWxFcnJvci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFdM
ZXhpY2FsRXJyb3IuanM7IHBhdGggPSAuLi8uLi8uLi9XTGV4aWNhbEVycm9yLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOUVGQ0ZERjIxNUFBNkNCMDA1RDM5N0UgLyogTVNMSW5z
ZXJ0VHJhcFBhcmFtZXRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFt
ZSA9IE1TTEluc2VydFRyYXBQYXJhbWV0ZXIuanM7IHBhdGggPSAuLi8uLi9NU0xJbnNlcnRUcmFw
UGFyYW1ldGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUVGQ0ZFMTIxNUFB
NkU1MDA1RDM5N0UgLyogRnVuY051bVRocmVhZHNBdHRyaWJ1dGUuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBGdW5jTnVtVGhyZWFkc0F0dHJpYnV0ZS5qczsgcGF0
aCA9IC4uLy4uLy4uL0Z1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOUVGQ0ZFMjIxNUFBNkU2MDA1RDM5N0UgLyogRnVuY0F0dHJpYnV0ZS5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZ1bmNBdHRyaWJ1dGUu
anM7IHBhdGggPSAuLi8uLi8uLi9GdW5jQXR0cmlidXRlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFOUVGQ0ZFMzIxNUFBNkU2MDA1RDM5N0UgLyogQ2hlY2tOYXRpdmVGdW5jU3Rh
Z2VzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQ2hlY2tOYXRp
dmVGdW5jU3RhZ2VzLmpzOyBwYXRoID0gLi4vLi4vLi4vQ2hlY2tOYXRpdmVGdW5jU3RhZ2VzLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUVGQ0ZFNzIxNUFCNEZDMDA1RDM5N0Ug
LyogU2VtYW50aWMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBT
ZW1hbnRpYy5qczsgcGF0aCA9IC4uLy4uLy4uL1NlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOUVGQ0ZFODIxNUFCNEZDMDA1RDM5N0UgLyogU3BlY2lhbGl6YXRpb25D
b25zdGFudFNlbWFudGljLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzOyBwYXRoID0gLi4vLi4vLi4vU3Bl
Y2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOUVGQ0ZFOTIxNUFCNEZDMDA1RDM5N0UgLyogQnVpbHRJblNlbWFudGljLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gQnVpbHRJblNlbWFudGljLmpzOyBw
YXRoID0gLi4vLi4vLi4vQnVpbHRJblNlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOUVGQ0ZFQTIxNUFCNEZDMDA1RDM5N0UgLyogUmVzb3VyY2VTZW1hbnRpYy5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFJlc291cmNlU2VtYW50aWMu
anM7IHBhdGggPSAuLi8uLi8uLi9SZXNvdXJjZVNlbWFudGljLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOUVGQ0ZFQjIxNUFCNEZEMDA1RDM5N0UgLyogU3RhZ2VJbk91dFNlbWFu
dGljLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU3RhZ2VJbk91
dFNlbWFudGljLmpzOyBwYXRoID0gLi4vLi4vLi4vU3RhZ2VJbk91dFNlbWFudGljLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUVGQ0ZGMTIxNUFENjIyMDA1RDM5N0UgLyogR2F0
aGVyRW50cnlQb2ludHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBHYXRoZXJFbnRyeVBvaW50cy5qczsgcGF0aCA9IC4uLy4uLy4uL0dhdGhlckVudHJ5UG9pbnRz
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUZDRUI1NTIwRjU2RDkyMDA5QjM2
MjkgLyogRnVuYy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZ1
bmMuanM7IHBhdGggPSAuLi8uLi8uLi9GdW5jLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFOUZDRUI1NzIwRjU2RDkzMDA5QjM2MjkgLyogSWZTdGF0ZW1lbnQuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBJZlN0YXRlbWVudC5qczsgcGF0aCA9IC4u
Ly4uLy4uL0lmU3RhdGVtZW50LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUZD
RUI1ODIwRjU2RDkzMDA5QjM2MjkgLyogSWRlbnRpdHlFeHByZXNzaW9uLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gSWRlbnRpdHlFeHByZXNzaW9uLmpzOyBwYXRo
ID0gLi4vLi4vLi4vSWRlbnRpdHlFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFOUZDRUI1QTIwRjU2RDkzMDA5QjM2MjkgLyogRm9yTG9vcC5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZvckxvb3AuanM7IHBhdGggPSAuLi8uLi8u
Li9Gb3JMb29wLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUZDRUI1QjIwRjU2
RDkzMDA5QjM2MjkgLyogRmllbGQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IG5hbWUgPSBGaWVsZC5qczsgcGF0aCA9IC4uLy4uLy4uL0ZpZWxkLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFOUZDRUI2MzIwRjU2REE0MDA5QjM2MjkgLyogSW5kZXhFeHByZXNz
aW9uLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gSW5kZXhFeHByZXNzaW9uLmpzOyBwYXRoID0g
Li4vLi4vLi4vSW5kZXhFeHByZXNzaW9uLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFOUZDRUI2NDIwRjU2REE1MDA5QjM2MjkgLyogTGF0ZUNoZWNrZXIuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBMYXRlQ2hlY2tlci5qczsgcGF0aCA9IC4uLy4uLy4uL0xhdGVDaGVja2VyLmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFOUZDRUI2NTIwRjU2REE1MDA5QjM2Mjkg
LyogSW5mZXJUeXBlc0ZvckNhbGwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBJbmZlclR5cGVz
Rm9yQ2FsbC5qczsgcGF0aCA9IC4uLy4uLy4uL0luZmVyVHlwZXNGb3JDYWxsLmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFOUZDRUI2NjIwRjU2REE1MDA5QjM2MjkgLyogSW5saW5l
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gSW5saW5lLmpzOyBwYXRoID0gLi4vLi4vLi4vSW5s
aW5lLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworLyogRW5kIFBCWEZpbGVSZWZlcmVu
Y2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9u
ICovCisJCUU5NEMwNkJEMjBGNTZBNDAwMDY3Mjk5MiAvKiBGcmFtZXdvcmtzICovID0geworCQkJ
aXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJRTkyRDEwOTEyMEY1NkY1NzAwRDc3NkIyIC8qIEph
dmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJCUU5MkQxMDhGMjBG
NTZGNEYwMEQ3NzZCMiAvKiBNZXRhbC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlF
OTJEMTA4RDIwRjU2RjQ1MDBENzc2QjIgLyogTWV0YWxLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CisJCX07CisJCUU5NEMwNkQzMjBGNTZBNDIwMDY3Mjk5MiAvKiBGcmFtZXdvcmtzICovID0gewor
CQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ug
c2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCisJCUU5MDZCMDRBMjEx
NEJEMUQwMEFEMUM1RSAvKiBEZW1vIHNoYWRlcnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUU5MkQxMDkyMjBGNTczNDkwMEQ3NzZCMiAvKiBEZWZhdWx0
LndobHNsICovLAorCQkJCUU5MDZCMDQ1MjExMzlCNzcwMEFEMUM1RSAvKiBKdWxpYS53aGxzbCAq
LywKKwkJCQlFOTREMTI0RTIxMTRCRDc2MDBCMEY5NjcgLyogTWFuZGVsYnJvdC53aGxzbCAqLywK
KwkJCSk7CisJCQlwYXRoID0gIkRlbW8gc2hhZGVycyI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworCQlFOTJEMTA4QjIwRjU2RjQ0MDBENzc2QjIgLyogRnJhbWV3b3JrcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTkyRDEwOTAyMEY1
NkY1NzAwRDc3NkIyIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLywKKwkJCQlFOTJEMTA4
RTIwRjU2RjRGMDBENzc2QjIgLyogTWV0YWwuZnJhbWV3b3JrICovLAorCQkJCUU5MkQxMDhDMjBG
NTZGNDUwMEQ3NzZCMiAvKiBNZXRhbEtpdC5mcmFtZXdvcmsgKi8sCisJCQkpOworCQkJbmFtZSA9
IEZyYW1ld29ya3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlFOTJEMTFB
RTIwRjcwQkFFMDBENzc2QjIgLyogUmVuZGVyZXIgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUU5MkQxMUFCMjBGNzA4MTUwMEQ3NzZCMiAvKiBPZmZzY3Jl
ZW5SZW5kZXJlci5oICovLAorCQkJCUU5MkQxMUFDMjBGNzA4MTUwMEQ3NzZCMiAvKiBPZmZzY3Jl
ZW5SZW5kZXJlci5tICovLAorCQkJCUU5MkQxMEFEMjBGNTdDOUYwMEQ3NzZCMiAvKiBPbnNjcmVl
blJlbmRlcmVyLmggKi8sCisJCQkJRTkyRDEwQUUyMEY1N0M5RjAwRDc3NkIyIC8qIE9uc2NyZWVu
UmVuZGVyZXIubSAqLywKKwkJCQlFOTJEMTExMzIwRjZGRkI2MDBENzc2QjIgLyogUmVuZGVyZXIu
aCAqLywKKwkJCQlFOTJEMTExNDIwRjZGRkI2MDBENzc2QjIgLyogUmVuZGVyZXIubSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gUmVuZGVyZXI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OworCQlFOTJFREZGNDIxMTU0NjkxMDA0MkY5NjAgLyogQXBwICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFOTJFREZGNTIxMTU0NkE0MDA0MkY5NjAgLyog
QXBwRGVsZWdhdGUuaCAqLywKKwkJCQlFOTJFREZGNzIxMTU0NkE0MDA0MkY5NjAgLyogQXBwRGVs
ZWdhdGUubSAqLywKKwkJCQlFOTJFREZGODIxMTU0NkE0MDA0MkY5NjAgLyogQ3VzdG9tTWV0YWxW
aWV3LmggKi8sCisJCQkJRTkyRURGRjYyMTE1NDZBNDAwNDJGOTYwIC8qIEN1c3RvbU1ldGFsVmll
dy5tICovLAorCQkJCUU5MkVERkZFMjExNTQ2QUIwMDQyRjk2MCAvKiBNYWluLnN0b3J5Ym9hcmQg
Ki8sCisJCQkJRTkyRURGRjkyMTE1NDZBNDAwNDJGOTYwIC8qIFZpZXdDb250cm9sbGVyLmggKi8s
CisJCQkJRTkyRURGRkEyMTE1NDZBNDAwNDJGOTYwIC8qIFZpZXdDb250cm9sbGVyLm0gKi8sCisJ
CQkpOworCQkJbmFtZSA9IEFwcDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CUU5MkVFMDAxMjExNTQ5OUUwMDQyRjk2MCAvKiBUZXN0IGV4ZWN1dGlvbiAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTkyRUUwMEIyMTE1NTQ5ODAwNDJG
OTYwIC8qIF9TaGFyZWRNZXRhbC50eHQgKi8sCisJCQkJRTkyRUUwMDIyMTE1NDlDNTAwNDJGOTYw
IC8qIFRlc3RDYWxsQXJndW1lbnQuaCAqLywKKwkJCQlFOTJFRTAwMzIxMTU0OUM1MDA0MkY5NjAg
LyogVGVzdENhbGxBcmd1bWVudC5tICovLAorCQkJCUU5MkVFMDA4MjExNTRCNUEwMDQyRjk2MCAv
KiBUZXN0RGVzY3JpcHRpb24uaCAqLywKKwkJCQlFOTJFRTAwOTIxMTU0QjVBMDA0MkY5NjAgLyog
VGVzdERlc2NyaXB0aW9uLm0gKi8sCisJCQkJRTkyRUUwMDUyMTE1NEFDNDAwNDJGOTYwIC8qIFRl
c3RGYW1pbHkuaCAqLywKKwkJCQlFOTJFRTAwNjIxMTU0QUM0MDA0MkY5NjAgLyogVGVzdEZhbWls
eS5tICovLAorCQkJCUU5MkVFMDBEMjExNTYzMzAwMDQyRjk2MCAvKiBUZXN0RmFtaWx5UnVubmVy
LmggKi8sCisJCQkJRTkyRUUwMEUyMTE1NjMzMDAwNDJGOTYwIC8qIFRlc3RGYW1pbHlSdW5uZXIu
bSAqLywKKwkJCSk7CisJCQluYW1lID0gIlRlc3QgZXhlY3V0aW9uIjsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CisJCUU5NEMwNkI3MjBGNTZBNDAwMDY3Mjk5MiA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTk0QzA2QzIyMEY1NkE0MDAwNjcy
OTkyIC8qIENvcmUgKi8sCisJCQkJRTkyRDEwOEIyMEY1NkY0NDAwRDc3NkIyIC8qIEZyYW1ld29y
a3MgKi8sCisJCQkJRTk0QzA2QzEyMEY1NkE0MDAwNjcyOTkyIC8qIFByb2R1Y3RzICovLAorCQkJ
CUU5NEMwNkQ5MjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTCBUZXN0cyAqLywKKwkJCSk7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlFOTRDMDZDMTIwRjU2QTQwMDA2NzI5OTIg
LyogUHJvZHVjdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCUU5NEMwNkMwMjBGNTZBNDAwMDY3Mjk5MiAvKiBXSExTTCBUZXN0cy5hcHAgKi8sCisJCQkJ
RTk0QzA2RDYyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNMIFRlc3RzVGVzdHMueGN0ZXN0ICovLAor
CQkJKTsKKwkJCW5hbWUgPSBQcm9kdWN0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CisJCUU5NEMwNkMyMjBGNTZBNDAwMDY3Mjk5MiAvKiBDb3JlICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFOTJFREZGNDIxMTU0NjkxMDA0MkY5NjAg
LyogQXBwICovLAorCQkJCUU5MDZCMDRBMjExNEJEMUQwMEFEMUM1RSAvKiBEZW1vIHNoYWRlcnMg
Ki8sCisJCQkJRTkyRDExQUUyMEY3MEJBRTAwRDc3NkIyIC8qIFJlbmRlcmVyICovLAorCQkJCUU5
NEMwNkY2MjBGNTZDNEYwMDY3Mjk5MiAvKiBTY3JpcHRzICovLAorCQkJCUU5MkVFMDAxMjExNTQ5
OUUwMDQyRjk2MCAvKiBUZXN0IGV4ZWN1dGlvbiAqLywKKwkJCQlFOTRDMDZDOTIwRjU2QTQyMDA2
NzI5OTIgLyogQXNzZXRzLnhjYXNzZXRzICovLAorCQkJCUU5MkQxMDg4MjBGNTZGMDYwMEQ3NzZC
MiAvKiBDb21waWxlci5oICovLAorCQkJCUU5MkQxMDg5MjBGNTZGMDYwMEQ3NzZCMiAvKiBDb21w
aWxlci5tICovLAorCQkJCUU5MkQxMUI5MjBGN0Y2NzMwMEQ3NzZCMiAvKiBDb21waWxlUmVzdWx0
LmggKi8sCisJCQkJRTkyRDExQkEyMEY3RjY3MzAwRDc3NkIyIC8qIENvbXBpbGVSZXN1bHQubSAq
LywKKwkJCQlFOTRDMDZDRTIwRjU2QTQyMDA2NzI5OTIgLyogSW5mby5wbGlzdCAqLywKKwkJCQlF
OTRDMDZDRjIwRjU2QTQyMDA2NzI5OTIgLyogbWFpbi5tICovLAorCQkJCUU5NEMwNkQxMjBGNTZB
NDIwMDY3Mjk5MiAvKiBXSExTTC5lbnRpdGxlbWVudHMgKi8sCisJCQkpOworCQkJcGF0aCA9IENv
cmU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlFOTRDMDZEOTIwRjU2QTQy
MDA2NzI5OTIgLyogV0hMU0wgVGVzdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCUU5NEMwNkRDMjBGNTZBNDIwMDY3Mjk5MiAvKiBJbmZvLnBsaXN0ICov
LAorCQkJCUU5NEMwNkRBMjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTF9Ub3lUZXN0cy5tICovLAor
CQkJKTsKKwkJCW5hbWUgPSAiV0hMU0wgVGVzdHMiOworCQkJcGF0aCA9ICJXSExTTCBUb3lUZXN0
cyI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlFOTRDMDZGNjIwRjU2QzRG
MDA2NzI5OTIgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJRTk1NTY5QkEyMEY1NkNENjAwRjVDRjM0IC8qIEFkZHJlc3NTcGFjZS5qcyAq
LywKKwkJCQlFOTU1NjlCQzIwRjU2Q0Q3MDBGNUNGMzQgLyogQWxsLmpzICovLAorCQkJCUU5QkM1
MEQ5MjE1NUFEMUUwMDA1OTRFOCAvKiBBbGxvY2F0ZUF0RW50cnlQb2ludHMuanMgKi8sCisJCQkJ
RTk1NTY5QkQyMEY1NkNENzAwRjVDRjM0IC8qIEFub255bW91c1ZhcmlhYmxlLmpzICovLAorCQkJ
CUU5NTU2OUI1MjBGNTZDRDYwMEY1Q0YzNCAvKiBBcnJheVJlZlR5cGUuanMgKi8sCisJCQkJRTk1
NTY5QjQyMEY1NkNENjAwRjVDRjM0IC8qIEFycmF5VHlwZS5qcyAqLywKKwkJCQlFOTU1NjlCOTIw
RjU2Q0Q2MDBGNUNGMzQgLyogQXNzaWdubWVudC5qcyAqLywKKwkJCQlFOTU1NjlCRTIwRjU2Q0Q3
MDBGNUNGMzQgLyogQXV0b1dyYXBwZXIuanMgKi8sCisJCQkJRTk0QzA2RkMyMEY1NkNBMzAwNjcy
OTkyIC8qIEJsb2NrLmpzICovLAorCQkJCUU5NTU2OUIxMjBGNTZDRDYwMEY1Q0YzNCAvKiBCb29s
TGl0ZXJhbC5qcyAqLywKKwkJCQlFOTU1NjlCMDIwRjU2Q0Q2MDBGNUNGMzQgLyogQnJlYWsuanMg
Ki8sCisJCQkJRTkyMUQ2MzQyMTM4QzAyNjAwNzc1MDk5IC8qIEJ1aWx0aW5NYXRyaXhHZXR0ZXIu
anMgKi8sCisJCQkJRTkyMUQ2MzUyMTM4QzAyNjAwNzc1MDk5IC8qIEJ1aWx0aW5NYXRyaXhTZXR0
ZXIuanMgKi8sCisJCQkJRTlFRkNGRTkyMTVBQjRGQzAwNUQzOTdFIC8qIEJ1aWx0SW5TZW1hbnRp
Yy5qcyAqLywKKwkJCQlFOTQxQUNCOTIxMzRBNUJCMDAzOTJCQTkgLyogQnVpbHRpblZlY3Rvckdl
dHRlci5qcyAqLywKKwkJCQlFOTQxQUNCQzIxMzRBNUJCMDAzOTJCQTkgLyogQnVpbHRpblZlY3Rv
clNldHRlci5qcyAqLywKKwkJCQlFOTU1NjlCRjIwRjU2Q0Q3MDBGNUNGMzQgLyogQ2FsbEV4cHJl
c3Npb24uanMgKi8sCisJCQkJRTk1NTY5QzAyMEY1NkNENzAwRjVDRjM0IC8qIENhbGxGdW5jdGlv
bi5qcyAqLywKKwkJCQlFOUQ3Q0I5QzIxNEI4MkI3MDBGMUM5MTggLyogQ2FzdHMuanMgKi8sCisJ
CQkJRTk1NTY5QjgyMEY1NkNENjAwRjVDRjM0IC8qIENoZWNrLmpzICovLAorCQkJCUU5NTU2OUMx
MjBGNTZDRDcwMEY1Q0YzNCAvKiBDaGVja2VyLmpzICovLAorCQkJCUU5NTU2OUI2MjBGNTZDRDYw
MEY1Q0YzNCAvKiBDaGVja0xpdGVyYWxUeXBlcy5qcyAqLywKKwkJCQlFOTU1NjlCMzIwRjU2Q0Q2
MDBGNUNGMzQgLyogQ2hlY2tMb29wcy5qcyAqLywKKwkJCQlFOUVGQ0ZFMzIxNUFBNkU2MDA1RDM5
N0UgLyogQ2hlY2tOYXRpdmVGdW5jU3RhZ2VzLmpzICovLAorCQkJCUU5NEMwNkZBMjBGNTZDQTMw
MDY3Mjk5MiAvKiBDaGVja1JlY3Vyc2lvbi5qcyAqLywKKwkJCQlFOTU1NjlCQjIwRjU2Q0Q2MDBG
NUNGMzQgLyogQ2hlY2tSZWN1cnNpdmVUeXBlcy5qcyAqLywKKwkJCQlFOTU1NjlCMjIwRjU2Q0Q2
MDBGNUNGMzQgLyogQ2hlY2tSZXR1cm5zLmpzICovLAorCQkJCUU5NDFBQ0FFMjEzNEE1QkEwMDM5
MkJBOSAvKiBDaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qcyAqLywKKwkJCQlFOTU1NjlCNzIwRjU2
Q0Q2MDBGNUNGMzQgLyogQ2hlY2tVbnJlYWNoYWJsZUNvZGUuanMgKi8sCisJCQkJRTk1NTY5RDQy
MEY1NkNFRDAwRjVDRjM0IC8qIENoZWNrV3JhcHBlZC5qcyAqLywKKwkJCQlFOTU1NjlEQjIwRjU2
Q0VFMDBGNUNGMzQgLyogQ2xvbmVQcm9ncmFtLmpzICovLAorCQkJCUU5NTU2OURDMjBGNTZDRUUw
MEY1Q0YzNCAvKiBDb21tYUV4cHJlc3Npb24uanMgKi8sCisJCQkJRTk1NTY5RDUyMEY1NkNFRDAw
RjVDRjM0IC8qIENvbnN0ZXhwckZvbGRlci5qcyAqLywKKwkJCQlFOTU1NjlENzIwRjU2Q0VEMDBG
NUNGMzQgLyogQ29udGludWUuanMgKi8sCisJCQkJRTk1NTY5RDkyMEY1NkNFRDAwRjVDRjM0IC8q
IENvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyAqLywKKwkJCQlFOTU1NjlEODIwRjU2
Q0VEMDBGNUNGMzQgLyogQ3JlYXRlTGl0ZXJhbC5qcyAqLywKKwkJCQlFOTU1NjlENjIwRjU2Q0VE
MDBGNUNGMzQgLyogQ3JlYXRlTGl0ZXJhbFR5cGUuanMgKi8sCisJCQkJRTk0QzA2RjkyMEY1NkNB
MzAwNjcyOTkyIC8qIERlcmVmZXJlbmNlRXhwcmVzc2lvbi5qcyAqLywKKwkJCQlFOUFEMDc0QjIw
RjU2RDVCMDA3RjI0NjYgLyogRG90RXhwcmVzc2lvbi5qcyAqLywKKwkJCQlFOUFEMDc0NjIwRjU2
RDVBMDA3RjI0NjYgLyogRG9XaGlsZUxvb3AuanMgKi8sCisJCQkJRTlBRDA3NDkyMEY1NkQ1QTAw
N0YyNDY2IC8qIEVBcnJheVJlZi5qcyAqLywKKwkJCQlFOUFEMDc0ODIwRjU2RDVBMDA3RjI0NjYg
LyogRUJ1ZmZlci5qcyAqLywKKwkJCQlFOUFEMDc0QTIwRjU2RDVCMDA3RjI0NjYgLyogRUJ1ZmZl
ckJ1aWxkZXIuanMgKi8sCisJCQkJRTk0QzA2RkQyMEY1NkNBMzAwNjcyOTkyIC8qIEVudW1MaXRl
cmFsLmpzICovLAorCQkJCUU5QUQwNzU1MjBGNTZENjkwMDdGMjQ2NiAvKiBFbnVtTWVtYmVyLmpz
ICovLAorCQkJCUU5QUQwNzVBMjBGNTZENjkwMDdGMjQ2NiAvKiBFbnVtVHlwZS5qcyAqLywKKwkJ
CQlFOTU1NjlFNzIwRjU2RDA1MDBGNUNGMzQgLyogRVB0ci5qcyAqLywKKwkJCQlFOUFEMDc1MzIw
RjU2RDY5MDA3RjI0NjYgLyogRXZhbHVhdGlvbkNvbW1vbi5qcyAqLywKKwkJCQlFOUFEMDc1NzIw
RjU2RDY5MDA3RjI0NjYgLyogRXZhbHVhdG9yLmpzICovLAorCQkJCUU5QUQwNzU0MjBGNTZENjkw
MDdGMjQ2NiAvKiBFeHByZXNzaW9uLmpzICovLAorCQkJCUU5QUQwNzU5MjBGNTZENjkwMDdGMjQ2
NiAvKiBFeHByZXNzaW9uRmluZGVyLmpzICovLAorCQkJCUU5QUQwNzVCMjBGNTZENjkwMDdGMjQ2
NiAvKiBFeHRlcm5hbE9yaWdpbi5qcyAqLywKKwkJCQlFOUZDRUI1QjIwRjU2RDkzMDA5QjM2Mjkg
LyogRmllbGQuanMgKi8sCisJCQkJRTlBRDA3NTgyMEY1NkQ2OTAwN0YyNDY2IC8qIEZpbmRIaWdo
Wm9tYmllcy5qcyAqLywKKwkJCQlFOUFEMDc1NjIwRjU2RDY5MDA3RjI0NjYgLyogRmxhdHRlbmVk
U3RydWN0T2Zmc2V0R2F0aGVyZXIuanMgKi8sCisJCQkJRTlBRDA3NUMyMEY1NkQ2OTAwN0YyNDY2
IC8qIEZsb2F0TGl0ZXJhbC5qcyAqLywKKwkJCQlFOTU1NjlFQTIwRjU2RDA1MDBGNUNGMzQgLyog
RmxvYXRMaXRlcmFsVHlwZS5qcyAqLywKKwkJCQlFOTU1NjlFQjIwRjU2RDA1MDBGNUNGMzQgLyog
Rm9sZENvbnN0ZXhwcnMuanMgKi8sCisJCQkJRTlGQ0VCNUEyMEY1NkQ5MzAwOUIzNjI5IC8qIEZv
ckxvb3AuanMgKi8sCisJCQkJRTlGQ0VCNTUyMEY1NkQ5MjAwOUIzNjI5IC8qIEZ1bmMuanMgKi8s
CisJCQkJRTlFRkNGRTIyMTVBQTZFNjAwNUQzOTdFIC8qIEZ1bmNBdHRyaWJ1dGUuanMgKi8sCisJ
CQkJRTk1NTY5RTgyMEY1NkQwNTAwRjVDRjM0IC8qIEZ1bmNEZWYuanMgKi8sCisJCQkJRTlFRkNG
RTEyMTVBQTZFNTAwNUQzOTdFIC8qIEZ1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzICovLAorCQkJ
CUU5NTU2OUU5MjBGNTZEMDUwMEY1Q0YzNCAvKiBGdW5jUGFyYW1ldGVyLmpzICovLAorCQkJCUU5
NTU2OUU2MjBGNTZEMDUwMEY1Q0YzNCAvKiBGdW5jdGlvbkxpa2VCbG9jay5qcyAqLywKKwkJCQlF
OUVGQ0ZGMTIxNUFENjIyMDA1RDM5N0UgLyogR2F0aGVyRW50cnlQb2ludHMuanMgKi8sCisJCQkJ
RTk0QzA2RkIyMEY1NkNBMzAwNjcyOTkyIC8qIEhpZ2hab21iaWVGaW5kZXIuanMgKi8sCisJCQkJ
RTlGQ0VCNTgyMEY1NkQ5MzAwOUIzNjI5IC8qIElkZW50aXR5RXhwcmVzc2lvbi5qcyAqLywKKwkJ
CQlFOUZDRUI1NzIwRjU2RDkzMDA5QjM2MjkgLyogSWZTdGF0ZW1lbnQuanMgKi8sCisJCQkJRTlG
Q0VCNjMyMEY1NkRBNDAwOUIzNjI5IC8qIEluZGV4RXhwcmVzc2lvbi5qcyAqLywKKwkJCQlFOUZD
RUI2NTIwRjU2REE1MDA5QjM2MjkgLyogSW5mZXJUeXBlc0ZvckNhbGwuanMgKi8sCisJCQkJRTlG
Q0VCNjYyMEY1NkRBNTAwOUIzNjI5IC8qIElubGluZS5qcyAqLywKKwkJCQlFOTJEMEZFODIwRjU2
REREMDBENzc2QjIgLyogSW5saW5lci5qcyAqLywKKwkJCQlFOTJEMEZFNDIwRjU2REREMDBENzc2
QjIgLyogSW50TGl0ZXJhbC5qcyAqLywKKwkJCQlFOTJEMEZFNTIwRjU2REREMDBENzc2QjIgLyog
SW50TGl0ZXJhbFR5cGUuanMgKi8sCisJCQkJRTkyRDBGRTcyMEY1NkRERDAwRDc3NkIyIC8qIElu
dHJpbnNpY3MuanMgKi8sCisJCQkJRTlEN0NCOUIyMTRCODJCNzAwRjFDOTE4IC8qIExhdGVDaGVj
a0FuZExheW91dEJ1ZmZlcnMuanMgKi8sCisJCQkJRTlGQ0VCNjQyMEY1NkRBNTAwOUIzNjI5IC8q
IExhdGVDaGVja2VyLmpzICovLAorCQkJCUU5MkQwRkYxMjBGNTZERUMwMEQ3NzZCMiAvKiBMZXhl
ci5qcyAqLywKKwkJCQlFOTJEMEZGMDIwRjU2REVCMDBENzc2QjIgLyogTGV4ZXJUb2tlbi5qcyAq
LywKKwkJCQlFOTJEMEZGMjIwRjU2REVDMDBENzc2QjIgLyogTGl0ZXJhbFR5cGVDaGVja2VyLmpz
ICovLAorCQkJCUU5MkQwRkVFMjBGNTZERUIwMEQ3NzZCMiAvKiBMb2dpY2FsRXhwcmVzc2lvbi5q
cyAqLywKKwkJCQlFOTJEMEZFRjIwRjU2REVCMDBENzc2QjIgLyogTG9naWNhbE5vdC5qcyAqLywK
KwkJCQlFOTJEMEZGQjIwRjU2REZCMDBENzc2QjIgLyogTG9vcENoZWNrZXIuanMgKi8sCisJCQkJ
RTkyRDBGRkMyMEY1NkRGQjAwRDc3NkIyIC8qIE1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMgKi8s
CisJCQkJRTkyRDBGRjkyMEY1NkRGQTAwRDc3NkIyIC8qIE1ha2VQdHJFeHByZXNzaW9uLmpzICov
LAorCQkJCUU5MjFENjMzMjEzOEMwMjYwMDc3NTA5OSAvKiBNYXRyaXhUeXBlLmpzICovLAorCQkJ
CUU5RDdDQjk1MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xCYWNrZW5kLmpzICovLAorCQkJCUU5N0VE
N0U1MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xDb2RlZ2VuQWxsLmpzICovLAorCQkJCUU5N0VEN0U4
MjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xDb21waWxlUmVzdWx0LmpzICovLAorCQkJCUU5RDdDQjk2
MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xDb25zdGV4cHJFbWl0dGVyLmpzICovLAorCQkJCUU5Mjc4
OUFDMjEzRjMzNjQwMDFFQTczRSAvKiBNU0xGdW5jdGlvbkRlY2xhcmF0aW9uLmpzICovLAorCQkJ
CUU5Mjc4OUFCMjEzRjMzNjQwMDFFQTczRSAvKiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgKi8s
CisJCQkJRTk3M0U1QzcyMTNGMzM4NTAwNUQ3OUZDIC8qIE1TTEZ1bmN0aW9uRm9yd2FyZERlY2xh
cmF0aW9uLmpzICovLAorCQkJCUU5RUZDRkRGMjE1QUE2Q0IwMDVEMzk3RSAvKiBNU0xJbnNlcnRU
cmFwUGFyYW1ldGVyLmpzICovLAorCQkJCUU5N0VEN0UxMjE0QjgyMjkwMEFEMTE0MCAvKiBNU0xO
YW1lTWFuZ2xlci5qcyAqLywKKwkJCQlFOTdFRDdFNDIxNEI4MjI5MDBBRDExNDAgLyogTVNMTmF0
aXZlRnVuY3Rpb25DYWxsLmpzICovLAorCQkJCUU5NzNFNUM4MjEzRjMzODUwMDVENzlGQyAvKiBN
U0xTdGF0ZW1lbnRFbWl0dGVyLmpzICovLAorCQkJCUU5N0VEN0U3MjE0QjgyMjkwMEFEMTE0MCAv
KiBNU0xUeXBlQXR0cmlidXRlcy5qcyAqLywKKwkJCQlFOTdFRDdFMjIxNEI4MjI5MDBBRDExNDAg
LyogTVNMVHlwZUF0dHJpYnV0ZXNNYXAuanMgKi8sCisJCQkJRTk3RUQ3RTYyMTRCODIyOTAwQUQx
MTQwIC8qIE1TTFR5cGVVbmlmaWVyLmpzICovLAorCQkJCUU5MkQwRkY4MjBGNTZERkEwMEQ3NzZC
MiAvKiBOYW1lQ29udGV4dC5qcyAqLywKKwkJCQlFOTJEMEZGQTIwRjU2REZCMDBENzc2QjIgLyog
TmFtZUZpbmRlci5qcyAqLywKKwkJCQlFOTJEMTAwMzIwRjU2RTA5MDBENzc2QjIgLyogTmFtZVJl
c29sdmVyLmpzICovLAorCQkJCUU5MkQxMDA1MjBGNTZFMDkwMEQ3NzZCMiAvKiBOYXRpdmVGdW5j
LmpzICovLAorCQkJCUU5MkQxMDA2MjBGNTZFMDkwMEQ3NzZCMiAvKiBOYXRpdmVUeXBlLmpzICov
LAorCQkJCUU5MkQxMDBGMjBGNTZFMTUwMEQ3NzZCMiAvKiBOb2RlLmpzICovLAorCQkJCUU5MkQx
MDBEMjBGNTZFMTUwMEQ3NzZCMiAvKiBOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzICovLAor
CQkJCUU5MkQxMDBDMjBGNTZFMTUwMEQ3NzZCMiAvKiBOdWxsTGl0ZXJhbC5qcyAqLywKKwkJCQlF
OTJEMTAxMDIwRjU2RTE1MDBENzc2QjIgLyogTnVsbFR5cGUuanMgKi8sCisJCQkJRTkyMUQ2MzIy
MTM4QzAyNjAwNzc1MDk5IC8qIE9wZXJhdG9yQW5kZXJJbmRleGVyLmpzICovLAorCQkJCUU5NDFB
Q0I2MjEzNEE1QkIwMDM5MkJBOSAvKiBPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzICovLAorCQkJ
CUU5MkQxMDBFMjBGNTZFMTUwMEQ3NzZCMiAvKiBPcmlnaW5LaW5kLmpzICovLAorCQkJCUU5MkQx
MDE5MjBGNTZFMjIwMEQ3NzZCMiAvKiBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzICovLAor
CQkJCUU5MkQxMDE3MjBGNTZFMjIwMEQ3NzZCMiAvKiBQYXJzZS5qcyAqLywKKwkJCQlFOTJEMTAx
ODIwRjU2RTIyMDBENzc2QjIgLyogUHJlcGFyZS5qcyAqLywKKwkJCQlFOTJEMTAxQTIwRjU2RTIy
MDBENzc2QjIgLyogUHJvZ3JhbS5qcyAqLywKKwkJCQlFOTJEMTAxNjIwRjU2RTIxMDBENzc2QjIg
LyogUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMgKi8sCisJCQkJRTkyRDEw
MjMyMEY1NkUyRjAwRDc3NkIyIC8qIFByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyAqLywKKwkJ
CQlFOTJEMTAyMDIwRjU2RTJGMDBENzc2QjIgLyogUHJvcGVydHlSZXNvbHZlci5qcyAqLywKKwkJ
CQlFOTJEMTAyQjIwRjU2RTNGMDBENzc2QjIgLyogUHRyVHlwZS5qcyAqLywKKwkJCQlFOTJEMTAy
QTIwRjU2RTNGMDBENzc2QjIgLyogUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyAqLywKKwkJ
CQlFOTJEMTAyQzIwRjU2RTNGMDBENzc2QjIgLyogUmVjdXJzaW9uQ2hlY2tlci5qcyAqLywKKwkJ
CQlFOTJEMTAyRTIwRjU2RTQwMDBENzc2QjIgLyogUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMgKi8s
CisJCQkJRTkyRDEwMzUyMEY1NkU0RjAwRDc3NkIyIC8qIFJlZmVyZW5jZVR5cGUuanMgKi8sCisJ
CQkJRTkyRDEwMzQyMEY1NkU0RjAwRDc3NkIyIC8qIFJlc29sdmVOYW1lcy5qcyAqLywKKwkJCQlF
OTJEMTAzODIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyAqLywKKwkJ
CQlFOTJEMTAzNjIwRjU2RTRGMDBENzc2QjIgLyogUmVzb2x2ZVByb3BlcnRpZXMuanMgKi8sCisJ
CQkJRTkyRDEwMzcyMEY1NkU0RjAwRDc3NkIyIC8qIFJlc29sdmVUeXBlRGVmcy5qcyAqLywKKwkJ
CQlFOUVGQ0ZFQTIxNUFCNEZDMDA1RDM5N0UgLyogUmVzb3VyY2VTZW1hbnRpYy5qcyAqLywKKwkJ
CQlFOTJEMTAzRTIwRjU2RTYxMDBENzc2QjIgLyogUmV0dXJuLmpzICovLAorCQkJCUU5MkQxMDQw
MjBGNTZFNjIwMEQ3NzZCMiAvKiBSZXR1cm5DaGVja2VyLmpzICovLAorCQkJCUU5MkQxMDQyMjBG
NTZFNjIwMEQ3NzZCMiAvKiBSZXR1cm5FeGNlcHRpb24uanMgKi8sCisJCQkJRTkyRDEwNDEyMEY1
NkU2MjAwRDc3NkIyIC8qIFJld3JpdGVyLmpzICovLAorCQkJCUU5RDdDQjlEMjE0QjgyQjgwMEYx
QzkxOCAvKiBTYW1wbGVyLmpzICovLAorCQkJCUU5RUZDRkU3MjE1QUI0RkMwMDVEMzk3RSAvKiBT
ZW1hbnRpYy5qcyAqLywKKwkJCQlFOUVGQ0ZFODIxNUFCNEZDMDA1RDM5N0UgLyogU3BlY2lhbGl6
YXRpb25Db25zdGFudFNlbWFudGljLmpzICovLAorCQkJCUU5RUZDRkVCMjE1QUI0RkQwMDVEMzk3
RSAvKiBTdGFnZUluT3V0U2VtYW50aWMuanMgKi8sCisJCQkJRTkyRDEwM0YyMEY1NkU2MjAwRDc3
NkIyIC8qIFN0YW5kYXJkTGlicmFyeS5qcyAqLywKKwkJCQlFOTJEMTA0ODIwRjU2RTczMDBENzc2
QjIgLyogU3RhdGVtZW50Q2xvbmVyLmpzICovLAorCQkJCUU5MkQxMDQ5MjBGNTZFNzMwMEQ3NzZC
MiAvKiBTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzICovLAorCQkJCUU5MkQxMDRBMjBGNTZFNzMwMEQ3
NzZCMiAvKiBTdHJ1Y3RUeXBlLmpzICovLAorCQkJCUU5MkQxMDRCMjBGNTZFNzMwMEQ3NzZCMiAv
KiBTd2l0Y2hDYXNlLmpzICovLAorCQkJCUU5MkQxMDUyMjBGNTZFODQwMEQ3NzZCMiAvKiBTd2l0
Y2hTdGF0ZW1lbnQuanMgKi8sCisJCQkJRTk0MUFDQjcyMTM0QTVCQjAwMzkyQkE5IC8qIFN5bnRo
ZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzICovLAorCQkJCUU5NDFBQ0FGMjEzNEE1QkEwMDM5
MkJBOSAvKiBTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMgKi8sCisJCQkJRTk0
MUFDQjMyMTM0QTVCQjAwMzkyQkE5IC8qIFN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVy
YXRvci5qcyAqLywKKwkJCQlFOTJEMTA1NDIwRjU2RTg1MDBENzc2QjIgLyogU3ludGhlc2l6ZUVu
dW1GdW5jdGlvbnMuanMgKi8sCisJCQkJRTkyRDEwNTMyMEY1NkU4NDAwRDc3NkIyIC8qIFN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgKi8sCisJCQkJRTk0MUFDQjUyMTM0QTVCQjAwMzkyQkE5
IC8qIFRlcm5hcnlFeHByZXNzaW9uLmpzICovLAorCQkJCUU5NEQxMjdFMjExNEM2RkYwMEIwRjk2
NyAvKiBUZXN0LmpzICovLAorCQkJCUU5RDdDQjlBMjE0QjgyQjcwMEYxQzkxOCAvKiBUZXh0dXJl
LmpzICovLAorCQkJCUU5RDdDQjlFMjE0QjgyQjgwMEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9u
cy5qcyAqLywKKwkJCQlFOTJEMTA1NjIwRjU2RTg1MDBENzc2QjIgLyogVHJhcFN0YXRlbWVudC5q
cyAqLywKKwkJCQlFOTJEMTA1NTIwRjU2RTg1MDBENzc2QjIgLyogVHlwZS5qcyAqLywKKwkJCQlF
OTJEMTA1RjIwRjU2RTk1MDBENzc2QjIgLyogVHlwZURlZi5qcyAqLywKKwkJCQlFOTJEMTA1RTIw
RjU2RTk1MDBENzc2QjIgLyogVHlwZURlZlJlc29sdmVyLmpzICovLAorCQkJCUU5MkQxMDYwMjBG
NTZFOTUwMEQ3NzZCMiAvKiBUeXBlZFZhbHVlLmpzICovLAorCQkJCUU5Mjc4OUIwMjEzRjMzNjQw
MDFFQTczRSAvKiBUeXBlT2YuanMgKi8sCisJCQkJRTk0MUFDQkEyMTM0QTVCQjAwMzkyQkE5IC8q
IFR5cGVPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzICovLAorCQkJCUU5MkQxMDY2MjBGNTZF
QTQwMEQ3NzZCMiAvKiBUeXBlUmVmLmpzICovLAorCQkJCUU5MkQxMDY4MjBGNTZFQTQwMEQ3NzZC
MiAvKiBVaW50TGl0ZXJhbC5qcyAqLywKKwkJCQlFOTJEMTA2NzIwRjU2RUE0MDBENzc2QjIgLyog
VWludExpdGVyYWxUeXBlLmpzICovLAorCQkJCUU5MkQxMDcyMjBGNTZFQkIwMEQ3NzZCMiAvKiBV
bmlmaWNhdGlvbkNvbnRleHQuanMgKi8sCisJCQkJRTkyRDEwNzMyMEY1NkVCQzAwRDc3NkIyIC8q
IFVucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMgKi8sCisJCQkJRTkyRDEwNzQyMEY1NkVCQzAwRDc3
NkIyIC8qIFZhbHVlLmpzICovLAorCQkJCUU5MkQxMDcwMjBGNTZFQkIwMEQ3NzZCMiAvKiBWYXJp
YWJsZURlY2wuanMgKi8sCisJCQkJRTkyRDEwNzEyMEY1NkVCQjAwRDc3NkIyIC8qIFZhcmlhYmxl
UmVmLmpzICovLAorCQkJCUU5NDFBQ0JCMjEzNEE1QkIwMDM5MkJBOSAvKiBWZWN0b3JUeXBlLmpz
ICovLAorCQkJCUU5MkQxMDdDMjBGNTZFQ0YwMEQ3NzZCMiAvKiBWaXNpdGluZ1NldC5qcyAqLywK
KwkJCQlFOTJEMTA3QTIwRjU2RUNGMDBENzc2QjIgLyogVmlzaXRvci5qcyAqLywKKwkJCQlFOTJE
MTA3RDIwRjU2RUNGMDBENzc2QjIgLyogV2hpbGVMb29wLmpzICovLAorCQkJCUU5RDdDQjk0MjE0
QjgyNDIwMEYxQzkxOCAvKiBXaGxzbFRvTXNsLmpzICovLAorCQkJCUU5RDdDQjlGMjE0QjgyQjgw
MEYxQzkxOCAvKiBXTGV4aWNhbEVycm9yLmpzICovLAorCQkJCUU5MkQxMDdCMjBGNTZFQ0YwMEQ3
NzZCMiAvKiBXcmFwQ2hlY2tlci5qcyAqLywKKwkJCQlFOTJEMTA4MjIwRjU2RURFMDBENzc2QjIg
LyogV1N5bnRheEVycm9yLmpzICovLAorCQkJCUU5MkQxMDg0MjBGNTZFREUwMEQ3NzZCMiAvKiBX
VHJhcEVycm9yLmpzICovLAorCQkJCUU5MkQxMDgzMjBGNTZFREUwMEQ3NzZCMiAvKiBXVHlwZUVy
cm9yLmpzICovLAorCQkJKTsKKwkJCW5hbWUgPSBTY3JpcHRzOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKKy8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBC
WE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCUU5NEMwNkJGMjBGNTZBNDAwMDY3Mjk5MiAvKiBX
SExTTCBUZXN0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29u
ZmlndXJhdGlvbkxpc3QgPSBFOTRDMDZFQTIwRjU2QTQyMDA2NzI5OTIgLyogQnVpbGQgY29uZmln
dXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldITFNMIFRlc3RzIiAqLzsKKwkJCWJ1
aWxkUGhhc2VzID0gKAorCQkJCUU5MjU2NTNDMjEyMzRBQTEwMDFBODlEOSAvKiBTaGVsbFNjcmlw
dCAqLywKKwkJCQlFOTRDMDZCQzIwRjU2QTQwMDA2NzI5OTIgLyogU291cmNlcyAqLywKKwkJCQlF
OTRDMDZCRDIwRjU2QTQwMDA2NzI5OTIgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlFOTRDMDZCRTIw
RjU2QTQwMDA2NzI5OTIgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAo
CisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiV0hMU0wgVGVz
dHMiOworCQkJcHJvZHVjdE5hbWUgPSAiV0hMU0wgVG95IjsKKwkJCXByb2R1Y3RSZWZlcmVuY2Ug
PSBFOTRDMDZDMDIwRjU2QTQwMDA2NzI5OTIgLyogV0hMU0wgVGVzdHMuYXBwICovOworCQkJcHJv
ZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5hcHBsaWNhdGlvbiI7CisJCX07CisJ
CUU5NEMwNkQ1MjBGNTZBNDIwMDY3Mjk5MiAvKiBXSExTTCBUZXN0c1Rlc3RzICovID0geworCQkJ
aXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEU5NEMw
NkVEMjBGNTZBNDIwMDY3Mjk5MiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5h
dGl2ZVRhcmdldCAiV0hMU0wgVGVzdHNUZXN0cyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJ
CQlFOTRDMDZEMjIwRjU2QTQyMDA2NzI5OTIgLyogU291cmNlcyAqLywKKwkJCQlFOTRDMDZEMzIw
RjU2QTQyMDA2NzI5OTIgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlFOTRDMDZENDIwRjU2QTQyMDA2
NzI5OTIgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCUU5NEMwNkQ4MjBGNTZBNDIwMDY3Mjk5MiAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiV0hMU0wgVGVzdHNUZXN0cyI7
CisJCQlwcm9kdWN0TmFtZSA9ICJXSExTTCBUb3lUZXN0cyI7CisJCQlwcm9kdWN0UmVmZXJlbmNl
ID0gRTk0QzA2RDYyMEY1NkE0MjAwNjcyOTkyIC8qIFdITFNMIFRlc3RzVGVzdHMueGN0ZXN0ICov
OworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5idW5kbGUudW5pdC10
ZXN0IjsKKwkJfTsKKy8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCisvKiBCZWdp
biBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKwkJRTk0QzA2QjgyMEY1NkE0MDAwNjcyOTkyIC8qIFBy
b2plY3Qgb2JqZWN0ICovID0geworCQkJaXNhID0gUEJYUHJvamVjdDsKKwkJCWF0dHJpYnV0ZXMg
PSB7CisJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDEwMDA7CisJCQkJT1JHQU5JWkFUSU9OTkFNRSA9
ICJBcHBsZSwgSW5jLiI7CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJRTk0QzA2QkYy
MEY1NkE0MDAwNjcyOTkyID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTAuMDsK
KwkJCQkJfTsKKwkJCQkJRTk0QzA2RDUyMEY1NkE0MjAwNjcyOTkyID0geworCQkJCQkJQ3JlYXRl
ZE9uVG9vbHNWZXJzaW9uID0gMTAuMDsKKwkJCQkJCVRlc3RUYXJnZXRJRCA9IEU5NEMwNkJGMjBG
NTZBNDAwMDY3Mjk5MjsKKwkJCQkJfTsKKwkJCQl9OworCQkJfTsKKwkJCWJ1aWxkQ29uZmlndXJh
dGlvbkxpc3QgPSBFOTRDMDZCQjIwRjU2QTQwMDA2NzI5OTIgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhQcm9qZWN0ICJXSExTTCBUZXN0cyIgKi87CisJCQljb21wYXRpYmlsaXR5
VmVyc2lvbiA9ICJYY29kZSA5LjMiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBlbjsKKwkJCWhh
c1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAwOworCQkJa25vd25SZWdpb25zID0gKAorCQkJCWVuLAor
CQkJCUJhc2UsCisJCQkpOworCQkJbWFpbkdyb3VwID0gRTk0QzA2QjcyMEY1NkE0MDAwNjcyOTky
OworCQkJcHJvZHVjdFJlZkdyb3VwID0gRTk0QzA2QzEyMEY1NkE0MDAwNjcyOTkyIC8qIFByb2R1
Y3RzICovOworCQkJcHJvamVjdERpclBhdGggPSAiIjsKKwkJCXByb2plY3RSb290ID0gIiI7CisJ
CQl0YXJnZXRzID0gKAorCQkJCUU5NEMwNkJGMjBGNTZBNDAwMDY3Mjk5MiAvKiBXSExTTCBUZXN0
cyAqLywKKwkJCQlFOTRDMDZENTIwRjU2QTQyMDA2NzI5OTIgLyogV0hMU0wgVGVzdHNUZXN0cyAq
LywKKwkJCSk7CisJCX07CisvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCisKKy8qIEJlZ2lu
IFBCWFJlc291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQlFOTRDMDZCRTIwRjU2QTQwMDA2
NzI5OTIgLyogUmVzb3VyY2VzICovID0geworCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFz
ZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlF
OTJFRTAwQzIxMTU1NDk4MDA0MkY5NjAgLyogX1NoYXJlZE1ldGFsLnR4dCBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJRTkyRDExMTYyMEY3MDYwRTAwRDc3NkIyIC8qIEFkZHJlc3NTcGFjZS5qcyBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMTcyMEY3MDYwRTAwRDc3NkIyIC8qIEFsbC5qcyBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJRTlCQzUwREEyMTU1QUQxRTAwMDU5NEU4IC8qIEFsbG9jYXRlQXRF
bnRyeVBvaW50cy5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMTgyMEY3MDYwRTAwRDc3
NkIyIC8qIEFub255bW91c1ZhcmlhYmxlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEx
OTIwRjcwNjBFMDBENzc2QjIgLyogQXJyYXlSZWZUeXBlLmpzIGluIFJlc291cmNlcyAqLywKKwkJ
CQlFOTJEMTExQTIwRjcwNjBFMDBENzc2QjIgLyogQXJyYXlUeXBlLmpzIGluIFJlc291cmNlcyAq
LywKKwkJCQlFOTRDMDZDQTIwRjU2QTQyMDA2NzI5OTIgLyogQXNzZXRzLnhjYXNzZXRzIGluIFJl
c291cmNlcyAqLywKKwkJCQlFOTJEMTExQjIwRjcwNjBFMDBENzc2QjIgLyogQXNzaWdubWVudC5q
cyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMUMyMEY3MDYwRTAwRDc3NkIyIC8qIEF1dG9X
cmFwcGVyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTExRDIwRjcwNjBFMDBENzc2QjIg
LyogQmxvY2suanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTFFMjBGNzA2MEUwMEQ3NzZC
MiAvKiBCb29sTGl0ZXJhbC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMUYyMEY3MDYw
RTAwRDc3NkIyIC8qIEJyZWFrLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTIxRDYzODIxMzhD
MDI2MDA3NzUwOTkgLyogQnVpbHRpbk1hdHJpeEdldHRlci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJRTkyMUQ2MzkyMTM4QzAyNjAwNzc1MDk5IC8qIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMgaW4g
UmVzb3VyY2VzICovLAorCQkJCUU5RUZDRkVFMjE1QUI0RkQwMDVEMzk3RSAvKiBCdWlsdEluU2Vt
YW50aWMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5NDFBQ0NBMjEzNEE1QkMwMDM5MkJBOSAv
KiBCdWlsdGluVmVjdG9yR2V0dGVyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTQxQUNDRDIx
MzRBNUJDMDAzOTJCQTkgLyogQnVpbHRpblZlY3RvclNldHRlci5qcyBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJRTkyRDExMjAyMEY3MDYwRTAwRDc3NkIyIC8qIENhbGxFeHByZXNzaW9uLmpzIGluIFJl
c291cmNlcyAqLywKKwkJCQlFOTJEMTEyMTIwRjcwNjBFMDBENzc2QjIgLyogQ2FsbEZ1bmN0aW9u
LmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOUQ3Q0JBMjIxNEI4MkI4MDBGMUM5MTggLyogQ2Fz
dHMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTIyMjBGNzA2MEUwMEQ3NzZCMiAvKiBD
aGVjay5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMjMyMEY3MDYwRTAwRDc3NkIyIC8q
IENoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTI0MjBGNzA2MEUwMEQ3NzZC
MiAvKiBDaGVja0xpdGVyYWxUeXBlcy5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMjUy
MEY3MDYwRTAwRDc3NkIyIC8qIENoZWNrTG9vcHMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
RUZDRkU2MjE1QUE2RTYwMDVEMzk3RSAvKiBDaGVja05hdGl2ZUZ1bmNTdGFnZXMuanMgaW4gUmVz
b3VyY2VzICovLAorCQkJCUU5MkQxMTI2MjBGNzA2MEUwMEQ3NzZCMiAvKiBDaGVja1JlY3Vyc2lv
bi5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExMjcyMEY3MDYwRTAwRDc3NkIyIC8qIENo
ZWNrUmVjdXJzaXZlVHlwZXMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTI4MjBGNzA2
MEUwMEQ3NzZCMiAvKiBDaGVja1JldHVybnMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5NDFB
Q0JGMjEzNEE1QkMwMDM5MkJBOSAvKiBDaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qcyBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJRTkyRDExMjkyMEY3MDYwRTAwRDc3NkIyIC8qIENoZWNrVW5yZWFjaGFi
bGVDb2RlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEyQTIwRjcwNjBFMDBENzc2QjIg
LyogQ2hlY2tXcmFwcGVkLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEyQjIwRjcwNjBF
MDBENzc2QjIgLyogQ2xvbmVQcm9ncmFtLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEy
QzIwRjcwNjBFMDBENzc2QjIgLyogQ29tbWFFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywK
KwkJCQlFOTJEMTEyRTIwRjcwNjBFMDBENzc2QjIgLyogQ29uc3RleHByRm9sZGVyLmpzIGluIFJl
c291cmNlcyAqLywKKwkJCQlFOTJEMTEzMDIwRjcwNjBFMDBENzc2QjIgLyogQ29udGludWUuanMg
aW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTMxMjBGNzA2MEUwMEQ3NzZCMiAvKiBDb252ZXJ0
UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTMy
MjBGNzA2MEUwMEQ3NzZCMiAvKiBDcmVhdGVMaXRlcmFsLmpzIGluIFJlc291cmNlcyAqLywKKwkJ
CQlFOTJEMTEzMzIwRjcwNjBFMDBENzc2QjIgLyogQ3JlYXRlTGl0ZXJhbFR5cGUuanMgaW4gUmVz
b3VyY2VzICovLAorCQkJCUU5MkQxMDkzMjBGNTczNDkwMEQ3NzZCMiAvKiBEZWZhdWx0LndobHNs
IGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEzNDIwRjcwNjBFMDBENzc2QjIgLyogRGVyZWZl
cmVuY2VFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEzNTIwRjcwNjBF
MDBENzc2QjIgLyogRG90RXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDEx
MzgyMEY3MDYwRTAwRDc3NkIyIC8qIERvV2hpbGVMb29wLmpzIGluIFJlc291cmNlcyAqLywKKwkJ
CQlFOTJEMTEzOTIwRjcwNjBFMDBENzc2QjIgLyogRUFycmF5UmVmLmpzIGluIFJlc291cmNlcyAq
LywKKwkJCQlFOTJEMTEzQTIwRjcwNjBFMDBENzc2QjIgLyogRUJ1ZmZlci5qcyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJRTkyRDExM0IyMEY3MDYwRTAwRDc3NkIyIC8qIEVCdWZmZXJCdWlsZGVyLmpz
IGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEzQzIwRjcwNjBFMDBENzc2QjIgLyogRW51bUxp
dGVyYWwuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTNEMjBGNzA2MEUwMEQ3NzZCMiAv
KiBFbnVtTWVtYmVyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTEzRTIwRjcwNjBFMDBE
Nzc2QjIgLyogRW51bVR5cGUuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTNGMjBGNzA2
MEUwMEQ3NzZCMiAvKiBFUHRyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE0MDIwRjcw
NjBFMDBENzc2QjIgLyogRXZhbHVhdGlvbkNvbW1vbi5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
RTkyRDExNDEyMEY3MDYwRTAwRDc3NkIyIC8qIEV2YWx1YXRvci5qcyBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJRTkyRDExNDIyMEY3MDYwRTAwRDc3NkIyIC8qIEV4cHJlc3Npb24uanMgaW4gUmVzb3Vy
Y2VzICovLAorCQkJCUU5MkQxMTQzMjBGNzA2MEUwMEQ3NzZCMiAvKiBFeHByZXNzaW9uRmluZGVy
LmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE0NDIwRjcwNjBFMDBENzc2QjIgLyogRXh0
ZXJuYWxPcmlnaW4uanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTQ1MjBGNzA2MEUwMEQ3
NzZCMiAvKiBGaWVsZC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNDYyMEY3MDYwRTAw
RDc3NkIyIC8qIEZpbmRIaWdoWm9tYmllcy5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDEx
NDcyMEY3MDYwRTAwRDc3NkIyIC8qIEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIGlu
IFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE0OTIwRjcwNjBFMDBENzc2QjIgLyogRmxvYXRMaXRl
cmFsLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE0QTIwRjcwNjBFMDBENzc2QjIgLyog
RmxvYXRMaXRlcmFsVHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNEIyMEY3MDYw
RTAwRDc3NkIyIC8qIEZvbGRDb25zdGV4cHJzLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJE
MTE0QzIwRjcwNjBFMDBENzc2QjIgLyogRm9yTG9vcC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
RTkyRDExNEQyMEY3MDYwRTAwRDc3NkIyIC8qIEZ1bmMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUU5RUZDRkU1MjE1QUE2RTYwMDVEMzk3RSAvKiBGdW5jQXR0cmlidXRlLmpzIGluIFJlc291cmNl
cyAqLywKKwkJCQlFOTJEMTE0RTIwRjcwNjBFMDBENzc2QjIgLyogRnVuY0RlZi5qcyBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJRTlFRkNGRTQyMTVBQTZFNjAwNUQzOTdFIC8qIEZ1bmNOdW1UaHJlYWRz
QXR0cmlidXRlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE1MDIwRjcwNjBFMDBENzc2
QjIgLyogRnVuY1BhcmFtZXRlci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNTEyMEY3
MDYwRTAwRDc3NkIyIC8qIEZ1bmN0aW9uTGlrZUJsb2NrLmpzIGluIFJlc291cmNlcyAqLywKKwkJ
CQlFOUVGQ0ZGMjIxNUFENjIzMDA1RDM5N0UgLyogR2F0aGVyRW50cnlQb2ludHMuanMgaW4gUmVz
b3VyY2VzICovLAorCQkJCUU5MkQxMTUyMjBGNzA2MEUwMEQ3NzZCMiAvKiBIaWdoWm9tYmllRmlu
ZGVyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE1MzIwRjcwNjBFMDBENzc2QjIgLyog
SWRlbnRpdHlFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE1NDIwRjcw
NjBFMDBENzc2QjIgLyogSWZTdGF0ZW1lbnQuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQx
MTU1MjBGNzA2MEUwMEQ3NzZCMiAvKiBJbmRleEV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICov
LAorCQkJCUU5MkQxMTU2MjBGNzA2MEUwMEQ3NzZCMiAvKiBJbmZlclR5cGVzRm9yQ2FsbC5qcyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNTcyMEY3MDYwRTAwRDc3NkIyIC8qIElubGluZS5q
cyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNTgyMEY3MDYwRTAwRDc3NkIyIC8qIElubGlu
ZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTVBMjBGNzA2MEUwMEQ3NzZCMiAvKiBJ
bnRMaXRlcmFsLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE1QjIwRjcwNjBFMDBENzc2
QjIgLyogSW50TGl0ZXJhbFR5cGUuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTVDMjBG
NzA2MEUwMEQ3NzZCMiAvKiBJbnRyaW5zaWNzLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTA2
QjA0NjIxMTM5Qjc3MDBBRDFDNUUgLyogSnVsaWEud2hsc2wgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUU5RDdDQkExMjE0QjgyQjgwMEYxQzkxOCAvKiBMYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpz
IGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE1RDIwRjcwNjBFMDBENzc2QjIgLyogTGF0ZUNo
ZWNrZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTVFMjBGNzA2MEUwMEQ3NzZCMiAv
KiBMZXhlci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNUYyMEY3MDYwRTAwRDc3NkIy
IC8qIExleGVyVG9rZW4uanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTYwMjBGNzA2MEUw
MEQ3NzZCMiAvKiBMaXRlcmFsVHlwZUNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
MkQxMTYxMjBGNzA2MEUwMEQ3NzZCMiAvKiBMb2dpY2FsRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJRTkyRDExNjIyMEY3MDYwRTAwRDc3NkIyIC8qIExvZ2ljYWxOb3QuanMgaW4g
UmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTYzMjBGNzA2MEUwMEQ3NzZCMiAvKiBMb29wQ2hlY2tl
ci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRUUwMDAyMTE1NDZBQjAwNDJGOTYwIC8qIE1h
aW4uc3Rvcnlib2FyZCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNjQyMEY3MDYwRTAwRDc3
NkIyIC8qIE1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
MkQxMTY1MjBGNzA2MEUwMEQ3NzZCMiAvKiBNYWtlUHRyRXhwcmVzc2lvbi5qcyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJRTk0RDEyNEYyMTE0QkQ3NjAwQjBGOTY3IC8qIE1hbmRlbGJyb3Qud2hsc2wg
aW4gUmVzb3VyY2VzICovLAorCQkJCUU5MjFENjM3MjEzOEMwMjYwMDc3NTA5OSAvKiBNYXRyaXhU
eXBlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOUQ3Q0I5ODIxNEI4MjQyMDBGMUM5MTggLyog
TVNMQmFja2VuZC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTlEN0NCQTYyMTRCOUU1RjAwRjFD
OTE4IC8qIE1TTENvZGVnZW5BbGwuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkE3MjE0
QjlFNUYwMEYxQzkxOCAvKiBNU0xDb21waWxlUmVzdWx0LmpzIGluIFJlc291cmNlcyAqLywKKwkJ
CQlFOUQ3Q0I5OTIxNEI4MjQyMDBGMUM5MTggLyogTVNMQ29uc3RleHByRW1pdHRlci5qcyBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJRTk3M0U1REUyMTNGMzQxRDAwNUQ3OUZDIC8qIE1TTEZ1bmN0aW9u
RGVjbGFyYXRpb24uanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5NzNFNURGMjEzRjM0MUQwMDVE
NzlGQyAvKiBNU0xGdW5jdGlvbkRlZmluaXRpb24uanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
NzNFNUNFMjEzRjMzODUwMDVENzlGQyAvKiBNU0xGdW5jdGlvbkZvcndhcmREZWNsYXJhdGlvbi5q
cyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTlFRkNGRTAyMTVBQTZDQzAwNUQzOTdFIC8qIE1TTElu
c2VydFRyYXBQYXJhbWV0ZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkE4MjE0QjlF
NUYwMEYxQzkxOCAvKiBNU0xOYW1lTWFuZ2xlci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTlE
N0NCQTkyMTRCOUU1RjAwRjFDOTE4IC8qIE1TTE5hdGl2ZUZ1bmN0aW9uQ2FsbC5qcyBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJRTk3M0U1Q0YyMTNGMzM4NTAwNUQ3OUZDIC8qIE1TTFN0YXRlbWVudEVt
aXR0ZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkFBMjE0QjlFNUYwMEYxQzkxOCAv
KiBNU0xUeXBlQXR0cmlidXRlcy5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTlEN0NCQUIyMTRC
OUU1RjAwRjFDOTE4IC8qIE1TTFR5cGVBdHRyaWJ1dGVzTWFwLmpzIGluIFJlc291cmNlcyAqLywK
KwkJCQlFOUQ3Q0JBQzIxNEI5RTVGMDBGMUM5MTggLyogTVNMVHlwZVVuaWZpZXIuanMgaW4gUmVz
b3VyY2VzICovLAorCQkJCUU5MkQxMTY2MjBGNzA2MEUwMEQ3NzZCMiAvKiBOYW1lQ29udGV4dC5q
cyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExNjcyMEY3MDYwRTAwRDc3NkIyIC8qIE5hbWVG
aW5kZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTY4MjBGNzA2MEUwMEQ3NzZCMiAv
KiBOYW1lUmVzb2x2ZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTY5MjBGNzA2MEUw
MEQ3NzZCMiAvKiBOYXRpdmVGdW5jLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE2QjIw
RjcwNjBFMDBENzc2QjIgLyogTmF0aXZlVHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTky
RDExNkQyMEY3MDYwRTAwRDc3NkIyIC8qIE5vZGUuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
MkQxMTZFMjBGNzA2MEUwMEQ3NzZCMiAvKiBOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIGlu
IFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE2RjIwRjcwNjBFMDBENzc2QjIgLyogTnVsbExpdGVy
YWwuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTcwMjBGNzA2MEUwMEQ3NzZCMiAvKiBO
dWxsVHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyMUQ2MzYyMTM4QzAyNjAwNzc1MDk5
IC8qIE9wZXJhdG9yQW5kZXJJbmRleGVyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTQxQUND
NzIxMzRBNUJDMDAzOTJCQTkgLyogT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJRTkyRDExNzEyMEY3MDYwRTAwRDc3NkIyIC8qIE9yaWdpbktpbmQuanMgaW4g
UmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTcyMjBGNzA2MEUwMEQ3NzZCMiAvKiBPdmVybG9hZFJl
c29sdXRpb25GYWlsdXJlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE3MzIwRjcwNjBF
MDBENzc2QjIgLyogUGFyc2UuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTc0MjBGNzA2
MEUwMEQ3NzZCMiAvKiBQcmVwYXJlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE3NTIw
RjcwNjBFMDBENzc2QjIgLyogUHJvZ3JhbS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDEx
NzYyMEY3MDYwRTAwRDc3NkIyIC8qIFByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVk
LmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE3NzIwRjcwNjBFMDBENzc2QjIgLyogUHJv
cGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE3ODIw
RjcwNjBFMDBENzc2QjIgLyogUHJvcGVydHlSZXNvbHZlci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJRTkyRDExN0QyMEY3MDYwRTAwRDc3NkIyIC8qIFB0clR5cGUuanMgaW4gUmVzb3VyY2VzICov
LAorCQkJCUU5MkQxMTdFMjBGNzA2MEUwMEQ3NzZCMiAvKiBSZWFkTW9kaWZ5V3JpdGVFeHByZXNz
aW9uLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE3RjIwRjcwNjBFMDBENzc2QjIgLyog
UmVjdXJzaW9uQ2hlY2tlci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExODAyMEY3MDYw
RTAwRDc3NkIyIC8qIFJlY3Vyc2l2ZVR5cGVDaGVja2VyLmpzIGluIFJlc291cmNlcyAqLywKKwkJ
CQlFOTJEMTE4MTIwRjcwNjBFMDBENzc2QjIgLyogUmVmZXJlbmNlVHlwZS5qcyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJRTkyRDExODIyMEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVOYW1lcy5qcyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExODMyMEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVP
dmVybG9hZEltcGwuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTg0MjBGNzA2MEUwMEQ3
NzZCMiAvKiBSZXNvbHZlUHJvcGVydGllcy5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDEx
ODUyMEY3MDYwRTAwRDc3NkIyIC8qIFJlc29sdmVUeXBlRGVmcy5qcyBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJRTlFRkNGRUYyMTVBQjRGRDAwNUQzOTdFIC8qIFJlc291cmNlU2VtYW50aWMuanMgaW4g
UmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTg2MjBGNzA2MEUwMEQ3NzZCMiAvKiBSZXR1cm4uanMg
aW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTg3MjBGNzA2MEUwMEQ3NzZCMiAvKiBSZXR1cm5D
aGVja2VyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE4ODIwRjcwNjBFMDBENzc2QjIg
LyogUmV0dXJuRXhjZXB0aW9uLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE4OTIwRjcw
NjBFMDBENzc2QjIgLyogUmV3cml0ZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkEz
MjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOUVG
Q0ZFQzIxNUFCNEZEMDA1RDM5N0UgLyogU2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUU5RUZDRkVEMjE1QUI0RkQwMDVEMzk3RSAvKiBTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50
aWMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RUZDRkYwMjE1QUI0RkQwMDVEMzk3RSAvKiBT
dGFnZUluT3V0U2VtYW50aWMuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMThBMjBGNzA2
MEUwMEQ3NzZCMiAvKiBTdGFuZGFyZExpYnJhcnkuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
MkQxMThCMjBGNzA2MEUwMEQ3NzZCMiAvKiBTdGF0ZW1lbnRDbG9uZXIuanMgaW4gUmVzb3VyY2Vz
ICovLAorCQkJCUU5MkQxMThDMjBGNzA2MEUwMEQ3NzZCMiAvKiBTdHJ1Y3RMYXlvdXRCdWlsZGVy
LmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE4RDIwRjcwNjBFMDBENzc2QjIgLyogU3Ry
dWN0VHlwZS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExOEYyMEY3MDYwRTAwRDc3NkIy
IC8qIFN3aXRjaENhc2UuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQxMTkwMjBGNzA2MEUw
MEQ3NzZCMiAvKiBTd2l0Y2hTdGF0ZW1lbnQuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5NDFB
Q0M4MjEzNEE1QkMwMDM5MkJBOSAvKiBTeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qcyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJRTk0MUFDQzAyMTM0QTVCQzAwMzkyQkE5IC8qIFN5bnRoZXNp
emVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTk0MUFD
QzQyMTM0QTVCQzAwMzkyQkE5IC8qIFN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRv
ci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExOTEyMEY3MDYwRTAwRDc3NkIyIC8qIFN5
bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTE5MjIw
RjcwNjBFMDBENzc2QjIgLyogU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJRTk0MUFDQzYyMTM0QTVCQzAwMzkyQkE5IC8qIFRlcm5hcnlFeHByZXNzaW9u
LmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTREMTI3RjIxMTRDNkZGMDBCMEY5NjcgLyogVGVz
dC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTlEN0NCQTAyMTRCODJCODAwRjFDOTE4IC8qIFRl
eHR1cmUuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkE0MjE0QjgyQjgwMEYxQzkxOCAv
KiBUZXh0dXJlT3BlcmF0aW9ucy5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExOTMyMEY3
MDYwRTAwRDc3NkIyIC8qIFRyYXBTdGF0ZW1lbnQuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
MkQxMTk0MjBGNzA2MEUwMEQ3NzZCMiAvKiBUeXBlLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlF
OTJEMTE5NTIwRjcwNjBFMDBENzc2QjIgLyogVHlwZURlZi5qcyBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJRTkyRDExOTYyMEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVEZWZSZXNvbHZlci5qcyBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJRTkyRDExOTcyMEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVkVmFsdWUuanMg
aW4gUmVzb3VyY2VzICovLAorCQkJCUU5NzNFNUUzMjEzRjM0MUQwMDVENzlGQyAvKiBUeXBlT2Yu
anMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5NDFBQ0NCMjEzNEE1QkMwMDM5MkJBOSAvKiBUeXBl
T3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDEx
OUEyMEY3MDYwRTAwRDc3NkIyIC8qIFR5cGVSZWYuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5
MkQxMTlEMjBGNzA2MEUwMEQ3NzZCMiAvKiBVaW50TGl0ZXJhbC5qcyBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJRTkyRDExOUUyMEY3MDYwRTAwRDc3NkIyIC8qIFVpbnRMaXRlcmFsVHlwZS5qcyBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExOUYyMEY3MDYwRTAwRDc3NkIyIC8qIFVuaWZpY2F0aW9u
Q29udGV4dC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExQTAyMEY3MDYwRTAwRDc3NkIy
IC8qIFVucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5MkQx
MUExMjBGNzA2MEUwMEQ3NzZCMiAvKiBWYWx1ZS5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTky
RDExQTIyMEY3MDYwRTAwRDc3NkIyIC8qIFZhcmlhYmxlRGVjbC5qcyBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJRTkyRDExQTMyMEY3MDYwRTAwRDc3NkIyIC8qIFZhcmlhYmxlUmVmLmpzIGluIFJlc291
cmNlcyAqLywKKwkJCQlFOTQxQUNDQzIxMzRBNUJDMDAzOTJCQTkgLyogVmVjdG9yVHlwZS5qcyBp
biBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExQTQyMEY3MDYwRTAwRDc3NkIyIC8qIFZpc2l0aW5n
U2V0LmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTFBNTIwRjcwNjBFMDBENzc2QjIgLyog
VmlzaXRvci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTkyRDExQTYyMEY3MDYwRTAwRDc3NkIy
IC8qIFdoaWxlTG9vcC5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTlEN0NCOTcyMTRCODI0MjAw
RjFDOTE4IC8qIFdobHNsVG9Nc2wuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkE1MjE0
QjgyQjgwMEYxQzkxOCAvKiBXTGV4aWNhbEVycm9yLmpzIGluIFJlc291cmNlcyAqLywKKwkJCQlF
OTJEMTFBNzIwRjcwNjBFMDBENzc2QjIgLyogV3JhcENoZWNrZXIuanMgaW4gUmVzb3VyY2VzICov
LAorCQkJCUU5MkQxMUE4MjBGNzA2MEUwMEQ3NzZCMiAvKiBXU3ludGF4RXJyb3IuanMgaW4gUmVz
b3VyY2VzICovLAorCQkJCUU5MkQxMUE5MjBGNzA2MEUwMEQ3NzZCMiAvKiBXVHJhcEVycm9yLmpz
IGluIFJlc291cmNlcyAqLywKKwkJCQlFOTJEMTFBQTIwRjcwNjBFMDBENzc2QjIgLyogV1R5cGVF
cnJvci5qcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisJCUU5NEMwNkQ0MjBGNTZBNDIwMDY3Mjk5MiAvKiBS
ZXNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworLyogRW5kIFBCWFJlc291
cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxk
UGhhc2Ugc2VjdGlvbiAqLworCQlFOTI1NjUzQzIxMjM0QUExMDAxQTg5RDkgLyogU2hlbGxTY3Jp
cHQgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRGaWxl
TGlzdFBhdGhzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJb3V0cHV0
RmlsZUxpc3RQYXRocyA9ICgKKwkJCSk7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9i
aW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICIjIFR5cGUgYSBzY3JpcHQgb3IgZHJhZyBhIHNjcmlw
dCBmaWxlIGZyb20geW91ciB3b3Jrc3BhY2UgdG8gaW5zZXJ0IGl0cyBwYXRoLlxuY2QgXCIkU1JD
Uk9PVC8uLlwiXG50c2NcbiI7CisJCX07CisvKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwor
CQlFOTRDMDZCQzIwRjU2QTQwMDA2NzI5OTIgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJCUU5MkVERkZDMjExNTQ2QTQwMDQyRjk2MCAvKiBBcHBEZWxlZ2F0ZS5t
IGluIFNvdXJjZXMgKi8sCisJCQkJRTkyRDEwOEEyMEY1NkYwNjAwRDc3NkIyIC8qIENvbXBpbGVy
Lm0gaW4gU291cmNlcyAqLywKKwkJCQlFOTJEMTFCQjIwRjdGNjczMDBENzc2QjIgLyogQ29tcGls
ZVJlc3VsdC5tIGluIFNvdXJjZXMgKi8sCisJCQkJRTkyRURGRkIyMTE1NDZBNDAwNDJGOTYwIC8q
IEN1c3RvbU1ldGFsVmlldy5tIGluIFNvdXJjZXMgKi8sCisJCQkJRTk0QzA2RDAyMEY1NkE0MjAw
NjcyOTkyIC8qIG1haW4ubSBpbiBTb3VyY2VzICovLAorCQkJCUU5MkQxMUFEMjBGNzA4MTUwMEQ3
NzZCMiAvKiBPZmZzY3JlZW5SZW5kZXJlci5tIGluIFNvdXJjZXMgKi8sCisJCQkJRTkyRDEwQUYy
MEY1N0M5RjAwRDc3NkIyIC8qIE9uc2NyZWVuUmVuZGVyZXIubSBpbiBTb3VyY2VzICovLAorCQkJ
CUU5MkQxMTE1MjBGNkZGQjYwMEQ3NzZCMiAvKiBSZW5kZXJlci5tIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTkyRUUwMDQyMTE1NDlDNTAwNDJGOTYwIC8qIFRlc3RDYWxsQXJndW1lbnQubSBpbiBTb3Vy
Y2VzICovLAorCQkJCUU5MkVFMDBBMjExNTRCNUEwMDQyRjk2MCAvKiBUZXN0RGVzY3JpcHRpb24u
bSBpbiBTb3VyY2VzICovLAorCQkJCUU5MkVFMDA3MjExNTRBQzQwMDQyRjk2MCAvKiBUZXN0RmFt
aWx5Lm0gaW4gU291cmNlcyAqLywKKwkJCQlFOTJFRTAwRjIxMTU2MzMwMDA0MkY5NjAgLyogVGVz
dEZhbWlseVJ1bm5lci5tIGluIFNvdXJjZXMgKi8sCisJCQkJRTkyRURGRkQyMTE1NDZBNDAwNDJG
OTYwIC8qIFZpZXdDb250cm9sbGVyLm0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKwkJRTk0QzA2RDIyMEY1NkE0
MjAwNjcyOTkyIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFz
ZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlF
OTRDMDZEQjIwRjU2QTQyMDA2NzI5OTIgLyogV0hMU0xfVG95VGVzdHMubSBpbiBTb3VyY2VzICov
LAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9
OworLyogRW5kIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJY
VGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisJCUU5NEMwNkQ4MjBGNTZBNDIwMDY3Mjk5MiAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5j
eTsKKwkJCXRhcmdldCA9IEU5NEMwNkJGMjBGNTZBNDAwMDY3Mjk5MiAvKiBXSExTTCBUZXN0cyAq
LzsKKwkJCXRhcmdldFByb3h5ID0gRTk0QzA2RDcyMEY1NkE0MjAwNjcyOTkyIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKy8qIEVuZCBQQlhUYXJnZXREZXBlbmRlbmN5IHNlY3Rp
b24gKi8KKworLyogQmVnaW4gUEJYVmFyaWFudEdyb3VwIHNlY3Rpb24gKi8KKwkJRTkyRURGRkUy
MTE1NDZBQjAwNDJGOTYwIC8qIE1haW4uc3Rvcnlib2FyZCAqLyA9IHsKKwkJCWlzYSA9IFBCWFZh
cmlhbnRHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUU5MkVERkZGMjExNTQ2QUIwMDQyRjk2
MCAvKiBCYXNlICovLAorCQkJKTsKKwkJCW5hbWUgPSBNYWluLnN0b3J5Ym9hcmQ7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OworLyogRW5kIFBCWFZhcmlhbnRHcm91cCBzZWN0aW9u
ICovCisKKy8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJRTk0QzA2
RTgyMEY1NkE0MjAwNjcyOTkyIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNFUl9Q
QVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xBTkdf
QU5BTFlaRVJfTlVNQkVSX09CSkVDVF9DT05WRVJTSU9OID0gWUVTX0FHR1JFU1NJVkU7CisJCQkJ
Q0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMTQiOworCQkJCUNMQU5HX0NYWF9M
SUJSQVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJ
Q0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9PQkpDX1dFQUsg
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9CTE9DS19DQVBUVVJFX0FVVE9SRUxFQVNJTkcgPSBZRVM7
CisJCQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9D
T01NQSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9ERVBSRUNBVEVEX09CSkNfSU1QTEVNRU5UQVRJT05TID0gWUVTOworCQkJ
CUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVTX0VSUk9SOworCQkJCUNMQU5H
X1dBUk5fRE9DVU1FTlRBVElPTl9DT01NRU5UUyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0VNUFRZ
X0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9JTkZJTklURV9SRUNVUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRf
Q09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX05PTl9MSVRFUkFMX05VTExfQ09OVkVS
U0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfSU1QTElDSVRfUkVUQUlOX1NFTEYgPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX0xJVEVSQUxfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1JB
TkdFX0xPT1BfQU5BTFlTSVMgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9TVFJJQ1RfUFJPVE9UWVBF
UyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX1NVU1BJQ0lPVVNfTU9WRSA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX1VOR1VBUkRFRF9BVkFJTEFCSUxJVFkgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlDTEFO
R19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRF
X01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiTWFjIERldmVs
b3BlciI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCURFQlVHX0lORk9STUFUSU9O
X0ZPUk1BVCA9IGR3YXJmOworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVTOwor
CQkJCUVOQUJMRV9URVNUQUJJTElUWSA9IFlFUzsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFS
RCA9IGdudTExOworCQkJCUdDQ19EWU5BTUlDX05PX1BJQyA9IE5POworCQkJCUdDQ19OT19DT01N
T05fQkxPQ0tTID0gWUVTOworCQkJCUdDQ19PUFRJTUlaQVRJT05fTEVWRUwgPSAwOworCQkJCUdD
Q19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAoCisJCQkJCSJERUJVRz0xIiwKKwkJCQkJIiQo
aW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lP
TiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJ
CQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5J
VElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVO
Q1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5G
TyA9IElOQ0xVREVfU09VUkNFOworCQkJCU9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7CisJCQkJU0RL
Uk9PVCA9IG1hY29zeDsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCUU5NEMwNkU5
MjBGNTZBNDIwMDY3Mjk5MiAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNFUl9Q
QVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xBTkdf
QU5BTFlaRVJfTlVNQkVSX09CSkVDVF9DT05WRVJTSU9OID0gWUVTX0FHR1JFU1NJVkU7CisJCQkJ
Q0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMTQiOworCQkJCUNMQU5HX0NYWF9M
SUJSQVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJ
Q0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9PQkpDX1dFQUsg
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9CTE9DS19DQVBUVVJFX0FVVE9SRUxFQVNJTkcgPSBZRVM7
CisJCQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9D
T01NQSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9ERVBSRUNBVEVEX09CSkNfSU1QTEVNRU5UQVRJT05TID0gWUVTOworCQkJ
CUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVTX0VSUk9SOworCQkJCUNMQU5H
X1dBUk5fRE9DVU1FTlRBVElPTl9DT01NRU5UUyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0VNUFRZ
X0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9JTkZJTklURV9SRUNVUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRf
Q09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX05PTl9MSVRFUkFMX05VTExfQ09OVkVS
U0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfSU1QTElDSVRfUkVUQUlOX1NFTEYgPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX0xJVEVSQUxfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1JB
TkdFX0xPT1BfQU5BTFlTSVMgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9TVFJJQ1RfUFJPVE9UWVBF
UyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX1NVU1BJQ0lPVVNfTU9WRSA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX1VOR1VBUkRFRF9BVkFJTEFCSUxJVFkgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlDTEFO
R19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRF
X01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiTWFjIERldmVs
b3BlciI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCURFQlVHX0lORk9STUFUSU9O
X0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOworCQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0g
Tk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJR0NDX0NfTEFO
R1VBR0VfU1RBTkRBUkQgPSBnbnUxMTsKKwkJCQlHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsK
KwkJCQlHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlHQ0NfV0FS
Tl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVE
X1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNf
QUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0ND
X1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VCA9IDEwLjE0OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVNES1JPT1Qg
PSBtYWNvc3g7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCUU5NEMwNkVCMjBG
NTZBNDIwMDY3Mjk5MiAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBU1NFVENBVEFMT0dfQ09NUElMRVJfQVBQ
SUNPTl9OQU1FID0gQXBwSWNvbjsKKwkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTID0gQ29yZS9X
SExTTC5lbnRpdGxlbWVudHM7CisJCQkJQ09ERV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNP
REVfU0lHTl9TVFlMRSA9IEF1dG9tYXRpYzsKKwkJCQlDT01CSU5FX0hJRFBJX0lNQUdFUyA9IFlF
UzsKKwkJCQlERVZFTE9QTUVOVF9URUFNID0gIiI7CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSBDb3Jl
L0luZm8ucGxpc3Q7CisJCQkJTERfUlVOUEFUSF9TRUFSQ0hfUEFUSFMgPSAoCisJCQkJCSIkKGlu
aGVyaXRlZCkiLAorCQkJCQkiQGV4ZWN1dGFibGVfcGF0aC8uLi9GcmFtZXdvcmtzIiwKKwkJCQkp
OworCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAiY29tLmFwcGxlLldITFNMLVRveSI7
CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0g
RGVidWc7CisJCX07CisJCUU5NEMwNkVDMjBGNTZBNDIwMDY3Mjk5MiAvKiBSZWxlYXNlICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCUFTU0VUQ0FUQUxPR19DT01QSUxFUl9BUFBJQ09OX05BTUUgPSBBcHBJY29uOworCQkJCUNP
REVfU0lHTl9FTlRJVExFTUVOVFMgPSBDb3JlL1dITFNMLmVudGl0bGVtZW50czsKKwkJCQlDT0RF
X1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwor
CQkJCUNPTUJJTkVfSElEUElfSU1BR0VTID0gWUVTOworCQkJCURFVkVMT1BNRU5UX1RFQU0gPSAi
IjsKKwkJCQlJTkZPUExJU1RfRklMRSA9IENvcmUvSW5mby5wbGlzdDsKKwkJCQlMRF9SVU5QQVRI
X1NFQVJDSF9QQVRIUyA9ICgKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJCSJAZXhlY3V0YWJs
ZV9wYXRoLy4uL0ZyYW1ld29ya3MiLAorCQkJCSk7CisJCQkJUFJPRFVDVF9CVU5ETEVfSURFTlRJ
RklFUiA9ICJjb20uYXBwbGUuV0hMU0wtVG95IjsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJH
RVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQlFOTRDMDZFRTIw
RjU2QTQyMDA2NzI5OTIgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQlVORExFX0xPQURFUiA9ICIkKFRFU1Rf
SE9TVCkiOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICItIjsKKwkJCQlDT0RFX1NJR05fU1RZ
TEUgPSBBdXRvbWF0aWM7CisJCQkJQ09NQklORV9ISURQSV9JTUFHRVMgPSBZRVM7CisJCQkJREVW
RUxPUE1FTlRfVEVBTSA9ICIiOworCQkJCUlORk9QTElTVF9GSUxFID0gIldITFNMIFRveVRlc3Rz
L0luZm8ucGxpc3QiOworCQkJCUxEX1JVTlBBVEhfU0VBUkNIX1BBVEhTID0gKAorCQkJCQkiJChp
bmhlcml0ZWQpIiwKKwkJCQkJIkBleGVjdXRhYmxlX3BhdGgvLi4vRnJhbWV3b3JrcyIsCisJCQkJ
CSJAbG9hZGVyX3BhdGgvLi4vRnJhbWV3b3JrcyIsCisJCQkJKTsKKwkJCQlQUk9EVUNUX0JVTkRM
RV9JREVOVElGSUVSID0gImNvbS5hcHBsZS5XSExTTC1Ub3lUZXN0cyI7CisJCQkJUFJPRFVDVF9O
QU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlURVNUX0hPU1QgPSAiJChCVUlMVF9QUk9EVUNU
U19ESVIpL1dITFNMIFRlc3RzLmFwcC9Db250ZW50cy9NYWNPUy9XSExTTCBUZXN0cyI7CisJCQl9
OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQlFOTRDMDZFRjIwRjU2QTQyMDA2NzI5OTIgLyog
UmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlCVU5ETEVfTE9BREVSID0gIiQoVEVTVF9IT1NUKSI7CisJCQkJQ09E
RV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPREVfU0lHTl9TVFlMRSA9IEF1dG9tYXRpYzsK
KwkJCQlDT01CSU5FX0hJRFBJX0lNQUdFUyA9IFlFUzsKKwkJCQlERVZFTE9QTUVOVF9URUFNID0g
IiI7CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiV0hMU0wgVG95VGVzdHMvSW5mby5wbGlzdCI7CisJ
CQkJTERfUlVOUEFUSF9TRUFSQ0hfUEFUSFMgPSAoCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJ
CQkiQGV4ZWN1dGFibGVfcGF0aC8uLi9GcmFtZXdvcmtzIiwKKwkJCQkJIkBsb2FkZXJfcGF0aC8u
Li9GcmFtZXdvcmtzIiwKKwkJCQkpOworCQkJCVBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAi
Y29tLmFwcGxlLldITFNMLVRveVRlc3RzIjsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJCVRFU1RfSE9TVCA9ICIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV0hMU0wgVGVz
dHMuYXBwL0NvbnRlbnRzL01hY09TL1dITFNMIFRlc3RzIjsKKwkJCX07CisJCQluYW1lID0gUmVs
ZWFzZTsKKwkJfTsKKy8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCisKKy8q
IEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLworCQlFOTRDMDZCQjIwRjU2QTQw
MDA2NzI5OTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXSExT
TCBUZXN0cyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRD
b25maWd1cmF0aW9ucyA9ICgKKwkJCQlFOTRDMDZFODIwRjU2QTQyMDA2NzI5OTIgLyogRGVidWcg
Ki8sCisJCQkJRTk0QzA2RTkyMEY1NkE0MjAwNjcyOTkyIC8qIFJlbGVhc2UgKi8sCisJCQkpOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25OYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJRTk0QzA2RUEyMEY1NkE0MjAwNjcyOTkyIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXSExTTCBUZXN0
cyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1
cmF0aW9ucyA9ICgKKwkJCQlFOTRDMDZFQjIwRjU2QTQyMDA2NzI5OTIgLyogRGVidWcgKi8sCisJ
CQkJRTk0QzA2RUMyMEY1NkE0MjAwNjcyOTkyIC8qIFJlbGVhc2UgKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJRTk0QzA2RUQyMEY1NkE0MjAwNjcyOTkyIC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXSExTTCBUZXN0c1Rlc3Rz
IiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25zID0gKAorCQkJCUU5NEMwNkVFMjBGNTZBNDIwMDY3Mjk5MiAvKiBEZWJ1ZyAqLywKKwkJ
CQlFOTRDMDZFRjIwRjU2QTQyMDA2NzI5OTIgLyogUmVsZWFzZSAqLywKKwkJCSk7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5h
bWUgPSBSZWxlYXNlOworCQl9OworLyogRW5kIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAq
LworCX07CisJcm9vdE9iamVjdCA9IEU5NEMwNkI4MjBGNTZBNDAwMDY3Mjk5MiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRveVRlc3RzL0luZm8ucGxpc3QgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0cy9JbmZv
LnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjNDBhNmNkMGM0YWYyZjBkOTNiNjk3ZmJmYjA2Njc5MzY4MWIw
NDUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0cy9JbmZvLnBsaXN0CQpAQCAtMCwwICsxLDIyIEBA
Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0
IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5j
b20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxk
aWN0PgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+JChE
RVZFTE9QTUVOVF9MQU5HVUFHRSk8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwv
a2V5PgorCTxzdHJpbmc+JChFWEVDVVRBQkxFX05BTUUpPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPiQoUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUik8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0
cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JChQ
Uk9EVUNUX05BTUUpPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJ
PHN0cmluZz5CTkRMPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwv
a2V5PgorCTxzdHJpbmc+MS4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4K
Kwk8c3RyaW5nPjE8L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUb3lUZXN0
cy9XSExTTF9Ub3lUZXN0cy5tIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwv
V0hMU0wgVGVzdHMvV0hMU0wgVG95VGVzdHMvV0hMU0xfVG95VGVzdHMubQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NDA0ZTVkMDA2ODI4MWJhYTFiZTFjYmI0NDhlMTA0MDkxOTc1MWVlCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvV0hMU0wg
VG95VGVzdHMvV0hMU0xfVG95VGVzdHMubQkKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFhDVGVzdC9YQ1Rlc3Qu
aD4KKworI2ltcG9ydCAiVGVzdEZhbWlseS5oIgorI2ltcG9ydCAiVGVzdEZhbWlseVJ1bm5lci5o
IgorCisvLy8gVGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0ZXN0cyBpcyBpbiBUZXN0Lmgv
bQorQGludGVyZmFjZSBXSExTTFNoYWRlclRlc3QgOiBYQ1Rlc3RDYXNlCisKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdITFNMU2hhZGVyVGVzdAorCisrIChXSExTTFNoYWRlclRlc3QqKXRlc3RD
YXNlSW5zdGFuY2VGcm9tSW1wbGVtZW50YXRpb246KFRlc3RGYW1pbHkqKXRlc3QKK3sKKyAgICBO
U01ldGhvZFNpZ25hdHVyZSAqdGVzdFNpZ25hdHVyZSA9IFtXSExTTFNoYWRlclRlc3QgaW5zdGFu
Y2VNZXRob2RTaWduYXR1cmVGb3JTZWxlY3RvcjpAc2VsZWN0b3IodGVzdFNoYWRlckNvbXBpbGF0
aW9uQW5kRXhlY3V0aW9uOildOworICAgIE5TSW52b2NhdGlvbiAqdGVzdEludm9jYXRpb24gPSBb
TlNJbnZvY2F0aW9uIGludm9jYXRpb25XaXRoTWV0aG9kU2lnbmF0dXJlOnRlc3RTaWduYXR1cmVd
OworICAgIHRlc3RJbnZvY2F0aW9uLnNlbGVjdG9yID0gQHNlbGVjdG9yKHRlc3RTaGFkZXJDb21w
aWxhdGlvbkFuZEV4ZWN1dGlvbjopOworICAgIFt0ZXN0SW52b2NhdGlvbiBzZXRBcmd1bWVudDom
dGVzdCBhdEluZGV4OjJdOworICAgIFt0ZXN0SW52b2NhdGlvbiByZXRhaW5Bcmd1bWVudHNdOwor
CisgICAgV0hMU0xTaGFkZXJUZXN0ICp0ZXN0Q2FzZSA9IFtbV0hMU0xTaGFkZXJUZXN0IGFsbG9j
XSBpbml0V2l0aEludm9jYXRpb246dGVzdEludm9jYXRpb25dOworICAgIHJldHVybiB0ZXN0Q2Fz
ZTsKK30KKworLSAodm9pZCl0ZXN0U2hhZGVyQ29tcGlsYXRpb25BbmRFeGVjdXRpb246KFRlc3RG
YW1pbHkqKXRlc3QgeworICAgIFRlc3RGYW1pbHlSdW5uZXIqIHJ1bm5lciA9IFtbVGVzdEZhbWls
eVJ1bm5lciBhbGxvY10gaW5pdFdpdGhUZXN0RmFtaWx5OnRlc3RdOworICAgIEJPT0wgcmVzdWx0
ID0gW3J1bm5lciBleGVjdXRlQWxsVGVzdHNdOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIE5T
TG9nKEAiXHUyNzA1ICVAIiwgdGVzdC5uYW1lKTsKKyAgICBYQ1RBc3NlcnQocmVzdWx0LCBAIiVA
IiwgdGVzdC5uYW1lKTsKKyAgICBOU0xvZyhAIlRvdGFsIHRlc3QgY2FzZSBjb3VudDogJWx1Iiwg
W1Rlc3RGYW1pbHlSdW5uZXIgZXhlY3V0aW9uQ291bnRdKTsKK30KKworQGVuZAorCitAaW50ZXJm
YWNlIFdITFNMX1RveVRlc3RzIDogWENUZXN0Q2FzZQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBXSExTTF9Ub3lUZXN0cworCisrIChYQ1Rlc3RTdWl0ZSopZGVmYXVsdFRlc3RTdWl0ZQorewor
ICAgIFhDVGVzdFN1aXRlKiBzdWl0ZSA9IFtYQ1Rlc3RTdWl0ZSB0ZXN0U3VpdGVXaXRoTmFtZTpA
IldITFNMIHRlc3RzIl07CisgICAgTlNBcnJheTxUZXN0RmFtaWx5Kj4qIHRlc3REZXNjcmlwdGlv
bnMgPSBbVGVzdEZhbWlseSBhbGxUZXN0c107CisgICAgTlNSZWd1bGFyRXhwcmVzc2lvbiogaW5j
bHVzaW9uRmlsdGVyID0gW05TUmVndWxhckV4cHJlc3Npb24gcmVndWxhckV4cHJlc3Npb25XaXRo
UGF0dGVybjpAIi4qIiBvcHRpb25zOjAgZXJyb3I6bmlsXTsKKyAgICBOU1JlZ3VsYXJFeHByZXNz
aW9uKiBleGNsdXNpb25GaWx0ZXIgPSBbTlNSZWd1bGFyRXhwcmVzc2lvbiByZWd1bGFyRXhwcmVz
c2lvbldpdGhQYXR0ZXJuOkAiXkRJU0FCTEVEX3xudW1UaHJlYWRzfHNoYWRlclN0YWdlc3xzaGFk
ZXJUeXBlc3xhdG9taWNzIiBvcHRpb25zOjAgZXJyb3I6bmlsXTsKKyAgICBOU1VJbnRlZ2VyIHRl
c3RDYXNlQ291bnQgPSAwOworICAgIGZvciAoVGVzdEZhbWlseSogdGVzdCBpbiB0ZXN0RGVzY3Jp
cHRpb25zKSB7CisgICAgICAgIE5TUmFuZ2UgbmFtZVJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgdGVz
dC5uYW1lLmxlbmd0aCk7CisgICAgICAgIGlmIChbaW5jbHVzaW9uRmlsdGVyIGZpcnN0TWF0Y2hJ
blN0cmluZzp0ZXN0Lm5hbWUgb3B0aW9uczowIHJhbmdlOm5hbWVSYW5nZV0gJiYgIVtleGNsdXNp
b25GaWx0ZXIgZmlyc3RNYXRjaEluU3RyaW5nOnRlc3QubmFtZSBvcHRpb25zOjAgcmFuZ2U6bmFt
ZVJhbmdlXSkgeworICAgICAgICAgICAgW3N1aXRlIGFkZFRlc3Q6W1dITFNMU2hhZGVyVGVzdCB0
ZXN0Q2FzZUluc3RhbmNlRnJvbUltcGxlbWVudGF0aW9uOnRlc3RdXTsKKyAgICAgICAgICAgIHRl
c3RDYXNlQ291bnQgKz0gdGVzdC50b3RhbFRlc3RDYXNlQ291bnQ7CisgICAgICAgIH0KKyAgICB9
CisgICAgTlNMb2coQCJXaWxsIGV4ZWN1dGUgJWxkIHRlc3RzICglbGQgdGVzdCBjYXNlcykiLCBz
dWl0ZS50ZXN0cy5jb3VudCwgdGVzdENhc2VDb3VudCk7CisKKyAgICByZXR1cm4gc3VpdGU7Cit9
CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2
ZUZ1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCmlu
ZGV4IDViMDY5MTg1ZjU4YzQzZjQwMzQzMWIzNWJjMjdhNzA3MmNjZTYyNTYuLmJiZjAyODUxYjM3
OTBmN2UyNzUyNjEwMTkzOTQ3OTE5ZGY1OTdhZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlRnVuYy5qcwpAQCAtMjUsOSArMjUsOSBAQAogInVzZSBzdHJpY3QiOwog
CiBjbGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2lu
LCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUsIHN0YWdl
ID0gbnVsbCkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFt
ZXRlcnMsIGlzQ2FzdCwgc3RhZ2UgPSBudWxsKQogICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2lu
LCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAg
ICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCk7
CiAgICAgICAgIHRoaXMuX3N0YWdlID0gc3RhZ2U7CiAgICAgICAgIHRoaXMuaXNSZXN0cmljdGVk
ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb24gPSBudWxsOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwppbmRleCA0YTdhMjQwMGJlYTJlOGUyOGRlMTEzZTFi
OTBkY2IwM2ViNWE1YzlmLi41MjFlYjQzYmNjYzNkNTE2OWY0YTRhOTAzZTE1NTlmYWU4YmNiMmJh
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwpAQCAtMjksNyArMjksNyBA
QCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJP
ZmZzZXQsIHRleHQpCiAgICAgbGV0IGxleGVyID0gbmV3IExleGVyKG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCk7CiAKICAgICAvLyBUaGUgaGFyZGVzdCBwYXJ0IG9m
IGRlYWxpbmcgd2l0aCBDLWxpa2UgbGFuZ3VhZ2VzIGlzIHBhcnNpbmcgdmFyaWFibGUgZGVjbGFy
YXRpb24gc3RhdGVtZW50cy4KLSAgICAvLyBMZXQncyBjb25zaWRlciBpZiB0aGlzIGhhcHBlbnMg
aW4gV1NMLiBIZXJlIGFyZSB0aGUgdmFsaWQgc3RhdGVtZW50cyBpbiBXU0wgdGhhdCBiZWluZyB3
aXRoIGFuCisgICAgLy8gTGV0J3MgY29uc2lkZXIgaWYgdGhpcyBoYXBwZW5zIGluIFdITFNMLiBI
ZXJlIGFyZSB0aGUgdmFsaWQgc3RhdGVtZW50cyBpbiBXSExTTCB0aGF0IGJlaW5nIHdpdGggYW4K
ICAgICAvLyBpZGVudGlmaWVyLCBpZiB3ZSBhc3N1bWUgdGhhdCBhbnkgZXhwcmVzc2lvbiBjYW4g
YmUgYSBzdGFuZGFsb25lIHN0YXRlbWVudC4KICAgICAvLwogICAgIC8vICAgICB4OwpAQCAtMTA4
NSw3ICsxMDg1LDEzIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCiAgICAgICAgICAgICByZXR1cm4gdHlwZTsKICAgICAgICAgbGV0IG5hbWUg
PSB0cnlDb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmNQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG5hbWUgPyBuYW1lLnRleHQgOiBudWxsLCB0eXBlKTsKKyAg
ICAgICAgbGV0IHNlbWFudGljID0gbnVsbDsKKyAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkg
eworICAgICAgICAgICAgc2VtYW50aWMgPSBwYXJzZVNlbWFudGljKCk7CisgICAgICAgICAgICBp
ZiAoc2VtYW50aWMgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHNlbWFudGljOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgRnVuY1BhcmFtZXRl
cih0eXBlLm9yaWdpbiwgbmFtZSA/IG5hbWUudGV4dCA6IG51bGwsIHR5cGUsIHNlbWFudGljKTsK
ICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZVBhcmFtZXRlcnMoKQpAQCAtMTIwNSw3ICsxMjEx
LDggQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgcmV0dXJuVHlwZTsKICAgICAgICAgbGV0IG5h
bWU7CiAgICAgICAgIGxldCBpc0Nhc3Q7Ci0gICAgICAgIGxldCBzaGFkZXJUeXBlOworICAgICAg
ICBsZXQgc2hhZGVyVHlwZSA9IG51bGw7CisgICAgICAgIGxldCBzZW1hbnRpYyA9IG51bGw7CiAg
ICAgICAgIGxldCBhdHRyaWJ1dGVCbG9jayA9IG51bGw7CiAgICAgICAgIGxldCBvcGVyYXRvclRv
a2VuID0gdHJ5Q29uc3VtZSgib3BlcmF0b3IiKTsKICAgICAgICAgaWYgKG9wZXJhdG9yVG9rZW4p
IHsKQEAgLTEyNDEsNyArMTI0OCwxMiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4s
IG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBwYXJhbWV0
ZXJzID0gcGFyc2VQYXJhbWV0ZXJzKCk7CiAgICAgICAgIGlmIChwYXJhbWV0ZXJzIGluc3RhbmNl
b2YgV1N5bnRheEVycm9yKQogICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7Ci0gICAgICAg
IHJldHVybiBuZXcgRnVuYyhvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlz
Q2FzdCwgc2hhZGVyVHlwZSwgYXR0cmlidXRlQmxvY2spOworICAgICAgICBpZiAodHJ5Q29uc3Vt
ZSgiOiIpKSB7CisgICAgICAgICAgICBzZW1hbnRpYyA9IHBhcnNlU2VtYW50aWMoKTsKKyAgICAg
ICAgICAgIGlmIChzZW1hbnRpYyBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2VtYW50aWM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBGdW5j
KG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBl
LCBzZW1hbnRpYyk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VGdW5jRGVmKCkKQEAgLTEy
NTIsNyArMTI2NCwxMTYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgYm9keSA9IHBhcnNlQmxv
Y2soKTsKICAgICAgICAgaWYgKGJvZHkgaW5zdGFuY2VvZiBXU3ludGF4RXJyb3IpCiAgICAgICAg
ICAgICByZXR1cm4gYm9keTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2lu
LCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBib2R5LCBmdW5j
LmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlLCBmdW5jLmF0dHJpYnV0ZUJsb2NrKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlw
ZSwgZnVuYy5wYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlLCBm
dW5jLnNlbWFudGljLCBmdW5jLmF0dHJpYnV0ZUJsb2NrKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBwYXJzZVN0YWdlSW5PdXRTZW1hbnRpYygpCisgICAgeworICAgICAgICBsZXQgb3JpZ2luID0g
Y29uc3VtZSgiYXR0cmlidXRlIik7CisgICAgICAgIGlmIChvcmlnaW4gaW5zdGFuY2VvZiBXU3lu
dGF4RXJyb3IpCisgICAgICAgICAgICByZXR1cm4gb3JpZ2luOworICAgICAgICBsZXQgbWF5YmVF
cnJvciA9IGNvbnN1bWUoIigiKTsKKyAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCisgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKKyAgICAgICAgbGV0
IGluZGV4ID0gY29uc3VtZUtpbmQoImludExpdGVyYWwiKTsKKyAgICAgICAgaWYgKGluZGV4IGlu
c3RhbmNlb2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAg
ICBsZXQgdWludFZlcnNpb24gPSBpbmRleC50ZXh0ID4+PiAwOworICAgICAgICBpZiAodWludFZl
cnNpb24udG9TdHJpbmcoKSAhPT0gaW5kZXgudGV4dCkKKyAgICAgICAgICAgIHJldHVybiBmYWls
KCJTZW1hbnRpYyAgaXMgbm90IDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyOiAiICsgaW5kZXgudGV4
dCk7CisgICAgICAgIG1heWJlRXJyb3IgPSBjb25zdW1lKCIpIik7CisgICAgICAgIGlmIChtYXli
ZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgcmV0dXJuIG1heWJl
RXJyb3I7CisgICAgICAgIHJldHVybiBuZXcgU3RhZ2VJbk91dFNlbWFudGljKG9yaWdpbiwgdWlu
dFZlcnNpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHBhcnNlUmVzb3VyY2VTZW1hbnRpYygp
CisgICAgeworICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgicmVnaXN0ZXIiKTsKKyAgICAg
ICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHJldHVy
biBvcmlnaW47CisgICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiKCIpOworICAgICAg
ICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHJl
dHVybiBtYXliZUVycm9yOworICAgICAgICBsZXQgbW9kZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlm
aWVyIik7CisgICAgICAgIGlmIChtb2RlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQorICAgICAg
ICAgICAgcmV0dXJuIG1vZGU7CisgICAgICAgIG1vZGUgPSBtb2RlLnRleHQ7CisgICAgICAgIGlm
IChtb2RlWzBdICE9ICJ1IiAmJiBtb2RlWzBdICE9ICJ0IiAmJiBtb2RlWzBdICE9ICJiIiAmJiBt
b2RlWzBdICE9ICJzIikKKyAgICAgICAgICAgIHJldHVybiBmYWlsKCJyZWdpc3RlciBuZWVkcyB0
byBiZSBlaXRoZXIgdSwgdCwgYiwgb3IgcyIpOworICAgICAgICBsZXQgaW5kZXhUZXh0ID0gbW9k
ZS5zdWJzdHJpbmcoMSk7CisgICAgICAgIG1vZGUgPSBtb2RlWzBdOworICAgICAgICBsZXQgdWlu
dFZlcnNpb24gPSBpbmRleFRleHQgPj4+IDA7CisgICAgICAgIGlmICh1aW50VmVyc2lvbi50b1N0
cmluZygpICE9PSBpbmRleFRleHQpCisgICAgICAgICAgICByZXR1cm4gZmFpbCgiUmVnaXN0ZXIg
aW5kZXggaXMgbm90IDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyOiAiICsgaW5kZXhUZXh0KTsKKyAg
ICAgICAgbGV0IHNwYWNlID0gMDsKKyAgICAgICAgaWYgKHRyeUNvbnN1bWUoIiwiKSkgeworICAg
ICAgICAgICAgc3BhY2UgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOworICAgICAgICAgICAg
aWYgKHNwYWNlIGluc3RhbmNlb2YgV1N5bnRheEVycm9yKQorICAgICAgICAgICAgICAgIHJldHVy
biBzcGFjZTsKKyAgICAgICAgICAgIHNwYWNlID0gc3BhY2UudGV4dDsKKyAgICAgICAgICAgIGlm
IChzcGFjZS5zdWJzdHJpbmcoMCwgInNwYWNlIi5sZW5ndGgpICE9ICJzcGFjZSIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhaWwoIlNlY29uZCBhcmd1bWVudCB0byByZWdpc3RlcigpIG5lZWRz
IHRvIGJlIG9mIHRoZSBmb3JtIFwic3BhY2UwXCIiKTsKKyAgICAgICAgICAgIGxldCBzcGFjZVRl
eHQgPSBzcGFjZS5zdWJzdHJpbmcoInNwYWNlIi5sZW5ndGgpOworICAgICAgICAgICAgbGV0IHVp
bnRWZXJzaW9uID0gc3BhY2VUZXh0ID4+PiAwOworICAgICAgICAgICAgaWYgKHVpbnRWZXJzaW9u
LnRvU3RyaW5nKCkgIT09IHNwYWNlVGV4dCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFpbCgi
UmVnaXN0ZXIgaW5kZXggaXMgbm90IDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyOiAiICsgc3BhY2VU
ZXh0KTsKKyAgICAgICAgICAgIHNwYWNlID0gdWludFZlcnNpb247CisgICAgICAgIH0KKyAgICAg
ICAgbWF5YmVFcnJvciA9IGNvbnN1bWUoIikiKTsKKyAgICAgICAgaWYgKG1heWJlRXJyb3IgaW5z
dGFuY2VvZiBXU3ludGF4RXJyb3IpCisgICAgICAgICAgICByZXR1cm4gbWF5YmVFcnJvcjsKKyAg
ICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZVNlbWFudGljKG9yaWdpbiwgbW9kZSwgdWludFZlcnNp
b24sIHNwYWNlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBwYXJzZVNwZWNpYWxpemF0aW9uQ29u
c3RhbnRTZW1hbnRpYygpCisgICAgeworICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgic3Bl
Y2lhbGl6ZWQiKTsKKyAgICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikK
KyAgICAgICAgICAgIHJldHVybiBvcmlnaW47CisgICAgICAgIHJldHVybiBuZXcgU3BlY2lhbGl6
YXRpb25Db25zdGFudFNlbWFudGljKG9yaWdpbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcGFy
c2VCdWlsdEluU2VtYW50aWMoKQorICAgIHsKKyAgICAgICAgbGV0IG9yaWdpbiA9IHRyeUNvbnN1
bWUoIlNWX0luc3RhbmNlSUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1Zf
VmVydGV4SUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNJWkUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ZfUG9zaXRpb24iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiU1ZfSXNGcm9udEZhY2UiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiU1ZfU2FtcGxlSW5kZXgiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiU1ZfSW5uZXJDb3ZlcmFnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJTVl9EZXB0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVl9Db3Zl
cmFnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVl9EaXNwYXRjaFRocmVh
ZElEIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWX0dyb3VwSUQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ZfR3JvdXBJbmRleCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJTVl9Hcm91cFRocmVhZElEIik7CisgICAgICAgIGlmIChv
cmlnaW4pCisgICAgICAgICAgICByZXR1cm4gbmV3IEJ1aWx0SW5TZW1hbnRpYyhvcmlnaW4sIG9y
aWdpbi50ZXh0KTsKKyAgICAgICAgb3JpZ2luID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsK
KyAgICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKKyAgICAgICAgICAg
IHJldHVybiBvcmlnaW47CisgICAgICAgIGlmIChvcmlnaW4udGV4dC5zdWJzdHJpbmcoMCwgIlNW
X1RhcmdldCIubGVuZ3RoKSA9PSAiU1ZfVGFyZ2V0IikgeworICAgICAgICAgICAgbGV0IGluZGV4
U3RyaW5nID0gb3JpZ2luLnRleHQuc3Vic3RyaW5nKCJTVl9UYXJnZXQiLmxlbmd0aCk7CisgICAg
ICAgICAgICBsZXQgdWludFZlcnNpb24gPSBpbmRleFN0cmluZyA+Pj4gMDsKKyAgICAgICAgICAg
IGlmICh1aW50VmVyc2lvbi50b1N0cmluZygpICE9PSBpbmRleFN0cmluZykKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZmFpbCgiU2VtYW50aWMgIGlzIG5vdCAzMi1iaXQgdW5zaWduZWQgaW50ZWdl
cjogIiArIGluZGV4U3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQnVpbHRJblNlbWFu
dGljKG9yaWdpbiwgIlNWX1RhcmdldCIsIHVpbnRWZXJzaW9uKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICByZXR1cm4gZmFpbChgVW5rbm93biBzZW1hbnRpYzogJHtvcmlnaW4udGV4dH1g
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBwYXJzZVNlbWFudGljKCkKKyAgICB7CisgICAgICAg
IGlmICh0ZXN0KCJhdHRyaWJ1dGUiKSkKKyAgICAgICAgICAgIHJldHVybiBwYXJzZVN0YWdlSW5P
dXRTZW1hbnRpYygpOworICAgICAgICBlbHNlIGlmICh0ZXN0KCJyZWdpc3RlciIpKQorICAgICAg
ICAgICAgcmV0dXJuIHBhcnNlUmVzb3VyY2VTZW1hbnRpYygpOworICAgICAgICBlbHNlIGlmICh0
ZXN0KCJzcGVjaWFsaXplZCIpKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlU3BlY2lhbGl6YXRp
b25Db25zdGFudFNlbWFudGljKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBw
YXJzZUJ1aWx0SW5TZW1hbnRpYygpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlRmllbGQo
KQpAQCAtMTI2MywxMCArMTM4NCwxNiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4s
IG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBuYW1lID0g
Y29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKICAgICAgICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBX
U3ludGF4RXJyb3IpCiAgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgbGV0IHNlbWFu
dGljID0gbnVsbDsKKyAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkgeworICAgICAgICAgICAg
c2VtYW50aWMgPSBwYXJzZVNlbWFudGljKCk7CisgICAgICAgICAgICBpZiAoc2VtYW50aWMgaW5z
dGFuY2VvZiBXU3ludGF4RXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbWFudGljOwor
ICAgICAgICB9CiAgICAgICAgIGxldCBtYXliZUVycm9yID0gY29uc3VtZSgiOyIpOwogICAgICAg
ICBpZiAobWF5YmVFcnJvciBpbnN0YW5jZW9mIFdTeW50YXhFcnJvcikKICAgICAgICAgICAgIHJl
dHVybiBtYXliZUVycm9yOwotICAgICAgICByZXR1cm4gbmV3IEZpZWxkKG5hbWUsIG5hbWUudGV4
dCwgdHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgRmllbGQobmFtZSwgbmFtZS50ZXh0LCB0eXBl
LCBzZW1hbnRpYyk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VTdHJ1Y3RUeXBlKCkKQEAg
LTEzMDAsNyArMTQyNyw5IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2lu
S2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG1heWJlRXJyb3IgPSBj
b25zdW1lKCI7Iik7CiAgICAgICAgIGlmIChtYXliZUVycm9yIGluc3RhbmNlb2YgV1N5bnRheEVy
cm9yKQogICAgICAgICAgICAgcmV0dXJuIG1heWJlRXJyb3I7Ci0gICAgICAgIHJldHVybiBuZXcg
TmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMu
cGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSwgc3RhZ2UpOworICAgICAg
ICBpZiAoZnVuYy5zaGFkZXJUeXBlIHx8IGZ1bmMuc2VtYW50aWMpCisgICAgICAgICAgICByZXR1
cm4gZmFpbCgiTmF0aXZlIGZ1bmN0aW9ucyBjYW4ndCBiZSBlbnRyeSBwb2ludHMgb3IgaGF2ZSBz
ZW1hbnRpY3MuIik7CisgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwg
ZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3Qs
IHN0YWdlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZU5hdGl2ZSgpCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhp
bmdzUmVtb3ZlZC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW1XaXRo
VW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzCmluZGV4IGMzMjg4OTJiZmYxNmI3NWFlZTVhZmZi
NGYzNzJmZTI0YTQxOGNiNzEuLjg2NTdjN2Y0ZmIwODJlZWNlNDA1ZjFlYTg4NmIxN2FmNTVmNjBm
MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW1XaXRo
VW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Byb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzCkBAIC00MSw2ICs0
MSwxMCBAQCBmdW5jdGlvbiBwcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZChwcm9n
cmFtKQogICAgIG5hbWVGaW5kZXIuYWRkKCJ2b2lkIik7CiAgICAgbmFtZUZpbmRlci5hZGQoImJv
b2wiKTsKICAgICBuYW1lRmluZGVyLmFkZCgiaW50Iik7CisgICAgbmFtZUZpbmRlci5hZGQoInVp
bnQiKTsKKyAgICBuYW1lRmluZGVyLmFkZCgiZmxvYXQiKTsKKyAgICBuYW1lRmluZGVyLmFkZCgi
dmVjdG9yIik7CisgICAgbmFtZUZpbmRlci5hZGQoInNhbXBsZXIiKTsKICAgICAKICAgICAvLyBQ
dWxsIGluIHRoaW5ncyBhcyBuZWNlc3NhcnkuCiAgICAgd2hpbGUgKG5hbWVGaW5kZXIud29ya2xp
c3QubGVuZ3RoKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9S
ZXNvdXJjZVNlbWFudGljLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb3Vy
Y2VTZW1hbnRpYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWEyOGEzY2FkMmZiNmY3ZjNmZGQxNjFiMGE5YzMw
NmE3MDVmMmFlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUmVzb3VyY2VTZW1hbnRpYy5qcwpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgUmVzb3Vy
Y2VTZW1hbnRpYyBleHRlbmRzIFNlbWFudGljIHsKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIHJl
c291cmNlTW9kZSwgaW5kZXgsIHNwYWNlKQorICAgIHsKKyAgICAgICAgIHN1cGVyKG9yaWdpbik7
CisgICAgICAgICB0aGlzLl9yZXNvdXJjZU1vZGUgPSByZXNvdXJjZU1vZGU7CisgICAgICAgICB0
aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICAgdGhpcy5fc3BhY2UgPSBzcGFjZTsKKyAgICB9
CisKKyAgICBnZXQgcmVzb3VyY2VNb2RlKCkgeyByZXR1cm4gdGhpcy5fcmVzb3VyY2VNb2RlOyB9
CisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgc3BhY2Uo
KSB7IHJldHVybiB0aGlzLl9zcGFjZTsgfQorCisgICAgaXNBY2NlcHRhYmxlVHlwZSh0eXBlLCBw
cm9ncmFtKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlc291cmNlTW9kZSkgeworICAg
ICAgICBjYXNlICJiIjoKKyAgICAgICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgUmVmZXJlbmNl
VHlwZSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLmFkZHJlc3NTcGFjZSA9PSAiY29u
c3RhbnQiOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUg
aW5zdGFuY2VvZiBBcnJheVR5cGU7CisgICAgICAgIGNhc2UgInUiOgorICAgICAgICAgICAgaWYg
KHR5cGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VUeXBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHR5cGUuYWRkcmVzc1NwYWNlID09ICJjb25zdGFudCIgfHwgdHlwZS5hZGRyZXNzU3BhY2UgPT0g
ImRldmljZSI7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlw
ZS5pc1RleHR1cmUgfHwgdHlwZSBpbnN0YW5jZW9mIEFycmF5VHlwZTsKKyAgICAgICAgY2FzZSAi
dCI6CisgICAgICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFJlZmVyZW5jZVR5cGUpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHlwZS5hZGRyZXNzU3BhY2UgPT0gImNvbnN0YW50IjsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLmlzVGV4dHVyZSB8
fCB0eXBlIGluc3RhbmNlb2YgQXJyYXlUeXBlOworICAgICAgICBjYXNlICJzIjoKKyAgICAgICAg
ICAgIHJldHVybiB0eXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlcik7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVzb3Vy
Y2UgbW9kZTogJHt0aGlzLnJlc291cmNlTW9kZX1gKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlzQWNjZXB0YWJsZUZvclNoYWRlclR5cGUoZGlyZWN0aW9uLCBzaGFkZXJUeXBlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSAiaW5wdXQiOworICAgIH0KKworICAgIHRvU3Ry
aW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgcmVnaXN0ZXIoJHt0aGlzLnJlc291cmNlTW9k
ZX0ke3RoaXMuaW5kZXh9LCBzcGFjZSR7dGhpcy5zcGFjZX0pYDsKKyAgICB9Cit9CisKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKaW5kZXggM2ExNGJkYThjZGQxOWQ2
ZWMzYTlmYjgxNjIyY2VmY2UxYjZhMTc0YS4uNDhjNjk3ODhlYzY4OThlYzA3M2ZjMjE1ZjNhYTEz
NzUwYmVjMDg1NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3
cml0ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMK
QEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgUmV3cml0ZXIgewogICAgIAogICAgIHZpc2l0RnVuY1Bh
cmFtZXRlcihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBGdW5jUGFyYW1l
dGVyKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CisgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgRnVuY1BhcmFtZXRlcihub2RlLm9yaWdpbiwgbm9kZS5uYW1l
LCBub2RlLnR5cGUudmlzaXQodGhpcyksIE5vZGUudmlzaXQobm9kZS5zZW1hbnRpYywgdGhpcykp
OwogICAgICAgICB0aGlzLl9tYXBOb2RlKG5vZGUsIHJlc3VsdCk7CiAgICAgICAgIHJlc3VsdC5l
UHRyID0gbm9kZS5lUHRyOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA1LDcgKzEwNSw3
IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAKICAgICB2aXNpdEZpZWxkKG5vZGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IEZpZWxkKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlw
ZS52aXNpdCh0aGlzKSk7CisgICAgICAgIHJldHVybiBuZXcgRmllbGQobm9kZS5vcmlnaW4sIG5v
ZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KHRoaXMpLCBOb2RlLnZpc2l0KG5vZGUuc2VtYW50aWMs
IHRoaXMpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRFbnVtTWVtYmVyKG5vZGUpCkBAIC00MDAs
NSArNDAwLDI1IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAgY29uc3QgbWF0VHlwZSA9IG5l
dyBNYXRyaXhUeXBlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cy5t
YXAoYXJndW1lbnQgPT4gYXJndW1lbnQudmlzaXQodGhpcykpKTsKICAgICAgICAgcmV0dXJuIG1h
dFR5cGU7CiAgICAgfQorCisgICAgdmlzaXRCdWlsdEluU2VtYW50aWMobm9kZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBuZXcgQnVpbHRJblNlbWFudGljKG5vZGUub3JpZ2luLCBub2RlLm5hbWUs
IC4uLm5vZGUuZXh0cmFBcmd1bWVudHMpOworICAgIH0KKworICAgIHZpc2l0UmVzb3VyY2VTZW1h
bnRpYyhub2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZVNlbWFudGljKG5v
ZGUub3JpZ2luLCBub2RlLnJlc291cmNlTW9kZSwgbm9kZS5pbmRleCwgbm9kZS5zcGFjZSk7Cisg
ICAgfQorCisgICAgdmlzaXRTdGFnZUluT3V0U2VtYW50aWMobm9kZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBuZXcgU3RhZ2VJbk91dFNlbWFudGljKG5vZGUub3JpZ2luLCBub2RlLmluZGV4KTsK
KyAgICB9CisKKyAgICB2aXNpdFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYyhub2RlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMo
bm9kZS5vcmlnaW4pOworICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQ
SVJWLmh0bWwKaW5kZXggYmE2MTcwYjMyYmU5YTI2YTllY2YxNmRlMjE0MGNmMTRmNDNiMmFjNi4u
MjE0YjBkM2QzNjZiNDZjYzRlMjg3OWE2Y2VhMTgwMTRlNmQ0ZTI2MSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0xOCw2ICsxOCw3IEBAIHRkIHsKICAgICA8
c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iU2VtYW50aWMu
anMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkFsbG9jYXRlQXRFbnRyeVBvaW50cy5qcyI+PC9zY3JpcHQ+
CkBAIC0yOSw2ICszMCw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iQmxvY2suanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJCb29sTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQnVpbHRJblNl
bWFudGljLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeEdldHRl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIj48L3Nj
cmlwdD4KQEAgLTc5LDYgKzgxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJGdW5jTnVtVGhy
ZWFkc0F0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkdhdGhlckVudHJ5UG9pbnRzLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IklkZW50aXR5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IklmU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KQEAgLTEyNCwxMCArMTI3LDEzIEBAIHRk
IHsKICAgICA8c2NyaXB0IHNyYz0iUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlJlc29sdmVQcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iUmVzb2x2ZVR5cGVEZWZzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
UmVzb3VyY2VTZW1hbnRpYy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iU3BlY2lh
bGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
U3RhZ2VJbk91dFNlbWFudGljLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhbmRh
cmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TZW1h
bnRpYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NlbWFudGljLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmExNzhjZjEwNWZkMmE2YjIwMDg3NGI4MDBjZmI0YWM0MzUzZjVkMzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TZW1hbnRpYy5qcwpAQCAt
MCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgU2VtYW50aWMgZXh0ZW5kcyBOb2RlIHsKKyAgICBjb25z
dHJ1Y3RvcihvcmlnaW4pCisgICAgeworICAgICAgICBzdXBlcigpOworICAgICAgICB0aGlzLl9v
cmlnaW4gPSBvcmlnaW47CisgICAgfQorCisgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMu
X29yaWdpbjsgfQorCisgICAgZXF1YWxUb090aGVyU2VtYW50aWMob3RoZXJTZW1hbnRpYykKKyAg
ICB7CisgICAgICAgIGNsYXNzIENvbXBhcmVyIGV4dGVuZHMgVmlzaXRvciB7CisgICAgICAgICAg
ICB2aXNpdEJ1aWx0SW5TZW1hbnRpYyhub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGlmICghKG90aGVyU2VtYW50aWMgaW5zdGFuY2VvZiBCdWlsdEluU2VtYW50aWMpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUu
bmFtZSAhPSBvdGhlclNlbWFudGljLm5hbWUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS5leHRyYUFyZ3VtZW50cyAmJiBvdGhlclNl
bWFudGljLmV4dHJhQXJndW1lbnRzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLmV4
dHJhQXJndW1lbnRzLmxlbmd0aCAhPSBvdGhlclNlbWFudGljLmV4dHJhQXJndW1lbnRzLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmV4dHJhQXJndW1lbnRzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5leHRyYUFyZ3VtZW50c1tpXSAh
PSBvdGhlclNlbWFudGljLmV4dHJhQXJndW1lbnRzW2ldKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWYgKG5vZGUuZXh0cmFBcmd1bWVudHMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBub2Rl
LmV4dHJhQXJndW1lbnRzLmxlbmd0aCA9PSAwOworICAgICAgICAgICAgICAgIGlmIChvdGhlclNl
bWFudGljLmV4dHJhQXJndW1lbnRzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXJT
ZW1hbnRpYy5leHRyYUFyZ3VtZW50cy5sZW5ndGggPT0gMDsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmlzaXRSZXNvdXJjZVNlbWFu
dGljKG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCEob3RoZXJTZW1h
bnRpYyBpbnN0YW5jZW9mIFJlc291cmNlU2VtYW50aWMpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUucmVzb3VyY2VNb2RlID09
IG90aGVyU2VtYW50aWMucmVzb3VyY2VNb2RlICYmIG5vZGUuaW5kZXggPT0gb3RoZXJTZW1hbnRp
Yy5pbmRleCAmJiBub2RlLnNwYWNlID09IG90aGVyU2VtYW50aWMuc3BhY2U7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHZpc2l0U3RhZ2VJbk91dFNlbWFudGljKG5vZGUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCEob3RoZXJTZW1hbnRpYyBpbnN0YW5jZW9mIFN0
YWdlSW5PdXRTZW1hbnRpYykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbm9kZS5pbmRleCA9PSBvdGhlclNlbWFudGljLmluZGV4Owor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2aXNpdFNwZWNpYWxpemF0aW9uQ29uc3RhbnRT
ZW1hbnRpYyhub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBvdGhl
ciBpbnN0YW5jZW9mIFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYzsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy52aXNpdChuZXcgQ29tcGFyZXIoKSk7
CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
cGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TcGVjaWFsaXphdGlvbkNvbnN0YW50U2VtYW50aWMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQy
MjA2OTdiOTRlOTYzODAxYWIyMDZlMTE0YmJhYjhkMGYzNDYzMQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1h
bnRpYy5qcwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgU3BlY2lhbGl6YXRpb25Db25zdGFu
dFNlbWFudGljIGV4dGVuZHMgU2VtYW50aWMgeworICAgIGNvbnN0cnVjdG9yKG9yaWdpbikKKyAg
ICB7CisgICAgICAgIHN1cGVyKG9yaWdpbik7CisgICAgfQorCisgICAgaXNBY2NlcHRhYmxlVHlw
ZSh0eXBlLCBwcm9ncmFtKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGUuaXNOdW1iZXI7Cisg
ICAgfQorCisgICAgaXNBY2NlcHRhYmxlRm9yU2hhZGVyVHlwZShkaXJlY3Rpb24sIHNoYWRlclR5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09ICJpbnB1dCI7CisgICAgfQor
CisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzcGVjaWFsaXplZCI7Cisg
ICAgfQorfQorCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFn
ZUluT3V0U2VtYW50aWMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFnZUlu
T3V0U2VtYW50aWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU5ZWVhOTliZTdkOTdjY2Y1NGZkNjUxNzFhODQ0
MDAxOTAwYzg1MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YWdlSW5PdXRTZW1hbnRpYy5qcwpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgU3Rh
Z2VJbk91dFNlbWFudGljIGV4dGVuZHMgU2VtYW50aWMgeworICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgaW5kZXgpCisgICAgeworICAgICAgICAgc3VwZXIob3JpZ2luKTsKKyAgICAgICAgIHRoaXMu
X2luZGV4ID0gaW5kZXg7CisgICAgfQorCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5f
aW5kZXg7IH0KKworICAgIGlzQWNjZXB0YWJsZVR5cGUodHlwZSwgcHJvZ3JhbSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0eXBlIGluc3RhbmNlb2YgRW51bVR5cGUgfHwgdHlwZSBpbnN0YW5jZW9m
IEFycmF5VHlwZSB8fCB0eXBlIGluc3RhbmNlb2YgVmVjdG9yVHlwZSB8fCB0eXBlIGluc3RhbmNl
b2YgTWF0cml4VHlwZSB8fCB0eXBlLmlzTnVtYmVyOworICAgIH0KKworICAgIGlzQWNjZXB0YWJs
ZUZvclNoYWRlclR5cGUoZGlyZWN0aW9uLCBzaGFkZXJUeXBlKQorICAgIHsKKyAgICAgICAgc3dp
dGNoIChzaGFkZXJUeXBlKSB7CisgICAgICAgIGNhc2UgInZlcnRleCI6CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSAiZnJhZ21lbnQiOgorICAgICAgICAgICAgcmV0dXJu
IGRpcmVjdGlvbiA9PSAiaW5wdXQiOworICAgICAgICBjYXNlICJjb21wdXRlIjoKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSAidGVzdCI6CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg
VW5rbm93biBzaGFkZXIgdHlwZTogJHtzaGFkZXJUeXBlfWApOworICAgICAgICB9CisgICAgfQor
CisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGBhdHRyaWJ1dGUoJHt0aGlz
LmluZGV4fSlgOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RhdGVtZW50Q2xvbmVyLmpzCmluZGV4IGM0YmRkYzkxNjE5NGVjMzMzYTYwMTFmZDZhMjgx
YjY2MjJjOGQ5MWYuLmVjYTY5NmU0ZGJmMmFkNjk0ZWY2YzlhNTBmNzMwYzMzNTY3N2Q2YWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMK
QEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIg
ewogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUu
cmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAo
cGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLmlz
Q2FzdCwgbm9kZS5zaGFkZXJUeXBlLCBub2RlLnN0YWdlKTsKKyAgICAgICAgICAgIG5vZGUuaXND
YXN0LCBub2RlLnN0YWdlKTsKICAgICAgICAgcmVzdWx0LmlzUmVzdHJpY3RlZCA9IG5vZGUuaXNS
ZXN0cmljdGVkOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3Ro
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUFycmF5T3BlcmF0
b3JMZW5ndGguanMKaW5kZXggZGU4ZGY1ZDExNDhjNTc4YWYwZGI2ZTI3ZDdiMDE3OTg5OWYxNWQ0
YS4uMWEyODE1OGE4YjQyN2Q3OTE4N2I5MGM1YWQ0NjY4NWMxMDYwNDEzMiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5n
dGguanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUFycmF5
T3BlcmF0b3JMZW5ndGguanMKQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZUFy
cmF5T3BlcmF0b3JMZW5ndGgocHJvZ3JhbSkKICAgICAgICAgbGV0IG5hdGl2ZUZ1bmMgPSBuZXcg
TmF0aXZlRnVuYygKICAgICAgICAgICAgIGFycmF5VHlwZS5vcmlnaW4sICJvcGVyYXRvci5sZW5n
dGgiLCB1aW50LAogICAgICAgICAgICAgWyBuZXcgRnVuY1BhcmFtZXRlcihhcnJheVR5cGUub3Jp
Z2luLCBudWxsLCBwYXJhbVR5cGUpIF0sCi0gICAgICAgICAgICBmYWxzZSwgbnVsbCk7CisgICAg
ICAgICAgICBmYWxzZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2Fy
cmF5XSkgPT4gRVB0ci5ib3goYXJyYXlUeXBlLm51bUVsZW1lbnRzVmFsdWUpOwogICAgICAgICBw
cm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzCmluZGV4IGNmOThjNDY3YTVjMTJkODQ2MmYxYmIwNzgxYTIwZTBlMmFlMzVjMzkuLmYzOWVh
ZWYxZDQ2NDc1NjdlODgzN2Y0ZjU0ZDYxOTczNDU2YzZiZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplQ29weUNvbnN0
cnVjdG9yT3BlcmF0b3IuanMKQEAgLTUyLDcgKzUyLDcgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZUNv
cHlDb25zdHJ1Y3Rvck9wZXJhdG9yKHByb2dyYW0pCiAgICAgZm9yIChsZXQgdHlwZSBvZiB0eXBl
cykgewogICAgICAgICBsZXQgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKHR5cGUub3JpZ2lu
LCAib3BlcmF0b3IgY2FzdCIsIFR5cGVSZWYud3JhcCh0eXBlKSwgWwogICAgICAgICAgICAgbmV3
IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIFR5cGVSZWYud3JhcCh0eXBlKSkKLSAg
ICAgICAgXSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgIF0sIHRydWUpOwogICAgICAgICBuYXRpdmVG
dW5jLmltcGxlbWVudGF0aW9uID0gKFthcmddLCBub2RlKSA9PiB7CiAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodHlwZS5zaXplKSwgMCk7CiAgICAgICAgICAg
ICByZXN1bHQuY29weUZyb20oYXJnLCB0eXBlLnNpemUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25z
dHJ1Y3Rvck9wZXJhdG9yLmpzCmluZGV4IGRjNTA2NTM4ZDFjNmM3MTA5YjFhZDFlY2JhM2NlYzI3
OGQwZjdiNWMuLjViYzVkZDkzOWFkNDA0YmMzMThkYzVjODA5NTk1OGZlNDc1MWQ0ZTMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29u
c3RydWN0b3JPcGVyYXRvci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMKQEAgLTYyLDcgKzYyLDcgQEAg
ZnVuY3Rpb24gc3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yKHByb2dyYW0pCiAg
ICAgcHJvZ3JhbS52aXNpdChuZXcgRmluZEFsbFR5cGVzKCkpOwogCiAgICAgZm9yIChsZXQgdHlw
ZSBvZiB0eXBlcykgewotICAgICAgICBsZXQgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKHR5
cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIFR5cGVSZWYud3JhcCh0eXBlKSwgW10sIHRydWUs
IG51bGwpOworICAgICAgICBsZXQgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKHR5cGUub3Jp
Z2luLCAib3BlcmF0b3IgY2FzdCIsIFR5cGVSZWYud3JhcCh0eXBlKSwgW10sIHRydWUpOwogICAg
ICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFtdLCBub2RlKSA9PiB7CiAgICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodHlwZS5zaXplKSwgMCk7CiAg
ICAgICAgICAgICBub2RlLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUocmVzdWx0LmJ1ZmZlciwg
MCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
RW51bUZ1bmN0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNp
emVFbnVtRnVuY3Rpb25zLmpzCmluZGV4IDEzN2FjOWZjZDE1ODg3YWY4Yzc2ZTRmNjRjZGQ1YTIy
ZDI3Y2FhMTIuLjgyNjZhMThiNjdkODlmNTNkMzBiMjg2NDNiYjcyOWE1Mjc1NWVmMjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rp
b25zLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVt
RnVuY3Rpb25zLmpzCkBAIC0zMiw3ICszMiw2IEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVFbnVtRnVu
Y3Rpb25zKHByb2dyYW0pCiAKICAgICAgICAgbGV0IG5hdGl2ZUZ1bmM7CiAgICAgICAgIGxldCBp
c0Nhc3QgPSBmYWxzZTsKLSAgICAgICAgbGV0IHNoYWRlclR5cGU7CiAKICAgICAgICAgbmF0aXZl
RnVuYyA9IG5ldyBOYXRpdmVGdW5jKAogICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRv
cj09IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sICJib29sIiksCkBAIC00MCwyOCArMzksMjgg
QEAgZnVuY3Rpb24gc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSkKICAgICAgICAgICAg
ICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlw
ZS5vcmlnaW4sIHR5cGUubmFtZSkpLAogICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVy
KHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSkK
ICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAg
ICAgICAgaXNDYXN0KTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PiBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1
ZSgpKTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAKICAgICAgICAgbmF0aXZl
RnVuYyA9IG5ldyBOYXRpdmVGdW5jKAogICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRv
ci52YWx1ZSIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLAogICAgICAgICAg
ICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBl
Lm9yaWdpbiwgdHlwZS5uYW1lKSldLAotICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsK
KyAgICAgICAgICAgIGlzQ2FzdCk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwog
CiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAgICAgICAgIHR5cGUu
b3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVy
KCkpLAogICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBu
ZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSldLAotICAgICAgICAgICAgaXNDYXN0
LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgICAgIGlzQ2FzdCk7CiAgICAgICAgIG5hdGl2ZUZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRk
KG5hdGl2ZUZ1bmMpOwogCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAg
ICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBUeXBlUmVmKHR5cGUu
b3JpZ2luLCB0eXBlLm5hbWUpLAogICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUu
b3JpZ2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSldLAotICAg
ICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgICAgIGlzQ2FzdCk7CiAgICAg
ICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAg
ICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCmlu
ZGV4IDc4NTllZWI0YjRmNWNiNWVmZTZmZDAyZGVhYjYzNzBkYmQ5YjUzOTAuLjZjN2ZmZDcxODEx
NWM3OWQ4ZjI3MTA1N2I0MThjMDA5NDFjMGFlZmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcwpAQCAt
NDksMTMgKzQ5LDEyIEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnNGb3JTdHJ1
Y3RUeXBlKHByb2dyYW0sIHR5cGUpCiAgICAgICAgIH0KIAogICAgICAgICBsZXQgaXNDYXN0ID0g
ZmFsc2U7Ci0gICAgICAgIGxldCBzaGFkZXJUeXBlOwogICAgICAgICBsZXQgbmF0aXZlRnVuYzsK
IAogICAgICAgICAvLyBUaGUgZ2V0dGVyOiBvcGVyYXRvci5maWVsZAogICAgICAgICBuYXRpdmVG
dW5jID0gbmV3IE5hdGl2ZUZ1bmMoCiAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRv
ci4iICsgZmllbGQubmFtZSwgZmllbGQudHlwZSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFt
ZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIFR5cGVSZWYud3JhcCh0eXBlKSldLCBpc0Nhc3QsIHNo
YWRlclR5cGUpOworICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwg
bnVsbCwgVHlwZVJlZi53cmFwKHR5cGUpKV0sIGlzQ2FzdCk7CiAgICAgICAgIHNldHVwSW1wbGVt
ZW50YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIChbYmFzZV0sIG9mZnNldCwgc3RydWN0U2l6ZSwgZmll
bGRTaXplKSA9PiB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZm
ZXIoZmllbGRTaXplKSwgMCk7CiAgICAgICAgICAgICByZXN1bHQuY29weUZyb20oYmFzZS5wbHVz
KG9mZnNldCksIGZpZWxkU2l6ZSk7CkBAIC03MCw3ICs2OSw3IEBAIGZ1bmN0aW9uIHN5bnRoZXNp
emVTdHJ1Y3RBY2Nlc3NvcnNGb3JTdHJ1Y3RUeXBlKHByb2dyYW0sIHR5cGUpCiAgICAgICAgICAg
ICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2luLCBudWxsLCBUeXBlUmVmLndyYXAo
dHlwZSkpLAogICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwg
bnVsbCwgZmllbGQudHlwZSkKICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBpc0Nhc3QsIHNo
YWRlclR5cGUpOworICAgICAgICAgICAgaXNDYXN0KTsKICAgICAgICAgc2V0dXBJbXBsZW1lbnRh
dGlvbkRhdGEobmF0aXZlRnVuYywgKFtiYXNlLCB2YWx1ZV0sIG9mZnNldCwgc3RydWN0U2l6ZSwg
ZmllbGRTaXplKSA9PiB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVC
dWZmZXIoc3RydWN0U2l6ZSksIDApOwogICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJhc2Us
IHN0cnVjdFNpemUpOwpAQCAtODksNyArODgsNyBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0
QWNjZXNzb3JzRm9yU3RydWN0VHlwZShwcm9ncmFtLCB0eXBlKQogICAgICAgICAgICAgICAgICAg
ICAgICAgZmllbGQub3JpZ2luLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFB0
clR5cGUoZmllbGQub3JpZ2luLCBhZGRyZXNzU3BhY2UsIFR5cGVSZWYud3JhcCh0eXBlKSkpCiAg
ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwor
ICAgICAgICAgICAgICAgIGlzQ2FzdCk7CiAgICAgICAgICAgICBzZXR1cEltcGxlbWVudGF0aW9u
RGF0YShuYXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUsIGZpZWxkU2l6ZSkg
PT4gewogICAgICAgICAgICAgICAgIGJhc2UgPSBiYXNlLmxvYWRWYWx1ZSgpOwogICAgICAgICAg
ICAgICAgIGlmICghYmFzZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApp
bmRleCAwMjg1ZmJlZjRhZTIxZTE5NjY5YzFiZjY3NDljNWY5YzI1OGUwYTE5Li5hMDQyZmZiNWM3
ZjZjNTk5ZGQwYTZlNDU5MjY1NDJmM2Q2YzgzZTlmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGVzdC5odG1sCkBAIC0xLDYgKzEsNiBAQAogPGh0bWw+CiA8aGVhZD4KLTx0aXRsZT5X
U0wgVGVzdDwvdGl0bGU+Cis8dGl0bGU+V0hMU0wgVGVzdDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0i
Tm9kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iUmVmZXJlbmNlVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMiw2ICsxMiw3IEBACiA8
c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0
aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU2VtYW50aWMuanMiPjwvc2NyaXB0
PgogCiA8c2NyaXB0IHNyYz0iQWRkcmVzc1NwYWNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJBbGxvY2F0ZUF0RW50cnlQb2ludHMuanMiPjwvc2NyaXB0PgpAQCAtMjMsNiArMjQsNyBAQAog
PHNjcmlwdCBzcmM9IkJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCb29sTGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnJlYWsuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkJ1aWx0SW5TZW1hbnRpYy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnVpbHRp
bk1hdHJpeEdldHRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeFNl
dHRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckdldHRlci5qcyI+
PC9zY3JpcHQ+CkBAIC03Myw2ICs3NSw3IEBACiA8c2NyaXB0IHNyYz0iRnVuY051bVRocmVhZHNB
dHRyaWJ1dGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJHYXRoZXJFbnRyeVBvaW50cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
SGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSWRlbnRpdHlFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJZlN0YXRlbWVudC5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMTgsMTAgKzEyMSwxMyBAQAogPHNjcmlwdCBzcmM9IlJlc29sdmVPdmVybG9hZElt
cGwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlc29sdmVQcm9wZXJ0aWVzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJSZXNvbHZlVHlwZURlZnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IlJlc291cmNlU2VtYW50aWMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVy
bi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTcGVjaWFsaXphdGlvbkNvbnN0
YW50U2VtYW50aWMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0YWdlSW5PdXRTZW1hbnRp
Yy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTcwLDcgKzE3Niw3IEBA
IGZ1bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiAgICAgICAgICAgICBpZiAodGVzdGVyLm5leHQo
KS5kb25lKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgICAgcHJpbnQoIkVSUk9SOiAiICsgZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIHBy
aW50KCJFUlJPUjogIiArIChlLnBheWxvYWQgPyBlLnBheWxvYWQgOiBlLm1lc3NhZ2UpKTsKICAg
ICAgICAgICAgIHByaW50KGUuc3RhY2spOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCBkYzhhOWZiMjczNjAyMzU4
NWNjMWQ3ZWVhNjliMTg4YzJkYjljMGRjLi5iNTQ0NmI3NmRmZGVlN2IxNGQ4NDAwOTU0YTRhOTI2
MzI4Y2NjNmVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTMxMDcs
MTMzICszMTA3LDI2MSBAQCB0ZXN0cy50eXBlZGVmQXJyYXkgPSBmdW5jdGlvbigpCiAKIHRlc3Rz
LnNoYWRlclR5cGVzID0gZnVuY3Rpb24oKQogeworICAgIGRvUHJlcChgCisgICAgICAgIHZlcnRl
eCBmbG9hdDQgZm9vKCkgOiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAgICByZXR1cm4gZmxvYXQ0
KDAsIDEsIDIsIDMpOworICAgICAgICB9YCk7CisgICAgZG9QcmVwKGAKKyAgICAgICAgc3RydWN0
IFIgeworICAgICAgICAgICAgZmxvYXQ0IHggOiBTVl9Qb3NpdGlvbjsKKyAgICAgICAgICAgIGlu
dDQgeSA6IGF0dHJpYnV0ZSgxKTsKKyAgICAgICAgfQorICAgICAgICB2ZXJ0ZXggUiBmb28oKSB7
CisgICAgICAgICAgICBSIHo7CisgICAgICAgICAgICB6LnggPSBmbG9hdDQoMSwgMiwgMywgNCk7
CisgICAgICAgICAgICB6LnkgPSBpbnQ0KDUsIDYsIDcsIDgpOworICAgICAgICAgICAgcmV0dXJu
IHo7CisgICAgICAgIH1gKTsKKyAgICBkb1ByZXAoYAorICAgICAgICBzdHJ1Y3QgUiB7CisgICAg
ICAgICAgICBmbG9hdDQgeCA6IFNWX1Bvc2l0aW9uOworICAgICAgICAgICAgaW50NCB5IDogYXR0
cmlidXRlKDEpOworICAgICAgICB9CisgICAgICAgIHN0cnVjdCBTIHsKKyAgICAgICAgICAgIFIg
cjsKKyAgICAgICAgICAgIGZsb2F0MyB6IDogYXR0cmlidXRlKDIpOworICAgICAgICB9CisgICAg
ICAgIHZlcnRleCBTIGZvbygpIHsKKyAgICAgICAgICAgIFMgdzsKKyAgICAgICAgICAgIHcuci54
ID0gZmxvYXQ0KDEsIDIsIDMsIDQpOworICAgICAgICAgICAgdy5yLnkgPSBpbnQ0KDUsIDYsIDcs
IDgpOworICAgICAgICAgICAgdy56ID0gZmxvYXQzKDksIDEwLCAxMSk7CisgICAgICAgICAgICBy
ZXR1cm4gdzsKKyAgICAgICAgfWApOworICAgIGRvUHJlcChgCisgICAgICAgIHZlcnRleCBmbG9h
dDQgZm9vKGNvbnN0YW50IGZsb2F0KiBidWZmZXIgOiByZWdpc3RlcihiMCkpIDogU1ZfUG9zaXRp
b24geworICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgqYnVmZmVyLCAqYnVmZmVyLCAqYnVmZmVy
LCAqYnVmZmVyKTsKKyAgICAgICAgfWApOworICAgIGRvUHJlcChgCisgICAgICAgIHZlcnRleCBm
bG9hdDQgZm9vKGNvbnN0YW50IGZsb2F0KiBidWZmZXIgOiByZWdpc3RlcihiMCwgc3BhY2UwKSkg
OiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAgICByZXR1cm4gZmxvYXQ0KCpidWZmZXIsICpidWZm
ZXIsICpidWZmZXIsICpidWZmZXIpOworICAgICAgICB9YCk7CisgICAgZG9QcmVwKGAKKyAgICAg
ICAgdmVydGV4IGZsb2F0NCBmb28oY29uc3RhbnQgZmxvYXQqIGJ1ZmZlciA6IHJlZ2lzdGVyKGIw
LCBzcGFjZTEpKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICAgICAgICAgIHJldHVybiBmbG9hdDQoKmJ1
ZmZlciwgKmJ1ZmZlciwgKmJ1ZmZlciwgKmJ1ZmZlcik7CisgICAgICAgIH1gKTsKKyAgICBkb1By
ZXAoYAorICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhjb25zdGFudCBmbG9hdFtdIGJ1ZmZlciA6
IHJlZ2lzdGVyKGIwKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAgICByZXR1cm4gZmxvYXQ0
KGJ1ZmZlclswXSwgYnVmZmVyWzFdLCBidWZmZXJbMl0sIGJ1ZmZlclszXSk7CisgICAgICAgIH1g
KTsKKyAgICBkb1ByZXAoYAorICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhmbG9hdFs1XSBidWZm
ZXIgOiByZWdpc3RlcihiMCkpIDogU1ZfUG9zaXRpb24geworICAgICAgICAgICAgcmV0dXJuIGZs
b2F0NChidWZmZXJbMF0sIGJ1ZmZlclsxXSwgYnVmZmVyWzJdLCBidWZmZXJbM10pOworICAgICAg
ICB9YCk7CisgICAgZG9QcmVwKGAKKyAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZGV2aWNlIGZs
b2F0KiBidWZmZXIgOiByZWdpc3Rlcih1MCkpIDogU1ZfUG9zaXRpb24geworICAgICAgICAgICAg
cmV0dXJuIGZsb2F0NCgqYnVmZmVyLCAqYnVmZmVyLCAqYnVmZmVyLCAqYnVmZmVyKTsKKyAgICAg
ICAgfWApOworICAgIGRvUHJlcChgCisgICAgICAgIHZlcnRleCBmbG9hdDQgZm9vKGRldmljZSBm
bG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVyKHUwKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAg
ICByZXR1cm4gZmxvYXQ0KGJ1ZmZlclswXSwgYnVmZmVyWzFdLCBidWZmZXJbMl0sIGJ1ZmZlclsz
XSk7CisgICAgICAgIH1gKTsKKyAgICBkb1ByZXAoYAorICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZv
byh1aW50IHggOiBTVl9JbnN0YW5jZUlEKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICAgICAgICAgIHJl
dHVybiBmbG9hdDQoZmxvYXQoeCksIGZsb2F0KHgpLCBmbG9hdCh4KSwgZmxvYXQoeCkpOworICAg
ICAgICB9YCk7CisgICAgZG9QcmVwKGAKKyAgICAgICAgZnJhZ21lbnQgZmxvYXQ0IGZvbyhib29s
IHggOiBTVl9Jc0Zyb250RmFjZSkgOiBTVl9UYXJnZXQwIHsKKyAgICAgICAgICAgIHJldHVybiBm
bG9hdDQoMSwgMiwgMywgNCk7CisgICAgICAgIH1gKTsKKyAgICBkb1ByZXAoYAorICAgICAgICBm
cmFnbWVudCBmbG9hdDQgZm9vKGludCB4IDogc3BlY2lhbGl6ZWQpIDogU1ZfVGFyZ2V0MCB7Cisg
ICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEsIDIsIDMsIDQpOworICAgICAgICB9YCk7CisgICAg
ZG9QcmVwKGAKKyAgICAgICAgZnJhZ21lbnQgZmxvYXQ0IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ0PiB0
IDogcmVnaXN0ZXIodDApLCBzYW1wbGVyIHMgOiByZWdpc3RlcihzMCkpIDogU1ZfVGFyZ2V0MCB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHQsIHMsIDAuNCk7CisgICAgICAgIH1gKTsKICAg
ICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3Qg
Rm9vIHsKLSAgICAgICAgICAgICAgICBmbG9hdDQgeDsKKyAgICAgICAgICAgIHZlcnRleCB2b2lk
IGZvbygpIDogU1ZfUG9zaXRpb24gewogICAgICAgICAgICAgfQotICAgICAgICAgICAgdmVydGV4
IEZvbyBiYXIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0g
ICAgICAgICAgICAgICAgcmVzdWx0LnggPSBmbG9hdDQoKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICBgKSwKKyAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7CisgICAgY2hlY2tGYWlsKAorICAgICAgICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAg
ICAgdmVydGV4IGZsb2F0NCBmb28oZmxvYXQgeCA6IFBTSVpFKSA6IFNWX1Bvc2l0aW9uIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmxvYXQ0KHgsIHgsIHgsIHgpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgRm9vIGZvbygpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gYmFyKCk7Cisg
ICAgICAgIGApLAorICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBj
aGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAgICAgICB2ZXJ0ZXggZmxv
YXQ0IGZvbyhpbnQgeCA6IFNWX0luc3RhbmNlSUQpIDogU1ZfUG9zaXRpb24geworICAgICAgICAg
ICAgICAgIHJldHVybiBmbG9hdDQoZmxvYXQoeCksIGZsb2F0KHgpLCBmbG9hdCh4KSwgZmxvYXQo
eCkpOwogICAgICAgICAgICAgfQogICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yKTsKKyAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7
CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdmVy
dGV4IGZsb2F0IGJhcigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDQu
OworICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZmxvYXQgeCkgOiBTVl9Qb3NpdGlvbiB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCh4LCB4LCB4LCB4KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7
CisgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwogICAgIGNoZWNrRmFpbCgK
ICAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgICAgIGZsb2F0NCB4OworICAgICAgICAgICAgZnJhZ21lbnQgZmxvYXQ0IGZvbyhib29s
IHggOiBTVl9Jc0Zyb250RmFjZSwgYm9vbCB5IDogU1ZfSXNGcm9udEZhY2UpIDogU1ZfVGFyZ2V0
MCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHZlcnRleCBGb28gYmFyKGRldmljZSBGb28qIHgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZvbygpOworICAgICAgICBgKSwKKyAgICAg
ICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWlsKAorICAgICAg
ICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgc3RydWN0IFIgeworICAgICAgICAgICAgICAg
IGZsb2F0NCB4IDogU1ZfVGFyZ2V0MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZyYWdt
ZW50IFIgZm9vKGJvb2wgeCA6IFNWX0lzRnJvbnRGYWNlKSA6IFNWX0RlcHRoIHsKKyAgICAgICAg
ICAgICAgICBSIHk7CisgICAgICAgICAgICAgICAgeS54ID0gZmxvYXQ0KDEsIDIsIDMsIDQpOwor
ICAgICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICAgICAgfQogICAgICAgICBgKSwKLSAg
ICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgc3RydWN0IEJvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQ0IHg7
CisgICAgICAgICAgICBzdHJ1Y3QgUiB7CisgICAgICAgICAgICAgICAgYm9vbCB4IDogU1ZfSXNG
cm9udEZhY2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAg
ICAgICAgICAgICBmbG9hdDQgeDsKLSAgICAgICAgICAgICAgICBkZXZpY2UgQm9vKiB5OworICAg
ICAgICAgICAgZnJhZ21lbnQgZmxvYXQ0IGZvbyhSIHggOiBTVl9TYW1wbGVJbmRleCkgOiBTVl9U
YXJnZXQwIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEsIDIsIDMsIDQpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgdmVydGV4IEZvbyBiYXIoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHJldHVybiBGb28oKTsKKyAgICAgICAgYCksCisgICAgICAgIGUgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOworICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4g
ZG9QcmVwKGAKKyAgICAgICAgICAgIHN0cnVjdCBSIHsKKyAgICAgICAgICAgICAgICBib29sIHgg
OiBTVl9Jc0Zyb250RmFjZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnVjdCBTIHsK
KyAgICAgICAgICAgICAgICBSIHI7CisgICAgICAgICAgICAgICAgYm9vbCB5IDogU1ZfSXNGcm9u
dEZhY2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmcmFnbWVudCBmbG9hdDQgZm9vKFMg
eCkgOiBTVl9UYXJnZXQwIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEsIDIsIDMs
IDQpOwogICAgICAgICAgICAgfQogICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yKTsKKyAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7
CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3Ry
dWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQ0IHg7CisgICAgICAgICAgICBzdHJ1Y3Qg
UiB7CisgICAgICAgICAgICAgICAgZmxvYXQgeCA6IFNWX0lzRnJvbnRGYWNlOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgc3RydWN0IEJvbyB7Ci0gICAgICAgICAgICAgICAgZGV2aWNlIEZv
byogeTsKKyAgICAgICAgICAgIGZyYWdtZW50IGZsb2F0NCBmb28oUiB4KSA6IFNWX1RhcmdldDAg
eworICAgICAgICAgICAgICAgIHJldHVybiBmbG9hdDQoMSwgMiwgMywgNCk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB2ZXJ0ZXggRm9vIGJhcihCb28gYikKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gRm9vKCk7CisgICAgICAgIGApLAorICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRv
UHJlcChgCisgICAgICAgICAgICBzdHJ1Y3QgUiB7CisgICAgICAgICAgICAgICAgZmxvYXQgeCA6
IFNWX0lzRnJvbnRGYWNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmVydGV4IHVpbnQg
Zm9vKCkgOiBTVl9WZXJ0ZXhJRCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDc7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIGApLAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IpOworICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKICAgICBjaGVja0Zh
aWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAg
ICAgICAgICAgICAgICBmbG9hdDQgeDsKKyAgICAgICAgICAgIHR5cGVkZWYgQSA9IHRocmVhZCBm
bG9hdCo7CisgICAgICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhkZXZpY2UgQVtdIHggOiByZWdp
c3Rlcih1MCkpIDogU1ZfUG9zaXRpb24geworICAgICAgICAgICAgICAgIHJldHVybiBmbG9hdDQo
MSwgMiwgMywgNCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB2ZXJ0ZXggRm9vIGJhcihk
ZXZpY2UgRm9vKiB4KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBGb28o
KTsKKyAgICAgICAgYCksCisgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwor
ICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAgICAgICAgICAgIHR5cGVk
ZWYgQSA9IHRocmVhZCBmbG9hdCo7CisgICAgICAgICAgICB2ZXJ0ZXggZmxvYXQ0IGZvbyhkZXZp
Y2UgQSogeCA6IHJlZ2lzdGVyKHUwKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgYCksCi0g
ICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGZsb2F0NCB4
OworICAgICAgICAgICAgdHlwZWRlZiBBID0gdGhyZWFkIGZsb2F0KjsKKyAgICAgICAgICAgIHZl
cnRleCBmbG9hdDQgZm9vKEFbNF0geCA6IHJlZ2lzdGVyKHUwKSkgOiBTVl9Qb3NpdGlvbiB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGZyYWdtZW50IEZvbyBiYXIoRm9vIGZvbykKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gRm9vKCk7CisgICAgICAgIGApLAorICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRv
UHJlcChgCisgICAgICAgICAgICBlbnVtIEZvbyB7CisgICAgICAgICAgICAgICAgZiwgZworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oRm9vIHggOiBzcGVjaWFs
aXplZCkgOiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAy
LCAzLCA0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgYCksCi0gICAgICAgIChlKSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGZsb2F0NCB4OworICAgICAgICAgICAgY29t
cHV0ZSBmbG9hdCBmb28oKSA6IGF0dHJpYnV0ZSgwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IDU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmcmFnbWVudCBGb28gYmFyKGRldmljZSBG
b28qIHN0YWdlSW4pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZvbygp
OworICAgICAgICBgKSwKKyAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Cisg
ICAgY2hlY2tGYWlsKAorICAgICAgICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgZnJhZ21l
bnQgZmxvYXQgZm9vKCkgOiBhdHRyaWJ1dGUoMCkgeworICAgICAgICAgICAgICAgIHJldHVybiA1
OwogICAgICAgICAgICAgfQogICAgICAgICBgKSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKKyAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CiAg
ICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0
IEJvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQ0IHg7CisgICAgICAgICAgICB2ZXJ0ZXggZmxv
YXQgZm9vKGRldmljZSBmbG9hdCogeCA6IGF0dHJpYnV0ZSgwKSkgOiBhdHRyaWJ1dGUoMCkgewor
ICAgICAgICAgICAgICAgIHJldHVybiA1OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Ry
dWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQ0IHg7Ci0gICAgICAgICAgICAgICAgZGV2
aWNlIEJvbyogeTsKKyAgICAgICAgYCksCisgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IpOworICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAgICAgICAg
ICAgIHZlcnRleCBmbG9hdDQgZm9vKGRldmljZSBmbG9hdCogeCA6IHJlZ2lzdGVyKGIwKSkgOiBT
Vl9Qb3NpdGlvbiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZyYWdtZW50IEJvbyBiYXIoRm9vIHN0YWdlSW4p
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEJvbygpOworICAgICAgICBg
KSwKKyAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWls
KAorICAgICAgICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28o
ZmxvYXQgeCA6IHJlZ2lzdGVyKGIwKSkgOiBTVl9Qb3NpdGlvbiB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgYCksCi0g
ICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBCb28gewotICAgICAgICAgICAgICAgIGZsb2F0NCB4
OworICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oZGV2aWNlIGZsb2F0KiB4IDogcmVnaXN0
ZXIodDApKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXQ0KDEs
IDIsIDMsIDQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAg
ICAgICAgICAgICAgZmxvYXQ0IHg7Ci0gICAgICAgICAgICAgICAgZGV2aWNlIEJvbyogeTsKKyAg
ICAgICAgYCksCisgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOworICAgIGNo
ZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAgICAgICAgICAgIHZlcnRleCBmbG9h
dDQgZm9vKFRleHR1cmUyRDxmbG9hdD4geCA6IHJlZ2lzdGVyKGIwKSkgOiBTVl9Qb3NpdGlvbiB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0NCgxLCAyLCAzLCA0KTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGZyYWdtZW50IEZvbyBiYXIoQm9vIHN0YWdlSW4pCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZvbygpOworICAgICAgICBgKSwKKyAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWlsKAorICAgICAgICAo
KSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgdmVydGV4IGZsb2F0NCBmb28oY29uc3RhbnQgZmxv
YXRbXSB4IDogcmVnaXN0ZXIoczApKSA6IFNWX1Bvc2l0aW9uIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmxvYXQ0KDEsIDIsIDMsIDQpOwogICAgICAgICAgICAgfQogICAgICAgICBgKSwKLSAg
ICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7CiB9CiAKIHRlc3RzLnZlY3RvclR5cGVTeW50YXggPSBmdW5j
dGlvbigpCkBAIC05MDYwLDcgKzkxODgsNyBAQCB0ZXN0cy5ldmFsdWF0aW9uT3JkZXJGb3JBcmd1
bWVudHMgPSAoKSA9PiB7CiAKIHRlc3RzLmNhbm5vdENhbGxBbm90aGVyRW50cnlQb2ludCA9ICgp
ID0+IHsKICAgICBjaGVja0ZhaWwoKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7
IGludCB4OyB9CisgICAgICAgIHN0cnVjdCBGb28geyBpbnQgeCA6IGF0dHJpYnV0ZSgwKTsgfQog
ICAgICAgICB2ZXJ0ZXggRm9vIGZvbygpIHsgcmV0dXJuIGJhcigpOyB9CiAgICAgICAgIHZlcnRl
eCBGb28gYmFyKCkgeyByZXR1cm4gRm9vKCk7IH0KICAgICBgKSwgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiaXQgY2Fubm90IGJlIGNhbGxlZCBmcm9t
IHdpdGhpbiBhbiBleGlzdGluZyBzaGFkZXIiKSAhPT0gLTEpOwpAQCAtOTQyMCw3ICs5NTQ4LDcg
QEAgZnVuY3Rpb24qIGRvVGVzdCh0ZXN0RmlsdGVyKQogICAgIHByaW50KCJUaGF0IHRvb2sgIiAr
IChhZnRlciAtIGJlZm9yZSkgKiAxMDAwICsgIiBtcy4iKTsKIH0KIAotaWYgKCF0aGlzLndpbmRv
dykgeworaWYgKCF0aGlzLndpbmRvdyAmJiAhdGhpcy5ydW5uaW5nSW5Db2NvYUhvc3QpIHsKICAg
ICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBJbmZpbml0eTsKICAgICBmb3IgKGxldCBfIG9mIGRv
VGVzdCh0ZXN0RmlsdGVyKSkgeyB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9WaXNpdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlz
aXRvci5qcwppbmRleCBiOGY0ZGJjYzQ4N2M5ZTgwNzIyMGNiNDAxMTliZTU5ZDJkNmU2NWM2Li40
ZWExYjllZTRmYTA0ZDBhNTNlZjZlMmIwNWFhNTM4ZGU4M2YyZmFkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKQEAgLTQwLDExICs0MCwxMyBAQCBjbGFzcyBWaXNp
dG9yIHsKICAgICAgICAgICAgIGZvciAobGV0IGF0dHJpYnV0ZSBvZiBub2RlLmF0dHJpYnV0ZUJs
b2NrKQogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS52aXNpdCh0aGlzKTsKICAgICAgICAgfQor
ICAgICAgICBOb2RlLnZpc2l0KG5vZGUuc2VtYW50aWMsIHRoaXMpOwogICAgIH0KICAgICAKICAg
ICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNp
dCh0aGlzKTsKKyAgICAgICAgTm9kZS52aXNpdChub2RlLnNlbWFudGljLCB0aGlzKTsKICAgICB9
CiAgICAgCiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCkBAIC05Niw2ICs5OCw3IEBAIGNsYXNzIFZp
c2l0b3IgewogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52
aXNpdCh0aGlzKTsKKyAgICAgICAgTm9kZS52aXNpdChub2RlLnNlbWFudGljLCB0aGlzKTsKICAg
ICB9CiAgICAgCiAgICAgdmlzaXRFbnVtVHlwZShub2RlKQpAQCAtMzU1LDUgKzM1OCwyMSBAQCBj
bGFzcyBWaXNpdG9yIHsKICAgICB2aXNpdEZ1bmNOdW1UaHJlYWRzQXR0cmlidXRlKG5vZGUpCiAg
ICAgewogICAgIH0KKworICAgIHZpc2l0QnVpbHRJblNlbWFudGljKG5vZGUpCisgICAgeworICAg
IH0KKworICAgIHZpc2l0UmVzb3VyY2VTZW1hbnRpYyhub2RlKQorICAgIHsKKyAgICB9CisKKyAg
ICB2aXNpdFN0YWdlSW5PdXRTZW1hbnRpYyhub2RlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXNp
dFNwZWNpYWxpemF0aW9uQ29uc3RhbnRTZW1hbnRpYyhub2RlKQorICAgIHsKKyAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IGFlMDExMDA3MDcz
ZDNlZTI2MTRiNjBhNDEzODA4YTkzNTMyZGZiYTAuLmIxMjk0MzVmY2Y0ZGFiZDY4NTE3MDJiYjM5
NTljNzMxMDkxMmJlMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bApAQCAtMTIsNiArMTIsNyBAQAogPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWxUeXBlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlNlbWFudGljLmpzIj48L3NjcmlwdD4KIAogPHNjcmlwdCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzIj48L3Njcmlw
dD4KQEAgLTIzLDYgKzI0LDcgQEAKIDxzY3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJyZWFr
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCdWlsdEluU2VtYW50aWMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhHZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJ1
aWx0aW5WZWN0b3JHZXR0ZXIuanMiPjwvc2NyaXB0PgpAQCAtNzMsNiArNzUsNyBAQAogPHNjcmlw
dCBzcmM9IkZ1bmNOdW1UaHJlYWRzQXR0cmlidXRlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJGdW5jUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VC
bG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iR2F0aGVyRW50cnlQb2ludHMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IklkZW50aXR5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
SWZTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgpAQCAtMTE4LDEwICsxMjEsMTMgQEAKIDxzY3JpcHQg
c3JjPSJSZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXNv
bHZlUHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVzb2x2ZVR5cGVEZWZz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvdXJjZVNlbWFudGljLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVy
bkNoZWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iU3BlY2lhbGl6YXRpb25Db25zdGFudFNlbWFudGljLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJTdGFnZUluT3V0U2VtYW50aWMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5k
YXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3Njcmlw
dD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>