<?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>183462</bug_id>
          
          <creation_ts>2018-03-08 10:41:47 -0800</creation_ts>
          <short_desc>[LayoutReloaded] Initial commit -block formatting context.</short_desc>
          <delta_ts>2018-03-09 11:11:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404802</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-03-08 10:41:47 -0800</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404810</commentid>
    <comment_count>1</comment_count>
      <attachid>335318</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-03-08 11:09:08 -0800</bug_when>
    <thetext>Created attachment 335318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404819</commentid>
    <comment_count>2</comment_count>
      <attachid>335319</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-03-08 11:17:45 -0800</bug_when>
    <thetext>Created attachment 335319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404946</commentid>
    <comment_count>3</comment_count>
      <attachid>335353</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-03-08 15:09:31 -0800</bug_when>
    <thetext>Created attachment 335353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405204</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-03-09 10:17:12 -0800</bug_when>
    <thetext>:O</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405205</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-03-09 10:17:49 -0800</bug_when>
    <thetext>Oh, for a second I thought this was changing layout code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405206</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-03-09 10:19:43 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Oh, for a second I thought this was changing layout code.

No, not yet. Consider this as a pseudo code for layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405237</commentid>
    <comment_count>7</comment_count>
      <attachid>335353</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-09 11:10:43 -0800</bug_when>
    <thetext>Comment on attachment 335353
Patch

Clearing flags on attachment: 335353

Committed r229473: &lt;https://trac.webkit.org/changeset/229473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405238</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-09 11:10:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405239</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-09 11:11:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/38309634&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335318</attachid>
            <date>2018-03-08 11:09:08 -0800</date>
            <delta_ts>2018-03-08 11:10:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183462-20180308110907.patch</filename>
            <type>text/plain</type>
            <size>216092</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mjg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmM4OTk3MTRjOTg3MjA2ZmNiYTRjMzNlMDk5YmNhNjg5
OTU2MjVmMy4uNzFlOWM2YjdkYmNiNjIzYzI0N2NiNTU1OWI0ZGRhOGE3NjBlNzY3NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
NyBAQAorMjAxOC0wMy0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtMYXlvdXRSZWxvYWRlZF0gSW5pdGlhbCBjb21taXQgLWJsb2NrIGZvcm1hdHRpbmcgY29u
dGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MzQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TGF5b3V0UmVsb2FkZWQvQmxvY2tDb250YWluZXIuanM6IEFkZGVkLgorICAgICAgICAoQmxvY2tD
b250YWluZXIpOgorICAgICAgICAoQmxvY2tDb250YWluZXIucHJvdG90eXBlLmVzdGFibGlzaGVz
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuanM6IEFkZGVkLgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5sYXlvdXQp
OgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuY29tcHV0ZVdpZHRo
KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmNvbXB1dGVIZWln
aHQpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubWFyZ2luVG9w
KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLm1hcmdpbkJvdHRv
bSk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZVN0
YXRpY1Bvc2l0aW9uKToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBl
Ll9wbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LnByb3RvdHlwZS5fcGxhY2VPdXRPZkZsb3dEZXNjZW5kYW50cyk6CisgICAgICAg
IChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZU91dE9mRmxvd1dpZHRo
KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlRmxv
YXRpbmdXaWR0aCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5f
Y29tcHV0ZUluRmxvd1dpZHRoKToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJv
dG90eXBlLl9jb21wdXRlT3V0T2ZGbG93SGVpZ2h0KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlRmxvYXRpbmdIZWlnaHQpOgorICAgICAgICAoQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVJbkZsb3dIZWlnaHQpOgorICAg
ICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVIb3Jpem9udGFs
Q29uc3RyYWludCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5f
Y29tcHV0ZUNvbnRlbnRIZWlnaHQpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5w
cm90b3R5cGUuX2NvbXB1dGVJbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24pOgorICAgICAgICAoQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVPdXRPZkZsb3dQb3NpdGlvbik6
CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fc2hyaW5rVG9GaXRX
aWR0aCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvQmxvY2tNYXJnaW5Db2xsYXBzZS5qczog
QWRkZWQuCisgICAgICAgIChCbG9ja01hcmdpbkNvbGxhcHNlLm1hcmdpblRvcCk6CisgICAgICAg
IChCbG9ja01hcmdpbkNvbGxhcHNlLm1hcmdpbkJvdHRvbSk6CisgICAgICAgIChCbG9ja01hcmdp
bkNvbGxhcHNlLl9pc01hcmdpblRvcENvbGxhcHNlZFdpdGhTaWJsaW5nKToKKyAgICAgICAgKEJs
b2NrTWFyZ2luQ29sbGFwc2UuX2lzTWFyZ2luQm90dG9tQ29sbGFwc2VkV2l0aFNpYmxpbmcpOgor
ICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5faXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoUGFy
ZW50KToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2lzTWFyZ2luQm90dG9tQ29sbGFw
c2VkV2l0aFBhcmVudCk6CisgICAgICAgIChCbG9ja01hcmdpbkNvbGxhcHNlLl9ub25Db2xsYXBz
ZWRNYXJnaW5Ub3ApOgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5fbm9uQ29sbGFwc2Vk
TWFyZ2luQm90dG9tKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2NvbGxhcHNlZE1h
cmdpblRvcEZyb21GaXJzdENoaWxkKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2Nv
bGxhcHNlZE1hcmdpbkJvdHRvbUZyb21MYXN0Q2hpbGQpOgorICAgICAgICAoQmxvY2tNYXJnaW5D
b2xsYXBzZS5fbWFyZ2luVmFsdWUpOgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5faGFz
QWRqb2luaW5nTWFyZ2luVG9wQW5kQm90dG9tKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFw
c2UpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0JveC5qczogQWRkZWQuCisgICAgICAgIChC
b3gpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pZCk6CisgICAgICAgIChCb3gucHJvdG90eXBl
LnNldFJlbmRlcmVyTmFtZSk6CisgICAgICAgIChCb3gucHJvdG90eXBlLm5hbWUpOgorICAgICAg
ICAoQm94LnByb3RvdHlwZS5ub2RlKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUucGFyZW50KToK
KyAgICAgICAgKEJveC5wcm90b3R5cGUubmV4dFNpYmxpbmcpOgorICAgICAgICAoQm94LnByb3Rv
dHlwZS5uZXh0SW5GbG93U2libGluZyk6CisgICAgICAgIChCb3gucHJvdG90eXBlLnByZXZpb3Vz
U2libGluZyk6CisgICAgICAgIChCb3gucHJvdG90eXBlLnByZXZpb3VzSW5GbG93U2libGluZyk6
CisgICAgICAgIChCb3gucHJvdG90eXBlLnNldFBhcmVudCk6CisgICAgICAgIChCb3gucHJvdG90
eXBlLnNldE5leHRTaWJsaW5nKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0UHJldmlvdXNT
aWJsaW5nKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUucmVjdCk6CisgICAgICAgIChCb3gucHJv
dG90eXBlLnRvcExlZnQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5ib3R0b21SaWdodCk6Cisg
ICAgICAgIChCb3gucHJvdG90eXBlLnNldFRvcExlZnQpOgorICAgICAgICAoQm94LnByb3RvdHlw
ZS5zZXRTaXplKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0V2lkdGgpOgorICAgICAgICAo
Qm94LnByb3RvdHlwZS5zZXRIZWlnaHQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0NvbnRh
aW5lcik6CisgICAgICAgIChCb3gucHJvdG90eXBlLmlzQmxvY2tMZXZlbEJveCk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLmlzQmxvY2tDb250YWluZXJCb3gpOgorICAgICAgICAoQm94LnByb3Rv
dHlwZS5pc0lubGluZUxldmVsQm94KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0SXNBbm9u
eW1vdXMpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0Fub255bW91cyk6CisgICAgICAgIChC
b3gucHJvdG90eXBlLmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAoQm94
LnByb3RvdHlwZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKEJveC5w
cm90b3R5cGUuZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKEJv
eC5wcm90b3R5cGUuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLmlzUG9zaXRpb25lZCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmlz
UmVsYXRpdmVQb3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNBYnNvbHV0ZVBv
c2l0aW9uZWQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0ZpeGVkUG9zaXRpb25lZCk6Cisg
ICAgICAgIChCb3gucHJvdG90eXBlLmlzSW5GbG93KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUu
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNJbkZsb3dQ
b3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNGbG9hdGluZ1Bvc2l0aW9uZWQp
OgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVk
KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNSb290RWxlbWVudCk6CisgICAgICAgIChCb3gu
cHJvdG90eXBlLmNvbnRhaW5pbmdCbG9jayk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmJvcmRl
ckJveCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLnBhZGRpbmdCb3gpOgorICAgICAgICAoQm94
LnByb3RvdHlwZS5jb250ZW50Qm94KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9Db250YWlu
ZXIuanM6IEFkZGVkLgorICAgICAgICAoQ29udGFpbmVyKToKKyAgICAgICAgKENvbnRhaW5lci5w
cm90b3R5cGUuaXNDb250YWluZXIpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5zZXRG
aXJzdENoaWxkKToKKyAgICAgICAgKENvbnRhaW5lci5wcm90b3R5cGUuc2V0TGFzdENoaWxkKToK
KyAgICAgICAgKENvbnRhaW5lci5wcm90b3R5cGUuZmlyc3RDaGlsZCk6CisgICAgICAgIChDb250
YWluZXIucHJvdG90eXBlLmZpcnN0SW5GbG93Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnBy
b3RvdHlwZS5sYXN0Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5sYXN0SW5G
bG93Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5oYXNDaGlsZCk6CisgICAg
ICAgIChDb250YWluZXIucHJvdG90eXBlLmhhc0luRmxvd0NoaWxkKToKKyAgICAgICAgKiBMYXlv
dXRSZWxvYWRlZC9GbG9hdGluZ0NvbnRleHQuanM6IEFkZGVkLgorICAgICAgICAoRmxvYXRpbmdD
b250ZXh0KToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuY29tcHV0ZVBvc2l0
aW9uKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuYm90dG9tKToKKyAgICAg
ICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX3Bvc2l0aW9uRm9yRmxvYXRpbmcpOgorICAg
ICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlwZS5fcG9zaXRpb25Gb3JDbGVhcik6CisgICAg
ICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlUG9zaXRpb25Ub0F2b2lkSW50
cnVkaW5nRmxvYXRzKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2FkZEZs
b2F0aW5nKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2ZpbmRJbm5lck1v
c3RMZWZ0QW5kUmlnaHQpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlwZS5fbW92
ZVRvTmV4dFZlcnRpY2FsUG9zaXRpb24pOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3Rv
dHlwZS5fYXZhaWxhYmxlU3BhY2UpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlw
ZS5fZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKEZsb2F0aW5nQ29u
dGV4dC5wcm90b3R5cGUuX2lzRW1wdHkpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3Rv
dHlwZS5fYWRqdXN0ZWRGbG9hdGluZ1Bvc2l0aW9uKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4
dC5wcm90b3R5cGUuX2JvdHRvbSk6CisgICAgICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBl
Ll9mb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGlu
Z0NvbnRleHQuanM6IEFkZGVkLgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAg
ICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLnJvb3RDb250YWluZXIpOgorICAgICAgICAo
Rm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmZsb2F0aW5nQ29udGV4dCk6CisgICAgICAgIChG
b3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKEZvcm1hdHRpbmdD
b250ZXh0LnByb3RvdHlwZS5jb21wdXRlV2lkdGgpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRl
eHQucHJvdG90eXBlLmNvbXB1dGVIZWlnaHQpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQu
cHJvdG90eXBlLm1hcmdpblRvcCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5
cGUubWFyZ2luTGVmdCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubWFy
Z2luQm90dG9tKToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5tYXJnaW5S
aWdodCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuYWJzb2x1dGVNYXJn
aW5Cb3gpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmFic29sdXRlQm9y
ZGVyQm94KToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5hYnNvbHV0ZVBh
ZGRpbmdCb3gpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmFic29sdXRl
Q29udGVudEJveCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvSW5pdGlhbEJsb2NrQ29udGFp
bmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKEluaXRpYWxCbG9ja0NvbnRhaW5lcik6CisgICAgICAg
IChJbml0aWFsQmxvY2tDb250YWluZXIucHJvdG90eXBlLmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCk6CisgICAgICAgIChJbml0aWFsQmxvY2tDb250YWluZXIucHJvdG90eXBlLnBh
ZGRpbmdCb3gpOgorICAgICAgICAoSW5pdGlhbEJsb2NrQ29udGFpbmVyLnByb3RvdHlwZS5jb250
ZW50Qm94KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9JbmxpbmVCb3guanM6IEFkZGVkLgor
ICAgICAgICAoSW5saW5lQm94KToKKyAgICAgICAgKElubGluZUJveC5wcm90b3R5cGUuc2V0VGV4
dCk6CisgICAgICAgIChJbmxpbmVCb3gucHJvdG90eXBlLnRleHQpOgorICAgICAgICAqIExheW91
dFJlbG9hZGVkL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKElu
bGluZUZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKElubGluZUZvcm1hdHRpbmdDb250ZXh0
LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQucHJv
dG90eXBlLl9oYW5kbGVJbmxpbmVCb3gpOgorICAgICAgICAoSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQucHJvdG90eXBlLl9oYW5kbGVUZXh0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlv
dXQuanM6IEFkZGVkLgorICAgICAgICAobGF5b3V0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRl
ZC9MYXlvdXRDb250ZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKExheW91dENvbnRleHQpOgorICAg
ICAgICAoTGF5b3V0Q29udGV4dC5wcm90b3R5cGUubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHQpOgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL2NvbnRl
bnRzLnhjd29ya3NwYWNlZGF0YTogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvTGF5
b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5w
bGlzdDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvUkVBRE1FLm1kOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9UZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKFRleHQp
OgorICAgICAgICAqIExheW91dFJlbG9hZGVkL1RyZWVCdWlsZGVyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFRyZWVCdWlsZGVyLnByb3RvdHlwZS5jcmVhdGVUcmVlKToKKyAgICAgICAgKFRyZWVCdWls
ZGVyLnByb3RvdHlwZS5fY3JlYXRlQW5kQXR0YWNoQm94KToKKyAgICAgICAgKFRyZWVCdWlsZGVy
LnByb3RvdHlwZS5fYXBwZW5kQ2hpbGQpOgorICAgICAgICAoVHJlZUJ1aWxkZXIucHJvdG90eXBl
Ll9maW5kQm94KToKKyAgICAgICAgKFRyZWVCdWlsZGVyLnByb3RvdHlwZS5fZmluZE5vZGUpOgor
ICAgICAgICAoVHJlZUJ1aWxkZXIpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL1V0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKExheW91dFBvaW50KToKKyAgICAgICAgKExheW91dFBvaW50LnBy
b3RvdHlwZS5zZXRMZWZ0KToKKyAgICAgICAgKExheW91dFBvaW50LnByb3RvdHlwZS5zZXRUb3Ap
OgorICAgICAgICAoTGF5b3V0UG9pbnQucHJvdG90eXBlLmxlZnQpOgorICAgICAgICAoTGF5b3V0
UG9pbnQucHJvdG90eXBlLnRvcCk6CisgICAgICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUuc2hp
ZnRMZWZ0KToKKyAgICAgICAgKExheW91dFBvaW50LnByb3RvdHlwZS5zaGlmdFRvcCk6CisgICAg
ICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUubW92ZUJ5KToKKyAgICAgICAgKExheW91dFBvaW50
LnByb3RvdHlwZS5lcXVhbCk6CisgICAgICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUuY2xvbmUp
OgorICAgICAgICAoTGF5b3V0U2l6ZSk6CisgICAgICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5z
ZXRXaWR0aCk6CisgICAgICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5zZXRIZWlnaHQpOgorICAg
ICAgICAoTGF5b3V0U2l6ZS5wcm90b3R5cGUud2lkdGgpOgorICAgICAgICAoTGF5b3V0U2l6ZS5w
cm90b3R5cGUuaGVpZ2h0KToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBlLmdyb3dCeSk6
CisgICAgICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5zaHJpbmtCeSk6CisgICAgICAgIChMYXlv
dXRTaXplLnByb3RvdHlwZS5pc0VtcHR5KToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBl
LmVxdWFsKToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBlLmNsb25lKToKKyAgICAgICAg
KExheW91dFJlY3QpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2V0VG9wKToKKyAg
ICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldExlZnQpOgorICAgICAgICAoTGF5b3V0UmVj
dC5wcm90b3R5cGUuc2V0Qm90dG9tKToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNl
dFJpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLmxlZnQpOgorICAgICAgICAo
TGF5b3V0UmVjdC5wcm90b3R5cGUudG9wKToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBl
LmJvdHRvbSk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5yaWdodCk6CisgICAgICAg
IChMYXlvdXRSZWN0LnByb3RvdHlwZS5zZXRUb3BMZWZ0KToKKyAgICAgICAgKExheW91dFJlY3Qu
cHJvdG90eXBlLnRvcExlZnQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUudG9wUmln
aHQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuYm90dG9tUmlnaHQpOgorICAgICAg
ICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2V0V2lkdGgpOgorICAgICAgICAoTGF5b3V0UmVjdC5w
cm90b3R5cGUuc2V0SGVpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldFNp
emUpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2l6ZSk6CisgICAgICAgIChMYXlv
dXRSZWN0LnByb3RvdHlwZS53aWR0aCk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5o
ZWlnaHQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuZ3Jvd0J5KToKKyAgICAgICAg
KExheW91dFJlY3QucHJvdG90eXBlLnNocmlua0J5KToKKyAgICAgICAgKExheW91dFJlY3QucHJv
dG90eXBlLm1vdmVCeSk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5pc0VtcHR5KToK
KyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLmVxdWFsKToKKyAgICAgICAgKExheW91dFJl
Y3QucHJvdG90eXBlLmludGVyc2VjdHMpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUu
Y29udGFpbnMpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuY2xvbmUpOgorICAgICAg
ICAoQVNTRVJUX05PVF9SRUFDSEVEKToKKyAgICAgICAgKEFTU0VSVCk6CisgICAgICAgIChVdGls
cy5jb21wdXRlZFZhbHVlKToKKyAgICAgICAgKFV0aWxzLnByb3BlcnR5SXNBdXRvKToKKyAgICAg
ICAgKFV0aWxzLmlzV2lkdGhBdXRvKToKKyAgICAgICAgKFV0aWxzLmlzSGVpZ2h0QXV0byk6Cisg
ICAgICAgIChVdGlscy5pc1RvcEF1dG8pOgorICAgICAgICAoVXRpbHMuaXNMZWZ0QXV0byk6Cisg
ICAgICAgIChVdGlscy5pc0JvdHRvbUF1dG8pOgorICAgICAgICAoVXRpbHMuaXNSaWdodEF1dG8p
OgorICAgICAgICAoVXRpbHMud2lkdGgpOgorICAgICAgICAoVXRpbHMuaGVpZ2h0KToKKyAgICAg
ICAgKFV0aWxzLnRvcCk6CisgICAgICAgIChVdGlscy5ib3R0b20pOgorICAgICAgICAoVXRpbHMu
bGVmdCk6CisgICAgICAgIChVdGlscy5yaWdodCk6CisgICAgICAgIChVdGlscy5oYXNCb3JkZXJU
b3ApOgorICAgICAgICAoVXRpbHMuaGFzQm9yZGVyQm90dG9tKToKKyAgICAgICAgKFV0aWxzLmhh
c1BhZGRpbmdUb3ApOgorICAgICAgICAoVXRpbHMuaGFzUGFkZGluZ0JvdHRvbSk6CisgICAgICAg
IChVdGlscy5jb21wdXRlZE1hcmdpblRvcCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZE1hcmdp
bkxlZnQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRNYXJnaW5Cb3R0b20pOgorICAgICAgICAo
VXRpbHMuY29tcHV0ZWRNYXJnaW5SaWdodCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZEJvcmRl
clRvcExlZnQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRCb3JkZXJCb3R0b21SaWdodCk6Cisg
ICAgICAgIChVdGlscy5jb21wdXRlZFBhZGRpbmdUb3BMZWZ0KToKKyAgICAgICAgKFV0aWxzLmNv
bXB1dGVkUGFkZGluZ0JvdHRvbVJpZ2h0KToKKyAgICAgICAgKFV0aWxzLmNvbXB1dGVkQm9yZGVy
QW5kUGFkZGluZ1RvcCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdM
ZWZ0KToKKyAgICAgICAgKFV0aWxzLmNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ0JvdHRvbSk6Cisg
ICAgICAgIChVdGlscy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdSaWdodCk6CisgICAgICAgIChV
dGlscy5jb21wdXRlZEhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nKToKKyAgICAgICAgKFV0aWxz
LmNvbXB1dGVkVmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKToKKyAgICAgICAgKFV0aWxzLmhhc0Ns
ZWFyKToKKyAgICAgICAgKFV0aWxzLmhhc0NsZWFyTGVmdCk6CisgICAgICAgIChVdGlscy5oYXND
bGVhclJpZ2h0KToKKyAgICAgICAgKFV0aWxzLmhhc0NsZWFyQm90aCk6CisgICAgICAgIChVdGls
cy5pc0Jsb2NrTGV2ZWxFbGVtZW50KToKKyAgICAgICAgKFV0aWxzLmlzQmxvY2tDb250YWluZXJF
bGVtZW50KToKKyAgICAgICAgKFV0aWxzLmlzSW5saW5lTGV2ZWxFbGVtZW50KToKKyAgICAgICAg
KFV0aWxzLmlzVGFibGVFbGVtZW50KToKKyAgICAgICAgKFV0aWxzLmlzUmVsYXRpdmVQb3NpdGlv
bmVkKToKKyAgICAgICAgKFV0aWxzLmlzQWJzb2x1dGVQb3NpdGlvbmVkKToKKyAgICAgICAgKFV0
aWxzLmlzRml4ZWRQb3NpdGlvbmVkKToKKyAgICAgICAgKFV0aWxzLmlzT3ZlcmZsb3dWaXNpYmxl
KToKKyAgICAgICAgKFV0aWxzLmlzRmxvYXRpbmdQb3NpdGlvbmVkKToKKyAgICAgICAgKFV0aWxz
LmlzRmxvYXRpbmdMZWZ0KToKKyAgICAgICAgKFV0aWxzLm1hcFRvQ29udGFpbmVyKToKKyAgICAg
ICAgKFV0aWxzLm1hcFN0YXRpY1RvQWJzb2x1dGUpOgorICAgICAgICAoVXRpbHMuY29sbGVjdE91
dE9mRmxvd0Rlc2NlbmRhbnRzKToKKyAgICAgICAgKFV0aWxzLm5leHRCcmVha2luZ09wcG9ydHVu
aXR5KToKKyAgICAgICAgKFV0aWxzLm1lYXN1cmVUZXh0KToKKyAgICAgICAgKFV0aWxzLmxheW91
dFRyZWVEdW1wKToKKyAgICAgICAgKFV0aWxzLl9kdW1wQm94KToKKyAgICAgICAgKFV0aWxzLl9k
dW1wVHJlZSk6CisgICAgICAgIChVdGlscyk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlz
Yy9MYXlvdXRSZWxvYWRlZFdlYktpdC5wYXRjaDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrQ29udGFpbmVyLmg6IEFkZGVkLgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6IEFkZGVk
LgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxh
cHNlLmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Cb3gu
aDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5l
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRmxvYXRp
bmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVy
cy9Gb3JtYXR0aW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9t
aXNjL2hlYWRlcnMvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmg6IEFkZGVkLgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9JbmxpbmVCb3guaDogQWRkZWQuCisgICAgICAgICog
TGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaDogQWRkZWQuCisgICAgICAg
ICogTGF5b3V0UmVsb2FkZWQvdGVzdC9UZXN0SGFybmVzcy5qczogQWRkZWQuCisgICAgICAgICh2
ZXJpZnlMYXlvdXRUcmVlRHVtcCk6CisgICAgICAgIChydW5MYXlvdXQpOgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtYXV0by13aXRoLXNpYmxpbmctbWFyZ2luLWJvdHRv
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWJv
dHRvbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRl
LWhlaWdodC1zdHJldGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rl
c3QvYWJzb2x1dGUtbGVmdC1hdXRvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1yaWdodC10b3AtYm90dG9tLWF1dG8uaHRtbDogQWRkZWQu
CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1uZXN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1uZXN0ZWQyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgt
c2hyaW5rLXRvLWZpdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0
L2Fic29sdXRlLXdpZHRoLXN0cmV0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLWlubGluZS1wcmVmZXJyZWQtd2lkdGguaHRtbDogQWRk
ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLXN0YXRpYy1i
bG9jay1wb3NpdGlvbi1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9hbG1vc3QtaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYm9yZGVyLXNpbXBsZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2ZpeGVkLW5lc3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0LWxlZnQtd2hlbi1jb250YWluZXIt
aGFzLXBhZGRpbmctbWFyZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLWJvdGgtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLXJpZ2h0LXNpbXBsZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1s
ZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS13aXRoLXRvcC1vZmZzZXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVs
dGlwbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGlu
Zy1ib3gtcmlnaHQtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2libGluZ3MuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtd2l0aC1jbGVhci1zaW1wbGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gt
d2l0aC1uZXctZm9ybWF0dGluZy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91
dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtcmVsYXRpdmUtcG9zaXRpb25lZC1zaWJs
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmct
bGVmdC1yaWdodC1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXdpdGgtYWxsLW1hcmdpbnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0cy1hbmQtcmlnaHRzLXNp
bXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5n
LW11bHRpcGxlLWxlZnRzLWluLWJvZHkuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1tdWx0aXBsZS1saW5lcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxl
ZnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmct
c2l6aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctc2l6aW5nMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zs
b2F0aW5nLXNpemluZzMuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy13aXRoLW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbDogQWRkZWQu
CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2lubGluZS1jb250ZW50LXNpbXBsZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0LWZsb2F0LXNp
bXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1j
b2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtZmlyc3QtbGFzdC1hcmUt
ZmxvYXRpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJn
aW4tY29sbGFwc2Utc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXRvcC1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
TGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMtcGFkZGlu
Zy1ib3JkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJn
aW4tY29sbGFwc2Utd2l0aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9jay1m
b3JtYXR0aW5nLWNvbnRleHQyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLW91dC1vZi1mbG93Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXByb3BhZ2F0
aW9uLXNpbXBsZS1jb250ZW50LWhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC90ZXN0L21hcmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2ltcGxlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbmVnYXRpdmUtbWFyZ2luLXNpbXBs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L3BhZGRpbmctbmVz
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvcGFkZGluZy1z
aW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2
ZS1hdXRvLXdpdGgtcGFyZW50LW9mZnNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8uaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0
UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1ib3R0b20uaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1yaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBM
YXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLXNpYmxpbmdzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIExheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtc2ltcGxlLmh0bWw6IEFkZGVkLgorCiAy
MDE4LTAzLTA1ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gSW1wbGVtZW50IFdUUidzIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNL
ZXkoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvQmxvY2tDb250YWluZXIuanMg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0NvbnRhaW5lci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTQ5
MWMxOTkwODg0ZmQ2OWRlMGRjYTRjNzhmZjRmZjU2YjdkOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvQmxvY2tDb250YWluZXIuanMKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NsYXNzIEJsb2Nr
Q29udGFpbmVyIGV4dGVuZHMgQ29udGFpbmVyIHsKKyAgICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkg
eworICAgICAgICBzdXBlcihub2RlLCBpZCk7CisgICAgfQorCisgICAgZXN0YWJsaXNoZXNJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAgICAgICAgLy8gOS40LjIgSW5saW5lIGZvcm1hdHRp
bmcgY29udGV4dHMKKyAgICAgICAgLy8gQW4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCBpcyBl
c3RhYmxpc2hlZCBieSBhIGJsb2NrIGNvbnRhaW5lciBib3ggdGhhdCBjb250YWlucyBubyBibG9j
ay1sZXZlbCBib3hlcy4KKyAgICAgICAgZm9yIChsZXQgY2hpbGQgPSB0aGlzLmZpcnN0SW5GbG93
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dEluRmxvd1NpYmxpbmcoKSkgeworICAg
ICAgICAgICAgaWYgKGNoaWxkLmlzQmxvY2tMZXZlbEJveCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkZsb3dDaGls
ZCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZTcyOGMyODUwODc3OTQzM2VlMTM3NThjNmYxNDlkYzU5
ZjQ0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmpzCkBAIC0wLDAgKzEsMzE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KK2NsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQgZXh0ZW5k
cyBGb3JtYXR0aW5nQ29udGV4dCB7CisgICAgY29uc3RydWN0b3Iocm9vdCkgeworICAgICAgICBz
dXBlcihyb290KTsKKyAgICAgICAgLy8gTmV3IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCBhbHdh
eXMgZXN0YWJsaXNoZXMgYSBuZXcgZmxvYXRpbmcgY29udGV4dC4KKyAgICAgICAgdGhpcy5tX2Zs
b2F0aW5nQ29udGV4dCA9IG5ldyBGbG9hdGluZ0NvbnRleHQodGhpcyk7CisgICAgfQorCisgICAg
bGF5b3V0KGxheW91dENvbnRleHQpIHsKKyAgICAgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0cworICAgICAgICAvLyBJbiBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCwgYm94
ZXMgYXJlIGxhaWQgb3V0IG9uZSBhZnRlciB0aGUgb3RoZXIsIHZlcnRpY2FsbHksIGJlZ2lubmlu
ZyBhdCB0aGUgdG9wIG9mIGEgY29udGFpbmluZyBibG9jay4KKyAgICAgICAgLy8gVGhlIHZlcnRp
Y2FsIGRpc3RhbmNlIGJldHdlZW4gdHdvIHNpYmxpbmcgYm94ZXMgaXMgZGV0ZXJtaW5lZCBieSB0
aGUgJ21hcmdpbicgcHJvcGVydGllcy4KKyAgICAgICAgLy8gVmVydGljYWwgbWFyZ2lucyBiZXR3
ZWVuIGFkamFjZW50IGJsb2NrLWxldmVsIGJveGVzIGluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250
ZXh0IGNvbGxhcHNlLgorICAgICAgICBpZiAoIXRoaXMucm9vdENvbnRhaW5lcigpLmZpcnN0Q2hp
bGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3Jk
ZXIgdHJlZSB0cmF2ZXJzYWwgbGF5b3V0LgorICAgICAgICBsZXQgbGF5b3V0U3RhY2sgPSBuZXcg
QXJyYXkoKTsKKyAgICAgICAgLy8gVGhlIHJvb3QgY29udGFpbmVyIGxheW91dCBpcyBkb25lIGlu
IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMgaW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVh
dGVzLCBzbyBsZXQncyBzdGFydCB3aXRoIHRoZSBmaXJzdCBjaGlsZC4KKyAgICAgICAgbGF5b3V0
U3RhY2sucHVzaCh0aGlzLnJvb3RDb250YWluZXIoKS5maXJzdENoaWxkKCkpOworICAgICAgICAv
LyAxLiBHbyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSBsZWFmIG5vZGUKKyAgICAgICAgLy8gMi4g
Q29tcHV0ZSBzdGF0aWMgcG9zaXRpb24gYW5kIHdpZHRoIGFzIHdlIHRyYXZlcnMgZG93bgorICAg
ICAgICAvLyAzLiBBcyB3ZSBjbGltYiBiYWNrIG9uIHRoZSB0cmVlLCBjb21wdXRlIGhlaWdodCBh
bmQgZmluaWFsaXplIHBvc2l0aW9uCisgICAgICAgIC8vIChBbnkgc3VidHJlZXMgd2l0aCBuZXcg
Zm9ybWF0dGluZyBjb250ZXh0cyBuZWVkIHRvIGxheW91dCBzeW5jaHJvbm91c2x5KQorICAgICAg
ICB3aGlsZSAobGF5b3V0U3RhY2subGVuZ3RoKSB7CisgICAgICAgICAgICAvLyBUcmF2ZXJzIGRv
d24gb24gdGhlIGRlc2NlbmRhbnRzIHVudGlsIHdlIGZpbmQgYSBsZWFmIG5vZGUuCisgICAgICAg
ICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGxldCBib3ggPSBsYXlvdXRTdGFj
a1tsYXlvdXRTdGFjay5sZW5ndGggLSAxXTsKKyAgICAgICAgICAgICAgICBib3guc2V0V2lkdGgo
dGhpcy5jb21wdXRlV2lkdGgoYm94KSk7CisgICAgICAgICAgICAgICAgYm94LnNldFRvcExlZnQo
dGhpcy5fY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGJveCkpOworICAgICAgICAgICAgICAgIGlmIChi
b3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAg
IGxheW91dENvbnRleHQubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHQoYm94LmVzdGFibGlzaGVkRm9y
bWF0dGluZ0NvbnRleHQoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWJveC5pc0NvbnRhaW5lcigpIHx8ICFib3gu
aGFzQ2hpbGQoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
bGF5b3V0U3RhY2sucHVzaChib3guZmlyc3RDaGlsZCgpKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gQ2xpbWIgYmFjayBvbiB0aGUgYW5jZXN0b3JzIGFuZCBjb21wdXRlIGhlaWdo
dC9maW5hbCBwb3NpdGlvbi4KKyAgICAgICAgICAgIHdoaWxlIChsYXlvdXRTdGFjay5sZW5ndGgp
IHsKKyAgICAgICAgICAgICAgICAvLyBBbGwgaW5mbG93IGRlc2NlbmRhbnRzIChpZiB0aGVyZSBh
cmUgYW55KSBhcmUgbGFpZCBvdXQgYnkgbm93LiBMZXQncyBjb21wdXRlIHRoZSBib3gncyBoZWln
aHQuCisgICAgICAgICAgICAgICAgbGV0IGJveCA9IGxheW91dFN0YWNrLnBvcCgpOworICAgICAg
ICAgICAgICAgIGJveC5zZXRIZWlnaHQodGhpcy5jb21wdXRlSGVpZ2h0KGJveCkpOworICAgICAg
ICAgICAgICAgIC8vIEFkanVzdCBwb3NpdGlvbiBub3cgdGhhdCB3ZSBoYXZlIGFsbCB0aGUgcHJl
dmlvdXMgZmxvYXRzIHBsYWNlZCBpbiB0aGlzIGNvbnRleHQgLWlmIG5lZWRlZC4KKyAgICAgICAg
ICAgICAgICBib3guc2V0VG9wTGVmdCh0aGlzLmZsb2F0aW5nQ29udGV4dCgpLmNvbXB1dGVQb3Np
dGlvbihib3gpKTsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIHBvc2l0aW9uZWQgY2hpbGRyZW4g
dG8gdGhlaXIgZmluYWwgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgaWYgKGJveC5pc0NvbnRh
aW5lcigpKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BsYWNlSW5GbG93UG9zaXRpb25l
ZENoaWxkcmVuKGJveCk7CisgICAgICAgICAgICAgICAgICAgIC8vIFBsYWNlIHRoZSBvdXQgb2Yg
ZmxvdyBjb250ZW50LgorICAgICAgICAgICAgICAgICAgICB0aGlzLl9wbGFjZU91dE9mRmxvd0Rl
c2NlbmRhbnRzKGJveCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChi
b3gubmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGFjay5wdXNo
KGJveC5uZXh0U2libGluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIEFuZCBmaW5h
bGx5IHBsYWNlIHRoZSBvdXQgb2YgZmxvdyBkZXNjZW5kYW50cyBmb3IgdGhlIHJvb3QuCisgICAg
ICAgIHRoaXMuX3BsYWNlT3V0T2ZGbG93RGVzY2VuZGFudHModGhpcy5yb290Q29udGFpbmVyKCkp
OworICAgfQorCisgICAgY29tcHV0ZVdpZHRoKGJveCkgeworICAgICAgICBpZiAoYm94LmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVPdXRP
ZkZsb3dXaWR0aChib3gpOworICAgICAgICBpZiAoYm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcHV0ZUZsb2F0aW5nV2lkdGgoYm94KTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVJbkZsb3dXaWR0aChib3gpOworICAgIH0KKworICAg
IGNvbXB1dGVIZWlnaHQoYm94KSB7CisgICAgICAgIGlmIChib3guaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcHV0ZU91dE9mRmxvd0hlaWdodChi
b3gpOworICAgICAgICBpZiAoYm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KGJveCk7CisgICAgICAgIHJldHVy
biB0aGlzLl9jb21wdXRlSW5GbG93SGVpZ2h0KGJveCk7CisgICAgfQorCisgICAgbWFyZ2luVG9w
KGJveCkgeworICAgICAgICByZXR1cm4gQmxvY2tNYXJnaW5Db2xsYXBzZS5tYXJnaW5Ub3AoYm94
KTsKKyAgICB9CisKKyAgICBtYXJnaW5Cb3R0b20oYm94KSB7CisgICAgICAgIHJldHVybiBCbG9j
a01hcmdpbkNvbGxhcHNlLm1hcmdpbkJvdHRvbShib3gpOworICAgIH0KKworICAgIF9jb21wdXRl
U3RhdGljUG9zaXRpb24oYm94KSB7CisgICAgICAgIC8vIEluIGEgYmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0LCBib3hlcyBhcmUgbGFpZCBvdXQgb25lIGFmdGVyIHRoZSBvdGhlciwgdmVydGljYWxs
eSwgYmVnaW5uaW5nIGF0IHRoZSB0b3Agb2YgYSBjb250YWluaW5nIGJsb2NrLgorICAgICAgICAv
LyBUaGUgdmVydGljYWwgZGlzdGFuY2UgYmV0d2VlbiB0d28gc2libGluZyBib3hlcyBpcyBkZXRl
cm1pbmVkIGJ5IHRoZSAnbWFyZ2luJyBwcm9wZXJ0aWVzLgorICAgICAgICAvLyBWZXJ0aWNhbCBt
YXJnaW5zIGJldHdlZW4gYWRqYWNlbnQgYmxvY2stbGV2ZWwgYm94ZXMgaW4gYSBibG9jayBmb3Jt
YXR0aW5nIGNvbnRleHQgY29sbGFwc2UuCisgICAgICAgIGxldCBwYXJlbnQgPSBib3gucGFyZW50
KCk7CisgICAgICAgIC8vIFN0YXJ0IGZyb20gdGhlIHRvcCBvZiB0aGUgY29udGFpbmVyJ3MgY29u
dGVudCBib3guCisgICAgICAgIGxldCBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBib3gucHJldmlv
dXNJbkZsb3dTaWJsaW5nKCk7CisgICAgICAgIGxldCBjb250ZW50Qm90dG9tID0gcHJldmlvdXNJ
bkZsb3dTaWJsaW5nID8gcHJldmlvdXNJbkZsb3dTaWJsaW5nLmJvdHRvbVJpZ2h0KCkudG9wKCkg
KyB0aGlzLm1hcmdpbkJvdHRvbShwcmV2aW91c0luRmxvd1NpYmxpbmcpIDogcGFyZW50LmNvbnRl
bnRCb3goKS50b3AoKTsKKyAgICAgICAgbGV0IHBvc2l0aW9uID0gbmV3IExheW91dFBvaW50KGNv
bnRlbnRCb3R0b20sIHBhcmVudC5jb250ZW50Qm94KCkubGVmdCgpKTsKKyAgICAgICAgcG9zaXRp
b24ubW92ZUJ5KG5ldyBMYXlvdXRTaXplKHRoaXMubWFyZ2luTGVmdChib3gpLCB0aGlzLm1hcmdp
blRvcChib3gpKSk7CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9CisKKyAgICBfcGxh
Y2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29udGFpbmVyKSB7CisgICAgICAgIGZvciAobGV0
IGluRmxvd0NoaWxkID0gY29udGFpbmVyLmZpcnN0SW5GbG93Q2hpbGQoKTsgaW5GbG93Q2hpbGQ7
IGluRmxvd0NoaWxkID0gaW5GbG93Q2hpbGQubmV4dEluRmxvd1NpYmxpbmcoKSkKKyAgICAgICAg
ICAgIGluRmxvd0NoaWxkLnNldFRvcExlZnQodGhpcy5fY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQ
b3NpdGlvbihpbkZsb3dDaGlsZCkpOworICAgIH0KKworICAgIF9wbGFjZU91dE9mRmxvd0Rlc2Nl
bmRhbnRzKGNvbnRhaW5lcikgeworICAgICAgICBsZXQgb3V0T2ZGbG93RGVzY2VuZGFudHMgPSBV
dGlscy5jb2xsZWN0T3V0T2ZGbG93RGVzY2VuZGFudHMoY29udGFpbmVyKTsKKyAgICAgICAgZm9y
IChsZXQgb3V0T2ZGbG93Qm94IG9mIG91dE9mRmxvd0Rlc2NlbmRhbnRzKQorICAgICAgICAgICAg
b3V0T2ZGbG93Qm94LnNldFRvcExlZnQodGhpcy5fY29tcHV0ZU91dE9mRmxvd1Bvc2l0aW9uKG91
dE9mRmxvd0JveCkpOworICAgIH0KKworICAgIF9jb21wdXRlT3V0T2ZGbG93V2lkdGgoYm94KSB7
CisgICAgICAgIC8vIDEwLjMuNyBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIG5vbi1yZXBsYWNlZCBl
bGVtZW50cworCisgICAgICAgIC8vIDEuICdsZWZ0JyBhbmQgJ3dpZHRoJyBhcmUgJ2F1dG8nIGFu
ZCAncmlnaHQnIGlzIG5vdCAnYXV0bycsIHRoZW4gdGhlIHdpZHRoIGlzIHNocmluay10by1maXQu
IFRoZW4gc29sdmUgZm9yICdsZWZ0JworICAgICAgICAvLyAyLiAnbGVmdCcgYW5kICdyaWdodCcg
YXJlICdhdXRvJyBhbmQgJ3dpZHRoJyBpcyBub3QgJ2F1dG8nLCB0aGVuIGlmIHRoZSAnZGlyZWN0
aW9uJyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBlc3RhYmxpc2hpbmcKKyAgICAgICAgLy8gICAg
IHRoZSBzdGF0aWMtcG9zaXRpb24gY29udGFpbmluZyBibG9jayBpcyAnbHRyJyBzZXQgJ2xlZnQn
IHRvIHRoZSBzdGF0aWMgcG9zaXRpb24sIG90aGVyd2lzZSBzZXQgJ3JpZ2h0JyB0byB0aGUgc3Rh
dGljIHBvc2l0aW9uLgorICAgICAgICAvLyAgICAgVGhlbiBzb2x2ZSBmb3IgJ2xlZnQnIChpZiAn
ZGlyZWN0aW9uIGlzICdydGwnKSBvciAncmlnaHQnIChpZiAnZGlyZWN0aW9uJyBpcyAnbHRyJyku
CisgICAgICAgIC8vIDMuICd3aWR0aCcgYW5kICdyaWdodCcgYXJlICdhdXRvJyBhbmQgJ2xlZnQn
IGlzIG5vdCAnYXV0bycsIHRoZW4gdGhlIHdpZHRoIGlzIHNocmluay10by1maXQgLiBUaGVuIHNv
bHZlIGZvciAncmlnaHQnCisgICAgICAgIC8vIDQuICdsZWZ0JyBpcyAnYXV0bycsICd3aWR0aCcg
YW5kICdyaWdodCcgYXJlIG5vdCAnYXV0bycsIHRoZW4gc29sdmUgZm9yICdsZWZ0JworICAgICAg
ICAvLyA1LiAnd2lkdGgnIGlzICdhdXRvJywgJ2xlZnQnIGFuZCAncmlnaHQnIGFyZSBub3QgJ2F1
dG8nLCB0aGVuIHNvbHZlIGZvciAnd2lkdGgnCisgICAgICAgIC8vIDYuICdyaWdodCcgaXMgJ2F1
dG8nLCAnbGVmdCcgYW5kICd3aWR0aCcgYXJlIG5vdCAnYXV0bycsIHRoZW4gc29sdmUgZm9yICdy
aWdodCcKKyAgICAgICAgbGV0IHdpZHRoID0gTnVtYmVyLk5hTjsKKyAgICAgICAgaWYgKFV0aWxz
LmlzV2lkdGhBdXRvKGJveCkgJiYgVXRpbHMuaXNMZWZ0QXV0byhib3gpICYmIFV0aWxzLmlzUmln
aHRBdXRvKGJveCkpCisgICAgICAgICAgICB3aWR0aCA9IHRoaXMuX3Nocmlua1RvRml0V2lkdGgo
Ym94KTsKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNMZWZ0QXV0byhib3gpICYmIFV0aWxzLmlz
V2lkdGhBdXRvKGJveCkgJiYgIVV0aWxzLmlzUmlnaHRBdXRvKGJveCkpCisgICAgICAgICAgICB3
aWR0aCA9IHRoaXMuX3Nocmlua1RvRml0V2lkdGgoYm94KTsgLy8gMQorICAgICAgICBlbHNlIGlm
IChVdGlscy5pc0xlZnRBdXRvKGJveCkgJiYgVXRpbHMuaXNSaWdodEF1dG8oYm94KSAmJiAhVXRp
bHMuaXNXaWR0aEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0gVXRpbHMud2lkdGgoYm94
KTsgLy8gMgorICAgICAgICBlbHNlIGlmIChVdGlscy5pc1dpZHRoQXV0byhib3gpICYmIFV0aWxz
LmlzUmlnaHRBdXRvKGJveCkgJiYgIVV0aWxzLmlzTGVmdEF1dG8oYm94KSkKKyAgICAgICAgICAg
IHdpZHRoID0gdGhpcy5fc2hyaW5rVG9GaXRXaWR0aChib3gpOyAvLyAzCisgICAgICAgIGVsc2Ug
aWYgKFV0aWxzLmlzTGVmdEF1dG8oYm94KSAmJiAhVXRpbHMuaXNXaWR0aEF1dG8oYm94KSAmJiAh
VXRpbHMuaXNSaWdodEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0gVXRpbHMud2lkdGgo
Ym94KTsgLy8gNAorICAgICAgICBlbHNlIGlmIChVdGlscy5pc1dpZHRoQXV0byhib3gpICYmICFV
dGlscy5pc0xlZnRBdXRvKGJveCkgJiYgIVV0aWxzLmlzUmlnaHRBdXRvKGJveCkpCisgICAgICAg
ICAgICB3aWR0aCA9IE1hdGgubWF4KDAsIGJveC5jb250YWluaW5nQmxvY2soKS5jb250ZW50Qm94
KCkud2lkdGgoKSAtIFV0aWxzLnJpZ2h0KGJveCkgLSBVdGlscy5sZWZ0KGJveCkpOyAvLyA1Cisg
ICAgICAgIGVsc2UgaWYgKFV0aWxzLmlzUmlnaHRBdXRvKGJveCkgJiYgIVV0aWxzLmlzTGVmdEF1
dG8oYm94KSAmJiAhVXRpbHMuaXNXaWR0aEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0g
VXRpbHMud2lkdGgoYm94KTsgLy8gNgorICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHdpZHRoICsgVXRpbHMuY29tcHV0ZWRIb3Jp
em9udGFsQm9yZGVyQW5kUGFkZGluZyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlRmxvYXRp
bmdXaWR0aChib3gpIHsKKyAgICAgICAgLy8gRklYTUU6IG1pc3NpbmcgY2FzZXMKKyAgICAgICAg
cmV0dXJuIFV0aWxzLndpZHRoKGJveCkgKyBVdGlscy5jb21wdXRlZEhvcml6b250YWxCb3JkZXJB
bmRQYWRkaW5nKGJveCk7CisgICAgfQorCisgICAgX2NvbXB1dGVJbkZsb3dXaWR0aChib3gpIHsK
KyAgICAgICAgaWYgKFV0aWxzLmlzV2lkdGhBdXRvKGJveCkpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fY29tcHV0ZUhvcml6b250YWxDb25zdHJhaW50KGJveCk7CisgICAgICAgIHJldHVybiBV
dGlscy53aWR0aChib3gpICsgVXRpbHMuY29tcHV0ZWRIb3Jpem9udGFsQm9yZGVyQW5kUGFkZGlu
Zyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlT3V0T2ZGbG93SGVpZ2h0KGJveCkgeworICAg
ICAgICAvLyAxLiBJZiBhbGwgdGhyZWUgb2YgJ3RvcCcsICdoZWlnaHQnLCBhbmQgJ2JvdHRvbScg
YXJlIGF1dG8sIHNldCAndG9wJyB0byB0aGUgc3RhdGljIHBvc2l0aW9uIGFuZCBhcHBseSBydWxl
IG51bWJlciB0aHJlZSBiZWxvdy4KKyAgICAgICAgLy8gMi4gSWYgbm9uZSBvZiB0aGUgdGhyZWUg
YXJlICdhdXRvJzogSWYgYm90aCAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyBhcmUg
J2F1dG8nLCBzb2x2ZSB0aGUgZXF1YXRpb24gdW5kZXIKKyAgICAgICAgLy8gICAgdGhlIGV4dHJh
IGNvbnN0cmFpbnQgdGhhdCB0aGUgdHdvIG1hcmdpbnMgZ2V0IGVxdWFsIHZhbHVlcy4gSWYgb25l
IG9mICdtYXJnaW4tdG9wJyBvciAnbWFyZ2luLWJvdHRvbScgaXMgJ2F1dG8nLAorICAgICAgICAv
LyAgICBzb2x2ZSB0aGUgZXF1YXRpb24gZm9yIHRoYXQgdmFsdWUuIElmIHRoZSB2YWx1ZXMgYXJl
IG92ZXItY29uc3RyYWluZWQsIGlnbm9yZSB0aGUgdmFsdWUgZm9yICdib3R0b20nIGFuZCBzb2x2
ZSBmb3IgdGhhdCB2YWx1ZS4KKyAgICAgICAgLy8gT3RoZXJ3aXNlLCBwaWNrIHRoZSBvbmUgb2Yg
dGhlIGZvbGxvd2luZyBzaXggcnVsZXMgdGhhdCBhcHBsaWVzLgorCisgICAgICAgIC8vIDMuICd0
b3AnIGFuZCAnaGVpZ2h0JyBhcmUgJ2F1dG8nIGFuZCAnYm90dG9tJyBpcyBub3QgJ2F1dG8nLCB0
aGVuIHRoZSBoZWlnaHQgaXMgYmFzZWQgb24gdGhlIGNvbnRlbnQgcGVyIDEwLjYuNywKKyAgICAg
ICAgLy8gICAgc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1i
b3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBmb3IgJ3RvcCcKKyAgICAgICAgLy8gNC4gJ3RvcCcgYW5k
ICdib3R0b20nIGFyZSAnYXV0bycgYW5kICdoZWlnaHQnIGlzIG5vdCAnYXV0bycsIHRoZW4gc2V0
ICd0b3AnIHRvIHRoZSBzdGF0aWMgcG9zaXRpb24sIHNldCAnYXV0bycgdmFsdWVzCisgICAgICAg
IC8vICAgIGZvciAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyB0byAwLCBhbmQgc29s
dmUgZm9yICdib3R0b20nCisgICAgICAgIC8vIDUuICdoZWlnaHQnIGFuZCAnYm90dG9tJyBhcmUg
J2F1dG8nIGFuZCAndG9wJyBpcyBub3QgJ2F1dG8nLCB0aGVuIHRoZSBoZWlnaHQgaXMgYmFzZWQg
b24gdGhlIGNvbnRlbnQgcGVyIDEwLjYuNywKKyAgICAgICAgLy8gICAgc2V0ICdhdXRvJyB2YWx1
ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBm
b3IgJ2JvdHRvbScKKyAgICAgICAgLy8gNi4gJ3RvcCcgaXMgJ2F1dG8nLCAnaGVpZ2h0JyBhbmQg
J2JvdHRvbScgYXJlIG5vdCAnYXV0bycsIHRoZW4gc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJn
aW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBmb3IgJ3RvcCcKKyAg
ICAgICAgLy8gNy4gJ2hlaWdodCcgaXMgJ2F1dG8nLCAndG9wJyBhbmQgJ2JvdHRvbScgYXJlIG5v
dCAnYXV0bycsIHRoZW4gJ2F1dG8nIHZhbHVlcyBmb3IgJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2lu
LWJvdHRvbScgYXJlIHNldCB0byAwIGFuZCBzb2x2ZSBmb3IgJ2hlaWdodCcKKyAgICAgICAgLy8g
OC4gJ2JvdHRvbScgaXMgJ2F1dG8nLCAndG9wJyBhbmQgJ2hlaWdodCcgYXJlIG5vdCAnYXV0bycs
IHRoZW4gc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0
b20nIHRvIDAgYW5kIHNvbHZlIGZvciAnYm90dG9tJworICAgICAgICBsZXQgaGVpZ2h0ID0gTnVt
YmVyLk5hTjsKKyAgICAgICAgaWYgKFV0aWxzLmlzSGVpZ2h0QXV0byhib3gpICYmIFV0aWxzLmlz
Qm90dG9tQXV0byhib3gpICYmIFV0aWxzLmlzVG9wQXV0byhib3gpKQorICAgICAgICAgICAgaGVp
Z2h0ID0gdGhpcy5fY29tcHV0ZUNvbnRlbnRIZWlnaHQoYm94KTsgLy8gMQorICAgICAgICBlbHNl
IGlmIChVdGlscy5pc1RvcEF1dG8oKGJveCkpICYmIFV0aWxzLmlzSGVpZ2h0QXV0bygoYm94KSkg
JiYgIVV0aWxzLmlzQm90dG9tQXV0bygoYm94KSkpCisgICAgICAgICAgICBoZWlnaHQgPSB0aGlz
Ll9jb21wdXRlQ29udGVudEhlaWdodChib3gpOyAvLyAzCisgICAgICAgIGVsc2UgaWYgKFV0aWxz
LmlzVG9wQXV0bygoYm94KSkgJiYgVXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSAmJiAhVXRpbHMu
aXNIZWlnaHRBdXRvKChib3gpKSkKKyAgICAgICAgICAgIGhlaWdodCA9IFV0aWxzLmhlaWdodChi
b3gpOyAvLyA0CisgICAgICAgIGVsc2UgaWYgKFV0aWxzLmlzSGVpZ2h0QXV0bygoYm94KSkgJiYg
VXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSAmJiAhVXRpbHMuaXNUb3BBdXRvKChib3gpKSkKKyAg
ICAgICAgICAgIGhlaWdodCA9IHRoaXMuX2NvbXB1dGVDb250ZW50SGVpZ2h0KGJveCk7IC8vIDUK
KyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNUb3BBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNIZWln
aHRBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSkKKyAgICAgICAgICAg
IGhlaWdodCA9IFV0aWxzLmhlaWdodChib3gpOyAvLyA2CisgICAgICAgIGVsc2UgaWYgKFV0aWxz
LmlzSGVpZ2h0QXV0bygoYm94KSkgJiYgIVV0aWxzLmlzVG9wQXV0bygoYm94KSkgJiYgIVV0aWxz
LmlzQm90dG9tQXV0bygoYm94KSkpCisgICAgICAgICAgICBoZWlnaHQgPSBNYXRoLm1heCgwLCBi
b3guY29udGFpbmluZ0Jsb2NrKCkuY29udGVudEJveCgpLmhlaWdodCgpIC0gVXRpbHMuYm90dG9t
KGJveCkgLSBVdGlscy50b3AoYm94KSk7IC8vIDcKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNC
b3R0b21BdXRvKChib3gpKSAmJiAhVXRpbHMuaXNUb3BBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNI
ZWlnaHRBdXRvKChib3gpKSkKKyAgICAgICAgICAgIGhlaWdodCA9IFV0aWxzLmhlaWdodChib3gp
OyAvLyA4CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gaGVpZ2h0ICsgVXRpbHMuY29tcHV0ZWRWZXJ0aWNhbEJvcmRlckFuZFBh
ZGRpbmcoYm94KTsKKyAgICB9CisKKyAgICBfY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KGJveCkgewor
ICAgICAgICAvLyBGSVhNRTogbWlzc2luZyBjYXNlcworICAgICAgICByZXR1cm4gVXRpbHMuaGVp
Z2h0KGJveCkgKyBVdGlscy5jb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZyhib3gpOwor
ICAgIH0KKworICAgIF9jb21wdXRlSW5GbG93SGVpZ2h0KGJveCkgeworICAgICAgICBpZiAoVXRp
bHMuaXNIZWlnaHRBdXRvKGJveCkpIHsKKyAgICAgICAgICAgIC8vIE9ubHkgY2hpbGRyZW4gaW4g
dGhlIG5vcm1hbCBmbG93IGFyZSB0YWtlbiBpbnRvIGFjY291bnQgKGkuZS4sIGZsb2F0aW5nIGJv
eGVzIGFuZCBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgYm94ZXMgYXJlIGlnbm9yZWQsCisgICAgICAg
ICAgICAvLyBhbmQgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGJveGVzIGFyZSBjb25zaWRlcmVkIHdp
dGhvdXQgdGhlaXIgb2Zmc2V0KS4gTm90ZSB0aGF0IHRoZSBjaGlsZCBib3ggbWF5IGJlIGFuIGFu
b255bW91cyBibG9jayBib3guCisKKyAgICAgICAgICAgIC8vIFRoZSBlbGVtZW50J3MgaGVpZ2h0
IGlzIHRoZSBkaXN0YW5jZSBmcm9tIGl0cyB0b3AgY29udGVudCBlZGdlIHRvIHRoZSBmaXJzdCBh
cHBsaWNhYmxlIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAvLyAxLiB0aGUgYm90dG9t
IGVkZ2Ugb2YgdGhlIGxhc3QgbGluZSBib3gsIGlmIHRoZSBib3ggZXN0YWJsaXNoZXMgYSBpbmxp
bmUgZm9ybWF0dGluZyBjb250ZXh0IHdpdGggb25lIG9yIG1vcmUgbGluZXMKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLl9jb21wdXRlQ29udGVudEhlaWdodChib3gpICsgVXRpbHMuY29tcHV0ZWRW
ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmcoYm94KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
VXRpbHMuaGVpZ2h0KGJveCkgKyBVdGlscy5jb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGlu
Zyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlSG9yaXpvbnRhbENvbnN0cmFpbnQoYm94KSB7
CisgICAgICAgIGxldCBob3Jpem9udGFsQ29uc3RyYWludCA9IGJveC5jb250YWluaW5nQmxvY2so
KS5jb250ZW50Qm94KCkud2lkdGgoKTsKKyAgICAgICAgaG9yaXpvbnRhbENvbnN0cmFpbnQgLT0g
dGhpcy5tYXJnaW5MZWZ0KGJveCkgKyB0aGlzLm1hcmdpblJpZ2h0KGJveCk7CisgICAgICAgIHJl
dHVybiBob3Jpem9udGFsQ29uc3RyYWludDsKKyAgICB9CisKKyAgICBfY29tcHV0ZUNvbnRlbnRI
ZWlnaHQoYm94KSB7CisgICAgICAgIC8vIDEwLjYuMyBCbG9jay1sZXZlbCBub24tcmVwbGFjZWQg
ZWxlbWVudHMgaW4gbm9ybWFsIGZsb3cgd2hlbiAnb3ZlcmZsb3cnIGNvbXB1dGVzIHRvICd2aXNp
YmxlJworICAgICAgICAvLyBUaGUgZWxlbWVudCdzIGhlaWdodCBpcyB0aGUgZGlzdGFuY2UgZnJv
bSBpdHMgdG9wIGNvbnRlbnQgZWRnZSB0byB0aGUgZmlyc3QgYXBwbGljYWJsZSBvZiB0aGUgZm9s
bG93aW5nOgorICAgICAgICAvLyAxLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGxhc3QgbGluZSBi
b3gsIGlmIHRoZSBib3ggZXN0YWJsaXNoZXMgYSBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IHdp
dGggb25lIG9yIG1vcmUgbGluZXMKKyAgICAgICAgLy8gMi4gdGhlIGJvdHRvbSBlZGdlIG9mIHRo
ZSBib3R0b20gKHBvc3NpYmx5IGNvbGxhcHNlZCkgbWFyZ2luIG9mIGl0cyBsYXN0IGluLWZsb3cg
Y2hpbGQsIGlmIHRoZSBjaGlsZCdzIGJvdHRvbSBtYXJnaW4gZG9lcyBub3QgY29sbGFwc2UKKyAg
ICAgICAgLy8gICAgd2l0aCB0aGUgZWxlbWVudCdzIGJvdHRvbSBtYXJnaW4KKyAgICAgICAgLy8g
My4gdGhlIGJvdHRvbSBib3JkZXIgZWRnZSBvZiB0aGUgbGFzdCBpbi1mbG93IGNoaWxkIHdob3Nl
IHRvcCBtYXJnaW4gZG9lc24ndCBjb2xsYXBzZSB3aXRoIHRoZSBlbGVtZW50J3MgYm90dG9tIG1h
cmdpbgorICAgICAgICAvLyA0LiB6ZXJvLCBvdGhlcndpc2UKKyAgICAgICAgLy8gT25seSBjaGls
ZHJlbiBpbiB0aGUgbm9ybWFsIGZsb3cgYXJlIHRha2VuIGludG8gYWNjb3VudC4KKyAgICAgICAg
aWYgKCFib3guaXNDb250YWluZXIoKSB8fCAhYm94Lmhhc0luRmxvd0NoaWxkKCkpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgbGV0IHRvcCA9IGJveC5jb250ZW50Qm94KCkudG9wKCk7
CisgICAgICAgIGxldCBsYXN0SW5GbG93Q2hpbGQgPSBib3gubGFzdEluRmxvd0NoaWxkKCk7CisK
KyAgICAgICAgbGV0IGJvdHRvbSA9IGxhc3RJbkZsb3dDaGlsZC5yZWN0KCkuYm90dG9tKCkgKyB0
aGlzLm1hcmdpbkJvdHRvbShsYXN0SW5GbG93Q2hpbGQpOworICAgICAgICAvLyBGSVhNRTogbWFy
Z2luIGZvciBib2R5CisgICAgICAgIGlmIChsYXN0SW5GbG93Q2hpbGQubmFtZSgpID09ICJSZW5k
ZXJCb2R5IiAmJiBVdGlscy5pc0hlaWdodEF1dG8obGFzdEluRmxvd0NoaWxkKSAmJiAhbGFzdElu
Rmxvd0NoaWxkLmNvbnRlbnRCb3goKS5oZWlnaHQoKSkKKyAgICAgICAgICAgIGJvdHRvbSAtPSB0
aGlzLm1hcmdpbkJvdHRvbShsYXN0SW5GbG93Q2hpbGQpOworICAgICAgICAvLyBGSVhNRTogZmln
dXJlIG91dCB3aHkgZmxvYXRpbmdzIHBhcnQgb2YgdGhlIGluaXRpYWwgYmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0IGdldCBwcm9wYWdhdGVkIHRvIEhUTUwKKyAgICAgICAgaWYgKGJveC5ub2RlKCku
dGFnTmFtZSA9PSAiSFRNTCIpIHsKKyAgICAgICAgICAgIGxldCBmbG9hdGluZ0JvdHRvbSA9IHRo
aXMuZmxvYXRpbmdDb250ZXh0KCkuYm90dG9tKCk7CisgICAgICAgICAgICBpZiAoIU51bWJlci5p
c05hTihmbG9hdGluZ0JvdHRvbSkpCisgICAgICAgICAgICAgICAgYm90dG9tID0gTWF0aC5tYXgo
ZmxvYXRpbmdCb3R0b20sIGJvdHRvbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJvdHRv
bSAtIHRvcDsKKyAgICB9CisKKyAgICBfY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbihi
b3gpIHsKKyAgICAgICAgLy8gU3RhcnQgd2l0aCB0aGUgb3JpZ2luYWwsIHN0YXRpYyBwb3NpdGlv
bi4KKyAgICAgICAgbGV0IHJlbGF0aXZlUG9zaXRpb24gPSBib3gudG9wTGVmdCgpOworICAgICAg
ICAvLyBUb3AvYm90dG9tCisgICAgICAgIGlmICghVXRpbHMuaXNUb3BBdXRvKGJveCkpCisgICAg
ICAgICAgICByZWxhdGl2ZVBvc2l0aW9uLnNoaWZ0VG9wKFV0aWxzLnRvcChib3gpKTsKKyAgICAg
ICAgZWxzZSBpZiAoIVV0aWxzLmlzQm90dG9tQXV0byhib3gpKQorICAgICAgICAgICAgcmVsYXRp
dmVQb3NpdGlvbi5zaGlmdFRvcCgtVXRpbHMuYm90dG9tKGJveCkpOworICAgICAgICAvLyBMZWZ0
L3JpZ2h0CisgICAgICAgIGlmICghVXRpbHMuaXNMZWZ0QXV0byhib3gpKQorICAgICAgICAgICAg
cmVsYXRpdmVQb3NpdGlvbi5zaGlmdExlZnQoVXRpbHMubGVmdChib3gpKTsKKyAgICAgICAgZWxz
ZSBpZiAoIVV0aWxzLmlzUmlnaHRBdXRvKGJveCkpCisgICAgICAgICAgICByZWxhdGl2ZVBvc2l0
aW9uLnNoaWZ0TGVmdCgtVXRpbHMucmlnaHQoYm94KSk7CisgICAgICAgIHJldHVybiByZWxhdGl2
ZVBvc2l0aW9uOworICAgIH0KKworICAgIF9jb21wdXRlT3V0T2ZGbG93UG9zaXRpb24oYm94KSB7
CisgICAgICAgIGxldCBjb250YWluZXJTaXplID0gYm94LmNvbnRhaW5pbmdCbG9jaygpLmNvbnRl
bnRCb3goKS5zaXplKCk7CisgICAgICAgIC8vIFRvcC9ib3R0b20KKyAgICAgICAgbGV0IHRvcCA9
IE51bWJlci5OYU47CisgICAgICAgIGlmIChVdGlscy5pc1RvcEF1dG8oYm94KSAmJiBVdGlscy5p
c0JvdHRvbUF1dG8oYm94KSkgeworICAgICAgICAgICAgLy8gQ29udmVydCBzdGF0aWMgcG9zaXRp
b24gdG8gYWJzb2x1dGUuCisgICAgICAgICAgICB0b3AgPSBVdGlscy5tYXBTdGF0aWNUb0Fic29s
dXRlKGJveCkudG9wKCk7CisgICAgICAgIH0gZWxzZSBpZiAoIVV0aWxzLmlzVG9wQXV0byhib3gp
KQorICAgICAgICAgICAgdG9wID0gVXRpbHMudG9wKGJveCkgKyB0aGlzLm1hcmdpblRvcChib3gp
OworICAgICAgICBlbHNlIGlmICghVXRpbHMuaXNCb3R0b21BdXRvKGJveCkpCisgICAgICAgICAg
ICB0b3AgPSBjb250YWluZXJTaXplLmhlaWdodCgpIC0gVXRpbHMuYm90dG9tKGJveCkgLSBib3gu
cmVjdCgpLmhlaWdodCgpIC0gdGhpcy5tYXJnaW5Cb3R0b20oYm94KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIC8vIExlZnQvcmlnaHQK
KyAgICAgICAgbGV0IGxlZnQgPSBOdW1iZXIuTmFOOworICAgICAgICBpZiAoVXRpbHMuaXNMZWZ0
QXV0byhib3gpICYmIFV0aWxzLmlzUmlnaHRBdXRvKGJveCkpIHsKKyAgICAgICAgICAgIC8vIENv
bnZlcnQgc3RhdGljIHBvc2l0aW9uIHRvIGFic29sdXRlLgorICAgICAgICAgICAgbGVmdCA9IFV0
aWxzLm1hcFN0YXRpY1RvQWJzb2x1dGUoYm94KS5sZWZ0KCk7CisgICAgICAgIH0gZWxzZSBpZiAo
IVV0aWxzLmlzTGVmdEF1dG8oYm94KSkKKyAgICAgICAgICAgIGxlZnQgPSBVdGlscy5sZWZ0KGJv
eCkgKyB0aGlzLm1hcmdpbkxlZnQoYm94KTsKKyAgICAgICAgZWxzZSBpZiAoIVV0aWxzLmlzUmln
aHRBdXRvKGJveCkpCisgICAgICAgICAgICBsZWZ0ID0gY29udGFpbmVyU2l6ZS53aWR0aCgpIC0g
VXRpbHMucmlnaHQoYm94KSAtIGJveC5yZWN0KCkud2lkdGgoKSAtIHRoaXMubWFyZ2luUmlnaHQo
Ym94KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBuZXcgTGF5b3V0UG9pbnQodG9wLCBsZWZ0KTsKKyAgICB9CisKKyAgICBf
c2hyaW5rVG9GaXRXaWR0aChib3gpIHsKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgbmFpdmUu
CisgICAgICAgIEFTU0VSVChVdGlscy5pc1dpZHRoQXV0byhib3gpKTsKKyAgICAgICAgaWYgKCFi
b3guaXNDb250YWluZXIoKSB8fCAhYm94Lmhhc0NoaWxkKCkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgbGV0IHdpZHRoID0gMDsKKyAgICAgICAgZm9yIChsZXQgaW5GbG93Q2hpbGQg
PSBib3guZmlyc3RJbkZsb3dDaGlsZCgpOyBpbkZsb3dDaGlsZDsgaW5GbG93Q2hpbGQgPSBpbkZs
b3dDaGlsZC5uZXh0SW5GbG93U2libGluZygpKSB7CisgICAgICAgICAgICBsZXQgd2lkdGhDYW5k
aWRhdGUgPSBVdGlscy5pc1dpZHRoQXV0byhpbkZsb3dDaGlsZCkgPyB0aGlzLl9zaHJpbmtUb0Zp
dFdpZHRoKGluRmxvd0NoaWxkKSA6IFV0aWxzLndpZHRoKGluRmxvd0NoaWxkKTsKKyAgICAgICAg
ICAgIHdpZHRoID0gTWF0aC5tYXgod2lkdGgsIHdpZHRoQ2FuZGlkYXRlICsgVXRpbHMuY29tcHV0
ZWRIb3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZyhpbkZsb3dDaGlsZCkpOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91
dFJlbG9hZGVkL0Jsb2NrTWFyZ2luQ29sbGFwc2UuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9C
bG9ja01hcmdpbkNvbGxhcHNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MjU5YTU5OThhMTM3ZTY1MjgxZTc3
MjFhMjMzMGE1Yzc3YTgxYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9CbG9ja01hcmdpbkNvbGxhcHNlLmpzCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK2NsYXNzIEJsb2NrTWFyZ2luQ29sbGFwc2Ug
eworCisgICAgc3RhdGljIG1hcmdpblRvcChib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255
bW91cygpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIFRPRE86IHRha2UgX2hh
c0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbSgpIGludG8gYWNjb3VudC4KKyAgICAgICAgaWYg
KHRoaXMuX2lzTWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBhcmVudChib3gpKQorICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIC8vIEZsb2F0cyBhbmQgb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBi
b3hlcyBkbyBub3QgY29sbGFwc2UgdGhlaXIgbWFyZ2lucy4KKyAgICAgICAgaWYgKCF0aGlzLl9p
c01hcmdpblRvcENvbGxhcHNlZFdpdGhTaWJsaW5nKGJveCkpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fbm9uQ29sbGFwc2VkTWFyZ2luVG9wKGJveCk7CisgICAgICAgIC8vIFRoZSBib3R0b20g
bWFyZ2luIG9mIGFuIGluLWZsb3cgYmxvY2stbGV2ZWwgZWxlbWVudCBhbHdheXMgY29sbGFwc2Vz
IHdpdGggdGhlIHRvcCBtYXJnaW4gb2YgaXRzIG5leHQgaW4tZmxvdyBibG9jay1sZXZlbCBzaWJs
aW5nLAorICAgICAgICAvLyB1bmxlc3MgdGhhdCBzaWJsaW5nIGhhcyBjbGVhcmFuY2UuCisgICAg
ICAgIGxldCBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBib3gucHJldmlvdXNJbkZsb3dTaWJsaW5n
KCk7CisgICAgICAgIGlmIChwcmV2aW91c0luRmxvd1NpYmxpbmcpIHsKKyAgICAgICAgICAgIGxl
dCBwcmV2aW91c1NpYmxpbmdNYXJnaW5Cb3R0b20gPSB0aGlzLl9ub25Db2xsYXBzZWRNYXJnaW5C
b3R0b20ocHJldmlvdXNJbkZsb3dTaWJsaW5nKTsKKyAgICAgICAgICAgIGxldCBtYXJnaW5Ub3Ag
PSB0aGlzLl9ub25Db2xsYXBzZWRNYXJnaW5Ub3AoYm94KTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9tYXJnaW5WYWx1ZShtYXJnaW5Ub3AsIHByZXZpb3VzU2libGluZ01hcmdpbkJvdHRvbSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX25vbkNvbGxhcHNlZE1hcmdpblRvcChi
b3gpOworICAgIH0KKworICAgIHN0YXRpYyBtYXJnaW5Cb3R0b20oYm94KSB7CisgICAgICAgIGlm
IChib3guaXNBbm9ueW1vdXMoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAvLyBU
T0RPOiB0YWtlIF9oYXNBZGpvaW5pbmdNYXJnaW5Ub3BBbmRCb3R0b20oKSBpbnRvIGFjY291bnQu
CisgICAgICAgIGlmICh0aGlzLl9pc01hcmdpbkJvdHRvbUNvbGxhcHNlZFdpdGhQYXJlbnQoYm94
KSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAvLyBGbG9hdHMgYW5kIG91dCBvZiBm
bG93IHBvc2l0aW9uZWQgYm94ZXMgZG8gbm90IGNvbGxhcHNlIHRoZWlyIG1hcmdpbnMuCisgICAg
ICAgIGlmICghdGhpcy5faXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRXaXRoU2libGluZyhib3gpKQor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbShib3gpOwor
ICAgICAgICAvLyBUaGUgYm90dG9tIG1hcmdpbiBvZiBhbiBpbi1mbG93IGJsb2NrLWxldmVsIGVs
ZW1lbnQgYWx3YXlzIGNvbGxhcHNlcyB3aXRoIHRoZSB0b3AgbWFyZ2luIG9mIGl0cyBuZXh0IGlu
LWZsb3cgYmxvY2stbGV2ZWwgc2libGluZywKKyAgICAgICAgLy8gdW5sZXNzIHRoYXQgc2libGlu
ZyBoYXMgY2xlYXJhbmNlLgorICAgICAgICBpZiAoYm94Lm5leHRJbkZsb3dTaWJsaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25vbkNvbGxhcHNlZE1h
cmdpbkJvdHRvbShib3gpOworICAgIH0KKworICAgIHN0YXRpYyBfaXNNYXJnaW5Ub3BDb2xsYXBz
ZWRXaXRoU2libGluZyhib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Zsb2F0aW5nUG9zaXRpb25l
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWJveC5pc1Bvc2l0
aW9uZWQoKSB8fCBib3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgLy8gT3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KKyAgICAgICAgQVNTRVJU
KGJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CisgICAgICAgIHJldHVybiBVdGlscy5pc1Rv
cEF1dG8oYm94KTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2lzTWFyZ2luQm90dG9tQ29sbGFwc2Vk
V2l0aFNpYmxpbmcoYm94KSB7CisgICAgICAgIGlmIChib3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFib3guaXNQb3NpdGlv
bmVkKCkgfHwgYm94LmlzSW5GbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIC8vIE91dCBvZiBmbG93IHBvc2l0aW9uZWQuCisgICAgICAgIEFTU0VSVChi
b3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOworICAgICAgICByZXR1cm4gVXRpbHMuaXNCb3R0
b21BdXRvKGJveCk7CisgICAgfQorCisgICAgc3RhdGljIF9pc01hcmdpblRvcENvbGxhcHNlZFdp
dGhQYXJlbnQoYm94KSB7CisgICAgICAgIC8vIFRoZSBmaXJzdCBpbmZsb3cgY2hpbGQgY291bGQg
cHJvcGFnYXRlIGl0cyB0b3AgbWFyZ2luIHRvIHBhcmVudC4KKyAgICAgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL0NTUzIxL2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucworICAgICAgICBp
ZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChib3guaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBsZXQgcGFyZW50ID0gYm94LnBhcmVudCgpOworICAgICAg
ICAvLyBJcyB0aGlzIGJveCB0aGUgZmlyc3QgaW5sZmxvdyBjaGlsZD8KKyAgICAgICAgaWYgKHBh
cmVudC5maXJzdEluRmxvd0NoaWxkKCkgIT0gYm94KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAocGFyZW50LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBNYXJnaW5zIG9mIHRoZSBy
b290IGVsZW1lbnQncyBib3ggZG8gbm90IGNvbGxhcHNlLgorICAgICAgICBpZiAocGFyZW50Lmlz
Um9vdEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKFV0
aWxzLmhhc0JvcmRlclRvcChwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoVXRpbHMuaGFzUGFkZGluZ1RvcChwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2lzTWFy
Z2luQm90dG9tQ29sbGFwc2VkV2l0aFBhcmVudChib3gpIHsKKyAgICAgICAgLy8gbGFzdCBpbmZs
b3cgYm94IHRvIHBhcmVudC4KKyAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIx
L2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3Vz
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChib3guaXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBsZXQgcGFyZW50ID0gYm94LnBhcmVudCgpOworICAgICAgICAvLyBJcyB0aGlzIHRoZSBs
YXN0IGlubGZsb3cgY2hpbGQ/CisgICAgICAgIGlmIChwYXJlbnQubGFzdEluRmxvd0NoaWxkKCkg
IT0gYm94KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAocGFyZW50LmVz
dGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAvLyBNYXJnaW5zIG9mIHRoZSByb290IGVsZW1lbnQncyBib3ggZG8gbm90
IGNvbGxhcHNlLgorICAgICAgICBpZiAocGFyZW50LmlzUm9vdEVsZW1lbnQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKFV0aWxzLmhhc0JvcmRlclRvcChwYXJlbnQp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoVXRpbHMuaGFzUGFkZGlu
Z1RvcChwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIVV0
aWxzLmlzSGVpZ2h0QXV0byhwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgX25vbkNvbGxhcHNlZE1hcmdp
blRvcChib3gpIHsKKyAgICAgICAgLy8gTm9uIGNvbGxhcHNlZCBtYXJnaW4gdG9wIGluY2x1ZGVz
IGNvbGxhcHNlZCBtYXJnaW4gZnJvbSBpbmZsb3cgZmlyc3QgY2hpbGQuCisgICAgICAgIHJldHVy
biB0aGlzLl9tYXJnaW5WYWx1ZShVdGlscy5jb21wdXRlZE1hcmdpblRvcChib3gpLCB0aGlzLl9j
b2xsYXBzZWRNYXJnaW5Ub3BGcm9tRmlyc3RDaGlsZChib3gpKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgX25vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbShib3gpIHsKKyAgICAgICAgLy8gTm9uIGNvbGxh
cHNlZCBtYXJnaW4gYm90dG9tIGluY2x1ZGVzIGNvbGxhcHNlZCBtYXJnaW4gZnJvbSBpbmZsb3cg
bGFzdCBjaGlsZC4KKyAgICAgICAgcmV0dXJuIHRoaXMuX21hcmdpblZhbHVlKFV0aWxzLmNvbXB1
dGVkTWFyZ2luQm90dG9tKGJveCksIHRoaXMuX2NvbGxhcHNlZE1hcmdpbkJvdHRvbUZyb21MYXN0
Q2hpbGQoYm94KSk7CisgICAgfQorCisgICAgc3RhdGljIF9jb2xsYXBzZWRNYXJnaW5Ub3BGcm9t
Rmlyc3RDaGlsZChib3gpIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpcnN0IGNoaWxkIGNv
bGxhcHNlcyBpdHMgbWFyZ2luIHRvcC4KKyAgICAgICAgaWYgKCFib3guaXNDb250YWluZXIoKSB8
fCAhYm94LmZpcnN0SW5GbG93Q2hpbGQoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICBsZXQgZmlyc3RJbkZsb3dDaGlsZCA9IGJveC5maXJzdEluRmxvd0NoaWxkKCk7CisgICAgICAg
IGlmICghdGhpcy5faXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoUGFyZW50KGZpcnN0SW5GbG93Q2hp
bGQpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIENvbGxlY3QgY29sbGFwc2Vk
IG1hcmdpbiB0b3AgcmVjdXJzaXZlbHkuCisgICAgICAgIHJldHVybiB0aGlzLl9tYXJnaW5WYWx1
ZShVdGlscy5jb21wdXRlZE1hcmdpblRvcChmaXJzdEluRmxvd0NoaWxkKSwgdGhpcy5fY29sbGFw
c2VkTWFyZ2luVG9wRnJvbUZpcnN0Q2hpbGQoZmlyc3RJbkZsb3dDaGlsZCkpOworICAgIH0KKwor
ICAgIHN0YXRpYyBfY29sbGFwc2VkTWFyZ2luQm90dG9tRnJvbUxhc3RDaGlsZChib3gpIHsKKyAg
ICAgICAgLy8gQ2hlY2sgaWYgdGhlIGxhc3QgY2hpbGQgcHJvcGFnYXRlcyBpdHMgbWFyZ2luIGJv
dHRvbS4KKyAgICAgICAgaWYgKCFib3guaXNDb250YWluZXIoKSB8fCAhYm94Lmxhc3RJbkZsb3dD
aGlsZCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGxldCBsYXN0SW5GbG93Q2hp
bGQgPSBib3gubGFzdEluRmxvd0NoaWxkKCk7CisgICAgICAgIGlmICghdGhpcy5faXNNYXJnaW5C
b3R0b21Db2xsYXBzZWRXaXRoUGFyZW50KGxhc3RJbkZsb3dDaGlsZCkpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgLy8gQ29sbGVjdCBjb2xsYXBzZWQgbWFyZ2luIGJvdHRvbSByZWN1
cnNpdmVseS4KKyAgICAgICAgcmV0dXJuIHRoaXMuX21hcmdpblZhbHVlKFV0aWxzLmNvbXB1dGVk
TWFyZ2luQm90dG9tKGxhc3RJbkZsb3dDaGlsZCksIHRoaXMuX2NvbGxhcHNlZE1hcmdpbkJvdHRv
bUZyb21MYXN0Q2hpbGQobGFzdEluRmxvd0NoaWxkKSk7CisgICAgfQorCisgICAgc3RhdGljIF9t
YXJnaW5WYWx1ZShjdXJyZW50TWFyZ2luVmFsdWUsIGNhbmRpZGF0ZU1hcmdpblZhbHVlKSB7Cisg
ICAgICAgIGlmICghY2FuZGlkYXRlTWFyZ2luVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gY3Vy
cmVudE1hcmdpblZhbHVlOworICAgICAgICBpZiAoIWN1cnJlbnRNYXJnaW5WYWx1ZSkKKyAgICAg
ICAgICAgIHJldHVybiBjYW5kaWRhdGVNYXJnaW5WYWx1ZTsKKyAgICAgICAgLy8gQm90aCBtYXJn
aW5zIGFyZSBwb3NpdGl2ZS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZU1hcmdpblZhbHVlID4gMCAm
JiBjdXJyZW50TWFyZ2luVmFsdWUgPiAwKQorICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KGNh
bmRpZGF0ZU1hcmdpblZhbHVlLCBjdXJyZW50TWFyZ2luVmFsdWUpCisgICAgICAgIC8vIEJvdGgg
bWFyZ2lucyBhcmUgbmVnYXRpdmUuCisgICAgICAgIGlmIChjYW5kaWRhdGVNYXJnaW5WYWx1ZSA8
IDAgJiYgY3VycmVudE1hcmdpblZhbHVlIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAwIC0gTWF0
aC5tYXgoTWF0aC5hYnMoY2FuZGlkYXRlTWFyZ2luVmFsdWUpLCBNYXRoLmFicyhjdXJyZW50TWFy
Z2luVmFsdWUpKQorICAgICAgICAvLyBPbmUgb2YgdGhlIG1hcmdpbnMgaXMgbmVnYXRpdmUuCisg
ICAgICAgIHJldHVybiBjdXJyZW50TWFyZ2luVmFsdWUgKyBjYW5kaWRhdGVNYXJnaW5WYWx1ZTsK
KyAgICB9CisKKyAgICBzdGF0aWMgX2hhc0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbShib3gp
IHsKKyAgICAgICAgLy8gVHdvIG1hcmdpbnMgYXJlIGFkam9pbmluZyBpZiBhbmQgb25seSBpZjoK
KyAgICAgICAgLy8gMS4gYm90aCBiZWxvbmcgdG8gaW4tZmxvdyBibG9jay1sZXZlbCBib3hlcyB0
aGF0IHBhcnRpY2lwYXRlIGluIHRoZSBzYW1lIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dAorICAg
ICAgICAvLyAyLiBubyBsaW5lIGJveGVzLCBubyBjbGVhcmFuY2UsIG5vIHBhZGRpbmcgYW5kIG5v
IGJvcmRlciBzZXBhcmF0ZSB0aGVtIChOb3RlIHRoYXQgY2VydGFpbiB6ZXJvLWhlaWdodCBsaW5l
IGJveGVzIChzZWUgOS40LjIpIGFyZSBpZ25vcmVkIGZvciB0aGlzIHB1cnBvc2UuKQorICAgICAg
ICAvLyAzLiBib3RoIGJlbG9uZyB0byB2ZXJ0aWNhbGx5LWFkamFjZW50IGJveCBlZGdlcywgaS5l
LiBmb3JtIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhaXJzOgorICAgICAgICAvLyAgICAgICAgdG9w
IG1hcmdpbiBvZiBhIGJveCBhbmQgdG9wIG1hcmdpbiBvZiBpdHMgZmlyc3QgaW4tZmxvdyBjaGls
ZAorICAgICAgICAvLyAgICAgICAgYm90dG9tIG1hcmdpbiBvZiBib3ggYW5kIHRvcCBtYXJnaW4g
b2YgaXRzIG5leHQgaW4tZmxvdyBmb2xsb3dpbmcgc2libGluZworICAgICAgICAvLyAgICAgICAg
Ym90dG9tIG1hcmdpbiBvZiBhIGxhc3QgaW4tZmxvdyBjaGlsZCBhbmQgYm90dG9tIG1hcmdpbiBv
ZiBpdHMgcGFyZW50IGlmIHRoZSBwYXJlbnQgaGFzICdhdXRvJyBjb21wdXRlZCBoZWlnaHQKKyAg
ICAgICAgLy8gICAgICAgIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb2YgYSBib3ggdGhhdCBkb2Vz
IG5vdCBlc3RhYmxpc2ggYSBuZXcgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFuZCB0aGF0IGhh
cyB6ZXJvIGNvbXB1dGVkICdtaW4taGVpZ2h0JywKKyAgICAgICAgLy8gICAgICAgIHplcm8gb3Ig
J2F1dG8nIGNvbXB1dGVkICdoZWlnaHQnLCBhbmQgbm8gaW4tZmxvdyBjaGlsZHJlbgorICAgICAg
ICAvLyBBIGNvbGxhcHNlZCBtYXJnaW4gaXMgY29uc2lkZXJlZCBhZGpvaW5pbmcgdG8gYW5vdGhl
ciBtYXJnaW4gaWYgYW55IG9mIGl0cyBjb21wb25lbnQgbWFyZ2lucyBpcyBhZGpvaW5pbmcgdG8g
dGhhdCBtYXJnaW4uCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Cb3guanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Cb3gu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDU2YjA4YTdiMGFjNzAxNDY3ZGY1OTE0OTU1OWUwNmJmNmUyNmE4YQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0JveC5qcwpAQCAtMCwwICsx
LDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Ns
YXNzIEJveCB7CisgICAgY29uc3RydWN0b3Iobm9kZSwgaWQpIHsKKyAgICAgICAgdGhpcy5tX2lk
ID0gaWQ7CisgICAgICAgIHRoaXMubV9yZW5kZXJlck5hbWUgPSBudWxsOworICAgICAgICB0aGlz
Lm1fbm9kZSA9IG5vZGU7CisgICAgICAgIHRoaXMubV9wYXJlbnQgPSBudWxsOworICAgICAgICB0
aGlzLm1fbmV4dFNpYmxpbmcgPSBudWxsOworICAgICAgICB0aGlzLm1fcHJldmlvdXNTaWJsaW5n
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5tX2lzQW5vbnltb3VzID0gZmFsc2U7CisgICAgICAgIHRo
aXMubV9yZWN0ID0gbmV3IExheW91dFJlY3QobmV3IExheW91dFBvaW50KDAsIDApLCBuZXcgTGF5
b3V0U2l6ZSgwLCAwKSk7CisgICAgICAgIHRoaXMubV9lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250
ZXh0ID0gbnVsbDsKKyAgICB9CisKKyAgICBpZCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9p
ZDsKKyAgICB9CisKKyAgICBzZXRSZW5kZXJlck5hbWUobmFtZSkgeworICAgICAgICB0aGlzLm1f
cmVuZGVyZXJOYW1lID0gbmFtZTsKKyAgICB9CisKKyAgICBuYW1lKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX3JlbmRlcmVyTmFtZTsKKyAgICB9CisKKyAgICBub2RlKCkgeworICAgICAgICBy
ZXR1cm4gdGhpcy5tX25vZGU7CisgICAgfQorCisgICAgcGFyZW50KCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX3BhcmVudDsKKyAgICB9CisKKyAgICBuZXh0U2libGluZygpIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMubV9uZXh0U2libGluZzsKKyAgICB9CisKKyAgICBuZXh0SW5GbG93U2libGlu
ZygpIHsKKyAgICAgICAgbGV0IG5leHRJbkZsb3dTaWJsaW5nID0gdGhpcy5uZXh0U2libGluZygp
OworICAgICAgICB3aGlsZSAobmV4dEluRmxvd1NpYmxpbmcpIHsKKyAgICAgICAgICAgIGlmIChu
ZXh0SW5GbG93U2libGluZy5pc0luRmxvdygpKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXh0
SW5GbG93U2libGluZzsKKyAgICAgICAgICAgIG5leHRJbkZsb3dTaWJsaW5nID0gbmV4dEluRmxv
d1NpYmxpbmcubmV4dFNpYmxpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICB9CisKKyAgICBwcmV2aW91c1NpYmxpbmcoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1f
cHJldmlvdXNTaWJsaW5nOworICAgIH0KKworICAgIHByZXZpb3VzSW5GbG93U2libGluZygpIHsK
KyAgICAgICAgbGV0IHByZXZpb3VzSW5GbG93U2libGluZyA9IHRoaXMucHJldmlvdXNTaWJsaW5n
KCk7CisgICAgICAgIHdoaWxlIChwcmV2aW91c0luRmxvd1NpYmxpbmcpIHsKKyAgICAgICAgICAg
IGlmIChwcmV2aW91c0luRmxvd1NpYmxpbmcuaXNJbkZsb3coKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcHJldmlvdXNJbkZsb3dTaWJsaW5nOworICAgICAgICAgICAgcHJldmlvdXNJbkZsb3dT
aWJsaW5nID0gcHJldmlvdXNJbkZsb3dTaWJsaW5nLnByZXZpb3VzU2libGluZygpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHNldFBhcmVudChwYXJlbnQp
IHsKKyAgICAgICAgdGhpcy5tX3BhcmVudCA9IHBhcmVudDsKKyAgICB9CisKKyAgICBzZXROZXh0
U2libGluZyhuZXh0U2libGluZykgeworICAgICAgICB0aGlzLm1fbmV4dFNpYmxpbmcgPSBuZXh0
U2libGluZzsKKyAgICB9CisgICAgCisgICAgc2V0UHJldmlvdXNTaWJsaW5nKHByZXZpb3VzU2li
bGluZykgeworICAgICAgICB0aGlzLm1fcHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5n
OworICAgIH0KKworICAgIHJlY3QoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fcmVjdC5jbG9u
ZSgpOworICAgIH0KKworICAgIHRvcExlZnQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnJlY3Qo
KS50b3BMZWZ0KCk7CisgICAgfQorCisgICAgYm90dG9tUmlnaHQoKSB7CisgICAgICAgIHJldHVy
biB0aGlzLnJlY3QoKS5ib3R0b21SaWdodCgpOworICAgIH0KKworICAgIHNldFRvcExlZnQodG9w
TGVmdCkgeworICAgICAgICB0aGlzLm1fcmVjdC5zZXRUb3BMZWZ0KHRvcExlZnQpOworICAgIH0K
KworICAgIHNldFNpemUoc2l6ZSkgeworICAgICAgICB0aGlzLm1fcmVjdC5zZXRTaXplKHNpemUp
OworICAgIH0KKworICAgIHNldFdpZHRoKHdpZHRoKSB7CisgICAgICAgIHRoaXMubV9yZWN0LnNl
dFdpZHRoKHdpZHRoKTsKKyAgICB9CisKKyAgICBzZXRIZWlnaHQoaGVpZ2h0KSB7CisgICAgICAg
IHRoaXMubV9yZWN0LnNldEhlaWdodChoZWlnaHQpOworICAgIH0KKworICAgIGlzQ29udGFpbmVy
KCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaXNCbG9ja0xldmVsQm94
KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNCbG9ja0xldmVsRWxlbWVudCh0aGlzLm5vZGUo
KSk7CisgICAgfQorCisgICAgaXNCbG9ja0NvbnRhaW5lckJveCgpIHsKKyAgICAgICAgcmV0dXJu
IFV0aWxzLmlzQmxvY2tDb250YWluZXJFbGVtZW50KHRoaXMubm9kZSgpKTsKKyAgICB9CisKKyAg
ICBpc0lubGluZUxldmVsQm94KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNJbmxpbmVMZXZl
bEVsZW1lbnQodGhpcy5ub2RlKCkpOworICAgIH0KKworICAgIHNldElzQW5vbnltb3VzKCkgewor
ICAgICAgICB0aGlzLm1faXNBbm9ueW1vdXMgPSB0cnVlOworICAgIH0KKworICAgIGlzQW5vbnlt
b3VzKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2lzQW5vbnltb3VzOworICAgIH0KKworICAg
IGVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSB7CisgICAgICAgIGlmICh0aGlzLmlzQW5v
bnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGlz
LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIHx8IHRoaXMuZXN0YWJsaXNoZXNJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOworICAgIH0KKworICAgIGVzdGFibGlzaGVkRm9ybWF0
dGluZ0NvbnRleHQoKSB7CisgICAgICAgIGlmICh0aGlzLmVzdGFibGlzaGVzRm9ybWF0dGluZ0Nv
bnRleHQoKSAmJiAhdGhpcy5tX2VzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQpCisgICAgICAg
ICAgICB0aGlzLm1fZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCA9IHRoaXMuZXN0YWJsaXNo
ZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgPyBuZXcgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCh0
aGlzKSA6IG5ldyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCh0aGlzKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMubV9lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0OworICAgIH0KKworICAgIGVzdGFi
bGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAgICAgICAgLy8gOS40LjEgQmxvY2sg
Zm9ybWF0dGluZyBjb250ZXh0cworICAgICAgICAvLyBGbG9hdHMsIGFic29sdXRlbHkgcG9zaXRp
b25lZCBlbGVtZW50cywgYmxvY2sgY29udGFpbmVycyAoc3VjaCBhcyBpbmxpbmUtYmxvY2tzLCB0
YWJsZS1jZWxscywgYW5kIHRhYmxlLWNhcHRpb25zKQorICAgICAgICAvLyB0aGF0IGFyZSBub3Qg
YmxvY2sgYm94ZXMsIGFuZCBibG9jayBib3hlcyB3aXRoICdvdmVyZmxvdycgb3RoZXIgdGhhbiAn
dmlzaWJsZScgKGV4Y2VwdCB3aGVuIHRoYXQgdmFsdWUgaGFzIGJlZW4gcHJvcGFnYXRlZCB0byB0
aGUgdmlld3BvcnQpCisgICAgICAgIC8vIGVzdGFibGlzaCBuZXcgYmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0cyBmb3IgdGhlaXIgY29udGVudHMuCisgICAgICAgIHJldHVybiB0aGlzLmlzRmxvYXRp
bmdQb3NpdGlvbmVkKCkgfHwgdGhpcy5pc0Fic29sdXRlUG9zaXRpb25lZCgpIHx8ICh0aGlzLmlz
QmxvY2tDb250YWluZXJCb3goKSAmJiAhdGhpcy5pc0Jsb2NrTGV2ZWxCb3goKSkKKyAgICAgICAg
ICAgIHx8ICh0aGlzLmlzQmxvY2tMZXZlbEJveCgpICYmICFVdGlscy5pc092ZXJmbG93VmlzaWJs
ZSh0aGlzKSk7CisgICAgfQorCisgICAgZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlzUG9zaXRpb25lZCgp
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgdGhpcy5p
c1JlbGF0aXZlUG9zaXRpb25lZCgpOworICAgIH0KKworICAgIGlzUmVsYXRpdmVQb3NpdGlvbmVk
KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNSZWxhdGl2ZVBvc2l0aW9uZWQodGhpcyk7Cisg
ICAgfQorCisgICAgaXNBYnNvbHV0ZVBvc2l0aW9uZWQoKSB7CisgICAgICAgIHJldHVybiBVdGls
cy5pc0Fic29sdXRlUG9zaXRpb25lZCh0aGlzKTsKKyAgICB9CisKKyAgICBpc0ZpeGVkUG9zaXRp
b25lZCgpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmlzRml4ZWRQb3NpdGlvbmVkKHRoaXMpOwor
ICAgIH0KKworICAgIGlzSW5GbG93KCkgeworICAgICAgICBpZiAodGhpcy5pc0Fub255bW91cygp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiAhdGhpcy5pc0Zsb2F0
aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCk7CisgICAgfQorCisgICAgaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkgeworICAgICAgICByZXR1cm4gdGhpcy5pc0Fic29sdXRlUG9zaXRpb25lZCgpIHx8
IHRoaXMuaXNGaXhlZFBvc2l0aW9uZWQoKTsKKyAgICB9CisKKyAgICBpc0luRmxvd1Bvc2l0aW9u
ZWQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmlzUG9zaXRpb25lZCgpICYmICF0aGlzLmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpOworICAgIH0KKworICAgIGlzRmxvYXRpbmdQb3NpdGlvbmVkKCkg
eworICAgICAgICByZXR1cm4gVXRpbHMuaXNGbG9hdGluZ1Bvc2l0aW9uZWQodGhpcyk7CisgICAg
fQorCisgICAgaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSB8fCB0aGlzLmlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpOworICAgIH0KKworICAgIGlzUm9vdEVsZW1lbnQoKSB7CisgICAgICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBqdXN0IGJlIGEgc2ltcGxlIGluc3RhbmNlb2YgY2hlY2ssIGJ1dCB3ZSBh
cmUgaW4gdGhlIG1haW5mcmFtZSB3aGlsZSB0aGUgdGVzdCBkb2N1bWVudCBpcyBpbiBhbiBpZnJh
bWUKKyAgICAgICAgLy8gTGV0J3MganVzdCByZXR1cm4gcm9vdCBmb3IgYm90aCB0aGUgUmVuZGVy
VmlldyBhbmQgdGhlIDxodG1sPiBlbGVtZW50LgorICAgICAgICByZXR1cm4gIXRoaXMucGFyZW50
KCkgfHwgIXRoaXMucGFyZW50KCkucGFyZW50KCk7CisgICAgfQorCisgICAgY29udGFpbmluZ0Js
b2NrKCkgeworICAgICAgICBpZiAoIXRoaXMucGFyZW50KCkpCisgICAgICAgICAgICByZXR1cm4g
bnVsbDsKKyAgICAgICAgaWYgKCF0aGlzLmlzUG9zaXRpb25lZCgpIHx8IHRoaXMuaXNJbkZsb3dQ
b3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQoKTsKKyAgICAgICAg
bGV0IHBhcmVudCA9IHRoaXMucGFyZW50KCk7CisgICAgICAgIHdoaWxlIChwYXJlbnQucGFyZW50
KCkpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgJiYgcGFy
ZW50LmlzUG9zaXRpb25lZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CisgICAg
ICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHBhcmVudDsKKyAgICB9CisKKyAgICBib3JkZXJCb3goKSB7CisgICAgICAgIHJldHVybiBu
ZXcgTGF5b3V0UmVjdChuZXcgTGF5b3V0UG9pbnQoMCwgMCksIHRoaXMucmVjdCgpLnNpemUoKSk7
CisgICAgfQorCisgICAgcGFkZGluZ0JveCgpIHsKKyAgICAgICAgbGV0IHBhZGRpbmdCb3ggPSB0
aGlzLmJvcmRlckJveCgpOworICAgICAgICBsZXQgYm9yZGVyU2l6ZSA9IFV0aWxzLmNvbXB1dGVk
Qm9yZGVyVG9wTGVmdCh0aGlzKTsKKyAgICAgICAgcGFkZGluZ0JveC5tb3ZlQnkoYm9yZGVyU2l6
ZSk7CisgICAgICAgIHBhZGRpbmdCb3guc2hyaW5rQnkoYm9yZGVyU2l6ZSk7CisgICAgICAgIHBh
ZGRpbmdCb3guc2hyaW5rQnkoVXRpbHMuY29tcHV0ZWRCb3JkZXJCb3R0b21SaWdodCh0aGlzKSk7
CisgICAgICAgIHJldHVybiBwYWRkaW5nQm94OworICAgIH0KKworICAgIGNvbnRlbnRCb3goKSB7
CisgICAgICAgIGxldCBjb250ZW50Qm94ID0gdGhpcy5wYWRkaW5nQm94KCk7CisgICAgICAgIGxl
dCBwYWRkaW5nU2l6ZSA9IFV0aWxzLmNvbXB1dGVkUGFkZGluZ1RvcExlZnQodGhpcyk7CisgICAg
ICAgIGNvbnRlbnRCb3gubW92ZUJ5KHBhZGRpbmdTaXplKTsKKyAgICAgICAgY29udGVudEJveC5z
aHJpbmtCeShwYWRkaW5nU2l6ZSk7CisgICAgICAgIGNvbnRlbnRCb3guc2hyaW5rQnkoVXRpbHMu
Y29tcHV0ZWRQYWRkaW5nQm90dG9tUmlnaHQodGhpcykpOworICAgICAgICByZXR1cm4gY29udGVu
dEJveDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Db250YWlu
ZXIuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Db250YWluZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRm
NjMxMDJmZWEwZjBkMmFjNjAzZTU1ODBiYzM2YmJiZDFkNGJhNAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0NvbnRhaW5lci5qcwpAQCAtMCwwICsxLDc4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgQ29udGFpbmVy
IGV4dGVuZHMgQm94IHsKKyAgICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkgeworICAgICAgICBzdXBl
cihub2RlLCBpZCk7CisgICAgICAgIHRoaXMubV9maXJzdENoaWxkID0gbnVsbDsKKyAgICAgICAg
dGhpcy5tX2xhc3RDaGlsZCA9IG51bGw7CisgICAgfQorCisgICAgaXNDb250YWluZXIoKSB7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHNldEZpcnN0Q2hpbGQoZmlyc3RDaGls
ZCkgeworICAgICAgICB0aGlzLm1fZmlyc3RDaGlsZCA9IGZpcnN0Q2hpbGQ7CisgICAgfQorICAg
IAorICAgIHNldExhc3RDaGlsZChsYXN0Q2hpbGQpIHsKKyAgICAgICAgdGhpcy5tX2xhc3RDaGls
ZCA9IGxhc3RDaGlsZDsKKyAgICB9CisKKyAgICBmaXJzdENoaWxkKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX2ZpcnN0Q2hpbGQ7CisgICAgfQorCisgICAgZmlyc3RJbkZsb3dDaGlsZCgpIHsK
KyAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICAgICAgbGV0IGZpcnN0Q2hpbGQgPSB0aGlzLmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgaWYg
KGZpcnN0Q2hpbGQuaXNJbkZsb3coKSkKKyAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkOwor
ICAgICAgICByZXR1cm4gZmlyc3RDaGlsZC5uZXh0SW5GbG93U2libGluZygpOworICAgIH0KKwor
ICAgIGxhc3RDaGlsZCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9sYXN0Q2hpbGQ7CisgICAg
fQorCisgICAgbGFzdEluRmxvd0NoaWxkKCkgeworICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGQo
KSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBsZXQgbGFzdENoaWxkID0gdGhp
cy5sYXN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKGxhc3RDaGlsZC5pc0luRmxvdygpKQorICAgICAg
ICAgICAgcmV0dXJuIGxhc3RDaGlsZDsKKyAgICAgICAgcmV0dXJuIGxhc3RDaGlsZC5wcmV2aW91
c0luRmxvd1NpYmxpbmcoKTsKKyAgICB9CisKKyAgICBoYXNDaGlsZCgpIHsKKyAgICAgICAgcmV0
dXJuICEhdGhpcy5maXJzdENoaWxkKCk7CisgICAgfQorCisgICAgaGFzSW5GbG93Q2hpbGQoKSB7
CisgICAgICAgIHJldHVybiAhIXRoaXMuZmlyc3RJbkZsb3dDaGlsZCgpOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zsb2F0aW5nQ29udGV4dC5qcyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL0Zsb2F0aW5nQ29udGV4dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODMyMTI4ZDRk
NjU5N2RkZDlhNTUxN2ZlZmNiODg1YmE2ZjcwOTJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvRmxvYXRpbmdDb250ZXh0LmpzCkBAIC0wLDAgKzEsMTk3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgRmxvYXRpbmdD
b250ZXh0IHsKKyAgICBjb25zdHJ1Y3Rvcihmb3JtYXR0aW5nQ29udGV4dCkgeworICAgICAgICB0
aGlzLm1fbGVmdEZsb2F0aW5nQm94U3RhY2sgPSBuZXcgQXJyYXkoKTsKKyAgICAgICAgdGhpcy5t
X3JpZ2h0RmxvYXRpbmdCb3hTdGFjayA9IG5ldyBBcnJheSgpOworICAgICAgICB0aGlzLm1fbGFz
dEZsb2F0aW5nID0gbnVsbDsKKyAgICAgICAgdGhpcy5tX2Zvcm1hdHRpbmdDb250ZXh0ID0gZm9y
bWF0dGluZ0NvbnRleHQ7CisgICAgfQorCisgICAgY29tcHV0ZVBvc2l0aW9uKGJveCkgeworICAg
ICAgICBpZiAoYm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGJveC50b3BMZWZ0KCk7CisgICAgICAgIGlmIChib3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkg
eworICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gdGhpcy5fcG9zaXRpb25Gb3JGbG9hdGluZyhi
b3gpOworICAgICAgICAgICAgdGhpcy5fYWRkRmxvYXRpbmcoYm94KTsKKyAgICAgICAgICAgIHJl
dHVybiBwb3NpdGlvbjsKKyAgICAgICAgfQorICAgICAgICBpZiAoVXRpbHMuaGFzQ2xlYXIoYm94
KSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbkZvckNsZWFyKGJveCk7CisgICAg
ICAgIC8vIEludHJ1ZGluZyBmbG9hdHMgbWlnaHQgZm9yY2UgdGhpcyBib3ggbW92ZS4KKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVQb3NpdGlvblRvQXZvaWRJbnRydWRpbmdGbG9hdHMoYm94
KTsKKyAgICB9CisKKyAgICBib3R0b20oKSB7CisgICAgICAgIGxldCBsZWZ0Qm90dG9tID0gdGhp
cy5fYm90dG9tKHRoaXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjayk7CisgICAgICAgIGxldCByaWdo
dEJvdHRvbSA9IHRoaXMuX2JvdHRvbSh0aGlzLm1fcmlnaHRGbG9hdGluZ0JveFN0YWNrKTsKKyAg
ICAgICAgaWYgKE51bWJlci5pc05hTihsZWZ0Qm90dG9tKSAmJiBOdW1iZXIuaXNOYU4ocmlnaHRC
b3R0b20pKQorICAgICAgICAgICAgcmV0dXJuIE51bWJlci5OYU47CisgICAgICAgIGlmICghTnVt
YmVyLmlzTmFOKGxlZnRCb3R0b20pICYmICFOdW1iZXIuaXNOYU4ocmlnaHRCb3R0b20pKQorICAg
ICAgICAgICAgcmV0dXJuIE1hdGgubWF4KGxlZnRCb3R0b20sIHJpZ2h0Qm90dG9tKTsKKyAgICAg
ICAgaWYgKCFOdW1iZXIuaXNOYU4obGVmdEJvdHRvbSkpCisgICAgICAgICAgICByZXR1cm4gbGVm
dEJvdHRvbTsKKyAgICAgICAgcmV0dXJuIHJpZ2h0Qm90dG9tOworICAgIH0KKworICAgIF9wb3Np
dGlvbkZvckZsb2F0aW5nKGZsb2F0aW5nQm94KSB7CisgICAgICAgIGlmICh0aGlzLl9pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRqdXN0ZWRGbG9hdGluZ1Bvc2l0aW9uKGZs
b2F0aW5nQm94LCB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZs
b2F0aW5nQm94KS50b3AoKSk7CisgICAgICAgIGxldCB2ZXJ0aWNhbFBvc2l0aW9uID0gTWF0aC5t
YXgodGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveChmbG9hdGluZ0Jv
eCkudG9wKCksIHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJnaW5Cb3godGhp
cy5tX2xhc3RGbG9hdGluZykudG9wKCkpOworICAgICAgICBsZXQgc3BhY2VOZWVkZWQgPSB0aGlz
Ll9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nQm94KS53aWR0
aCgpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgbGV0IGZsb2F0aW5nUGFp
ciA9IHRoaXMuX2ZpbmRJbm5lck1vc3RMZWZ0QW5kUmlnaHQodmVydGljYWxQb3NpdGlvbik7Cisg
ICAgICAgICAgICBpZiAodGhpcy5fYXZhaWxhYmxlU3BhY2UoZmxvYXRpbmdCb3guY29udGFpbmlu
Z0Jsb2NrKCksIGZsb2F0aW5nUGFpcikgPj0gc3BhY2VOZWVkZWQpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2FkanVzdGVkRmxvYXRpbmdQb3NpdGlvbihmbG9hdGluZ0JveCwgdmVydGlj
YWxQb3NpdGlvbiwgZmxvYXRpbmdQYWlyKTsKKyAgICAgICAgICAgIHZlcnRpY2FsUG9zaXRpb24g
PSB0aGlzLl9tb3ZlVG9OZXh0VmVydGljYWxQb3NpdGlvbihmbG9hdGluZ1BhaXIpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBNYXRoLk5hbjsKKyAgICB9CisKKyAgICBfcG9zaXRpb25Gb3JD
bGVhcihib3gpIHsKKyAgICAgICAgQVNTRVJUKFV0aWxzLmhhc0NsZWFyKGJveCkpOworICAgICAg
ICBpZiAodGhpcy5faXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGJveC50b3BMZWZ0KCk7
CisKKyAgICAgICAgbGV0IGxlZnRCb3R0b20gPSBOdW1iZXIuTmFOOworICAgICAgICBsZXQgcmln
aHRCb3R0b20gPSBOdW1iZXIuTmFOOworICAgICAgICBpZiAoVXRpbHMuaGFzQ2xlYXJMZWZ0KGJv
eCkgfHwgVXRpbHMuaGFzQ2xlYXJCb3RoKGJveCkpCisgICAgICAgICAgICBsZWZ0Qm90dG9tID0g
dGhpcy5fYm90dG9tKHRoaXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjayk7CisgICAgICAgIGlmIChV
dGlscy5oYXNDbGVhclJpZ2h0KGJveCkgfHwgVXRpbHMuaGFzQ2xlYXJCb3RoKGJveCkpCisgICAg
ICAgICAgICByaWdodEJvdHRvbSA9IHRoaXMuX2JvdHRvbSh0aGlzLm1fcmlnaHRGbG9hdGluZ0Jv
eFN0YWNrKTsKKworICAgICAgICBpZiAoIU51bWJlci5pc05hTihsZWZ0Qm90dG9tKSAmJiAhTnVt
YmVyLmlzTmFOKHJpZ2h0Qm90dG9tKSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgTGF5b3V0UG9p
bnQoTWF0aC5tYXgobGVmdEJvdHRvbSwgcmlnaHRCb3R0b20pLCBib3gucmVjdCgpLmxlZnQoKSk7
CisgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKGxlZnRCb3R0b20pKQorICAgICAgICAgICAgcmV0
dXJuIG5ldyBMYXlvdXRQb2ludChsZWZ0Qm90dG9tLCBib3gucmVjdCgpLmxlZnQoKSk7CisgICAg
ICAgIGlmICghTnVtYmVyLmlzTmFOKHJpZ2h0Qm90dG9tKSkKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgTGF5b3V0UG9pbnQocmlnaHRCb3R0b20sIGJveC5yZWN0KCkubGVmdCgpKTsKKyAgICAgICAg
cmV0dXJuIGJveC50b3BMZWZ0KCk7CisgICAgfQorCisgICAgX2NvbXB1dGVQb3NpdGlvblRvQXZv
aWRJbnRydWRpbmdGbG9hdHMoYm94KSB7CisgICAgICAgIGlmICghYm94LmVzdGFibGlzaGVzQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCgpIHx8IHRoaXMuX2lzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybiBib3gudG9wTGVmdCgpOworICAgICAgICAvLyBUaGUgYm9yZGVyIGJveCBvZiBhIHRhYmxl
LCBhIGJsb2NrLWxldmVsIHJlcGxhY2VkIGVsZW1lbnQsIG9yIGFuIGVsZW1lbnQgaW4gdGhlIG5v
cm1hbCBmbG93IHRoYXQgZXN0YWJsaXNoZXMKKyAgICAgICAgLy8gYSBuZXcgYmxvY2sgZm9ybWF0
dGluZyBjb250ZXh0IChzdWNoIGFzIGFuIGVsZW1lbnQgd2l0aCAnb3ZlcmZsb3cnIG90aGVyIHRo
YW4gJ3Zpc2libGUnKSBtdXN0IG5vdCBvdmVybGFwIHRoZQorICAgICAgICAvLyBtYXJnaW4gYm94
IG9mIGFueSBmbG9hdHMgaW4gdGhlIHNhbWUgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFzIHRo
ZSBlbGVtZW50IGl0c2VsZi4KKyAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCB3ZSBwb3NpdGlv
biB0aGlzIGFzIGlmIGl0IHdhcyBmbG9hdGluZyBsZWZ0LgorICAgICAgICByZXR1cm4gdGhpcy5f
cG9zaXRpb25Gb3JGbG9hdGluZyhib3gpOworICAgIH0KKworICAgIF9hZGRGbG9hdGluZyhmbG9h
dGluZ0JveCkgeworICAgICAgICB0aGlzLm1fbGFzdEZsb2F0aW5nID0gZmxvYXRpbmdCb3g7Cisg
ICAgICAgIGlmIChVdGlscy5pc0Zsb2F0aW5nTGVmdChmbG9hdGluZ0JveCkpIHsKKyAgICAgICAg
ICAgIHRoaXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjay5wdXNoKGZsb2F0aW5nQm94KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLm1fcmlnaHRGbG9hdGluZ0Jv
eFN0YWNrLnB1c2goZmxvYXRpbmdCb3gpOworICAgIH0KKworICAgIF9maW5kSW5uZXJNb3N0TGVm
dEFuZFJpZ2h0KHZlcnRpY2FsUG9zaXRpb24pIHsKKyAgICAgICAgbGV0IGxlZnRGbG9hdGluZyA9
IHRoaXMuX2ZpbmRGbG9hdGluZ0F0VmVydGljYWxQb3NpdGlvbih2ZXJ0aWNhbFBvc2l0aW9uLCB0
aGlzLm1fbGVmdEZsb2F0aW5nQm94U3RhY2spOworICAgICAgICBsZXQgcmlnaHRGbG9hdGluZyA9
IHRoaXMuX2ZpbmRGbG9hdGluZ0F0VmVydGljYWxQb3NpdGlvbih2ZXJ0aWNhbFBvc2l0aW9uLCB0
aGlzLm1fcmlnaHRGbG9hdGluZ0JveFN0YWNrKTsKKyAgICAgICAgcmV0dXJuIHsgbGVmdDogbGVm
dEZsb2F0aW5nLCByaWdodDogcmlnaHRGbG9hdGluZyB9OworICAgIH0KKworICAgIF9tb3ZlVG9O
ZXh0VmVydGljYWxQb3NpdGlvbihmbG9hdGluZ1BhaXIpIHsKKyAgICAgICAgaWYgKCFmbG9hdGlu
Z1BhaXIubGVmdCAmJiAhZmxvYXRpbmdQYWlyLnJpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIE1h
dGguTmFOOworICAgICAgICBsZXQgbGVmdEJvdHRvbSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklU
WTsKKyAgICAgICAgbGV0IHJpZ2h0Qm90dG9tID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwor
ICAgICAgICBpZiAoZmxvYXRpbmdQYWlyLmxlZnQpCisgICAgICAgICAgICBsZWZ0Qm90dG9tID0g
dGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveChmbG9hdGluZ1BhaXIu
bGVmdCkuYm90dG9tKCk7CisgICAgICAgIGlmIChmbG9hdGluZ1BhaXIucmlnaHQpCisgICAgICAg
ICAgICByaWdodEJvdHRvbSA9IHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJn
aW5Cb3goZmxvYXRpbmdQYWlyLnJpZ2h0KS5ib3R0b20oKTsKKyAgICAgICAgcmV0dXJuIE1hdGgu
bWluKGxlZnRCb3R0b20sIHJpZ2h0Qm90dG9tKTsKKyAgICB9CisKKyAgICBfYXZhaWxhYmxlU3Bh
Y2UoY29udGFpbmluZ0Jsb2NrLCBmbG9hdGluZ1BhaXIpIHsKKyAgICAgICAgaWYgKGZsb2F0aW5n
UGFpci5sZWZ0ICYmIGZsb2F0aW5nUGFpci5yaWdodCkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nUGFpci5yaWdo
dCkubGVmdCgpIC0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveChm
bG9hdGluZ1BhaXIubGVmdCkucmlnaHQoKTsKKyAgICAgICAgaWYgKGZsb2F0aW5nUGFpci5sZWZ0
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5jb250ZW50Qm94KCkud2lkdGgo
KSAtICh0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5n
UGFpci5sZWZ0KS5yaWdodCgpIC0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZUJv
cmRlckJveChjb250YWluaW5nQmxvY2spLmxlZnQoKSk7CisgICAgICAgIGlmIChmbG9hdGluZ1Bh
aXIucmlnaHQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5h
YnNvbHV0ZU1hcmdpbkJveChmbG9hdGluZ1BhaXIucmlnaHQpLmxlZnQoKTsKKyAgICAgICAgcmV0
dXJuIGNvbnRhaW5pbmdCbG9jay5jb250ZW50Qm94KCkud2lkdGgoKTsKKyAgICB9CisKKyAgICBf
ZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKHZlcnRpY2FsUG9zaXRpb24sIGZsb2F0aW5n
U3RhY2spIHsKKyAgICAgICAgbGV0IGluZGV4ID0gZmxvYXRpbmdTdGFjay5sZW5ndGg7CisgICAg
ICAgIHdoaWxlICgtLWluZGV4ID49IDAgJiYgdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNv
bHV0ZU1hcmdpbkJveChmbG9hdGluZ1N0YWNrW2luZGV4XSkuYm90dG9tKCkgPD0gdmVydGljYWxQ
b3NpdGlvbik7CisgICAgICAgIHJldHVybiBpbmRleCA+PSAwID8gZmxvYXRpbmdTdGFja1tpbmRl
eF0gOiBudWxsOworICAgIH0KKworICAgIF9pc0VtcHR5KCkgeworICAgICAgICByZXR1cm4gIXRo
aXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjay5sZW5ndGggJiYgIXRoaXMubV9yaWdodEZsb2F0aW5n
Qm94U3RhY2subGVuZ3RoOworICAgIH0KKworICAgIF9hZGp1c3RlZEZsb2F0aW5nUG9zaXRpb24o
ZmxvYXRpbmdCb3gsIHZlcnRpY2FsUG9zaXRpb24sIGxlZnRSaWdodEZsb2F0aW5ncykgeworICAg
ICAgICBsZXQgY29udGFpbmluZ0Jsb2NrID0gZmxvYXRpbmdCb3guY29udGFpbmluZ0Jsb2NrKCk7
CisgICAgICAgIC8vIENvbnZlcnQgYWxsIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIGZvcm1hdHRp
bmcgY29udGV4dCdzIHJvb3QuCisgICAgICAgIGxldCBsZWZ0ID0gdGhpcy5fZm9ybWF0dGluZ0Nv
bnRleHQoKS5hYnNvbHV0ZUNvbnRlbnRCb3goY29udGFpbmluZ0Jsb2NrKS5sZWZ0KCk7CisgICAg
ICAgIGxldCByaWdodCA9IHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVDb250ZW50
Qm94KGNvbnRhaW5pbmdCbG9jaykucmlnaHQoKTsKKyAgICAgICAgaWYgKGxlZnRSaWdodEZsb2F0
aW5ncykgeworICAgICAgICAgICAgaWYgKGxlZnRSaWdodEZsb2F0aW5ncy5sZWZ0KSB7CisgICAg
ICAgICAgICAgICAgbGV0IGZsb2F0aW5nQm94UmlnaHQgPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4
dCgpLmFic29sdXRlTWFyZ2luQm94KGxlZnRSaWdodEZsb2F0aW5ncy5sZWZ0KS5yaWdodCgpOwor
ICAgICAgICAgICAgICAgIGlmIChmbG9hdGluZ0JveFJpZ2h0ID4gbGVmdCkKKyAgICAgICAgICAg
ICAgICAgICAgbGVmdCA9IGZsb2F0aW5nQm94UmlnaHQ7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChsZWZ0UmlnaHRGbG9hdGluZ3MucmlnaHQpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgZmxvYXRpbmdCb3hMZWZ0ID0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1h
cmdpbkJveChsZWZ0UmlnaHRGbG9hdGluZ3MucmlnaHQpLmxlZnQoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoZmxvYXRpbmdCb3hMZWZ0IDwgcmlnaHQpCisgICAgICAgICAgICAgICAgICAgIHJpZ2h0
ID0gZmxvYXRpbmdCb3hMZWZ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxl
ZnQgKz0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5tYXJnaW5MZWZ0KGZsb2F0aW5nQm94KTsK
KyAgICAgICAgcmlnaHQgLT0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5tYXJnaW5SaWdodChm
bG9hdGluZ0JveCk7CisgICAgICAgIHZlcnRpY2FsUG9zaXRpb24gKz0gdGhpcy5fZm9ybWF0dGlu
Z0NvbnRleHQoKS5tYXJnaW5Ub3AoZmxvYXRpbmdCb3gpOworICAgICAgICAvLyBObyBjb252ZXJ0
IHRoZW0gYmFjayByZWxhdGl2ZSB0byB0aGUgZmxvYXRpbmdCb3gncyBjb250YWluaW5nIGJsb2Nr
LgorICAgICAgICBsZXQgY29udGFpbmluZ0Jsb2NrTGVmdCA9IHRoaXMuX2Zvcm1hdHRpbmdDb250
ZXh0KCkuYWJzb2x1dGVCb3JkZXJCb3goY29udGFpbmluZ0Jsb2NrKS5sZWZ0KCk7CisgICAgICAg
IGxldCBjb250YWluaW5nQmxvY2tUb3AgPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29s
dXRlQm9yZGVyQm94KGNvbnRhaW5pbmdCbG9jaykudG9wKCk7CisgICAgICAgIGxlZnQgLT0gY29u
dGFpbmluZ0Jsb2NrTGVmdDsKKyAgICAgICAgcmlnaHQgLT0gY29udGFpbmluZ0Jsb2NrTGVmdDsK
KyAgICAgICAgdmVydGljYWxQb3NpdGlvbiAtPSBjb250YWluaW5nQmxvY2tUb3A7CisKKyAgICAg
ICAgaWYgKFV0aWxzLmlzRmxvYXRpbmdMZWZ0KGZsb2F0aW5nQm94KSB8fCAhVXRpbHMuaXNGbG9h
dGluZ1Bvc2l0aW9uZWQoZmxvYXRpbmdCb3gpKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBMYXlv
dXRQb2ludCh2ZXJ0aWNhbFBvc2l0aW9uLCBsZWZ0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlv
dXRQb2ludCh2ZXJ0aWNhbFBvc2l0aW9uLCByaWdodCAtIGZsb2F0aW5nQm94LnJlY3QoKS53aWR0
aCgpKTsKKyAgICB9CisKKyAgICBfYm90dG9tKGZsb2F0aW5nU3RhY2spIHsKKyAgICAgICAgaWYg
KCFmbG9hdGluZ1N0YWNrIHx8ICFmbG9hdGluZ1N0YWNrLmxlbmd0aCkKKyAgICAgICAgICAgIHJl
dHVybiBOdW1iZXIuTmFOOworICAgICAgICBsZXQgbWF4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZsb2F0aW5nU3RhY2subGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBtYXggPSBNYXRoLm1heCh0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgp
LmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nU3RhY2tbaV0pLmJvdHRvbSgpLCBtYXgpOworICAg
ICAgICByZXR1cm4gbWF4OworICAgIH0KKworICAgIF9mb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMubV9mb3JtYXR0aW5nQ29udGV4dDsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMmMzYzI0OWEz
M2U1MDY1NjQ5ZjI4NDMxZjgzYTVkNzNmMGJlNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC5qcwpAQCAtMCwwICsxLDkyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgRm9ybWF0dGlu
Z0NvbnRleHQgeworICAgIGNvbnN0cnVjdG9yKHJvb3RDb250YWluZXIpIHsKKyAgICAgICAgdGhp
cy5tX3Jvb3RDb250YWluZXIgPSByb290Q29udGFpbmVyOworICAgICAgICB0aGlzLm1fZmxvYXRp
bmdDb250ZXh0ID0gbnVsbDsKKyAgICB9CisKKyAgICByb290Q29udGFpbmVyKCkgeworICAgICAg
ICByZXR1cm4gdGhpcy5tX3Jvb3RDb250YWluZXI7CisgICAgfQorCisgICAgZmxvYXRpbmdDb250
ZXh0KCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2Zsb2F0aW5nQ29udGV4dDsKKyAgICB9CisK
KyAgICBsYXlvdXQobGF5b3V0Q29udGV4dCkgeworICAgIH0KKworICAgIGNvbXB1dGVXaWR0aChi
b3gpIHsKKyAgICB9CisKKyAgICBjb21wdXRlSGVpZ2h0KGJveCkgeworICAgIH0KKworICAgIG1h
cmdpblRvcChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkTWFyZ2luVG9wKGJv
eCk7CisgICAgfQorICAgIAorICAgIG1hcmdpbkxlZnQoYm94KSB7CisgICAgICAgIHJldHVybiBV
dGlscy5jb21wdXRlZE1hcmdpbkxlZnQoYm94KTsKKyAgICB9CisgICAgCisgICAgbWFyZ2luQm90
dG9tKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRNYXJnaW5Cb3R0b20oYm94
KTsKKyAgICB9CisgICAgCisgICAgbWFyZ2luUmlnaHQoYm94KSB7CisgICAgICAgIHJldHVybiBV
dGlscy5jb21wdXRlZE1hcmdpblJpZ2h0KGJveCk7CisgICAgfQorCisgICAgYWJzb2x1dGVNYXJn
aW5Cb3goYm94KSB7CisgICAgICAgIGxldCBhYnNvbHV0ZUNvbnRlbnRCb3ggPSBVdGlscy5tYXBU
b0NvbnRhaW5lcihib3gsIHRoaXMucm9vdENvbnRhaW5lcigpKTsKKyAgICAgICAgYWJzb2x1dGVD
b250ZW50Qm94Lm1vdmVCeShuZXcgTGF5b3V0U2l6ZSgtdGhpcy5tYXJnaW5MZWZ0KGJveCksIC10
aGlzLm1hcmdpblRvcChib3gpKSk7CisgICAgICAgIGFic29sdXRlQ29udGVudEJveC5ncm93Qnko
bmV3IExheW91dFNpemUodGhpcy5tYXJnaW5MZWZ0KGJveCkgKyB0aGlzLm1hcmdpblJpZ2h0KGJv
eCksIHRoaXMubWFyZ2luVG9wKGJveCkgKyB0aGlzLm1hcmdpbkJvdHRvbShib3gpKSk7CisgICAg
ICAgIHJldHVybiBhYnNvbHV0ZUNvbnRlbnRCb3g7CisgICAgfQorCisgICAgYWJzb2x1dGVCb3Jk
ZXJCb3goYm94KSB7CisgICAgICAgIGxldCBib3JkZXJCb3ggPSBib3guYm9yZGVyQm94KCk7Cisg
ICAgICAgIGxldCBhYnNvbHV0ZVJlY3QgPSBuZXcgTGF5b3V0UmVjdChVdGlscy5tYXBUb0NvbnRh
aW5lcihib3gsIHRoaXMucm9vdENvbnRhaW5lcigpKS50b3BMZWZ0KCksIGJvcmRlckJveC5zaXpl
KCkpOworICAgICAgICBhYnNvbHV0ZVJlY3QubW92ZUJ5KGJvcmRlckJveC50b3BMZWZ0KCkpOwor
ICAgICAgICByZXR1cm4gYWJzb2x1dGVSZWN0OworICAgIH0KKworICAgIGFic29sdXRlUGFkZGlu
Z0JveChib3gpIHsKKyAgICAgICAgbGV0IHBhZGRpbmdCb3ggPSBib3gucGFkZGluZ0JveCgpOwor
ICAgICAgICBsZXQgYWJzb2x1dGVSZWN0ID0gbmV3IExheW91dFJlY3QoVXRpbHMubWFwVG9Db250
YWluZXIoYm94LCB0aGlzLnJvb3RDb250YWluZXIoKSkudG9wTGVmdCgpLCBwYWRkaW5nQm94LnNp
emUoKSk7CisgICAgICAgIGFic29sdXRlUmVjdC5tb3ZlQnkocGFkZGluZ0JveC50b3BMZWZ0KCkp
OworICAgICAgICByZXR1cm4gYWJzb2x1dGVSZWN0OworICAgIH0KKworICAgIGFic29sdXRlQ29u
dGVudEJveChib3gpIHsKKyAgICAgICAgbGV0IGNvbnRlbnRCb3ggPSBib3guY29udGVudEJveCgp
OworICAgICAgICBsZXQgYWJzb2x1dGVSZWN0ID0gbmV3IExheW91dFJlY3QoVXRpbHMubWFwVG9D
b250YWluZXIoYm94LCB0aGlzLnJvb3RDb250YWluZXIoKSkudG9wTGVmdCgpLCBjb250ZW50Qm94
LnNpemUoKSk7CisgICAgICAgIGFic29sdXRlUmVjdC5tb3ZlQnkoY29udGVudEJveC50b3BMZWZ0
KCkpOworICAgICAgICByZXR1cm4gYWJzb2x1dGVSZWN0OworICAgIH0KK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0luaXRpYWxCbG9ja0NvbnRhaW5lci5qcyBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL0luaXRpYWxCbG9ja0NvbnRhaW5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGFiNTQ4
ZTE3YTVlNGVhYWY3YTU0MTNiYzIxNTk4ZjFiZjM3OGRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmpzCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBJ
bml0aWFsQmxvY2tDb250YWluZXIgZXh0ZW5kcyBCbG9ja0NvbnRhaW5lciB7CisgICAgY29uc3Ry
dWN0b3IoZG9jdW1lbnQsIGlkLCBuYW1lKSB7CisgICAgICAgIHN1cGVyKGRvY3VtZW50LCBpZCk7
CisgICAgfQorCisgICAgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgeworICAg
ICAgICAvLyBJQ0IgYWx3YXlzIGNyZWF0ZXMgYSBuZXcgKGluaXRhbCkgYmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0LgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwYWRkaW5nQm94
KCkgeworICAgICAgICByZXR1cm4gdGhpcy5ib3JkZXJCb3goKTsKKyAgICB9CisKKyAgICBjb250
ZW50Qm94KCkgeworICAgICAgICByZXR1cm4gdGhpcy5ib3JkZXJCb3goKTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9JbmxpbmVCb3guanMgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC9JbmxpbmVCb3guanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEyZWQ1MDQzMDdjMThkZDFlOTNm
ODM0ZWEwNjMyOTZmN2RmZWRhYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL0lubGluZUJveC5qcwpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgSW5saW5lQm94IGV4dGVuZHMgQm94IHsKKyAg
ICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkgeworICAgICAgICBzdXBlcihub2RlLCBpZCk7CisgICAg
ICAgIHRoaXMubV90ZXh0ID0gbnVsbDsKKyAgICB9CisKKyAgICBzZXRUZXh0KHRleHQpIHsKKyAg
ICAgICAgdGhpcy5tX3RleHQgPSB0ZXh0OworICAgIH0KKworICAgIHRleHQoKSB7CisgICAgICAg
IHJldHVybiB0aGlzLm1fdGV4dDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYjAzZjY2ZWVkNzliNjhk
NjI0NGNhMmRlZjI3ZDNmZDQ5MDQ5ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcwpAQCAtMCwwICsxLDkwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK2NsYXNzIElubGluZUZvcm1h
dHRpbmdDb250ZXh0IGV4dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgeworICAgIGNvbnN0cnVjdG9y
KHJvb3QpIHsKKyAgICAgICAgc3VwZXIocm9vdCk7CisgICAgICAgIC8vIElmIHRoZSBibG9jayBj
b250YWluZXIgYm94IHRoYXQgaW5pdGlhdGVzIHRoaXMgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4
IGFsc28gZXN0YWJsaXNoZXMgYSBibG9jayBjb250ZXh0LCBjcmVhdGUgYSBuZXcgZmxvYXQgZm9y
IHVzLgorICAgICAgICBBU1NFUlQocm9vdC5pc0Jsb2NrQ29udGFpbmVyQm94KCkpOworICAgICAg
ICBpZiAocm9vdC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSkKKyAgICAgICAg
ICAgIHRoaXMubV9mbG9hdGluZ0NvbnRleHQgPSBuZXcgRmxvYXRpbmdDb250ZXh0KHRoaXMpOwor
ICAgIH0KKworICAgIGxheW91dChsYXlvdXRDb250ZXh0KSB7CisgICAgICAgIC8vIDkuNC4yIElu
bGluZSBmb3JtYXR0aW5nIGNvbnRleHRzCisgICAgICAgIC8vIEluIGFuIGlubGluZSBmb3JtYXR0
aW5nIGNvbnRleHQsIGJveGVzIGFyZSBsYWlkIG91dCBob3Jpem9udGFsbHksIG9uZSBhZnRlciB0
aGUgb3RoZXIsIGJlZ2lubmluZyBhdCB0aGUgdG9wIG9mIGEgY29udGFpbmluZyBibG9jay4KKyAg
ICAgICAgaWYgKCF0aGlzLnJvb3RDb250YWluZXIoKS5maXJzdENoaWxkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVyIHRyZWUgdHJhdmVyc2Fs
IGxheW91dC4KKyAgICAgICAgbGV0IGxheW91dFN0YWNrID0gbmV3IEFycmF5KCk7CisgICAgICAg
IC8vIFRoZSByb290IGNvbnRhaW5lciBsYXlvdXQgaXMgZG9uZSBpbiB0aGUgZm9ybWF0dGluZyBj
b250ZXh0IGl0IGxpdmVzIGluLCBub3QgdGhhdCBvbmUgaXQgY3JlYXRlcywgc28gbGV0J3Mgc3Rh
cnQgd2l0aCB0aGUgZmlyc3QgY2hpbGQuCisgICAgICAgIGxheW91dFN0YWNrLnB1c2godGhpcy5y
b290Q29udGFpbmVyKCkuZmlyc3RDaGlsZCgpKTsKKyAgICAgICAgd2hpbGUgKGxheW91dFN0YWNr
Lmxlbmd0aCkgeworICAgICAgICAgICAgLy8gVHJhdmVycyBkb3duIG9uIHRoZSBkZXNjZW5kYW50
cyB1bnRpbCB3ZSBmaW5kIGEgbGVhZiBub2RlLgorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsK
KyAgICAgICAgICAgICAgICBsZXQgYm94ID0gbGF5b3V0U3RhY2tbbGF5b3V0U3RhY2subGVuZ3Ro
IC0gMV07CisgICAgICAgICAgICAgICAgaWYgKGJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250
ZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0Q29udGV4dC5sYXlvdXRGb3JtYXR0
aW5nQ29udGV4dChib3guZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
ICghYm94LmlzQ29udGFpbmVyKCkgfHwgIWJveC5oYXNDaGlsZCgpKQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBsYXlvdXRTdGFjay5wdXNoKGJveC5maXJzdENo
aWxkKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGxheW91dFN0YWNrLmxl
bmd0aCkgeworICAgICAgICAgICAgICAgIGxldCBib3ggPSBsYXlvdXRTdGFjay5wb3AoKTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVJbmxpbmVCb3goYm94KTsKKyAgICAgICAgICAgICAg
ICBpZiAoYm94Lm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0U3Rh
Y2sucHVzaChib3gubmV4dFNpYmxpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBB
bmQgZmluYWxseSBwbGFjZSB0aGUgb3V0IG9mIGZsb3cgZGVzY2VuZGFudHMgZm9yIHRoZSByb290
LgorICAgICAgICAvL3RoaXMuX3BsYWNlT3V0T2ZGbG93RGVzY2VuZGFudHModGhpcy5yb290Q29u
dGFpbmVyKCkpOworICAgfQorCisgICAgX2hhbmRsZUlubGluZUJveChpbmxpbmVCb3gpIHsKKyAg
ICAgICAgaWYgKGlubGluZUJveC50ZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5faGFu
ZGxlVGV4dChpbmxpbmVCb3gpOworICAgIH0KKworICAgIF9oYW5kbGVUZXh0KGlubGluZUJveCkg
eworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGV4dHJlbWVseSBzaW1wbGUgbGluZSBicmVh
a2luZyBhbGdvcml0aG0uCisgICAgICAgIGxldCBlbmRQb3NpdGlvbiA9IGlubGluZUJveC50ZXh0
KCkubGVuZ2h0KCkgLSAxOworICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gMDsKKyAgICAg
ICAgd2hpbGUgKGN1cnJlbnRQb3NpdGlvbiA8IGVuZFBvc2l0aW9uKSB7CisgICAgICAgICAgICBs
ZXQgYnJlYWtpbmdQb3NpdGlvbiA9IFV0aWxzLm5leHRCcmVha2luZ09wcG9ydHVuaXR5KGlubGlu
ZUJveC50ZXh0KCksIGN1cnJlbnRQb3NpdGlvbik7CisgICAgICAgICAgICBsZXQgZnJhZ21lbnRX
aWR0aCA9IFV0aWxzLm1lYXN1cmVUZXh0KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCBicmVh
a2luZ1Bvc2l0aW9uKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmxpbmUoKS5hdmFpbGFibGVXaWR0
aCgpID49IGZyYWdtZW50V2lkdGggfHwgdGhpcy5saW5lKCkuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5saW5lKCkuYXBwZW5kRnJhZ21lbnQoY3VycmVudFBvc2l0aW9uLCBicmVh
a2luZ1Bvc2l0aW9uLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgdGhpcy5saW5lKCkuY29tbWl0Q3VycmVudExpbmUoKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLmxpbmUoKS5hcHBlbmRGcmFnbWVudChjdXJyZW50UG9zaXRpb24sIGJyZWFraW5n
UG9zaXRpb24sIGZyYWdtZW50V2lkdGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3Vy
cmVudFBvc2l0aW9uID0gYnJlYWtpbmdQb3NpdGlvbjsKKyAgICAgICAgfQorICAgIH0KK30KKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0LmpzIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvTGF5b3V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViOTg0YTRkZGI5YmM1MTViMGUyNzQxOTZi
YjVkYmViMThhMjMzMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9M
YXlvdXQuanMKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK2Z1bmN0aW9uIGxheW91dCh3aW5kb3csIHZpZXdwb3J0U2l6ZSkgewor
ICAgIGxldCB0cmVlQnVpbGRlciA9IG5ldyBUcmVlQnVpbGRlcigpOworICAgIGxldCBpbml0aWFs
Q29udGFpbmluZ0Jsb2NrID0gdHJlZUJ1aWxkZXIuY3JlYXRlVHJlZSh3aW5kb3cuZG9jdW1lbnQs
IHdpbmRvdy5yZW5kZXJUcmVlU3RydWN0dXJlKTsKKyAgICBpbml0aWFsQ29udGFpbmluZ0Jsb2Nr
LnNldFNpemUodmlld3BvcnRTaXplKTsKKworICAgIGxldCBsYXlvdXRDb250ZXh0ID0gbmV3IExh
eW91dENvbnRleHQoaW5pdGlhbENvbnRhaW5pbmdCbG9jayk7CisgICAgbGF5b3V0Q29udGV4dC5s
YXlvdXRGb3JtYXR0aW5nQ29udGV4dChpbml0aWFsQ29udGFpbmluZ0Jsb2NrLmVzdGFibGlzaGVk
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgcmV0dXJuIFV0aWxzLmxheW91dFRyZWVEdW1wKGlu
aXRpYWxDb250YWluaW5nQmxvY2spOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvTGF5b3V0Q29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dENvbnRleHQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODE0YTJmMTA4MzU5ZjI3MzE5MDZmN2UwMTllNGRhNDFiN2I2NGNhYgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dENvbnRleHQuanMK
QEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK2NsYXNzIExheW91dENvbnRleHQgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgIH0K
KworICAgIGxheW91dEZvcm1hdHRpbmdDb250ZXh0KGZvcm1hdHRpbmdDb250ZXh0KSB7CisgICAg
ICAgIGZvcm1hdHRpbmdDb250ZXh0LmxheW91dCh0aGlzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54Y3dvcmtzcGFjZS9jb250ZW50
cy54Y3dvcmtzcGFjZWRhdGEgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54
Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ3ZDg4YTlh
NjhkZGEwYTA3OWEwYjFkOWQ5NDRhMDdmMWY4NTFmMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29y
a3NwYWNlZGF0YQpAQCAtMCwwICsxLDk5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJVVEYtOCI/PgorPFdvcmtzcGFjZQorICAgdmVyc2lvbiA9ICIxLjAiPgorICAgPEdyb3VwCisg
ICAgICBsb2NhdGlvbiA9ICJjb250YWluZXI6IgorICAgICAgbmFtZSA9ICJUZXN0Ij4KKyAgICAg
IDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJncm91cDp0ZXN0L2luZGV4Lmh0bWwiPgor
ICAgICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdy
b3VwOnRlc3QvVGVzdEhhcm5lc3MuanMiPgorICAgICAgPC9GaWxlUmVmPgorICAgPC9Hcm91cD4K
KyAgIDxHcm91cAorICAgICAgbG9jYXRpb24gPSAiY29udGFpbmVyOiIKKyAgICAgIG5hbWUgPSAi
TWlzYyI+CisgICAgICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9o
ZWFkZXJzL0xheW91dENvbnRleHQuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJl
ZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250
ZXh0LmgiPgorICAgICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0
aW9uID0gImdyb3VwOm1pc2MvaGVhZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgiPgorICAg
ICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3Vw
Om1pc2MvaGVhZGVycy9GbG9hdGluZ0NvbnRleHQuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAg
ICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0Jsb2Nr
TWFyZ2luQ29sbGFwc2UuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAg
ICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0JveC5oIj4KKyAgICAgIDwvRmls
ZVJlZj4KKyAgICAgIDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hl
YWRlcnMvQ29udGFpbmVyLmgiPgorICAgICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAg
ICAgICAgIGxvY2F0aW9uID0gImdyb3VwOm1pc2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oIj4K
KyAgICAgIDwvRmlsZVJlZj4KKyAgICAgIDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJn
cm91cDptaXNjL2hlYWRlcnMvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmgiPgorICAgICAgPC9GaWxl
UmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3VwOi9Vc2Vycy9h
a2luc2xleS9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvSW5saW5lQm94LmgiPgorICAgICAg
PC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3VwOm1p
c2MvaGVhZGVycy9UZXh0LmgiPgorICAgICAgPC9GaWxlUmVmPgorICAgPC9Hcm91cD4KKyAgIDxG
aWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpSRUFETUUubWQiPgorICAgPC9GaWxlUmVm
PgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkxheW91dC5qcyI+CisgICA8
L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6TGF5b3V0Q29u
dGV4dC5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAi
Z3JvdXA6Rm9ybWF0dGluZ0NvbnRleHQuanMiPgorICAgPC9GaWxlUmVmPgorICAgPEZpbGVSZWYK
KyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMiPgorICAg
PC9GaWxlUmVmPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOklubGluZUZv
cm1hdHRpbmdDb250ZXh0LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBs
b2NhdGlvbiA9ICJncm91cDpGbG9hdGluZ0NvbnRleHQuanMiPgorICAgPC9GaWxlUmVmPgorICAg
PEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkJsb2NrTWFyZ2luQ29sbGFwc2UuanMi
PgorICAgPC9GaWxlUmVmPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkJv
eC5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3Jv
dXA6Q29udGFpbmVyLmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2Nh
dGlvbiA9ICJncm91cDpCbG9ja0NvbnRhaW5lci5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8Rmls
ZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6SW5pdGlhbEJsb2NrQ29udGFpbmVyLmpzIj4K
KyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDovVXNl
cnMvYWtpbnNsZXkvTGF5b3V0UmVsb2FkZWQvSW5saW5lQm94LmpzIj4KKyAgIDwvRmlsZVJlZj4K
KyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpUZXh0LmpzIj4KKyAgIDwvRmls
ZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpVdGlscy5qcyI+Cisg
ICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6VHJlZUJ1
aWxkZXIuanMiPgorICAgPC9GaWxlUmVmPgorPC9Xb3Jrc3BhY2U+CmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEv
SURFV29ya3NwYWNlQ2hlY2tzLnBsaXN0IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0UmVs
b2FkZWQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5wbGlzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xOGQ5ODEwMDNkNjhkMDU0NmM0ODA0YWMyZmY0N2RkOTdjNmU3OTIxCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0UmVsb2FkZWQueGN3b3Jr
c3BhY2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5wbGlzdApAQCAtMCwwICsxLDgg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgor
PGRpY3Q+CisJPGtleT5JREVEaWRDb21wdXRlTWFjMzJCaXRXYXJuaW5nPC9rZXk+CisJPHRydWUv
PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL1JF
QURNRS5tZCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGQy
NmY5ODIyOGZlZWNhODYxYTdiMTA0ODBjOGVmNTgwNmUzMTJmCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNDUgQEAKK1Zpc3VhbCBm
b3JtYXR0aW5nIG1vZGVsIGltcGxlbWVudGF0aW9uLgorU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui9DU1MyMi92aXN1cmVuLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKK1dlYkNvcmUKKzEu
IHJlY3Vyc2l2ZSBsYXlvdXQKKzIuIGxheW91dCBsb2dpYyBsaXZlcyBpbiB0aGUgcmVuZGVyZXJz
IG1peGluZyBibG9jayB3aXRoIGlubGluZSBldGMuCisKK0xheW91dFJlbG9hZGVkCisxLiBpdGVy
YXRpdmUgbGF5b3V0IHdpdGhpbiBhIGZvcm1hdHRpbmcgY29udGV4dCwgcmVjdXJzaXZlIGFjcm9z
cyBuZXN0ZWQgZm9ybWF0dGluZyBjb250ZXh0cyAKKzIuIGZvcm1hdHRpbmcgY29udGV4dCBpcyBy
ZXNwb25zaWJsZSBmb3IgY29tcHV0aW5nIHNpemUvcG9zaXRpb25zIGZvciBhbGwgdGhlIGJveGVz
IHRoYXQgbGl2ZSBpbiB0aGUKK2NvbnRleHQgaW5jbHVkaW5nIGluL291dC1vZi1mbG93IGFuZCBm
bG9hdGluZyBib3hlcyAgCiszLiBJbml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgY3JlYXRlcyB0aGUg
dG9wIGxldmVsIChpbml0aWFsKSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQKKzQuIEZsb2F0cyBh
cmUgcmVzaXRyaWNlZCB0byB0aGVpciBjb250YWluaW5nIGJsb2Nrcy4KKworCitJbnN0cnVjdGlv
bnM6CisxLiBhcHBseSAuL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2gKKzIuIGNvbXBp
bGUgV2ViS2l0CiszLiBsb2FkIC4vdGVzdC9pbmRleC5odG1sCisKK0Rlc2lnbjoKK0Zvcm1hdHRp
bmdDb250ZXh0CisgLSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0CisgLSBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCAobm90IHlldCBpbXBsZW1lbnRlZCkKKyAtIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQg
KG5vdCB5ZXQgaW1wbGVtZW50ZWQpCisgLSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQgKG5vdCB5ZXQg
aW1wbGVtZW50ZWQpCisgLSBldGMuCisKK0JveAorIC0gQ29udGFpbmVyCisgIC0gQmxvY2tDb250
YWluZXIKKyAgIC0gSW5pdGlhbEJsb2NrQ29udGFpbmVyCisgIC0gSW5saW5lQ29udGFpbmVyIChu
b3QgeWV0KQorIC0gSW5saW5lQm94IChub3QgeWV0KQorIAorCitQYXJ0aWFsbHkgZG9uZToKK0Js
b2NrIGZvcm1hdHRpbmcgY29udGV4dDoKKy0gc3RhdGljLCByZWxhdGl2ZSBhbmQgb3V0IG9mIGZs
b3cgcG9zaXRpb25pbmcKKy0gbWFyZ2luIGNvbGxhcHNpbmcKKy0gZmxvYXRzCisKK01pc3Npbmc6
CistIElubGluZSBmb3JtYXR0aW5nIGNvbnRleHQKKy0gRXZlcnl0aGluZyBlbHNlCmRpZmYgLS1n
aXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9UZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
VGV4dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZWY1ODg4OGVjZTc0Mzk3ZmFlNDdlMDFmOTA3ZDkxMGViNzIz
ZWEwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVGV4dC5qcwpAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworY2xhc3MgVGV4dCB7CisgICAgY29uc3RydWN0b3Iobm9kZSwgaWQsIGlubGluZUJveCkgewor
ICAgICAgICB0aGlzLm1fbm9kZSA9IG5vZGU7CisgICAgICAgIHRoaXMubV9pZCA9IGlkOworICAg
ICAgICB0aGlzLm1faW5saW5lQm94ID0gaW5saW5lQm94OworICAgIH0KK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL1RyZWVCdWlsZGVyLmpzIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvVHJlZUJ1aWxkZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM5YzI0NWY0YTA2YjE5ZDVmOTE0MjU0NjU5
OGM3YTEwNWNmYzFjMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1Ry
ZWVCdWlsZGVyLmpzCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLy8gMSgpUmVuZGVyVmlld3wyKDEpUmVuZGVyQmxvY2t8Mygy
KVJlbmRlckJvZHl8NCgzKVJlbmRlckJsb2NrfDUoMylBbm9ueW1vdXNSZW5kZXJCbG9ja3wKK2Ns
YXNzIFRyZWVCdWlsZGVyIHsKKworICAgIGNyZWF0ZVRyZWUoZG9jdW1lbnQsIHJlbmRlclRyZWVE
dW1wKSB7CisgICAgICAgIC8vIFJvb3QuCisgICAgICAgIGxldCBpbml0aWFsQmxvY2tDb250YWlu
ZXIgPSBuZXcgSW5pdGlhbEJsb2NrQ29udGFpbmVyKGRvY3VtZW50LCBwYXJzZUludChyZW5kZXJU
cmVlRHVtcC5zdWJzdHJpbmcoMCwgcmVuZGVyVHJlZUR1bXAuaW5kZXhPZigiKCIpKSkpOworICAg
ICAgICBpbml0aWFsQmxvY2tDb250YWluZXIuc2V0UmVuZGVyZXJOYW1lKCJSZW5kZXJWaWV3Iik7
CisgICAgICAgIHJlbmRlclRyZWVEdW1wID0gcmVuZGVyVHJlZUR1bXAuc3Vic3RyaW5nKHJlbmRl
clRyZWVEdW1wLmluZGV4T2YoInwiKSArIDEpOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7Cisg
ICAgICAgICAgICBsZXQgZW5kT2ZJZCA9IHJlbmRlclRyZWVEdW1wLmluZGV4T2YoIigiKTsKKyAg
ICAgICAgICAgIGxldCBib3hJZCA9IHBhcnNlSW50KHJlbmRlclRyZWVEdW1wLnN1YnN0cmluZygw
LCBlbmRPZklkKSk7CisgICAgICAgICAgICBsZXQgZW5kT2ZQYXJlbnRJZCA9IHJlbmRlclRyZWVE
dW1wLmluZGV4T2YoIikiKTsKKyAgICAgICAgICAgIGxldCBwYXJlbnRJZCA9IHBhcnNlSW50KHJl
bmRlclRyZWVEdW1wLnN1YnN0cmluZyhlbmRPZklkICsgMSwgZW5kT2ZQYXJlbnRJZCkpOworICAg
ICAgICAgICAgbGV0IGVuZE9mTmFtZSA9IHJlbmRlclRyZWVEdW1wLmluZGV4T2YoInwiKTsKKyAg
ICAgICAgICAgIGxldCBuYW1lID0gcmVuZGVyVHJlZUR1bXAuc3Vic3RyaW5nKGVuZE9mUGFyZW50
SWQgKyAxLCBlbmRPZk5hbWUpOworCisgICAgICAgICAgICB0aGlzLl9jcmVhdGVBbmRBdHRhY2hC
b3goaW5pdGlhbEJsb2NrQ29udGFpbmVyLCBib3hJZCwgbmFtZSwgcGFyZW50SWQpOworICAgICAg
ICAgICAgaWYgKGVuZE9mTmFtZSA9PSByZW5kZXJUcmVlRHVtcC5sZW5ndGggLSAxKQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmVuZGVyVHJlZUR1bXAgPSByZW5kZXJUcmVl
RHVtcC5zdWJzdHJpbmcoZW5kT2ZOYW1lICsgMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGluaXRpYWxCbG9ja0NvbnRhaW5lcjsKKyAgICB9CisKKyAgICBfY3JlYXRlQW5kQXR0YWNoQm94
KGluaXRpYWxCbG9ja0NvbnRhaW5lciwgaWQsIG5hbWUsIHBhcmVudElkKSB7CisgICAgICAgIGxl
dCBib3ggPSBudWxsOworICAgICAgICBsZXQgdGV4dCA9IG51bGw7CisgICAgICAgIGxldCBub2Rl
ID0gdGhpcy5fZmluZE5vZGUoaW5pdGlhbEJsb2NrQ29udGFpbmVyLm5vZGUoKSwgaWQsIG5hbWUp
OworICAgICAgICBpZiAobmFtZSA9PSAiUmVuZGVyQmxvY2siIHx8IG5hbWUgPT0gIlJlbmRlckJv
ZHkiKQorICAgICAgICAgICAgYm94ID0gbmV3IEJsb2NrQ29udGFpbmVyKG5vZGUsIGlkKTsKKyAg
ICAgICAgZWxzZSBpZiAobmFtZSA9PSAiUmVuZGVySW5saW5lIikgeworICAgICAgICAgICAgYm94
ID0gbmV3IElubGluZUNvbnRhaW5lcihub2RlLCBpZCk7CisgICAgICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSAiUmVuZGVyVGV4dCIpIHsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dChub2RlLCBp
ZCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYm94ID0gbmV3IEJveChub2RlLCBpZCk7
CisKKyAgICAgICAgaWYgKGJveCkKKyAgICAgICAgICAgIGJveC5zZXRSZW5kZXJlck5hbWUobmFt
ZSk7CisKKyAgICAgICAgbGV0IHBhcmVudEJveCA9IHRoaXMuX2ZpbmRCb3goaW5pdGlhbEJsb2Nr
Q29udGFpbmVyLCBwYXJlbnRJZCk7CisgICAgICAgIC8vIFdlYktpdCBkb2VzIG5vdCBjb25zdHJ1
Y3QgYW5vbnltb3VzIGlubGluZSBjb250YWluZXIgZm9yIHRleHQgaWYgdGhlIHRleHQKKyAgICAg
ICAgLy8gaXMgYSBkaXJlY3QgY2hpbGQgb2YgYSBibG9jayBjb250YWluZXIuCisgICAgICAgIGlm
ICh0ZXh0ICYmICFwYXJlbnRCb3guaXNJbmxpbmVDb250YWluZXIpIHsKKyAgICAgICAgICAgIGJv
eCA9IG5ldyBJbmxpbmVCb3gobnVsbCwgLTEpOworICAgICAgICAgICAgYm94LnNldElzQW5vbnlt
b3VzKCk7CisgICAgICAgICAgICBib3guc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAg
ICB0aGlzLl9hcHBlbmRDaGlsZChwYXJlbnRCb3gsIGJveCk7CisgICAgICAgIHJldHVybiBib3g7
CisgICAgfQorCisgICAgX2FwcGVuZENoaWxkKHBhcmVudCwgY2hpbGQpIHsKKyAgICAgICAgY2hp
bGQuc2V0UGFyZW50KHBhcmVudCk7CisgICAgICAgIGxldCBmaXJzdENoaWxkID0gcGFyZW50LmZp
cnN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKCFmaXJzdENoaWxkKSB7CisgICAgICAgICAgICBwYXJl
bnQuc2V0Rmlyc3RDaGlsZChjaGlsZCk7CisgICAgICAgICAgICBwYXJlbnQuc2V0TGFzdENoaWxk
KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBsZXQgbGFz
dENoaWxkID0gcGFyZW50Lmxhc3RDaGlsZCgpOworICAgICAgICBsYXN0Q2hpbGQuc2V0TmV4dFNp
YmxpbmcoY2hpbGQpOworICAgICAgICBjaGlsZC5zZXRQcmV2aW91c1NpYmxpbmcobGFzdENoaWxk
KTsKKyAgICAgICAgcGFyZW50LnNldExhc3RDaGlsZChjaGlsZCk7CisgICAgfQorCisgICAgX2Zp
bmRCb3gocm9vdCwgYm94SWQpIHsKKyAgICAgICAgaWYgKHJvb3QuaWQoKSA9PSBib3hJZCkKKyAg
ICAgICAgICAgIHJldHVybiByb290OworICAgICAgICAvLyBTdXBlciBpbmVmZmljaWVudCBidXQg
dGhpcyBpcyBhbGwgdGVtcG9yYXJ5IGFueXdheS4KKyAgICAgICAgZm9yIChsZXQgYm94ID0gcm9v
dC5maXJzdENoaWxkKCk7IGJveDsgYm94ID0gYm94Lm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAg
ICAgIGlmIChib3guaWQoKSA9PSBib3hJZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYm94Owor
ICAgICAgICAgICAgaWYgKGJveC5pc0NvbnRhaW5lcigpICYmIGJveC5oYXNDaGlsZCgpKSB7Cisg
ICAgICAgICAgICAgICAgbGV0IGNhbmRpZGF0ZSA9IHRoaXMuX2ZpbmRCb3goYm94LCBib3hJZCk7
CisgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGNhbmRpZGF0ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIF9m
aW5kTm9kZShub2RlLCBib3hJZCkgeworICAgICAgICAvLyBTdXBlciBpbmVmZmljaWVudCBidXQg
dGhpcyBpcyBhbGwgdGVtcG9yYXJ5IGFueXdheS4KKyAgICAgICAgZm9yIChsZXQgY3VycmVudE5v
ZGUgPSBub2RlLmZpcnN0Q2hpbGQ7IGN1cnJlbnROb2RlOyBjdXJyZW50Tm9kZSA9IGN1cnJlbnRO
b2RlLm5leHRTaWJsaW5nKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudE5vZGUucmVuZGVyZXJJ
ZCA9PSBib3hJZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7CisgICAgICAg
ICAgICBsZXQgY2FuZGlkYXRlID0gdGhpcy5fZmluZE5vZGUoY3VycmVudE5vZGUsIGJveElkKTsK
KyAgICAgICAgICAgIGlmIChjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRp
ZGF0ZTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL1V0aWxzLmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVXRpbHMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTYyN2RhOTg5ZTgwMDk5MTZlMmIwNTdlZWYzMGZmMmViNTZmOTU4ZQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1V0aWxzLmpzCkBAIC0wLDAgKzEsNTM5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgTGF5b3V0UG9p
bnQgeworICAgIGNvbnN0cnVjdG9yKHRvcCwgbGVmdCkgeworICAgICAgICB0aGlzLm1fdG9wID0g
dG9wOworICAgICAgICB0aGlzLm1fbGVmdCA9IGxlZnQ7CisgICAgfQorCisgICAgc2V0TGVmdChs
ZWZ0KSB7CisgICAgICAgIHRoaXMubV9sZWZ0ID0gbGVmdDsKKyAgICB9CisKKyAgICBzZXRUb3Ao
dG9wKSB7CisgICAgICAgIHRoaXMubV90b3AgPSB0b3A7CisgICAgfQorCisgICAgbGVmdCgpIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMubV9sZWZ0OworICAgIH0KKworICAgIHRvcCgpIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMubV90b3A7CisgICAgfQorCisgICAgc2hpZnRMZWZ0KGRpc3RhbmNlKSB7
CisgICAgICAgIHRoaXMubV9sZWZ0ICs9IGRpc3RhbmNlOworICAgIH0KKworICAgIHNoaWZ0VG9w
KGRpc3RhbmNlKSB7CisgICAgICAgIHRoaXMubV90b3AgKz0gZGlzdGFuY2U7CisgICAgfQorCisg
ICAgbW92ZUJ5KGRpc3RhbmNlKSB7CisgICAgICAgIGlmIChkaXN0YW5jZS50b3AgJiYgZGlzdGFu
Y2UubGVmdCkgeworICAgICAgICAgICAgdGhpcy5tX3RvcCArPSBkaXN0YW5jZS50b3AoKTsKKyAg
ICAgICAgICAgIHRoaXMubV9sZWZ0ICs9IGRpc3RhbmNlLmxlZnQoKTsKKyAgICAgICAgfQorICAg
ICAgICBlbHNlIGlmIChkaXN0YW5jZS53aWR0aCAmJiBkaXN0YW5jZS5oZWlnaHQpIHsKKyAgICAg
ICAgICAgIHRoaXMubV90b3AgKz0gZGlzdGFuY2UuaGVpZ2h0KCk7CisgICAgICAgICAgICB0aGlz
Lm1fbGVmdCArPSBkaXN0YW5jZS53aWR0aCgpOworICAgICAgICB9CisgICAgfQorCisgICAgZXF1
YWwob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudG9wKCkgPT0gb3RoZXIudG9wKCkgJiYg
dGhpcy5sZWZ0KCkgPT0gb3RoZXIubGVmdCgpOworICAgIH0KKworICAgIGNsb25lKCkgeworICAg
ICAgICByZXR1cm4gbmV3IExheW91dFBvaW50KHRoaXMudG9wKCksIHRoaXMubGVmdCgpKTsKKyAg
ICB9Cit9CisKK2NsYXNzIExheW91dFNpemUgeworICAgIGNvbnN0cnVjdG9yKHdpZHRoLCBoZWln
aHQpIHsKKyAgICAgICAgdGhpcy5tX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHRoaXMubV9oZWln
aHQgPSBoZWlnaHQ7CisgICAgfQorCisgICAgc2V0V2lkdGgod2lkdGgpIHsKKyAgICAgICAgdGhp
cy5tX3dpZHRoID0gd2lkdGg7CisgICAgfQorCisgICAgc2V0SGVpZ2h0KGhlaWdodCkgeworICAg
ICAgICB0aGlzLm1faGVpZ2h0ID0gaGVpZ2h0OworICAgIH0KKworICAgIHdpZHRoKCkgeworICAg
ICAgICByZXR1cm4gdGhpcy5tX3dpZHRoOworICAgIH0KKworICAgIGhlaWdodCgpIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMubV9oZWlnaHQ7CisgICAgfQorCisgICAgZ3Jvd0J5KGRpc3RhbmNlKSB7
CisgICAgICAgIHRoaXMubV93aWR0aCArPSBkaXN0YW5jZS53aWR0aCgpOworICAgICAgICB0aGlz
Lm1faGVpZ2h0ICs9IGRpc3RhbmNlLmhlaWdodCgpOworICAgIH0KKworICAgIHNocmlua0J5KGRp
c3RhbmNlKSB7CisgICAgICAgIHRoaXMubV93aWR0aCAtPSBkaXN0YW5jZS53aWR0aCgpOworICAg
ICAgICB0aGlzLm1faGVpZ2h0IC09IGRpc3RhbmNlLmhlaWdodCgpOworICAgIH0KKworICAgIGlz
RW1wdHkoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fd2lkdGggPD0gMCB8fCB0aGlzLm1faGVp
Z2h0IDw9IDA7CisgICAgfQorCisgICAgZXF1YWwob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMud2lkdGgoKSA9PSBvdGhlci53aWR0aCgpICYmIHRoaXMuaGVpZ2h0KCkgPT0gb3RoZXIuaGVp
Z2h0KCk7CisgICAgfQorCisgICAgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgTGF5b3V0
U2l6ZSh0aGlzLndpZHRoKCksIHRoaXMuaGVpZ2h0KCkpOworICAgIH0KK30KKworY2xhc3MgTGF5
b3V0UmVjdCB7CisgICAgY29uc3RydWN0b3IodG9wTGVmdCwgc2l6ZSkgeworICAgICAgICB0aGlz
Lm1fdG9wTGVmdCA9IHRvcExlZnQuY2xvbmUoKTsKKyAgICAgICAgdGhpcy5tX3NpemUgPSBzaXpl
LmNsb25lKCk7CisgICAgfQorCisgICAgc2V0VG9wKHRvcCkgeworICAgICAgICB0aGlzLm1fdG9w
TGVmdC5zZXRUb3AodG9wKTsKKyAgICB9CisKKyAgICBzZXRMZWZ0KGxlZnQpIHsKKyAgICAgICAg
dGhpcy5tX3RvcExlZnQuc2V0TGVmdChsZWZ0KTsKKyAgICB9CisKKyAgICBzZXRCb3R0b20oYm90
dG9tKSB7CisgICAgICAgIHRoaXMubV9zaXplLnNldEhlaWdodChib3R0b20gLSB0aGlzLm1fdG9w
TGVmdC50b3AoKSk7CisgICAgfQorCisgICAgc2V0UmlnaHQocmlnaHQpIHsKKyAgICAgICAgdGhp
cy5tX3NpemUuc2V0V2lkdGgocmlnaHQgLSB0aGlzLm1fdG9wTGVmdC5sZWZ0KCkpOworICAgIH0K
KworICAgIGxlZnQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fdG9wTGVmdC5sZWZ0KCk7Cisg
ICAgfQorCisgICAgdG9wKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQudG9wKCk7
CisgICAgfQorCisgICAgYm90dG9tKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQu
dG9wKCkgKyB0aGlzLm1fc2l6ZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICByaWdodCgpIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMubV90b3BMZWZ0LmxlZnQoKSArIHRoaXMubV9zaXplLndpZHRoKCk7
CisgICAgfQorCisgICAgc2V0VG9wTGVmdCh0b3BMZWZ0KSB7CisgICAgICAgIHRoaXMubV90b3BM
ZWZ0ID0gdG9wTGVmdC5jbG9uZSgpOworICAgIH0KKworICAgIHRvcExlZnQoKSB7CisgICAgICAg
IHJldHVybiB0aGlzLm1fdG9wTGVmdC5jbG9uZSgpOworICAgIH0KKworICAgIHRvcFJpZ2h0KCkg
eworICAgICAgICByZXR1cm4gbmV3IExheW91dFBvaW50KHRoaXMudG9wKCksIHRoaXMucmlnaHQo
KSk7CisgICAgfQorCisgICAgYm90dG9tUmlnaHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgTGF5
b3V0UG9pbnQodGhpcy5ib3R0b20oKSwgdGhpcy5yaWdodCgpKTsKKyAgICB9CisKKyAgICBzZXRX
aWR0aCh3aWR0aCkgeworICAgICAgICB0aGlzLm1fc2l6ZS5zZXRXaWR0aCh3aWR0aCk7CisgICAg
fQorCisgICAgc2V0SGVpZ2h0KGhlaWdodCkgeworICAgICAgICB0aGlzLm1fc2l6ZS5zZXRIZWln
aHQoaGVpZ2h0KTsKKyAgICB9CisKKyAgICBzZXRTaXplKG5ld1NpemUpIHsKKyAgICAgICAgdGhp
cy5tX3NpemUgPSBuZXdTaXplLmNsb25lKCk7CisgICAgfQorCisgICAgc2l6ZSgpIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMubV9zaXplLmNsb25lKCk7CisgICAgfQorCisgICAgd2lkdGgoKSB7Cisg
ICAgICAgIHJldHVybiB0aGlzLm1fc2l6ZS53aWR0aCgpOworICAgIH0KKworICAgIGhlaWdodCgp
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9zaXplLmhlaWdodCgpOworICAgIH0KKworICAgIGdy
b3dCeShkaXN0YW5jZSkgeworICAgICAgICB0aGlzLm1fc2l6ZS5ncm93QnkoZGlzdGFuY2UpOwor
ICAgIH0KKworICAgIHNocmlua0J5KGRpc3RhbmNlKSB7CisgICAgICAgIHRoaXMubV9zaXplLnNo
cmlua0J5KGRpc3RhbmNlKTsKKyAgICB9CisKKyAgICBtb3ZlQnkoZGlzdGFuY2UpIHsKKyAgICAg
ICAgdGhpcy5tX3RvcExlZnQubW92ZUJ5KGRpc3RhbmNlKTsKKyAgICB9CisgICAgCisgICAgaXNF
bXB0eSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9zaXplLmlzRW1wdHkoKTsKKyAgICB9CisK
KyAgICBlcXVhbChvdGhlcikgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQuZXF1YWwo
b3RoZXIudG9wTGVmdCgpKSAmJiB0aGlzLm1fc2l6ZS5lcXVhbChvdGhlci5zaXplKCkpOworICAg
IH0KKworICAgIGludGVyc2VjdHMob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuICF0aGlzLmlzRW1w
dHkoKSAmJiAhb3RoZXIuaXNFbXB0eSgpCisgICAgICAgICYmIHRoaXMubGVmdCgpIDwgb3RoZXIu
cmlnaHQoKSAmJiBvdGhlci5sZWZ0KCkgPCB0aGlzLnJpZ2h0KCkKKyAgICAgICAgJiYgdGhpcy50
b3AoKSA8IG90aGVyLmJvdHRvbSgpICYmIG90aGVyLnRvcCgpIDwgdGhpcy5ib3R0b20oKTsKKyAg
ICB9CisKKyAgICBjb250YWlucyhvdGhlcikgeworICAgICAgICByZXR1cm4gdGhpcy5sZWZ0KCkg
PD0gb3RoZXIubGVmdCgpICYmIHRoaXMucmlnaHQoKSA+PSBvdGhlci5yaWdodCgpCisgICAgICAg
ICYmIHRoaXMudG9wKCkgPD0gb3RoZXIudG9wKCkgJiYgdGhpcy5ib3R0b20oKSA+PSBvdGhlci5i
b3R0b20oKTsKKyAgICB9CisKKyAgICBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlv
dXRSZWN0KHRoaXMudG9wTGVmdCgpLmNsb25lKCksIHRoaXMuc2l6ZSgpLmNsb25lKCkpOworICAg
IH0KK30KKworZnVuY3Rpb24gQVNTRVJUX05PVF9SRUFDSEVEKCkgeworICAgIHRocm93IEVycm9y
KCJTaG91bGQgbm90IHJlYWNoISIpOworfQorCitmdW5jdGlvbiBBU1NFUlQoc3RhdGVtZW50KSB7
CisgICAgaWYgKHN0YXRlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIHRocm93IEVycm9yKCJB
c3NlcnRpb24gZmFpbHVyZSIpOworfQorCitjbGFzcyBVdGlscyB7CisgICAgc3RhdGljIGNvbXB1
dGVkVmFsdWUoc3RyVmFsdWUsIGJhc2VWYWx1ZSkgeworICAgICAgICBpZiAoc3RyVmFsdWUuaW5k
ZXhPZigicHgiKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyVmFsdWUp
OworICAgICAgICBpZiAoc3RyVmFsdWUuaW5kZXhPZigiJSIpID4gLTEpCisgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VGbG9hdChzdHJWYWx1ZSkgKiBiYXNlVmFsdWUgLyAxMDA7CisgICAgICAgIHJl
dHVybiBOdW1iZXIuTmFOOworICAgIH0KKworICAgIHN0YXRpYyBwcm9wZXJ0eUlzQXV0byhwcm9w
ZXJ0eU5hbWUsIGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGJveC5ub2RlKCkpLmlzUHJvcGVydHlWYWx1ZUluaXRpYWwocHJvcGVydHlOYW1lKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgaXNXaWR0aEF1dG8oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5w
cm9wZXJ0eUlzQXV0bygid2lkdGgiLCBib3gpOworICAgIH0KKworICAgIHN0YXRpYyBpc0hlaWdo
dEF1dG8oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5wcm9wZXJ0eUlzQXV0bygiaGVpZ2h0
IiwgYm94KTsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNUb3BBdXRvKGJveCkgeworICAgICAgICBy
ZXR1cm4gVXRpbHMucHJvcGVydHlJc0F1dG8oInRvcCIsIGJveCk7CisgICAgfQorCisgICAgc3Rh
dGljIGlzTGVmdEF1dG8oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5wcm9wZXJ0eUlzQXV0
bygibGVmdCIsIGJveCk7CisgICAgfQorCisgICAgc3RhdGljIGlzQm90dG9tQXV0byhib3gpIHsK
KyAgICAgICAgcmV0dXJuIFV0aWxzLnByb3BlcnR5SXNBdXRvKCJib3R0b20iLCBib3gpOworICAg
IH0KKworICAgIHN0YXRpYyBpc1JpZ2h0QXV0byhib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxz
LnByb3BlcnR5SXNBdXRvKCJyaWdodCIsIGJveCk7CisgICAgfQorCisgICAgc3RhdGljIHdpZHRo
KGJveCkgeworICAgICAgICBBU1NFUlQoIVV0aWxzLmlzV2lkdGhBdXRvKGJveCkpOworICAgICAg
ICByZXR1cm4gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS53
aWR0aCk7CisgICAgfQorCisgICAgc3RhdGljIGhlaWdodChib3gpIHsKKyAgICAgICAgQVNTRVJU
KCFVdGlscy5pc0hlaWdodEF1dG8oYm94KSk7CisgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGJveC5ub2RlKCkpLmhlaWdodCk7CisgICAgfQorCisgICAg
c3RhdGljIHRvcChib3gpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoYm94Lm5vZGUoKS5z
dHlsZS50b3ApOworICAgIH0KKworICAgIHN0YXRpYyBib3R0b20oYm94KSB7CisgICAgICAgIHJl
dHVybiBwYXJzZUZsb2F0KGJveC5ub2RlKCkuc3R5bGUuYm90dG9tKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgbGVmdChib3gpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoYm94Lm5vZGUoKS5z
dHlsZS5sZWZ0KTsKKyAgICB9CisKKyAgICBzdGF0aWMgcmlnaHQoYm94KSB7CisgICAgICAgIHJl
dHVybiBwYXJzZUZsb2F0KGJveC5ub2RlKCkuc3R5bGUucmlnaHQpOworICAgIH0KKworICAgIHN0
YXRpYyBoYXNCb3JkZXJUb3AoYm94KSB7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShib3gubm9kZSgpKS5ib3JkZXJUb3BXaWR0aCAhPSAiMHB4IjsKKyAgICB9CisKKyAg
ICBzdGF0aWMgaGFzQm9yZGVyQm90dG9tKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkuYm9yZGVyQm90dG9tV2lkdGggIT0gIjBweCI7Cisg
ICAgfQorCisgICAgc3RhdGljIGhhc1BhZGRpbmdUb3AoYm94KSB7CisgICAgICAgIHJldHVybiB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS5wYWRkaW5nVG9wICE9ICIwcHgiOwor
ICAgIH0KKworICAgIHN0YXRpYyBoYXNQYWRkaW5nQm90dG9tKGJveCkgeworICAgICAgICByZXR1
cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkucGFkZGluZ0JvdHRvbSAhPSAi
MHB4IjsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRNYXJnaW5Ub3AoYm94KSB7CisgICAg
ICAgIHJldHVybiBVdGlscy5jb21wdXRlZFZhbHVlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJv
eC5ub2RlKCkpLm1hcmdpblRvcCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkTWFyZ2lu
TGVmdChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkubWFyZ2luTGVmdCk7CisgICAgfQorCisgICAgc3Rh
dGljIGNvbXB1dGVkTWFyZ2luQm90dG9tKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29t
cHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS5tYXJnaW5Cb3R0
b20pOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZE1hcmdpblJpZ2h0KGJveCkgeworICAg
ICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShi
b3gubm9kZSgpKS5tYXJnaW5SaWdodCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkQm9y
ZGVyVG9wTGVmdChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAg
ICByZXR1cm4gbmV3IExheW91dFNpemUoVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShub2RlKS5ib3JkZXJMZWZ0V2lkdGgpLCBVdGlscy5jb21wdXRlZFZhbHVlKHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLmJvcmRlclRvcFdpZHRoKSk7CisgICAgfQorCisg
ICAgc3RhdGljIGNvbXB1dGVkQm9yZGVyQm90dG9tUmlnaHQoYm94KSB7CisgICAgICAgIGxldCBu
b2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRTaXplKFV0aWxzLmNv
bXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuYm9yZGVyUmlnaHRXaWR0
aCksIFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuYm9y
ZGVyQm90dG9tV2lkdGgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRQYWRkaW5nVG9w
TGVmdChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAgICByZXR1
cm4gbmV3IExheW91dFNpemUoVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShub2RlKS5wYWRkaW5nTGVmdCksIFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENv
bXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ1RvcCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb21w
dXRlZFBhZGRpbmdCb3R0b21SaWdodChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9k
ZSgpOworICAgICAgICByZXR1cm4gbmV3IExheW91dFNpemUoVXRpbHMuY29tcHV0ZWRWYWx1ZSh3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5wYWRkaW5nUmlnaHQpLCBVdGlscy5jb21wdXRl
ZFZhbHVlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRpbmdCb3R0b20pKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nVG9wKGJveCkgeworICAg
ICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRCb3JkZXJUb3BMZWZ0KGJveCkuaGVpZ2h0KCkgKyBV
dGlscy5jb21wdXRlZFBhZGRpbmdUb3BMZWZ0KGJveCkuaGVpZ2h0KCk7CisgICAgfQorCisgICAg
c3RhdGljIGNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ0xlZnQoYm94KSB7CisgICAgICAgIHJldHVy
biBVdGlscy5jb21wdXRlZEJvcmRlclRvcExlZnQoYm94KS53aWR0aCgpICsgVXRpbHMuY29tcHV0
ZWRQYWRkaW5nVG9wTGVmdChib3gpLndpZHRoKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1
dGVkQm9yZGVyQW5kUGFkZGluZ1RvcChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1
dGVkQm9yZGVyVG9wTGVmdChib3gpLmhlaWdodCgpICsgVXRpbHMuY29tcHV0ZWRQYWRkaW5nVG9w
TGVmdChib3gpLmhlaWdodCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlckFu
ZFBhZGRpbmdMZWZ0KGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRCb3JkZXJU
b3BMZWZ0KGJveCkud2lkdGgoKSArIFV0aWxzLmNvbXB1dGVkUGFkZGluZ1RvcExlZnQoYm94KS53
aWR0aCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlckFuZFBhZGRpbmdCb3R0
b20oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5jb21wdXRlZEJvcmRlckJvdHRvbVJpZ2h0
KGJveCkuaGVpZ2h0KCkgKyBVdGlscy5jb21wdXRlZFBhZGRpbmdCb3R0b21SaWdodChib3gpLmhl
aWdodCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlckFuZFBhZGRpbmdSaWdo
dChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkQm9yZGVyQm90dG9tUmlnaHQo
Ym94KS53aWR0aCgpICsgVXRpbHMuY29tcHV0ZWRQYWRkaW5nQm90dG9tUmlnaHQoYm94KS53aWR0
aCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEhvcml6b250YWxCb3JkZXJBbmRQYWRk
aW5nKGJveCkgeworICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdM
ZWZ0KGJveCkgKyB0aGlzLmNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ1JpZ2h0KGJveCk7CisgICAg
fQorCisgICAgc3RhdGljIGNvbXB1dGVkVmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKGJveCkgewor
ICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdUb3AoYm94KSArIHRo
aXMuY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nQm90dG9tKGJveCk7CisgICAgfQorCisgICAgc3Rh
dGljIGhhc0NsZWFyKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaGFzQ2xlYXJMZWZ0KGJv
eCkgfHwgVXRpbHMuaGFzQ2xlYXJSaWdodChib3gpIHx8IFV0aWxzLmhhc0NsZWFyQm90aChib3gp
OworICAgIH0KKworICAgIHN0YXRpYyBoYXNDbGVhckxlZnQoYm94KSB7CisgICAgICAgIGxldCBu
b2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGJveC5ub2RlKCkpLmNsZWFyID09ICJsZWZ0IjsKKyAgICB9CisKKyAgICBzdGF0aWMgaGFzQ2xl
YXJSaWdodChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAgICBy
ZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkuY2xlYXIgPT0gInJpZ2h0
IjsKKyAgICB9CisKKyAgICBzdGF0aWMgaGFzQ2xlYXJCb3RoKGJveCkgeworICAgICAgICBsZXQg
bm9kZSA9IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShib3gubm9kZSgpKS5jbGVhciA9PSAiYm90aCI7CisgICAgfQorCisgICAgc3RhdGljIGlzQmxv
Y2tMZXZlbEVsZW1lbnQobm9kZSkgeworICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGxldCBkaXNwbGF5ID0gd2luZG93LmdldENvbXB1dGVkU3R5
bGUobm9kZSkuZGlzcGxheTsKKyAgICAgICAgcmV0dXJuICBkaXNwbGF5ID09ICJibG9jayIgfHwg
ZGlzcGxheSA9PSAibGlzdC1pdGVtIiB8fCBkaXNwbGF5ID09ICJ0YWJsZSI7CisgICAgfQorCisg
ICAgc3RhdGljIGlzQmxvY2tDb250YWluZXJFbGVtZW50KG5vZGUpIHsKKyAgICAgICAgbGV0IGRp
c3BsYXkgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5kaXNwbGF5OworICAgICAgICBy
ZXR1cm4gIGRpc3BsYXkgPT0gImJsb2NrIiB8fCBkaXNwbGF5ID09ICJsaXN0LWl0ZW0iIHx8IGRp
c3BsYXkgPT0gImlubGluZS1ibG9jayIgfHwgZGlzcGxheSA9PSAidGFibGUtY2VsbCIgfHwgZGlz
cGxheSA9PSAidGFibGUtY2FwdGlvbiI7IC8vVE9ETyAmJiAhcmVwbGFjZWQgZWxlbWVudAorICAg
IH0KKworICAgIHN0YXRpYyBpc0lubGluZUxldmVsRWxlbWVudChub2RlKSB7CisgICAgICAgIGxl
dCBkaXNwbGF5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheTsKKyAgICAg
ICAgcmV0dXJuICBkaXNwbGF5ID09ICJpbmxpbmUiIHx8IGRpc3BsYXkgPT0gImlubGluZS1ibG9j
ayIgfHwgZGlzcGxheSA9PSAiaW5saW5lLXRhYmxlIjsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNU
YWJsZUVsZW1lbnQobm9kZSkgeworICAgICAgICBsZXQgZGlzcGxheSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKG5vZGUpLmRpc3BsYXk7CisgICAgICAgIHJldHVybiAgZGlzcGxheSA9PSAidGFi
bGUiIHx8IGRpc3BsYXkgPT0gImlubGluZS10YWJsZSI7CisgICAgfQorCisgICAgc3RhdGljIGlz
UmVsYXRpdmVQb3NpdGlvbmVkKGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3VzKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUo
KTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBvc2l0aW9u
ID09ICJyZWxhdGl2ZSI7CisgICAgfQorCisgICAgc3RhdGljIGlzQWJzb2x1dGVQb3NpdGlvbmVk
KGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJu
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBvc2l0aW9uID09ICJhYnNvbHV0ZSI7Cisg
ICAgfQorCisgICAgc3RhdGljIGlzRml4ZWRQb3NpdGlvbmVkKGJveCkgeworICAgICAgICBpZiAo
Ym94LmlzQW5vbnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGxl
dCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKG5vZGUpLnBvc2l0aW9uID09ICJmaXhlZCI7CisgICAgfQorCisgICAgc3RhdGljIGlzT3Zl
cmZsb3dWaXNpYmxlKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoYm94Lm5vZGUoKSkub3ZlcmZsb3cgPT0gInZpc2libGUiOworICAgIH0KKworICAgIHN0YXRp
YyBpc0Zsb2F0aW5nUG9zaXRpb25lZChib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255bW91
cygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBsZXQgbm9kZSA9IGJveC5u
b2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5mbG9h
dCAhPSAibm9uZSI7CisgICAgfQorCisgICAgc3RhdGljIGlzRmxvYXRpbmdMZWZ0KGJveCkgewor
ICAgICAgICBsZXQgbm9kZSA9IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShub2RlKS5mbG9hdCA9PSAibGVmdCI7CisgICAgfQorCisgICAgc3RhdGlj
IG1hcFRvQ29udGFpbmVyKGJveCwgY29udGFpbmVyKSB7CisgICAgICAgIGxldCB0b3BMZWZ0ID0g
Ym94LnJlY3QoKS50b3BMZWZ0KCk7CisgICAgICAgIGxldCBhc2NlbmRhbnQgPSBib3gucGFyZW50
KCk7CisgICAgICAgIHdoaWxlIChhc2NlbmRhbnQgJiYgYXNjZW5kYW50ICE9IGNvbnRhaW5lcikg
eworICAgICAgICAgICAgdG9wTGVmdC5tb3ZlQnkoYXNjZW5kYW50LnJlY3QoKS50b3BMZWZ0KCkp
OworICAgICAgICAgICAgYXNjZW5kYW50ID0gYXNjZW5kYW50LnBhcmVudCgpOworICAgICAgICB9
CisgICAgICAgIEFTU0VSVChhc2NlbmRhbnQpOworICAgICAgICByZXR1cm4gbmV3IExheW91dFJl
Y3QodG9wTGVmdCwgYm94LnJlY3QoKS5zaXplKCkpOworICAgIH0KKworICAgIHN0YXRpYyBtYXBT
dGF0aWNUb0Fic29sdXRlKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMubWFwVG9Db250YWlu
ZXIoYm94LCBib3guY29udGFpbmluZ0Jsb2NrKCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb2xs
ZWN0T3V0T2ZGbG93RGVzY2VuZGFudHMoY29udGFpbnRCbG9jaykgeworICAgICAgICBsZXQgb3V0
T2ZGbG93Qm94ZXMgPSBuZXcgQXJyYXkoKTsKKyAgICAgICAgbGV0IGRlc2NlbmRhbnRzID0gbmV3
IEFycmF5KCk7CisgICAgICAgIGZvciAobGV0IGNoaWxkID0gY29udGFpbnRCbG9jay5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICBk
ZXNjZW5kYW50cy5wdXNoKGNoaWxkKTsKKyAgICAgICAgd2hpbGUgKGRlc2NlbmRhbnRzLmxlbmd0
aCkgeworICAgICAgICAgICAgbGV0IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50cy5wb3AoKTsKKyAg
ICAgICAgICAgIGlmIChkZXNjZW5kYW50LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIGRlc2Nl
bmRhbnQuY29udGFpbmluZ0Jsb2NrKCkgPT0gY29udGFpbnRCbG9jaykKKyAgICAgICAgICAgICAg
ICBvdXRPZkZsb3dCb3hlcy5wdXNoKGRlc2NlbmRhbnQpOworICAgICAgICAgICAgaWYgKCFkZXNj
ZW5kYW50LmlzQ29udGFpbmVyKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICBmb3IgKGxldCBjaGlsZCA9IGRlc2NlbmRhbnQubGFzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLnByZXZpb3VzU2libGluZygpKQorICAgICAgICAgICAgICAgIGRlc2NlbmRhbnRz
LnB1c2goY2hpbGQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXRPZkZsb3dCb3hlczsK
KyAgICB9CisKKyAgICBzdGF0aWMgbmV4dEJyZWFraW5nT3Bwb3J0dW5pdHkoaW5saW5lQm94LCBj
dXJyZW50UG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gd2luZG93Lm5leHRCcmVha2lu
Z09wcG9ydHVuaXR5KGlubGluZUJveC50ZXh0KCksIGN1cnJlbnRQb3NpdGlvbik7CisgICAgfQor
CisgICAgc3RhdGljIG1lYXN1cmVUZXh0KGlubGluZUJveCwgc3RhcnQsIGVuZCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBpbmxpbmVCb3gubm9kZSgpLm1lYXN1cmVUZXh0KHN0YXJ0LCBlbmQpOwor
ICAgIH0KKworICAgIC8vICJSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTMxN3gzNjZcbiBIVE1M
IFJlbmRlckJsb2NrIGF0ICgwLDApIHNpemUgMTMxN3gxMTZcbiAgQk9EWSBSZW5kZXJCb2R5IGF0
ICg4LDgpIHNpemUgMTMwMXgxMDBcbiAgIERJViBSZW5kZXJCbG9jayBhdCAoMCwwKSBzaXplIDEw
MHgxMDBcbiI7CisgICAgc3RhdGljIGxheW91dFRyZWVEdW1wKGluaXRpYWxDb250YWluaW5nQmxv
Y2spIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2R1bXBCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9j
aywgMSkgKyB0aGlzLl9kdW1wVHJlZShpbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAyKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgX2R1bXBCb3goYm94LCBsZXZlbCkgeworICAgICAgICAvLyBTa2lwIGFu
b255bW91cyBib3hlcyBmb3Igbm93IC1UaGlzIGlzIHRoZSBjYXNlIHdoZXJlIFdlYktpdCBkb2Vz
IG5vdCBnZW5lcmF0ZSBhbiBhbm9uIGlubGluZSBjb250YWluZXIgZm9yIHRleHQgY29udGVudCB3
aGVyZSB0aGUgdGV4dCBpcyBhIGRpcmVjdCBjaGlsZAorICAgICAgICAvLyBvZiBhIGJsb2NrIGNv
bnRhaW5lci4KKyAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBsZXQgaW5kZW50YXRpb24gPSAiICIucmVwZWF0KGxldmVsKTsKKyAgICAg
ICAgbGV0IGJveFJlY3QgPSBib3gucmVjdCgpOworICAgICAgICByZXR1cm4gaW5kZW50YXRpb24g
KyAoYm94Lm5vZGUoKS50YWdOYW1lID8gKGJveC5ub2RlKCkudGFnTmFtZSArICIgIikgOiAiIikg
ICsgYm94Lm5hbWUoKSArICIgYXQgKCIgKyBib3hSZWN0LmxlZnQoKSArICIsIiArIGJveFJlY3Qu
dG9wKCkgKyAiKSBzaXplICIgKyBib3hSZWN0LndpZHRoKCkgKyAieCIgKyBib3hSZWN0LmhlaWdo
dCgpICsgIlxuIjsKKyAgICB9CisKKyAgICBzdGF0aWMgX2R1bXBUcmVlKHJvb3QsIGxldmVsKSB7
CisgICAgICAgIGxldCBjb250ZW50ID0gIiI7CisgICAgICAgIGZvciAobGV0IGNoaWxkID0gcm9v
dC5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKCkpIHsKKyAg
ICAgICAgICAgIGNvbnRlbnQgKz0gdGhpcy5fZHVtcEJveChjaGlsZCwgbGV2ZWwpOworICAgICAg
ICAgICAgaWYgKGNoaWxkLmlzQ29udGFpbmVyKCkpCisgICAgICAgICAgICAgICAgY29udGVudCAr
PSB0aGlzLl9kdW1wVHJlZShjaGlsZCwgbGV2ZWwgKyAxLCBjb250ZW50KTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gY29udGVudDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2ggYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
NTU5MzQxMzU4ZjQ0OTkxYjczZTIzNDRmYjU4OGM4OTYwZTE1YjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoCkBA
IC0wLDAgKzEsNDgxIEBACitkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKK2luZGV4IGMzMTVlZTI1ZmMwLi42ODk4YjRkNTVh
MSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKK0BAIC0xMTAzLDcgKzExMDMsNyBAQAorICNpZiAhZGVmaW5lZChO
REVCVUcpCisgI2RlZmluZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMQorICNlbHNlCistI2RlZmlu
ZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMAorKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5H
IDEKKyAjZW5kaWYKKyAjZW5kaWYKKyAKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCitpbmRleCBhYjJhMTc4NTRjNS4uMDVkMWJjZWQx
ZjMgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAorKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKK0BAIC00MTAxLDYgKzQxMDEsMzYgQEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQp
IGMKKyAgICAgcmV0dXJuIHZhbHVlLT5jc3NUZXh0KCk7CisgfQorIAorK2Jvb2wgQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjppc1Byb3BlcnR5VmFsdWVJbml0aWFsKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKQorK3sKKysgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworKyAgICBhdXRvKiBzdHlsZSA9IG1fZWxlbWVu
dC0+Y29tcHV0ZWRTdHlsZShtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIpOworKyAgICBpZiAoIXN0
eWxlKQorKyAgICAgICAgcmV0dXJuIHRydWU7CisrCisrICAgIENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCA9IGNzc1Byb3BlcnR5SUQocHJvcGVydHlOYW1lKTsKKysgICAgaWYgKCFwcm9wZXJ0eUlE
KQorKyAgICAgICAgcmV0dXJuIHRydWU7CisrCisrICAgIHN3aXRjaCAocHJvcGVydHlJRCkgewor
KyAgICBjYXNlIENTU1Byb3BlcnR5TGVmdDoKKysgICAgICAgIHJldHVybiBzdHlsZS0+bGVmdCgp
LmlzQXV0bygpOworKyAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6CisrICAgICAgICByZXR1cm4g
c3R5bGUtPnJpZ2h0KCkuaXNBdXRvKCk7CisrICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6CisrICAg
ICAgICByZXR1cm4gc3R5bGUtPnRvcCgpLmlzQXV0bygpOworKyAgICBjYXNlIENTU1Byb3BlcnR5
Qm90dG9tOgorKyAgICAgICAgcmV0dXJuIHN0eWxlLT5ib3R0b20oKS5pc0F1dG8oKTsKKysgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdpZHRoOgorKyAgICAgICAgcmV0dXJuIHN0eWxlLT53aWR0aCgpLmlz
QXV0bygpOworKyAgICBjYXNlIENTU1Byb3BlcnR5SGVpZ2h0OgorKyAgICAgICAgcmV0dXJuIHN0
eWxlLT5oZWlnaHQoKS5pc0F1dG8oKTsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworKyAgICB9CisrICAgIHJldHVybiBmYWxzZTsKKyt9CisrCisgdW5zaWdu
ZWQgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAorIHsKKyAgICAg
dXBkYXRlU3R5bGVJZk5lZWRlZEZvclByb3BlcnR5KG1fZWxlbWVudC5nZXQoKSwgQ1NTUHJvcGVy
dHlDdXN0b20pOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uaAoraW5kZXggMzlhZTZjMzBkN2UuLmEzYjZmNDY5N2JkIDEwMDY0NAorLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCisrKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKK0BAIC0xMjMs
NiArMTIzLDcgQEAgcHJpdmF0ZToKKyAgICAgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0IGZpbmFsOworICAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByb3BlcnR5
Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgICBTdHJpbmcg
Z2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisrICAg
IGJvb2wgaXNQcm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkg
ZmluYWw7CisgICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lKSBmaW5hbDsKKyAgICAgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICAgYm9vbCBpc1Byb3BlcnR5SW1wbGlj
aXQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCitpbmRleCBiMThjOWNlMzI3NC4uNGRmYjZiOTM2ZjggMTAw
NjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCitAQCAtNTQsNiArNTQs
NyBAQCBwdWJsaWM6CisgICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0ID0gMDsKKyAgICAgdmlydHVhbCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFBy
b3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0gMDsKKyAgICAgdmly
dHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkg
PSAwOworKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgPSAwOworICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVBy
aW9yaXR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7CisgICAgIHZpcnR1YWwgU3Ry
aW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7
CisgICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5SW1wbGljaXQoY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUpID0gMDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5p
ZGwKK2luZGV4IDAzNWNiNjI0NWQ5Li5jNjIyMzEzZGIzYiAxMDA2NDQKKy0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAorKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCitAQCAtMzAsNiArMzAsOCBAQAorIAorICAgICBE
T01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKyAKKysg
ICAgYm9vbGVhbiBpc1Byb3BlcnR5VmFsdWVJbml0aWFsKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUp
OworKworICAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVt
b3ZlUHJvcGVydHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAgIERPTVN0cmluZz8gZ2V0
UHJvcGVydHlQcmlvcml0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKyAKK2RpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCitp
bmRleCAwODRjYmNhMDRlYy4uNGZjNTg5MjI2Y2YgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKK0BAIC0xOTYsNiAr
MTk2LDExIEBAIFN0cmluZyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hCisgICAgIHJldHVybiBnZXRQcm9wZXJ0
eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCk7CisgfQorIAorK2Jvb2wgUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uOjppc1Byb3BlcnR5VmFsdWVJbml0aWFsKGNvbnN0IFN0cmluZyYpCisr
eworKyAgICByZXR1cm4gZmFsc2U7CisrfQorKworIFN0cmluZyBQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpCisgeworICAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkKK2Rp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9u
LmgKK2luZGV4IDA0MTk2NDA1ZGRmLi41OTk4MTIwNWNhZSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAorKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCitAQCAtNjgsNiAr
NjgsNyBAQCBwcml2YXRlOgorICAgICBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qg
ZmluYWw7CisgICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gZ2V0UHJvcGVydHlDU1NW
YWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisgICAgIFN0cmluZyBnZXRQ
cm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKysgICAgYm9v
bCBpc1Byb3BlcnR5VmFsdWVJbml0aWFsKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5h
bDsKKyAgICAgU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0
eU5hbWUpIGZpbmFsOworICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgICBib29sIGlzUHJvcGVydHlJbXBsaWNpdChj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCitpbmRleCA0
OGYzMTYxYTlhYy4uMGUwMWQyYTczZjAgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorQEAgLTUxNCw2ICs1
MTQsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6YmVmb3JlKFZlY3RvcjxOb2RlT3JTdHJp
bmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yKQorICAgICByZXR1cm4gcGFyZW50LT5pbnNlcnRCZWZv
cmUoKm5vZGUsIHZpYWJsZVByZXZpb3VzU2libGluZy5nZXQoKSk7CisgfQorIAorK2ludCBOb2Rl
OjpyZW5kZXJlcklkKCkKKyt7CisrICAgIGlmICghcmVuZGVyZXIoKSkKKysgICAgICAgIHJldHVy
biAwOworKyAgICByZXR1cm4gcmVuZGVyZXIoKS0+cmVuZGVySWQoKTsKKyt9CisrCisrZG91Ymxl
IE5vZGU6OnRleHRXaWR0aChpbnQgc3RhcnQsIGludCBlbmQpCisreworKyAgICBpZiAoIXJlbmRl
cmVyKCkpCisrICAgICAgICByZXR1cm4gMDsKKysgICAgcmV0dXJuIHJlbmRlcmVyKCktPm1lYXN1
cmVUZXh0KHN0YXJ0LCBlbmQpOworK30KKysKKyBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjphZnRl
cihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvcikKKyB7CisgICAgIFJl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7CitkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKK2lu
ZGV4IGViODU3ZmViOWFjLi42ZjBiNzVkNTE4ZCAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKK0BAIC0xNzgsNyAr
MTc4LDEwIEBAIHB1YmxpYzoKKyAKKyAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRleHRDb250
ZW50KGJvb2wgY29udmVydEJSc1RvTmV3bGluZXMgPSBmYWxzZSkgY29uc3Q7CisgICAgIFdFQkNP
UkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYp
OworLSAgICAKKysKKysgICAgaW50IHJlbmRlcmVySWQoKTsKKysgICAgZG91YmxlIHRleHRXaWR0
aChpbnQgc3RhcnQsIGludCBlbmQpOworKworICAgICBOb2RlKiBsYXN0RGVzY2VuZGFudCgpIGNv
bnN0OworICAgICBOb2RlKiBmaXJzdERlc2NlbmRhbnQoKSBjb25zdDsKKyAKK2RpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5p
ZGwKK2luZGV4IDI1MTc3YThjZDQzLi42MjM1YmI2NTRiNSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmlkbAorKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCitA
QCAtNzMsNiArNzMsOSBAQAorICAgICB1bnNpZ25lZCBzaG9ydCBjb21wYXJlRG9jdW1lbnRQb3Np
dGlvbihOb2RlIG90aGVyKTsKKyAgICAgYm9vbGVhbiBjb250YWlucyhOb2RlPyBvdGhlcik7Cisg
CisrICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJlbmRlcmVySWQ7CisrICAgIGRvdWJsZSB0
ZXh0V2lkdGgobG9uZyBzdGFydCwgbG9uZyBlbmQpOworKworICAgICBET01TdHJpbmc/IGxvb2t1
cFByZWZpeChET01TdHJpbmc/IG5hbWVzcGFjZVVSSSk7CisgICAgIERPTVN0cmluZz8gbG9va3Vw
TmFtZXNwYWNlVVJJKERPTVN0cmluZz8gcHJlZml4KTsKKyAgICAgYm9vbGVhbiBpc0RlZmF1bHRO
YW1lc3BhY2UoRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkkpOworZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAoraW5kZXggZjFkMTk4NWQxMDQuLmY1YTAxMDc1YmVhIDEwMDY0NAorLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKK0BAIC03Nyw2ICs3Nyw3IEBACisgI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xp
ZW50LmgiCisgI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKKyAjaW5jbHVkZSAiUGVy
Zm9ybWFuY2UuaCIKKysjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorICNpbmNsdWRlICJSZXF1ZXN0
QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIgorICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJbmZvLmgi
CisgI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorQEAgLTEzNjcsNiArMTM2
OCwyMyBAQCBTdHJpbmcgRE9NV2luZG93OjpuYW1lKCkgY29uc3QKKyAgICAgcmV0dXJuIG1fZnJh
bWUtPnRyZWUoKS5uYW1lKCk7CisgfQorIAorK1N0cmluZyBET01XaW5kb3c6OnNpbXBsaWZpZWRS
ZW5kZXJUcmVlKCkgY29uc3QKKyt7CisrICAgIHJldHVybiBtX2ZyYW1lLT52aWV3KCktPnJlbmRl
clZpZXcoKS0+c2ltcGxpZmllZFJlbmRlclRyZWUoKTsKKyt9CisrCisrU3RyaW5nIERPTVdpbmRv
dzo6cmVuZGVyVHJlZVN0cnVjdHVyZSgpIGNvbnN0CisreworKyAgICByZXR1cm4gbV9mcmFtZS0+
dmlldygpLT5yZW5kZXJWaWV3KCktPnJlbmRlclRyZWVTdHJ1Y3R1cmUoKTsKKyt9CisrCisraW50
IERPTVdpbmRvdzo6bmV4dEJyZWFraW5nT3Bwb3J0dW5pdHkoY29uc3QgU3RyaW5nJiB0ZXh0LCB1
bnNpZ25lZCBzdGFydFBvc2l0aW9uKQorK3sKKysgICAgaWYgKHN0YXJ0UG9zaXRpb24gPj0gdGV4
dC5sZW5ndGgoKSAtIDEpCisrICAgICAgICByZXR1cm4gc3RhcnRQb3NpdGlvbjsKKysgICAgcmV0
dXJuIHN0YXJ0UG9zaXRpb24gKyAxOworK30KKysKKyB2b2lkIERPTVdpbmRvdzo6c2V0TmFtZShj
b25zdCBTdHJpbmcmIHN0cmluZykKKyB7CisgICAgIGlmICghbV9mcmFtZSkKK2RpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAoraW5kZXggNzc0OGVmYWY4NGIuLmE2ODYzYTMyNzRhIDEwMDY0NAorLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAorQEAgLTE5MSw2ICsxOTEsMTAgQEAgcHVibGljOgorICAgICBTdHJpbmcg
ZGVmYXVsdFN0YXR1cygpIGNvbnN0OworICAgICB2b2lkIHNldERlZmF1bHRTdGF0dXMoY29uc3Qg
U3RyaW5nJik7CisgCisrICAgIFN0cmluZyBzaW1wbGlmaWVkUmVuZGVyVHJlZSgpIGNvbnN0Owor
KyAgICBTdHJpbmcgcmVuZGVyVHJlZVN0cnVjdHVyZSgpIGNvbnN0OworKyAgICBpbnQgbmV4dEJy
ZWFraW5nT3Bwb3J0dW5pdHkoY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBzdGFydFBvc2l0
aW9uKTsKKysKKyAgICAgLy8gU2VsZi1yZWZlcmVudGlhbCBhdHRyaWJ1dGVzCisgCisgICAgIERP
TVdpbmRvdyogc2VsZigpIGNvbnN0OworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAoraW5kZXgg
ODAxYTBmYjNiYjMuLmQwMWUxYmY0YTZkIDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
K0BAIC04Miw2ICs4MiwxMCBAQCB0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKyAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CisgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7CisgCisrICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2ltcGxpZmllZFJlbmRlclRyZWU7CisrICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVuZGVyVHJlZVN0cnVjdHVyZTsKKysgICAgbG9u
ZyBuZXh0QnJlYWtpbmdPcHBvcnR1bml0eShET01TdHJpbmcgdGV4dCwgdW5zaWduZWQgbG9uZyBz
dGFydFBvc2l0aW9uKTsKKysKKyAgICAgLy8gVXNlciBwcm9tcHRzLgorICAgICB2b2lkIGFsZXJ0
KCk7CisgICAgIHZvaWQgYWxlcnQoRE9NU3RyaW5nIG1lc3NhZ2UpOworZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9QYWdlTWFjLm1tCitpbmRleCA0ODA3ZTdiNjFkMS4uZjU5MTZjMTE1MDIgMTAwNjQ0CistLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCisrKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9QYWdlTWFjLm1tCitAQCAtNTIsMTEgKzUyLDYgQEAgdm9pZCBQYWdlOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQorICNlbmRpZgorIAorICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcp
CistICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKy0gICAgc3RkOjpjYWxsX29u
Y2Uob25jZUZsYWcsIFtdIHsKKy0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygi
Y29tLmFwcGxlLldlYktpdC5zaG93UmVuZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZvckxpdmVE
b2N1bWVudHMpOworLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBw
bGUuV2ViS2l0LnNob3dMYXllclRyZWUiLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMp
OworLSAgICB9KTsKKyAjZW5kaWYKKyB9CisgCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAoraW5kZXggY2FjMDU1MTY0NmIuLjY4ZjVjMzE3MjYwIDEwMDY0NAorLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCitAQCAtMTA3LDcgKzEwNyw3IEBA
IHN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyT2JqZWN0IHsKKyAgICAgdW5zaWduZWQgbV9iaXRmaWVs
ZHM7CisgfTsKKyAKKy1DT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyT2JqZWN0KSA9PSBzaXpl
b2YoU2FtZVNpemVBc1JlbmRlck9iamVjdCksIFJlbmRlck9iamVjdF9zaG91bGRfc3RheV9zbWFs
bCk7CisrQ09NUElMRV9BU1NFUlQodHJ1ZSB8fCBzaXplb2YoUmVuZGVyT2JqZWN0KSA9PSBzaXpl
b2YoU2FtZVNpemVBc1JlbmRlck9iamVjdCksIFJlbmRlck9iamVjdF9zaG91bGRfc3RheV9zbWFs
bCk7CisgCisgREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3Vu
dGVyLCByZW5kZXJPYmplY3RDb3VudGVyLCAoIlJlbmRlck9iamVjdCIpKTsKKyAKK0BAIC0xMjgs
NiArMTI4LDggQEAgUmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSYgbm9kZSkKKyAjZW5k
aWYKKyAgICAgLCBtX2JpdGZpZWxkcyhub2RlKQorIHsKKysgICAgc3RhdGljIGludCByZW5kZXJJ
RCA9IDA7CisrICAgIG1fcmVuZGVySWQgPSArK3JlbmRlcklEOworICAgICBpZiAoUmVuZGVyVmll
dyogcmVuZGVyVmlldyA9IG5vZGUuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpCisgICAgICAgICBy
ZW5kZXJWaWV3LT5kaWRDcmVhdGVSZW5kZXJlcigpOworICNpZm5kZWYgTkRFQlVHCitAQCAtMTE5
NywxNCArMTE5OSw3OCBAQCB2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2JqZWN0KFRl
eHRTdHJlYW0mIHN0cmVhbSwgYm9vbCBtYXJrLCBpbnQgZGVwdGgpCisgICAgIHN0cmVhbS5uZXh0
TGluZSgpOworIH0KKyAKKy12b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyU3ViVHJlZUFu
ZE1hcmsoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBSZW5kZXJPYmplY3QqIG1hcmtlZE9iamVj
dCwgaW50IGRlcHRoKSBjb25zdAorKworK3ZvaWQgUmVuZGVyT2JqZWN0OjpyZW5kZXJTdWJ0cmVl
U3RydWN0dXJlKFRleHRTdHJlYW0mIHN0cmVhbSkgY29uc3QKKyt7CisrICAgIG91dHB1dFJlbmRl
ck9iamVjdFN0cnVjdHVyZShzdHJlYW0pOworKyAgICBmb3IgKGF1dG8qIGNoaWxkID0gZmlyc3RD
aGlsZFNsb3coKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisrICAgICAg
ICBjaGlsZC0+cmVuZGVyU3VidHJlZVN0cnVjdHVyZShzdHJlYW0pOworK30KKysKKysvLyAxKClS
ZW5kZXJWaWV3fDIoMSlSZW5kZXJCbG9ja3wzKDIpUmVuZGVyQm9keXw0KDMpUmVuZGVyQmxvY2t8
NSgzKUFub255bW91c1JlbmRlckJsb2NrfAorK3ZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5k
ZXJPYmplY3RTdHJ1Y3R1cmUoV1RGOjpUZXh0U3RyZWFtJiBzdHJlYW0pIGNvbnN0CisgeworLSAg
ICBvdXRwdXRSZW5kZXJPYmplY3Qoc3RyZWFtLCBtYXJrZWRPYmplY3QgPT0gdGhpcywgZGVwdGgp
OworLSAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93PigqdGhpcykpCistICAgICAgICBkb3duY2Fz
dDxSZW5kZXJCbG9ja0Zsb3c+KCp0aGlzKS5vdXRwdXRMaW5lVHJlZUFuZE1hcmsoc3RyZWFtLCBu
dWxscHRyLCBkZXB0aCArIDEpOworKyAgICBzdHJlYW0gPDwgcmVuZGVySWQoKTsKKysgICAgaWYg
KHBhcmVudCgpKQorKyAgICAgICAgc3RyZWFtIDw8ICIoIiA8PCBwYXJlbnQoKS0+cmVuZGVySWQo
KSA8PCAiKSI7CisrICAgIGVsc2UKKysgICAgICAgIHN0cmVhbSA8PCAiKCkiOworKworKyAgICBT
dHJpbmcgbmFtZSA9IHJlbmRlck5hbWUoKTsKKysgICAgLy8gRklYTUU6IFJlbmRlcmVyJ3MgbmFt
ZSBzaG91bGQgbm90IGluY2x1ZGUgcHJvcGVydHkgdmFsdWUgbGlzdGluZy4KKysgICAgaW50IHBv
cyA9IG5hbWUuZmluZCgnKCcpOworKyAgICBpZiAoaXNBbm9ueW1vdXMoKSkKKysgICAgICAgIHN0
cmVhbSA8PCAiQW5vbnltb3VzIjsKKysgICAgaWYgKHBvcyA+IDApCisrICAgICAgICBzdHJlYW0g
PDwgbmFtZS5sZWZ0KHBvcyAtIDEpLnV0ZjgoKS5kYXRhKCk7CisrICAgIGVsc2UKKysgICAgICAg
IHN0cmVhbSA8PCBuYW1lLnV0ZjgoKS5kYXRhKCk7CisrICAgIHN0cmVhbSA8PCAifCI7CisrfQor
IAorK3ZvaWQgUmVuZGVyT2JqZWN0OjpzaW1wbGlmaWVkUmVuZGVyU3VidHJlZShUZXh0U3RyZWFt
JiBzdHJlYW0sIGludCBkZXB0aCkgY29uc3QKKyt7CisrICAgIG91dHB1dFNpbXBsaWZpZWRSZW5k
ZXJPYmplY3Qoc3RyZWFtLCBkZXB0aCk7CisgICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENo
aWxkU2xvdygpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKy0gICAgICAg
IGNoaWxkLT5vdXRwdXRSZW5kZXJTdWJUcmVlQW5kTWFyayhzdHJlYW0sIG1hcmtlZE9iamVjdCwg
ZGVwdGggKyAxKTsKKysgICAgICAgIGNoaWxkLT5zaW1wbGlmaWVkUmVuZGVyU3VidHJlZShzdHJl
YW0sIGRlcHRoICsgMSk7CisrfQorKworK3ZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRTaW1wbGlm
aWVkUmVuZGVyT2JqZWN0KFdURjo6VGV4dFN0cmVhbSYgc3RyZWFtLCBpbnQgZGVwdGgpIGNvbnN0
CisreworKyAgICAgaW50IHByaW50ZWRDaGFyYWN0ZXJzID0gMDsKKysKKysgICAgd2hpbGUgKCsr
cHJpbnRlZENoYXJhY3RlcnMgPD0gZGVwdGgpCisrICAgICAgICAgc3RyZWFtIDw8ICIgIjsKKysK
KysgICAgIGlmIChub2RlKCkpCisrICAgICAgICBzdHJlYW0gPDwgbm9kZSgpLT5ub2RlTmFtZSgp
LnV0ZjgoKS5kYXRhKCkgPDwgIiAiOworKworKyAgICBTdHJpbmcgbmFtZSA9IHJlbmRlck5hbWUo
KTsKKysgICAgLy8gRklYTUU6IFJlbmRlcmVyJ3MgbmFtZSBzaG91bGQgbm90IGluY2x1ZGUgcHJv
cGVydHkgdmFsdWUgbGlzdGluZy4KKysgICAgaW50IHBvcyA9IG5hbWUuZmluZCgnKCcpOworKyAg
ICBpZiAocG9zID4gMCkKKysgICAgICAgIHN0cmVhbSA8PCBuYW1lLmxlZnQocG9zIC0gMSkudXRm
OCgpLmRhdGEoKTsKKysgICAgZWxzZQorKyAgICAgICAgc3RyZWFtIDw8IG5hbWUudXRmOCgpLmRh
dGEoKTsKKysKKysgICAgaWYgKGlzPFJlbmRlckJveD4oKnRoaXMpKSB7CisrICAgICAgICBhdXRv
JiByZW5kZXJCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KCp0aGlzKTsKKysgICAgICAgIEZsb2F0
UmVjdCBib3hSZWN0ID0gcmVuZGVyQm94LmZyYW1lUmVjdCgpOworKyAgICAgICAgaWYgKHJlbmRl
ckJveC5pc0luRmxvd1Bvc2l0aW9uZWQoKSkKKysgICAgICAgICAgICBib3hSZWN0Lm1vdmUocmVu
ZGVyQm94Lm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOworKyAgICAgICAgc3RyZWFtIDw8ICIg
IiA8PCBib3hSZWN0OworKyAgICB9IGVsc2UgaWYgKGlzPFJlbmRlcklubGluZT4oKnRoaXMpICYm
IGlzSW5GbG93UG9zaXRpb25lZCgpKSB7CisrICAgICAgICBGbG9hdFNpemUgaW5saW5lT2Zmc2V0
ID0gZG93bmNhc3Q8UmVuZGVySW5saW5lPigqdGhpcykub2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24o
KTsKKysgICAgICAgIHN0cmVhbSA8PCAiICAoIiA8PCBpbmxpbmVPZmZzZXQud2lkdGgoKSA8PCAi
LCAiIDw8IGlubGluZU9mZnNldC5oZWlnaHQoKSA8PCAiKSI7CisrICAgIH0KKysKKysgICAgIGlm
IChpczxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnRoaXMpKSB7CisrICAgICAgICAgYXV0byYgcmVu
ZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnRoaXMpOworKyAgICAgICAg
IGlmIChyZW5kZXJlci5jb250aW51YXRpb24oKSkKKysgICAgICAgICAgICAgc3RyZWFtIDw8ICIg
Y29udGludWF0aW9uLT4oIiA8PCByZW5kZXJlci5jb250aW51YXRpb24oKSA8PCAiKSI7CisrICAg
ICB9CisrICAgICBvdXRwdXRSZWdpb25zSW5mb3JtYXRpb24oc3RyZWFtKTsKKysgICAgIHN0cmVh
bS5uZXh0TGluZSgpOworIH0KKyAKKyAjZW5kaWYgLy8gTkRFQlVHCitkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCitpbmRleCBmYzA0N2M1YzE0ZC4uODU0ZGNjZjc3NzggMTAw
NjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorQEAgLTExMiw2ICsxMTIs
OSBAQCBwdWJsaWM6CisgCisgICAgIGF1dG8mIHdlYWtQdHJGYWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV93ZWFrRmFjdG9yeTsgfQorIAorKyAgICBpbnQgcmVuZGVySWQoKSBjb25zdCB7IHJldHVy
biBtX3JlbmRlcklkOyB9CisrICAgIHZpcnR1YWwgZmxvYXQgbWVhc3VyZVRleHQoaW50LCBpbnQp
IGNvbnN0IHsgcmV0dXJuIC0xOyB9CisrCisgICAgIFJlbmRlclRoZW1lJiB0aGVtZSgpIGNvbnN0
OworIAorICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CitA
QCAtMjAyLDEwICsyMDUsMTYgQEAgcHVibGljOgorICAgICB2b2lkIHNob3dOb2RlVHJlZUZvclRo
aXMoKSBjb25zdDsKKyAgICAgdm9pZCBzaG93UmVuZGVyVHJlZUZvclRoaXMoKSBjb25zdDsKKyAg
ICAgdm9pZCBzaG93TGluZVRyZWVGb3JUaGlzKCkgY29uc3Q7CisrICAgIHZvaWQgc2ltcGxpZmll
ZFJlbmRlclN1YnRyZWUoVGV4dFN0cmVhbSYgc3RyZWFtLCBpbnQgZGVwdGgpIGNvbnN0OworKyAg
ICB2b2lkIHJlbmRlclN1YnRyZWVTdHJ1Y3R1cmUoVGV4dFN0cmVhbSYgc3RyZWFtKSBjb25zdDsK
KyAKKyAgICAgdm9pZCBvdXRwdXRSZW5kZXJPYmplY3QoV1RGOjpUZXh0U3RyZWFtJiwgYm9vbCBt
YXJrLCBpbnQgZGVwdGgpIGNvbnN0OworICAgICB2b2lkIG91dHB1dFJlbmRlclN1YlRyZWVBbmRN
YXJrKFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCogbWFya2VkT2JqZWN0LCBp
bnQgZGVwdGgpIGNvbnN0OworKyAgICB2b2lkIG91dHB1dFJlbmRlclN1YlRyZWVBbmRNYXJrU3Ry
dWN0dXJlKFdURjo6VGV4dFN0cmVhbSYpIGNvbnN0OworICAgICB2b2lkIG91dHB1dFJlZ2lvbnNJ
bmZvcm1hdGlvbihXVEY6OlRleHRTdHJlYW0mKSBjb25zdDsKKysKKysgICAgdm9pZCBvdXRwdXRT
aW1wbGlmaWVkUmVuZGVyT2JqZWN0KFdURjo6VGV4dFN0cmVhbSYsIGludCBkZXB0aCkgY29uc3Q7
CisrICAgIHZvaWQgb3V0cHV0UmVuZGVyT2JqZWN0U3RydWN0dXJlKFdURjo6VGV4dFN0cmVhbSYp
IGNvbnN0OworICNlbmRpZgorIAorICAgICBib29sIGlzUHNldWRvRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG5vZGUoKSAmJiBub2RlKCktPmlzUHNldWRvRWxlbWVudCgpOyB9CitAQCAtODI4LDYg
KzgzNyw3IEBAIHByaXZhdGU6CisgI2VuZGlmCisgCisgICAgIE5vZGUmIG1fbm9kZTsKKysgICAg
aW50IG1fcmVuZGVySWQgeyAwIH07CisgCisgICAgIFJlbmRlckVsZW1lbnQqIG1fcGFyZW50Owor
ICAgICBSZW5kZXJPYmplY3QqIG1fcHJldmlvdXM7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwCitpbmRleCA2YWUwNDdjNDY5Zi4uM2E5ZjQ4MzkzNTIgMTAwNjQ0CistLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorQEAgLTIyOCw2ICsyMjgsMTEgQEAgVGV4
dCogUmVuZGVyVGV4dDo6dGV4dE5vZGUoKSBjb25zdAorICAgICByZXR1cm4gZG93bmNhc3Q8VGV4
dD4oUmVuZGVyT2JqZWN0Ojpub2RlKCkpOworIH0KKyAKKytmbG9hdCBSZW5kZXJUZXh0OjptZWFz
dXJlVGV4dChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CisreworKyAgICByZXR1cm4gd2lkdGgo
c3RhcnQsIGVuZCwgMCk7CisrfQorKworIGJvb2wgUmVuZGVyVGV4dDo6aXNUZXh0RnJhZ21lbnQo
KSBjb25zdAorIHsKKyAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5oCitpbmRleCBmNDYyOTBmNWRlYS4uNzFiNzI3NDc2OTkgMTAwNjQ0CistLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCitAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CisgCisg
ICAgIFdFQkNPUkVfRVhQT1JUIFRleHQqIHRleHROb2RlKCkgY29uc3Q7CisgCisrICAgIGZsb2F0
IG1lYXN1cmVUZXh0KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgZmluYWw7CisrCisgICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRGcmFnbWVudCgpIGNvbnN0OworIAorICAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUoKSBjb25zdDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKK2luZGV4IDY3OTU5YWU3MTFmLi4zNDdhNTFmODcwMyAxMDA2NDQKKy0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCitAQCAtOTU2LDQgKzk1NiwxOSBAQCB2b2lkIFJlbmRlclZp
ZXc6OnVucmVnaXN0ZXJCb3hXaXRoU2Nyb2xsU25hcFBvc2l0aW9ucyhjb25zdCBSZW5kZXJCb3gm
IGJveCkKKyB9CisgI2VuZGlmCisgCisrU3RyaW5nIFJlbmRlclZpZXc6OnNpbXBsaWZpZWRSZW5k
ZXJUcmVlKCkgY29uc3QKKyt7CisrICAgIFRleHRTdHJlYW0gc3RyZWFtKFRleHRTdHJlYW06Okxp
bmVNb2RlOjpNdWx0aXBsZUxpbmUsIFRleHRTdHJlYW06OkZvcm1hdHRpbmc6OlNWR1N0eWxlUmVj
dCk7CisrICAgIHNpbXBsaWZpZWRSZW5kZXJTdWJ0cmVlKHN0cmVhbSwgMSk7CisrICAgIHJldHVy
biBzdHJlYW0ucmVsZWFzZSgpOworK30KKysKKytTdHJpbmcgUmVuZGVyVmlldzo6cmVuZGVyVHJl
ZVN0cnVjdHVyZSgpIGNvbnN0CisreworKyAgICBUZXh0U3RyZWFtIHN0cmVhbShUZXh0U3RyZWFt
OjpMaW5lTW9kZTo6TXVsdGlwbGVMaW5lLCBUZXh0U3RyZWFtOjpGb3JtYXR0aW5nOjpTVkdTdHls
ZVJlY3QpOworKyAgICByZW5kZXJTdWJ0cmVlU3RydWN0dXJlKHN0cmVhbSk7CisrICAgIHJldHVy
biBzdHJlYW0ucmVsZWFzZSgpOworK30KKysKKysKKyB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCitk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKK2luZGV4IDljNWJiOTg5NWM1Li40YmVh
NWUzNjMwYiAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKK0BAIC0xOTgs
NiArMTk4LDkgQEAgcHVibGljOgorICAgICBib29sIGluSGl0VGVzdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1faW5IaXRUZXN0aW5nOyB9CisgI2VuZGlmCisgCisrICAgIFN0cmluZyBzaW1wbGlmaWVk
UmVuZGVyVHJlZSgpIGNvbnN0OworKyAgICBTdHJpbmcgcmVuZGVyVHJlZVN0cnVjdHVyZSgpIGNv
bnN0OworKworIHByb3RlY3RlZDoKKyAgICAgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlOwor
ICAgICBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAm
KSBjb25zdCBvdmVycmlkZTsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGlu
ZUxheW91dC5jcHAKK2luZGV4IDg3NzdkYzA5OWI4Li43MDJmY2M2MzRmNCAxMDA2NDQKKy0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAorKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCitAQCAtMzUxLDcgKzM1
MSw3IEBAIEF2b2lkYW5jZVJlYXNvbkZsYWdzIGNhblVzZUZvcldpdGhSZWFzb24oY29uc3QgUmVu
ZGVyQmxvY2tGbG93JiBmbG93LCBJbmNsdWRlUmVhCisgCisgYm9vbCBjYW5Vc2VGb3IoY29uc3Qg
UmVuZGVyQmxvY2tGbG93JiBmbG93KQorIHsKKy0gICAgcmV0dXJuIGNhblVzZUZvcldpdGhSZWFz
b24oZmxvdywgSW5jbHVkZVJlYXNvbnM6OkZpcnN0KSA9PSBOb1JlYXNvbjsKKysgICAgcmV0dXJu
IGZhbHNlICYmIGNhblVzZUZvcldpdGhSZWFzb24oZmxvdywgSW5jbHVkZVJlYXNvbnM6OkZpcnN0
KSA9PSBOb1JlYXNvbjsKKyB9CisgCisgc3RhdGljIGZsb2F0IGNvbXB1dGVMaW5lTGVmdChFVGV4
dEFsaWduIHRleHRBbGlnbiwgZmxvYXQgYXZhaWxhYmxlV2lkdGgsIGZsb2F0IGNvbW1pdHRlZFdp
ZHRoLCBmbG9hdCBsb2dpY2FsTGVmdE9mZnNldCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJl
bG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0Jsb2NrQ29udGFpbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZiMDg4ZWIyMGQ4
Zjk1MWM4M2M3NzU2MTUwMDRjYWU4NjcxYmYxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3Bh
Y2UgTGF5b3V0UmVsb2FkZWQgeworCisjaW5jbHVkZSAiQ29udGFpbmVyLmgiCisKK2NsYXNzIEJs
b2NrQ29udGFpbmVyIDogcHVibGljIENvbnRhaW5lciB7CitwdWJsaWM6CisgICAgQmxvY2tDb250
YWluZXIoTm9kZSosIHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7CisgICAgdmlydHVhbCB+Qmxv
Y2tDb250YWluZXIoKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVk
L21pc2MvaGVhZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC9taXNjL2hlYWRlcnMvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRl
ODlmNzZkMTYxYjkwYTM1MzRmNDZmNTk5ZTcyYjU0ZGY2ZTA1N2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIExh
eW91dFJlbG9hZGVkIHsKKworY2xhc3MgQmxvY2tDb250YWluZXI7CitjbGFzcyBCb3g7CitjbGFz
cyBGbG9hdGluZ0NvbnRleHQ7CitjbGFzcyBMYXlvdXRDb250ZXh0OworCitjbGFzcyBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0IDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KEJsb2NrQ29udGFpbmVyJiByb290KTsKKyAgICB2aXJ0
dWFsIH5CbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7CisKKyAgICB2b2lkIGxheW91dChMYXlvdXRD
b250ZXh0JikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgTGF5b3V0VW5pdCBjb21wdXRlV2lkdGgo
Y29uc3QgQm94JikgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlSGVpZ2h0KGNv
bnN0IEJveCYpIGNvbnN0IGZpbmFsOworCisgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoY29uc3Qg
Qm94JikgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94
JikgY29uc3QgZmluYWw7CisKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVPdXRPZkZsb3dXaWR0aChj
b25zdCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVGbG9hdGluZ1dpZHRoKGNv
bnN0IEJveCYpIGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUluRmxvd1dpZHRoKGNvbnN0
IEJveCYpIGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUluRmxvd0hlaWdodChjb25zdCBC
b3gmKSBjb25zdDsKKworICAgIExheW91dFVuaXQgY29tcHV0ZU91dE9mRmxvd0hlaWdodChjb25z
dCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVGbG9hdGluZ0hlaWdodChjb25z
dCBCb3gmKSBjb25zdDsKKworICAgIExheW91dFVuaXQgY29tcHV0ZUhvcml6b250YWxDb25zdHJh
aW50KGNvbnN0IEJveCYpIGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRlbnRIZWln
aHQoY29uc3QgQm94JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9u
ZWRDaGlsZHJlbihCbG9ja0NvbnRhaW5lciYpOworICAgIHZvaWQgcGxhY2VPdXRPZkZsb3dEZXNj
ZW5kYW50cyhCbG9ja0NvbnRhaW5lciYpOworCisgICAgTGF5b3V0VW5pdCBjb21wdXRlU3RhdGlj
UG9zaXRpb24oY29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgY29tcHV0ZUluRmxv
d1Bvc2l0aW9uZWRQb3NpdGlvbihjb25zdCBCb3gmKTsKKyAgICBMYXlvdXRQb2ludCBjb21wdXRl
T3V0T2ZGbG93UG9zaXRpb24oY29uc3QgQm94Jik7CisgICAgCisgICAgTGF5b3V0VW5pdCBzaHJp
bmtUb0ZpdFdpZHRoKGNvbnN0IEJveCYpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaCBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxhcHNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDY5NDQ0Y2MyMTJhMGFmZjM2NmI0YTc4ZGFhNWNkZTk5MWZhMmRkZQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxh
cHNlLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTIGNvbnN0OyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFMgY29uc3Q7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKK2Ns
YXNzIEJveDsKKworY2xhc3MgQmxvY2tNYXJnaW5Db2xsYXBzZSB7CitwdWJsaWM6CisgICAgQmxv
Y2tNYXJnaW5Db2xsYXBzZSgpIGNvbnN0OworCisgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoY29u
c3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94Jikg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgdm9pZCBpc01hcmdpblRvcENvbGxhcHNlZFdpdGhTaWJs
aW5nKGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZvaWQgaXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRX
aXRoU2libGluZyhjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGlzTWFyZ2luVG9w
Q29sbGFwc2VkV2l0aFBhcmVudChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lkIGlzTWFyZ2lu
Qm90dG9tQ29sbGFwc2VkV2l0aFBhcmVudChjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2
b2lkIG5vbkNvbGxhcHNlZE1hcmdpblRvcChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lkIG5v
bkNvbGxhcHNlZE1hcmdpbkJvdHRvbShjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2b2lk
IGNvbGxhcHNlZE1hcmdpblRvcEZyb21GaXJzdENoaWxkKGNvbnN0IEJveCYpIGNvbnN0OworICAg
IHZvaWQgY29sbGFwc2VkTWFyZ2luQm90dG9tRnJvbUxhc3RDaGlsZChjb25zdCBCb3gmKSBjb25z
dDsKKyAgICAKKyAgICB2b2lkIG1hcmdpblZhbHVlKGN1cnJlbnRNYXJnaW5WYWx1ZSwgY2FuZGlk
YXRlTWFyZ2luVmFsdWUpIGNvbnN0OworICAgIAorICAgIHZvaWQgaGFzQWRqb2luaW5nTWFyZ2lu
VG9wQW5kQm90dG9tKGNvbnN0IEJveCYpIGNvbnN0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0JveC5oIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0JveC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMDg3NTQwNDVjODIzOWMxNDk0ZGM0
NzE5ZTg0MzYxNTRhZGIzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9taXNjL2hlYWRlcnMvQm94LmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisK
K2NsYXNzIEJveCB7CisgICAgQm94KE5vZGUqLCAgdW5zaWduZWQgaWQsIFN0cmluZyBuYW1lKTsK
KyAgICB2aXJ0dWFsIH5Cb3goKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpZCgpIGNvbnN0OworICAg
IFN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgTm9kZSYgbm9kZSgpIGNvbnN0OworCisgICAgQ29u
dGFpbmVyKiBwYXJlbnQoKSBjb25zdDsKKyAgICBCb3gqIG5leHRTaWJsaW5nKCkgY29uc3Q7Cisg
ICAgQm94KiBuZXh0SW5GbG93U2libGluZygpIGNvbnN0OworICAgIEJveCogcHJldmlvdXNTaWJs
aW5nKCkgY29uc3Q7CisgICAgQm94KiBwcmV2aW91c0luRmxvd1NpYmxpbmcoKSBjb25zdDsKKyAg
ICAKKyAgICB2b2lkIHNldFBhcmVudChDb250YWluZXIqKTsKKyAgICB2b2lkIHNldE5leHRTaWJs
aW5nKEJveCopOworICAgIHZvaWQgc2V0UHJldmlvdXNTaWJsaW5nKEJveCopOworICAgIAorICAg
IExheW91dFJlY3QgcmVjdCgpIGNvbnN0OworICAgIExheW91dFBvaW50IHRvcExlZnQoKSBjb25z
dDsKKyAgICBMYXlvdXRQb2ludCBib3R0b21SaWdodCgpIGNvbnN0OworICAgIAorICAgIHZvaWQg
c2V0VG9wTGVmdChMYXlvdXRQb2ludCk7CisgICAgdm9pZCBzZXRTaXplKExheW91dFNpemUpOwor
ICAgIHZvaWQgc2V0V2lkdGgoTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRIZWlnaHQoTGF5b3V0
VW5pdCk7CisgICAgCisgICAgdm9pZCBzZXRJc0Fub255bW91cyhib29sKTsKKyAgICBib29sIGlz
QW5vbnltb3VzKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUm9vdEVsZW1lbnQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZXIoKSBjb25zdDsKKworICAgIGJvb2wgaXNC
bG9ja0xldmVsQm94KCkgY29uc3Q7CisgICAgYm9vbCBpc0Jsb2NrQ29udGFpbmVyQm94KCkgY29u
c3Q7CisgICAgYm9vbCBpc0lubGluZUxldmVsQm94KCkgY29uc3Q7CisKKyAgICBib29sIGVzdGFi
bGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKKyAgICBib29sIGVzdGFibGlzaGVzQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OworCisgICAgRm9ybWF0dGluZ0NvbnRleHQqIGVz
dGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQoKTsKKworICAgIGJvb2wgaXNJbkZsb3coKSBjb25z
dDsKKyAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0OworICAgIGJvb2wgaXNSZWxhdGl2ZVBv
c2l0aW9uZWQoKSBjb25zdDsKKyAgICBib29sIGlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgY29uc3Q7
CisgICAgYm9vbCBpc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0OworICAgIGJvb2wgaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9uZWQoKSBjb25z
dDsKKyAgICBib29sIGlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0Zs
b2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgCisgICAgQmxvY2tDb250
YWluZXIqIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0OworCisgICAgTGF5b3V0UmVjdCYgYm9yZGVy
Qm94KCkgY29uc3Q7CisgICAgTGF5b3V0UmVjdCYgcGFkZGluZ0JveCgpIGNvbnN0OworICAgIExh
eW91dFJlY3QmIGNvbnRlbnRCb3goKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgdW5zaWdu
ZWQgbV9pZDsKKyAgICBTdHJpbmcgbV9yZW5kZXJlck5hbWU7CisgICAgTm9kZSogbV9ub2RlIHsg
bnVsbHB0ciB9OworICAgIENvbnRhaW5lciogbV9wYXJlbnQgeyBudWxscHRyIH07CisgICAgQm94
KiBtX25leHRTaWJsaW5nIHsgbnVsbHB0ciB9OworICAgIEJveCogbV9wcmV2aW91c1NpYmxpbmcg
eyBudWxscHRyIH07CisgICAgYm9vbCBtX2lzQW5vbnltb3VzIHsgZmFsc2UgfTsKKyAgICBMYXlv
dXRSZWN0IG1fcmVjdDsKKyAgICBGb3JtYXR0aW5nQ29udGV4dCogbV9lc3RhYmxpc2hlZEZvcm1h
dHRpbmdDb250ZXh0IHsgbnVsbHB0ciB9OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5lci5oIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhMTYwYWZlM2U0YzgyMTEy
OGU3NWNkNDhmODMwYjM5OWRlMDg2MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9taXNjL2hlYWRlcnMvQ29udGFpbmVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJCb3guaCIK
KworbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgQ29udGFpbmVyIDogcHVibGlj
IEJveCB7CisgICAgQ29udGFpbmVyKE5vZGUqLCAgdW5zaWduZWQgaWQsIFN0cmluZyBuYW1lKTsK
KyAgICB2aXJ0dWFsIH5Db250YWluZXIoKTsKKyAgICAKKyAgICBib29sIGlzQ29udGFpbmVyKCkg
Y29uc3QgZmluYWw7CisKKyAgICB2b2lkIHNldEZpcnN0Q2hpbGQoQm94Kik7CisgICAgdm9pZCBz
ZXRMYXN0Q2hpbGQoQm94Kik7CisKKyAgICBCb3gqIGZpcnN0Q2hpbGQoKSBjb25zdDsKKyAgICBC
b3gqIGZpcnN0SW5GbG93Q2hpbGQoKSBjb25zdDsKKyAgICBCb3gqIGxhc3RDaGlsZCgpIGNvbnN0
OworICAgIEJveCogbGFzdEluRmxvd0NoaWxkKCkgY29uc3Q7CisKKyAgICBib29sIGhhc0NoaWxk
KCkgY29uc3Q7CisgICAgYm9vbCBoYXNJbkZsb3dDaGlsZCgpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIEJveCogbV9maXJzdENoaWxkIHsgbnVsbHB0ciB9OworICAgIEJveCogbV9sYXN0Q2hpbGQg
eyBudWxscHRyIH07Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21p
c2MvaGVhZGVycy9GbG9hdGluZ0NvbnRleHQuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2Mv
aGVhZGVycy9GbG9hdGluZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI5ZTlkMDRlZWE4NzU4YjBl
ZDRkM2MxODJmYjRkZDM5ZDgwZjJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvbWlzYy9oZWFkZXJzL0Zsb2F0aW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgTGF5
b3V0UmVsb2FkZWQgeworCitjbGFzcyBCb3g7CitjbGFzcyBGb3JtYXR0aW5nQ29udGV4dDsKKwor
Y2xhc3MgRmxvYXRpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBGbG9hdGluZ0NvbnRleHQoY29u
c3QgRm9ybWF0dGluZ0NvbnRleHQmKTsKKworICAgIExheW91dFBvaW50IGNvbXB1dGVQb3NpdGlv
bihjb25zdCBCb3gmKTsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSgpOworCitwcml2YXRlOgorICAg
IExheW91dFBvaW50IHBvc2l0aW9uRm9yRmxvYXRpbmcoY29uc3QgQm94JiBmbG9hdGluZ0JveCk7
CisgICAgTGF5b3V0UG9pbnQgcG9zaXRpb25Gb3JDbGVhcihjb25zdCBCb3gmKTsKKyAgICBMYXlv
dXRQb2ludCBjb21wdXRlUG9zaXRpb25Ub0F2b2lkSW50cnVkaW5nRmxvYXRzKGNvbnN0IEJveCYp
OworICAgIAorICAgIHZvaWQgYWRkRmxvYXRpbmcoY29uc3QgQm94JiBmbG9hdGluZ0JveCk7Cisg
ICAgCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgRm9ybWF0dGluZ0NvbnRleHQmIGZv
cm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CisKKyAgICBzdGQ6OnBhaXI8Qm94JiwgQm94Jj4gZmlu
ZElubmVyTW9zdExlZnRBbmRSaWdodChMYXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb24pOworICAg
IExheW91dFVuaXQgbW92ZVRvTmV4dFZlcnRpY2FsUG9zaXRpb24oc3RkOjpwYWlyPEJveCYsIEJv
eCY+JiBmbG9hdGluZ1BhaXIpOworICAgIEJveCogZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0
aW9uKExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbiwgVmVjdG9yPEJveCo+IGZsb2F0aW5nU3Rh
Y2spOworCisgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVTcGFjZShjb25zdCBDb250YWluZXImIGNv
bnRhaW5pbmdCbG9jaywgc3RkOjpwYWlyPEJveCYsIEJveCY+JiBmbG9hdGluZ1BhaXIpOworCisg
ICAgdm9pZCBhZGp1c3RlZEZsb2F0aW5nUG9zaXRpb24oY29uc3QgQm94JiBmbG9hdGluZ0JveCwg
TGF5b3V0VW5pdCB2ZXJ0aWNhbFBvc2l0aW9uLCBzdGQ6OnBhaXI8Qm94JiwgQm94Jj4mIGxlZnRS
aWdodEZsb2F0aW5ncyk7CisKKyAgICBMYXlvdXRVbml0IGZpbmRCb3R0b20oZmxvYXRpbmdTdGFj
ayk7Cit9OworCit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRl
cnMvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVy
cy9Gb3JtYXR0aW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZjA5YmE2Y2UyZTE0ZDY3MzIxMzdj
ZTVkOWYyOTU4NTFkMGIzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9taXNjL2hlYWRlcnMvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbmFtZXNwYWNlIExheW91
dFJlbG9hZGVkIHsKKworY2xhc3MgQm94OworY2xhc3MgQ29udGFpbmVyOworY2xhc3MgRmxvYXRp
bmdDb250ZXh0OworY2xhc3MgTGF5b3V0Q29udGV4dDsKKworY2xhc3MgRm9ybWF0dGluZ0NvbnRl
eHQgeworcHVibGljOgorICAgIEZvcm1hdHRpbmdDb250ZXh0KENvbnRhaW5lciYgcm9vdENvbnRh
aW5lcik7CisKKyAgICBDb250YWluZXImIHJvb3RDb250YWluZXIoKSBjb25zdDsKKyAgICBGbG9h
dGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lk
IGxheW91dChjb25zdCBMYXlvdXRDb250ZXh0JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IGNvbXB1dGVXaWR0aChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgY29tcHV0ZUhlaWdodChjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Q7CisgICAgdmlydHVh
bCBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIAorICAgIExh
eW91dFJlY3QgYWJzb2x1dGVNYXJnaW5Cb3goY29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0
UmVjdCBhYnNvbHV0ZUJvcmRlckJveChjb25zdCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0
IGFic29sdXRlUGFkZGluZ0JveChjb25zdCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGFi
c29sdXRlQ29udGVudEJveChjb25zdCBCb3gmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGbG9h
dGluZ0NvbnRleHQmIG1fZmxvYXRpbmdDb250ZXh0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0NvbnRhaW5lci5oIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0NvbnRhaW5lci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ2YTYyOWQzMzZiMzk4YzlhNWQyNDlhNDZkODg2N2FiNTQ0MjI4OTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvSW5pdGlh
bEJsb2NrQ29udGFpbmVyLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJCbG9ja0NvbnRhaW5lci5oIgorCitu
YW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgeworCitjbGFzcyBJbml0aWFsQmxvY2tDb250YWluZXIg
OiBwdWJsaWMgQmxvY2tDb250YWluZXIgeworcHVibGljOgorICAgIEluaXRpYWxCbG9ja0NvbnRh
aW5lcihEb2N1bWVudCYsIHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7CisgICAgCisgICAgYm9v
bCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCBmaW5hbDsKKworICAg
IC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgbm90IHJlYWxseSBiZSB2aXJ0dWFsLgorICAgIExheW91
dFJlY3QgcGFkZGluZ0JveCgpIGNvbnN0OworICAgIExheW91dFJlY3QgY29udGVudEJveCgpIGNv
bnN0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFk
ZXJzL0lubGluZUJveC5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0lubGlu
ZUJveC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc5ZTg4MTI4MGE2MTk4MDRiZWZlYTNiYmZlYzE5NTVhZjI3ZmY1
NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMv
SW5saW5lQm94LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKKyNpbmNsdWRl
ICJCb3guaCIKKworY2xhc3MgVGV4dDsKKworY2xhc3MgSW5saW5lQm94IDogcHVibGljIEJveCB7
CitwdWJsaWM6CisgICAgSW5saW5lQm94KE5vZGUqLCB1bnNpZ25lZCBpZCwgU3RyaW5nIG5hbWUp
OworICAgIHZpcnR1YWwgfklubGluZUJveCgpOworCisgICAgdm9pZCBzZXRUZXh0KFRleHQmKTsK
KworcHJpdmF0ZToKKyAgICBUZXh0JiBtX3RleHQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvTGF5b3V0Q29udGV4dC5oIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTc4
YjE0MWYzNDk5N2Q1ZjYxZDE1MmJjOTNkZGU1NjY2OGYxNjg2Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaApAQCAtMCww
ICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CisK
K2NsYXNzIExheW91dENvbnRleHQgeworcHVibGljOgorICAgIExheW91dENvbnRleHQoKTsKKyAg
ICAKKyAgICB2b2lkIGxheW91dEZvcm1hdHRpbmdDb250ZXh0KEZvcm1hdHRpbmdDb250ZXh0Jik7
Cit9OworCit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMv
VGV4dC5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYTk5ZGU5N2E3ZDVjM2ZiMTJlYzU5OTQ5NDU5Yzk5YTY3ZmUzZTgzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaApAQCAtMCww
ICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgSW5saW5lQ29udGFpbmVyOworCitj
bGFzcyBUZXh0IHsKK3B1YmxpYzoKKyAgICBUZXh0KE5vZGUqLCB1bnNpZ25lZCBpZCwgSW5saW5l
Qm94JiBwYXJlbnQpOworICAgIH5UZXh0KCk7CisKK3ByaXZhdGU6CisgICAgSW5saW5lQm94JiBt
X3BhcmVudDsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
VGVzdEhhcm5lc3MuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L1Rlc3RIYXJuZXNzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVhYzRhZGZiYTE4ZjE4MTBjMmRmZDQ0MWY3YTY1M2Q3ZjQzNjdlNWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L1Rlc3RIYXJuZXNzLmpz
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitmdW5jdGlvbiB2ZXJpZnlMYXlvdXRUcmVlRHVtcChyZW5kZXJUcmVlRHVtcCwgbGF5
b3V0VHJlZUR1bXApCit7CisgICAgY29uc29sZS5sb2coIldlYktpdDpcbiIgKyByZW5kZXJUcmVl
RHVtcCArIHJlbmRlclRyZWVEdW1wLmxlbmd0aCk7CisgICAgY29uc29sZS5sb2coIlJlbG9hZGVk
OlxuIiArIGxheW91dFRyZWVEdW1wICsgbGF5b3V0VHJlZUR1bXAubGVuZ3RoKTsKKyAgICBpZiAo
cmVuZGVyVHJlZUR1bXAgPT0gbGF5b3V0VHJlZUR1bXApCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcnVuTGF5b3V0KHRlc3RXaW5kb3cpIHsK
KyAgICB0ZXN0V2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgIGxldCB2aWV3
cG9ydFNpemUgPSBuZXcgTGF5b3V0U2l6ZShwYXJzZUZsb2F0KHRlc3RXaW5kb3cuaW5uZXJXaWR0
aCksIHBhcnNlRmxvYXQodGVzdFdpbmRvdy5pbm5lckhlaWdodCkpOworICAgIGxldCBsYXlvdXRU
cmVlRHVtcCA9IGxheW91dCh0ZXN0V2luZG93LCB2aWV3cG9ydFNpemUpOworICAgIHJldHVybiB2
ZXJpZnlMYXlvdXRUcmVlRHVtcCh0ZXN0V2luZG93LnNpbXBsaWZpZWRSZW5kZXJUcmVlLCBsYXlv
dXRUcmVlRHVtcCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fi
c29sdXRlLWF1dG8td2l0aC1zaWJsaW5nLW1hcmdpbi1ib3R0b20uaHRtbCBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtYXV0by13aXRoLXNpYmxpbmctbWFyZ2luLWJvdHRvbS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZjZmQ3MzI5ZDVhNzQ1N2Y2ZTRjNDA4NGQzNzU1ZTcwZTE1ZTg3YzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWF1
dG8td2l0aC1zaWJsaW5nLW1hcmdpbi1ib3R0b20uaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImhlaWdodDogNTBweDsgbWFy
Z2luOiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdodDogNTBw
eDsgcG9zaXRpb246IGFic29sdXRlOyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWJvdHRvbS5odG1sIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1ib3R0b20uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NjU1ZjRlNzc4YWU5YWZhMDFkZjM1ZDYwYzJkODc0NzNiNGZiYzZmCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1ib3R0b20uaHRtbApAQCAtMCww
ICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9hYnNvbHV0ZS1oZWlnaHQtc3RyZXRjaC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9hYnNvbHV0ZS1oZWlnaHQtc3RyZXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmOWYxODFlODgwZDE5
YmY5MWM3YzRmMDYxOGM0MjkzYTllNzkwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWhlaWdodC1zdHJldGNoLmh0bWwKQEAgLTAsMCArMSwx
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHJpZ2h0OiAzMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lk
dGg6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAx
MHB4OyByaWdodDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyBib3R0b206IDMwcHg7IHdpZHRoOiAy
MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L2Fic29sdXRlLWxlZnQtYXV0by5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9hYnNvbHV0ZS1sZWZ0LWF1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2FkYjhhNzUzNjgz
NDAyYWM5ZWVlY2YyYjk0YzIzZDhkYjRhZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1sZWZ0LWF1dG8uaHRtbApAQCAtMCwwICsxLDkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiBhdXRvOyBib3R0b206IDhweDsgd2lk
dGg6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyByaWdodDogYXV0bzsgYm90dG9tOiA4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBhdXRvOyBs
ZWZ0OiA4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiBhdXRvOyBsZWZ0OiA4cHg7IHdpZHRoOiAzMHB4
OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1yaWdodC10b3AtYm90dG9tLWF1
dG8uaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1yaWdodC10
b3AtYm90dG9tLWF1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjNlNzUzYThkMTQ0MGJhOGY1ZjAwOWNk
ODViYWQ2NjFmZTc3ODMwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9hYnNvbHV0ZS1sZWZ0LXJpZ2h0LXRvcC1ib3R0b20tYXV0by5odG1sCkBAIC0wLDAgKzEs
MTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRo
OiAxMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgcmlnaHQ6IDEwcHg7IHRvcDogYXV0bzsgd2lkdGg6IDMwcHg7IGhlaWdodDogMjBweDsi
PjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IGF1dG87IHdp
ZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMHB4
OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogYXV0bzsgdG9wOiBhdXRvOyB3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IGF1dG87IHRvcDogMTBweDsgd2lkdGg6IDMw
cHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiBhdXRvOyBib3R0b206IDEwcHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvYWJzb2x1dGUtbmVzdGVkLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fi
c29sdXRlLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMDg1ZDQzY2JlNzk2ZmY1MmY1MjA1MzZl
ZmJkOGQyMWM3ZGJjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L2Fic29sdXRlLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIw
cHg7IHRvcDogMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYg
c3R5bGU9IndpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJz
b2x1dGUtbmVzdGVkMi5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1u
ZXN0ZWQyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJkMGVhNDAzMmEyNTg5MzA1Yzg3MjM5OGViYjk3NmY0
YzhjZTBhYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJz
b2x1dGUtbmVzdGVkMi5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyB0
b3A6IDIwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHls
ZT0id2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICAgICAgPGRpdiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MHB4OyB0b3A6IDUwcHg7IHdpZHRoOiA1MHB4OyBo
ZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMTAwcHg7IHdpZHRoOiAyMHB4OyBoZWln
aHQ6IDIwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwcHg7IGhlaWdodDogMjBw
eDsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjllZDlhYWNm
OTRmYjM5ODU1ODMzMGI5NDUxNjlmZWVkOWMzNjRiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSw2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDIwcHg7IHRvcDogMTBweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBw
eDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zaHJpbmstdG8tZml0Lmh0bWwgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLXdpZHRoLXNocmluay10by1maXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MGIyOGQ0ZGQ3NzY4N2JjM2M0YzY5ODkxM2EzYzUwOTVkMGViNDY2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zaHJpbmst
dG8tZml0Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogYXV0bzsgaGVpZ2h0
OiAxMDBweDsgcGFkZGluZzogMTBweCI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OiAxMDBweDsgd2lkdGg6IGF1dG87IGhlaWdodDogMTAwcHg7IHBhZGRpbmc6IDEw
cHgiPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+
CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwv
ZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMDBweDsgd2lkdGg6
IGF1dG87IGhlaWdodDogMTAwcHg7IHBhZGRpbmc6IDEwcHgiPgorICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiAyMDBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6
IDVweDsgbWFyaW5nOiAxMHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
ICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0
OiAxMDBweDsgd2lkdGg6IGF1dG87IGhlaWdodDogMTAwcHg7IHBhZGRpbmc6IDEwcHgiPgorICAg
IDxkaXYgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYg
c3R5bGU9Im1hcmdpbjogMTVweDsgcGFkZGluZy1sZWZ0OiA1cHg7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAyMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgtc3Ry
ZXRjaC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zdHJl
dGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBkYWZmYzdiMzdjMTZjYmM5ZWQyNDZiMmYyYTVkOWVjNTc2
YTNlYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1
dGUtd2lkdGgtc3RyZXRjaC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4
OyByaWdodDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IHdpZHRoOiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMTBweDsgcmlnaHQ6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Fic29sdXRlLXdpdGgtaW5saW5lLXByZWZlcnJlZC13aWR0aC5odG1sIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLWlubGluZS1wcmVmZXJyZWQtd2lkdGgu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZWU0ZWRjMDViYzUwMzdiNGE3ZjdiNzY5N2UxYjdmZTFjMGQ1ZmYw
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13
aXRoLWlubGluZS1wcmVmZXJyZWQtd2lkdGguaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworIHZlcnRpY2FsLWFsaWdu
OiBib3R0b207Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IHRvcDogMTBweDsgbGVmdDogMTBweDsiPmZvb2JhciBmb29iYXIgZm9v
YmFyPC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwcHg7IGxl
ZnQ6IDEwcHg7Ij48aW1nIHNyYz0iZm9vLmpwZyIgd2lkdGg9MTAwcHggaGVpZ2h0PTEwMHB4Pjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9hYnNvbHV0ZS13aXRoLXN0YXRpYy1ibG9jay1wb3NpdGlvbi1uZXN0ZWQuaHRtbCBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2l0aC1zdGF0aWMtYmxvY2stcG9zaXRp
b24tbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY3YTUzODc5NDc5ZGM4YmQ0YmQyNGNiMTNhNjhi
YTI3YzVlZGMyNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
YWJzb2x1dGUtd2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVkLmh0bWwKQEAgLTAsMCAr
MSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwYWRk
aW5nOiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBh
dXRvOyBsZWZ0OiBhdXRvOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvYWxtb3N0LWludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9hbG1vc3QtaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmFlMTVhOGZlZmQ4NzU0ZmQxMTBkNGVhNmQzZWQ2ZGU2OTBiNjY5NwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWxtb3N0LWludHJ1ZGluZy1s
ZWZ0LWZsb2F0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBh
ZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImZs
b2F0OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L2JvcmRlci1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvYm9yZGVyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmMWU4ZTc0YjNjNTQwZDZjNmY3NTFk
YzU0YWQ0MjYzZjk0NjRiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2JvcmRlci1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAg
ICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxl
PSJib3JkZXI6IDEwcHggc29saWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsi
PgorICAgIDxkaXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7
IGhlaWdodDogMjAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDog
NXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2
IHN0eWxlPSJib3JkZXItYm90dG9tOiAxcHggc29saWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVp
Z2h0OiAyMDBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXI6IDEwcHggc29s
aWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgorICAgIDxkaXYgc3R5bGU9
InBhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhl
aWdodDogMjAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyOiAxMHB4IHNv
bGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW46IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhl
aWdodDogMjAwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAxMHB4OyB3aWR0aDog
MjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbjog
MTBweDsgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9maXhlZC1uZXN0
ZWQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZml4ZWQtbmVzdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjgwOGE5YmE1MzYwNDMxZGZlNGMzNzQwZGQ4Njg5OTAzYWJkMDU3NgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZml4ZWQtbmVzdGVkLmh0bWwK
QEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDIwcHg7IHRvcDog
MTBweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0
aW9uOiBmaXhlZDsgbGVmdDogMTIwcHg7IHRvcDogMTAwcHg7IHdpZHRoOiAyMzBweDsgaGVpZ2h0
OiA0MHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MTBweDsgdG9wOiAxMHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgICAgICAg
ICA8ZGl2IHN0eWxlPSJ3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgICAgICAgICAg
ICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGZpeGVkOyBsZWZ0OiAyMjBweDsgdG9wOiAxMDBweDsg
d2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0LWxlZnQtd2hlbi1jb250YWlu
ZXItaGFzLXBhZGRpbmctbWFyZ2luLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zs
b2F0LWxlZnQtd2hlbi1jb250YWluZXItaGFzLXBhZGRpbmctbWFyZ2luLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTdmNjg4NTkwMDY5YjM5ZWEwZmY4NzJmMTQ0YWI4MGI3YjM5NGVjMQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXQtbGVmdC13aGVuLWNvbnRhaW5l
ci1oYXMtcGFkZGluZy1tYXJnaW4uaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAg
ICBwYWRkaW5nOiA4cHg7Cit9CitkaXYgeyBvdXRsaW5lOiAxcHggc29saWQgZ3JlZW47IH0KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbjogMTBweDsgcGFkZGlu
ZzogMTBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0i
ZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2
IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDcwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAxMHB4OyI+
PC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtY2xlYXItYm90aC1zaW1wbGUuaHRt
bCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLWJvdGgtc2lt
cGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZkY2VjMjQ2ODlkY2VlMzdlMTM4MjFhYWQ4OTMyM2E5MjI3
M2RlMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctYm94LWNsZWFyLWJvdGgtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7
CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBz
dHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IHJpZ2h0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorICAgIDxkaXYg
c3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4K
KyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4
OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDog
NTBweDsgaGVpZ2h0OiAzNTBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3
aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iY2xlYXI6IGJv
dGg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9h
dDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMzUwcHg7Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctYm94LWNsZWFyLXJpZ2h0LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy1ib3gtY2xlYXItcmlnaHQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEyOTRj
Nzc0OWZhMWY3NjRkYTViNGMzYzA5NzUzNGFlMjQ5MDE0NgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLXJpZ2h0LXNpbXBsZS5o
dG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0
OiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhl
aWdodDogMjUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRo
OiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJp
Z2h0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKzxk
aXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMzUwcHg7Ij48L2Rp
dj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7
Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAx
MDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWln
aHQ6IDUwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4
OyBoZWlnaHQ6IDM1MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0
aXBsZS13aXRoLXRvcC1vZmZzZXQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxv
YXRpbmctYm94LWxlZnQtYW5kLXJpZ2h0LW11bHRpcGxlLXdpdGgtdG9wLW9mZnNldC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU4NjMxN2VjNGU3M2RiMzNjYWJjZDg3ZmJmZjExN2I1NDBlY2IyMGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1sZWZ0
LWFuZC1yaWdodC1tdWx0aXBsZS13aXRoLXRvcC1vZmZzZXQuaHRtbApAQCAtMCwwICsxLDIzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBt
YXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9CitkaXYgeyBvdXRsaW5lOiBzb2xpZCBn
cmVlbiAxcHg7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBhZGRp
bmc6IDEwMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogNDAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDEzMHB4OyBoZWlnaHQ6IDE1cHg7Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDEyNXB4OyI+PC9k
aXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA2MHB4OyBoZWlnaHQ6IDEw
cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEzMHB4OyBo
ZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRo
OiAzMHB4OyBoZWlnaHQ6IDEyNXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7IHdpZHRoOiAxMzBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0i
ZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAxMjVweDsiPjwvZGl2PgorPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L2Zsb2F0aW5nLWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVsdGlwbGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MTFmZmU3ZGRjNGRiMzY1NGZjYTM2MWE2YmJhZWM5ZGI0MjA3YTE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVm
dC1hbmQtcmlnaHQtbXVsdGlwbGUuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAg
ICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogMjAwcHg7IGhlaWdodDogNDAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
ImZsb2F0OiByaWdodDsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDVweDsiPjwvZGl2PgorICAgIDxk
aXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNjBweDsgaGVpZ2h0OiAxNXB4OyI+PC9kaXY+
CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDk1cHg7
Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAzMHB4OyBoZWln
aHQ6IDEyNXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDog
MTBweDsgaGVpZ2h0OiAzNXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDk1cHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gt
cmlnaHQtc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJv
eC1yaWdodC1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODliOWUxOTA5OTg5ZGMzYTRhZTJkMTIz
ODE1YmNjYmE3NWRhNTJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1ib3gtcmlnaHQtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2lu
OiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNTBweDsiPjwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDEwcHg7IGhlaWdodDog
MTUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA4MHB4
OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3
aWR0aDogODBweDsgaGVpZ2h0OiAxNTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3
aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdo
dDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJm
bG9hdDogcmlnaHQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+Cis8L2Rpdj4K
KyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4
OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogODBweDsgaGVp
Z2h0OiAxNTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6
IDgwcHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2li
bGluZ3MuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgt
Y2xlYXItc2libGluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmY3NjVlMTRhNDYxMDMzMzk4NWM3Y2Q3
NjU0ZGM0YjBmYTZlYTkxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1ib3gtd2l0aC1jbGVhci1zaWJsaW5ncy5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAg
IG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+
Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAx
MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTBweDsgaGVpZ2h0OiAxNTBweDsiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1ib3gtd2l0aC1jbGVhci1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2ltcGxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWMyYTliMDRjNGI2MDU5Yzc4NzVlMDY1MWZmNTBjM2U1NTBlM2Q1YwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXIt
c2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDUw
cHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsg
d2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0i
Y2xlYXI6IGJvdGg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmct
Ym94LXdpdGgtbmV3LWZvcm1hdHRpbmctY29udGV4dC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9mbG9hdGluZy1ib3gtd2l0aC1uZXctZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzg3YmYzMzllNDQwODRlMGI3NDg1OTVjMmMzNGM3NmI4MzBkMzQwNAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgt
bmV3LWZvcm1hdHRpbmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4Owor
ICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5
bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7IGxlZnQ6IDMwcHg7IHdpZHRoOiAxMDBw
eDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdp
dGgtcmVsYXRpdmUtcG9zaXRpb25lZC1zaWJsaW5nLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLXJlbGF0aXZlLXBvc2l0aW9uZWQtc2libGluZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzNTljNDVkMTFiOTg4ODI0ODBhNjM2NTlmYmE0NmM4NmQ2YTkyZDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13
aXRoLXJlbGF0aXZlLXBvc2l0aW9uZWQtc2libGluZy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdp
bjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAxMHB4OyBsZWZ0OiAzMHB4OyB3
aWR0aDogMTAwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0
OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYg
c3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAzMHB4OyBsZWZ0OiAzMHB4OyB3aWR0aDog
MTAwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0
aDogMTAwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9h
dDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBz
dHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDQwcHg7IGxlZnQ6IDMwcHg7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRo
OiAxMDBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0
OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0
LXJpZ2h0LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1s
ZWZ0LXJpZ2h0LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOTUwNDk1OTA0YzNkNTE5ZGVkYWI1
NWQ3NjAxNGUzMGM2ZTUzMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Zsb2F0aW5nLWxlZnQtcmlnaHQtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFy
Z2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRpdiBz
dHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgPGRpdiBzdHls
ZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWxl
ZnQtcmlnaHQtd2l0aC1hbGwtbWFyZ2lucy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXdpdGgtYWxsLW1hcmdpbnMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZmI0NGNmZDg1M2Q4ZjMzYzdhMzFlYjEwZjc1ZDY1MDdhZGJhYjI0Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXdpdGgtYWxs
LW1hcmdpbnMuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4
cHg7Cit9CisKK2RpdiB7IG91dGxpbmU6IDFweCBzb2xpZCBncmVlbjsgfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4K
KyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1h
cmdpbi1sZWZ0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0
aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1s
ZWZ0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHls
ZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsi
PjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDog
MjBweDsgbWFyZ2luOiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiA1
MDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6
IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBz
dHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmln
aHQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxl
PSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1yaWdodDog
MTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBo
ZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsiPjwvZGl2Pgor
PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogNTBweDsiPgorICA8ZGl2
IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1s
ZWZ0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDIw
cHg7IGhlaWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5
bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDog
MTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5
bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDogNDAwcHg7Ij48L2Rp
dj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7
IG1hcmdpbi1yaWdodDogODBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDog
NTAwcHg7IGhlaWdodDogNTBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRo
OiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1sZWZ0OiA0MDBweDsiPjwvZGl2PgorICA8ZGl2
IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1y
aWdodDogODBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhl
aWdodDogNTBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDQwMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZs
b2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiA4MHB4
OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMjBw
eDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDIw
cHg7IG1hcmdpbjogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi10b3A6IDUwcHg7Ij48L2Rpdj4KKzwvZGl2
PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgPGRpdiBzdHls
ZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsi
PjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6
IDIwcHg7IG1hcmdpbjogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDog
NTAwcHg7IGhlaWdodDogODBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6
IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luOiA1MHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9
ImZsb2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogNjBweDsiPgorICA8ZGl2IHN0eWxl
PSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi10b3A6IDUw
cHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUw
cHg7Ij4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAy
MHB4OyBtYXJnaW46IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0cy1hbmQtcmln
aHRzLXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0
cy1hbmQtcmlnaHRzLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZmFmZDdlYzcxMTg4ODg3OTc5
MTJlMTA2OWJiYzU3ZjJkYjRiMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC90ZXN0L2Zsb2F0aW5nLWxlZnRzLWFuZC1yaWdodHMtc2ltcGxlLmh0bWwKQEAgLTAsMCAr
MSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7
CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNDBweDsgaGVp
Z2h0OiAyNXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDEwMHB4Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMHB4
OyBoZWlnaHQ6IDE2cHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1p
bi1ib2R5Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxl
LWxlZnRzLWluLWJvZHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjJiZDYzY2NkZjcwMDhkOWE5NDAzODU1
YTg2OTQ5NWNiMzYyMjM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1pbi1ib2R5Lmh0bWwKQEAgLTAsMCArMSwyNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAg
bWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNDBweDsgaGVpZ2h0OiAy
NXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTZweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogOTBw
eDsgaGVpZ2h0OiAxM3B4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6
IDIwcHg7IGhlaWdodDogMTZweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0
OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHgiPjwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTBweDsi
PjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLW11bHRpcGxlLWxpbmVzLmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLW11
bHRpcGxlLWxpbmVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmEyNzUyMzNmMzc0NmU0ZTdlNGRhZGU4Yzgw
ODRiMDJiZjFlNDU1YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMtbXVsdGlwbGUtbGluZXMuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsK
KyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTg1cHg7IGhlaWdodDogMjAwcHg7Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQwcHg7IGhlaWdodDogMjVweDsiPjwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMz
YTM4MzFhNmMyMGQ0YTJkOWZhOTQzOGJkMDdjYzdhOTBlMjc3YgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMuaHRtbApA
QCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTg1cHg7IGhlaWdodDogMjAw
cHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQwcHg7IGhlaWdodDog
MjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTBweDsg
aGVpZ2h0OiAxNnB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRo
OiA5MHB4OyBoZWlnaHQ6IDEzcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVm
dDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMTZweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZs
b2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBz
dHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cisg
ICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4OyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctc2l6aW5nLmh0bWwgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhmZGQ0
OTNlN2M4Y2E0M2MwN2RlNTIxOThkNDliMzFiNzA1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZy5odG1sCkBAIC0wLDAgKzEsMjYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAg
IG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KK2ltZyB7CisgICAgdmVydGljYWwt
YWxpZ246IHRvcDsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0i
ZmxvYXQ6IGxlZnQ7Ij5mb288L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+Zm9vYmFy
PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsiPmZvb2JhciBmb29iYXI8L2Rpdj4KKzxk
aXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+Zm9vYmFyIGZvb2JhciBmb29iYXI8L2Rpdj4KKzxkaXYg
c3R5bGU9ImZsb2F0OiBsZWZ0OyI+PGltZyB3aWR0aD04MDBweCBoZWlnaHQ9MTAwcHggc3JjPSJm
b28uanBnIj48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPmJhcjwvZGl2PgorPGRp
diBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+YmFyZm9vIGJhcjwvZGl2PgorPGRpdiBzdHlsZT0iZmxv
YXQ6IHJpZ2h0OyI+YmFyZm9vIGJhcmZvbyBiYXI8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBy
aWdodDsiPmJhcmZvbyBiYXJmb28gYmFyZm9vIGJhcjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcyLmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZzIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44Mzg0ZDhhODVjY2JjY2JkYTM5NjNmMTI1OTg2YTE2ZTEyMDg0ZDM2Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcyLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQoraW1n
IHsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8c3BhbiBzdHlsZT0iZmxvYXQ6IGxlZnQ7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsiPmZvb2Jh
cmZvb2JhcmZvb2JhcmZvb2JhcjwvZGl2PgorPC9zcGFuPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmczLmh0bWwg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZzMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNjcxYzhjMTU5OGZhN2NlMjBkNzUwOTBmNWMxYzVhYTU0MDIzYzBmCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmczLmh0bWwK
QEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorCis8c3R5
bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8c3BhbiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAy
MHB4OyBoZWlnaHQ6IDEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQiPjwvZGl2PgorPHNwYW4g
c3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyBib3JkZXI6IDFw
eCBzb2xpZCByZWQiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTAw
cHg7IGhlaWdodDogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmVkIj48L2Rpdj4KKworPGRpdiBz
dHlsZT0iaGVpZ2h0OiAzMHB4OyB3aWR0aDogMjAwcHg7Ij4KKyAgPHNwYW4gc3R5bGU9ImZsb2F0
OiBsZWZ0OyI+Zm9vb29vb29vbyAwMG9nPC9zcGFuPjEKKzwvZGl2PgorPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IGhlaWdodDogMzAwcHg7IHdpZHRoOiA1MDBweDsiPjwvZGl2PgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5n
LXdpdGgtbmV3LWJsb2NrLWZvcm1hdHRpbmctY29udGV4dC5odG1sIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9mbG9hdGluZy13aXRoLW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYTdkZDk4OGViODA1MTc2YjVkOTM5ZDJmZTFmOTNiYTMxNWEzZjUzCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy13aXRo
LW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46
IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IHN0eWxlPSJ3aWR0aDogNDAwcHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjVweDsiPjwvZGl2PgorICAgIDxk
aXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+
CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDVweDsi
PjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0
OiA0MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTgw
cHg7IGhlaWdodDogODBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9Im92ZXJmbG93OmhpZGRl
bjsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJvdmVy
ZmxvdzpoaWRkZW47IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKzwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5o
dG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2
Y2I5YjZjMDMxY2Q1ODkwZjRlZjg4NTU4NzY3MTk4MTc4ODUxNjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxMzYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lmcmFtZSB7CisgICAg
Ym9yZGVyOiAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2xldCB0ZXN0RmlsZXMgPSBbCisg
ICAgInJlbGF0aXZlLXNpbXBsZS5odG1sIiwKKyAgICAicmVsYXRpdmUtYm90dG9tLmh0bWwiLAor
ICAgICJyZWxhdGl2ZS1yaWdodC5odG1sIiwKKyAgICAicmVsYXRpdmUtYXV0by5odG1sIiwKKyAg
ICAicmVsYXRpdmUtYXV0by13aXRoLXBhcmVudC1vZmZzZXQuaHRtbCIsCisgICAgInJlbGF0aXZl
LXNpYmxpbmdzLmh0bWwiLAorICAgICJwYWRkaW5nLXNpbXBsZS5odG1sIiwKKyAgICAicGFkZGlu
Zy1uZXN0ZWQuaHRtbCIsCisgICAgImJvcmRlci1zaW1wbGUuaHRtbCIsCisgICAgIm1hcmdpbi1z
aW1wbGUuaHRtbCIsCisgICAgIm1hcmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRt
bCIsCisgICAgIm1hcmdpbi1wcm9wYWdhdGlvbi1zaW1wbGUtY29udGVudC1oZWlnaHQuaHRtbCIs
CisgICAgIm1hcmdpbi1sZWZ0LXJpZ2h0LXNpemluZy5odG1sIiwKKyAgICAibWFyZ2luLWxlZnQt
cmlnaHQtc2l6aW5nLW91dC1vZi1mbG93Lmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Utd2l0
aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQyLmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Ut
d2l0aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xsYXBz
ZS13aGVuLWNoaWxkLWhhcy1wYWRkaW5nLWJvcmRlci5odG1sIiwKKyAgICAibWFyZ2luLWNvbGxh
cHNlLXRvcC1uZXN0ZWQuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xsYXBzZS1zaW1wbGUuaHRtbCIs
CisgICAgIm1hcmdpbi1jb2xsYXBzZS1maXJzdC1sYXN0LWFyZS1mbG9hdGluZy5odG1sIiwKKyAg
ICAibWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xs
YXBzZS1ib3R0b20tYm90dG9tLmh0bWwiLAorICAgICJhYnNvbHV0ZS1hdXRvLXdpdGgtc2libGlu
Zy1tYXJnaW4tYm90dG9tLmh0bWwiLAorICAgICJhYnNvbHV0ZS1ib3R0b20uaHRtbCIsCisgICAg
ImFic29sdXRlLWhlaWdodC1zdHJldGNoLmh0bWwiLAorICAgICJhYnNvbHV0ZS1sZWZ0LWF1dG8u
aHRtbCIsCisgICAgImFic29sdXRlLWxlZnQtcmlnaHQtdG9wLWJvdHRvbS1hdXRvLmh0bWwiLAor
ICAgICJhYnNvbHV0ZS1uZXN0ZWQuaHRtbCIsCisgICAgImFic29sdXRlLW5lc3RlZDIuaHRtbCIs
CisgICAgImFic29sdXRlLXNpbXBsZS5odG1sIiwKKyAgICAiYWJzb2x1dGUtd2lkdGgtc2hyaW5r
LXRvLWZpdC5odG1sIiwKKyAgICAiYWJzb2x1dGUtd2lkdGgtc3RyZXRjaC5odG1sIiwKKyAgICAi
YWJzb2x1dGUtd2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVkLmh0bWwiLAorICAgICJm
aXhlZC1uZXN0ZWQuaHRtbCIsCisgICAgImZsb2F0aW5nLWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0
aXBsZS5odG1sIiwKKyAgICAiZmxvYXRpbmctYm94LXJpZ2h0LXNpbXBsZS5odG1sIiwKKyAgICAi
ZmxvYXRpbmctbGVmdC1yaWdodC1zaW1wbGUuaHRtbCIsCisgICAgImZsb2F0aW5nLWxlZnQtcmln
aHQtd2l0aC1hbGwtbWFyZ2lucy5odG1sIiwKKyAgICAiZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMt
aW4tYm9keS5odG1sIiwKKyAgICAiZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMtbXVsdGlwbGUtbGlu
ZXMuaHRtbCIsCisgICAgImZsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwiLAorICAgICJmbG9h
dGluZy1ib3gtd2l0aC1yZWxhdGl2ZS1wb3NpdGlvbmVkLXNpYmxpbmcuaHRtbCIsCisgICAgImZs
b2F0aW5nLWxlZnRzLWFuZC1yaWdodHMtc2ltcGxlLmh0bWwiLAorICAgICJmbG9hdGluZy13aXRo
LW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbCIsCisgICAgImZsb2F0aW5nLWJveC1j
bGVhci1yaWdodC1zaW1wbGUuaHRtbCIsCisgICAgImZsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNp
bXBsZS5odG1sIiwKKyAgICAiZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2libGluZ3MuaHRtbCIs
CisgICAgImZsb2F0aW5nLWJveC1jbGVhci1ib3RoLXNpbXBsZS5odG1sIiwKKyAgICAiYWxtb3N0
LWludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sIiwKKyAgICAibmVnYXRpdmUtbWFyZ2lu
LXNpbXBsZS5odG1sIiwKKyAgICAiaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWwiCitd
OworCitsZXQgZGVidWdUaGlzID0gWworXTsKKworZnVuY3Rpb24gYWRkSlMoZmlsZU5hbWUpIHsK
KyAgICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7CisgICAgbGV0IGlt
cG9ydGVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgaW1wb3J0ZWQu
c3JjID0gZmlsZU5hbWU7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpbXBvcnRlZCk7
Cit9CisKK2FkZEpTKCIuL1Rlc3RIYXJuZXNzLmpzIik7CithZGRKUygiLi4vVXRpbHMuanMiKTsK
K2FkZEpTKCIuLi9MYXlvdXQuanMiKTsKK2FkZEpTKCIuLi9UcmVlQnVpbGRlci5qcyIpOworYWRk
SlMoIi4uL0xheW91dENvbnRleHQuanMiKTsKK2FkZEpTKCIuLi9Cb3guanMiKTsKK2FkZEpTKCIu
Li9Db250YWluZXIuanMiKTsKK2FkZEpTKCIuLi9CbG9ja0NvbnRhaW5lci5qcyIpOworYWRkSlMo
Ii4uL0luaXRpYWxCbG9ja0NvbnRhaW5lci5qcyIpOworYWRkSlMoIi4uL0lubGluZUJveC5qcyIp
OworYWRkSlMoIi4uL1RleHQuanMiKTsKK2FkZEpTKCIuLi9Gb3JtYXR0aW5nQ29udGV4dC5qcyIp
OworYWRkSlMoIi4uL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMiKTsKK2FkZEpTKCIuLi9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5qcyIpOworYWRkSlMoIi4uL0Zsb2F0aW5nQ29udGV4dC5qcyIp
OworYWRkSlMoIi4uL0Jsb2NrTWFyZ2luQ29sbGFwc2UuanMiKQorCitsZXQgZmFpbGVkVGVzdHMg
PSBbXTsKKworZnVuY3Rpb24gcHJpbnRSZXN1bHQoZmlsZXMsIGN1cnJlbnRUZXN0SW5kZXgpIHsK
KyAgICBsZXQgcmVzdWx0Q29udGVudCA9IGN1cnJlbnRUZXN0SW5kZXggIT0gbnVsbCA/ICgiVGVz
dGluZy4uLiIgKyBjdXJyZW50VGVzdEluZGV4ICsgIiBvdXQgb2YgIiArIGZpbGVzLmxlbmd0aCkg
OiAoIk51bWJlciBvZiB0ZXN0czogIiArIGZpbGVzLmxlbmd0aCkgOworICAgIHJlc3VsdENvbnRl
bnQgKz0gIjxicj48YnI+UGFzc2VkOiAiICsgKChjdXJyZW50VGVzdEluZGV4ICE9IG51bGwgPyBj
dXJyZW50VGVzdEluZGV4IDogZmlsZXMubGVuZ3RoKSAtIGZhaWxlZFRlc3RzLmxlbmd0aCkgKyAi
PGJyPkZhaWxlZDogIiArIGZhaWxlZFRlc3RzLmxlbmd0aDsKKyAgICBpZiAoZmFpbGVkVGVzdHMu
bGVuZ3RoID4gMCkgeworICAgICAgICByZXN1bHRDb250ZW50ICs9ICI8YnI+PGJyPkZhaWxlZCBj
YXNlczoiCisgICAgICAgIGZhaWxlZFRlc3RzLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAg
ICAgICAgICAgcmVzdWx0Q29udGVudCArPSAiPGJyPjxhIGhyZWY9XCIiICsgZmlsZXNbaXRlbV0g
KyAiXCI+IiArIGZpbGVzW2l0ZW1dICsgIjwvYT4iOworICAgICAgICB9KTsKKyAgICB9CisgICAg
cmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdENvbnRlbnQ7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Qo
ZmlsZXMsIGN1cnJlbnRUZXN0SW5kZXgpIHsKKyAgICBwcmludFJlc3VsdChmaWxlcywgY3VycmVu
dFRlc3RJbmRleCk7CisgICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgIGlmcmFtZS5zcmMgPSBmaWxlc1tjdXJyZW50VGVzdEluZGV4XTsKKyAgICBp
ZnJhbWUuaWQgPSAidGVzdEZyYW1lIjsKKyAgICBpZnJhbWUud2lkdGggPSB3aW5kb3cuaW5uZXJX
aWR0aDsKKyAgICBpZnJhbWUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OworICAgIGlmcmFt
ZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IHRlc3RGcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKyAgICAgICAgbGV0IHBhc3NlZCA9IHJ1bkxh
eW91dCh0ZXN0RnJhbWUuY29udGVudFdpbmRvdyk7CisgICAgICAgIHRlc3RGcmFtZS5yZW1vdmUo
KTsKKyAgICAgICAgaWYgKCFwYXNzZWQpCisgICAgICAgICAgICBmYWlsZWRUZXN0cy5wdXNoKGN1
cnJlbnRUZXN0SW5kZXgpOworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKGN1cnJlbnRUZXN0SW5kZXggPCBmaWxlcy5sZW5ndGggLSAxKQorICAgICAgICAg
ICAgICAgIHJ1blRlc3QoZmlsZXMsICsrY3VycmVudFRlc3RJbmRleCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHQoZmlsZXMpOworICAgICAgICB9LCAwKTsK
KyAgICB9OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdHMoKSB7CisgICAgcnVuVGVzdChkZWJ1Z1RoaXMubGVuZ3RoID8gZGVidWdU
aGlzIDogdGVzdEZpbGVzLCAwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0cygpIj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmxpbmUtY29udGVudC1zaW1w
bGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5saW5lLWNvbnRlbnQtc2ltcGxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjE3NDc4YzUxZDY5N2UxZTVmM2QzOGM2MGJmYjFjYjE4ZTkwZjRl
NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5saW5lLWNv
bnRlbnQtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSw0IEBACis8Ym9keT5mb29iYXIgZm9vYmFyIGZv
b2JhcjwvYm9keT4KKzxzY3JpcHQ+CithbGVydChkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoKTsK
Kzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xz
L0xheW91dFJlbG9hZGVkL3Rlc3QvaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWwgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlMWU1MDAyODYwMDcwZmNkNGZlNDA5MDU0YmI3OTBjMTdmOWFkNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0
LWZsb2F0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRp
bmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImZsb2F0
OiBsZWZ0OyB3aWR0aDogMTFweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVm
dDsgd2lkdGg6IDEycHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5
bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8ZGl2
IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDE1cHg7IGhlaWdodDogODBweDsiPjwvZGl2Pgor
PGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxk
aXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxv
YWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWwgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWEyNzE1ZWJjZGY4Y2Q5MmExNjI5NzZlMTE0Nzk0MTU4MjA3ZDY1ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRv
bS1ib3R0b20uaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4
cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwcHg7IGhlaWdodDogYXV0bzsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9t
OiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBw
eDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBib3Jk
ZXI6IDBweCBzb2xpZCB0cmFuc3BhcmVudDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRo
OiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRv
bTogMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbCBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZGM5OWE2NTQ0YzQzMjllYmZiOTgwMmQxZWI1MzgwMWFiZmYyNjVlCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtYm90
dG9tLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6
IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMjBweDsgaGVpZ2h0OiBhdXRvOyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0
b206IDFweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICAgICAgPGRpdiBz
dHlsZT0ibWFyZ2luLWJvdHRvbTogNXB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+Cisg
ICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDIw
cHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJn
aW4tYm90dG9tOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+CisgICAg
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsgd2lkdGg6IDIwcHg7
IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtZmlyc3QtbGFzdC1hcmUtZmxv
YXRpbmcuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWZp
cnN0LWxhc3QtYXJlLWZsb2F0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyZWQ0NzQyNTMxNjYxNjRi
NzNmZGFkZmUyOTE3MzZhNzBhNGM2ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWZpcnN0LWxhc3QtYXJlLWZsb2F0aW5nLmh0bWwK
QEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6
IDEwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDEwcHg7IHdpZHRoOiA1MHB4
OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAzMHB4OyB3aWR0aDog
NTBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0i
bWFyZ2luOiA0MHB4OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1j
b2xsYXBzZS1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNv
bGxhcHNlLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZDZmNjI2OTAxOTAyODA2NDUzZDY3ODgw
OTQ1OWI5MGI4M2IxYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L21hcmdpbi1jb2xsYXBzZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBw
eDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBzdHlsZT0ibWFyZ2luOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+Cisg
ICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6
IDIwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXRvcC1uZXN0ZWQuaHRt
bCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXRvcC1uZXN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zOTJlMTdkZjc2NjIyMTQ1YjMyYzEyZWE3MWVhMTViYWU0MGMzZGJk
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29s
bGFwc2UtdG9wLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBh
ZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogNjBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAg
ICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiA2MHB4OyBoZWlnaHQ6
IDQwcHg7Ij4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIwcHg7IHdp
ZHRoOiA2MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L21hcmdpbi1jb2xsYXBzZS13aGVuLWNoaWxkLWhhcy1wYWRkaW5nLWJvcmRlci5odG1sIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMt
cGFkZGluZy1ib3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjBmNjIxMWNlMjQ0ZWM3MDFkMjFjY2Qw
NmFiYjA3YjhjZGQyM2RmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9tYXJnaW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMtcGFkZGluZy1ib3JkZXIuaHRtbApA
QCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjBw
eDsiPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogLTEwcHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRo
OiAyMDBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAxMHB4OyBi
b3JkZXI6IDVweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9kaXY+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
bWFyZ2luLWNvbGxhcHNlLXdpdGgtYmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRp
bmctY29udGV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1NWQ0ZWY5NjU3NjVjYTM5ZTkyNzc0ZWIwOGVj
OGU0ZDI5ZTc2NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4dC5odG1sCkBAIC0w
LDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Jv
ZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDog
MjBweDsgaGVpZ2h0OiBhdXRvOyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206
IDIwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4
OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxv
YWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4dDIu
aHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXdpdGgtYmxv
Y2stZm9ybWF0dGluZy1jb250ZXh0Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNTQxODkyMTdjODI1YjU4
OTMwMzI1NjQzOTIzYWRjMjRiNWQzNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4
dDIuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGhp
ZGRlbjsgd2lkdGg6IDMwcHg7IGhlaWdodDogYXV0bzsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJt
YXJnaW4tYm90dG9tOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiA1MHB4OyI+CisgICAgICAg
ICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiA0MHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0
OiA1MHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5
bGU9Im92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IGF1dG87Ij4KKyAgICAg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogNTBweDsgd2lkdGg6IDQwcHg7IGhlaWdodDog
NTBweDsiPjwvZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA2MHB4OyB3aWR0
aDogNDBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHls
ZT0ibWFyZ2luLXRvcDogNTBweDsgd2lkdGg6IDQwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9t
YXJnaW4tbGVmdC1yaWdodC1zaXppbmctb3V0LW9mLWZsb3cuaHRtbCBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLW91dC1vZi1mbG93Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2VlMmRiMTBmYmFjNmRhNDA3MDlhODk3ZGFlNjcwYjNhY2QzMDU2ZQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQt
c2l6aW5nLW91dC1vZi1mbG93Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAg
cGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7IGxlZnQ6IDEwcHg7IG1hcmdpbi1sZWZ0OiAy
MDBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA2MHB4OyByaWdodDogMTBweDsgbWFyZ2luLXJpZ2h0OiA0
MDBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA5MHB4OyBtYXJnaW4tbGVmdDogNDAwcHg7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IHRvcDogMTQwcHg7IG1hcmdpbi1yaWdodDogNDAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0
OiA1MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTkw
cHg7IG1hcmdpbjogNDAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21h
cmdpbi1sZWZ0LXJpZ2h0LXNpemluZy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9t
YXJnaW4tbGVmdC1yaWdodC1zaXppbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTc3NThiZGIxODUwYzdm
OGMxNGZmOWY3NDExMjEzMzI0MWRkNWYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9tYXJnaW4tbGVmdC1yaWdodC1zaXppbmcuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAg
ICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMjAwcHg7IGhlaWdodDogMTAwcHg7Ij48
L2Rpdj4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMjBweDsgaGVpZ2h0OiAxMDBweDsiPjwv
ZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwv
ZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAtMjBweDsgaGVpZ2h0OiAxMDBweDsiPjwv
ZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luOiAyMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9t
YXJnaW4tcHJvcGFnYXRpb24tc2ltcGxlLWNvbnRlbnQtaGVpZ2h0Lmh0bWwgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L21hcmdpbi1wcm9wYWdhdGlvbi1zaW1wbGUtY29udGVudC1oZWlnaHQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45YjcwNzhmYjRkOTIzOTNiMWQxNThlM2NhMGUzZTRhMTMyZjRkNTg5
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tcHJv
cGFnYXRpb24tc2ltcGxlLWNvbnRlbnQtaGVpZ2h0Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPjxkaXYgc3R5bGU9IndpZHRo
OiAxMHB4OyBoZWlnaHQ6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7Ij48L2Rpdj48L2Rpdj4KKzxk
aXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7Ij48ZGl2IHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+PC9kaXY+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1z
aWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvbWFyZ2luLXNpYmxpbmctY29sbGFwc2UtcHJvcGFnYXRlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5
YzViYzYyMThlNDlhOWZmMzA0ZDE1MzI0NjYwYjNjNmE4NmVhNjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3Bh
Z2F0ZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTBweDsg
aGVpZ2h0OiBhdXRvOyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTUwcHg7IHdp
ZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0ibWFy
Z2luLXRvcDogLTEwMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij48L2Rpdj4KKwor
PGRpdiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW4tYm90dG9tOiAxNTBweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2
PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAtMTAwcHg7IHdpZHRoOiAyMDBweDsg
aGVpZ2h0OiAyMDBweDsiPjwvZGl2PgorCis8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxNTBw
eDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9Im1hcmdp
bi10b3A6IC0xMDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9kaXY+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFy
Z2luLXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2ltcGxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjg2NWU4MjdkODQyZmJmY2FlMTdmNmM3M2NhNjA4YzhiZWUxODk5
NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXNp
bXBsZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDIw
cHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0ibWFy
Z2luLWJvdHRvbTogMjBweDsgd2lkdGg6IDYwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorPGRp
diBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L25lZ2F0aXZlLW1hcmdpbi1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvbmVnYXRpdmUtbWFyZ2luLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwY2I4NjM5OTQ0
MTg4NDgxZDk1NmJhODdhZjJiNjMwZDMwYjUzY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L25lZ2F0aXZlLW1hcmdpbi1zaW1wbGUuaHRtbApAQCAtMCwwICsx
LDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsK
KyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00cHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJtYXJnaW46IC0xMHB4OyB3
aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00
cHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9k
aXY+Cis8ZGl2IHN0eWxlPSJtYXJnaW46IC0xMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAw
cHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00cHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00cHg7
IHBhZGRpbmc6IDVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L3BhZGRpbmctbmVzdGVkLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L3BhZGRpbmctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAzNmM0MjlkNGRmN2Y3YjQ0MDFm
ZTU4OTU0NDQ3YzAyOWFjYjUxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL3Rlc3QvcGFkZGluZy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBhZGRp
bmc6IDIwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9
InBhZGRpbmc6IDEwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9wYWRkaW5nLXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9wYWRkaW5n
LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiYzBhNGQ5ZWM3ZDRkZmViYjFmZDViNThiZmJiMmMy
NWU2MjJiNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3Bh
ZGRpbmctc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyB3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by13aXRoLXBhcmVu
dC1vZmZzZXQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by13
aXRoLXBhcmVudC1vZmZzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDFhNTU0OWE2MWQ3NWRlYTJjZjU2
YzRhYTJmNmZlZDE2YjgwNGFiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9yZWxhdGl2ZS1hdXRvLXdpdGgtcGFyZW50LW9mZnNldC5odG1sCkBAIC0wLDAgKzEs
MTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgewor
ICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogYXV0bzsgdG9w
OiBhdXRvOyB3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8u
aHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0ZGYzMzdlYTg2MjY5N2Y3ZjZmN2QxOGMzNDRjYTFmN2YwZWE0NjcKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8uaHRtbApA
QCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiBhdXRvOyB0b3A6
IGF1dG87IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYm90dG9t
Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWJvdHRvbS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM2ZTI2NjhmZjRiODg1NWIzM2YxOThmODc3ZjM1ZDI0NjgyZjAxZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWJvdHRvbS5o
dG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsg
dG9wOiBhdXRvOyBib3R0b206IDhweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2
PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDEwcHg7IGJvdHRvbTogMThw
eDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRp
b246IHJlbGF0aXZlOyBib3R0b206IDI4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDcwcHg7Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvcmVsYXRpdmUtcmlnaHQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVs
YXRpdmUtcmlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWVlYWE4MTIzMTcwZThhNmUzZDAzN2I3MjNl
MGNmY2NlZjg4NWNkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9yZWxhdGl2ZS1yaWdodC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBh
ZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogYXV0bzsgcmlnaHQ6IDhweDsgd2lkdGg6IDMwcHg7IGhl
aWdodDogNzBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1zaWJsaW5ncy5odG1sIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1zaWJsaW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNWVhMDky
MmFkNDZhYjFjM2E0YTFlZmMyMzE5ZDdlODQ5ZTRhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLXNpYmxpbmdzLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7Cisg
ICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyByaWdodDogOHB4OyB3aWR0
aDogMzBweDsgaGVpZ2h0OiA3MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVs
YXRpdmU7IHJpZ2h0OiA4cHg7IHRvcDogMTAwcHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7
Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogOHB4OyB3aWR0
aDogMzBweDsgaGVpZ2h0OiAzMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTMwcHg7
IGhlaWdodDogNDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBs
ZWZ0OiA4cHg7IHRvcDogMjBweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9y
ZWxhdGl2ZS1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUt
c2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhjNzU4MDcyZDcyYWM5YmNkYjI0ZGY4OTRjYzMxODli
YWFjOWUzMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVs
YXRpdmUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT48ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7Ij48L2Rpdj48L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335319</attachid>
            <date>2018-03-08 11:17:45 -0800</date>
            <delta_ts>2018-03-08 15:09:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183462-20180308111744.patch</filename>
            <type>text/plain</type>
            <size>216030</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mjg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmM4OTk3MTRjOTg3MjA2ZmNiYTRjMzNlMDk5YmNhNjg5
OTU2MjVmMy4uNzFlOWM2YjdkYmNiNjIzYzI0N2NiNTU1OWI0ZGRhOGE3NjBlNzY3NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
NyBAQAorMjAxOC0wMy0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtMYXlvdXRSZWxvYWRlZF0gSW5pdGlhbCBjb21taXQgLWJsb2NrIGZvcm1hdHRpbmcgY29u
dGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MzQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TGF5b3V0UmVsb2FkZWQvQmxvY2tDb250YWluZXIuanM6IEFkZGVkLgorICAgICAgICAoQmxvY2tD
b250YWluZXIpOgorICAgICAgICAoQmxvY2tDb250YWluZXIucHJvdG90eXBlLmVzdGFibGlzaGVz
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuanM6IEFkZGVkLgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5sYXlvdXQp
OgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuY29tcHV0ZVdpZHRo
KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmNvbXB1dGVIZWln
aHQpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubWFyZ2luVG9w
KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLm1hcmdpbkJvdHRv
bSk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZVN0
YXRpY1Bvc2l0aW9uKToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBl
Ll9wbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LnByb3RvdHlwZS5fcGxhY2VPdXRPZkZsb3dEZXNjZW5kYW50cyk6CisgICAgICAg
IChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZU91dE9mRmxvd1dpZHRo
KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlRmxv
YXRpbmdXaWR0aCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5f
Y29tcHV0ZUluRmxvd1dpZHRoKToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJv
dG90eXBlLl9jb21wdXRlT3V0T2ZGbG93SGVpZ2h0KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlRmxvYXRpbmdIZWlnaHQpOgorICAgICAgICAoQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVJbkZsb3dIZWlnaHQpOgorICAg
ICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVIb3Jpem9udGFs
Q29uc3RyYWludCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5f
Y29tcHV0ZUNvbnRlbnRIZWlnaHQpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5w
cm90b3R5cGUuX2NvbXB1dGVJbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24pOgorICAgICAgICAoQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVPdXRPZkZsb3dQb3NpdGlvbik6
CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fc2hyaW5rVG9GaXRX
aWR0aCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvQmxvY2tNYXJnaW5Db2xsYXBzZS5qczog
QWRkZWQuCisgICAgICAgIChCbG9ja01hcmdpbkNvbGxhcHNlLm1hcmdpblRvcCk6CisgICAgICAg
IChCbG9ja01hcmdpbkNvbGxhcHNlLm1hcmdpbkJvdHRvbSk6CisgICAgICAgIChCbG9ja01hcmdp
bkNvbGxhcHNlLl9pc01hcmdpblRvcENvbGxhcHNlZFdpdGhTaWJsaW5nKToKKyAgICAgICAgKEJs
b2NrTWFyZ2luQ29sbGFwc2UuX2lzTWFyZ2luQm90dG9tQ29sbGFwc2VkV2l0aFNpYmxpbmcpOgor
ICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5faXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoUGFy
ZW50KToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2lzTWFyZ2luQm90dG9tQ29sbGFw
c2VkV2l0aFBhcmVudCk6CisgICAgICAgIChCbG9ja01hcmdpbkNvbGxhcHNlLl9ub25Db2xsYXBz
ZWRNYXJnaW5Ub3ApOgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5fbm9uQ29sbGFwc2Vk
TWFyZ2luQm90dG9tKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2NvbGxhcHNlZE1h
cmdpblRvcEZyb21GaXJzdENoaWxkKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2Nv
bGxhcHNlZE1hcmdpbkJvdHRvbUZyb21MYXN0Q2hpbGQpOgorICAgICAgICAoQmxvY2tNYXJnaW5D
b2xsYXBzZS5fbWFyZ2luVmFsdWUpOgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5faGFz
QWRqb2luaW5nTWFyZ2luVG9wQW5kQm90dG9tKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFw
c2UpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0JveC5qczogQWRkZWQuCisgICAgICAgIChC
b3gpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pZCk6CisgICAgICAgIChCb3gucHJvdG90eXBl
LnNldFJlbmRlcmVyTmFtZSk6CisgICAgICAgIChCb3gucHJvdG90eXBlLm5hbWUpOgorICAgICAg
ICAoQm94LnByb3RvdHlwZS5ub2RlKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUucGFyZW50KToK
KyAgICAgICAgKEJveC5wcm90b3R5cGUubmV4dFNpYmxpbmcpOgorICAgICAgICAoQm94LnByb3Rv
dHlwZS5uZXh0SW5GbG93U2libGluZyk6CisgICAgICAgIChCb3gucHJvdG90eXBlLnByZXZpb3Vz
U2libGluZyk6CisgICAgICAgIChCb3gucHJvdG90eXBlLnByZXZpb3VzSW5GbG93U2libGluZyk6
CisgICAgICAgIChCb3gucHJvdG90eXBlLnNldFBhcmVudCk6CisgICAgICAgIChCb3gucHJvdG90
eXBlLnNldE5leHRTaWJsaW5nKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0UHJldmlvdXNT
aWJsaW5nKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUucmVjdCk6CisgICAgICAgIChCb3gucHJv
dG90eXBlLnRvcExlZnQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5ib3R0b21SaWdodCk6Cisg
ICAgICAgIChCb3gucHJvdG90eXBlLnNldFRvcExlZnQpOgorICAgICAgICAoQm94LnByb3RvdHlw
ZS5zZXRTaXplKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0V2lkdGgpOgorICAgICAgICAo
Qm94LnByb3RvdHlwZS5zZXRIZWlnaHQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0NvbnRh
aW5lcik6CisgICAgICAgIChCb3gucHJvdG90eXBlLmlzQmxvY2tMZXZlbEJveCk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLmlzQmxvY2tDb250YWluZXJCb3gpOgorICAgICAgICAoQm94LnByb3Rv
dHlwZS5pc0lubGluZUxldmVsQm94KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0SXNBbm9u
eW1vdXMpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0Fub255bW91cyk6CisgICAgICAgIChC
b3gucHJvdG90eXBlLmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAoQm94
LnByb3RvdHlwZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKEJveC5w
cm90b3R5cGUuZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKEJv
eC5wcm90b3R5cGUuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLmlzUG9zaXRpb25lZCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmlz
UmVsYXRpdmVQb3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNBYnNvbHV0ZVBv
c2l0aW9uZWQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0ZpeGVkUG9zaXRpb25lZCk6Cisg
ICAgICAgIChCb3gucHJvdG90eXBlLmlzSW5GbG93KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUu
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNJbkZsb3dQ
b3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNGbG9hdGluZ1Bvc2l0aW9uZWQp
OgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVk
KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNSb290RWxlbWVudCk6CisgICAgICAgIChCb3gu
cHJvdG90eXBlLmNvbnRhaW5pbmdCbG9jayk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmJvcmRl
ckJveCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLnBhZGRpbmdCb3gpOgorICAgICAgICAoQm94
LnByb3RvdHlwZS5jb250ZW50Qm94KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9Db250YWlu
ZXIuanM6IEFkZGVkLgorICAgICAgICAoQ29udGFpbmVyKToKKyAgICAgICAgKENvbnRhaW5lci5w
cm90b3R5cGUuaXNDb250YWluZXIpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5zZXRG
aXJzdENoaWxkKToKKyAgICAgICAgKENvbnRhaW5lci5wcm90b3R5cGUuc2V0TGFzdENoaWxkKToK
KyAgICAgICAgKENvbnRhaW5lci5wcm90b3R5cGUuZmlyc3RDaGlsZCk6CisgICAgICAgIChDb250
YWluZXIucHJvdG90eXBlLmZpcnN0SW5GbG93Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnBy
b3RvdHlwZS5sYXN0Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5sYXN0SW5G
bG93Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5oYXNDaGlsZCk6CisgICAg
ICAgIChDb250YWluZXIucHJvdG90eXBlLmhhc0luRmxvd0NoaWxkKToKKyAgICAgICAgKiBMYXlv
dXRSZWxvYWRlZC9GbG9hdGluZ0NvbnRleHQuanM6IEFkZGVkLgorICAgICAgICAoRmxvYXRpbmdD
b250ZXh0KToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuY29tcHV0ZVBvc2l0
aW9uKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuYm90dG9tKToKKyAgICAg
ICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX3Bvc2l0aW9uRm9yRmxvYXRpbmcpOgorICAg
ICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlwZS5fcG9zaXRpb25Gb3JDbGVhcik6CisgICAg
ICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlUG9zaXRpb25Ub0F2b2lkSW50
cnVkaW5nRmxvYXRzKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2FkZEZs
b2F0aW5nKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2ZpbmRJbm5lck1v
c3RMZWZ0QW5kUmlnaHQpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlwZS5fbW92
ZVRvTmV4dFZlcnRpY2FsUG9zaXRpb24pOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3Rv
dHlwZS5fYXZhaWxhYmxlU3BhY2UpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlw
ZS5fZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKEZsb2F0aW5nQ29u
dGV4dC5wcm90b3R5cGUuX2lzRW1wdHkpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3Rv
dHlwZS5fYWRqdXN0ZWRGbG9hdGluZ1Bvc2l0aW9uKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4
dC5wcm90b3R5cGUuX2JvdHRvbSk6CisgICAgICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBl
Ll9mb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGlu
Z0NvbnRleHQuanM6IEFkZGVkLgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAg
ICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLnJvb3RDb250YWluZXIpOgorICAgICAgICAo
Rm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmZsb2F0aW5nQ29udGV4dCk6CisgICAgICAgIChG
b3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKEZvcm1hdHRpbmdD
b250ZXh0LnByb3RvdHlwZS5jb21wdXRlV2lkdGgpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRl
eHQucHJvdG90eXBlLmNvbXB1dGVIZWlnaHQpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQu
cHJvdG90eXBlLm1hcmdpblRvcCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5
cGUubWFyZ2luTGVmdCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubWFy
Z2luQm90dG9tKToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5tYXJnaW5S
aWdodCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuYWJzb2x1dGVNYXJn
aW5Cb3gpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmFic29sdXRlQm9y
ZGVyQm94KToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5hYnNvbHV0ZVBh
ZGRpbmdCb3gpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmFic29sdXRl
Q29udGVudEJveCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvSW5pdGlhbEJsb2NrQ29udGFp
bmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKEluaXRpYWxCbG9ja0NvbnRhaW5lcik6CisgICAgICAg
IChJbml0aWFsQmxvY2tDb250YWluZXIucHJvdG90eXBlLmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCk6CisgICAgICAgIChJbml0aWFsQmxvY2tDb250YWluZXIucHJvdG90eXBlLnBh
ZGRpbmdCb3gpOgorICAgICAgICAoSW5pdGlhbEJsb2NrQ29udGFpbmVyLnByb3RvdHlwZS5jb250
ZW50Qm94KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9JbmxpbmVCb3guanM6IEFkZGVkLgor
ICAgICAgICAoSW5saW5lQm94KToKKyAgICAgICAgKElubGluZUJveC5wcm90b3R5cGUuc2V0VGV4
dCk6CisgICAgICAgIChJbmxpbmVCb3gucHJvdG90eXBlLnRleHQpOgorICAgICAgICAqIExheW91
dFJlbG9hZGVkL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKElu
bGluZUZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKElubGluZUZvcm1hdHRpbmdDb250ZXh0
LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQucHJv
dG90eXBlLl9oYW5kbGVJbmxpbmVCb3gpOgorICAgICAgICAoSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQucHJvdG90eXBlLl9oYW5kbGVUZXh0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlv
dXQuanM6IEFkZGVkLgorICAgICAgICAobGF5b3V0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRl
ZC9MYXlvdXRDb250ZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKExheW91dENvbnRleHQpOgorICAg
ICAgICAoTGF5b3V0Q29udGV4dC5wcm90b3R5cGUubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHQpOgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL2NvbnRl
bnRzLnhjd29ya3NwYWNlZGF0YTogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvTGF5
b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5w
bGlzdDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvUkVBRE1FLm1kOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9UZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKFRleHQp
OgorICAgICAgICAqIExheW91dFJlbG9hZGVkL1RyZWVCdWlsZGVyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFRyZWVCdWlsZGVyLnByb3RvdHlwZS5jcmVhdGVUcmVlKToKKyAgICAgICAgKFRyZWVCdWls
ZGVyLnByb3RvdHlwZS5fY3JlYXRlQW5kQXR0YWNoQm94KToKKyAgICAgICAgKFRyZWVCdWlsZGVy
LnByb3RvdHlwZS5fYXBwZW5kQ2hpbGQpOgorICAgICAgICAoVHJlZUJ1aWxkZXIucHJvdG90eXBl
Ll9maW5kQm94KToKKyAgICAgICAgKFRyZWVCdWlsZGVyLnByb3RvdHlwZS5fZmluZE5vZGUpOgor
ICAgICAgICAoVHJlZUJ1aWxkZXIpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL1V0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKExheW91dFBvaW50KToKKyAgICAgICAgKExheW91dFBvaW50LnBy
b3RvdHlwZS5zZXRMZWZ0KToKKyAgICAgICAgKExheW91dFBvaW50LnByb3RvdHlwZS5zZXRUb3Ap
OgorICAgICAgICAoTGF5b3V0UG9pbnQucHJvdG90eXBlLmxlZnQpOgorICAgICAgICAoTGF5b3V0
UG9pbnQucHJvdG90eXBlLnRvcCk6CisgICAgICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUuc2hp
ZnRMZWZ0KToKKyAgICAgICAgKExheW91dFBvaW50LnByb3RvdHlwZS5zaGlmdFRvcCk6CisgICAg
ICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUubW92ZUJ5KToKKyAgICAgICAgKExheW91dFBvaW50
LnByb3RvdHlwZS5lcXVhbCk6CisgICAgICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUuY2xvbmUp
OgorICAgICAgICAoTGF5b3V0U2l6ZSk6CisgICAgICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5z
ZXRXaWR0aCk6CisgICAgICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5zZXRIZWlnaHQpOgorICAg
ICAgICAoTGF5b3V0U2l6ZS5wcm90b3R5cGUud2lkdGgpOgorICAgICAgICAoTGF5b3V0U2l6ZS5w
cm90b3R5cGUuaGVpZ2h0KToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBlLmdyb3dCeSk6
CisgICAgICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5zaHJpbmtCeSk6CisgICAgICAgIChMYXlv
dXRTaXplLnByb3RvdHlwZS5pc0VtcHR5KToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBl
LmVxdWFsKToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBlLmNsb25lKToKKyAgICAgICAg
KExheW91dFJlY3QpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2V0VG9wKToKKyAg
ICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldExlZnQpOgorICAgICAgICAoTGF5b3V0UmVj
dC5wcm90b3R5cGUuc2V0Qm90dG9tKToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNl
dFJpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLmxlZnQpOgorICAgICAgICAo
TGF5b3V0UmVjdC5wcm90b3R5cGUudG9wKToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBl
LmJvdHRvbSk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5yaWdodCk6CisgICAgICAg
IChMYXlvdXRSZWN0LnByb3RvdHlwZS5zZXRUb3BMZWZ0KToKKyAgICAgICAgKExheW91dFJlY3Qu
cHJvdG90eXBlLnRvcExlZnQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUudG9wUmln
aHQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuYm90dG9tUmlnaHQpOgorICAgICAg
ICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2V0V2lkdGgpOgorICAgICAgICAoTGF5b3V0UmVjdC5w
cm90b3R5cGUuc2V0SGVpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldFNp
emUpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2l6ZSk6CisgICAgICAgIChMYXlv
dXRSZWN0LnByb3RvdHlwZS53aWR0aCk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5o
ZWlnaHQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuZ3Jvd0J5KToKKyAgICAgICAg
KExheW91dFJlY3QucHJvdG90eXBlLnNocmlua0J5KToKKyAgICAgICAgKExheW91dFJlY3QucHJv
dG90eXBlLm1vdmVCeSk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5pc0VtcHR5KToK
KyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLmVxdWFsKToKKyAgICAgICAgKExheW91dFJl
Y3QucHJvdG90eXBlLmludGVyc2VjdHMpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUu
Y29udGFpbnMpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuY2xvbmUpOgorICAgICAg
ICAoQVNTRVJUX05PVF9SRUFDSEVEKToKKyAgICAgICAgKEFTU0VSVCk6CisgICAgICAgIChVdGls
cy5jb21wdXRlZFZhbHVlKToKKyAgICAgICAgKFV0aWxzLnByb3BlcnR5SXNBdXRvKToKKyAgICAg
ICAgKFV0aWxzLmlzV2lkdGhBdXRvKToKKyAgICAgICAgKFV0aWxzLmlzSGVpZ2h0QXV0byk6Cisg
ICAgICAgIChVdGlscy5pc1RvcEF1dG8pOgorICAgICAgICAoVXRpbHMuaXNMZWZ0QXV0byk6Cisg
ICAgICAgIChVdGlscy5pc0JvdHRvbUF1dG8pOgorICAgICAgICAoVXRpbHMuaXNSaWdodEF1dG8p
OgorICAgICAgICAoVXRpbHMud2lkdGgpOgorICAgICAgICAoVXRpbHMuaGVpZ2h0KToKKyAgICAg
ICAgKFV0aWxzLnRvcCk6CisgICAgICAgIChVdGlscy5ib3R0b20pOgorICAgICAgICAoVXRpbHMu
bGVmdCk6CisgICAgICAgIChVdGlscy5yaWdodCk6CisgICAgICAgIChVdGlscy5oYXNCb3JkZXJU
b3ApOgorICAgICAgICAoVXRpbHMuaGFzQm9yZGVyQm90dG9tKToKKyAgICAgICAgKFV0aWxzLmhh
c1BhZGRpbmdUb3ApOgorICAgICAgICAoVXRpbHMuaGFzUGFkZGluZ0JvdHRvbSk6CisgICAgICAg
IChVdGlscy5jb21wdXRlZE1hcmdpblRvcCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZE1hcmdp
bkxlZnQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRNYXJnaW5Cb3R0b20pOgorICAgICAgICAo
VXRpbHMuY29tcHV0ZWRNYXJnaW5SaWdodCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZEJvcmRl
clRvcExlZnQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRCb3JkZXJCb3R0b21SaWdodCk6Cisg
ICAgICAgIChVdGlscy5jb21wdXRlZFBhZGRpbmdUb3BMZWZ0KToKKyAgICAgICAgKFV0aWxzLmNv
bXB1dGVkUGFkZGluZ0JvdHRvbVJpZ2h0KToKKyAgICAgICAgKFV0aWxzLmNvbXB1dGVkQm9yZGVy
QW5kUGFkZGluZ1RvcCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdM
ZWZ0KToKKyAgICAgICAgKFV0aWxzLmNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ0JvdHRvbSk6Cisg
ICAgICAgIChVdGlscy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdSaWdodCk6CisgICAgICAgIChV
dGlscy5jb21wdXRlZEhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nKToKKyAgICAgICAgKFV0aWxz
LmNvbXB1dGVkVmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKToKKyAgICAgICAgKFV0aWxzLmhhc0Ns
ZWFyKToKKyAgICAgICAgKFV0aWxzLmhhc0NsZWFyTGVmdCk6CisgICAgICAgIChVdGlscy5oYXND
bGVhclJpZ2h0KToKKyAgICAgICAgKFV0aWxzLmhhc0NsZWFyQm90aCk6CisgICAgICAgIChVdGls
cy5pc0Jsb2NrTGV2ZWxFbGVtZW50KToKKyAgICAgICAgKFV0aWxzLmlzQmxvY2tDb250YWluZXJF
bGVtZW50KToKKyAgICAgICAgKFV0aWxzLmlzSW5saW5lTGV2ZWxFbGVtZW50KToKKyAgICAgICAg
KFV0aWxzLmlzVGFibGVFbGVtZW50KToKKyAgICAgICAgKFV0aWxzLmlzUmVsYXRpdmVQb3NpdGlv
bmVkKToKKyAgICAgICAgKFV0aWxzLmlzQWJzb2x1dGVQb3NpdGlvbmVkKToKKyAgICAgICAgKFV0
aWxzLmlzRml4ZWRQb3NpdGlvbmVkKToKKyAgICAgICAgKFV0aWxzLmlzT3ZlcmZsb3dWaXNpYmxl
KToKKyAgICAgICAgKFV0aWxzLmlzRmxvYXRpbmdQb3NpdGlvbmVkKToKKyAgICAgICAgKFV0aWxz
LmlzRmxvYXRpbmdMZWZ0KToKKyAgICAgICAgKFV0aWxzLm1hcFRvQ29udGFpbmVyKToKKyAgICAg
ICAgKFV0aWxzLm1hcFN0YXRpY1RvQWJzb2x1dGUpOgorICAgICAgICAoVXRpbHMuY29sbGVjdE91
dE9mRmxvd0Rlc2NlbmRhbnRzKToKKyAgICAgICAgKFV0aWxzLm5leHRCcmVha2luZ09wcG9ydHVu
aXR5KToKKyAgICAgICAgKFV0aWxzLm1lYXN1cmVUZXh0KToKKyAgICAgICAgKFV0aWxzLmxheW91
dFRyZWVEdW1wKToKKyAgICAgICAgKFV0aWxzLl9kdW1wQm94KToKKyAgICAgICAgKFV0aWxzLl9k
dW1wVHJlZSk6CisgICAgICAgIChVdGlscyk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlz
Yy9MYXlvdXRSZWxvYWRlZFdlYktpdC5wYXRjaDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrQ29udGFpbmVyLmg6IEFkZGVkLgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6IEFkZGVk
LgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxh
cHNlLmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Cb3gu
aDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5l
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRmxvYXRp
bmdDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVy
cy9Gb3JtYXR0aW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9t
aXNjL2hlYWRlcnMvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmg6IEFkZGVkLgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9JbmxpbmVCb3guaDogQWRkZWQuCisgICAgICAgICog
TGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaDogQWRkZWQuCisgICAgICAg
ICogTGF5b3V0UmVsb2FkZWQvdGVzdC9UZXN0SGFybmVzcy5qczogQWRkZWQuCisgICAgICAgICh2
ZXJpZnlMYXlvdXRUcmVlRHVtcCk6CisgICAgICAgIChydW5MYXlvdXQpOgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtYXV0by13aXRoLXNpYmxpbmctbWFyZ2luLWJvdHRv
bS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWJv
dHRvbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRl
LWhlaWdodC1zdHJldGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rl
c3QvYWJzb2x1dGUtbGVmdC1hdXRvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1yaWdodC10b3AtYm90dG9tLWF1dG8uaHRtbDogQWRkZWQu
CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1uZXN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1uZXN0ZWQyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgt
c2hyaW5rLXRvLWZpdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0
L2Fic29sdXRlLXdpZHRoLXN0cmV0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLWlubGluZS1wcmVmZXJyZWQtd2lkdGguaHRtbDogQWRk
ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLXN0YXRpYy1i
bG9jay1wb3NpdGlvbi1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9hbG1vc3QtaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYm9yZGVyLXNpbXBsZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2ZpeGVkLW5lc3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0LWxlZnQtd2hlbi1jb250YWluZXIt
aGFzLXBhZGRpbmctbWFyZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLWJvdGgtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLXJpZ2h0LXNpbXBsZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1s
ZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS13aXRoLXRvcC1vZmZzZXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVs
dGlwbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGlu
Zy1ib3gtcmlnaHQtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2libGluZ3MuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtd2l0aC1jbGVhci1zaW1wbGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gt
d2l0aC1uZXctZm9ybWF0dGluZy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91
dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtcmVsYXRpdmUtcG9zaXRpb25lZC1zaWJs
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmct
bGVmdC1yaWdodC1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXdpdGgtYWxsLW1hcmdpbnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0cy1hbmQtcmlnaHRzLXNp
bXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5n
LW11bHRpcGxlLWxlZnRzLWluLWJvZHkuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1tdWx0aXBsZS1saW5lcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxl
ZnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmct
c2l6aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctc2l6aW5nMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zs
b2F0aW5nLXNpemluZzMuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy13aXRoLW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbDogQWRkZWQu
CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2lubGluZS1jb250ZW50LXNpbXBsZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0LWZsb2F0LXNp
bXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1j
b2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtZmlyc3QtbGFzdC1hcmUt
ZmxvYXRpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJn
aW4tY29sbGFwc2Utc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXRvcC1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
TGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMtcGFkZGlu
Zy1ib3JkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJn
aW4tY29sbGFwc2Utd2l0aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9jay1m
b3JtYXR0aW5nLWNvbnRleHQyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLW91dC1vZi1mbG93Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXByb3BhZ2F0
aW9uLXNpbXBsZS1jb250ZW50LWhlaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC90ZXN0L21hcmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2ltcGxlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbmVnYXRpdmUtbWFyZ2luLXNpbXBs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L3BhZGRpbmctbmVz
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvcGFkZGluZy1z
aW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2
ZS1hdXRvLXdpdGgtcGFyZW50LW9mZnNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8uaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0
UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1ib3R0b20uaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1yaWdodC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBM
YXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLXNpYmxpbmdzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIExheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtc2ltcGxlLmh0bWw6IEFkZGVkLgorCiAy
MDE4LTAzLTA1ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gSW1wbGVtZW50IFdUUidzIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNL
ZXkoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvQmxvY2tDb250YWluZXIuanMg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0NvbnRhaW5lci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTQ5
MWMxOTkwODg0ZmQ2OWRlMGRjYTRjNzhmZjRmZjU2YjdkOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvQmxvY2tDb250YWluZXIuanMKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NsYXNzIEJsb2Nr
Q29udGFpbmVyIGV4dGVuZHMgQ29udGFpbmVyIHsKKyAgICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkg
eworICAgICAgICBzdXBlcihub2RlLCBpZCk7CisgICAgfQorCisgICAgZXN0YWJsaXNoZXNJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAgICAgICAgLy8gOS40LjIgSW5saW5lIGZvcm1hdHRp
bmcgY29udGV4dHMKKyAgICAgICAgLy8gQW4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCBpcyBl
c3RhYmxpc2hlZCBieSBhIGJsb2NrIGNvbnRhaW5lciBib3ggdGhhdCBjb250YWlucyBubyBibG9j
ay1sZXZlbCBib3hlcy4KKyAgICAgICAgZm9yIChsZXQgY2hpbGQgPSB0aGlzLmZpcnN0SW5GbG93
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dEluRmxvd1NpYmxpbmcoKSkgeworICAg
ICAgICAgICAgaWYgKGNoaWxkLmlzQmxvY2tMZXZlbEJveCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkZsb3dDaGls
ZCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZTcyOGMyODUwODc3OTQzM2VlMTM3NThjNmYxNDlkYzU5
ZjQ0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmpzCkBAIC0wLDAgKzEsMzE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KK2NsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQgZXh0ZW5k
cyBGb3JtYXR0aW5nQ29udGV4dCB7CisgICAgY29uc3RydWN0b3Iocm9vdCkgeworICAgICAgICBz
dXBlcihyb290KTsKKyAgICAgICAgLy8gTmV3IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCBhbHdh
eXMgZXN0YWJsaXNoZXMgYSBuZXcgZmxvYXRpbmcgY29udGV4dC4KKyAgICAgICAgdGhpcy5tX2Zs
b2F0aW5nQ29udGV4dCA9IG5ldyBGbG9hdGluZ0NvbnRleHQodGhpcyk7CisgICAgfQorCisgICAg
bGF5b3V0KGxheW91dENvbnRleHQpIHsKKyAgICAgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0cworICAgICAgICAvLyBJbiBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCwgYm94
ZXMgYXJlIGxhaWQgb3V0IG9uZSBhZnRlciB0aGUgb3RoZXIsIHZlcnRpY2FsbHksIGJlZ2lubmlu
ZyBhdCB0aGUgdG9wIG9mIGEgY29udGFpbmluZyBibG9jay4KKyAgICAgICAgLy8gVGhlIHZlcnRp
Y2FsIGRpc3RhbmNlIGJldHdlZW4gdHdvIHNpYmxpbmcgYm94ZXMgaXMgZGV0ZXJtaW5lZCBieSB0
aGUgJ21hcmdpbicgcHJvcGVydGllcy4KKyAgICAgICAgLy8gVmVydGljYWwgbWFyZ2lucyBiZXR3
ZWVuIGFkamFjZW50IGJsb2NrLWxldmVsIGJveGVzIGluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250
ZXh0IGNvbGxhcHNlLgorICAgICAgICBpZiAoIXRoaXMucm9vdENvbnRhaW5lcigpLmZpcnN0Q2hp
bGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3Jk
ZXIgdHJlZSB0cmF2ZXJzYWwgbGF5b3V0LgorICAgICAgICBsZXQgbGF5b3V0U3RhY2sgPSBuZXcg
QXJyYXkoKTsKKyAgICAgICAgLy8gVGhlIHJvb3QgY29udGFpbmVyIGxheW91dCBpcyBkb25lIGlu
IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMgaW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVh
dGVzLCBzbyBsZXQncyBzdGFydCB3aXRoIHRoZSBmaXJzdCBjaGlsZC4KKyAgICAgICAgbGF5b3V0
U3RhY2sucHVzaCh0aGlzLnJvb3RDb250YWluZXIoKS5maXJzdENoaWxkKCkpOworICAgICAgICAv
LyAxLiBHbyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSBsZWFmIG5vZGUKKyAgICAgICAgLy8gMi4g
Q29tcHV0ZSBzdGF0aWMgcG9zaXRpb24gYW5kIHdpZHRoIGFzIHdlIHRyYXZlcnMgZG93bgorICAg
ICAgICAvLyAzLiBBcyB3ZSBjbGltYiBiYWNrIG9uIHRoZSB0cmVlLCBjb21wdXRlIGhlaWdodCBh
bmQgZmluaWFsaXplIHBvc2l0aW9uCisgICAgICAgIC8vIChBbnkgc3VidHJlZXMgd2l0aCBuZXcg
Zm9ybWF0dGluZyBjb250ZXh0cyBuZWVkIHRvIGxheW91dCBzeW5jaHJvbm91c2x5KQorICAgICAg
ICB3aGlsZSAobGF5b3V0U3RhY2subGVuZ3RoKSB7CisgICAgICAgICAgICAvLyBUcmF2ZXJzIGRv
d24gb24gdGhlIGRlc2NlbmRhbnRzIHVudGlsIHdlIGZpbmQgYSBsZWFmIG5vZGUuCisgICAgICAg
ICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGxldCBib3ggPSBsYXlvdXRTdGFj
a1tsYXlvdXRTdGFjay5sZW5ndGggLSAxXTsKKyAgICAgICAgICAgICAgICBib3guc2V0V2lkdGgo
dGhpcy5jb21wdXRlV2lkdGgoYm94KSk7CisgICAgICAgICAgICAgICAgYm94LnNldFRvcExlZnQo
dGhpcy5fY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGJveCkpOworICAgICAgICAgICAgICAgIGlmIChi
b3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAg
IGxheW91dENvbnRleHQubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHQoYm94LmVzdGFibGlzaGVkRm9y
bWF0dGluZ0NvbnRleHQoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWJveC5pc0NvbnRhaW5lcigpIHx8ICFib3gu
aGFzQ2hpbGQoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
bGF5b3V0U3RhY2sucHVzaChib3guZmlyc3RDaGlsZCgpKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gQ2xpbWIgYmFjayBvbiB0aGUgYW5jZXN0b3JzIGFuZCBjb21wdXRlIGhlaWdo
dC9maW5hbCBwb3NpdGlvbi4KKyAgICAgICAgICAgIHdoaWxlIChsYXlvdXRTdGFjay5sZW5ndGgp
IHsKKyAgICAgICAgICAgICAgICAvLyBBbGwgaW5mbG93IGRlc2NlbmRhbnRzIChpZiB0aGVyZSBh
cmUgYW55KSBhcmUgbGFpZCBvdXQgYnkgbm93LiBMZXQncyBjb21wdXRlIHRoZSBib3gncyBoZWln
aHQuCisgICAgICAgICAgICAgICAgbGV0IGJveCA9IGxheW91dFN0YWNrLnBvcCgpOworICAgICAg
ICAgICAgICAgIGJveC5zZXRIZWlnaHQodGhpcy5jb21wdXRlSGVpZ2h0KGJveCkpOworICAgICAg
ICAgICAgICAgIC8vIEFkanVzdCBwb3NpdGlvbiBub3cgdGhhdCB3ZSBoYXZlIGFsbCB0aGUgcHJl
dmlvdXMgZmxvYXRzIHBsYWNlZCBpbiB0aGlzIGNvbnRleHQgLWlmIG5lZWRlZC4KKyAgICAgICAg
ICAgICAgICBib3guc2V0VG9wTGVmdCh0aGlzLmZsb2F0aW5nQ29udGV4dCgpLmNvbXB1dGVQb3Np
dGlvbihib3gpKTsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIHBvc2l0aW9uZWQgY2hpbGRyZW4g
dG8gdGhlaXIgZmluYWwgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgaWYgKGJveC5pc0NvbnRh
aW5lcigpKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BsYWNlSW5GbG93UG9zaXRpb25l
ZENoaWxkcmVuKGJveCk7CisgICAgICAgICAgICAgICAgICAgIC8vIFBsYWNlIHRoZSBvdXQgb2Yg
ZmxvdyBjb250ZW50LgorICAgICAgICAgICAgICAgICAgICB0aGlzLl9wbGFjZU91dE9mRmxvd0Rl
c2NlbmRhbnRzKGJveCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChi
b3gubmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGFjay5wdXNo
KGJveC5uZXh0U2libGluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIEFuZCBmaW5h
bGx5IHBsYWNlIHRoZSBvdXQgb2YgZmxvdyBkZXNjZW5kYW50cyBmb3IgdGhlIHJvb3QuCisgICAg
ICAgIHRoaXMuX3BsYWNlT3V0T2ZGbG93RGVzY2VuZGFudHModGhpcy5yb290Q29udGFpbmVyKCkp
OworICAgfQorCisgICAgY29tcHV0ZVdpZHRoKGJveCkgeworICAgICAgICBpZiAoYm94LmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVPdXRP
ZkZsb3dXaWR0aChib3gpOworICAgICAgICBpZiAoYm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcHV0ZUZsb2F0aW5nV2lkdGgoYm94KTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVJbkZsb3dXaWR0aChib3gpOworICAgIH0KKworICAg
IGNvbXB1dGVIZWlnaHQoYm94KSB7CisgICAgICAgIGlmIChib3guaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcHV0ZU91dE9mRmxvd0hlaWdodChi
b3gpOworICAgICAgICBpZiAoYm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KGJveCk7CisgICAgICAgIHJldHVy
biB0aGlzLl9jb21wdXRlSW5GbG93SGVpZ2h0KGJveCk7CisgICAgfQorCisgICAgbWFyZ2luVG9w
KGJveCkgeworICAgICAgICByZXR1cm4gQmxvY2tNYXJnaW5Db2xsYXBzZS5tYXJnaW5Ub3AoYm94
KTsKKyAgICB9CisKKyAgICBtYXJnaW5Cb3R0b20oYm94KSB7CisgICAgICAgIHJldHVybiBCbG9j
a01hcmdpbkNvbGxhcHNlLm1hcmdpbkJvdHRvbShib3gpOworICAgIH0KKworICAgIF9jb21wdXRl
U3RhdGljUG9zaXRpb24oYm94KSB7CisgICAgICAgIC8vIEluIGEgYmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0LCBib3hlcyBhcmUgbGFpZCBvdXQgb25lIGFmdGVyIHRoZSBvdGhlciwgdmVydGljYWxs
eSwgYmVnaW5uaW5nIGF0IHRoZSB0b3Agb2YgYSBjb250YWluaW5nIGJsb2NrLgorICAgICAgICAv
LyBUaGUgdmVydGljYWwgZGlzdGFuY2UgYmV0d2VlbiB0d28gc2libGluZyBib3hlcyBpcyBkZXRl
cm1pbmVkIGJ5IHRoZSAnbWFyZ2luJyBwcm9wZXJ0aWVzLgorICAgICAgICAvLyBWZXJ0aWNhbCBt
YXJnaW5zIGJldHdlZW4gYWRqYWNlbnQgYmxvY2stbGV2ZWwgYm94ZXMgaW4gYSBibG9jayBmb3Jt
YXR0aW5nIGNvbnRleHQgY29sbGFwc2UuCisgICAgICAgIGxldCBwYXJlbnQgPSBib3gucGFyZW50
KCk7CisgICAgICAgIC8vIFN0YXJ0IGZyb20gdGhlIHRvcCBvZiB0aGUgY29udGFpbmVyJ3MgY29u
dGVudCBib3guCisgICAgICAgIGxldCBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBib3gucHJldmlv
dXNJbkZsb3dTaWJsaW5nKCk7CisgICAgICAgIGxldCBjb250ZW50Qm90dG9tID0gcHJldmlvdXNJ
bkZsb3dTaWJsaW5nID8gcHJldmlvdXNJbkZsb3dTaWJsaW5nLmJvdHRvbVJpZ2h0KCkudG9wKCkg
KyB0aGlzLm1hcmdpbkJvdHRvbShwcmV2aW91c0luRmxvd1NpYmxpbmcpIDogcGFyZW50LmNvbnRl
bnRCb3goKS50b3AoKTsKKyAgICAgICAgbGV0IHBvc2l0aW9uID0gbmV3IExheW91dFBvaW50KGNv
bnRlbnRCb3R0b20sIHBhcmVudC5jb250ZW50Qm94KCkubGVmdCgpKTsKKyAgICAgICAgcG9zaXRp
b24ubW92ZUJ5KG5ldyBMYXlvdXRTaXplKHRoaXMubWFyZ2luTGVmdChib3gpLCB0aGlzLm1hcmdp
blRvcChib3gpKSk7CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9CisKKyAgICBfcGxh
Y2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29udGFpbmVyKSB7CisgICAgICAgIGZvciAobGV0
IGluRmxvd0NoaWxkID0gY29udGFpbmVyLmZpcnN0SW5GbG93Q2hpbGQoKTsgaW5GbG93Q2hpbGQ7
IGluRmxvd0NoaWxkID0gaW5GbG93Q2hpbGQubmV4dEluRmxvd1NpYmxpbmcoKSkKKyAgICAgICAg
ICAgIGluRmxvd0NoaWxkLnNldFRvcExlZnQodGhpcy5fY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQ
b3NpdGlvbihpbkZsb3dDaGlsZCkpOworICAgIH0KKworICAgIF9wbGFjZU91dE9mRmxvd0Rlc2Nl
bmRhbnRzKGNvbnRhaW5lcikgeworICAgICAgICBsZXQgb3V0T2ZGbG93RGVzY2VuZGFudHMgPSBV
dGlscy5jb2xsZWN0T3V0T2ZGbG93RGVzY2VuZGFudHMoY29udGFpbmVyKTsKKyAgICAgICAgZm9y
IChsZXQgb3V0T2ZGbG93Qm94IG9mIG91dE9mRmxvd0Rlc2NlbmRhbnRzKQorICAgICAgICAgICAg
b3V0T2ZGbG93Qm94LnNldFRvcExlZnQodGhpcy5fY29tcHV0ZU91dE9mRmxvd1Bvc2l0aW9uKG91
dE9mRmxvd0JveCkpOworICAgIH0KKworICAgIF9jb21wdXRlT3V0T2ZGbG93V2lkdGgoYm94KSB7
CisgICAgICAgIC8vIDEwLjMuNyBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIG5vbi1yZXBsYWNlZCBl
bGVtZW50cworCisgICAgICAgIC8vIDEuICdsZWZ0JyBhbmQgJ3dpZHRoJyBhcmUgJ2F1dG8nIGFu
ZCAncmlnaHQnIGlzIG5vdCAnYXV0bycsIHRoZW4gdGhlIHdpZHRoIGlzIHNocmluay10by1maXQu
IFRoZW4gc29sdmUgZm9yICdsZWZ0JworICAgICAgICAvLyAyLiAnbGVmdCcgYW5kICdyaWdodCcg
YXJlICdhdXRvJyBhbmQgJ3dpZHRoJyBpcyBub3QgJ2F1dG8nLCB0aGVuIGlmIHRoZSAnZGlyZWN0
aW9uJyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBlc3RhYmxpc2hpbmcKKyAgICAgICAgLy8gICAg
IHRoZSBzdGF0aWMtcG9zaXRpb24gY29udGFpbmluZyBibG9jayBpcyAnbHRyJyBzZXQgJ2xlZnQn
IHRvIHRoZSBzdGF0aWMgcG9zaXRpb24sIG90aGVyd2lzZSBzZXQgJ3JpZ2h0JyB0byB0aGUgc3Rh
dGljIHBvc2l0aW9uLgorICAgICAgICAvLyAgICAgVGhlbiBzb2x2ZSBmb3IgJ2xlZnQnIChpZiAn
ZGlyZWN0aW9uIGlzICdydGwnKSBvciAncmlnaHQnIChpZiAnZGlyZWN0aW9uJyBpcyAnbHRyJyku
CisgICAgICAgIC8vIDMuICd3aWR0aCcgYW5kICdyaWdodCcgYXJlICdhdXRvJyBhbmQgJ2xlZnQn
IGlzIG5vdCAnYXV0bycsIHRoZW4gdGhlIHdpZHRoIGlzIHNocmluay10by1maXQgLiBUaGVuIHNv
bHZlIGZvciAncmlnaHQnCisgICAgICAgIC8vIDQuICdsZWZ0JyBpcyAnYXV0bycsICd3aWR0aCcg
YW5kICdyaWdodCcgYXJlIG5vdCAnYXV0bycsIHRoZW4gc29sdmUgZm9yICdsZWZ0JworICAgICAg
ICAvLyA1LiAnd2lkdGgnIGlzICdhdXRvJywgJ2xlZnQnIGFuZCAncmlnaHQnIGFyZSBub3QgJ2F1
dG8nLCB0aGVuIHNvbHZlIGZvciAnd2lkdGgnCisgICAgICAgIC8vIDYuICdyaWdodCcgaXMgJ2F1
dG8nLCAnbGVmdCcgYW5kICd3aWR0aCcgYXJlIG5vdCAnYXV0bycsIHRoZW4gc29sdmUgZm9yICdy
aWdodCcKKyAgICAgICAgbGV0IHdpZHRoID0gTnVtYmVyLk5hTjsKKyAgICAgICAgaWYgKFV0aWxz
LmlzV2lkdGhBdXRvKGJveCkgJiYgVXRpbHMuaXNMZWZ0QXV0byhib3gpICYmIFV0aWxzLmlzUmln
aHRBdXRvKGJveCkpCisgICAgICAgICAgICB3aWR0aCA9IHRoaXMuX3Nocmlua1RvRml0V2lkdGgo
Ym94KTsKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNMZWZ0QXV0byhib3gpICYmIFV0aWxzLmlz
V2lkdGhBdXRvKGJveCkgJiYgIVV0aWxzLmlzUmlnaHRBdXRvKGJveCkpCisgICAgICAgICAgICB3
aWR0aCA9IHRoaXMuX3Nocmlua1RvRml0V2lkdGgoYm94KTsgLy8gMQorICAgICAgICBlbHNlIGlm
IChVdGlscy5pc0xlZnRBdXRvKGJveCkgJiYgVXRpbHMuaXNSaWdodEF1dG8oYm94KSAmJiAhVXRp
bHMuaXNXaWR0aEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0gVXRpbHMud2lkdGgoYm94
KTsgLy8gMgorICAgICAgICBlbHNlIGlmIChVdGlscy5pc1dpZHRoQXV0byhib3gpICYmIFV0aWxz
LmlzUmlnaHRBdXRvKGJveCkgJiYgIVV0aWxzLmlzTGVmdEF1dG8oYm94KSkKKyAgICAgICAgICAg
IHdpZHRoID0gdGhpcy5fc2hyaW5rVG9GaXRXaWR0aChib3gpOyAvLyAzCisgICAgICAgIGVsc2Ug
aWYgKFV0aWxzLmlzTGVmdEF1dG8oYm94KSAmJiAhVXRpbHMuaXNXaWR0aEF1dG8oYm94KSAmJiAh
VXRpbHMuaXNSaWdodEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0gVXRpbHMud2lkdGgo
Ym94KTsgLy8gNAorICAgICAgICBlbHNlIGlmIChVdGlscy5pc1dpZHRoQXV0byhib3gpICYmICFV
dGlscy5pc0xlZnRBdXRvKGJveCkgJiYgIVV0aWxzLmlzUmlnaHRBdXRvKGJveCkpCisgICAgICAg
ICAgICB3aWR0aCA9IE1hdGgubWF4KDAsIGJveC5jb250YWluaW5nQmxvY2soKS5jb250ZW50Qm94
KCkud2lkdGgoKSAtIFV0aWxzLnJpZ2h0KGJveCkgLSBVdGlscy5sZWZ0KGJveCkpOyAvLyA1Cisg
ICAgICAgIGVsc2UgaWYgKFV0aWxzLmlzUmlnaHRBdXRvKGJveCkgJiYgIVV0aWxzLmlzTGVmdEF1
dG8oYm94KSAmJiAhVXRpbHMuaXNXaWR0aEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0g
VXRpbHMud2lkdGgoYm94KTsgLy8gNgorICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHdpZHRoICsgVXRpbHMuY29tcHV0ZWRIb3Jp
em9udGFsQm9yZGVyQW5kUGFkZGluZyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlRmxvYXRp
bmdXaWR0aChib3gpIHsKKyAgICAgICAgLy8gRklYTUU6IG1pc3NpbmcgY2FzZXMKKyAgICAgICAg
cmV0dXJuIFV0aWxzLndpZHRoKGJveCkgKyBVdGlscy5jb21wdXRlZEhvcml6b250YWxCb3JkZXJB
bmRQYWRkaW5nKGJveCk7CisgICAgfQorCisgICAgX2NvbXB1dGVJbkZsb3dXaWR0aChib3gpIHsK
KyAgICAgICAgaWYgKFV0aWxzLmlzV2lkdGhBdXRvKGJveCkpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fY29tcHV0ZUhvcml6b250YWxDb25zdHJhaW50KGJveCk7CisgICAgICAgIHJldHVybiBV
dGlscy53aWR0aChib3gpICsgVXRpbHMuY29tcHV0ZWRIb3Jpem9udGFsQm9yZGVyQW5kUGFkZGlu
Zyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlT3V0T2ZGbG93SGVpZ2h0KGJveCkgeworICAg
ICAgICAvLyAxLiBJZiBhbGwgdGhyZWUgb2YgJ3RvcCcsICdoZWlnaHQnLCBhbmQgJ2JvdHRvbScg
YXJlIGF1dG8sIHNldCAndG9wJyB0byB0aGUgc3RhdGljIHBvc2l0aW9uIGFuZCBhcHBseSBydWxl
IG51bWJlciB0aHJlZSBiZWxvdy4KKyAgICAgICAgLy8gMi4gSWYgbm9uZSBvZiB0aGUgdGhyZWUg
YXJlICdhdXRvJzogSWYgYm90aCAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyBhcmUg
J2F1dG8nLCBzb2x2ZSB0aGUgZXF1YXRpb24gdW5kZXIKKyAgICAgICAgLy8gICAgdGhlIGV4dHJh
IGNvbnN0cmFpbnQgdGhhdCB0aGUgdHdvIG1hcmdpbnMgZ2V0IGVxdWFsIHZhbHVlcy4gSWYgb25l
IG9mICdtYXJnaW4tdG9wJyBvciAnbWFyZ2luLWJvdHRvbScgaXMgJ2F1dG8nLAorICAgICAgICAv
LyAgICBzb2x2ZSB0aGUgZXF1YXRpb24gZm9yIHRoYXQgdmFsdWUuIElmIHRoZSB2YWx1ZXMgYXJl
IG92ZXItY29uc3RyYWluZWQsIGlnbm9yZSB0aGUgdmFsdWUgZm9yICdib3R0b20nIGFuZCBzb2x2
ZSBmb3IgdGhhdCB2YWx1ZS4KKyAgICAgICAgLy8gT3RoZXJ3aXNlLCBwaWNrIHRoZSBvbmUgb2Yg
dGhlIGZvbGxvd2luZyBzaXggcnVsZXMgdGhhdCBhcHBsaWVzLgorCisgICAgICAgIC8vIDMuICd0
b3AnIGFuZCAnaGVpZ2h0JyBhcmUgJ2F1dG8nIGFuZCAnYm90dG9tJyBpcyBub3QgJ2F1dG8nLCB0
aGVuIHRoZSBoZWlnaHQgaXMgYmFzZWQgb24gdGhlIGNvbnRlbnQgcGVyIDEwLjYuNywKKyAgICAg
ICAgLy8gICAgc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1i
b3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBmb3IgJ3RvcCcKKyAgICAgICAgLy8gNC4gJ3RvcCcgYW5k
ICdib3R0b20nIGFyZSAnYXV0bycgYW5kICdoZWlnaHQnIGlzIG5vdCAnYXV0bycsIHRoZW4gc2V0
ICd0b3AnIHRvIHRoZSBzdGF0aWMgcG9zaXRpb24sIHNldCAnYXV0bycgdmFsdWVzCisgICAgICAg
IC8vICAgIGZvciAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90dG9tJyB0byAwLCBhbmQgc29s
dmUgZm9yICdib3R0b20nCisgICAgICAgIC8vIDUuICdoZWlnaHQnIGFuZCAnYm90dG9tJyBhcmUg
J2F1dG8nIGFuZCAndG9wJyBpcyBub3QgJ2F1dG8nLCB0aGVuIHRoZSBoZWlnaHQgaXMgYmFzZWQg
b24gdGhlIGNvbnRlbnQgcGVyIDEwLjYuNywKKyAgICAgICAgLy8gICAgc2V0ICdhdXRvJyB2YWx1
ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBm
b3IgJ2JvdHRvbScKKyAgICAgICAgLy8gNi4gJ3RvcCcgaXMgJ2F1dG8nLCAnaGVpZ2h0JyBhbmQg
J2JvdHRvbScgYXJlIG5vdCAnYXV0bycsIHRoZW4gc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJn
aW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBmb3IgJ3RvcCcKKyAg
ICAgICAgLy8gNy4gJ2hlaWdodCcgaXMgJ2F1dG8nLCAndG9wJyBhbmQgJ2JvdHRvbScgYXJlIG5v
dCAnYXV0bycsIHRoZW4gJ2F1dG8nIHZhbHVlcyBmb3IgJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2lu
LWJvdHRvbScgYXJlIHNldCB0byAwIGFuZCBzb2x2ZSBmb3IgJ2hlaWdodCcKKyAgICAgICAgLy8g
OC4gJ2JvdHRvbScgaXMgJ2F1dG8nLCAndG9wJyBhbmQgJ2hlaWdodCcgYXJlIG5vdCAnYXV0bycs
IHRoZW4gc2V0ICdhdXRvJyB2YWx1ZXMgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0
b20nIHRvIDAgYW5kIHNvbHZlIGZvciAnYm90dG9tJworICAgICAgICBsZXQgaGVpZ2h0ID0gTnVt
YmVyLk5hTjsKKyAgICAgICAgaWYgKFV0aWxzLmlzSGVpZ2h0QXV0byhib3gpICYmIFV0aWxzLmlz
Qm90dG9tQXV0byhib3gpICYmIFV0aWxzLmlzVG9wQXV0byhib3gpKQorICAgICAgICAgICAgaGVp
Z2h0ID0gdGhpcy5fY29tcHV0ZUNvbnRlbnRIZWlnaHQoYm94KTsgLy8gMQorICAgICAgICBlbHNl
IGlmIChVdGlscy5pc1RvcEF1dG8oKGJveCkpICYmIFV0aWxzLmlzSGVpZ2h0QXV0bygoYm94KSkg
JiYgIVV0aWxzLmlzQm90dG9tQXV0bygoYm94KSkpCisgICAgICAgICAgICBoZWlnaHQgPSB0aGlz
Ll9jb21wdXRlQ29udGVudEhlaWdodChib3gpOyAvLyAzCisgICAgICAgIGVsc2UgaWYgKFV0aWxz
LmlzVG9wQXV0bygoYm94KSkgJiYgVXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSAmJiAhVXRpbHMu
aXNIZWlnaHRBdXRvKChib3gpKSkKKyAgICAgICAgICAgIGhlaWdodCA9IFV0aWxzLmhlaWdodChi
b3gpOyAvLyA0CisgICAgICAgIGVsc2UgaWYgKFV0aWxzLmlzSGVpZ2h0QXV0bygoYm94KSkgJiYg
VXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSAmJiAhVXRpbHMuaXNUb3BBdXRvKChib3gpKSkKKyAg
ICAgICAgICAgIGhlaWdodCA9IHRoaXMuX2NvbXB1dGVDb250ZW50SGVpZ2h0KGJveCk7IC8vIDUK
KyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNUb3BBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNIZWln
aHRBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSkKKyAgICAgICAgICAg
IGhlaWdodCA9IFV0aWxzLmhlaWdodChib3gpOyAvLyA2CisgICAgICAgIGVsc2UgaWYgKFV0aWxz
LmlzSGVpZ2h0QXV0bygoYm94KSkgJiYgIVV0aWxzLmlzVG9wQXV0bygoYm94KSkgJiYgIVV0aWxz
LmlzQm90dG9tQXV0bygoYm94KSkpCisgICAgICAgICAgICBoZWlnaHQgPSBNYXRoLm1heCgwLCBi
b3guY29udGFpbmluZ0Jsb2NrKCkuY29udGVudEJveCgpLmhlaWdodCgpIC0gVXRpbHMuYm90dG9t
KGJveCkgLSBVdGlscy50b3AoYm94KSk7IC8vIDcKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNC
b3R0b21BdXRvKChib3gpKSAmJiAhVXRpbHMuaXNUb3BBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNI
ZWlnaHRBdXRvKChib3gpKSkKKyAgICAgICAgICAgIGhlaWdodCA9IFV0aWxzLmhlaWdodChib3gp
OyAvLyA4CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gaGVpZ2h0ICsgVXRpbHMuY29tcHV0ZWRWZXJ0aWNhbEJvcmRlckFuZFBh
ZGRpbmcoYm94KTsKKyAgICB9CisKKyAgICBfY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KGJveCkgewor
ICAgICAgICAvLyBGSVhNRTogbWlzc2luZyBjYXNlcworICAgICAgICByZXR1cm4gVXRpbHMuaGVp
Z2h0KGJveCkgKyBVdGlscy5jb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZyhib3gpOwor
ICAgIH0KKworICAgIF9jb21wdXRlSW5GbG93SGVpZ2h0KGJveCkgeworICAgICAgICBpZiAoVXRp
bHMuaXNIZWlnaHRBdXRvKGJveCkpIHsKKyAgICAgICAgICAgIC8vIE9ubHkgY2hpbGRyZW4gaW4g
dGhlIG5vcm1hbCBmbG93IGFyZSB0YWtlbiBpbnRvIGFjY291bnQgKGkuZS4sIGZsb2F0aW5nIGJv
eGVzIGFuZCBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgYm94ZXMgYXJlIGlnbm9yZWQsCisgICAgICAg
ICAgICAvLyBhbmQgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGJveGVzIGFyZSBjb25zaWRlcmVkIHdp
dGhvdXQgdGhlaXIgb2Zmc2V0KS4gTm90ZSB0aGF0IHRoZSBjaGlsZCBib3ggbWF5IGJlIGFuIGFu
b255bW91cyBibG9jayBib3guCisKKyAgICAgICAgICAgIC8vIFRoZSBlbGVtZW50J3MgaGVpZ2h0
IGlzIHRoZSBkaXN0YW5jZSBmcm9tIGl0cyB0b3AgY29udGVudCBlZGdlIHRvIHRoZSBmaXJzdCBh
cHBsaWNhYmxlIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAvLyAxLiB0aGUgYm90dG9t
IGVkZ2Ugb2YgdGhlIGxhc3QgbGluZSBib3gsIGlmIHRoZSBib3ggZXN0YWJsaXNoZXMgYSBpbmxp
bmUgZm9ybWF0dGluZyBjb250ZXh0IHdpdGggb25lIG9yIG1vcmUgbGluZXMKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLl9jb21wdXRlQ29udGVudEhlaWdodChib3gpICsgVXRpbHMuY29tcHV0ZWRW
ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmcoYm94KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
VXRpbHMuaGVpZ2h0KGJveCkgKyBVdGlscy5jb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGlu
Zyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlSG9yaXpvbnRhbENvbnN0cmFpbnQoYm94KSB7
CisgICAgICAgIGxldCBob3Jpem9udGFsQ29uc3RyYWludCA9IGJveC5jb250YWluaW5nQmxvY2so
KS5jb250ZW50Qm94KCkud2lkdGgoKTsKKyAgICAgICAgaG9yaXpvbnRhbENvbnN0cmFpbnQgLT0g
dGhpcy5tYXJnaW5MZWZ0KGJveCkgKyB0aGlzLm1hcmdpblJpZ2h0KGJveCk7CisgICAgICAgIHJl
dHVybiBob3Jpem9udGFsQ29uc3RyYWludDsKKyAgICB9CisKKyAgICBfY29tcHV0ZUNvbnRlbnRI
ZWlnaHQoYm94KSB7CisgICAgICAgIC8vIDEwLjYuMyBCbG9jay1sZXZlbCBub24tcmVwbGFjZWQg
ZWxlbWVudHMgaW4gbm9ybWFsIGZsb3cgd2hlbiAnb3ZlcmZsb3cnIGNvbXB1dGVzIHRvICd2aXNp
YmxlJworICAgICAgICAvLyBUaGUgZWxlbWVudCdzIGhlaWdodCBpcyB0aGUgZGlzdGFuY2UgZnJv
bSBpdHMgdG9wIGNvbnRlbnQgZWRnZSB0byB0aGUgZmlyc3QgYXBwbGljYWJsZSBvZiB0aGUgZm9s
bG93aW5nOgorICAgICAgICAvLyAxLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGxhc3QgbGluZSBi
b3gsIGlmIHRoZSBib3ggZXN0YWJsaXNoZXMgYSBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IHdp
dGggb25lIG9yIG1vcmUgbGluZXMKKyAgICAgICAgLy8gMi4gdGhlIGJvdHRvbSBlZGdlIG9mIHRo
ZSBib3R0b20gKHBvc3NpYmx5IGNvbGxhcHNlZCkgbWFyZ2luIG9mIGl0cyBsYXN0IGluLWZsb3cg
Y2hpbGQsIGlmIHRoZSBjaGlsZCdzIGJvdHRvbSBtYXJnaW4gZG9lcyBub3QgY29sbGFwc2UKKyAg
ICAgICAgLy8gICAgd2l0aCB0aGUgZWxlbWVudCdzIGJvdHRvbSBtYXJnaW4KKyAgICAgICAgLy8g
My4gdGhlIGJvdHRvbSBib3JkZXIgZWRnZSBvZiB0aGUgbGFzdCBpbi1mbG93IGNoaWxkIHdob3Nl
IHRvcCBtYXJnaW4gZG9lc24ndCBjb2xsYXBzZSB3aXRoIHRoZSBlbGVtZW50J3MgYm90dG9tIG1h
cmdpbgorICAgICAgICAvLyA0LiB6ZXJvLCBvdGhlcndpc2UKKyAgICAgICAgLy8gT25seSBjaGls
ZHJlbiBpbiB0aGUgbm9ybWFsIGZsb3cgYXJlIHRha2VuIGludG8gYWNjb3VudC4KKyAgICAgICAg
aWYgKCFib3guaXNDb250YWluZXIoKSB8fCAhYm94Lmhhc0luRmxvd0NoaWxkKCkpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgbGV0IHRvcCA9IGJveC5jb250ZW50Qm94KCkudG9wKCk7
CisgICAgICAgIGxldCBsYXN0SW5GbG93Q2hpbGQgPSBib3gubGFzdEluRmxvd0NoaWxkKCk7CisK
KyAgICAgICAgbGV0IGJvdHRvbSA9IGxhc3RJbkZsb3dDaGlsZC5yZWN0KCkuYm90dG9tKCkgKyB0
aGlzLm1hcmdpbkJvdHRvbShsYXN0SW5GbG93Q2hpbGQpOworICAgICAgICAvLyBGSVhNRTogbWFy
Z2luIGZvciBib2R5CisgICAgICAgIGlmIChsYXN0SW5GbG93Q2hpbGQubmFtZSgpID09ICJSZW5k
ZXJCb2R5IiAmJiBVdGlscy5pc0hlaWdodEF1dG8obGFzdEluRmxvd0NoaWxkKSAmJiAhbGFzdElu
Rmxvd0NoaWxkLmNvbnRlbnRCb3goKS5oZWlnaHQoKSkKKyAgICAgICAgICAgIGJvdHRvbSAtPSB0
aGlzLm1hcmdpbkJvdHRvbShsYXN0SW5GbG93Q2hpbGQpOworICAgICAgICAvLyBGSVhNRTogZmln
dXJlIG91dCB3aHkgZmxvYXRpbmdzIHBhcnQgb2YgdGhlIGluaXRpYWwgYmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0IGdldCBwcm9wYWdhdGVkIHRvIEhUTUwKKyAgICAgICAgaWYgKGJveC5ub2RlKCku
dGFnTmFtZSA9PSAiSFRNTCIpIHsKKyAgICAgICAgICAgIGxldCBmbG9hdGluZ0JvdHRvbSA9IHRo
aXMuZmxvYXRpbmdDb250ZXh0KCkuYm90dG9tKCk7CisgICAgICAgICAgICBpZiAoIU51bWJlci5p
c05hTihmbG9hdGluZ0JvdHRvbSkpCisgICAgICAgICAgICAgICAgYm90dG9tID0gTWF0aC5tYXgo
ZmxvYXRpbmdCb3R0b20sIGJvdHRvbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJvdHRv
bSAtIHRvcDsKKyAgICB9CisKKyAgICBfY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbihi
b3gpIHsKKyAgICAgICAgLy8gU3RhcnQgd2l0aCB0aGUgb3JpZ2luYWwsIHN0YXRpYyBwb3NpdGlv
bi4KKyAgICAgICAgbGV0IHJlbGF0aXZlUG9zaXRpb24gPSBib3gudG9wTGVmdCgpOworICAgICAg
ICAvLyBUb3AvYm90dG9tCisgICAgICAgIGlmICghVXRpbHMuaXNUb3BBdXRvKGJveCkpCisgICAg
ICAgICAgICByZWxhdGl2ZVBvc2l0aW9uLnNoaWZ0VG9wKFV0aWxzLnRvcChib3gpKTsKKyAgICAg
ICAgZWxzZSBpZiAoIVV0aWxzLmlzQm90dG9tQXV0byhib3gpKQorICAgICAgICAgICAgcmVsYXRp
dmVQb3NpdGlvbi5zaGlmdFRvcCgtVXRpbHMuYm90dG9tKGJveCkpOworICAgICAgICAvLyBMZWZ0
L3JpZ2h0CisgICAgICAgIGlmICghVXRpbHMuaXNMZWZ0QXV0byhib3gpKQorICAgICAgICAgICAg
cmVsYXRpdmVQb3NpdGlvbi5zaGlmdExlZnQoVXRpbHMubGVmdChib3gpKTsKKyAgICAgICAgZWxz
ZSBpZiAoIVV0aWxzLmlzUmlnaHRBdXRvKGJveCkpCisgICAgICAgICAgICByZWxhdGl2ZVBvc2l0
aW9uLnNoaWZ0TGVmdCgtVXRpbHMucmlnaHQoYm94KSk7CisgICAgICAgIHJldHVybiByZWxhdGl2
ZVBvc2l0aW9uOworICAgIH0KKworICAgIF9jb21wdXRlT3V0T2ZGbG93UG9zaXRpb24oYm94KSB7
CisgICAgICAgIGxldCBjb250YWluZXJTaXplID0gYm94LmNvbnRhaW5pbmdCbG9jaygpLmNvbnRl
bnRCb3goKS5zaXplKCk7CisgICAgICAgIC8vIFRvcC9ib3R0b20KKyAgICAgICAgbGV0IHRvcCA9
IE51bWJlci5OYU47CisgICAgICAgIGlmIChVdGlscy5pc1RvcEF1dG8oYm94KSAmJiBVdGlscy5p
c0JvdHRvbUF1dG8oYm94KSkgeworICAgICAgICAgICAgLy8gQ29udmVydCBzdGF0aWMgcG9zaXRp
b24gdG8gYWJzb2x1dGUuCisgICAgICAgICAgICB0b3AgPSBVdGlscy5tYXBTdGF0aWNUb0Fic29s
dXRlKGJveCkudG9wKCk7CisgICAgICAgIH0gZWxzZSBpZiAoIVV0aWxzLmlzVG9wQXV0byhib3gp
KQorICAgICAgICAgICAgdG9wID0gVXRpbHMudG9wKGJveCkgKyB0aGlzLm1hcmdpblRvcChib3gp
OworICAgICAgICBlbHNlIGlmICghVXRpbHMuaXNCb3R0b21BdXRvKGJveCkpCisgICAgICAgICAg
ICB0b3AgPSBjb250YWluZXJTaXplLmhlaWdodCgpIC0gVXRpbHMuYm90dG9tKGJveCkgLSBib3gu
cmVjdCgpLmhlaWdodCgpIC0gdGhpcy5tYXJnaW5Cb3R0b20oYm94KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIC8vIExlZnQvcmlnaHQK
KyAgICAgICAgbGV0IGxlZnQgPSBOdW1iZXIuTmFOOworICAgICAgICBpZiAoVXRpbHMuaXNMZWZ0
QXV0byhib3gpICYmIFV0aWxzLmlzUmlnaHRBdXRvKGJveCkpIHsKKyAgICAgICAgICAgIC8vIENv
bnZlcnQgc3RhdGljIHBvc2l0aW9uIHRvIGFic29sdXRlLgorICAgICAgICAgICAgbGVmdCA9IFV0
aWxzLm1hcFN0YXRpY1RvQWJzb2x1dGUoYm94KS5sZWZ0KCk7CisgICAgICAgIH0gZWxzZSBpZiAo
IVV0aWxzLmlzTGVmdEF1dG8oYm94KSkKKyAgICAgICAgICAgIGxlZnQgPSBVdGlscy5sZWZ0KGJv
eCkgKyB0aGlzLm1hcmdpbkxlZnQoYm94KTsKKyAgICAgICAgZWxzZSBpZiAoIVV0aWxzLmlzUmln
aHRBdXRvKGJveCkpCisgICAgICAgICAgICBsZWZ0ID0gY29udGFpbmVyU2l6ZS53aWR0aCgpIC0g
VXRpbHMucmlnaHQoYm94KSAtIGJveC5yZWN0KCkud2lkdGgoKSAtIHRoaXMubWFyZ2luUmlnaHQo
Ym94KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBuZXcgTGF5b3V0UG9pbnQodG9wLCBsZWZ0KTsKKyAgICB9CisKKyAgICBf
c2hyaW5rVG9GaXRXaWR0aChib3gpIHsKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgbmFpdmUu
CisgICAgICAgIEFTU0VSVChVdGlscy5pc1dpZHRoQXV0byhib3gpKTsKKyAgICAgICAgaWYgKCFi
b3guaXNDb250YWluZXIoKSB8fCAhYm94Lmhhc0NoaWxkKCkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgbGV0IHdpZHRoID0gMDsKKyAgICAgICAgZm9yIChsZXQgaW5GbG93Q2hpbGQg
PSBib3guZmlyc3RJbkZsb3dDaGlsZCgpOyBpbkZsb3dDaGlsZDsgaW5GbG93Q2hpbGQgPSBpbkZs
b3dDaGlsZC5uZXh0SW5GbG93U2libGluZygpKSB7CisgICAgICAgICAgICBsZXQgd2lkdGhDYW5k
aWRhdGUgPSBVdGlscy5pc1dpZHRoQXV0byhpbkZsb3dDaGlsZCkgPyB0aGlzLl9zaHJpbmtUb0Zp
dFdpZHRoKGluRmxvd0NoaWxkKSA6IFV0aWxzLndpZHRoKGluRmxvd0NoaWxkKTsKKyAgICAgICAg
ICAgIHdpZHRoID0gTWF0aC5tYXgod2lkdGgsIHdpZHRoQ2FuZGlkYXRlICsgVXRpbHMuY29tcHV0
ZWRIb3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZyhpbkZsb3dDaGlsZCkpOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91
dFJlbG9hZGVkL0Jsb2NrTWFyZ2luQ29sbGFwc2UuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9C
bG9ja01hcmdpbkNvbGxhcHNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MjU5YTU5OThhMTM3ZTY1MjgxZTc3
MjFhMjMzMGE1Yzc3YTgxYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9CbG9ja01hcmdpbkNvbGxhcHNlLmpzCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK2NsYXNzIEJsb2NrTWFyZ2luQ29sbGFwc2Ug
eworCisgICAgc3RhdGljIG1hcmdpblRvcChib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255
bW91cygpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIFRPRE86IHRha2UgX2hh
c0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbSgpIGludG8gYWNjb3VudC4KKyAgICAgICAgaWYg
KHRoaXMuX2lzTWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBhcmVudChib3gpKQorICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIC8vIEZsb2F0cyBhbmQgb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBi
b3hlcyBkbyBub3QgY29sbGFwc2UgdGhlaXIgbWFyZ2lucy4KKyAgICAgICAgaWYgKCF0aGlzLl9p
c01hcmdpblRvcENvbGxhcHNlZFdpdGhTaWJsaW5nKGJveCkpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fbm9uQ29sbGFwc2VkTWFyZ2luVG9wKGJveCk7CisgICAgICAgIC8vIFRoZSBib3R0b20g
bWFyZ2luIG9mIGFuIGluLWZsb3cgYmxvY2stbGV2ZWwgZWxlbWVudCBhbHdheXMgY29sbGFwc2Vz
IHdpdGggdGhlIHRvcCBtYXJnaW4gb2YgaXRzIG5leHQgaW4tZmxvdyBibG9jay1sZXZlbCBzaWJs
aW5nLAorICAgICAgICAvLyB1bmxlc3MgdGhhdCBzaWJsaW5nIGhhcyBjbGVhcmFuY2UuCisgICAg
ICAgIGxldCBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBib3gucHJldmlvdXNJbkZsb3dTaWJsaW5n
KCk7CisgICAgICAgIGlmIChwcmV2aW91c0luRmxvd1NpYmxpbmcpIHsKKyAgICAgICAgICAgIGxl
dCBwcmV2aW91c1NpYmxpbmdNYXJnaW5Cb3R0b20gPSB0aGlzLl9ub25Db2xsYXBzZWRNYXJnaW5C
b3R0b20ocHJldmlvdXNJbkZsb3dTaWJsaW5nKTsKKyAgICAgICAgICAgIGxldCBtYXJnaW5Ub3Ag
PSB0aGlzLl9ub25Db2xsYXBzZWRNYXJnaW5Ub3AoYm94KTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9tYXJnaW5WYWx1ZShtYXJnaW5Ub3AsIHByZXZpb3VzU2libGluZ01hcmdpbkJvdHRvbSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX25vbkNvbGxhcHNlZE1hcmdpblRvcChi
b3gpOworICAgIH0KKworICAgIHN0YXRpYyBtYXJnaW5Cb3R0b20oYm94KSB7CisgICAgICAgIGlm
IChib3guaXNBbm9ueW1vdXMoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAvLyBU
T0RPOiB0YWtlIF9oYXNBZGpvaW5pbmdNYXJnaW5Ub3BBbmRCb3R0b20oKSBpbnRvIGFjY291bnQu
CisgICAgICAgIGlmICh0aGlzLl9pc01hcmdpbkJvdHRvbUNvbGxhcHNlZFdpdGhQYXJlbnQoYm94
KSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAvLyBGbG9hdHMgYW5kIG91dCBvZiBm
bG93IHBvc2l0aW9uZWQgYm94ZXMgZG8gbm90IGNvbGxhcHNlIHRoZWlyIG1hcmdpbnMuCisgICAg
ICAgIGlmICghdGhpcy5faXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRXaXRoU2libGluZyhib3gpKQor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbShib3gpOwor
ICAgICAgICAvLyBUaGUgYm90dG9tIG1hcmdpbiBvZiBhbiBpbi1mbG93IGJsb2NrLWxldmVsIGVs
ZW1lbnQgYWx3YXlzIGNvbGxhcHNlcyB3aXRoIHRoZSB0b3AgbWFyZ2luIG9mIGl0cyBuZXh0IGlu
LWZsb3cgYmxvY2stbGV2ZWwgc2libGluZywKKyAgICAgICAgLy8gdW5sZXNzIHRoYXQgc2libGlu
ZyBoYXMgY2xlYXJhbmNlLgorICAgICAgICBpZiAoYm94Lm5leHRJbkZsb3dTaWJsaW5nKCkpCisg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25vbkNvbGxhcHNlZE1h
cmdpbkJvdHRvbShib3gpOworICAgIH0KKworICAgIHN0YXRpYyBfaXNNYXJnaW5Ub3BDb2xsYXBz
ZWRXaXRoU2libGluZyhib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Zsb2F0aW5nUG9zaXRpb25l
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWJveC5pc1Bvc2l0
aW9uZWQoKSB8fCBib3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgLy8gT3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KKyAgICAgICAgQVNTRVJU
KGJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CisgICAgICAgIHJldHVybiBVdGlscy5pc1Rv
cEF1dG8oYm94KTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2lzTWFyZ2luQm90dG9tQ29sbGFwc2Vk
V2l0aFNpYmxpbmcoYm94KSB7CisgICAgICAgIGlmIChib3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFib3guaXNQb3NpdGlv
bmVkKCkgfHwgYm94LmlzSW5GbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIC8vIE91dCBvZiBmbG93IHBvc2l0aW9uZWQuCisgICAgICAgIEFTU0VSVChi
b3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOworICAgICAgICByZXR1cm4gVXRpbHMuaXNCb3R0
b21BdXRvKGJveCk7CisgICAgfQorCisgICAgc3RhdGljIF9pc01hcmdpblRvcENvbGxhcHNlZFdp
dGhQYXJlbnQoYm94KSB7CisgICAgICAgIC8vIFRoZSBmaXJzdCBpbmZsb3cgY2hpbGQgY291bGQg
cHJvcGFnYXRlIGl0cyB0b3AgbWFyZ2luIHRvIHBhcmVudC4KKyAgICAgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL0NTUzIxL2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucworICAgICAgICBp
ZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChib3guaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBsZXQgcGFyZW50ID0gYm94LnBhcmVudCgpOworICAgICAg
ICAvLyBJcyB0aGlzIGJveCB0aGUgZmlyc3QgaW5sZmxvdyBjaGlsZD8KKyAgICAgICAgaWYgKHBh
cmVudC5maXJzdEluRmxvd0NoaWxkKCkgIT0gYm94KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAocGFyZW50LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBNYXJnaW5zIG9mIHRoZSBy
b290IGVsZW1lbnQncyBib3ggZG8gbm90IGNvbGxhcHNlLgorICAgICAgICBpZiAocGFyZW50Lmlz
Um9vdEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKFV0
aWxzLmhhc0JvcmRlclRvcChwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoVXRpbHMuaGFzUGFkZGluZ1RvcChwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2lzTWFy
Z2luQm90dG9tQ29sbGFwc2VkV2l0aFBhcmVudChib3gpIHsKKyAgICAgICAgLy8gbGFzdCBpbmZs
b3cgYm94IHRvIHBhcmVudC4KKyAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIx
L2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3Vz
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChib3guaXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBsZXQgcGFyZW50ID0gYm94LnBhcmVudCgpOworICAgICAgICAvLyBJcyB0aGlzIHRoZSBs
YXN0IGlubGZsb3cgY2hpbGQ/CisgICAgICAgIGlmIChwYXJlbnQubGFzdEluRmxvd0NoaWxkKCkg
IT0gYm94KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAocGFyZW50LmVz
dGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAvLyBNYXJnaW5zIG9mIHRoZSByb290IGVsZW1lbnQncyBib3ggZG8gbm90
IGNvbGxhcHNlLgorICAgICAgICBpZiAocGFyZW50LmlzUm9vdEVsZW1lbnQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKFV0aWxzLmhhc0JvcmRlclRvcChwYXJlbnQp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoVXRpbHMuaGFzUGFkZGlu
Z1RvcChwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIVV0
aWxzLmlzSGVpZ2h0QXV0byhwYXJlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgX25vbkNvbGxhcHNlZE1hcmdp
blRvcChib3gpIHsKKyAgICAgICAgLy8gTm9uIGNvbGxhcHNlZCBtYXJnaW4gdG9wIGluY2x1ZGVz
IGNvbGxhcHNlZCBtYXJnaW4gZnJvbSBpbmZsb3cgZmlyc3QgY2hpbGQuCisgICAgICAgIHJldHVy
biB0aGlzLl9tYXJnaW5WYWx1ZShVdGlscy5jb21wdXRlZE1hcmdpblRvcChib3gpLCB0aGlzLl9j
b2xsYXBzZWRNYXJnaW5Ub3BGcm9tRmlyc3RDaGlsZChib3gpKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgX25vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbShib3gpIHsKKyAgICAgICAgLy8gTm9uIGNvbGxh
cHNlZCBtYXJnaW4gYm90dG9tIGluY2x1ZGVzIGNvbGxhcHNlZCBtYXJnaW4gZnJvbSBpbmZsb3cg
bGFzdCBjaGlsZC4KKyAgICAgICAgcmV0dXJuIHRoaXMuX21hcmdpblZhbHVlKFV0aWxzLmNvbXB1
dGVkTWFyZ2luQm90dG9tKGJveCksIHRoaXMuX2NvbGxhcHNlZE1hcmdpbkJvdHRvbUZyb21MYXN0
Q2hpbGQoYm94KSk7CisgICAgfQorCisgICAgc3RhdGljIF9jb2xsYXBzZWRNYXJnaW5Ub3BGcm9t
Rmlyc3RDaGlsZChib3gpIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpcnN0IGNoaWxkIGNv
bGxhcHNlcyBpdHMgbWFyZ2luIHRvcC4KKyAgICAgICAgaWYgKCFib3guaXNDb250YWluZXIoKSB8
fCAhYm94LmZpcnN0SW5GbG93Q2hpbGQoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICBsZXQgZmlyc3RJbkZsb3dDaGlsZCA9IGJveC5maXJzdEluRmxvd0NoaWxkKCk7CisgICAgICAg
IGlmICghdGhpcy5faXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoUGFyZW50KGZpcnN0SW5GbG93Q2hp
bGQpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIENvbGxlY3QgY29sbGFwc2Vk
IG1hcmdpbiB0b3AgcmVjdXJzaXZlbHkuCisgICAgICAgIHJldHVybiB0aGlzLl9tYXJnaW5WYWx1
ZShVdGlscy5jb21wdXRlZE1hcmdpblRvcChmaXJzdEluRmxvd0NoaWxkKSwgdGhpcy5fY29sbGFw
c2VkTWFyZ2luVG9wRnJvbUZpcnN0Q2hpbGQoZmlyc3RJbkZsb3dDaGlsZCkpOworICAgIH0KKwor
ICAgIHN0YXRpYyBfY29sbGFwc2VkTWFyZ2luQm90dG9tRnJvbUxhc3RDaGlsZChib3gpIHsKKyAg
ICAgICAgLy8gQ2hlY2sgaWYgdGhlIGxhc3QgY2hpbGQgcHJvcGFnYXRlcyBpdHMgbWFyZ2luIGJv
dHRvbS4KKyAgICAgICAgaWYgKCFib3guaXNDb250YWluZXIoKSB8fCAhYm94Lmxhc3RJbkZsb3dD
aGlsZCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGxldCBsYXN0SW5GbG93Q2hp
bGQgPSBib3gubGFzdEluRmxvd0NoaWxkKCk7CisgICAgICAgIGlmICghdGhpcy5faXNNYXJnaW5C
b3R0b21Db2xsYXBzZWRXaXRoUGFyZW50KGxhc3RJbkZsb3dDaGlsZCkpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgLy8gQ29sbGVjdCBjb2xsYXBzZWQgbWFyZ2luIGJvdHRvbSByZWN1
cnNpdmVseS4KKyAgICAgICAgcmV0dXJuIHRoaXMuX21hcmdpblZhbHVlKFV0aWxzLmNvbXB1dGVk
TWFyZ2luQm90dG9tKGxhc3RJbkZsb3dDaGlsZCksIHRoaXMuX2NvbGxhcHNlZE1hcmdpbkJvdHRv
bUZyb21MYXN0Q2hpbGQobGFzdEluRmxvd0NoaWxkKSk7CisgICAgfQorCisgICAgc3RhdGljIF9t
YXJnaW5WYWx1ZShjdXJyZW50TWFyZ2luVmFsdWUsIGNhbmRpZGF0ZU1hcmdpblZhbHVlKSB7Cisg
ICAgICAgIGlmICghY2FuZGlkYXRlTWFyZ2luVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gY3Vy
cmVudE1hcmdpblZhbHVlOworICAgICAgICBpZiAoIWN1cnJlbnRNYXJnaW5WYWx1ZSkKKyAgICAg
ICAgICAgIHJldHVybiBjYW5kaWRhdGVNYXJnaW5WYWx1ZTsKKyAgICAgICAgLy8gQm90aCBtYXJn
aW5zIGFyZSBwb3NpdGl2ZS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZU1hcmdpblZhbHVlID4gMCAm
JiBjdXJyZW50TWFyZ2luVmFsdWUgPiAwKQorICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KGNh
bmRpZGF0ZU1hcmdpblZhbHVlLCBjdXJyZW50TWFyZ2luVmFsdWUpCisgICAgICAgIC8vIEJvdGgg
bWFyZ2lucyBhcmUgbmVnYXRpdmUuCisgICAgICAgIGlmIChjYW5kaWRhdGVNYXJnaW5WYWx1ZSA8
IDAgJiYgY3VycmVudE1hcmdpblZhbHVlIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAwIC0gTWF0
aC5tYXgoTWF0aC5hYnMoY2FuZGlkYXRlTWFyZ2luVmFsdWUpLCBNYXRoLmFicyhjdXJyZW50TWFy
Z2luVmFsdWUpKQorICAgICAgICAvLyBPbmUgb2YgdGhlIG1hcmdpbnMgaXMgbmVnYXRpdmUuCisg
ICAgICAgIHJldHVybiBjdXJyZW50TWFyZ2luVmFsdWUgKyBjYW5kaWRhdGVNYXJnaW5WYWx1ZTsK
KyAgICB9CisKKyAgICBzdGF0aWMgX2hhc0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbShib3gp
IHsKKyAgICAgICAgLy8gVHdvIG1hcmdpbnMgYXJlIGFkam9pbmluZyBpZiBhbmQgb25seSBpZjoK
KyAgICAgICAgLy8gMS4gYm90aCBiZWxvbmcgdG8gaW4tZmxvdyBibG9jay1sZXZlbCBib3hlcyB0
aGF0IHBhcnRpY2lwYXRlIGluIHRoZSBzYW1lIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dAorICAg
ICAgICAvLyAyLiBubyBsaW5lIGJveGVzLCBubyBjbGVhcmFuY2UsIG5vIHBhZGRpbmcgYW5kIG5v
IGJvcmRlciBzZXBhcmF0ZSB0aGVtIChOb3RlIHRoYXQgY2VydGFpbiB6ZXJvLWhlaWdodCBsaW5l
IGJveGVzIChzZWUgOS40LjIpIGFyZSBpZ25vcmVkIGZvciB0aGlzIHB1cnBvc2UuKQorICAgICAg
ICAvLyAzLiBib3RoIGJlbG9uZyB0byB2ZXJ0aWNhbGx5LWFkamFjZW50IGJveCBlZGdlcywgaS5l
LiBmb3JtIG9uZSBvZiB0aGUgZm9sbG93aW5nIHBhaXJzOgorICAgICAgICAvLyAgICAgICAgdG9w
IG1hcmdpbiBvZiBhIGJveCBhbmQgdG9wIG1hcmdpbiBvZiBpdHMgZmlyc3QgaW4tZmxvdyBjaGls
ZAorICAgICAgICAvLyAgICAgICAgYm90dG9tIG1hcmdpbiBvZiBib3ggYW5kIHRvcCBtYXJnaW4g
b2YgaXRzIG5leHQgaW4tZmxvdyBmb2xsb3dpbmcgc2libGluZworICAgICAgICAvLyAgICAgICAg
Ym90dG9tIG1hcmdpbiBvZiBhIGxhc3QgaW4tZmxvdyBjaGlsZCBhbmQgYm90dG9tIG1hcmdpbiBv
ZiBpdHMgcGFyZW50IGlmIHRoZSBwYXJlbnQgaGFzICdhdXRvJyBjb21wdXRlZCBoZWlnaHQKKyAg
ICAgICAgLy8gICAgICAgIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb2YgYSBib3ggdGhhdCBkb2Vz
IG5vdCBlc3RhYmxpc2ggYSBuZXcgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFuZCB0aGF0IGhh
cyB6ZXJvIGNvbXB1dGVkICdtaW4taGVpZ2h0JywKKyAgICAgICAgLy8gICAgICAgIHplcm8gb3Ig
J2F1dG8nIGNvbXB1dGVkICdoZWlnaHQnLCBhbmQgbm8gaW4tZmxvdyBjaGlsZHJlbgorICAgICAg
ICAvLyBBIGNvbGxhcHNlZCBtYXJnaW4gaXMgY29uc2lkZXJlZCBhZGpvaW5pbmcgdG8gYW5vdGhl
ciBtYXJnaW4gaWYgYW55IG9mIGl0cyBjb21wb25lbnQgbWFyZ2lucyBpcyBhZGpvaW5pbmcgdG8g
dGhhdCBtYXJnaW4uCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Cb3guanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Cb3gu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDU2YjA4YTdiMGFjNzAxNDY3ZGY1OTE0OTU1OWUwNmJmNmUyNmE4YQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0JveC5qcwpAQCAtMCwwICsx
LDI1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Ns
YXNzIEJveCB7CisgICAgY29uc3RydWN0b3Iobm9kZSwgaWQpIHsKKyAgICAgICAgdGhpcy5tX2lk
ID0gaWQ7CisgICAgICAgIHRoaXMubV9yZW5kZXJlck5hbWUgPSBudWxsOworICAgICAgICB0aGlz
Lm1fbm9kZSA9IG5vZGU7CisgICAgICAgIHRoaXMubV9wYXJlbnQgPSBudWxsOworICAgICAgICB0
aGlzLm1fbmV4dFNpYmxpbmcgPSBudWxsOworICAgICAgICB0aGlzLm1fcHJldmlvdXNTaWJsaW5n
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5tX2lzQW5vbnltb3VzID0gZmFsc2U7CisgICAgICAgIHRo
aXMubV9yZWN0ID0gbmV3IExheW91dFJlY3QobmV3IExheW91dFBvaW50KDAsIDApLCBuZXcgTGF5
b3V0U2l6ZSgwLCAwKSk7CisgICAgICAgIHRoaXMubV9lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250
ZXh0ID0gbnVsbDsKKyAgICB9CisKKyAgICBpZCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9p
ZDsKKyAgICB9CisKKyAgICBzZXRSZW5kZXJlck5hbWUobmFtZSkgeworICAgICAgICB0aGlzLm1f
cmVuZGVyZXJOYW1lID0gbmFtZTsKKyAgICB9CisKKyAgICBuYW1lKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX3JlbmRlcmVyTmFtZTsKKyAgICB9CisKKyAgICBub2RlKCkgeworICAgICAgICBy
ZXR1cm4gdGhpcy5tX25vZGU7CisgICAgfQorCisgICAgcGFyZW50KCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX3BhcmVudDsKKyAgICB9CisKKyAgICBuZXh0U2libGluZygpIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMubV9uZXh0U2libGluZzsKKyAgICB9CisKKyAgICBuZXh0SW5GbG93U2libGlu
ZygpIHsKKyAgICAgICAgbGV0IG5leHRJbkZsb3dTaWJsaW5nID0gdGhpcy5uZXh0U2libGluZygp
OworICAgICAgICB3aGlsZSAobmV4dEluRmxvd1NpYmxpbmcpIHsKKyAgICAgICAgICAgIGlmIChu
ZXh0SW5GbG93U2libGluZy5pc0luRmxvdygpKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXh0
SW5GbG93U2libGluZzsKKyAgICAgICAgICAgIG5leHRJbkZsb3dTaWJsaW5nID0gbmV4dEluRmxv
d1NpYmxpbmcubmV4dFNpYmxpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICB9CisKKyAgICBwcmV2aW91c1NpYmxpbmcoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1f
cHJldmlvdXNTaWJsaW5nOworICAgIH0KKworICAgIHByZXZpb3VzSW5GbG93U2libGluZygpIHsK
KyAgICAgICAgbGV0IHByZXZpb3VzSW5GbG93U2libGluZyA9IHRoaXMucHJldmlvdXNTaWJsaW5n
KCk7CisgICAgICAgIHdoaWxlIChwcmV2aW91c0luRmxvd1NpYmxpbmcpIHsKKyAgICAgICAgICAg
IGlmIChwcmV2aW91c0luRmxvd1NpYmxpbmcuaXNJbkZsb3coKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcHJldmlvdXNJbkZsb3dTaWJsaW5nOworICAgICAgICAgICAgcHJldmlvdXNJbkZsb3dT
aWJsaW5nID0gcHJldmlvdXNJbkZsb3dTaWJsaW5nLnByZXZpb3VzU2libGluZygpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHNldFBhcmVudChwYXJlbnQp
IHsKKyAgICAgICAgdGhpcy5tX3BhcmVudCA9IHBhcmVudDsKKyAgICB9CisKKyAgICBzZXROZXh0
U2libGluZyhuZXh0U2libGluZykgeworICAgICAgICB0aGlzLm1fbmV4dFNpYmxpbmcgPSBuZXh0
U2libGluZzsKKyAgICB9CisgICAgCisgICAgc2V0UHJldmlvdXNTaWJsaW5nKHByZXZpb3VzU2li
bGluZykgeworICAgICAgICB0aGlzLm1fcHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5n
OworICAgIH0KKworICAgIHJlY3QoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fcmVjdC5jbG9u
ZSgpOworICAgIH0KKworICAgIHRvcExlZnQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnJlY3Qo
KS50b3BMZWZ0KCk7CisgICAgfQorCisgICAgYm90dG9tUmlnaHQoKSB7CisgICAgICAgIHJldHVy
biB0aGlzLnJlY3QoKS5ib3R0b21SaWdodCgpOworICAgIH0KKworICAgIHNldFRvcExlZnQodG9w
TGVmdCkgeworICAgICAgICB0aGlzLm1fcmVjdC5zZXRUb3BMZWZ0KHRvcExlZnQpOworICAgIH0K
KworICAgIHNldFNpemUoc2l6ZSkgeworICAgICAgICB0aGlzLm1fcmVjdC5zZXRTaXplKHNpemUp
OworICAgIH0KKworICAgIHNldFdpZHRoKHdpZHRoKSB7CisgICAgICAgIHRoaXMubV9yZWN0LnNl
dFdpZHRoKHdpZHRoKTsKKyAgICB9CisKKyAgICBzZXRIZWlnaHQoaGVpZ2h0KSB7CisgICAgICAg
IHRoaXMubV9yZWN0LnNldEhlaWdodChoZWlnaHQpOworICAgIH0KKworICAgIGlzQ29udGFpbmVy
KCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaXNCbG9ja0xldmVsQm94
KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNCbG9ja0xldmVsRWxlbWVudCh0aGlzLm5vZGUo
KSk7CisgICAgfQorCisgICAgaXNCbG9ja0NvbnRhaW5lckJveCgpIHsKKyAgICAgICAgcmV0dXJu
IFV0aWxzLmlzQmxvY2tDb250YWluZXJFbGVtZW50KHRoaXMubm9kZSgpKTsKKyAgICB9CisKKyAg
ICBpc0lubGluZUxldmVsQm94KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNJbmxpbmVMZXZl
bEVsZW1lbnQodGhpcy5ub2RlKCkpOworICAgIH0KKworICAgIHNldElzQW5vbnltb3VzKCkgewor
ICAgICAgICB0aGlzLm1faXNBbm9ueW1vdXMgPSB0cnVlOworICAgIH0KKworICAgIGlzQW5vbnlt
b3VzKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2lzQW5vbnltb3VzOworICAgIH0KKworICAg
IGVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSB7CisgICAgICAgIGlmICh0aGlzLmlzQW5v
bnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGlz
LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIHx8IHRoaXMuZXN0YWJsaXNoZXNJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOworICAgIH0KKworICAgIGVzdGFibGlzaGVkRm9ybWF0
dGluZ0NvbnRleHQoKSB7CisgICAgICAgIGlmICh0aGlzLmVzdGFibGlzaGVzRm9ybWF0dGluZ0Nv
bnRleHQoKSAmJiAhdGhpcy5tX2VzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQpCisgICAgICAg
ICAgICB0aGlzLm1fZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCA9IHRoaXMuZXN0YWJsaXNo
ZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgPyBuZXcgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCh0
aGlzKSA6IG5ldyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCh0aGlzKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMubV9lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0OworICAgIH0KKworICAgIGVzdGFi
bGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAgICAgICAgLy8gOS40LjEgQmxvY2sg
Zm9ybWF0dGluZyBjb250ZXh0cworICAgICAgICAvLyBGbG9hdHMsIGFic29sdXRlbHkgcG9zaXRp
b25lZCBlbGVtZW50cywgYmxvY2sgY29udGFpbmVycyAoc3VjaCBhcyBpbmxpbmUtYmxvY2tzLCB0
YWJsZS1jZWxscywgYW5kIHRhYmxlLWNhcHRpb25zKQorICAgICAgICAvLyB0aGF0IGFyZSBub3Qg
YmxvY2sgYm94ZXMsIGFuZCBibG9jayBib3hlcyB3aXRoICdvdmVyZmxvdycgb3RoZXIgdGhhbiAn
dmlzaWJsZScgKGV4Y2VwdCB3aGVuIHRoYXQgdmFsdWUgaGFzIGJlZW4gcHJvcGFnYXRlZCB0byB0
aGUgdmlld3BvcnQpCisgICAgICAgIC8vIGVzdGFibGlzaCBuZXcgYmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0cyBmb3IgdGhlaXIgY29udGVudHMuCisgICAgICAgIHJldHVybiB0aGlzLmlzRmxvYXRp
bmdQb3NpdGlvbmVkKCkgfHwgdGhpcy5pc0Fic29sdXRlUG9zaXRpb25lZCgpIHx8ICh0aGlzLmlz
QmxvY2tDb250YWluZXJCb3goKSAmJiAhdGhpcy5pc0Jsb2NrTGV2ZWxCb3goKSkKKyAgICAgICAg
ICAgIHx8ICh0aGlzLmlzQmxvY2tMZXZlbEJveCgpICYmICFVdGlscy5pc092ZXJmbG93VmlzaWJs
ZSh0aGlzKSk7CisgICAgfQorCisgICAgZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlzUG9zaXRpb25lZCgp
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgdGhpcy5p
c1JlbGF0aXZlUG9zaXRpb25lZCgpOworICAgIH0KKworICAgIGlzUmVsYXRpdmVQb3NpdGlvbmVk
KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNSZWxhdGl2ZVBvc2l0aW9uZWQodGhpcyk7Cisg
ICAgfQorCisgICAgaXNBYnNvbHV0ZVBvc2l0aW9uZWQoKSB7CisgICAgICAgIHJldHVybiBVdGls
cy5pc0Fic29sdXRlUG9zaXRpb25lZCh0aGlzKTsKKyAgICB9CisKKyAgICBpc0ZpeGVkUG9zaXRp
b25lZCgpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmlzRml4ZWRQb3NpdGlvbmVkKHRoaXMpOwor
ICAgIH0KKworICAgIGlzSW5GbG93KCkgeworICAgICAgICBpZiAodGhpcy5pc0Fub255bW91cygp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiAhdGhpcy5pc0Zsb2F0
aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCk7CisgICAgfQorCisgICAgaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkgeworICAgICAgICByZXR1cm4gdGhpcy5pc0Fic29sdXRlUG9zaXRpb25lZCgpIHx8
IHRoaXMuaXNGaXhlZFBvc2l0aW9uZWQoKTsKKyAgICB9CisKKyAgICBpc0luRmxvd1Bvc2l0aW9u
ZWQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmlzUG9zaXRpb25lZCgpICYmICF0aGlzLmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpOworICAgIH0KKworICAgIGlzRmxvYXRpbmdQb3NpdGlvbmVkKCkg
eworICAgICAgICByZXR1cm4gVXRpbHMuaXNGbG9hdGluZ1Bvc2l0aW9uZWQodGhpcyk7CisgICAg
fQorCisgICAgaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSB8fCB0aGlzLmlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpOworICAgIH0KKworICAgIGlzUm9vdEVsZW1lbnQoKSB7CisgICAgICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBqdXN0IGJlIGEgc2ltcGxlIGluc3RhbmNlb2YgY2hlY2ssIGJ1dCB3ZSBh
cmUgaW4gdGhlIG1haW5mcmFtZSB3aGlsZSB0aGUgdGVzdCBkb2N1bWVudCBpcyBpbiBhbiBpZnJh
bWUKKyAgICAgICAgLy8gTGV0J3MganVzdCByZXR1cm4gcm9vdCBmb3IgYm90aCB0aGUgUmVuZGVy
VmlldyBhbmQgdGhlIDxodG1sPiBlbGVtZW50LgorICAgICAgICByZXR1cm4gIXRoaXMucGFyZW50
KCkgfHwgIXRoaXMucGFyZW50KCkucGFyZW50KCk7CisgICAgfQorCisgICAgY29udGFpbmluZ0Js
b2NrKCkgeworICAgICAgICBpZiAoIXRoaXMucGFyZW50KCkpCisgICAgICAgICAgICByZXR1cm4g
bnVsbDsKKyAgICAgICAgaWYgKCF0aGlzLmlzUG9zaXRpb25lZCgpIHx8IHRoaXMuaXNJbkZsb3dQ
b3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQoKTsKKyAgICAgICAg
bGV0IHBhcmVudCA9IHRoaXMucGFyZW50KCk7CisgICAgICAgIHdoaWxlIChwYXJlbnQucGFyZW50
KCkpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgJiYgcGFy
ZW50LmlzUG9zaXRpb25lZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CisgICAg
ICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHBhcmVudDsKKyAgICB9CisKKyAgICBib3JkZXJCb3goKSB7CisgICAgICAgIHJldHVybiBu
ZXcgTGF5b3V0UmVjdChuZXcgTGF5b3V0UG9pbnQoMCwgMCksIHRoaXMucmVjdCgpLnNpemUoKSk7
CisgICAgfQorCisgICAgcGFkZGluZ0JveCgpIHsKKyAgICAgICAgbGV0IHBhZGRpbmdCb3ggPSB0
aGlzLmJvcmRlckJveCgpOworICAgICAgICBsZXQgYm9yZGVyU2l6ZSA9IFV0aWxzLmNvbXB1dGVk
Qm9yZGVyVG9wTGVmdCh0aGlzKTsKKyAgICAgICAgcGFkZGluZ0JveC5tb3ZlQnkoYm9yZGVyU2l6
ZSk7CisgICAgICAgIHBhZGRpbmdCb3guc2hyaW5rQnkoYm9yZGVyU2l6ZSk7CisgICAgICAgIHBh
ZGRpbmdCb3guc2hyaW5rQnkoVXRpbHMuY29tcHV0ZWRCb3JkZXJCb3R0b21SaWdodCh0aGlzKSk7
CisgICAgICAgIHJldHVybiBwYWRkaW5nQm94OworICAgIH0KKworICAgIGNvbnRlbnRCb3goKSB7
CisgICAgICAgIGxldCBjb250ZW50Qm94ID0gdGhpcy5wYWRkaW5nQm94KCk7CisgICAgICAgIGxl
dCBwYWRkaW5nU2l6ZSA9IFV0aWxzLmNvbXB1dGVkUGFkZGluZ1RvcExlZnQodGhpcyk7CisgICAg
ICAgIGNvbnRlbnRCb3gubW92ZUJ5KHBhZGRpbmdTaXplKTsKKyAgICAgICAgY29udGVudEJveC5z
aHJpbmtCeShwYWRkaW5nU2l6ZSk7CisgICAgICAgIGNvbnRlbnRCb3guc2hyaW5rQnkoVXRpbHMu
Y29tcHV0ZWRQYWRkaW5nQm90dG9tUmlnaHQodGhpcykpOworICAgICAgICByZXR1cm4gY29udGVu
dEJveDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Db250YWlu
ZXIuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Db250YWluZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRm
NjMxMDJmZWEwZjBkMmFjNjAzZTU1ODBiYzM2YmJiZDFkNGJhNAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0NvbnRhaW5lci5qcwpAQCAtMCwwICsxLDc4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgQ29udGFpbmVy
IGV4dGVuZHMgQm94IHsKKyAgICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkgeworICAgICAgICBzdXBl
cihub2RlLCBpZCk7CisgICAgICAgIHRoaXMubV9maXJzdENoaWxkID0gbnVsbDsKKyAgICAgICAg
dGhpcy5tX2xhc3RDaGlsZCA9IG51bGw7CisgICAgfQorCisgICAgaXNDb250YWluZXIoKSB7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHNldEZpcnN0Q2hpbGQoZmlyc3RDaGls
ZCkgeworICAgICAgICB0aGlzLm1fZmlyc3RDaGlsZCA9IGZpcnN0Q2hpbGQ7CisgICAgfQorICAg
IAorICAgIHNldExhc3RDaGlsZChsYXN0Q2hpbGQpIHsKKyAgICAgICAgdGhpcy5tX2xhc3RDaGls
ZCA9IGxhc3RDaGlsZDsKKyAgICB9CisKKyAgICBmaXJzdENoaWxkKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX2ZpcnN0Q2hpbGQ7CisgICAgfQorCisgICAgZmlyc3RJbkZsb3dDaGlsZCgpIHsK
KyAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICAgICAgbGV0IGZpcnN0Q2hpbGQgPSB0aGlzLmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgaWYg
KGZpcnN0Q2hpbGQuaXNJbkZsb3coKSkKKyAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkOwor
ICAgICAgICByZXR1cm4gZmlyc3RDaGlsZC5uZXh0SW5GbG93U2libGluZygpOworICAgIH0KKwor
ICAgIGxhc3RDaGlsZCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9sYXN0Q2hpbGQ7CisgICAg
fQorCisgICAgbGFzdEluRmxvd0NoaWxkKCkgeworICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGQo
KSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBsZXQgbGFzdENoaWxkID0gdGhp
cy5sYXN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKGxhc3RDaGlsZC5pc0luRmxvdygpKQorICAgICAg
ICAgICAgcmV0dXJuIGxhc3RDaGlsZDsKKyAgICAgICAgcmV0dXJuIGxhc3RDaGlsZC5wcmV2aW91
c0luRmxvd1NpYmxpbmcoKTsKKyAgICB9CisKKyAgICBoYXNDaGlsZCgpIHsKKyAgICAgICAgcmV0
dXJuICEhdGhpcy5maXJzdENoaWxkKCk7CisgICAgfQorCisgICAgaGFzSW5GbG93Q2hpbGQoKSB7
CisgICAgICAgIHJldHVybiAhIXRoaXMuZmlyc3RJbkZsb3dDaGlsZCgpOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zsb2F0aW5nQ29udGV4dC5qcyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL0Zsb2F0aW5nQ29udGV4dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODMyMTI4ZDRk
NjU5N2RkZDlhNTUxN2ZlZmNiODg1YmE2ZjcwOTJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvRmxvYXRpbmdDb250ZXh0LmpzCkBAIC0wLDAgKzEsMTk3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgRmxvYXRpbmdD
b250ZXh0IHsKKyAgICBjb25zdHJ1Y3Rvcihmb3JtYXR0aW5nQ29udGV4dCkgeworICAgICAgICB0
aGlzLm1fbGVmdEZsb2F0aW5nQm94U3RhY2sgPSBuZXcgQXJyYXkoKTsKKyAgICAgICAgdGhpcy5t
X3JpZ2h0RmxvYXRpbmdCb3hTdGFjayA9IG5ldyBBcnJheSgpOworICAgICAgICB0aGlzLm1fbGFz
dEZsb2F0aW5nID0gbnVsbDsKKyAgICAgICAgdGhpcy5tX2Zvcm1hdHRpbmdDb250ZXh0ID0gZm9y
bWF0dGluZ0NvbnRleHQ7CisgICAgfQorCisgICAgY29tcHV0ZVBvc2l0aW9uKGJveCkgeworICAg
ICAgICBpZiAoYm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGJveC50b3BMZWZ0KCk7CisgICAgICAgIGlmIChib3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkg
eworICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gdGhpcy5fcG9zaXRpb25Gb3JGbG9hdGluZyhi
b3gpOworICAgICAgICAgICAgdGhpcy5fYWRkRmxvYXRpbmcoYm94KTsKKyAgICAgICAgICAgIHJl
dHVybiBwb3NpdGlvbjsKKyAgICAgICAgfQorICAgICAgICBpZiAoVXRpbHMuaGFzQ2xlYXIoYm94
KSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbkZvckNsZWFyKGJveCk7CisgICAg
ICAgIC8vIEludHJ1ZGluZyBmbG9hdHMgbWlnaHQgZm9yY2UgdGhpcyBib3ggbW92ZS4KKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVQb3NpdGlvblRvQXZvaWRJbnRydWRpbmdGbG9hdHMoYm94
KTsKKyAgICB9CisKKyAgICBib3R0b20oKSB7CisgICAgICAgIGxldCBsZWZ0Qm90dG9tID0gdGhp
cy5fYm90dG9tKHRoaXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjayk7CisgICAgICAgIGxldCByaWdo
dEJvdHRvbSA9IHRoaXMuX2JvdHRvbSh0aGlzLm1fcmlnaHRGbG9hdGluZ0JveFN0YWNrKTsKKyAg
ICAgICAgaWYgKE51bWJlci5pc05hTihsZWZ0Qm90dG9tKSAmJiBOdW1iZXIuaXNOYU4ocmlnaHRC
b3R0b20pKQorICAgICAgICAgICAgcmV0dXJuIE51bWJlci5OYU47CisgICAgICAgIGlmICghTnVt
YmVyLmlzTmFOKGxlZnRCb3R0b20pICYmICFOdW1iZXIuaXNOYU4ocmlnaHRCb3R0b20pKQorICAg
ICAgICAgICAgcmV0dXJuIE1hdGgubWF4KGxlZnRCb3R0b20sIHJpZ2h0Qm90dG9tKTsKKyAgICAg
ICAgaWYgKCFOdW1iZXIuaXNOYU4obGVmdEJvdHRvbSkpCisgICAgICAgICAgICByZXR1cm4gbGVm
dEJvdHRvbTsKKyAgICAgICAgcmV0dXJuIHJpZ2h0Qm90dG9tOworICAgIH0KKworICAgIF9wb3Np
dGlvbkZvckZsb2F0aW5nKGZsb2F0aW5nQm94KSB7CisgICAgICAgIGlmICh0aGlzLl9pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRqdXN0ZWRGbG9hdGluZ1Bvc2l0aW9uKGZs
b2F0aW5nQm94LCB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZs
b2F0aW5nQm94KS50b3AoKSk7CisgICAgICAgIGxldCB2ZXJ0aWNhbFBvc2l0aW9uID0gTWF0aC5t
YXgodGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveChmbG9hdGluZ0Jv
eCkudG9wKCksIHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJnaW5Cb3godGhp
cy5tX2xhc3RGbG9hdGluZykudG9wKCkpOworICAgICAgICBsZXQgc3BhY2VOZWVkZWQgPSB0aGlz
Ll9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nQm94KS53aWR0
aCgpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgbGV0IGZsb2F0aW5nUGFp
ciA9IHRoaXMuX2ZpbmRJbm5lck1vc3RMZWZ0QW5kUmlnaHQodmVydGljYWxQb3NpdGlvbik7Cisg
ICAgICAgICAgICBpZiAodGhpcy5fYXZhaWxhYmxlU3BhY2UoZmxvYXRpbmdCb3guY29udGFpbmlu
Z0Jsb2NrKCksIGZsb2F0aW5nUGFpcikgPj0gc3BhY2VOZWVkZWQpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2FkanVzdGVkRmxvYXRpbmdQb3NpdGlvbihmbG9hdGluZ0JveCwgdmVydGlj
YWxQb3NpdGlvbiwgZmxvYXRpbmdQYWlyKTsKKyAgICAgICAgICAgIHZlcnRpY2FsUG9zaXRpb24g
PSB0aGlzLl9tb3ZlVG9OZXh0VmVydGljYWxQb3NpdGlvbihmbG9hdGluZ1BhaXIpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBNYXRoLk5hbjsKKyAgICB9CisKKyAgICBfcG9zaXRpb25Gb3JD
bGVhcihib3gpIHsKKyAgICAgICAgQVNTRVJUKFV0aWxzLmhhc0NsZWFyKGJveCkpOworICAgICAg
ICBpZiAodGhpcy5faXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGJveC50b3BMZWZ0KCk7
CisKKyAgICAgICAgbGV0IGxlZnRCb3R0b20gPSBOdW1iZXIuTmFOOworICAgICAgICBsZXQgcmln
aHRCb3R0b20gPSBOdW1iZXIuTmFOOworICAgICAgICBpZiAoVXRpbHMuaGFzQ2xlYXJMZWZ0KGJv
eCkgfHwgVXRpbHMuaGFzQ2xlYXJCb3RoKGJveCkpCisgICAgICAgICAgICBsZWZ0Qm90dG9tID0g
dGhpcy5fYm90dG9tKHRoaXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjayk7CisgICAgICAgIGlmIChV
dGlscy5oYXNDbGVhclJpZ2h0KGJveCkgfHwgVXRpbHMuaGFzQ2xlYXJCb3RoKGJveCkpCisgICAg
ICAgICAgICByaWdodEJvdHRvbSA9IHRoaXMuX2JvdHRvbSh0aGlzLm1fcmlnaHRGbG9hdGluZ0Jv
eFN0YWNrKTsKKworICAgICAgICBpZiAoIU51bWJlci5pc05hTihsZWZ0Qm90dG9tKSAmJiAhTnVt
YmVyLmlzTmFOKHJpZ2h0Qm90dG9tKSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgTGF5b3V0UG9p
bnQoTWF0aC5tYXgobGVmdEJvdHRvbSwgcmlnaHRCb3R0b20pLCBib3gucmVjdCgpLmxlZnQoKSk7
CisgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKGxlZnRCb3R0b20pKQorICAgICAgICAgICAgcmV0
dXJuIG5ldyBMYXlvdXRQb2ludChsZWZ0Qm90dG9tLCBib3gucmVjdCgpLmxlZnQoKSk7CisgICAg
ICAgIGlmICghTnVtYmVyLmlzTmFOKHJpZ2h0Qm90dG9tKSkKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgTGF5b3V0UG9pbnQocmlnaHRCb3R0b20sIGJveC5yZWN0KCkubGVmdCgpKTsKKyAgICAgICAg
cmV0dXJuIGJveC50b3BMZWZ0KCk7CisgICAgfQorCisgICAgX2NvbXB1dGVQb3NpdGlvblRvQXZv
aWRJbnRydWRpbmdGbG9hdHMoYm94KSB7CisgICAgICAgIGlmICghYm94LmVzdGFibGlzaGVzQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCgpIHx8IHRoaXMuX2lzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybiBib3gudG9wTGVmdCgpOworICAgICAgICAvLyBUaGUgYm9yZGVyIGJveCBvZiBhIHRhYmxl
LCBhIGJsb2NrLWxldmVsIHJlcGxhY2VkIGVsZW1lbnQsIG9yIGFuIGVsZW1lbnQgaW4gdGhlIG5v
cm1hbCBmbG93IHRoYXQgZXN0YWJsaXNoZXMKKyAgICAgICAgLy8gYSBuZXcgYmxvY2sgZm9ybWF0
dGluZyBjb250ZXh0IChzdWNoIGFzIGFuIGVsZW1lbnQgd2l0aCAnb3ZlcmZsb3cnIG90aGVyIHRo
YW4gJ3Zpc2libGUnKSBtdXN0IG5vdCBvdmVybGFwIHRoZQorICAgICAgICAvLyBtYXJnaW4gYm94
IG9mIGFueSBmbG9hdHMgaW4gdGhlIHNhbWUgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFzIHRo
ZSBlbGVtZW50IGl0c2VsZi4KKyAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCB3ZSBwb3NpdGlv
biB0aGlzIGFzIGlmIGl0IHdhcyBmbG9hdGluZyBsZWZ0LgorICAgICAgICByZXR1cm4gdGhpcy5f
cG9zaXRpb25Gb3JGbG9hdGluZyhib3gpOworICAgIH0KKworICAgIF9hZGRGbG9hdGluZyhmbG9h
dGluZ0JveCkgeworICAgICAgICB0aGlzLm1fbGFzdEZsb2F0aW5nID0gZmxvYXRpbmdCb3g7Cisg
ICAgICAgIGlmIChVdGlscy5pc0Zsb2F0aW5nTGVmdChmbG9hdGluZ0JveCkpIHsKKyAgICAgICAg
ICAgIHRoaXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjay5wdXNoKGZsb2F0aW5nQm94KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLm1fcmlnaHRGbG9hdGluZ0Jv
eFN0YWNrLnB1c2goZmxvYXRpbmdCb3gpOworICAgIH0KKworICAgIF9maW5kSW5uZXJNb3N0TGVm
dEFuZFJpZ2h0KHZlcnRpY2FsUG9zaXRpb24pIHsKKyAgICAgICAgbGV0IGxlZnRGbG9hdGluZyA9
IHRoaXMuX2ZpbmRGbG9hdGluZ0F0VmVydGljYWxQb3NpdGlvbih2ZXJ0aWNhbFBvc2l0aW9uLCB0
aGlzLm1fbGVmdEZsb2F0aW5nQm94U3RhY2spOworICAgICAgICBsZXQgcmlnaHRGbG9hdGluZyA9
IHRoaXMuX2ZpbmRGbG9hdGluZ0F0VmVydGljYWxQb3NpdGlvbih2ZXJ0aWNhbFBvc2l0aW9uLCB0
aGlzLm1fcmlnaHRGbG9hdGluZ0JveFN0YWNrKTsKKyAgICAgICAgcmV0dXJuIHsgbGVmdDogbGVm
dEZsb2F0aW5nLCByaWdodDogcmlnaHRGbG9hdGluZyB9OworICAgIH0KKworICAgIF9tb3ZlVG9O
ZXh0VmVydGljYWxQb3NpdGlvbihmbG9hdGluZ1BhaXIpIHsKKyAgICAgICAgaWYgKCFmbG9hdGlu
Z1BhaXIubGVmdCAmJiAhZmxvYXRpbmdQYWlyLnJpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIE1h
dGguTmFOOworICAgICAgICBsZXQgbGVmdEJvdHRvbSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklU
WTsKKyAgICAgICAgbGV0IHJpZ2h0Qm90dG9tID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwor
ICAgICAgICBpZiAoZmxvYXRpbmdQYWlyLmxlZnQpCisgICAgICAgICAgICBsZWZ0Qm90dG9tID0g
dGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveChmbG9hdGluZ1BhaXIu
bGVmdCkuYm90dG9tKCk7CisgICAgICAgIGlmIChmbG9hdGluZ1BhaXIucmlnaHQpCisgICAgICAg
ICAgICByaWdodEJvdHRvbSA9IHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJn
aW5Cb3goZmxvYXRpbmdQYWlyLnJpZ2h0KS5ib3R0b20oKTsKKyAgICAgICAgcmV0dXJuIE1hdGgu
bWluKGxlZnRCb3R0b20sIHJpZ2h0Qm90dG9tKTsKKyAgICB9CisKKyAgICBfYXZhaWxhYmxlU3Bh
Y2UoY29udGFpbmluZ0Jsb2NrLCBmbG9hdGluZ1BhaXIpIHsKKyAgICAgICAgaWYgKGZsb2F0aW5n
UGFpci5sZWZ0ICYmIGZsb2F0aW5nUGFpci5yaWdodCkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nUGFpci5yaWdo
dCkubGVmdCgpIC0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveChm
bG9hdGluZ1BhaXIubGVmdCkucmlnaHQoKTsKKyAgICAgICAgaWYgKGZsb2F0aW5nUGFpci5sZWZ0
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5jb250ZW50Qm94KCkud2lkdGgo
KSAtICh0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5n
UGFpci5sZWZ0KS5yaWdodCgpIC0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZUJv
cmRlckJveChjb250YWluaW5nQmxvY2spLmxlZnQoKSk7CisgICAgICAgIGlmIChmbG9hdGluZ1Bh
aXIucmlnaHQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5h
YnNvbHV0ZU1hcmdpbkJveChmbG9hdGluZ1BhaXIucmlnaHQpLmxlZnQoKTsKKyAgICAgICAgcmV0
dXJuIGNvbnRhaW5pbmdCbG9jay5jb250ZW50Qm94KCkud2lkdGgoKTsKKyAgICB9CisKKyAgICBf
ZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKHZlcnRpY2FsUG9zaXRpb24sIGZsb2F0aW5n
U3RhY2spIHsKKyAgICAgICAgbGV0IGluZGV4ID0gZmxvYXRpbmdTdGFjay5sZW5ndGg7CisgICAg
ICAgIHdoaWxlICgtLWluZGV4ID49IDAgJiYgdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNv
bHV0ZU1hcmdpbkJveChmbG9hdGluZ1N0YWNrW2luZGV4XSkuYm90dG9tKCkgPD0gdmVydGljYWxQ
b3NpdGlvbik7CisgICAgICAgIHJldHVybiBpbmRleCA+PSAwID8gZmxvYXRpbmdTdGFja1tpbmRl
eF0gOiBudWxsOworICAgIH0KKworICAgIF9pc0VtcHR5KCkgeworICAgICAgICByZXR1cm4gIXRo
aXMubV9sZWZ0RmxvYXRpbmdCb3hTdGFjay5sZW5ndGggJiYgIXRoaXMubV9yaWdodEZsb2F0aW5n
Qm94U3RhY2subGVuZ3RoOworICAgIH0KKworICAgIF9hZGp1c3RlZEZsb2F0aW5nUG9zaXRpb24o
ZmxvYXRpbmdCb3gsIHZlcnRpY2FsUG9zaXRpb24sIGxlZnRSaWdodEZsb2F0aW5ncykgeworICAg
ICAgICBsZXQgY29udGFpbmluZ0Jsb2NrID0gZmxvYXRpbmdCb3guY29udGFpbmluZ0Jsb2NrKCk7
CisgICAgICAgIC8vIENvbnZlcnQgYWxsIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIGZvcm1hdHRp
bmcgY29udGV4dCdzIHJvb3QuCisgICAgICAgIGxldCBsZWZ0ID0gdGhpcy5fZm9ybWF0dGluZ0Nv
bnRleHQoKS5hYnNvbHV0ZUNvbnRlbnRCb3goY29udGFpbmluZ0Jsb2NrKS5sZWZ0KCk7CisgICAg
ICAgIGxldCByaWdodCA9IHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVDb250ZW50
Qm94KGNvbnRhaW5pbmdCbG9jaykucmlnaHQoKTsKKyAgICAgICAgaWYgKGxlZnRSaWdodEZsb2F0
aW5ncykgeworICAgICAgICAgICAgaWYgKGxlZnRSaWdodEZsb2F0aW5ncy5sZWZ0KSB7CisgICAg
ICAgICAgICAgICAgbGV0IGZsb2F0aW5nQm94UmlnaHQgPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4
dCgpLmFic29sdXRlTWFyZ2luQm94KGxlZnRSaWdodEZsb2F0aW5ncy5sZWZ0KS5yaWdodCgpOwor
ICAgICAgICAgICAgICAgIGlmIChmbG9hdGluZ0JveFJpZ2h0ID4gbGVmdCkKKyAgICAgICAgICAg
ICAgICAgICAgbGVmdCA9IGZsb2F0aW5nQm94UmlnaHQ7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChsZWZ0UmlnaHRGbG9hdGluZ3MucmlnaHQpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgZmxvYXRpbmdCb3hMZWZ0ID0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1h
cmdpbkJveChsZWZ0UmlnaHRGbG9hdGluZ3MucmlnaHQpLmxlZnQoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoZmxvYXRpbmdCb3hMZWZ0IDwgcmlnaHQpCisgICAgICAgICAgICAgICAgICAgIHJpZ2h0
ID0gZmxvYXRpbmdCb3hMZWZ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxl
ZnQgKz0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5tYXJnaW5MZWZ0KGZsb2F0aW5nQm94KTsK
KyAgICAgICAgcmlnaHQgLT0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5tYXJnaW5SaWdodChm
bG9hdGluZ0JveCk7CisgICAgICAgIHZlcnRpY2FsUG9zaXRpb24gKz0gdGhpcy5fZm9ybWF0dGlu
Z0NvbnRleHQoKS5tYXJnaW5Ub3AoZmxvYXRpbmdCb3gpOworICAgICAgICAvLyBObyBjb252ZXJ0
IHRoZW0gYmFjayByZWxhdGl2ZSB0byB0aGUgZmxvYXRpbmdCb3gncyBjb250YWluaW5nIGJsb2Nr
LgorICAgICAgICBsZXQgY29udGFpbmluZ0Jsb2NrTGVmdCA9IHRoaXMuX2Zvcm1hdHRpbmdDb250
ZXh0KCkuYWJzb2x1dGVCb3JkZXJCb3goY29udGFpbmluZ0Jsb2NrKS5sZWZ0KCk7CisgICAgICAg
IGxldCBjb250YWluaW5nQmxvY2tUb3AgPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29s
dXRlQm9yZGVyQm94KGNvbnRhaW5pbmdCbG9jaykudG9wKCk7CisgICAgICAgIGxlZnQgLT0gY29u
dGFpbmluZ0Jsb2NrTGVmdDsKKyAgICAgICAgcmlnaHQgLT0gY29udGFpbmluZ0Jsb2NrTGVmdDsK
KyAgICAgICAgdmVydGljYWxQb3NpdGlvbiAtPSBjb250YWluaW5nQmxvY2tUb3A7CisKKyAgICAg
ICAgaWYgKFV0aWxzLmlzRmxvYXRpbmdMZWZ0KGZsb2F0aW5nQm94KSB8fCAhVXRpbHMuaXNGbG9h
dGluZ1Bvc2l0aW9uZWQoZmxvYXRpbmdCb3gpKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBMYXlv
dXRQb2ludCh2ZXJ0aWNhbFBvc2l0aW9uLCBsZWZ0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlv
dXRQb2ludCh2ZXJ0aWNhbFBvc2l0aW9uLCByaWdodCAtIGZsb2F0aW5nQm94LnJlY3QoKS53aWR0
aCgpKTsKKyAgICB9CisKKyAgICBfYm90dG9tKGZsb2F0aW5nU3RhY2spIHsKKyAgICAgICAgaWYg
KCFmbG9hdGluZ1N0YWNrIHx8ICFmbG9hdGluZ1N0YWNrLmxlbmd0aCkKKyAgICAgICAgICAgIHJl
dHVybiBOdW1iZXIuTmFOOworICAgICAgICBsZXQgbWF4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZsb2F0aW5nU3RhY2subGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBtYXggPSBNYXRoLm1heCh0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgp
LmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nU3RhY2tbaV0pLmJvdHRvbSgpLCBtYXgpOworICAg
ICAgICByZXR1cm4gbWF4OworICAgIH0KKworICAgIF9mb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMubV9mb3JtYXR0aW5nQ29udGV4dDsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMmMzYzI0OWEz
M2U1MDY1NjQ5ZjI4NDMxZjgzYTVkNzNmMGJlNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC5qcwpAQCAtMCwwICsxLDkyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgRm9ybWF0dGlu
Z0NvbnRleHQgeworICAgIGNvbnN0cnVjdG9yKHJvb3RDb250YWluZXIpIHsKKyAgICAgICAgdGhp
cy5tX3Jvb3RDb250YWluZXIgPSByb290Q29udGFpbmVyOworICAgICAgICB0aGlzLm1fZmxvYXRp
bmdDb250ZXh0ID0gbnVsbDsKKyAgICB9CisKKyAgICByb290Q29udGFpbmVyKCkgeworICAgICAg
ICByZXR1cm4gdGhpcy5tX3Jvb3RDb250YWluZXI7CisgICAgfQorCisgICAgZmxvYXRpbmdDb250
ZXh0KCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2Zsb2F0aW5nQ29udGV4dDsKKyAgICB9CisK
KyAgICBsYXlvdXQobGF5b3V0Q29udGV4dCkgeworICAgIH0KKworICAgIGNvbXB1dGVXaWR0aChi
b3gpIHsKKyAgICB9CisKKyAgICBjb21wdXRlSGVpZ2h0KGJveCkgeworICAgIH0KKworICAgIG1h
cmdpblRvcChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkTWFyZ2luVG9wKGJv
eCk7CisgICAgfQorICAgIAorICAgIG1hcmdpbkxlZnQoYm94KSB7CisgICAgICAgIHJldHVybiBV
dGlscy5jb21wdXRlZE1hcmdpbkxlZnQoYm94KTsKKyAgICB9CisgICAgCisgICAgbWFyZ2luQm90
dG9tKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRNYXJnaW5Cb3R0b20oYm94
KTsKKyAgICB9CisgICAgCisgICAgbWFyZ2luUmlnaHQoYm94KSB7CisgICAgICAgIHJldHVybiBV
dGlscy5jb21wdXRlZE1hcmdpblJpZ2h0KGJveCk7CisgICAgfQorCisgICAgYWJzb2x1dGVNYXJn
aW5Cb3goYm94KSB7CisgICAgICAgIGxldCBhYnNvbHV0ZUNvbnRlbnRCb3ggPSBVdGlscy5tYXBU
b0NvbnRhaW5lcihib3gsIHRoaXMucm9vdENvbnRhaW5lcigpKTsKKyAgICAgICAgYWJzb2x1dGVD
b250ZW50Qm94Lm1vdmVCeShuZXcgTGF5b3V0U2l6ZSgtdGhpcy5tYXJnaW5MZWZ0KGJveCksIC10
aGlzLm1hcmdpblRvcChib3gpKSk7CisgICAgICAgIGFic29sdXRlQ29udGVudEJveC5ncm93Qnko
bmV3IExheW91dFNpemUodGhpcy5tYXJnaW5MZWZ0KGJveCkgKyB0aGlzLm1hcmdpblJpZ2h0KGJv
eCksIHRoaXMubWFyZ2luVG9wKGJveCkgKyB0aGlzLm1hcmdpbkJvdHRvbShib3gpKSk7CisgICAg
ICAgIHJldHVybiBhYnNvbHV0ZUNvbnRlbnRCb3g7CisgICAgfQorCisgICAgYWJzb2x1dGVCb3Jk
ZXJCb3goYm94KSB7CisgICAgICAgIGxldCBib3JkZXJCb3ggPSBib3guYm9yZGVyQm94KCk7Cisg
ICAgICAgIGxldCBhYnNvbHV0ZVJlY3QgPSBuZXcgTGF5b3V0UmVjdChVdGlscy5tYXBUb0NvbnRh
aW5lcihib3gsIHRoaXMucm9vdENvbnRhaW5lcigpKS50b3BMZWZ0KCksIGJvcmRlckJveC5zaXpl
KCkpOworICAgICAgICBhYnNvbHV0ZVJlY3QubW92ZUJ5KGJvcmRlckJveC50b3BMZWZ0KCkpOwor
ICAgICAgICByZXR1cm4gYWJzb2x1dGVSZWN0OworICAgIH0KKworICAgIGFic29sdXRlUGFkZGlu
Z0JveChib3gpIHsKKyAgICAgICAgbGV0IHBhZGRpbmdCb3ggPSBib3gucGFkZGluZ0JveCgpOwor
ICAgICAgICBsZXQgYWJzb2x1dGVSZWN0ID0gbmV3IExheW91dFJlY3QoVXRpbHMubWFwVG9Db250
YWluZXIoYm94LCB0aGlzLnJvb3RDb250YWluZXIoKSkudG9wTGVmdCgpLCBwYWRkaW5nQm94LnNp
emUoKSk7CisgICAgICAgIGFic29sdXRlUmVjdC5tb3ZlQnkocGFkZGluZ0JveC50b3BMZWZ0KCkp
OworICAgICAgICByZXR1cm4gYWJzb2x1dGVSZWN0OworICAgIH0KKworICAgIGFic29sdXRlQ29u
dGVudEJveChib3gpIHsKKyAgICAgICAgbGV0IGNvbnRlbnRCb3ggPSBib3guY29udGVudEJveCgp
OworICAgICAgICBsZXQgYWJzb2x1dGVSZWN0ID0gbmV3IExheW91dFJlY3QoVXRpbHMubWFwVG9D
b250YWluZXIoYm94LCB0aGlzLnJvb3RDb250YWluZXIoKSkudG9wTGVmdCgpLCBjb250ZW50Qm94
LnNpemUoKSk7CisgICAgICAgIGFic29sdXRlUmVjdC5tb3ZlQnkoY29udGVudEJveC50b3BMZWZ0
KCkpOworICAgICAgICByZXR1cm4gYWJzb2x1dGVSZWN0OworICAgIH0KK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0luaXRpYWxCbG9ja0NvbnRhaW5lci5qcyBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL0luaXRpYWxCbG9ja0NvbnRhaW5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGFiNTQ4
ZTE3YTVlNGVhYWY3YTU0MTNiYzIxNTk4ZjFiZjM3OGRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmpzCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBJ
bml0aWFsQmxvY2tDb250YWluZXIgZXh0ZW5kcyBCbG9ja0NvbnRhaW5lciB7CisgICAgY29uc3Ry
dWN0b3IoZG9jdW1lbnQsIGlkLCBuYW1lKSB7CisgICAgICAgIHN1cGVyKGRvY3VtZW50LCBpZCk7
CisgICAgfQorCisgICAgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgeworICAg
ICAgICAvLyBJQ0IgYWx3YXlzIGNyZWF0ZXMgYSBuZXcgKGluaXRhbCkgYmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0LgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwYWRkaW5nQm94
KCkgeworICAgICAgICByZXR1cm4gdGhpcy5ib3JkZXJCb3goKTsKKyAgICB9CisKKyAgICBjb250
ZW50Qm94KCkgeworICAgICAgICByZXR1cm4gdGhpcy5ib3JkZXJCb3goKTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9JbmxpbmVCb3guanMgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC9JbmxpbmVCb3guanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEyZWQ1MDQzMDdjMThkZDFlOTNm
ODM0ZWEwNjMyOTZmN2RmZWRhYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL0lubGluZUJveC5qcwpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgSW5saW5lQm94IGV4dGVuZHMgQm94IHsKKyAg
ICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkgeworICAgICAgICBzdXBlcihub2RlLCBpZCk7CisgICAg
ICAgIHRoaXMubV90ZXh0ID0gbnVsbDsKKyAgICB9CisKKyAgICBzZXRUZXh0KHRleHQpIHsKKyAg
ICAgICAgdGhpcy5tX3RleHQgPSB0ZXh0OworICAgIH0KKworICAgIHRleHQoKSB7CisgICAgICAg
IHJldHVybiB0aGlzLm1fdGV4dDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYjAzZjY2ZWVkNzliNjhk
NjI0NGNhMmRlZjI3ZDNmZDQ5MDQ5ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcwpAQCAtMCwwICsxLDkwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK2NsYXNzIElubGluZUZvcm1h
dHRpbmdDb250ZXh0IGV4dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgeworICAgIGNvbnN0cnVjdG9y
KHJvb3QpIHsKKyAgICAgICAgc3VwZXIocm9vdCk7CisgICAgICAgIC8vIElmIHRoZSBibG9jayBj
b250YWluZXIgYm94IHRoYXQgaW5pdGlhdGVzIHRoaXMgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4
IGFsc28gZXN0YWJsaXNoZXMgYSBibG9jayBjb250ZXh0LCBjcmVhdGUgYSBuZXcgZmxvYXQgZm9y
IHVzLgorICAgICAgICBBU1NFUlQocm9vdC5pc0Jsb2NrQ29udGFpbmVyQm94KCkpOworICAgICAg
ICBpZiAocm9vdC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSkKKyAgICAgICAg
ICAgIHRoaXMubV9mbG9hdGluZ0NvbnRleHQgPSBuZXcgRmxvYXRpbmdDb250ZXh0KHRoaXMpOwor
ICAgIH0KKworICAgIGxheW91dChsYXlvdXRDb250ZXh0KSB7CisgICAgICAgIC8vIDkuNC4yIElu
bGluZSBmb3JtYXR0aW5nIGNvbnRleHRzCisgICAgICAgIC8vIEluIGFuIGlubGluZSBmb3JtYXR0
aW5nIGNvbnRleHQsIGJveGVzIGFyZSBsYWlkIG91dCBob3Jpem9udGFsbHksIG9uZSBhZnRlciB0
aGUgb3RoZXIsIGJlZ2lubmluZyBhdCB0aGUgdG9wIG9mIGEgY29udGFpbmluZyBibG9jay4KKyAg
ICAgICAgaWYgKCF0aGlzLnJvb3RDb250YWluZXIoKS5maXJzdENoaWxkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVyIHRyZWUgdHJhdmVyc2Fs
IGxheW91dC4KKyAgICAgICAgbGV0IGxheW91dFN0YWNrID0gbmV3IEFycmF5KCk7CisgICAgICAg
IC8vIFRoZSByb290IGNvbnRhaW5lciBsYXlvdXQgaXMgZG9uZSBpbiB0aGUgZm9ybWF0dGluZyBj
b250ZXh0IGl0IGxpdmVzIGluLCBub3QgdGhhdCBvbmUgaXQgY3JlYXRlcywgc28gbGV0J3Mgc3Rh
cnQgd2l0aCB0aGUgZmlyc3QgY2hpbGQuCisgICAgICAgIGxheW91dFN0YWNrLnB1c2godGhpcy5y
b290Q29udGFpbmVyKCkuZmlyc3RDaGlsZCgpKTsKKyAgICAgICAgd2hpbGUgKGxheW91dFN0YWNr
Lmxlbmd0aCkgeworICAgICAgICAgICAgLy8gVHJhdmVycyBkb3duIG9uIHRoZSBkZXNjZW5kYW50
cyB1bnRpbCB3ZSBmaW5kIGEgbGVhZiBub2RlLgorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsK
KyAgICAgICAgICAgICAgICBsZXQgYm94ID0gbGF5b3V0U3RhY2tbbGF5b3V0U3RhY2subGVuZ3Ro
IC0gMV07CisgICAgICAgICAgICAgICAgaWYgKGJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250
ZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0Q29udGV4dC5sYXlvdXRGb3JtYXR0
aW5nQ29udGV4dChib3guZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
ICghYm94LmlzQ29udGFpbmVyKCkgfHwgIWJveC5oYXNDaGlsZCgpKQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBsYXlvdXRTdGFjay5wdXNoKGJveC5maXJzdENo
aWxkKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGxheW91dFN0YWNrLmxl
bmd0aCkgeworICAgICAgICAgICAgICAgIGxldCBib3ggPSBsYXlvdXRTdGFjay5wb3AoKTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVJbmxpbmVCb3goYm94KTsKKyAgICAgICAgICAgICAg
ICBpZiAoYm94Lm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0U3Rh
Y2sucHVzaChib3gubmV4dFNpYmxpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBB
bmQgZmluYWxseSBwbGFjZSB0aGUgb3V0IG9mIGZsb3cgZGVzY2VuZGFudHMgZm9yIHRoZSByb290
LgorICAgICAgICAvL3RoaXMuX3BsYWNlT3V0T2ZGbG93RGVzY2VuZGFudHModGhpcy5yb290Q29u
dGFpbmVyKCkpOworICAgfQorCisgICAgX2hhbmRsZUlubGluZUJveChpbmxpbmVCb3gpIHsKKyAg
ICAgICAgaWYgKGlubGluZUJveC50ZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5faGFu
ZGxlVGV4dChpbmxpbmVCb3gpOworICAgIH0KKworICAgIF9oYW5kbGVUZXh0KGlubGluZUJveCkg
eworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGV4dHJlbWVseSBzaW1wbGUgbGluZSBicmVh
a2luZyBhbGdvcml0aG0uCisgICAgICAgIGxldCBlbmRQb3NpdGlvbiA9IGlubGluZUJveC50ZXh0
KCkubGVuZ2h0KCkgLSAxOworICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gMDsKKyAgICAg
ICAgd2hpbGUgKGN1cnJlbnRQb3NpdGlvbiA8IGVuZFBvc2l0aW9uKSB7CisgICAgICAgICAgICBs
ZXQgYnJlYWtpbmdQb3NpdGlvbiA9IFV0aWxzLm5leHRCcmVha2luZ09wcG9ydHVuaXR5KGlubGlu
ZUJveC50ZXh0KCksIGN1cnJlbnRQb3NpdGlvbik7CisgICAgICAgICAgICBsZXQgZnJhZ21lbnRX
aWR0aCA9IFV0aWxzLm1lYXN1cmVUZXh0KGlubGluZUJveCwgY3VycmVudFBvc2l0aW9uLCBicmVh
a2luZ1Bvc2l0aW9uKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmxpbmUoKS5hdmFpbGFibGVXaWR0
aCgpID49IGZyYWdtZW50V2lkdGggfHwgdGhpcy5saW5lKCkuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5saW5lKCkuYXBwZW5kRnJhZ21lbnQoY3VycmVudFBvc2l0aW9uLCBicmVh
a2luZ1Bvc2l0aW9uLCBmcmFnbWVudFdpZHRoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgdGhpcy5saW5lKCkuY29tbWl0Q3VycmVudExpbmUoKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLmxpbmUoKS5hcHBlbmRGcmFnbWVudChjdXJyZW50UG9zaXRpb24sIGJyZWFraW5n
UG9zaXRpb24sIGZyYWdtZW50V2lkdGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3Vy
cmVudFBvc2l0aW9uID0gYnJlYWtpbmdQb3NpdGlvbjsKKyAgICAgICAgfQorICAgIH0KK30KKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0LmpzIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvTGF5b3V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViOTg0YTRkZGI5YmM1MTViMGUyNzQxOTZi
YjVkYmViMThhMjMzMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9M
YXlvdXQuanMKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK2Z1bmN0aW9uIGxheW91dCh3aW5kb3csIHZpZXdwb3J0U2l6ZSkgewor
ICAgIGxldCB0cmVlQnVpbGRlciA9IG5ldyBUcmVlQnVpbGRlcigpOworICAgIGxldCBpbml0aWFs
Q29udGFpbmluZ0Jsb2NrID0gdHJlZUJ1aWxkZXIuY3JlYXRlVHJlZSh3aW5kb3cuZG9jdW1lbnQs
IHdpbmRvdy5yZW5kZXJUcmVlU3RydWN0dXJlKTsKKyAgICBpbml0aWFsQ29udGFpbmluZ0Jsb2Nr
LnNldFNpemUodmlld3BvcnRTaXplKTsKKworICAgIGxldCBsYXlvdXRDb250ZXh0ID0gbmV3IExh
eW91dENvbnRleHQoaW5pdGlhbENvbnRhaW5pbmdCbG9jayk7CisgICAgbGF5b3V0Q29udGV4dC5s
YXlvdXRGb3JtYXR0aW5nQ29udGV4dChpbml0aWFsQ29udGFpbmluZ0Jsb2NrLmVzdGFibGlzaGVk
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgcmV0dXJuIFV0aWxzLmxheW91dFRyZWVEdW1wKGlu
aXRpYWxDb250YWluaW5nQmxvY2spOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvTGF5b3V0Q29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dENvbnRleHQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODE0YTJmMTA4MzU5ZjI3MzE5MDZmN2UwMTllNGRhNDFiN2I2NGNhYgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dENvbnRleHQuanMK
QEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK2NsYXNzIExheW91dENvbnRleHQgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgIH0K
KworICAgIGxheW91dEZvcm1hdHRpbmdDb250ZXh0KGZvcm1hdHRpbmdDb250ZXh0KSB7CisgICAg
ICAgIGZvcm1hdHRpbmdDb250ZXh0LmxheW91dCh0aGlzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54Y3dvcmtzcGFjZS9jb250ZW50
cy54Y3dvcmtzcGFjZWRhdGEgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54
Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVhNTI4OTBj
NjVlMGI2M2JkMmJlZmI2OTE3MTU2OWQxNzljZDEwZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29y
a3NwYWNlZGF0YQpAQCAtMCwwICsxLDk5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJVVEYtOCI/PgorPFdvcmtzcGFjZQorICAgdmVyc2lvbiA9ICIxLjAiPgorICAgPEdyb3VwCisg
ICAgICBsb2NhdGlvbiA9ICJjb250YWluZXI6IgorICAgICAgbmFtZSA9ICJUZXN0Ij4KKyAgICAg
IDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJncm91cDp0ZXN0L2luZGV4Lmh0bWwiPgor
ICAgICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdy
b3VwOnRlc3QvVGVzdEhhcm5lc3MuanMiPgorICAgICAgPC9GaWxlUmVmPgorICAgPC9Hcm91cD4K
KyAgIDxHcm91cAorICAgICAgbG9jYXRpb24gPSAiY29udGFpbmVyOiIKKyAgICAgIG5hbWUgPSAi
TWlzYyI+CisgICAgICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9o
ZWFkZXJzL0xheW91dENvbnRleHQuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJl
ZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250
ZXh0LmgiPgorICAgICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0
aW9uID0gImdyb3VwOm1pc2MvaGVhZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgiPgorICAg
ICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3Vw
Om1pc2MvaGVhZGVycy9GbG9hdGluZ0NvbnRleHQuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAg
ICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0Jsb2Nr
TWFyZ2luQ29sbGFwc2UuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAg
ICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0JveC5oIj4KKyAgICAgIDwvRmls
ZVJlZj4KKyAgICAgIDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hl
YWRlcnMvQ29udGFpbmVyLmgiPgorICAgICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAg
ICAgICAgIGxvY2F0aW9uID0gImdyb3VwOm1pc2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oIj4K
KyAgICAgIDwvRmlsZVJlZj4KKyAgICAgIDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJn
cm91cDptaXNjL2hlYWRlcnMvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmgiPgorICAgICAgPC9GaWxl
UmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3VwOm1pc2MvaGVh
ZGVycy9JbmxpbmVCb3guaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAg
ICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL1RleHQuaCI+CisgICAgICA8L0Zp
bGVSZWY+CisgICA8L0dyb3VwPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3Vw
OlJFQURNRS5tZCI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24g
PSAiZ3JvdXA6TGF5b3V0LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBs
b2NhdGlvbiA9ICJncm91cDpMYXlvdXRDb250ZXh0LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxG
aWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpGb3JtYXR0aW5nQ29udGV4dC5qcyI+Cisg
ICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6QmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAg
bG9jYXRpb24gPSAiZ3JvdXA6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuanMiPgorICAgPC9GaWxl
UmVmPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkZsb2F0aW5nQ29udGV4
dC5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3Jv
dXA6QmxvY2tNYXJnaW5Db2xsYXBzZS5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgor
ICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6Qm94LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxl
UmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpDb250YWluZXIuanMiPgorICAgPC9GaWxlUmVm
PgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkJsb2NrQ29udGFpbmVyLmpz
Ij4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpJ
bml0aWFsQmxvY2tDb250YWluZXIuanMiPgorICAgPC9GaWxlUmVmPgorICAgPEZpbGVSZWYKKyAg
ICAgIGxvY2F0aW9uID0gImdyb3VwOklubGluZUJveC5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8
RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6VGV4dC5qcyI+CisgICA8L0ZpbGVSZWY+
CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6VXRpbHMuanMiPgorICAgPC9G
aWxlUmVmPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOlRyZWVCdWlsZGVy
LmpzIj4KKyAgIDwvRmlsZVJlZj4KKzwvV29ya3NwYWNlPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvTGF5b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL0lERVdv
cmtzcGFjZUNoZWNrcy5wbGlzdCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVk
Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS9JREVXb3Jrc3BhY2VDaGVja3MucGxpc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMThkOTgxMDAzZDY4ZDA1NDZjNDgwNGFjMmZmNDdkZDk3YzZlNzkyMQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNl
L3hjc2hhcmVkZGF0YS9JREVXb3Jrc3BhY2VDaGVja3MucGxpc3QKQEAgLTAsMCArMSw4IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBV
QkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20v
RFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0
PgorCTxrZXk+SURFRGlkQ29tcHV0ZU1hYzMyQml0V2FybmluZzwva2V5PgorCTx0cnVlLz4KKzwv
ZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9SRUFETUUu
bWQgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBkMjZmOTgy
MjhmZWVjYTg2MWE3YjEwNDgwYzhlZjU4MDZlMzEyZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL1JFQURNRS5tZApAQCAtMCwwICsxLDQ1IEBACitWaXN1YWwgZm9ybWF0
dGluZyBtb2RlbCBpbXBsZW1lbnRhdGlvbi4KK1NlZSBodHRwczovL3d3dy53My5vcmcvVFIvQ1NT
MjIvdmlzdXJlbi5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCitXZWJDb3JlCisxLiByZWN1
cnNpdmUgbGF5b3V0CisyLiBsYXlvdXQgbG9naWMgbGl2ZXMgaW4gdGhlIHJlbmRlcmVycyBtaXhp
bmcgYmxvY2sgd2l0aCBpbmxpbmUgZXRjLgorCitMYXlvdXRSZWxvYWRlZAorMS4gaXRlcmF0aXZl
IGxheW91dCB3aXRoaW4gYSBmb3JtYXR0aW5nIGNvbnRleHQsIHJlY3Vyc2l2ZSBhY3Jvc3MgbmVz
dGVkIGZvcm1hdHRpbmcgY29udGV4dHMgCisyLiBmb3JtYXR0aW5nIGNvbnRleHQgaXMgcmVzcG9u
c2libGUgZm9yIGNvbXB1dGluZyBzaXplL3Bvc2l0aW9ucyBmb3IgYWxsIHRoZSBib3hlcyB0aGF0
IGxpdmUgaW4gdGhlCitjb250ZXh0IGluY2x1ZGluZyBpbi9vdXQtb2YtZmxvdyBhbmQgZmxvYXRp
bmcgYm94ZXMgIAorMy4gSW5pdGlhbCBjb250YWluaW5nIGJsb2NrIGNyZWF0ZXMgdGhlIHRvcCBs
ZXZlbCAoaW5pdGlhbCkgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0Cis0LiBGbG9hdHMgYXJlIHJl
c2l0cmljZWQgdG8gdGhlaXIgY29udGFpbmluZyBibG9ja3MuCisKKworSW5zdHJ1Y3Rpb25zOgor
MS4gYXBwbHkgLi9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoCisyLiBjb21waWxlIFdl
YktpdAorMy4gbG9hZCAuL3Rlc3QvaW5kZXguaHRtbAorCitEZXNpZ246CitGb3JtYXR0aW5nQ29u
dGV4dAorIC0gQmxvY2tGb3JtYXR0aW5nQ29udGV4dAorIC0gSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpCisgLSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0IChub3Qg
eWV0IGltcGxlbWVudGVkKQorIC0gRmxleEZvcm1hdHRpbmdDb250ZXh0IChub3QgeWV0IGltcGxl
bWVudGVkKQorIC0gZXRjLgorCitCb3gKKyAtIENvbnRhaW5lcgorICAtIEJsb2NrQ29udGFpbmVy
CisgICAtIEluaXRpYWxCbG9ja0NvbnRhaW5lcgorICAtIElubGluZUNvbnRhaW5lciAobm90IHll
dCkKKyAtIElubGluZUJveCAobm90IHlldCkKKyAKKworUGFydGlhbGx5IGRvbmU6CitCbG9jayBm
b3JtYXR0aW5nIGNvbnRleHQ6CistIHN0YXRpYywgcmVsYXRpdmUgYW5kIG91dCBvZiBmbG93IHBv
c2l0aW9uaW5nCistIG1hcmdpbiBjb2xsYXBzaW5nCistIGZsb2F0cworCitNaXNzaW5nOgorLSBJ
bmxpbmUgZm9ybWF0dGluZyBjb250ZXh0CistIEV2ZXJ5dGhpbmcgZWxzZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvVGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1RleHQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGVmNTg4ODhlY2U3NDM5N2ZhZTQ3ZTAxZjkwN2Q5MTBlYjcyM2VhMAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1RleHQuanMKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Ns
YXNzIFRleHQgeworICAgIGNvbnN0cnVjdG9yKG5vZGUsIGlkLCBpbmxpbmVCb3gpIHsKKyAgICAg
ICAgdGhpcy5tX25vZGUgPSBub2RlOworICAgICAgICB0aGlzLm1faWQgPSBpZDsKKyAgICAgICAg
dGhpcy5tX2lubGluZUJveCA9IGlubGluZUJveDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9UcmVlQnVpbGRlci5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1Ry
ZWVCdWlsZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzOWMyNDVmNGEwNmIxOWQ1ZjkxNDI1NDY1OThjN2Ex
MDVjZmMxYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9UcmVlQnVp
bGRlci5qcwpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKy8vIDEoKVJlbmRlclZpZXd8MigxKVJlbmRlckJsb2NrfDMoMilSZW5k
ZXJCb2R5fDQoMylSZW5kZXJCbG9ja3w1KDMpQW5vbnltb3VzUmVuZGVyQmxvY2t8CitjbGFzcyBU
cmVlQnVpbGRlciB7CisKKyAgICBjcmVhdGVUcmVlKGRvY3VtZW50LCByZW5kZXJUcmVlRHVtcCkg
eworICAgICAgICAvLyBSb290LgorICAgICAgICBsZXQgaW5pdGlhbEJsb2NrQ29udGFpbmVyID0g
bmV3IEluaXRpYWxCbG9ja0NvbnRhaW5lcihkb2N1bWVudCwgcGFyc2VJbnQocmVuZGVyVHJlZUR1
bXAuc3Vic3RyaW5nKDAsIHJlbmRlclRyZWVEdW1wLmluZGV4T2YoIigiKSkpKTsKKyAgICAgICAg
aW5pdGlhbEJsb2NrQ29udGFpbmVyLnNldFJlbmRlcmVyTmFtZSgiUmVuZGVyVmlldyIpOworICAg
ICAgICByZW5kZXJUcmVlRHVtcCA9IHJlbmRlclRyZWVEdW1wLnN1YnN0cmluZyhyZW5kZXJUcmVl
RHVtcC5pbmRleE9mKCJ8IikgKyAxKTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAg
ICAgICAgbGV0IGVuZE9mSWQgPSByZW5kZXJUcmVlRHVtcC5pbmRleE9mKCIoIik7CisgICAgICAg
ICAgICBsZXQgYm94SWQgPSBwYXJzZUludChyZW5kZXJUcmVlRHVtcC5zdWJzdHJpbmcoMCwgZW5k
T2ZJZCkpOworICAgICAgICAgICAgbGV0IGVuZE9mUGFyZW50SWQgPSByZW5kZXJUcmVlRHVtcC5p
bmRleE9mKCIpIik7CisgICAgICAgICAgICBsZXQgcGFyZW50SWQgPSBwYXJzZUludChyZW5kZXJU
cmVlRHVtcC5zdWJzdHJpbmcoZW5kT2ZJZCArIDEsIGVuZE9mUGFyZW50SWQpKTsKKyAgICAgICAg
ICAgIGxldCBlbmRPZk5hbWUgPSByZW5kZXJUcmVlRHVtcC5pbmRleE9mKCJ8Iik7CisgICAgICAg
ICAgICBsZXQgbmFtZSA9IHJlbmRlclRyZWVEdW1wLnN1YnN0cmluZyhlbmRPZlBhcmVudElkICsg
MSwgZW5kT2ZOYW1lKTsKKworICAgICAgICAgICAgdGhpcy5fY3JlYXRlQW5kQXR0YWNoQm94KGlu
aXRpYWxCbG9ja0NvbnRhaW5lciwgYm94SWQsIG5hbWUsIHBhcmVudElkKTsKKyAgICAgICAgICAg
IGlmIChlbmRPZk5hbWUgPT0gcmVuZGVyVHJlZUR1bXAubGVuZ3RoIC0gMSkKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIHJlbmRlclRyZWVEdW1wID0gcmVuZGVyVHJlZUR1bXAu
c3Vic3RyaW5nKGVuZE9mTmFtZSArIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbml0
aWFsQmxvY2tDb250YWluZXI7CisgICAgfQorCisgICAgX2NyZWF0ZUFuZEF0dGFjaEJveChpbml0
aWFsQmxvY2tDb250YWluZXIsIGlkLCBuYW1lLCBwYXJlbnRJZCkgeworICAgICAgICBsZXQgYm94
ID0gbnVsbDsKKyAgICAgICAgbGV0IHRleHQgPSBudWxsOworICAgICAgICBsZXQgbm9kZSA9IHRo
aXMuX2ZpbmROb2RlKGluaXRpYWxCbG9ja0NvbnRhaW5lci5ub2RlKCksIGlkLCBuYW1lKTsKKyAg
ICAgICAgaWYgKG5hbWUgPT0gIlJlbmRlckJsb2NrIiB8fCBuYW1lID09ICJSZW5kZXJCb2R5IikK
KyAgICAgICAgICAgIGJveCA9IG5ldyBCbG9ja0NvbnRhaW5lcihub2RlLCBpZCk7CisgICAgICAg
IGVsc2UgaWYgKG5hbWUgPT0gIlJlbmRlcklubGluZSIpIHsKKyAgICAgICAgICAgIGJveCA9IG5l
dyBJbmxpbmVDb250YWluZXIobm9kZSwgaWQpOworICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0g
IlJlbmRlclRleHQiKSB7CisgICAgICAgICAgICB0ZXh0ID0gbmV3IFRleHQobm9kZSwgaWQpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJveCA9IG5ldyBCb3gobm9kZSwgaWQpOworCisg
ICAgICAgIGlmIChib3gpCisgICAgICAgICAgICBib3guc2V0UmVuZGVyZXJOYW1lKG5hbWUpOwor
CisgICAgICAgIGxldCBwYXJlbnRCb3ggPSB0aGlzLl9maW5kQm94KGluaXRpYWxCbG9ja0NvbnRh
aW5lciwgcGFyZW50SWQpOworICAgICAgICAvLyBXZWJLaXQgZG9lcyBub3QgY29uc3RydWN0IGFu
b255bW91cyBpbmxpbmUgY29udGFpbmVyIGZvciB0ZXh0IGlmIHRoZSB0ZXh0CisgICAgICAgIC8v
IGlzIGEgZGlyZWN0IGNoaWxkIG9mIGEgYmxvY2sgY29udGFpbmVyLgorICAgICAgICBpZiAodGV4
dCAmJiAhcGFyZW50Qm94LmlzSW5saW5lQ29udGFpbmVyKSB7CisgICAgICAgICAgICBib3ggPSBu
ZXcgSW5saW5lQm94KG51bGwsIC0xKTsKKyAgICAgICAgICAgIGJveC5zZXRJc0Fub255bW91cygp
OworICAgICAgICAgICAgYm94LnNldFRleHQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgdGhp
cy5fYXBwZW5kQ2hpbGQocGFyZW50Qm94LCBib3gpOworICAgICAgICByZXR1cm4gYm94OworICAg
IH0KKworICAgIF9hcHBlbmRDaGlsZChwYXJlbnQsIGNoaWxkKSB7CisgICAgICAgIGNoaWxkLnNl
dFBhcmVudChwYXJlbnQpOworICAgICAgICBsZXQgZmlyc3RDaGlsZCA9IHBhcmVudC5maXJzdENo
aWxkKCk7CisgICAgICAgIGlmICghZmlyc3RDaGlsZCkgeworICAgICAgICAgICAgcGFyZW50LnNl
dEZpcnN0Q2hpbGQoY2hpbGQpOworICAgICAgICAgICAgcGFyZW50LnNldExhc3RDaGlsZChjaGls
ZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbGV0IGxhc3RDaGls
ZCA9IHBhcmVudC5sYXN0Q2hpbGQoKTsKKyAgICAgICAgbGFzdENoaWxkLnNldE5leHRTaWJsaW5n
KGNoaWxkKTsKKyAgICAgICAgY2hpbGQuc2V0UHJldmlvdXNTaWJsaW5nKGxhc3RDaGlsZCk7Cisg
ICAgICAgIHBhcmVudC5zZXRMYXN0Q2hpbGQoY2hpbGQpOworICAgIH0KKworICAgIF9maW5kQm94
KHJvb3QsIGJveElkKSB7CisgICAgICAgIGlmIChyb290LmlkKCkgPT0gYm94SWQpCisgICAgICAg
ICAgICByZXR1cm4gcm9vdDsKKyAgICAgICAgLy8gU3VwZXIgaW5lZmZpY2llbnQgYnV0IHRoaXMg
aXMgYWxsIHRlbXBvcmFyeSBhbnl3YXkuCisgICAgICAgIGZvciAobGV0IGJveCA9IHJvb3QuZmly
c3RDaGlsZCgpOyBib3g7IGJveCA9IGJveC5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICBp
ZiAoYm94LmlkKCkgPT0gYm94SWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGJveDsKKyAgICAg
ICAgICAgIGlmIChib3guaXNDb250YWluZXIoKSAmJiBib3guaGFzQ2hpbGQoKSkgeworICAgICAg
ICAgICAgICAgIGxldCBjYW5kaWRhdGUgPSB0aGlzLl9maW5kQm94KGJveCwgYm94SWQpOworICAg
ICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
YW5kaWRhdGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfZmluZE5v
ZGUobm9kZSwgYm94SWQpIHsKKyAgICAgICAgLy8gU3VwZXIgaW5lZmZpY2llbnQgYnV0IHRoaXMg
aXMgYWxsIHRlbXBvcmFyeSBhbnl3YXkuCisgICAgICAgIGZvciAobGV0IGN1cnJlbnROb2RlID0g
bm9kZS5maXJzdENoaWxkOyBjdXJyZW50Tm9kZTsgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5u
ZXh0U2libGluZykgeworICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlLnJlbmRlcmVySWQgPT0g
Ym94SWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnROb2RlOworICAgICAgICAgICAg
bGV0IGNhbmRpZGF0ZSA9IHRoaXMuX2ZpbmROb2RlKGN1cnJlbnROb2RlLCBib3hJZCk7CisgICAg
ICAgICAgICBpZiAoY2FuZGlkYXRlKQorICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7
CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9V
dGlscy5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1V0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2Mjdk
YTk4OWU4MDA5OTE2ZTJiMDU3ZWVmMzBmZjJlYjU2Zjk1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC9VdGlscy5qcwpAQCAtMCwwICsxLDUzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NsYXNzIExheW91dFBvaW50IHsK
KyAgICBjb25zdHJ1Y3Rvcih0b3AsIGxlZnQpIHsKKyAgICAgICAgdGhpcy5tX3RvcCA9IHRvcDsK
KyAgICAgICAgdGhpcy5tX2xlZnQgPSBsZWZ0OworICAgIH0KKworICAgIHNldExlZnQobGVmdCkg
eworICAgICAgICB0aGlzLm1fbGVmdCA9IGxlZnQ7CisgICAgfQorCisgICAgc2V0VG9wKHRvcCkg
eworICAgICAgICB0aGlzLm1fdG9wID0gdG9wOworICAgIH0KKworICAgIGxlZnQoKSB7CisgICAg
ICAgIHJldHVybiB0aGlzLm1fbGVmdDsKKyAgICB9CisKKyAgICB0b3AoKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLm1fdG9wOworICAgIH0KKworICAgIHNoaWZ0TGVmdChkaXN0YW5jZSkgeworICAg
ICAgICB0aGlzLm1fbGVmdCArPSBkaXN0YW5jZTsKKyAgICB9CisKKyAgICBzaGlmdFRvcChkaXN0
YW5jZSkgeworICAgICAgICB0aGlzLm1fdG9wICs9IGRpc3RhbmNlOworICAgIH0KKworICAgIG1v
dmVCeShkaXN0YW5jZSkgeworICAgICAgICBpZiAoZGlzdGFuY2UudG9wICYmIGRpc3RhbmNlLmxl
ZnQpIHsKKyAgICAgICAgICAgIHRoaXMubV90b3AgKz0gZGlzdGFuY2UudG9wKCk7CisgICAgICAg
ICAgICB0aGlzLm1fbGVmdCArPSBkaXN0YW5jZS5sZWZ0KCk7CisgICAgICAgIH0KKyAgICAgICAg
ZWxzZSBpZiAoZGlzdGFuY2Uud2lkdGggJiYgZGlzdGFuY2UuaGVpZ2h0KSB7CisgICAgICAgICAg
ICB0aGlzLm1fdG9wICs9IGRpc3RhbmNlLmhlaWdodCgpOworICAgICAgICAgICAgdGhpcy5tX2xl
ZnQgKz0gZGlzdGFuY2Uud2lkdGgoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVxdWFsKG90
aGVyKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRvcCgpID09IG90aGVyLnRvcCgpICYmIHRoaXMu
bGVmdCgpID09IG90aGVyLmxlZnQoKTsKKyAgICB9CisKKyAgICBjbG9uZSgpIHsKKyAgICAgICAg
cmV0dXJuIG5ldyBMYXlvdXRQb2ludCh0aGlzLnRvcCgpLCB0aGlzLmxlZnQoKSk7CisgICAgfQor
fQorCitjbGFzcyBMYXlvdXRTaXplIHsKKyAgICBjb25zdHJ1Y3Rvcih3aWR0aCwgaGVpZ2h0KSB7
CisgICAgICAgIHRoaXMubV93aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLm1faGVpZ2h0ID0g
aGVpZ2h0OworICAgIH0KKworICAgIHNldFdpZHRoKHdpZHRoKSB7CisgICAgICAgIHRoaXMubV93
aWR0aCA9IHdpZHRoOworICAgIH0KKworICAgIHNldEhlaWdodChoZWlnaHQpIHsKKyAgICAgICAg
dGhpcy5tX2hlaWdodCA9IGhlaWdodDsKKyAgICB9CisKKyAgICB3aWR0aCgpIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMubV93aWR0aDsKKyAgICB9CisKKyAgICBoZWlnaHQoKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLm1faGVpZ2h0OworICAgIH0KKworICAgIGdyb3dCeShkaXN0YW5jZSkgeworICAg
ICAgICB0aGlzLm1fd2lkdGggKz0gZGlzdGFuY2Uud2lkdGgoKTsKKyAgICAgICAgdGhpcy5tX2hl
aWdodCArPSBkaXN0YW5jZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBzaHJpbmtCeShkaXN0YW5j
ZSkgeworICAgICAgICB0aGlzLm1fd2lkdGggLT0gZGlzdGFuY2Uud2lkdGgoKTsKKyAgICAgICAg
dGhpcy5tX2hlaWdodCAtPSBkaXN0YW5jZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBpc0VtcHR5
KCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX3dpZHRoIDw9IDAgfHwgdGhpcy5tX2hlaWdodCA8
PSAwOworICAgIH0KKworICAgIGVxdWFsKG90aGVyKSB7CisgICAgICAgIHJldHVybiB0aGlzLndp
ZHRoKCkgPT0gb3RoZXIud2lkdGgoKSAmJiB0aGlzLmhlaWdodCgpID09IG90aGVyLmhlaWdodCgp
OworICAgIH0KKworICAgIGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IExheW91dFNpemUo
dGhpcy53aWR0aCgpLCB0aGlzLmhlaWdodCgpKTsKKyAgICB9Cit9CisKK2NsYXNzIExheW91dFJl
Y3QgeworICAgIGNvbnN0cnVjdG9yKHRvcExlZnQsIHNpemUpIHsKKyAgICAgICAgdGhpcy5tX3Rv
cExlZnQgPSB0b3BMZWZ0LmNsb25lKCk7CisgICAgICAgIHRoaXMubV9zaXplID0gc2l6ZS5jbG9u
ZSgpOworICAgIH0KKworICAgIHNldFRvcCh0b3ApIHsKKyAgICAgICAgdGhpcy5tX3RvcExlZnQu
c2V0VG9wKHRvcCk7CisgICAgfQorCisgICAgc2V0TGVmdChsZWZ0KSB7CisgICAgICAgIHRoaXMu
bV90b3BMZWZ0LnNldExlZnQobGVmdCk7CisgICAgfQorCisgICAgc2V0Qm90dG9tKGJvdHRvbSkg
eworICAgICAgICB0aGlzLm1fc2l6ZS5zZXRIZWlnaHQoYm90dG9tIC0gdGhpcy5tX3RvcExlZnQu
dG9wKCkpOworICAgIH0KKworICAgIHNldFJpZ2h0KHJpZ2h0KSB7CisgICAgICAgIHRoaXMubV9z
aXplLnNldFdpZHRoKHJpZ2h0IC0gdGhpcy5tX3RvcExlZnQubGVmdCgpKTsKKyAgICB9CisKKyAg
ICBsZWZ0KCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQubGVmdCgpOworICAgIH0K
KworICAgIHRvcCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV90b3BMZWZ0LnRvcCgpOworICAg
IH0KKworICAgIGJvdHRvbSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV90b3BMZWZ0LnRvcCgp
ICsgdGhpcy5tX3NpemUuaGVpZ2h0KCk7CisgICAgfQorCisgICAgcmlnaHQoKSB7CisgICAgICAg
IHJldHVybiB0aGlzLm1fdG9wTGVmdC5sZWZ0KCkgKyB0aGlzLm1fc2l6ZS53aWR0aCgpOworICAg
IH0KKworICAgIHNldFRvcExlZnQodG9wTGVmdCkgeworICAgICAgICB0aGlzLm1fdG9wTGVmdCA9
IHRvcExlZnQuY2xvbmUoKTsKKyAgICB9CisKKyAgICB0b3BMZWZ0KCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX3RvcExlZnQuY2xvbmUoKTsKKyAgICB9CisKKyAgICB0b3BSaWdodCgpIHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBMYXlvdXRQb2ludCh0aGlzLnRvcCgpLCB0aGlzLnJpZ2h0KCkpOwor
ICAgIH0KKworICAgIGJvdHRvbVJpZ2h0KCkgeworICAgICAgICByZXR1cm4gbmV3IExheW91dFBv
aW50KHRoaXMuYm90dG9tKCksIHRoaXMucmlnaHQoKSk7CisgICAgfQorCisgICAgc2V0V2lkdGgo
d2lkdGgpIHsKKyAgICAgICAgdGhpcy5tX3NpemUuc2V0V2lkdGgod2lkdGgpOworICAgIH0KKwor
ICAgIHNldEhlaWdodChoZWlnaHQpIHsKKyAgICAgICAgdGhpcy5tX3NpemUuc2V0SGVpZ2h0KGhl
aWdodCk7CisgICAgfQorCisgICAgc2V0U2l6ZShuZXdTaXplKSB7CisgICAgICAgIHRoaXMubV9z
aXplID0gbmV3U2l6ZS5jbG9uZSgpOworICAgIH0KKworICAgIHNpemUoKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLm1fc2l6ZS5jbG9uZSgpOworICAgIH0KKworICAgIHdpZHRoKCkgeworICAgICAg
ICByZXR1cm4gdGhpcy5tX3NpemUud2lkdGgoKTsKKyAgICB9CisKKyAgICBoZWlnaHQoKSB7Cisg
ICAgICAgIHJldHVybiB0aGlzLm1fc2l6ZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBncm93Qnko
ZGlzdGFuY2UpIHsKKyAgICAgICAgdGhpcy5tX3NpemUuZ3Jvd0J5KGRpc3RhbmNlKTsKKyAgICB9
CisKKyAgICBzaHJpbmtCeShkaXN0YW5jZSkgeworICAgICAgICB0aGlzLm1fc2l6ZS5zaHJpbmtC
eShkaXN0YW5jZSk7CisgICAgfQorCisgICAgbW92ZUJ5KGRpc3RhbmNlKSB7CisgICAgICAgIHRo
aXMubV90b3BMZWZ0Lm1vdmVCeShkaXN0YW5jZSk7CisgICAgfQorICAgIAorICAgIGlzRW1wdHko
KSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fc2l6ZS5pc0VtcHR5KCk7CisgICAgfQorCisgICAg
ZXF1YWwob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV90b3BMZWZ0LmVxdWFsKG90aGVy
LnRvcExlZnQoKSkgJiYgdGhpcy5tX3NpemUuZXF1YWwob3RoZXIuc2l6ZSgpKTsKKyAgICB9CisK
KyAgICBpbnRlcnNlY3RzKG90aGVyKSB7CisgICAgICAgIHJldHVybiAhdGhpcy5pc0VtcHR5KCkg
JiYgIW90aGVyLmlzRW1wdHkoKQorICAgICAgICAmJiB0aGlzLmxlZnQoKSA8IG90aGVyLnJpZ2h0
KCkgJiYgb3RoZXIubGVmdCgpIDwgdGhpcy5yaWdodCgpCisgICAgICAgICYmIHRoaXMudG9wKCkg
PCBvdGhlci5ib3R0b20oKSAmJiBvdGhlci50b3AoKSA8IHRoaXMuYm90dG9tKCk7CisgICAgfQor
CisgICAgY29udGFpbnMob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubGVmdCgpIDw9IG90
aGVyLmxlZnQoKSAmJiB0aGlzLnJpZ2h0KCkgPj0gb3RoZXIucmlnaHQoKQorICAgICAgICAmJiB0
aGlzLnRvcCgpIDw9IG90aGVyLnRvcCgpICYmIHRoaXMuYm90dG9tKCkgPj0gb3RoZXIuYm90dG9t
KCk7CisgICAgfQorCisgICAgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgTGF5b3V0UmVj
dCh0aGlzLnRvcExlZnQoKS5jbG9uZSgpLCB0aGlzLnNpemUoKS5jbG9uZSgpKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHsKKyAgICB0aHJvdyBFcnJvcigiU2hv
dWxkIG5vdCByZWFjaCEiKTsKK30KKworZnVuY3Rpb24gQVNTRVJUKHN0YXRlbWVudCkgeworICAg
IGlmIChzdGF0ZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICB0aHJvdyBFcnJvcigiQXNzZXJ0
aW9uIGZhaWx1cmUiKTsKK30KKworY2xhc3MgVXRpbHMgeworICAgIHN0YXRpYyBjb21wdXRlZFZh
bHVlKHN0clZhbHVlLCBiYXNlVmFsdWUpIHsKKyAgICAgICAgaWYgKHN0clZhbHVlLmluZGV4T2Yo
InB4IikgPiAtMSkKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHN0clZhbHVlKTsKKyAg
ICAgICAgaWYgKHN0clZhbHVlLmluZGV4T2YoIiUiKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJu
IHBhcnNlRmxvYXQoc3RyVmFsdWUpICogYmFzZVZhbHVlIC8gMTAwOworICAgICAgICByZXR1cm4g
TnVtYmVyLk5hTjsKKyAgICB9CisKKyAgICBzdGF0aWMgcHJvcGVydHlJc0F1dG8ocHJvcGVydHlO
YW1lLCBib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gu
bm9kZSgpKS5pc1Byb3BlcnR5VmFsdWVJbml0aWFsKHByb3BlcnR5TmFtZSk7CisgICAgfQorCisg
ICAgc3RhdGljIGlzV2lkdGhBdXRvKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMucHJvcGVy
dHlJc0F1dG8oIndpZHRoIiwgYm94KTsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNIZWlnaHRBdXRv
KGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMucHJvcGVydHlJc0F1dG8oImhlaWdodCIsIGJv
eCk7CisgICAgfQorCisgICAgc3RhdGljIGlzVG9wQXV0byhib3gpIHsKKyAgICAgICAgcmV0dXJu
IFV0aWxzLnByb3BlcnR5SXNBdXRvKCJ0b3AiLCBib3gpOworICAgIH0KKworICAgIHN0YXRpYyBp
c0xlZnRBdXRvKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMucHJvcGVydHlJc0F1dG8oImxl
ZnQiLCBib3gpOworICAgIH0KKworICAgIHN0YXRpYyBpc0JvdHRvbUF1dG8oYm94KSB7CisgICAg
ICAgIHJldHVybiBVdGlscy5wcm9wZXJ0eUlzQXV0bygiYm90dG9tIiwgYm94KTsKKyAgICB9CisK
KyAgICBzdGF0aWMgaXNSaWdodEF1dG8oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5wcm9w
ZXJ0eUlzQXV0bygicmlnaHQiLCBib3gpOworICAgIH0KKworICAgIHN0YXRpYyB3aWR0aChib3gp
IHsKKyAgICAgICAgQVNTRVJUKCFVdGlscy5pc1dpZHRoQXV0byhib3gpKTsKKyAgICAgICAgcmV0
dXJuIHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkud2lkdGgp
OworICAgIH0KKworICAgIHN0YXRpYyBoZWlnaHQoYm94KSB7CisgICAgICAgIEFTU0VSVCghVXRp
bHMuaXNIZWlnaHRBdXRvKGJveCkpOworICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS5oZWlnaHQpOworICAgIH0KKworICAgIHN0YXRp
YyB0b3AoYm94KSB7CisgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KGJveC5ub2RlKCkuc3R5bGUu
dG9wKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm90dG9tKGJveCkgeworICAgICAgICByZXR1cm4g
cGFyc2VGbG9hdChib3gubm9kZSgpLnN0eWxlLmJvdHRvbSk7CisgICAgfQorCisgICAgc3RhdGlj
IGxlZnQoYm94KSB7CisgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KGJveC5ub2RlKCkuc3R5bGUu
bGVmdCk7CisgICAgfQorCisgICAgc3RhdGljIHJpZ2h0KGJveCkgeworICAgICAgICByZXR1cm4g
cGFyc2VGbG9hdChib3gubm9kZSgpLnN0eWxlLnJpZ2h0KTsKKyAgICB9CisKKyAgICBzdGF0aWMg
aGFzQm9yZGVyVG9wKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoYm94Lm5vZGUoKSkuYm9yZGVyVG9wV2lkdGggIT0gIjBweCI7CisgICAgfQorCisgICAgc3Rh
dGljIGhhc0JvcmRlckJvdHRvbShib3gpIHsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGJveC5ub2RlKCkpLmJvcmRlckJvdHRvbVdpZHRoICE9ICIwcHgiOworICAgIH0K
KworICAgIHN0YXRpYyBoYXNQYWRkaW5nVG9wKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkucGFkZGluZ1RvcCAhPSAiMHB4IjsKKyAgICB9
CisKKyAgICBzdGF0aWMgaGFzUGFkZGluZ0JvdHRvbShib3gpIHsKKyAgICAgICAgcmV0dXJuIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGJveC5ub2RlKCkpLnBhZGRpbmdCb3R0b20gIT0gIjBweCI7
CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkTWFyZ2luVG9wKGJveCkgeworICAgICAgICBy
ZXR1cm4gVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9k
ZSgpKS5tYXJnaW5Ub3ApOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZE1hcmdpbkxlZnQo
Ym94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5jb21wdXRlZFZhbHVlKHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGJveC5ub2RlKCkpLm1hcmdpbkxlZnQpOworICAgIH0KKworICAgIHN0YXRpYyBj
b21wdXRlZE1hcmdpbkJvdHRvbShib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVk
VmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkubWFyZ2luQm90dG9tKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRNYXJnaW5SaWdodChib3gpIHsKKyAgICAgICAg
cmV0dXJuIFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5v
ZGUoKSkubWFyZ2luUmlnaHQpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlclRv
cExlZnQoYm94KSB7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBMYXlvdXRTaXplKFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVk
U3R5bGUobm9kZSkuYm9yZGVyTGVmdFdpZHRoKSwgVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShub2RlKS5ib3JkZXJUb3BXaWR0aCkpOworICAgIH0KKworICAgIHN0
YXRpYyBjb21wdXRlZEJvcmRlckJvdHRvbVJpZ2h0KGJveCkgeworICAgICAgICBsZXQgbm9kZSA9
IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiBuZXcgTGF5b3V0U2l6ZShVdGlscy5jb21wdXRl
ZFZhbHVlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLmJvcmRlclJpZ2h0V2lkdGgpLCBV
dGlscy5jb21wdXRlZFZhbHVlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLmJvcmRlckJv
dHRvbVdpZHRoKSk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkUGFkZGluZ1RvcExlZnQo
Ym94KSB7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBMYXlvdXRTaXplKFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUo
bm9kZSkucGFkZGluZ0xlZnQpLCBVdGlscy5jb21wdXRlZFZhbHVlKHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKG5vZGUpLnBhZGRpbmdUb3ApKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRQ
YWRkaW5nQm90dG9tUmlnaHQoYm94KSB7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRTaXplKFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93
LmdldENvbXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ1JpZ2h0KSwgVXRpbHMuY29tcHV0ZWRWYWx1
ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5wYWRkaW5nQm90dG9tKSk7CisgICAgfQor
CisgICAgc3RhdGljIGNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ1RvcChib3gpIHsKKyAgICAgICAg
cmV0dXJuIFV0aWxzLmNvbXB1dGVkQm9yZGVyVG9wTGVmdChib3gpLmhlaWdodCgpICsgVXRpbHMu
Y29tcHV0ZWRQYWRkaW5nVG9wTGVmdChib3gpLmhlaWdodCgpOworICAgIH0KKworICAgIHN0YXRp
YyBjb21wdXRlZEJvcmRlckFuZFBhZGRpbmdMZWZ0KGJveCkgeworICAgICAgICByZXR1cm4gVXRp
bHMuY29tcHV0ZWRCb3JkZXJUb3BMZWZ0KGJveCkud2lkdGgoKSArIFV0aWxzLmNvbXB1dGVkUGFk
ZGluZ1RvcExlZnQoYm94KS53aWR0aCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJv
cmRlckFuZFBhZGRpbmdUb3AoYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5jb21wdXRlZEJv
cmRlclRvcExlZnQoYm94KS5oZWlnaHQoKSArIFV0aWxzLmNvbXB1dGVkUGFkZGluZ1RvcExlZnQo
Ym94KS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRCb3JkZXJBbmRQYWRk
aW5nTGVmdChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkQm9yZGVyVG9wTGVm
dChib3gpLndpZHRoKCkgKyBVdGlscy5jb21wdXRlZFBhZGRpbmdUb3BMZWZ0KGJveCkud2lkdGgo
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nQm90dG9tKGJv
eCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRCb3JkZXJCb3R0b21SaWdodChib3gp
LmhlaWdodCgpICsgVXRpbHMuY29tcHV0ZWRQYWRkaW5nQm90dG9tUmlnaHQoYm94KS5oZWlnaHQo
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nUmlnaHQoYm94
KSB7CisgICAgICAgIHJldHVybiBVdGlscy5jb21wdXRlZEJvcmRlckJvdHRvbVJpZ2h0KGJveCku
d2lkdGgoKSArIFV0aWxzLmNvbXB1dGVkUGFkZGluZ0JvdHRvbVJpZ2h0KGJveCkud2lkdGgoKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRIb3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZyhi
b3gpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nTGVmdChi
b3gpICsgdGhpcy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdSaWdodChib3gpOworICAgIH0KKwor
ICAgIHN0YXRpYyBjb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZyhib3gpIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nVG9wKGJveCkgKyB0aGlzLmNv
bXB1dGVkQm9yZGVyQW5kUGFkZGluZ0JvdHRvbShib3gpOworICAgIH0KKworICAgIHN0YXRpYyBo
YXNDbGVhcihib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmhhc0NsZWFyTGVmdChib3gpIHx8
IFV0aWxzLmhhc0NsZWFyUmlnaHQoYm94KSB8fCBVdGlscy5oYXNDbGVhckJvdGgoYm94KTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgaGFzQ2xlYXJMZWZ0KGJveCkgeworICAgICAgICBsZXQgbm9kZSA9
IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gu
bm9kZSgpKS5jbGVhciA9PSAibGVmdCI7CisgICAgfQorCisgICAgc3RhdGljIGhhc0NsZWFyUmln
aHQoYm94KSB7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJu
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJveC5ub2RlKCkpLmNsZWFyID09ICJyaWdodCI7Cisg
ICAgfQorCisgICAgc3RhdGljIGhhc0NsZWFyQm90aChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUg
PSBib3gubm9kZSgpOworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94
Lm5vZGUoKSkuY2xlYXIgPT0gImJvdGgiOworICAgIH0KKworICAgIHN0YXRpYyBpc0Jsb2NrTGV2
ZWxFbGVtZW50KG5vZGUpIHsKKyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBsZXQgZGlzcGxheSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5v
ZGUpLmRpc3BsYXk7CisgICAgICAgIHJldHVybiAgZGlzcGxheSA9PSAiYmxvY2siIHx8IGRpc3Bs
YXkgPT0gImxpc3QtaXRlbSIgfHwgZGlzcGxheSA9PSAidGFibGUiOworICAgIH0KKworICAgIHN0
YXRpYyBpc0Jsb2NrQ29udGFpbmVyRWxlbWVudChub2RlKSB7CisgICAgICAgIGxldCBkaXNwbGF5
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheTsKKyAgICAgICAgcmV0dXJu
ICBkaXNwbGF5ID09ICJibG9jayIgfHwgZGlzcGxheSA9PSAibGlzdC1pdGVtIiB8fCBkaXNwbGF5
ID09ICJpbmxpbmUtYmxvY2siIHx8IGRpc3BsYXkgPT0gInRhYmxlLWNlbGwiIHx8IGRpc3BsYXkg
PT0gInRhYmxlLWNhcHRpb24iOyAvL1RPRE8gJiYgIXJlcGxhY2VkIGVsZW1lbnQKKyAgICB9CisK
KyAgICBzdGF0aWMgaXNJbmxpbmVMZXZlbEVsZW1lbnQobm9kZSkgeworICAgICAgICBsZXQgZGlz
cGxheSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLmRpc3BsYXk7CisgICAgICAgIHJl
dHVybiAgZGlzcGxheSA9PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09ICJpbmxpbmUtYmxvY2siIHx8
IGRpc3BsYXkgPT0gImlubGluZS10YWJsZSI7CisgICAgfQorCisgICAgc3RhdGljIGlzVGFibGVF
bGVtZW50KG5vZGUpIHsKKyAgICAgICAgbGV0IGRpc3BsYXkgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShub2RlKS5kaXNwbGF5OworICAgICAgICByZXR1cm4gIGRpc3BsYXkgPT0gInRhYmxlIiB8
fCBkaXNwbGF5ID09ICJpbmxpbmUtdGFibGUiOworICAgIH0KKworICAgIHN0YXRpYyBpc1JlbGF0
aXZlUG9zaXRpb25lZChib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBsZXQgbm9kZSA9IGJveC5ub2RlKCk7Cisg
ICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5wb3NpdGlvbiA9PSAi
cmVsYXRpdmUiOworICAgIH0KKworICAgIHN0YXRpYyBpc0Fic29sdXRlUG9zaXRpb25lZChib3gp
IHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBsZXQgbm9kZSA9IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5wb3NpdGlvbiA9PSAiYWJzb2x1dGUiOworICAgIH0K
KworICAgIHN0YXRpYyBpc0ZpeGVkUG9zaXRpb25lZChib3gpIHsKKyAgICAgICAgaWYgKGJveC5p
c0Fub255bW91cygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBsZXQgbm9k
ZSA9IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShu
b2RlKS5wb3NpdGlvbiA9PSAiZml4ZWQiOworICAgIH0KKworICAgIHN0YXRpYyBpc092ZXJmbG93
VmlzaWJsZShib3gpIHsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJv
eC5ub2RlKCkpLm92ZXJmbG93ID09ICJ2aXNpYmxlIjsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNG
bG9hdGluZ1Bvc2l0aW9uZWQoYm94KSB7CisgICAgICAgIGlmIChib3guaXNBbm9ueW1vdXMoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgp
OworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuZmxvYXQgIT0g
Im5vbmUiOworICAgIH0KKworICAgIHN0YXRpYyBpc0Zsb2F0aW5nTGVmdChib3gpIHsKKyAgICAg
ICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1
dGVkU3R5bGUobm9kZSkuZmxvYXQgPT0gImxlZnQiOworICAgIH0KKworICAgIHN0YXRpYyBtYXBU
b0NvbnRhaW5lcihib3gsIGNvbnRhaW5lcikgeworICAgICAgICBsZXQgdG9wTGVmdCA9IGJveC5y
ZWN0KCkudG9wTGVmdCgpOworICAgICAgICBsZXQgYXNjZW5kYW50ID0gYm94LnBhcmVudCgpOwor
ICAgICAgICB3aGlsZSAoYXNjZW5kYW50ICYmIGFzY2VuZGFudCAhPSBjb250YWluZXIpIHsKKyAg
ICAgICAgICAgIHRvcExlZnQubW92ZUJ5KGFzY2VuZGFudC5yZWN0KCkudG9wTGVmdCgpKTsKKyAg
ICAgICAgICAgIGFzY2VuZGFudCA9IGFzY2VuZGFudC5wYXJlbnQoKTsKKyAgICAgICAgfQorICAg
ICAgICBBU1NFUlQoYXNjZW5kYW50KTsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRSZWN0KHRv
cExlZnQsIGJveC5yZWN0KCkuc2l6ZSgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgbWFwU3RhdGlj
VG9BYnNvbHV0ZShib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLm1hcFRvQ29udGFpbmVyKGJv
eCwgYm94LmNvbnRhaW5pbmdCbG9jaygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29sbGVjdE91
dE9mRmxvd0Rlc2NlbmRhbnRzKGNvbnRhaW50QmxvY2spIHsKKyAgICAgICAgbGV0IG91dE9mRmxv
d0JveGVzID0gbmV3IEFycmF5KCk7CisgICAgICAgIGxldCBkZXNjZW5kYW50cyA9IG5ldyBBcnJh
eSgpOworICAgICAgICBmb3IgKGxldCBjaGlsZCA9IGNvbnRhaW50QmxvY2suZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZygpKQorICAgICAgICAgICAgZGVzY2Vu
ZGFudHMucHVzaChjaGlsZCk7CisgICAgICAgIHdoaWxlIChkZXNjZW5kYW50cy5sZW5ndGgpIHsK
KyAgICAgICAgICAgIGxldCBkZXNjZW5kYW50ID0gZGVzY2VuZGFudHMucG9wKCk7CisgICAgICAg
ICAgICBpZiAoZGVzY2VuZGFudC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBkZXNjZW5kYW50
LmNvbnRhaW5pbmdCbG9jaygpID09IGNvbnRhaW50QmxvY2spCisgICAgICAgICAgICAgICAgb3V0
T2ZGbG93Qm94ZXMucHVzaChkZXNjZW5kYW50KTsKKyAgICAgICAgICAgIGlmICghZGVzY2VuZGFu
dC5pc0NvbnRhaW5lcigpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
Zm9yIChsZXQgY2hpbGQgPSBkZXNjZW5kYW50Lmxhc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC5wcmV2aW91c1NpYmxpbmcoKSkKKyAgICAgICAgICAgICAgICBkZXNjZW5kYW50cy5wdXNo
KGNoaWxkKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3V0T2ZGbG93Qm94ZXM7CisgICAg
fQorCisgICAgc3RhdGljIG5leHRCcmVha2luZ09wcG9ydHVuaXR5KGlubGluZUJveCwgY3VycmVu
dFBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5uZXh0QnJlYWtpbmdPcHBv
cnR1bml0eShpbmxpbmVCb3gudGV4dCgpLCBjdXJyZW50UG9zaXRpb24pOworICAgIH0KKworICAg
IHN0YXRpYyBtZWFzdXJlVGV4dChpbmxpbmVCb3gsIHN0YXJ0LCBlbmQpCisgICAgeworICAgICAg
ICByZXR1cm4gaW5saW5lQm94Lm5vZGUoKS5tZWFzdXJlVGV4dChzdGFydCwgZW5kKTsKKyAgICB9
CisKKyAgICAvLyAiUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzMTd4MzY2XG4gSFRNTCBSZW5k
ZXJCbG9jayBhdCAoMCwwKSBzaXplIDEzMTd4MTE2XG4gIEJPRFkgUmVuZGVyQm9keSBhdCAoOCw4
KSBzaXplIDEzMDF4MTAwXG4gICBESVYgUmVuZGVyQmxvY2sgYXQgKDAsMCkgc2l6ZSAxMDB4MTAw
XG4iOworICAgIHN0YXRpYyBsYXlvdXRUcmVlRHVtcChpbml0aWFsQ29udGFpbmluZ0Jsb2NrKSB7
CisgICAgICAgIHJldHVybiB0aGlzLl9kdW1wQm94KGluaXRpYWxDb250YWluaW5nQmxvY2ssIDEp
ICsgdGhpcy5fZHVtcFRyZWUoaW5pdGlhbENvbnRhaW5pbmdCbG9jaywgMik7CisgICAgfQorCisg
ICAgc3RhdGljIF9kdW1wQm94KGJveCwgbGV2ZWwpIHsKKyAgICAgICAgLy8gU2tpcCBhbm9ueW1v
dXMgYm94ZXMgZm9yIG5vdyAtVGhpcyBpcyB0aGUgY2FzZSB3aGVyZSBXZWJLaXQgZG9lcyBub3Qg
Z2VuZXJhdGUgYW4gYW5vbiBpbmxpbmUgY29udGFpbmVyIGZvciB0ZXh0IGNvbnRlbnQgd2hlcmUg
dGhlIHRleHQgaXMgYSBkaXJlY3QgY2hpbGQKKyAgICAgICAgLy8gb2YgYSBibG9jayBjb250YWlu
ZXIuCisgICAgICAgIGlmIChib3guaXNBbm9ueW1vdXMoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgbGV0IGluZGVudGF0aW9uID0gIiAiLnJlcGVhdChsZXZlbCk7CisgICAgICAgIGxl
dCBib3hSZWN0ID0gYm94LnJlY3QoKTsKKyAgICAgICAgcmV0dXJuIGluZGVudGF0aW9uICsgKGJv
eC5ub2RlKCkudGFnTmFtZSA/IChib3gubm9kZSgpLnRhZ05hbWUgKyAiICIpIDogIiIpICArIGJv
eC5uYW1lKCkgKyAiIGF0ICgiICsgYm94UmVjdC5sZWZ0KCkgKyAiLCIgKyBib3hSZWN0LnRvcCgp
ICsgIikgc2l6ZSAiICsgYm94UmVjdC53aWR0aCgpICsgIngiICsgYm94UmVjdC5oZWlnaHQoKSAr
ICJcbiI7CisgICAgfQorCisgICAgc3RhdGljIF9kdW1wVHJlZShyb290LCBsZXZlbCkgeworICAg
ICAgICBsZXQgY29udGVudCA9ICIiOworICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHJvb3QuZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZygpKSB7CisgICAgICAg
ICAgICBjb250ZW50ICs9IHRoaXMuX2R1bXBCb3goY2hpbGQsIGxldmVsKTsKKyAgICAgICAgICAg
IGlmIChjaGlsZC5pc0NvbnRhaW5lcigpKQorICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gdGhp
cy5fZHVtcFRyZWUoY2hpbGQsIGxldmVsICsgMSwgY29udGVudCk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIGNvbnRlbnQ7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvbWlzYy9MYXlvdXRSZWxvYWRlZFdlYktpdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTU1OTM0
MTM1OGY0NDk5MWI3M2UyMzQ0ZmI1ODhjODk2MGUxNWIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9MYXlvdXRSZWxvYWRlZFdlYktpdC5wYXRjaApAQCAtMCww
ICsxLDQ4MSBAQAorZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCitpbmRleCBjMzE1ZWUyNWZjMC4uNjg5OGI0ZDU1YTEgMTAw
NjQ0CistLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCitAQCAtMTEwMyw3ICsxMTAzLDcgQEAKKyAjaWYgIWRlZmluZWQoTkRFQlVH
KQorICNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKKyAjZWxzZQorLSNkZWZpbmUgRU5B
QkxFX1RSRUVfREVCVUdHSU5HIDAKKysjZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCisg
I2VuZGlmCisgI2VuZGlmCisgCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAoraW5kZXggYWIyYTE3ODU0YzUuLjA1ZDFiY2VkMWYzIDEw
MDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCitAQCAtNDEwMSw2ICs0MTAxLDM2IEBAIFN0cmluZyBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjCisg
ICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dCgpOworIH0KKyAKKytib29sIENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6aXNQcm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJpbmcmIHByb3Bl
cnR5TmFtZSkKKyt7CisrICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKysgICAgYXV0byogc3R5bGUgPSBtX2VsZW1lbnQtPmNv
bXB1dGVkU3R5bGUobV9wc2V1ZG9FbGVtZW50U3BlY2lmaWVyKTsKKysgICAgaWYgKCFzdHlsZSkK
KysgICAgICAgIHJldHVybiB0cnVlOworKworKyAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQg
PSBjc3NQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZSk7CisrICAgIGlmICghcHJvcGVydHlJRCkKKysg
ICAgICAgIHJldHVybiB0cnVlOworKworKyAgICBzd2l0Y2ggKHByb3BlcnR5SUQpIHsKKysgICAg
Y2FzZSBDU1NQcm9wZXJ0eUxlZnQ6CisrICAgICAgICByZXR1cm4gc3R5bGUtPmxlZnQoKS5pc0F1
dG8oKTsKKysgICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgorKyAgICAgICAgcmV0dXJuIHN0eWxl
LT5yaWdodCgpLmlzQXV0bygpOworKyAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgorKyAgICAgICAg
cmV0dXJuIHN0eWxlLT50b3AoKS5pc0F1dG8oKTsKKysgICAgY2FzZSBDU1NQcm9wZXJ0eUJvdHRv
bToKKysgICAgICAgIHJldHVybiBzdHlsZS0+Ym90dG9tKCkuaXNBdXRvKCk7CisrICAgIGNhc2Ug
Q1NTUHJvcGVydHlXaWR0aDoKKysgICAgICAgIHJldHVybiBzdHlsZS0+d2lkdGgoKS5pc0F1dG8o
KTsKKysgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDoKKysgICAgICAgIHJldHVybiBzdHlsZS0+
aGVpZ2h0KCkuaXNBdXRvKCk7CisrICAgIGRlZmF1bHQ6CisrICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKysgICAgfQorKyAgICByZXR1cm4gZmFsc2U7CisrfQorKworIHVuc2lnbmVkIENT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6bGVuZ3RoKCkgY29uc3QKKyB7CisgICAgIHVwZGF0
ZVN0eWxlSWZOZWVkZWRGb3JQcm9wZXJ0eShtX2VsZW1lbnQuZ2V0KCksIENTU1Byb3BlcnR5Q3Vz
dG9tKTsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmgKK2luZGV4IDM5YWU2YzMwZDdlLi5hM2I2ZjQ2OTdiZCAxMDA2NDQKKy0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAorKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCitAQCAtMTIzLDYgKzEy
Myw3IEBAIHByaXZhdGU6CisgICAgIFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBm
aW5hbDsKKyAgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBnZXRQcm9wZXJ0eUNTU1Zh
bHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICAgU3RyaW5nIGdldFBy
b3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworKyAgICBib29s
IGlzUHJvcGVydHlWYWx1ZUluaXRpYWwoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFs
OworICAgICBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5
TmFtZSkgZmluYWw7CisgICAgIFN0cmluZyBnZXRQcm9wZXJ0eVNob3J0aGFuZChjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisgICAgIGJvb2wgaXNQcm9wZXJ0eUltcGxpY2l0KGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlRGVjbGFyYXRpb24uaAoraW5kZXggYjE4YzljZTMyNzQuLjRkZmI2YjkzNmY4IDEwMDY0NAor
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAorKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAorQEAgLTU0LDYgKzU0LDcgQEAg
cHVibGljOgorICAgICB2aXJ0dWFsIFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9
IDA7CisgICAgIHZpcnR1YWwgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBnZXRQcm9wZXJ0
eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7CisgICAgIHZpcnR1YWwg
U3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0gMDsK
KysgICAgdmlydHVhbCBib29sIGlzUHJvcGVydHlWYWx1ZUluaXRpYWwoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUpID0gMDsKKyAgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0
eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgPSAwOworICAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRQcm9wZXJ0eVNob3J0aGFuZChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgPSAwOworICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eUltcGxpY2l0KGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lKSA9IDA7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFy
YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCitp
bmRleCAwMzVjYjYyNDVkOS4uYzYyMjMxM2RiM2IgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbAorQEAgLTMwLDYgKzMwLDggQEAKKyAKKyAgICAgRE9NU3Ry
aW5nIGdldFByb3BlcnR5VmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgCisrICAgIGJv
b2xlYW4gaXNQcm9wZXJ0eVZhbHVlSW5pdGlhbChET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKysK
KyAgICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVBy
b3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworICAgICBET01TdHJpbmc/IGdldFByb3Bl
cnR5UHJpb3JpdHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgCitkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAoraW5kZXgg
MDg0Y2JjYTA0ZWMuLjRmYzU4OTIyNmNmIDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCitAQCAtMTk2LDYgKzE5Niwx
MSBAQCBTdHJpbmcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZh
bHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYQorICAgICByZXR1cm4gZ2V0UHJvcGVydHlWYWx1
ZUludGVybmFsKHByb3BlcnR5SUQpOworIH0KKyAKKytib29sIFByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbjo6aXNQcm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJpbmcmKQorK3sKKysg
ICAgcmV0dXJuIGZhbHNlOworK30KKysKKyBTdHJpbmcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uOjpnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQor
IHsKKyAgICAgaWYgKGlzQ3VzdG9tUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpCitkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCitp
bmRleCAwNDE5NjQwNWRkZi4uNTk5ODEyMDVjYWUgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKKysrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAorQEAgLTY4LDYgKzY4LDcg
QEAgcHJpdmF0ZToKKyAgICAgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IGZpbmFs
OworICAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgICBTdHJpbmcgZ2V0UHJvcGVy
dHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisrICAgIGJvb2wgaXNQ
cm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7Cisg
ICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1l
KSBmaW5hbDsKKyAgICAgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICAgYm9vbCBpc1Byb3BlcnR5SW1wbGljaXQoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAoraW5kZXggNDhmMzE2
MWE5YWMuLjBlMDFkMmE3M2YwIDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKK0BAIC01MTQsNiArNTE0LDIw
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE5vZGU6OmJlZm9yZShWZWN0b3I8Tm9kZU9yU3RyaW5nPiYm
IG5vZGVPclN0cmluZ1ZlY3RvcikKKyAgICAgcmV0dXJuIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCpu
b2RlLCB2aWFibGVQcmV2aW91c1NpYmxpbmcuZ2V0KCkpOworIH0KKyAKKytpbnQgTm9kZTo6cmVu
ZGVyZXJJZCgpCisreworKyAgICBpZiAoIXJlbmRlcmVyKCkpCisrICAgICAgICByZXR1cm4gMDsK
KysgICAgcmV0dXJuIHJlbmRlcmVyKCktPnJlbmRlcklkKCk7CisrfQorKworK2RvdWJsZSBOb2Rl
Ojp0ZXh0V2lkdGgoaW50IHN0YXJ0LCBpbnQgZW5kKQorK3sKKysgICAgaWYgKCFyZW5kZXJlcigp
KQorKyAgICAgICAgcmV0dXJuIDA7CisrICAgIHJldHVybiByZW5kZXJlcigpLT5tZWFzdXJlVGV4
dChzdGFydCwgZW5kKTsKKyt9CisrCisgRXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6YWZ0ZXIoVmVj
dG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IpCisgeworICAgICBSZWZQdHI8
Q29udGFpbmVyTm9kZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOworZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCitpbmRleCBl
Yjg1N2ZlYjlhYy4uNmYwYjc1ZDUxOGQgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCitAQCAtMTc4LDcgKzE3OCwx
MCBAQCBwdWJsaWM6CisgCisgICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0ZXh0Q29udGVudChi
b29sIGNvbnZlcnRCUnNUb05ld2xpbmVzID0gZmFsc2UpIGNvbnN0OworICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmKTsKKy0g
ICAgCisrCisrICAgIGludCByZW5kZXJlcklkKCk7CisrICAgIGRvdWJsZSB0ZXh0V2lkdGgoaW50
IHN0YXJ0LCBpbnQgZW5kKTsKKysKKyAgICAgTm9kZSogbGFzdERlc2NlbmRhbnQoKSBjb25zdDsK
KyAgICAgTm9kZSogZmlyc3REZXNjZW5kYW50KCkgY29uc3Q7CisgCitkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCitp
bmRleCAyNTE3N2E4Y2Q0My4uNjIzNWJiNjU0YjUgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5pZGwKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAorQEAgLTcz
LDYgKzczLDkgQEAKKyAgICAgdW5zaWduZWQgc2hvcnQgY29tcGFyZURvY3VtZW50UG9zaXRpb24o
Tm9kZSBvdGhlcik7CisgICAgIGJvb2xlYW4gY29udGFpbnMoTm9kZT8gb3RoZXIpOworIAorKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByZW5kZXJlcklkOworKyAgICBkb3VibGUgdGV4dFdp
ZHRoKGxvbmcgc3RhcnQsIGxvbmcgZW5kKTsKKysKKyAgICAgRE9NU3RyaW5nPyBsb29rdXBQcmVm
aXgoRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkkpOworICAgICBET01TdHJpbmc/IGxvb2t1cE5hbWVz
cGFjZVVSSShET01TdHJpbmc/IHByZWZpeCk7CisgICAgIGJvb2xlYW4gaXNEZWZhdWx0TmFtZXNw
YWNlKERPTVN0cmluZz8gbmFtZXNwYWNlVVJJKTsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
K2luZGV4IGYxZDE5ODVkMTA0Li5mNWEwMTA3NWJlYSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCitAQCAtNzcsNiArNzcsNyBAQAorICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5o
IgorICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCisgI2luY2x1ZGUgIlBlcmZvcm1h
bmNlLmgiCisrI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyAjaW5jbHVkZSAiUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suaCIKKyAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkSW5mby5oIgorICNp
bmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKK0BAIC0xMzY3LDYgKzEzNjgsMjMg
QEAgU3RyaW5nIERPTVdpbmRvdzo6bmFtZSgpIGNvbnN0CisgICAgIHJldHVybiBtX2ZyYW1lLT50
cmVlKCkubmFtZSgpOworIH0KKyAKKytTdHJpbmcgRE9NV2luZG93OjpzaW1wbGlmaWVkUmVuZGVy
VHJlZSgpIGNvbnN0CisreworKyAgICByZXR1cm4gbV9mcmFtZS0+dmlldygpLT5yZW5kZXJWaWV3
KCktPnNpbXBsaWZpZWRSZW5kZXJUcmVlKCk7CisrfQorKworK1N0cmluZyBET01XaW5kb3c6OnJl
bmRlclRyZWVTdHJ1Y3R1cmUoKSBjb25zdAorK3sKKysgICAgcmV0dXJuIG1fZnJhbWUtPnZpZXco
KS0+cmVuZGVyVmlldygpLT5yZW5kZXJUcmVlU3RydWN0dXJlKCk7CisrfQorKworK2ludCBET01X
aW5kb3c6Om5leHRCcmVha2luZ09wcG9ydHVuaXR5KGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWdu
ZWQgc3RhcnRQb3NpdGlvbikKKyt7CisrICAgIGlmIChzdGFydFBvc2l0aW9uID49IHRleHQubGVu
Z3RoKCkgLSAxKQorKyAgICAgICAgcmV0dXJuIHN0YXJ0UG9zaXRpb247CisrICAgIHJldHVybiBz
dGFydFBvc2l0aW9uICsgMTsKKyt9CisrCisgdm9pZCBET01XaW5kb3c6OnNldE5hbWUoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgeworICAgICBpZiAoIW1fZnJhbWUpCitkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKK2luZGV4IDc3NDhlZmFmODRiLi5hNjg2M2EzMjc0YSAxMDA2NDQKKy0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKK0BAIC0xOTEsNiArMTkxLDEwIEBAIHB1YmxpYzoKKyAgICAgU3RyaW5nIGRlZmF1
bHRTdGF0dXMoKSBjb25zdDsKKyAgICAgdm9pZCBzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmlu
ZyYpOworIAorKyAgICBTdHJpbmcgc2ltcGxpZmllZFJlbmRlclRyZWUoKSBjb25zdDsKKysgICAg
U3RyaW5nIHJlbmRlclRyZWVTdHJ1Y3R1cmUoKSBjb25zdDsKKysgICAgaW50IG5leHRCcmVha2lu
Z09wcG9ydHVuaXR5KGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgc3RhcnRQb3NpdGlvbik7
CisrCisgICAgIC8vIFNlbGYtcmVmZXJlbnRpYWwgYXR0cmlidXRlcworIAorICAgICBET01XaW5k
b3cqIHNlbGYoKSBjb25zdDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKK2luZGV4IDgwMWEw
ZmIzYmIzLi5kMDFlMWJmNGE2ZCAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAorKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCitAQCAt
ODIsNiArODIsMTAgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOYXZpZ2F0b3IgbmF2aWdhdG9yOworICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NQXBwbGljYXRpb25DYWNoZSBhcHBsaWNhdGlvbkNhY2hlOworIAorKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpbXBsaWZpZWRSZW5kZXJUcmVlOworKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlbmRlclRyZWVTdHJ1Y3R1cmU7CisrICAgIGxvbmcgbmV4
dEJyZWFraW5nT3Bwb3J0dW5pdHkoRE9NU3RyaW5nIHRleHQsIHVuc2lnbmVkIGxvbmcgc3RhcnRQ
b3NpdGlvbik7CisrCisgICAgIC8vIFVzZXIgcHJvbXB0cy4KKyAgICAgdm9pZCBhbGVydCgpOwor
ICAgICB2b2lkIGFsZXJ0KERPTVN0cmluZyBtZXNzYWdlKTsKK2RpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFn
ZU1hYy5tbQoraW5kZXggNDgwN2U3YjYxZDEuLmY1OTE2YzExNTAyIDEwMDY0NAorLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQorKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvUGFnZU1hYy5tbQorQEAgLTUyLDExICs1Miw2IEBAIHZvaWQgUGFnZTo6cGxhdGZvcm1J
bml0aWFsaXplKCkKKyAjZW5kaWYKKyAKKyAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQorLSAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CistICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VGbGFnLCBbXSB7CistICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5h
cHBsZS5XZWJLaXQuc2hvd1JlbmRlclRyZWUiLCBwcmludFJlbmRlclRyZWVGb3JMaXZlRG9jdW1l
bnRzKTsKKy0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldl
YktpdC5zaG93TGF5ZXJUcmVlIiwgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKy0g
ICAgfSk7CisgI2VuZGlmCisgfQorIAorZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKK2luZGV4IGNhYzA1NTE2NDZiLi42OGY1YzMxNzI2MCAxMDA2NDQKKy0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorQEAgLTEwNyw3ICsxMDcsNyBAQCBzdHJ1
Y3QgU2FtZVNpemVBc1JlbmRlck9iamVjdCB7CisgICAgIHVuc2lnbmVkIG1fYml0ZmllbGRzOwor
IH07CisgCistQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFJlbmRlck9iamVjdCkgPT0gc2l6ZW9mKFNh
bWVTaXplQXNSZW5kZXJPYmplY3QpLCBSZW5kZXJPYmplY3Rfc2hvdWxkX3N0YXlfc21hbGwpOwor
K0NPTVBJTEVfQVNTRVJUKHRydWUgfHwgc2l6ZW9mKFJlbmRlck9iamVjdCkgPT0gc2l6ZW9mKFNh
bWVTaXplQXNSZW5kZXJPYmplY3QpLCBSZW5kZXJPYmplY3Rfc2hvdWxkX3N0YXlfc21hbGwpOwor
IAorIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwg
cmVuZGVyT2JqZWN0Q291bnRlciwgKCJSZW5kZXJPYmplY3QiKSk7CisgCitAQCAtMTI4LDYgKzEy
OCw4IEBAIFJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0KE5vZGUmIG5vZGUpCisgI2VuZGlmCisg
ICAgICwgbV9iaXRmaWVsZHMobm9kZSkKKyB7CisrICAgIHN0YXRpYyBpbnQgcmVuZGVySUQgPSAw
OworKyAgICBtX3JlbmRlcklkID0gKytyZW5kZXJJRDsKKyAgICAgaWYgKFJlbmRlclZpZXcqIHJl
bmRlclZpZXcgPSBub2RlLmRvY3VtZW50KCkucmVuZGVyVmlldygpKQorICAgICAgICAgcmVuZGVy
Vmlldy0+ZGlkQ3JlYXRlUmVuZGVyZXIoKTsKKyAjaWZuZGVmIE5ERUJVRworQEAgLTExOTcsMTQg
KzExOTksNzggQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlck9iamVjdChUZXh0U3Ry
ZWFtJiBzdHJlYW0sIGJvb2wgbWFyaywgaW50IGRlcHRoKQorICAgICBzdHJlYW0ubmV4dExpbmUo
KTsKKyB9CisgCistdm9pZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlclN1YlRyZWVBbmRNYXJr
KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgUmVuZGVyT2JqZWN0KiBtYXJrZWRPYmplY3QsIGlu
dCBkZXB0aCkgY29uc3QKKysKKyt2b2lkIFJlbmRlck9iamVjdDo6cmVuZGVyU3VidHJlZVN0cnVj
dHVyZShUZXh0U3RyZWFtJiBzdHJlYW0pIGNvbnN0CisreworKyAgICBvdXRwdXRSZW5kZXJPYmpl
Y3RTdHJ1Y3R1cmUoc3RyZWFtKTsKKysgICAgZm9yIChhdXRvKiBjaGlsZCA9IGZpcnN0Q2hpbGRT
bG93KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorKyAgICAgICAgY2hp
bGQtPnJlbmRlclN1YnRyZWVTdHJ1Y3R1cmUoc3RyZWFtKTsKKyt9CisrCisrLy8gMSgpUmVuZGVy
Vmlld3wyKDEpUmVuZGVyQmxvY2t8MygyKVJlbmRlckJvZHl8NCgzKVJlbmRlckJsb2NrfDUoMylB
bm9ueW1vdXNSZW5kZXJCbG9ja3wKKyt2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2Jq
ZWN0U3RydWN0dXJlKFdURjo6VGV4dFN0cmVhbSYgc3RyZWFtKSBjb25zdAorIHsKKy0gICAgb3V0
cHV0UmVuZGVyT2JqZWN0KHN0cmVhbSwgbWFya2VkT2JqZWN0ID09IHRoaXMsIGRlcHRoKTsKKy0g
ICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMpKQorLSAgICAgICAgZG93bmNhc3Q8UmVu
ZGVyQmxvY2tGbG93PigqdGhpcykub3V0cHV0TGluZVRyZWVBbmRNYXJrKHN0cmVhbSwgbnVsbHB0
ciwgZGVwdGggKyAxKTsKKysgICAgc3RyZWFtIDw8IHJlbmRlcklkKCk7CisrICAgIGlmIChwYXJl
bnQoKSkKKysgICAgICAgIHN0cmVhbSA8PCAiKCIgPDwgcGFyZW50KCktPnJlbmRlcklkKCkgPDwg
IikiOworKyAgICBlbHNlCisrICAgICAgICBzdHJlYW0gPDwgIigpIjsKKysKKysgICAgU3RyaW5n
IG5hbWUgPSByZW5kZXJOYW1lKCk7CisrICAgIC8vIEZJWE1FOiBSZW5kZXJlcidzIG5hbWUgc2hv
dWxkIG5vdCBpbmNsdWRlIHByb3BlcnR5IHZhbHVlIGxpc3RpbmcuCisrICAgIGludCBwb3MgPSBu
YW1lLmZpbmQoJygnKTsKKysgICAgaWYgKGlzQW5vbnltb3VzKCkpCisrICAgICAgICBzdHJlYW0g
PDwgIkFub255bW91cyI7CisrICAgIGlmIChwb3MgPiAwKQorKyAgICAgICAgc3RyZWFtIDw8IG5h
bWUubGVmdChwb3MgLSAxKS51dGY4KCkuZGF0YSgpOworKyAgICBlbHNlCisrICAgICAgICBzdHJl
YW0gPDwgbmFtZS51dGY4KCkuZGF0YSgpOworKyAgICBzdHJlYW0gPDwgInwiOworK30KKyAKKyt2
b2lkIFJlbmRlck9iamVjdDo6c2ltcGxpZmllZFJlbmRlclN1YnRyZWUoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBpbnQgZGVwdGgpIGNvbnN0CisreworKyAgICBvdXRwdXRTaW1wbGlmaWVkUmVuZGVyT2Jq
ZWN0KHN0cmVhbSwgZGVwdGgpOworICAgICBmb3IgKGF1dG8qIGNoaWxkID0gZmlyc3RDaGlsZFNs
b3coKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCistICAgICAgICBjaGls
ZC0+b3V0cHV0UmVuZGVyU3ViVHJlZUFuZE1hcmsoc3RyZWFtLCBtYXJrZWRPYmplY3QsIGRlcHRo
ICsgMSk7CisrICAgICAgICBjaGlsZC0+c2ltcGxpZmllZFJlbmRlclN1YnRyZWUoc3RyZWFtLCBk
ZXB0aCArIDEpOworK30KKysKKyt2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0U2ltcGxpZmllZFJl
bmRlck9iamVjdChXVEY6OlRleHRTdHJlYW0mIHN0cmVhbSwgaW50IGRlcHRoKSBjb25zdAorK3sK
KysgICAgIGludCBwcmludGVkQ2hhcmFjdGVycyA9IDA7CisrCisrICAgIHdoaWxlICgrK3ByaW50
ZWRDaGFyYWN0ZXJzIDw9IGRlcHRoKQorKyAgICAgICAgIHN0cmVhbSA8PCAiICI7CisrCisrICAg
ICBpZiAobm9kZSgpKQorKyAgICAgICAgc3RyZWFtIDw8IG5vZGUoKS0+bm9kZU5hbWUoKS51dGY4
KCkuZGF0YSgpIDw8ICIgIjsKKysKKysgICAgU3RyaW5nIG5hbWUgPSByZW5kZXJOYW1lKCk7Cisr
ICAgIC8vIEZJWE1FOiBSZW5kZXJlcidzIG5hbWUgc2hvdWxkIG5vdCBpbmNsdWRlIHByb3BlcnR5
IHZhbHVlIGxpc3RpbmcuCisrICAgIGludCBwb3MgPSBuYW1lLmZpbmQoJygnKTsKKysgICAgaWYg
KHBvcyA+IDApCisrICAgICAgICBzdHJlYW0gPDwgbmFtZS5sZWZ0KHBvcyAtIDEpLnV0ZjgoKS5k
YXRhKCk7CisrICAgIGVsc2UKKysgICAgICAgIHN0cmVhbSA8PCBuYW1lLnV0ZjgoKS5kYXRhKCk7
CisrCisrICAgIGlmIChpczxSZW5kZXJCb3g+KCp0aGlzKSkgeworKyAgICAgICAgYXV0byYgcmVu
ZGVyQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqdGhpcyk7CisrICAgICAgICBGbG9hdFJlY3Qg
Ym94UmVjdCA9IHJlbmRlckJveC5mcmFtZVJlY3QoKTsKKysgICAgICAgIGlmIChyZW5kZXJCb3gu
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCisrICAgICAgICAgICAgYm94UmVjdC5tb3ZlKHJlbmRlckJv
eC5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKysgICAgICAgIHN0cmVhbSA8PCAiICIgPDwg
Ym94UmVjdDsKKysgICAgfSBlbHNlIGlmIChpczxSZW5kZXJJbmxpbmU+KCp0aGlzKSAmJiBpc0lu
Rmxvd1Bvc2l0aW9uZWQoKSkgeworKyAgICAgICAgRmxvYXRTaXplIGlubGluZU9mZnNldCA9IGRv
d25jYXN0PFJlbmRlcklubGluZT4oKnRoaXMpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7Cisr
ICAgICAgICBzdHJlYW0gPDwgIiAgKCIgPDwgaW5saW5lT2Zmc2V0LndpZHRoKCkgPDwgIiwgIiA8
PCBpbmxpbmVPZmZzZXQuaGVpZ2h0KCkgPDwgIikiOworKyAgICB9CisrCisrICAgICBpZiAoaXM8
UmVuZGVyQm94TW9kZWxPYmplY3Q+KCp0aGlzKSkgeworKyAgICAgICAgIGF1dG8mIHJlbmRlcmVy
ID0gZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCp0aGlzKTsKKysgICAgICAgICBpZiAo
cmVuZGVyZXIuY29udGludWF0aW9uKCkpCisrICAgICAgICAgICAgIHN0cmVhbSA8PCAiIGNvbnRp
bnVhdGlvbi0+KCIgPDwgcmVuZGVyZXIuY29udGludWF0aW9uKCkgPDwgIikiOworKyAgICAgfQor
KyAgICAgb3V0cHV0UmVnaW9uc0luZm9ybWF0aW9uKHN0cmVhbSk7CisrICAgICBzdHJlYW0ubmV4
dExpbmUoKTsKKyB9CisgCisgI2VuZGlmIC8vIE5ERUJVRworZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAoraW5kZXggZmMwNDdjNWMxNGQuLjg1NGRjY2Y3Nzc4IDEwMDY0NAor
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKK0BAIC0xMTIsNiArMTEyLDkgQEAg
cHVibGljOgorIAorICAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
d2Vha0ZhY3Rvcnk7IH0KKyAKKysgICAgaW50IHJlbmRlcklkKCkgY29uc3QgeyByZXR1cm4gbV9y
ZW5kZXJJZDsgfQorKyAgICB2aXJ0dWFsIGZsb2F0IG1lYXN1cmVUZXh0KGludCwgaW50KSBjb25z
dCB7IHJldHVybiAtMTsgfQorKworICAgICBSZW5kZXJUaGVtZSYgdGhlbWUoKSBjb25zdDsKKyAK
KyAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOworQEAgLTIw
MiwxMCArMjA1LDE2IEBAIHB1YmxpYzoKKyAgICAgdm9pZCBzaG93Tm9kZVRyZWVGb3JUaGlzKCkg
Y29uc3Q7CisgICAgIHZvaWQgc2hvd1JlbmRlclRyZWVGb3JUaGlzKCkgY29uc3Q7CisgICAgIHZv
aWQgc2hvd0xpbmVUcmVlRm9yVGhpcygpIGNvbnN0OworKyAgICB2b2lkIHNpbXBsaWZpZWRSZW5k
ZXJTdWJ0cmVlKFRleHRTdHJlYW0mIHN0cmVhbSwgaW50IGRlcHRoKSBjb25zdDsKKysgICAgdm9p
ZCByZW5kZXJTdWJ0cmVlU3RydWN0dXJlKFRleHRTdHJlYW0mIHN0cmVhbSkgY29uc3Q7CisgCisg
ICAgIHZvaWQgb3V0cHV0UmVuZGVyT2JqZWN0KFdURjo6VGV4dFN0cmVhbSYsIGJvb2wgbWFyaywg
aW50IGRlcHRoKSBjb25zdDsKKyAgICAgdm9pZCBvdXRwdXRSZW5kZXJTdWJUcmVlQW5kTWFyayhX
VEY6OlRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QqIG1hcmtlZE9iamVjdCwgaW50IGRl
cHRoKSBjb25zdDsKKysgICAgdm9pZCBvdXRwdXRSZW5kZXJTdWJUcmVlQW5kTWFya1N0cnVjdHVy
ZShXVEY6OlRleHRTdHJlYW0mKSBjb25zdDsKKyAgICAgdm9pZCBvdXRwdXRSZWdpb25zSW5mb3Jt
YXRpb24oV1RGOjpUZXh0U3RyZWFtJikgY29uc3Q7CisrCisrICAgIHZvaWQgb3V0cHV0U2ltcGxp
ZmllZFJlbmRlck9iamVjdChXVEY6OlRleHRTdHJlYW0mLCBpbnQgZGVwdGgpIGNvbnN0OworKyAg
ICB2b2lkIG91dHB1dFJlbmRlck9iamVjdFN0cnVjdHVyZShXVEY6OlRleHRTdHJlYW0mKSBjb25z
dDsKKyAjZW5kaWYKKyAKKyAgICAgYm9vbCBpc1BzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBub2RlKCkgJiYgbm9kZSgpLT5pc1BzZXVkb0VsZW1lbnQoKTsgfQorQEAgLTgyOCw2ICs4Mzcs
NyBAQCBwcml2YXRlOgorICNlbmRpZgorIAorICAgICBOb2RlJiBtX25vZGU7CisrICAgIGludCBt
X3JlbmRlcklkIHsgMCB9OworIAorICAgICBSZW5kZXJFbGVtZW50KiBtX3BhcmVudDsKKyAgICAg
UmVuZGVyT2JqZWN0KiBtX3ByZXZpb3VzOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAoraW5kZXggNmFlMDQ3YzQ2OWYuLjNhOWY0ODM5MzUyIDEwMDY0NAorLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKK0BAIC0yMjgsNiArMjI4LDExIEBAIFRleHQqIFJl
bmRlclRleHQ6OnRleHROb2RlKCkgY29uc3QKKyAgICAgcmV0dXJuIGRvd25jYXN0PFRleHQ+KFJl
bmRlck9iamVjdDo6bm9kZSgpKTsKKyB9CisgCisrZmxvYXQgUmVuZGVyVGV4dDo6bWVhc3VyZVRl
eHQoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAorK3sKKysgICAgcmV0dXJuIHdpZHRoKHN0YXJ0
LCBlbmQsIDApOworK30KKysKKyBib29sIFJlbmRlclRleHQ6OmlzVGV4dEZyYWdtZW50KCkgY29u
c3QKKyB7CisgICAgIHJldHVybiBmYWxzZTsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuaAoraW5kZXggZjQ2MjkwZjVkZWEuLjcxYjcyNzQ3Njk5IDEwMDY0NAorLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaAorQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgorIAorICAgICBX
RUJDT1JFX0VYUE9SVCBUZXh0KiB0ZXh0Tm9kZSgpIGNvbnN0OworIAorKyAgICBmbG9hdCBtZWFz
dXJlVGV4dChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0IGZpbmFsOworKworICAgICB2aXJ0dWFs
IGJvb2wgaXNUZXh0RnJhZ21lbnQoKSBjb25zdDsKKyAKKyAgICAgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlKCkgY29uc3Q7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCitp
bmRleCA2Nzk1OWFlNzExZi4uMzQ3YTUxZjg3MDMgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAorQEAgLTk1Niw0ICs5NTYsMTkgQEAgdm9pZCBSZW5kZXJWaWV3Ojp1
bnJlZ2lzdGVyQm94V2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMoY29uc3QgUmVuZGVyQm94JiBib3gp
CisgfQorICNlbmRpZgorIAorK1N0cmluZyBSZW5kZXJWaWV3OjpzaW1wbGlmaWVkUmVuZGVyVHJl
ZSgpIGNvbnN0CisreworKyAgICBUZXh0U3RyZWFtIHN0cmVhbShUZXh0U3RyZWFtOjpMaW5lTW9k
ZTo6TXVsdGlwbGVMaW5lLCBUZXh0U3RyZWFtOjpGb3JtYXR0aW5nOjpTVkdTdHlsZVJlY3QpOwor
KyAgICBzaW1wbGlmaWVkUmVuZGVyU3VidHJlZShzdHJlYW0sIDEpOworKyAgICByZXR1cm4gc3Ry
ZWFtLnJlbGVhc2UoKTsKKyt9CisrCisrU3RyaW5nIFJlbmRlclZpZXc6OnJlbmRlclRyZWVTdHJ1
Y3R1cmUoKSBjb25zdAorK3sKKysgICAgVGV4dFN0cmVhbSBzdHJlYW0oVGV4dFN0cmVhbTo6TGlu
ZU1vZGU6Ok11bHRpcGxlTGluZSwgVGV4dFN0cmVhbTo6Rm9ybWF0dGluZzo6U1ZHU3R5bGVSZWN0
KTsKKysgICAgcmVuZGVyU3VidHJlZVN0cnVjdHVyZShzdHJlYW0pOworKyAgICByZXR1cm4gc3Ry
ZWFtLnJlbGVhc2UoKTsKKyt9CisrCisrCisgfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCitpbmRleCA5YzViYjk4OTVjNS4uNGJlYTVlMzYz
MGIgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisr
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCitAQCAtMTk4LDYgKzE5
OCw5IEBAIHB1YmxpYzoKKyAgICAgYm9vbCBpbkhpdFRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBt
X2luSGl0VGVzdGluZzsgfQorICNlbmRpZgorIAorKyAgICBTdHJpbmcgc2ltcGxpZmllZFJlbmRl
clRyZWUoKSBjb25zdDsKKysgICAgU3RyaW5nIHJlbmRlclRyZWVTdHJ1Y3R1cmUoKSBjb25zdDsK
KysKKyBwcm90ZWN0ZWQ6CisgICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKKyAgICAg
Y29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29u
c3Qgb3ZlcnJpZGU7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBs
ZUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlv
dXQuY3BwCitpbmRleCA4Nzc3ZGMwOTliOC4uNzAyZmNjNjM0ZjQgMTAwNjQ0CistLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAKKysrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAorQEAgLTM1MSw3ICszNTEsNyBA
QCBBdm9pZGFuY2VSZWFzb25GbGFncyBjYW5Vc2VGb3JXaXRoUmVhc29uKGNvbnN0IFJlbmRlckJs
b2NrRmxvdyYgZmxvdywgSW5jbHVkZVJlYQorIAorIGJvb2wgY2FuVXNlRm9yKGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyYgZmxvdykKKyB7CistICAgIHJldHVybiBjYW5Vc2VGb3JXaXRoUmVhc29uKGZs
b3csIEluY2x1ZGVSZWFzb25zOjpGaXJzdCkgPT0gTm9SZWFzb247CisrICAgIHJldHVybiBmYWxz
ZSAmJiBjYW5Vc2VGb3JXaXRoUmVhc29uKGZsb3csIEluY2x1ZGVSZWFzb25zOjpGaXJzdCkgPT0g
Tm9SZWFzb247CisgfQorIAorIHN0YXRpYyBmbG9hdCBjb21wdXRlTGluZUxlZnQoRVRleHRBbGln
biB0ZXh0QWxpZ24sIGZsb2F0IGF2YWlsYWJsZVdpZHRoLCBmbG9hdCBjb21taXR0ZWRXaWR0aCwg
ZmxvYXQgbG9naWNhbExlZnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9taXNjL2hlYWRlcnMvQmxvY2tDb250YWluZXIuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21p
c2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YjA4OGViMjBkOGY5NTFj
ODNjNzc1NjE1MDA0Y2FlODY3MWJmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tDb250YWluZXIuaApAQCAtMCwwICsxLDM2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbmFtZXNwYWNlIExh
eW91dFJlbG9hZGVkIHsKKworI2luY2x1ZGUgIkNvbnRhaW5lci5oIgorCitjbGFzcyBCbG9ja0Nv
bnRhaW5lciA6IHB1YmxpYyBDb250YWluZXIgeworcHVibGljOgorICAgIEJsb2NrQ29udGFpbmVy
KE5vZGUqLCB1bnNpZ25lZCBpZCwgU3RyaW5nIG5hbWUpOworICAgIHZpcnR1YWwgfkJsb2NrQ29u
dGFpbmVyKCk7Cit9OworCit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNj
L2hlYWRlcnMvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
bWlzYy9oZWFkZXJzL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTg5Zjc2
ZDE2MWI5MGEzNTM0ZjQ2ZjU5OWU3MmI1NGRmNmUwNTdkCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApA
QCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBMYXlvdXRS
ZWxvYWRlZCB7CisKK2NsYXNzIEJsb2NrQ29udGFpbmVyOworY2xhc3MgQm94OworY2xhc3MgRmxv
YXRpbmdDb250ZXh0OworY2xhc3MgTGF5b3V0Q29udGV4dDsKKworY2xhc3MgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dChCbG9ja0NvbnRhaW5lciYgcm9vdCk7CisgICAgdmlydHVhbCB+
QmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpOworCisgICAgdm9pZCBsYXlvdXQoTGF5b3V0Q29udGV4
dCYpIGZpbmFsOworCitwcml2YXRlOgorICAgIExheW91dFVuaXQgY29tcHV0ZVdpZHRoKGNvbnN0
IEJveCYpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgY29tcHV0ZUhlaWdodChjb25zdCBC
b3gmKSBjb25zdCBmaW5hbDsKKworICAgIExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IEJveCYp
IGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0IEJveCYpIGNv
bnN0IGZpbmFsOworCisgICAgTGF5b3V0VW5pdCBjb21wdXRlT3V0T2ZGbG93V2lkdGgoY29uc3Qg
Qm94JikgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlRmxvYXRpbmdXaWR0aChjb25zdCBC
b3gmKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVJbkZsb3dXaWR0aChjb25zdCBCb3gm
KSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVJbkZsb3dIZWlnaHQoY29uc3QgQm94Jikg
Y29uc3Q7CisKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVPdXRPZkZsb3dIZWlnaHQoY29uc3QgQm94
JikgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlRmxvYXRpbmdIZWlnaHQoY29uc3QgQm94
JikgY29uc3Q7CisKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVIb3Jpem9udGFsQ29uc3RyYWludChj
b25zdCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250ZW50SGVpZ2h0KGNv
bnN0IEJveCYpIGNvbnN0OworICAgIAorICAgIHZvaWQgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hp
bGRyZW4oQmxvY2tDb250YWluZXImKTsKKyAgICB2b2lkIHBsYWNlT3V0T2ZGbG93RGVzY2VuZGFu
dHMoQmxvY2tDb250YWluZXImKTsKKworICAgIExheW91dFVuaXQgY29tcHV0ZVN0YXRpY1Bvc2l0
aW9uKGNvbnN0IEJveCYpIGNvbnN0OworICAgIExheW91dFBvaW50IGNvbXB1dGVJbkZsb3dQb3Np
dGlvbmVkUG9zaXRpb24oY29uc3QgQm94Jik7CisgICAgTGF5b3V0UG9pbnQgY29tcHV0ZU91dE9m
Rmxvd1Bvc2l0aW9uKGNvbnN0IEJveCYpOworICAgIAorICAgIExheW91dFVuaXQgc2hyaW5rVG9G
aXRXaWR0aChjb25zdCBCb3gmKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJl
bG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxhcHNlLmggYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tNYXJnaW5Db2xsYXBzZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2
OTQ0NGNjMjEyYTBhZmYzNjZiNGE3OGRhYTVjZGU5OTFmYTJkZGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tNYXJnaW5Db2xsYXBzZS5o
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyBjb25zdDsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTIGNvbnN0OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgeworCitjbGFzcyBC
b3g7CisKK2NsYXNzIEJsb2NrTWFyZ2luQ29sbGFwc2UgeworcHVibGljOgorICAgIEJsb2NrTWFy
Z2luQ29sbGFwc2UoKSBjb25zdDsKKworICAgIExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IEJv
eCYpIGNvbnN0OworICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0IEJveCYpIGNvbnN0
OworCitwcml2YXRlOgorICAgIHZvaWQgaXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoU2libGluZyhj
b25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lkIGlzTWFyZ2luQm90dG9tQ29sbGFwc2VkV2l0aFNp
YmxpbmcoY29uc3QgQm94JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBpc01hcmdpblRvcENvbGxh
cHNlZFdpdGhQYXJlbnQoY29uc3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBpc01hcmdpbkJvdHRv
bUNvbGxhcHNlZFdpdGhQYXJlbnQoY29uc3QgQm94JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBu
b25Db2xsYXBzZWRNYXJnaW5Ub3AoY29uc3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBub25Db2xs
YXBzZWRNYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBjb2xs
YXBzZWRNYXJnaW5Ub3BGcm9tRmlyc3RDaGlsZChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lk
IGNvbGxhcHNlZE1hcmdpbkJvdHRvbUZyb21MYXN0Q2hpbGQoY29uc3QgQm94JikgY29uc3Q7Cisg
ICAgCisgICAgdm9pZCBtYXJnaW5WYWx1ZShjdXJyZW50TWFyZ2luVmFsdWUsIGNhbmRpZGF0ZU1h
cmdpblZhbHVlKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGhhc0Fkam9pbmluZ01hcmdpblRvcEFu
ZEJvdHRvbShjb25zdCBCb3gmKSBjb25zdDsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Cb3guaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21p
c2MvaGVhZGVycy9Cb3guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTA4NzU0MDQ1YzgyMzljMTQ5NGRjNDcxOWU4
NDM2MTU0YWRiMzk3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlz
Yy9oZWFkZXJzL0JveC5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgeworCitjbGFz
cyBCb3ggeworICAgIEJveChOb2RlKiwgIHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7CisgICAg
dmlydHVhbCB+Qm94KCk7CisgICAgCisgICAgdW5zaWduZWQgaWQoKSBjb25zdDsKKyAgICBTdHJp
bmcgbmFtZSgpIGNvbnN0OworICAgIE5vZGUmIG5vZGUoKSBjb25zdDsKKworICAgIENvbnRhaW5l
ciogcGFyZW50KCkgY29uc3Q7CisgICAgQm94KiBuZXh0U2libGluZygpIGNvbnN0OworICAgIEJv
eCogbmV4dEluRmxvd1NpYmxpbmcoKSBjb25zdDsKKyAgICBCb3gqIHByZXZpb3VzU2libGluZygp
IGNvbnN0OworICAgIEJveCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKCkgY29uc3Q7CisgICAgCisg
ICAgdm9pZCBzZXRQYXJlbnQoQ29udGFpbmVyKik7CisgICAgdm9pZCBzZXROZXh0U2libGluZyhC
b3gqKTsKKyAgICB2b2lkIHNldFByZXZpb3VzU2libGluZyhCb3gqKTsKKyAgICAKKyAgICBMYXlv
dXRSZWN0IHJlY3QoKSBjb25zdDsKKyAgICBMYXlvdXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7Cisg
ICAgTGF5b3V0UG9pbnQgYm90dG9tUmlnaHQoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIHNldFRv
cExlZnQoTGF5b3V0UG9pbnQpOworICAgIHZvaWQgc2V0U2l6ZShMYXlvdXRTaXplKTsKKyAgICB2
b2lkIHNldFdpZHRoKExheW91dFVuaXQpOworICAgIHZvaWQgc2V0SGVpZ2h0KExheW91dFVuaXQp
OworICAgIAorICAgIHZvaWQgc2V0SXNBbm9ueW1vdXMoYm9vbCk7CisgICAgYm9vbCBpc0Fub255
bW91cygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1Jvb3RFbGVtZW50KCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVyKCkgY29uc3Q7CisKKyAgICBib29sIGlzQmxvY2tM
ZXZlbEJveCgpIGNvbnN0OworICAgIGJvb2wgaXNCbG9ja0NvbnRhaW5lckJveCgpIGNvbnN0Owor
ICAgIGJvb2wgaXNJbmxpbmVMZXZlbEJveCgpIGNvbnN0OworCisgICAgYm9vbCBlc3RhYmxpc2hl
c0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CisgICAgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQoKSBjb25zdDsKKworICAgIEZvcm1hdHRpbmdDb250ZXh0KiBlc3RhYmxp
c2hlZEZvcm1hdHRpbmdDb250ZXh0KCk7CisKKyAgICBib29sIGlzSW5GbG93KCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdDsKKyAgICBib29sIGlzUmVsYXRpdmVQb3NpdGlv
bmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0Fic29sdXRlUG9zaXRpb25lZCgpIGNvbnN0OworICAg
IGJvb2wgaXNGaXhlZFBvc2l0aW9uZWQoKSBjb25zdDsKKyAgICBib29sIGlzT3V0T2ZGbG93UG9z
aXRpb25lZCgpIGNvbnN0OworICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc0Zsb2F0aW5nUG9zaXRpb25lZCgpIGNvbnN0OworICAgIGJvb2wgaXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0OworICAgIAorICAgIEJsb2NrQ29udGFpbmVy
KiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKKworICAgIExheW91dFJlY3QmIGJvcmRlckJveCgp
IGNvbnN0OworICAgIExheW91dFJlY3QmIHBhZGRpbmdCb3goKSBjb25zdDsKKyAgICBMYXlvdXRS
ZWN0JiBjb250ZW50Qm94KCkgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1f
aWQ7CisgICAgU3RyaW5nIG1fcmVuZGVyZXJOYW1lOworICAgIE5vZGUqIG1fbm9kZSB7IG51bGxw
dHIgfTsKKyAgICBDb250YWluZXIqIG1fcGFyZW50IHsgbnVsbHB0ciB9OworICAgIEJveCogbV9u
ZXh0U2libGluZyB7IG51bGxwdHIgfTsKKyAgICBCb3gqIG1fcHJldmlvdXNTaWJsaW5nIHsgbnVs
bHB0ciB9OworICAgIGJvb2wgbV9pc0Fub255bW91cyB7IGZhbHNlIH07CisgICAgTGF5b3V0UmVj
dCBtX3JlY3Q7CisgICAgRm9ybWF0dGluZ0NvbnRleHQqIG1fZXN0YWJsaXNoZWRGb3JtYXR0aW5n
Q29udGV4dCB7IG51bGxwdHIgfTsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJl
bG9hZGVkL21pc2MvaGVhZGVycy9Db250YWluZXIuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21p
c2MvaGVhZGVycy9Db250YWluZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTE2MGFmZTNlNGM4MjExMjhlNzVj
ZDQ4ZjgzMGIzOTlkZTA4NjAzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5lci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiQm94LmgiCisKK25h
bWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKK2NsYXNzIENvbnRhaW5lciA6IHB1YmxpYyBCb3gg
eworICAgIENvbnRhaW5lcihOb2RlKiwgIHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7CisgICAg
dmlydHVhbCB+Q29udGFpbmVyKCk7CisgICAgCisgICAgYm9vbCBpc0NvbnRhaW5lcigpIGNvbnN0
IGZpbmFsOworCisgICAgdm9pZCBzZXRGaXJzdENoaWxkKEJveCopOworICAgIHZvaWQgc2V0TGFz
dENoaWxkKEJveCopOworCisgICAgQm94KiBmaXJzdENoaWxkKCkgY29uc3Q7CisgICAgQm94KiBm
aXJzdEluRmxvd0NoaWxkKCkgY29uc3Q7CisgICAgQm94KiBsYXN0Q2hpbGQoKSBjb25zdDsKKyAg
ICBCb3gqIGxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0OworCisgICAgYm9vbCBoYXNDaGlsZCgpIGNv
bnN0OworICAgIGJvb2wgaGFzSW5GbG93Q2hpbGQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBC
b3gqIG1fZmlyc3RDaGlsZCB7IG51bGxwdHIgfTsKKyAgICBCb3gqIG1fbGFzdENoaWxkIHsgbnVs
bHB0ciB9OworfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hl
YWRlcnMvRmxvYXRpbmdDb250ZXh0LmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRl
cnMvRmxvYXRpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgyOWU5ZDA0ZWVhODc1OGIwZWQ0ZDNj
MTgyZmI0ZGQzOWQ4MGYyYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L21pc2MvaGVhZGVycy9GbG9hdGluZ0NvbnRleHQuaApAQCAtMCwwICsxLDU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbmFtZXNwYWNlIExheW91dFJl
bG9hZGVkIHsKKworY2xhc3MgQm94OworY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CisKK2NsYXNz
IEZsb2F0aW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgRmxvYXRpbmdDb250ZXh0KGNvbnN0IEZv
cm1hdHRpbmdDb250ZXh0Jik7CisKKyAgICBMYXlvdXRQb2ludCBjb21wdXRlUG9zaXRpb24oY29u
c3QgQm94Jik7CisgICAgTGF5b3V0VW5pdCBib3R0b20oKTsKKworcHJpdmF0ZToKKyAgICBMYXlv
dXRQb2ludCBwb3NpdGlvbkZvckZsb2F0aW5nKGNvbnN0IEJveCYgZmxvYXRpbmdCb3gpOworICAg
IExheW91dFBvaW50IHBvc2l0aW9uRm9yQ2xlYXIoY29uc3QgQm94Jik7CisgICAgTGF5b3V0UG9p
bnQgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEludHJ1ZGluZ0Zsb2F0cyhjb25zdCBCb3gmKTsKKyAg
ICAKKyAgICB2b2lkIGFkZEZsb2F0aW5nKGNvbnN0IEJveCYgZmxvYXRpbmdCb3gpOworICAgIAor
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OworICAgIEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0OworCisgICAgc3RkOjpwYWlyPEJveCYsIEJveCY+IGZpbmRJbm5l
ck1vc3RMZWZ0QW5kUmlnaHQoTGF5b3V0VW5pdCB2ZXJ0aWNhbFBvc2l0aW9uKTsKKyAgICBMYXlv
dXRVbml0IG1vdmVUb05leHRWZXJ0aWNhbFBvc2l0aW9uKHN0ZDo6cGFpcjxCb3gmLCBCb3gmPiYg
ZmxvYXRpbmdQYWlyKTsKKyAgICBCb3gqIGZpbmRGbG9hdGluZ0F0VmVydGljYWxQb3NpdGlvbihM
YXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb24sIFZlY3RvcjxCb3gqPiBmbG9hdGluZ1N0YWNrKTsK
KworICAgIExheW91dFVuaXQgYXZhaWxhYmxlU3BhY2UoY29uc3QgQ29udGFpbmVyJiBjb250YWlu
aW5nQmxvY2ssIHN0ZDo6cGFpcjxCb3gmLCBCb3gmPiYgZmxvYXRpbmdQYWlyKTsKKworICAgIHZv
aWQgYWRqdXN0ZWRGbG9hdGluZ1Bvc2l0aW9uKGNvbnN0IEJveCYgZmxvYXRpbmdCb3gsIExheW91
dFVuaXQgdmVydGljYWxQb3NpdGlvbiwgc3RkOjpwYWlyPEJveCYsIEJveCY+JiBsZWZ0UmlnaHRG
bG9hdGluZ3MpOworCisgICAgTGF5b3V0VW5pdCBmaW5kQm90dG9tKGZsb2F0aW5nU3RhY2spOwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRm9y
bWF0dGluZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGYwOWJhNmNlMmUxNGQ2NzMyMTM3Y2U1ZDlm
Mjk1ODUxZDBiM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlz
Yy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxv
YWRlZCB7CisKK2NsYXNzIEJveDsKK2NsYXNzIENvbnRhaW5lcjsKK2NsYXNzIEZsb2F0aW5nQ29u
dGV4dDsKK2NsYXNzIExheW91dENvbnRleHQ7CisKK2NsYXNzIEZvcm1hdHRpbmdDb250ZXh0IHsK
K3B1YmxpYzoKKyAgICBGb3JtYXR0aW5nQ29udGV4dChDb250YWluZXImIHJvb3RDb250YWluZXIp
OworCisgICAgQ29udGFpbmVyJiByb290Q29udGFpbmVyKCkgY29uc3Q7CisgICAgRmxvYXRpbmdD
b250ZXh0JiBmbG9hdGluZ0NvbnRleHQoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBsYXlv
dXQoY29uc3QgTGF5b3V0Q29udGV4dCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBjb21wdXRlV2lkdGgoY29uc3QgQm94JikgY29uc3Q7CisgICAgdmlydHVhbCBM
YXlvdXRVbml0IGNvbXB1dGVIZWlnaHQoY29uc3QgQm94JikgY29uc3Q7CisgICAgCisgICAgdmly
dHVhbCBMYXlvdXRVbml0IG1hcmdpblRvcChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luTGVmdChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2aXJ0dWFsIExh
eW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtYXJnaW5SaWdodChjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICBMYXlvdXRS
ZWN0IGFic29sdXRlTWFyZ2luQm94KGNvbnN0IEJveCYpIGNvbnN0OworICAgIExheW91dFJlY3Qg
YWJzb2x1dGVCb3JkZXJCb3goY29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBhYnNv
bHV0ZVBhZGRpbmdCb3goY29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBhYnNvbHV0
ZUNvbnRlbnRCb3goY29uc3QgQm94JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgRmxvYXRpbmdD
b250ZXh0JiBtX2Zsb2F0aW5nQ29udGV4dDsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Jbml0aWFsQmxvY2tDb250YWluZXIuaCBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Jbml0aWFsQmxvY2tDb250YWluZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNmE2MjlkMzM2YjM5OGM5YTVkMjQ5YTQ2ZDg4NjdhYjU0NDIyODk3Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9j
a0NvbnRhaW5lci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiQmxvY2tDb250YWluZXIuaCIKKworbmFtZXNw
YWNlIExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgSW5pdGlhbEJsb2NrQ29udGFpbmVyIDogcHVi
bGljIEJsb2NrQ29udGFpbmVyIHsKK3B1YmxpYzoKKyAgICBJbml0aWFsQmxvY2tDb250YWluZXIo
RG9jdW1lbnQmLCB1bnNpZ25lZCBpZCwgU3RyaW5nIG5hbWUpOworICAgIAorICAgIGJvb2wgZXN0
YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgZmluYWw7CisKKyAgICAvLyBG
SVhNRTogVGhlc2Ugc2hvdWxkIG5vdCByZWFsbHkgYmUgdmlydHVhbC4KKyAgICBMYXlvdXRSZWN0
IHBhZGRpbmdCb3goKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGNvbnRlbnRCb3goKSBjb25zdDsK
K307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9J
bmxpbmVCb3guaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9JbmxpbmVCb3gu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OWU4ODEyODBhNjE5ODA0YmVmZWEzYmJmZWMxOTU1YWYyN2ZmNTRmCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0lubGlu
ZUJveC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCituYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgeworCisjaW5jbHVkZSAiQm94
LmgiCisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIElubGluZUJveCA6IHB1YmxpYyBCb3ggeworcHVi
bGljOgorICAgIElubGluZUJveChOb2RlKiwgdW5zaWduZWQgaWQsIFN0cmluZyBuYW1lKTsKKyAg
ICB2aXJ0dWFsIH5JbmxpbmVCb3goKTsKKworICAgIHZvaWQgc2V0VGV4dChUZXh0Jik7CisKK3By
aXZhdGU6CisgICAgVGV4dCYgbV90ZXh0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaCBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL21pc2MvaGVhZGVycy9MYXlvdXRDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE3OGIxNDFm
MzQ5OTdkNWY2MWQxNTJiYzkzZGRlNTY2NjhmMTY4NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9MYXlvdXRDb250ZXh0LmgKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK25hbWVz
cGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKK2NsYXNzIEZvcm1hdHRpbmdDb250ZXh0OworCitjbGFz
cyBMYXlvdXRDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBMYXlvdXRDb250ZXh0KCk7CisgICAgCisg
ICAgdm9pZCBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dChGb3JtYXR0aW5nQ29udGV4dCYpOworfTsK
KworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQu
aCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9UZXh0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWE5OWRlOTdhN2Q1YzNmYjEyZWM1OTk0OTQ1OWM5OWE2N2ZlM2U4MwotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9UZXh0LmgKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK25hbWVz
cGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKK2NsYXNzIElubGluZUNvbnRhaW5lcjsKKworY2xhc3Mg
VGV4dCB7CitwdWJsaWM6CisgICAgVGV4dChOb2RlKiwgdW5zaWduZWQgaWQsIElubGluZUJveCYg
cGFyZW50KTsKKyAgICB+VGV4dCgpOworCitwcml2YXRlOgorICAgIElubGluZUJveCYgbV9wYXJl
bnQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L1Rlc3RI
YXJuZXNzLmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9UZXN0SGFybmVzcy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYWM0YWRmYmExOGYxODEwYzJkZmQ0NDFmN2E2NTNkN2Y0MzY3ZTViCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9UZXN0SGFybmVzcy5qcwpAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworZnVuY3Rpb24gdmVyaWZ5TGF5b3V0VHJlZUR1bXAocmVuZGVyVHJlZUR1bXAsIGxheW91dFRy
ZWVEdW1wKQoreworICAgIGNvbnNvbGUubG9nKCJXZWJLaXQ6XG4iICsgcmVuZGVyVHJlZUR1bXAg
KyByZW5kZXJUcmVlRHVtcC5sZW5ndGgpOworICAgIGNvbnNvbGUubG9nKCJSZWxvYWRlZDpcbiIg
KyBsYXlvdXRUcmVlRHVtcCArIGxheW91dFRyZWVEdW1wLmxlbmd0aCk7CisgICAgaWYgKHJlbmRl
clRyZWVEdW1wID09IGxheW91dFRyZWVEdW1wKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIHJ1bkxheW91dCh0ZXN0V2luZG93KSB7CisgICAg
dGVzdFdpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICBsZXQgdmlld3BvcnRT
aXplID0gbmV3IExheW91dFNpemUocGFyc2VGbG9hdCh0ZXN0V2luZG93LmlubmVyV2lkdGgpLCBw
YXJzZUZsb2F0KHRlc3RXaW5kb3cuaW5uZXJIZWlnaHQpKTsKKyAgICBsZXQgbGF5b3V0VHJlZUR1
bXAgPSBsYXlvdXQodGVzdFdpbmRvdywgdmlld3BvcnRTaXplKTsKKyAgICByZXR1cm4gdmVyaWZ5
TGF5b3V0VHJlZUR1bXAodGVzdFdpbmRvdy5zaW1wbGlmaWVkUmVuZGVyVHJlZSwgbGF5b3V0VHJl
ZUR1bXApOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0
ZS1hdXRvLXdpdGgtc2libGluZy1tYXJnaW4tYm90dG9tLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC90ZXN0L2Fic29sdXRlLWF1dG8td2l0aC1zaWJsaW5nLW1hcmdpbi1ib3R0b20uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mY2ZkNzMyOWQ1YTc0NTdmNmU0YzQwODRkMzc1NWU3MGUxNWU4N2M5Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1hdXRvLXdp
dGgtc2libGluZy1tYXJnaW4tYm90dG9tLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUwcHg7IG1hcmdpbjog
MTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IHBv
c2l0aW9uOiBhYnNvbHV0ZTsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1ib3R0b20uaHRtbCBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtYm90dG9tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY1NWY0
ZTc3OGFlOWFmYTAxZGYzNWQ2MGMyZDg3NDczYjRmYmM2ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtYm90dG9tLmh0bWwKQEAgLTAsMCArMSw3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJz
b2x1dGUtaGVpZ2h0LXN0cmV0Y2guaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJz
b2x1dGUtaGVpZ2h0LXN0cmV0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjlmMTgxZTg4MGQxOWJmOTFj
N2M0ZjA2MThjNDI5M2E5ZTc5MDhiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9hYnNvbHV0ZS1oZWlnaHQtc3RyZXRjaC5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyByaWdodDogMzBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAx
MDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsg
cmlnaHQ6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTBweDsgYm90dG9tOiAzMHB4OyB3aWR0aDogMjBweDsi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9hYnNvbHV0ZS1sZWZ0LWF1dG8uaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvYWJzb2x1dGUtbGVmdC1hdXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdhZGI4YTc1MzY4MzQwMmFj
OWVlZWNmMmI5NGMyM2Q4ZGI0YWZjOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1hdXRvLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMTAw
cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogYXV0bzsgYm90dG9tOiA4cHg7IHdpZHRoOiAz
MHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZTsgcmlnaHQ6IGF1dG87IGJvdHRvbTogOHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+
PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogYXV0bzsgbGVmdDog
OHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGJvdHRvbTogYXV0bzsgbGVmdDogOHB4OyB3aWR0aDogMzBweDsgaGVp
Z2h0OiAyMHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWxlZnQtcmlnaHQtdG9wLWJvdHRvbS1hdXRvLmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWxlZnQtcmlnaHQtdG9wLWJv
dHRvbS1hdXRvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIzZTc1M2E4ZDE0NDBiYThmNWYwMDljZDg1YmFk
NjYxZmU3NzgzMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
YWJzb2x1dGUtbGVmdC1yaWdodC10b3AtYm90dG9tLWF1dG8uaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTBw
eDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IHJpZ2h0OiAxMHB4OyB0b3A6IGF1dG87IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rp
dj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiBhdXRvOyB3aWR0aDog
MzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTBweDsgaGVp
Z2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IGF1dG87IHRvcDogYXV0bzsgd2lkdGg6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRp
diBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiBhdXRvOyB0b3A6IDEwcHg7IHdpZHRoOiAzMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogYXV0bzsgYm90dG9tOiAxMHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L2Fic29sdXRlLW5lc3RlZC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0
ZS1uZXN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTA4NWQ0M2NiZTc5NmZmNTJmNTIwNTM2ZWZiZDhk
MjFjN2RiYzljCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9h
YnNvbHV0ZS1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyB0
b3A6IDBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICA8ZGl2IHN0eWxl
PSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRl
LW5lc3RlZDIuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbmVzdGVk
Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRiZDBlYTQwMzJhMjU4OTMwNWM4NzIzOThlYmI5NzZmNGM4Y2Uw
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRl
LW5lc3RlZDIuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2
PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBweDsgdG9wOiAy
MHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTBweDsgdG9wOiA1MHB4OyB3aWR0aDogNTBweDsgaGVpZ2h0
OiA1MHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDEwMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAy
MHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC90ZXN0L2Fic29sdXRlLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZWQ5YWFjZjk0ZmIz
OTg1NTgzMzBiOTQ1MTY5ZmVlZDljMzY0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OiAyMHB4OyB0b3A6IDEwcHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDQwcHg7Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvYWJzb2x1dGUtd2lkdGgtc2hyaW5rLXRvLWZpdC5odG1sIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zaHJpbmstdG8tZml0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODBiMjhkNGRkNzc2ODdiYzNjNGM2OTg5MTNhM2M1MDk1ZDBlYjQ2NgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgtc2hyaW5rLXRvLWZp
dC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IGF1dG87IGhlaWdodDogMTAw
cHg7IHBhZGRpbmc6IDEwcHgiPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMTAwcHg7IHdpZHRoOiBhdXRvOyBoZWlnaHQ6IDEwMHB4OyBwYWRkaW5nOiAxMHB4Ij4K
KyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAg
IDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4K
KzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAwcHg7IHdpZHRoOiBhdXRv
OyBoZWlnaHQ6IDEwMHB4OyBwYWRkaW5nOiAxMHB4Ij4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDog
MjAwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA1cHg7
IG1hcmluZzogMTBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKyAgICA8
L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyByaWdodDogMTAw
cHg7IHdpZHRoOiBhdXRvOyBoZWlnaHQ6IDEwMHB4OyBwYWRkaW5nOiAxMHB4Ij4KKyAgICA8ZGl2
IHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICA8ZGl2IHN0eWxl
PSJtYXJnaW46IDE1cHg7IHBhZGRpbmctbGVmdDogNXB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDog
MjBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLXdpZHRoLXN0cmV0Y2gu
aHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgtc3RyZXRjaC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwZGFmZmM3YjM3YzE2Y2JjOWVkMjQ2YjJmMmE1ZDllYzU3NmEzZWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLXdp
ZHRoLXN0cmV0Y2guaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgcmln
aHQ6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyB3aWR0aDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDEwcHg7IHJpZ2h0OiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9hYnNvbHV0ZS13aXRoLWlubGluZS1wcmVmZXJyZWQtd2lkdGguaHRtbCBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2l0aC1pbmxpbmUtcHJlZmVycmVkLXdpZHRoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2VlNGVkYzA1YmM1MDM3YjRhN2Y3Yjc2OTdlMWI3ZmUxYzBkNWZmMAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2l0aC1p
bmxpbmUtcHJlZmVycmVkLXdpZHRoLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgoraW1nIHsKKyB2ZXJ0aWNhbC1hbGlnbjogYm90
dG9tOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDEwcHg7IGxlZnQ6IDEwcHg7Ij5mb29iYXIgZm9vYmFyIGZvb2Jhcjwv
ZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMHB4OyBsZWZ0OiAx
MHB4OyI+PGltZyBzcmM9ImZvby5qcGciIHdpZHRoPTEwMHB4IGhlaWdodD0xMDBweD48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
YWJzb2x1dGUtd2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVkLmh0bWwgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLXdpdGgtc3RhdGljLWJsb2NrLXBvc2l0aW9uLW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmN2E1Mzg3OTQ3OWRjOGJkNGJkMjRjYjEzYTY4YmEyN2M1
ZWRjMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29s
dXRlLXdpdGgtc3RhdGljLWJsb2NrLXBvc2l0aW9uLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBzdHlsZT0icGFkZGluZzog
MTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogYXV0bzsg
bGVmdDogYXV0bzsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fs
bW9zdC1pbnRydWRpbmctbGVmdC1mbG9hdC1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL3Rlc3QvYWxtb3N0LWludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZhZTE1YThmZWZkODc1NGZkMTEwZDRlYTZkM2VkNmRlNjkwYjY2OTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2FsbW9zdC1pbnRydWRpbmctbGVmdC1m
bG9hdC1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5n
OiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9Indp
ZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0i
bWFyZ2luLWxlZnQ6IDUwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgICAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9ib3JkZXItc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Jv
cmRlci1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjFlOGU3NGIzYzU0MGQ2YzZmNzUxZGM1NGFk
NDI2M2Y5NDY0YjRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9ib3JkZXItc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFk
ZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iYm9y
ZGVyOiAxMHB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBncmVlbjsgd2lkdGg6IDIwMHB4OyBoZWln
aHQ6IDIwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlci10b3A6IDVweCBz
b2xpZCBncmVlbjsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRpdiBzdHls
ZT0iYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDog
MjAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyOiAxMHB4IHNvbGlkIGdy
ZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwYWRk
aW5nOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6
IDIwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlcjogMTBweCBzb2xpZCBn
cmVlbjsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFy
Z2luOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6
IDIwMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogMTBweDsgd2lkdGg6IDIwMHB4
OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDEwcHg7
IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZml4ZWQtbmVzdGVkLmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2ZpeGVkLW5lc3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI4MDhhOWJhNTM2MDQzMWRmZTRjMzc0MGRkODY4OTkwM2FiZDA1NzYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2ZpeGVkLW5lc3RlZC5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGZpeGVkOyBsZWZ0OiAyMHB4OyB0b3A6IDEwcHg7
IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjog
Zml4ZWQ7IGxlZnQ6IDEyMHB4OyB0b3A6IDEwMHB4OyB3aWR0aDogMjMwcHg7IGhlaWdodDogNDBw
eDsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7
IHRvcDogMTBweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPgorICAgICAgICAgICAgPGRp
diBzdHlsZT0id2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPgorICAgICAgICAgICAgICAgIDxk
aXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMjIwcHg7IHRvcDogMTAwcHg7IHdpZHRo
OiAzMHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdC1sZWZ0LXdoZW4tY29udGFpbmVyLWhh
cy1wYWRkaW5nLW1hcmdpbi5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdC1s
ZWZ0LXdoZW4tY29udGFpbmVyLWhhcy1wYWRkaW5nLW1hcmdpbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3
ZjY4ODU5MDA2OWIzOWVhMGZmODcyZjE0NGFiODBiN2IzOTRlYzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0LWxlZnQtd2hlbi1jb250YWluZXItaGFz
LXBhZGRpbmctbWFyZ2luLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFk
ZGluZzogOHB4OworfQorZGl2IHsgb3V0bGluZTogMXB4IHNvbGlkIGdyZWVuOyB9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDEw
cHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0
OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHls
ZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDMwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2
PgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLWJvdGgtc2ltcGxlLmh0bWwgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1jbGVhci1ib3RoLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc2ZGNlYzI0Njg5ZGNlZTM3ZTEzODIxYWFkODkzMjNhOTIyNzNkZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJv
eC1jbGVhci1ib3RoLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAg
IHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9
IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBy
aWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwv
ZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7
IGhlaWdodDogMzUwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6
IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3
aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9h
dDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDM1MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJv
eC1jbGVhci1yaWdodC1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxv
YXRpbmctYm94LWNsZWFyLXJpZ2h0LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhMjk0Yzc3NDlm
YTFmNzY0ZGE1YjRjM2MwOTc1MzRhZTI0OTAxNDYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1jbGVhci1yaWdodC1zaW1wbGUuaHRtbApA
QCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogMTAw
cHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6
IDI1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsg
d2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0i
ZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0
eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDM1MHB4OyI+PC9kaXY+Cis8
ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7
Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1
MDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTBweDsgaGVp
Z2h0OiAzNTBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVsdGlwbGUt
d2l0aC10b3Atb2Zmc2V0Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5n
LWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS13aXRoLXRvcC1vZmZzZXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lODYzMTdlYzRlNzNkYjMzY2FiY2Q4N2ZiZmYxMTdiNTQwZWNiMjBmCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQt
cmlnaHQtbXVsdGlwbGUtd2l0aC10b3Atb2Zmc2V0Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2lu
OiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorZGl2IHsgb3V0bGluZTogc29saWQgZ3JlZW4g
MXB4OyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOiAx
MDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiAxMzBweDsgaGVpZ2h0OiAxNXB4OyI+PC9kaXY+CisgICAgPGRpdiBz
dHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAxMjVweDsiPjwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNjBweDsgaGVpZ2h0OiAxMHB4OyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMzBweDsgaGVpZ2h0
OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMzBw
eDsgaGVpZ2h0OiAxMjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3
aWR0aDogMTMwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0
OiByaWdodDsgd2lkdGg6IDMwcHg7IGhlaWdodDogMTI1cHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9h
dGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVsdGlwbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL3Rlc3QvZmxvYXRpbmctYm94LWxlZnQtYW5kLXJpZ2h0LW11bHRpcGxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDExZmZlN2RkYzRkYjM2NTRmY2EzNjFhNmJiYWVjOWRiNDIwN2ExOQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWxlZnQtYW5k
LXJpZ2h0LW11bHRpcGxlLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFk
ZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lk
dGg6IDIwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDI1cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9h
dDogcmlnaHQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQ1cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDYwcHg7IGhlaWdodDogMTVweDsiPjwvZGl2PgorICAg
IDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNzBweDsgaGVpZ2h0OiA5NXB4OyI+PC9k
aXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAx
MjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDEwcHg7
IGhlaWdodDogMzVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0
aDogNzBweDsgaGVpZ2h0OiA5NXB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXJpZ2h0
LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtcmln
aHQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg5YjllMTkwOTk4OWRjM2E0YWUyZDEyMzgxNWJj
Y2JhNzVkYTUyYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
ZmxvYXRpbmctYm94LXJpZ2h0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4
OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorICAgIDxkaXYg
c3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4K
KyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4
OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogODBweDsgaGVp
Z2h0OiAxNTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6
IDgwcHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6
IDUwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6
IHJpZ2h0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNTBweDsiPjwvZGl2PgorPC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNTBweDsiPjwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDgwcHg7IGhlaWdodDog
MTUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA4MHB4
OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNpYmxpbmdz
Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLWNsZWFy
LXNpYmxpbmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZmNzY1ZTE0YTQ2MTAzMzM5ODVjN2NkNzY1NGRj
NGIwZmE2ZWE5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
ZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2libGluZ3MuaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJn
aW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5
bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorPC9k
aXY+Cis8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsi
PjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
ZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFj
MmE5YjA0YzRiNjA1OWM3ODc1ZTA2NTFmZjUwYzNlNTUwZTNkNWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNpbXBs
ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVp
Z2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBo
ZWlnaHQ6IDE1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRo
OiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImNsZWFy
OiBib3RoOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13
aXRoLW5ldy1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvZmxvYXRpbmctYm94LXdpdGgtbmV3LWZvcm1hdHRpbmctY29udGV4dC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4N2JmMzM5ZTQ0MDg0ZTBiNzQ4NTk1YzJjMzRjNzZiODMwZDM0MDQKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLW5ldy1m
b3JtYXR0aW5nLWNvbnRleHQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBw
YWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJw
b3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4OyBsZWZ0OiAzMHB4OyB3aWR0aDogMTAwcHg7IGhl
aWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLXJl
bGF0aXZlLXBvc2l0aW9uZWQtc2libGluZy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy1ib3gtd2l0aC1yZWxhdGl2ZS1wb3NpdGlvbmVkLXNpYmxpbmcuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMzU5YzQ1ZDExYjk4ODgyNDgwYTYzNjU5ZmJhNDZjODZkNmE5MmQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtd2l0aC1y
ZWxhdGl2ZS1wb3NpdGlvbmVkLXNpYmxpbmcuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBw
eDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMTBweDsgbGVmdDogMzBweDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMzBweDsgbGVmdDogMzBweDsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9h
dDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiA0MHB4OyBsZWZ0OiAzMHB4OyB3aWR0aDogMTAwcHg7
IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVm
dDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbGVmdC1yaWdo
dC1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbGVmdC1y
aWdodC1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzk1MDQ5NTkwNGMzZDUxOWRlZGFiNTVkNzYw
MTRlMzBjNmU1MzJiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjog
MHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgorICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9h
dDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0LXJp
Z2h0LXdpdGgtYWxsLW1hcmdpbnMuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxv
YXRpbmctbGVmdC1yaWdodC13aXRoLWFsbC1tYXJnaW5zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZiNDRj
ZmQ4NTNkOGYzM2M3YTMxZWIxMGY3NWQ2NTA3YWRiYWIyNAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbGVmdC1yaWdodC13aXRoLWFsbC1tYXJn
aW5zLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4Owor
fQorCitkaXYgeyBvdXRsaW5lOiAxcHggc29saWQgZ3JlZW47IH0KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgIDxk
aXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4t
bGVmdDogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIw
cHg7IGhlaWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5
bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDog
MTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZs
b2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW46IDEwcHg7Ij48L2Rp
dj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7
IG1hcmdpbjogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7
IGhlaWdodDogNTBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4
OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9
ImZsb2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiAx
MHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxv
YXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7
Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0
OiAyMHB4OyBtYXJnaW46IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0
OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW46IDEwcHg7Ij48L2Rpdj4KKzwvZGl2
PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgPGRpdiBzdHls
ZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDog
MTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBo
ZWlnaHQ6IDIwcHg7IG1hcmdpbi1yaWdodDogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJm
bG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7
Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6
IDIwcHg7IG1hcmdpbi1yaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3
aWR0aDogNTAwcHg7IGhlaWdodDogNTBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsg
d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDQwMHB4OyI+PC9kaXY+Cisg
IDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJn
aW4tcmlnaHQ6IDgwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4
OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDogNDAwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHls
ZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmlnaHQ6
IDgwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6
IDUwcHg7Ij4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6
IDIwcHg7IG1hcmdpbi1sZWZ0OiA0MDBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1yaWdodDogODBweDsiPjwv
ZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogMTIwcHg7Ij4K
KyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0ODBweDsgaGVpZ2h0OiAyMHB4OyBt
YXJnaW46IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDog
MjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tdG9wOiA1MHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxk
aXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgIDxkaXYgc3R5bGU9ImZs
b2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW46IDEwcHg7Ij48L2Rp
dj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4
OyBtYXJnaW46IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4
OyBoZWlnaHQ6IDgwcHg7Ij4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4
OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogNTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9h
dDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRp
diBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDYwcHg7Ij4KKyAgPGRpdiBzdHlsZT0iZmxv
YXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tdG9wOiA1MHB4OyI+
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiA1MHB4OyI+
CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsg
bWFyZ2luOiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbGVmdHMtYW5kLXJpZ2h0cy1z
aW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbGVmdHMtYW5k
LXJpZ2h0cy1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGZhZmQ3ZWM3MTE4ODg4Nzk3OTEyZTEw
NjliYmM1N2YyZGI0YjIzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1sZWZ0cy1hbmQtcmlnaHRzLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAg
IG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQwcHg7IGhlaWdodDog
MjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eCI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTBweDsgaGVp
Z2h0OiAxNnB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMtaW4tYm9k
eS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0
cy1pbi1ib2R5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIyYmQ2M2NjZGY3MDA4ZDlhOTQwMzg1NWE4Njk0
OTVjYjM2MjIzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
ZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMtaW4tYm9keS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdp
bjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQwcHg7IGhlaWdodDogMjVweDsi
PjwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweCI+PC9k
aXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDkwcHg7IGhl
aWdodDogMTNweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMDBweCI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4
OyBoZWlnaHQ6IDE2cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lk
dGg6IDIwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyB3aWR0aDogNDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweCI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBz
dHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cisg
ICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rp
dj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1tdWx0aXBsZS1saW5lcy5odG1sIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1tdWx0aXBs
ZS1saW5lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhMjc1MjMzZjM3NDZlNGU3ZTRkYWRlOGM4MDg0YjAy
YmYxZTQ1NWIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zs
b2F0aW5nLW11bHRpcGxlLWxlZnRzLW11bHRpcGxlLWxpbmVzLmh0bWwKQEAgLTAsMCArMSwxNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAg
bWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDE4NXB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDI1cHg7Ij48L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjM2EzODMx
YTZjMjBkNGEyZDlmYTk0MzhiZDA3Y2M3YTkwZTI3N2IKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwKQEAgLTAs
MCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9k
eSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDE4NXB4OyBoZWlnaHQ6IDIwMHB4OyI+
CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDI1cHg7
Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdo
dDogMTZweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogOTBw
eDsgaGVpZ2h0OiAxM3B4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDE2cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyB3aWR0aDogNDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorICAgIDxk
aXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNTBweDsiPjwvZGl2
PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTBw
eDsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZy5odG1sIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGY4ZmRkNDkzZTdj
OGNhNDNjMDdkZTUyMTk4ZDQ5YjMxYjcwNTBiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcuaHRtbApAQCAtMCwwICsxLDI2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJn
aW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9CitpbWcgeworICAgIHZlcnRpY2FsLWFsaWdu
OiB0b3A7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImZsb2F0
OiBsZWZ0OyI+Zm9vPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsiPmZvb2JhcjwvZGl2
PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7Ij5mb29iYXIgZm9vYmFyPC9kaXY+Cis8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsiPmZvb2JhciBmb29iYXIgZm9vYmFyPC9kaXY+Cis8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsiPjxpbWcgd2lkdGg9ODAwcHggaGVpZ2h0PTEwMHB4IHNyYz0iZm9vLmpw
ZyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij5iYXI8L2Rpdj4KKzxkaXYgc3R5
bGU9ImZsb2F0OiByaWdodDsiPmJhcmZvbyBiYXI8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBy
aWdodDsiPmJhcmZvbyBiYXJmb28gYmFyPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7
Ij5iYXJmb28gYmFyZm9vIGJhcmZvbyBiYXI8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctc2l6aW5nMi5odG1sIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODM4NGQ4YTg1Y2NiY2NiZGEzOTYzZjEyNTk4NmExNmUxMjA4NGQzNgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctc2l6aW5nMi5odG1sCkBA
IC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KK2ltZyB7Cisg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHNwYW4gc3R5bGU9ImZsb2F0OiBsZWZ0OyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7Ij5mb29iYXJmb29i
YXJmb29iYXJmb29iYXI8L2Rpdj4KKzwvc3Bhbj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctc2l6aW5nMy5odG1sIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmczLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDY3MWM4YzE1OThmYTdjZTIwZDc1MDkwZjVjMWM1YWE1NDAyM2MwZgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctc2l6aW5nMy5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKworPHN0eWxlPgor
Ym9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPHNwYW4gc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsg
aGVpZ2h0OiAxMDBweDsgYm9yZGVyOiAxcHggc29saWQgcmVkIj48L2Rpdj4KKzxzcGFuIHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMTBweDsgYm9yZGVyOiAxcHggc29s
aWQgcmVkIj48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwMHB4OyBo
ZWlnaHQ6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJlZCI+PC9kaXY+CisKKzxkaXYgc3R5bGU9
ImhlaWdodDogMzBweDsgd2lkdGg6IDIwMHB4OyI+CisgIDxzcGFuIHN0eWxlPSJmbG9hdDogbGVm
dDsiPmZvb29vb29vb28gMDBvZzwvc3Bhbj4xCis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyBoZWlnaHQ6IDMwMHB4OyB3aWR0aDogNTAwcHg7Ij48L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy13aXRo
LW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvZmxvYXRpbmctd2l0aC1uZXctYmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmE3ZGQ5ODhlYjgwNTE3NmI1ZDkzOWQyZmUxZjkzYmEzMTVhM2Y1MwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctd2l0aC1uZXct
YmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7
CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBz
dHlsZT0id2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorICAg
IDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1cHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNDBw
eDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDE4MHB4OyBo
ZWlnaHQ6IDgwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47IHdp
ZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKzwvZGl2PgorPGRpdiBzdHlsZT0ib3ZlcmZsb3c6
aGlkZGVuOyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyI+Cis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5kZXguaHRtbCBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmNiOWI2
YzAzMWNkNTg5MGY0ZWY4ODU1ODc2NzE5ODE3ODg1MTYyCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpZnJhbWUgeworICAgIGJvcmRl
cjogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitsZXQgdGVzdEZpbGVzID0gWworICAgICJy
ZWxhdGl2ZS1zaW1wbGUuaHRtbCIsCisgICAgInJlbGF0aXZlLWJvdHRvbS5odG1sIiwKKyAgICAi
cmVsYXRpdmUtcmlnaHQuaHRtbCIsCisgICAgInJlbGF0aXZlLWF1dG8uaHRtbCIsCisgICAgInJl
bGF0aXZlLWF1dG8td2l0aC1wYXJlbnQtb2Zmc2V0Lmh0bWwiLAorICAgICJyZWxhdGl2ZS1zaWJs
aW5ncy5odG1sIiwKKyAgICAicGFkZGluZy1zaW1wbGUuaHRtbCIsCisgICAgInBhZGRpbmctbmVz
dGVkLmh0bWwiLAorICAgICJib3JkZXItc2ltcGxlLmh0bWwiLAorICAgICJtYXJnaW4tc2ltcGxl
Lmh0bWwiLAorICAgICJtYXJnaW4tc2libGluZy1jb2xsYXBzZS1wcm9wYWdhdGVkLmh0bWwiLAor
ICAgICJtYXJnaW4tcHJvcGFnYXRpb24tc2ltcGxlLWNvbnRlbnQtaGVpZ2h0Lmh0bWwiLAorICAg
ICJtYXJnaW4tbGVmdC1yaWdodC1zaXppbmcuaHRtbCIsCisgICAgIm1hcmdpbi1sZWZ0LXJpZ2h0
LXNpemluZy1vdXQtb2YtZmxvdy5odG1sIiwKKyAgICAibWFyZ2luLWNvbGxhcHNlLXdpdGgtYmxv
Y2stZm9ybWF0dGluZy1jb250ZXh0Mi5odG1sIiwKKyAgICAibWFyZ2luLWNvbGxhcHNlLXdpdGgt
YmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Utd2hl
bi1jaGlsZC1oYXMtcGFkZGluZy1ib3JkZXIuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xsYXBzZS10
b3AtbmVzdGVkLmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Utc2ltcGxlLmh0bWwiLAorICAg
ICJtYXJnaW4tY29sbGFwc2UtZmlyc3QtbGFzdC1hcmUtZmxvYXRpbmcuaHRtbCIsCisgICAgIm1h
cmdpbi1jb2xsYXBzZS1ib3R0b20tbmVzdGVkLmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Ut
Ym90dG9tLWJvdHRvbS5odG1sIiwKKyAgICAiYWJzb2x1dGUtYXV0by13aXRoLXNpYmxpbmctbWFy
Z2luLWJvdHRvbS5odG1sIiwKKyAgICAiYWJzb2x1dGUtYm90dG9tLmh0bWwiLAorICAgICJhYnNv
bHV0ZS1oZWlnaHQtc3RyZXRjaC5odG1sIiwKKyAgICAiYWJzb2x1dGUtbGVmdC1hdXRvLmh0bWwi
LAorICAgICJhYnNvbHV0ZS1sZWZ0LXJpZ2h0LXRvcC1ib3R0b20tYXV0by5odG1sIiwKKyAgICAi
YWJzb2x1dGUtbmVzdGVkLmh0bWwiLAorICAgICJhYnNvbHV0ZS1uZXN0ZWQyLmh0bWwiLAorICAg
ICJhYnNvbHV0ZS1zaW1wbGUuaHRtbCIsCisgICAgImFic29sdXRlLXdpZHRoLXNocmluay10by1m
aXQuaHRtbCIsCisgICAgImFic29sdXRlLXdpZHRoLXN0cmV0Y2guaHRtbCIsCisgICAgImFic29s
dXRlLXdpdGgtc3RhdGljLWJsb2NrLXBvc2l0aW9uLW5lc3RlZC5odG1sIiwKKyAgICAiZml4ZWQt
bmVzdGVkLmh0bWwiLAorICAgICJmbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVsdGlwbGUu
aHRtbCIsCisgICAgImZsb2F0aW5nLWJveC1yaWdodC1zaW1wbGUuaHRtbCIsCisgICAgImZsb2F0
aW5nLWxlZnQtcmlnaHQtc2ltcGxlLmh0bWwiLAorICAgICJmbG9hdGluZy1sZWZ0LXJpZ2h0LXdp
dGgtYWxsLW1hcmdpbnMuaHRtbCIsCisgICAgImZsb2F0aW5nLW11bHRpcGxlLWxlZnRzLWluLWJv
ZHkuaHRtbCIsCisgICAgImZsb2F0aW5nLW11bHRpcGxlLWxlZnRzLW11bHRpcGxlLWxpbmVzLmh0
bWwiLAorICAgICJmbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy5odG1sIiwKKyAgICAiZmxvYXRpbmct
Ym94LXdpdGgtcmVsYXRpdmUtcG9zaXRpb25lZC1zaWJsaW5nLmh0bWwiLAorICAgICJmbG9hdGlu
Zy1sZWZ0cy1hbmQtcmlnaHRzLXNpbXBsZS5odG1sIiwKKyAgICAiZmxvYXRpbmctd2l0aC1uZXct
YmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwiLAorICAgICJmbG9hdGluZy1ib3gtY2xlYXIt
cmlnaHQtc2ltcGxlLmh0bWwiLAorICAgICJmbG9hdGluZy1ib3gtd2l0aC1jbGVhci1zaW1wbGUu
aHRtbCIsCisgICAgImZsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNpYmxpbmdzLmh0bWwiLAorICAg
ICJmbG9hdGluZy1ib3gtY2xlYXItYm90aC1zaW1wbGUuaHRtbCIsCisgICAgImFsbW9zdC1pbnRy
dWRpbmctbGVmdC1mbG9hdC1zaW1wbGUuaHRtbCIsCisgICAgIm5lZ2F0aXZlLW1hcmdpbi1zaW1w
bGUuaHRtbCIsCisgICAgImludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sIgorXTsKKwor
bGV0IGRlYnVnVGhpcyA9IFsKK107CisKK2Z1bmN0aW9uIGFkZEpTKGZpbGVOYW1lKSB7CisgICAg
bGV0IHNjcmlwdCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOworICAgIGxldCBpbXBvcnRl
ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgIGltcG9ydGVkLnNyYyA9
IGZpbGVOYW1lOworICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaW1wb3J0ZWQpOworfQor
CithZGRKUygiLi9UZXN0SGFybmVzcy5qcyIpOworYWRkSlMoIi4uL1V0aWxzLmpzIik7CithZGRK
UygiLi4vTGF5b3V0LmpzIik7CithZGRKUygiLi4vVHJlZUJ1aWxkZXIuanMiKTsKK2FkZEpTKCIu
Li9MYXlvdXRDb250ZXh0LmpzIik7CithZGRKUygiLi4vQm94LmpzIik7CithZGRKUygiLi4vQ29u
dGFpbmVyLmpzIik7CithZGRKUygiLi4vQmxvY2tDb250YWluZXIuanMiKTsKK2FkZEpTKCIuLi9J
bml0aWFsQmxvY2tDb250YWluZXIuanMiKTsKK2FkZEpTKCIuLi9JbmxpbmVCb3guanMiKTsKK2Fk
ZEpTKCIuLi9UZXh0LmpzIik7CithZGRKUygiLi4vRm9ybWF0dGluZ0NvbnRleHQuanMiKTsKK2Fk
ZEpTKCIuLi9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmpzIik7CithZGRKUygiLi4vSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuanMiKTsKK2FkZEpTKCIuLi9GbG9hdGluZ0NvbnRleHQuanMiKTsKK2Fk
ZEpTKCIuLi9CbG9ja01hcmdpbkNvbGxhcHNlLmpzIikKKworbGV0IGZhaWxlZFRlc3RzID0gW107
CisKK2Z1bmN0aW9uIHByaW50UmVzdWx0KGZpbGVzLCBjdXJyZW50VGVzdEluZGV4KSB7CisgICAg
bGV0IHJlc3VsdENvbnRlbnQgPSBjdXJyZW50VGVzdEluZGV4ICE9IG51bGwgPyAoIlRlc3Rpbmcu
Li4iICsgY3VycmVudFRlc3RJbmRleCArICIgb3V0IG9mICIgKyBmaWxlcy5sZW5ndGgpIDogKCJO
dW1iZXIgb2YgdGVzdHM6ICIgKyBmaWxlcy5sZW5ndGgpIDsKKyAgICByZXN1bHRDb250ZW50ICs9
ICI8YnI+PGJyPlBhc3NlZDogIiArICgoY3VycmVudFRlc3RJbmRleCAhPSBudWxsID8gY3VycmVu
dFRlc3RJbmRleCA6IGZpbGVzLmxlbmd0aCkgLSBmYWlsZWRUZXN0cy5sZW5ndGgpICsgIjxicj5G
YWlsZWQ6ICIgKyBmYWlsZWRUZXN0cy5sZW5ndGg7CisgICAgaWYgKGZhaWxlZFRlc3RzLmxlbmd0
aCA+IDApIHsKKyAgICAgICAgcmVzdWx0Q29udGVudCArPSAiPGJyPjxicj5GYWlsZWQgY2FzZXM6
IgorICAgICAgICBmYWlsZWRUZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKKyAgICAgICAg
ICAgIHJlc3VsdENvbnRlbnQgKz0gIjxicj48YSBocmVmPVwiIiArIGZpbGVzW2l0ZW1dICsgIlwi
PiIgKyBmaWxlc1tpdGVtXSArICI8L2E+IjsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHJlc3Vs
dC5pbm5lckhUTUwgPSByZXN1bHRDb250ZW50OworfQorCitmdW5jdGlvbiBydW5UZXN0KGZpbGVz
LCBjdXJyZW50VGVzdEluZGV4KSB7CisgICAgcHJpbnRSZXN1bHQoZmlsZXMsIGN1cnJlbnRUZXN0
SW5kZXgpOworICAgIGxldCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKKyAgICBpZnJhbWUuc3JjID0gZmlsZXNbY3VycmVudFRlc3RJbmRleF07CisgICAgaWZyYW1l
LmlkID0gInRlc3RGcmFtZSI7CisgICAgaWZyYW1lLndpZHRoID0gd2luZG93LmlubmVyV2lkdGg7
CisgICAgaWZyYW1lLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDsKKyAgICBpZnJhbWUub25s
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCB0ZXN0RnJhbWUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdEZyYW1lIik7CisgICAgICAgIGxldCBwYXNzZWQgPSBydW5MYXlvdXQo
dGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cpOworICAgICAgICB0ZXN0RnJhbWUucmVtb3ZlKCk7Cisg
ICAgICAgIGlmICghcGFzc2VkKQorICAgICAgICAgICAgZmFpbGVkVGVzdHMucHVzaChjdXJyZW50
VGVzdEluZGV4KTsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmIChjdXJyZW50VGVzdEluZGV4IDwgZmlsZXMubGVuZ3RoIC0gMSkKKyAgICAgICAgICAgICAg
ICBydW5UZXN0KGZpbGVzLCArK2N1cnJlbnRUZXN0SW5kZXgpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHByaW50UmVzdWx0KGZpbGVzKTsKKyAgICAgICAgfSwgMCk7CisgICAg
fTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Cit9CisKK2Z1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgIHJ1blRlc3QoZGVidWdUaGlzLmxlbmd0aCA/IGRlYnVnVGhpcyA6
IHRlc3RGaWxlcywgMCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdHMoKSI+Cis8cHJlIGlkPXJlc3VsdD48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5saW5lLWNvbnRlbnQtc2ltcGxlLmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2lubGluZS1jb250ZW50LXNpbXBsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYxNzQ3OGM1MWQ2OTdlMWU1ZjNkMzhjNjBiZmIxY2IxOGU5MGY0ZTUKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2lubGluZS1jb250ZW50
LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPGJvZHk+Zm9vYmFyIGZvb2JhciBmb29iYXI8
L2JvZHk+Cis8c2NyaXB0PgorYWxlcnQoZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCk7Cis8L3Nj
cmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvdGVzdC9pbnRydWRpbmctbGVmdC1mbG9hdC1zaW1wbGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZTFlNTAwMjg2MDA3MGZjZDRmZTQwOTA1NGJiNzkwYzE3ZjlhZDY0Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbnRydWRpbmctbGVmdC1mbG9h
dC1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4
cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVm
dDsgd2lkdGg6IDExcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdp
ZHRoOiAxMnB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsg
d2lkdGg6IDEzcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJm
bG9hdDogbGVmdDsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPGRpdiBzdHls
ZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDgwcHg7Ij48L2Rpdj4KKzxkaXYg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9tYXJnaW4tY29sbGFwc2UtYm90dG9tLWJvdHRvbS5odG1sIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtYm90dG9tLWJvdHRvbS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFhMjcxNWViY2RmOGNkOTJhMTYyOTc2ZTExNDc5NDE1ODIwN2Q2NWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tYm90
dG9tLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4Owor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMHB4
OyBoZWlnaHQ6IGF1dG87Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMjBw
eDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgYm9yZGVyOiAw
cHggc29saWQgdHJhbnNwYXJlbnQ7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIw
cHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tbmVzdGVkLmh0bWwgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tbmVzdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmRjOTlhNjU0NGM0MzI5ZWJmYjk4MDJkMWViNTM4MDFhYmZmMjY1ZQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1u
ZXN0ZWQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIw
cHg7IGhlaWdodDogYXV0bzsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAx
cHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9
Im1hcmdpbi1ib3R0b206IDVweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAg
ICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAyMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJv
dHRvbTogMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgICAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IHdpZHRoOiAyMHB4OyBoZWln
aHQ6IDIwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWZpcnN0LWxhc3QtYXJlLWZsb2F0aW5n
Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1maXJzdC1s
YXN0LWFyZS1mbG9hdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMmVkNDc0MjUzMTY2MTY0YjczZmRh
ZGZlMjkxNzM2YTcwYTRjNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1maXJzdC1sYXN0LWFyZS1mbG9hdGluZy5odG1sCkBAIC0w
LDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Jv
ZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsi
PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4
OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAxMHB4OyB3aWR0aDogNTBweDsgaGVp
Z2h0OiA1MHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogMzBweDsgd2lkdGg6IDUwcHg7
IGhlaWdodDogNTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0
aDogMjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9Im1hcmdp
bjogNDBweDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFw
c2Utc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBz
ZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWQ2ZjYyNjkwMTkwMjgwNjQ1M2Q2Nzg4MDk0NTli
OTBiODNiMWM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9t
YXJnaW4tY29sbGFwc2Utc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7Cisg
ICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
c3R5bGU9Im1hcmdpbjogMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4
OyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS10b3AtbmVzdGVkLmh0bWwgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS10b3AtbmVzdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzkyZTE3ZGY3NjYyMjE0NWIzMmMxMmVhNzFlYTE1YmFlNDBjM2RiZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNl
LXRvcC1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5n
OiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0ibWFy
Z2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDYwcHg7IGhlaWdodDogNDBweDsiPgorICAgICAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogNjBweDsgaGVpZ2h0OiA0MHB4
OyI+CisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4OyB3aWR0aDog
NjBweDsgaGVpZ2h0OiA0MHB4OyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9t
YXJnaW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMtcGFkZGluZy1ib3JkZXIuaHRtbCBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXdoZW4tY2hpbGQtaGFzLXBhZGRp
bmctYm9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIwZjYyMTFjZTI0NGVjNzAxZDIxY2NkMDZhYmIw
N2I4Y2RkMjNkZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
bWFyZ2luLWNvbGxhcHNlLXdoZW4tY2hpbGQtaGFzLXBhZGRpbmctYm9yZGVyLmh0bWwKQEAgLTAs
MCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9k
eSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwcHg7Ij4K
KyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IC0xMHB4OyBwYWRkaW5nOiA1cHg7IHdpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAyMDBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMjAw
cHg7IGhlaWdodDogMjBweDsiPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogMTBweDsgYm9yZGVy
OiA1cHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMDBweDsiPjwvZGl2PgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdp
bi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4dC5odG1sIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9jay1mb3JtYXR0aW5nLWNv
bnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTVkNGVmOTY1NzY1Y2EzOWU5Mjc3NGViMDhlYzhlNGQy
OWU3NjUwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJn
aW4tY29sbGFwc2Utd2l0aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbApAQCAtMCwwICsx
LDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsK
KyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDIwcHg7
IGhlaWdodDogYXV0bzsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4
OyB3aWR0aDogMjBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMTBweDsiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9tYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQyLmh0bWwg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZv
cm1hdHRpbmctY29udGV4dDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTU0MTg5MjE3YzgyNWI1ODkzMDMy
NTY0MzkyM2FkYzI0YjVkMzYyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQyLmh0
bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9Im92ZXJmbG93OiBoaWRkZW47
IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IGF1dG87Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2lu
LWJvdHRvbTogMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogNTBweDsiPgorICAgICAgICAgICAg
PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogNDBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogNTBw
eDsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJv
dmVyZmxvdzogaGlkZGVuOyB3aWR0aDogNTBweDsgaGVpZ2h0OiBhdXRvOyI+CisgICAgICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDUwcHg7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDUwcHg7
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogNjBweDsgd2lkdGg6IDQw
cHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9Im1h
cmdpbi10b3A6IDUwcHg7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2lu
LWxlZnQtcmlnaHQtc2l6aW5nLW91dC1vZi1mbG93Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L21hcmdpbi1sZWZ0LXJpZ2h0LXNpemluZy1vdXQtb2YtZmxvdy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNlZTJkYjEwZmJhYzZkYTQwNzA5YTg5N2RhZTY3MGIzYWNkMzA1NmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1sZWZ0LXJpZ2h0LXNpemlu
Zy1vdXQtb2YtZmxvdy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRp
bmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyBsZWZ0OiAxMHB4OyBtYXJnaW4tbGVmdDogMjAwcHg7
IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IHRvcDogNjBweDsgcmlnaHQ6IDEwcHg7IG1hcmdpbi1yaWdodDogNDAwcHg7
IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IHRvcDogOTBweDsgbWFyZ2luLWxlZnQ6IDQwMHB4OyB3aWR0aDogMTAwcHg7
IGhlaWdodDogNTBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0
b3A6IDE0MHB4OyBtYXJnaW4tcmlnaHQ6IDQwMHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogNTBw
eDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE5MHB4OyBt
YXJnaW46IDQwMHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4t
bGVmdC1yaWdodC1zaXppbmcuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2lu
LWxlZnQtcmlnaHQtc2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU3NzU4YmRiMTg1MGM3ZjhjMTRm
ZjlmNzQxMTIxMzMyNDFkZDVmMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFy
Z2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDIwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogLTIwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4K
KzxkaXYgc3R5bGU9Im1hcmdpbi1yaWdodDogMjAwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4K
KzxkaXYgc3R5bGU9Im1hcmdpbi1yaWdodDogLTIwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4K
KzxkaXYgc3R5bGU9Im1hcmdpbjogMjAwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2lu
LXByb3BhZ2F0aW9uLXNpbXBsZS1jb250ZW50LWhlaWdodC5odG1sIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9tYXJnaW4tcHJvcGFnYXRpb24tc2ltcGxlLWNvbnRlbnQtaGVpZ2h0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWI3MDc4ZmI0ZDkyMzkzYjFkMTU4ZTNjYTBlM2U0YTEzMmY0ZDU4OQotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXByb3BhZ2F0
aW9uLXNpbXBsZS1jb250ZW50LWhlaWdodC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij48ZGl2IHN0eWxlPSJ3aWR0aDogMTBw
eDsgaGVpZ2h0OiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4OyI+PC9kaXY+PC9kaXY+Cis8ZGl2IHN0
eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4OyI+PGRpdiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdo
dDogMTBweDsgbWFyZ2luLWJvdHRvbTogMjBweDsiPjwvZGl2PjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2libGlu
Zy1jb2xsYXBzZS1wcm9wYWdhdGVkLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21h
cmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWM1YmM2
MjE4ZTQ5YTlmZjMwNGQxNTMyNDY2MGIzYzZhODZlYTYzCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2libGluZy1jb2xsYXBzZS1wcm9wYWdhdGVk
Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdo
dDogYXV0bzsiPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDE1MHB4OyB3aWR0aDog
MTBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9Im1hcmdpbi10
b3A6IC0xMDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9kaXY+CisKKzxkaXYg
c3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFy
Z2luLWJvdHRvbTogMTUwcHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwv
ZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogLTEwMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdo
dDogMjAwcHg7Ij48L2Rpdj4KKworPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTUwcHg7IHdp
ZHRoOiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tdG9w
OiAtMTAwcHg7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPjwvZGl2PgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1z
aW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXNpbXBsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY4NjVlODI3ZDg0MmZiZmNhZTE3ZjZjNzNjYTYwOGM4YmVlMTg5OTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1zaW1wbGUu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyB3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9Im1hcmdpbi1i
b3R0b206IDIwcHg7IHdpZHRoOiA2MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5
bGU9Im1hcmdpbi10b3A6IDIwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9uZWdhdGl2ZS1tYXJnaW4tc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L25lZ2F0aXZlLW1hcmdpbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGNiODYzOTk0NDE4ODQ4
MWQ5NTZiYTg3YWYyYjYzMGQzMGI1M2NlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9uZWdhdGl2ZS1tYXJnaW4tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAg
bWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRp
diBzdHlsZT0ibWFyZ2luOiAtNHB4OyBwYWRkaW5nOiA1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6
IDIwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luOiAtMTBweDsgd2lkdGg6
IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAtNHB4OyBw
YWRkaW5nOiA1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2Pgor
PGRpdiBzdHlsZT0ibWFyZ2luOiAtMTBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+
CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAtNHB4OyBwYWRkaW5nOiA1cHg7IHdpZHRoOiAxMHB4
OyBoZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAtNHB4OyBwYWRk
aW5nOiA1cHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9wYWRkaW5nLW5lc3RlZC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9w
YWRkaW5nLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMzZjNDI5ZDRkZjdmN2I0NDAxZmU1ODk1
NDQ0N2MwMjlhY2I1MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L3BhZGRpbmctbmVzdGVkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOiAy
MHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwYWRk
aW5nOiAxMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcGFk
ZGluZy1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcGFkZGluZy1zaW1w
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYmMwYTRkOWVjN2Q0ZGZlYmIxZmQ1YjU4YmZiYjJjMjVlNjIy
YjRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9wYWRkaW5n
LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8td2l0aC1wYXJlbnQtb2Zm
c2V0Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8td2l0aC1w
YXJlbnQtb2Zmc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QxYTU1NDlhNjFkNzVkZWEyY2Y1NmM0YWEy
ZjZmZWQxNmI4MDRhYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvcmVsYXRpdmUtYXV0by13aXRoLXBhcmVudC1vZmZzZXQuaHRtbApAQCAtMCwwICsxLDE0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBt
YXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IGF1dG87IHRvcDogYXV0
bzsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1hdXRvLmh0bWwg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNGRmMzM3ZWE4NjI2OTdmN2Y2ZjdkMThjMzQ0Y2ExZjdmMGVhNDY3Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1hdXRvLmh0bWwKQEAgLTAs
MCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogYXV0bzsgdG9wOiBhdXRv
OyB3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWJvdHRvbS5odG1s
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1ib3R0b20uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNmUyNjY4ZmY0Yjg4NTViMzNmMTk4Zjg3N2YzNWQyNDY4MmYwMWZkCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1ib3R0b20uaHRtbApA
QCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDog
YXV0bzsgYm90dG9tOiA4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxk
aXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAxMHB4OyBib3R0b206IDE4cHg7IHdp
ZHRoOiAzMHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsgYm90dG9tOiAyOHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiA3MHB4OyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L3JlbGF0aXZlLXJpZ2h0Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZl
LXJpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjllZWFhODEyMzE3MGU4YTZlM2QwMzdiNzIzZTBjZmNj
ZWY4ODVjZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVs
YXRpdmUtcmlnaHQuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5n
OiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlv
bjogcmVsYXRpdmU7IGxlZnQ6IGF1dG87IHJpZ2h0OiA4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6
IDcwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtc2libGluZ3MuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL3Rlc3QvcmVsYXRpdmUtc2libGluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzVlYTA5MjJhZDQ2
YWIxYzNhNGExZWZjMjMxOWQ3ZTg0OWU0YTFhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1zaWJsaW5ncy5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1h
cmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgcmlnaHQ6IDhweDsgd2lkdGg6IDMw
cHg7IGhlaWdodDogNzBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZl
OyByaWdodDogOHB4OyB0b3A6IDEwMHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IDhweDsgd2lkdGg6IDMw
cHg7IGhlaWdodDogMzBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDEzMHB4OyBoZWln
aHQ6IDQwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDog
OHB4OyB0b3A6IDIwcHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRp
dmUtc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLXNpbXBs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI4Yzc1ODA3MmQ3MmFjOWJjZGIyNGRmODk0Y2MzMTg5YmFhYzll
MzIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZl
LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPC9oZWFkPgorPGJvZHk+PGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyI+PC9kaXY+PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335353</attachid>
            <date>2018-03-08 15:09:31 -0800</date>
            <delta_ts>2018-03-09 11:10:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183462-20180308150930.patch</filename>
            <type>text/plain</type>
            <size>216026</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDM2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTRlNzBkNGY4ZmE1ODhkMWUxN2RmZmU5YTQ2YTZmZjE4
YTY2ZWVmZi4uM2I3NDFkYTFlODVlN2EwODIzNmQ0MDMwNTBhYjlhYTQzMmQwMWY4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
OSBAQAorMjAxOC0wMy0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtMYXlvdXRSZWxvYWRlZF0gSW5pdGlhbCBjb21taXQgLWJsb2NrIGZvcm1hdHRpbmcgY29u
dGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MzQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNl
ZSBSRUFETUUubWQKKworICAgICAgICAqIExheW91dFJlbG9hZGVkL0Jsb2NrQ29udGFpbmVyLmpz
OiBBZGRlZC4KKyAgICAgICAgKEJsb2NrQ29udGFpbmVyKToKKyAgICAgICAgKEJsb2NrQ29udGFp
bmVyLnByb3RvdHlwZS5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAg
ICAgKiBMYXlvdXRSZWxvYWRlZC9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQucHJvdG90eXBlLmNvbXB1dGVXaWR0aCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LnByb3RvdHlwZS5jb21wdXRlSGVpZ2h0KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQucHJvdG90eXBlLm1hcmdpblRvcCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LnByb3RvdHlwZS5tYXJnaW5Cb3R0b20pOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5wcm90b3R5cGUuX2NvbXB1dGVTdGF0aWNQb3NpdGlvbik6CisgICAgICAgIChCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4p
OgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX3BsYWNlT3V0T2ZG
bG93RGVzY2VuZGFudHMpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5
cGUuX2NvbXB1dGVPdXRPZkZsb3dXaWR0aCk6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LnByb3RvdHlwZS5fY29tcHV0ZUZsb2F0aW5nV2lkdGgpOgorICAgICAgICAoQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVJbkZsb3dXaWR0aCk6CisgICAgICAgIChC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZU91dE9mRmxvd0hlaWdodCk6
CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZUZsb2F0
aW5nSGVpZ2h0KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9j
b21wdXRlSW5GbG93SGVpZ2h0KToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJv
dG90eXBlLl9jb21wdXRlSG9yaXpvbnRhbENvbnN0cmFpbnQpOgorICAgICAgICAoQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2NvbXB1dGVDb250ZW50SGVpZ2h0KToKKyAgICAgICAg
KEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9jb21wdXRlSW5GbG93UG9zaXRpb25l
ZFBvc2l0aW9uKToKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9j
b21wdXRlT3V0T2ZGbG93UG9zaXRpb24pOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5wcm90b3R5cGUuX3Nocmlua1RvRml0V2lkdGgpOgorICAgICAgICAqIExheW91dFJlbG9hZGVk
L0Jsb2NrTWFyZ2luQ29sbGFwc2UuanM6IEFkZGVkLgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xs
YXBzZS5tYXJnaW5Ub3ApOgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5tYXJnaW5Cb3R0
b20pOgorICAgICAgICAoQmxvY2tNYXJnaW5Db2xsYXBzZS5faXNNYXJnaW5Ub3BDb2xsYXBzZWRX
aXRoU2libGluZyk6CisgICAgICAgIChCbG9ja01hcmdpbkNvbGxhcHNlLl9pc01hcmdpbkJvdHRv
bUNvbGxhcHNlZFdpdGhTaWJsaW5nKToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX2lz
TWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBhcmVudCk6CisgICAgICAgIChCbG9ja01hcmdpbkNvbGxh
cHNlLl9pc01hcmdpbkJvdHRvbUNvbGxhcHNlZFdpdGhQYXJlbnQpOgorICAgICAgICAoQmxvY2tN
YXJnaW5Db2xsYXBzZS5fbm9uQ29sbGFwc2VkTWFyZ2luVG9wKToKKyAgICAgICAgKEJsb2NrTWFy
Z2luQ29sbGFwc2UuX25vbkNvbGxhcHNlZE1hcmdpbkJvdHRvbSk6CisgICAgICAgIChCbG9ja01h
cmdpbkNvbGxhcHNlLl9jb2xsYXBzZWRNYXJnaW5Ub3BGcm9tRmlyc3RDaGlsZCk6CisgICAgICAg
IChCbG9ja01hcmdpbkNvbGxhcHNlLl9jb2xsYXBzZWRNYXJnaW5Cb3R0b21Gcm9tTGFzdENoaWxk
KToKKyAgICAgICAgKEJsb2NrTWFyZ2luQ29sbGFwc2UuX21hcmdpblZhbHVlKToKKyAgICAgICAg
KEJsb2NrTWFyZ2luQ29sbGFwc2UuX2hhc0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbSk6Cisg
ICAgICAgIChCbG9ja01hcmdpbkNvbGxhcHNlKToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9C
b3guanM6IEFkZGVkLgorICAgICAgICAoQm94KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaWQp
OgorICAgICAgICAoQm94LnByb3RvdHlwZS5zZXRSZW5kZXJlck5hbWUpOgorICAgICAgICAoQm94
LnByb3RvdHlwZS5uYW1lKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUubm9kZSk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLnBhcmVudCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLm5leHRTaWJs
aW5nKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUubmV4dEluRmxvd1NpYmxpbmcpOgorICAgICAg
ICAoQm94LnByb3RvdHlwZS5wcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoQm94LnByb3RvdHlw
ZS5wcmV2aW91c0luRmxvd1NpYmxpbmcpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5zZXRQYXJl
bnQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5zZXROZXh0U2libGluZyk6CisgICAgICAgIChC
b3gucHJvdG90eXBlLnNldFByZXZpb3VzU2libGluZyk6CisgICAgICAgIChCb3gucHJvdG90eXBl
LnJlY3QpOgorICAgICAgICAoQm94LnByb3RvdHlwZS50b3BMZWZ0KToKKyAgICAgICAgKEJveC5w
cm90b3R5cGUuYm90dG9tUmlnaHQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5zZXRUb3BMZWZ0
KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0U2l6ZSk6CisgICAgICAgIChCb3gucHJvdG90
eXBlLnNldFdpZHRoKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuc2V0SGVpZ2h0KToKKyAgICAg
ICAgKEJveC5wcm90b3R5cGUuaXNDb250YWluZXIpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5p
c0Jsb2NrTGV2ZWxCb3gpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0Jsb2NrQ29udGFpbmVy
Qm94KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNJbmxpbmVMZXZlbEJveCk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLnNldElzQW5vbnltb3VzKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUu
aXNBbm9ueW1vdXMpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5lc3RhYmxpc2hlc0Zvcm1hdHRp
bmdDb250ZXh0KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuZXN0YWJsaXNoZWRGb3JtYXR0aW5n
Q29udGV4dCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmVzdGFibGlzaGVzSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc1Bvc2l0aW9uZWQpOgor
ICAgICAgICAoQm94LnByb3RvdHlwZS5pc1JlbGF0aXZlUG9zaXRpb25lZCk6CisgICAgICAgIChC
b3gucHJvdG90eXBlLmlzQWJzb2x1dGVQb3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5
cGUuaXNGaXhlZFBvc2l0aW9uZWQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5pc0luRmxvdyk6
CisgICAgICAgIChCb3gucHJvdG90eXBlLmlzT3V0T2ZGbG93UG9zaXRpb25lZCk6CisgICAgICAg
IChCb3gucHJvdG90eXBlLmlzSW5GbG93UG9zaXRpb25lZCk6CisgICAgICAgIChCb3gucHJvdG90
eXBlLmlzRmxvYXRpbmdQb3NpdGlvbmVkKToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuaXNGbG9h
dGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCk6CisgICAgICAgIChCb3gucHJvdG90eXBlLmlzUm9v
dEVsZW1lbnQpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5jb250YWluaW5nQmxvY2spOgorICAg
ICAgICAoQm94LnByb3RvdHlwZS5ib3JkZXJCb3gpOgorICAgICAgICAoQm94LnByb3RvdHlwZS5w
YWRkaW5nQm94KToKKyAgICAgICAgKEJveC5wcm90b3R5cGUuY29udGVudEJveCk6CisgICAgICAg
ICogTGF5b3V0UmVsb2FkZWQvQ29udGFpbmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKENvbnRhaW5l
cik6CisgICAgICAgIChDb250YWluZXIucHJvdG90eXBlLmlzQ29udGFpbmVyKToKKyAgICAgICAg
KENvbnRhaW5lci5wcm90b3R5cGUuc2V0Rmlyc3RDaGlsZCk6CisgICAgICAgIChDb250YWluZXIu
cHJvdG90eXBlLnNldExhc3RDaGlsZCk6CisgICAgICAgIChDb250YWluZXIucHJvdG90eXBlLmZp
cnN0Q2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5maXJzdEluRmxvd0NoaWxk
KToKKyAgICAgICAgKENvbnRhaW5lci5wcm90b3R5cGUubGFzdENoaWxkKToKKyAgICAgICAgKENv
bnRhaW5lci5wcm90b3R5cGUubGFzdEluRmxvd0NoaWxkKToKKyAgICAgICAgKENvbnRhaW5lci5w
cm90b3R5cGUuaGFzQ2hpbGQpOgorICAgICAgICAoQ29udGFpbmVyLnByb3RvdHlwZS5oYXNJbkZs
b3dDaGlsZCk6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvRmxvYXRpbmdDb250ZXh0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dCk6CisgICAgICAgIChGbG9hdGluZ0NvbnRl
eHQucHJvdG90eXBlLmNvbXB1dGVQb3NpdGlvbik6CisgICAgICAgIChGbG9hdGluZ0NvbnRleHQu
cHJvdG90eXBlLmJvdHRvbSk6CisgICAgICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBlLl9w
b3NpdGlvbkZvckZsb2F0aW5nKToKKyAgICAgICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUu
X3Bvc2l0aW9uRm9yQ2xlYXIpOgorICAgICAgICAoRmxvYXRpbmdDb250ZXh0LnByb3RvdHlwZS5f
Y29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEludHJ1ZGluZ0Zsb2F0cyk6CisgICAgICAgIChGbG9hdGlu
Z0NvbnRleHQucHJvdG90eXBlLl9hZGRGbG9hdGluZyk6CisgICAgICAgIChGbG9hdGluZ0NvbnRl
eHQucHJvdG90eXBlLl9maW5kSW5uZXJNb3N0TGVmdEFuZFJpZ2h0KToKKyAgICAgICAgKEZsb2F0
aW5nQ29udGV4dC5wcm90b3R5cGUuX21vdmVUb05leHRWZXJ0aWNhbFBvc2l0aW9uKToKKyAgICAg
ICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2F2YWlsYWJsZVNwYWNlKToKKyAgICAgICAg
KEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2ZpbmRGbG9hdGluZ0F0VmVydGljYWxQb3NpdGlv
bik6CisgICAgICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBlLl9pc0VtcHR5KToKKyAgICAg
ICAgKEZsb2F0aW5nQ29udGV4dC5wcm90b3R5cGUuX2FkanVzdGVkRmxvYXRpbmdQb3NpdGlvbik6
CisgICAgICAgIChGbG9hdGluZ0NvbnRleHQucHJvdG90eXBlLl9ib3R0b20pOgorICAgICAgICAo
RmxvYXRpbmdDb250ZXh0LnByb3RvdHlwZS5fZm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAq
IExheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0LmpzOiBBZGRlZC4KKyAgICAgICAgKEZv
cm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5y
b290Q29udGFpbmVyKToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5mbG9h
dGluZ0NvbnRleHQpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmxheW91
dCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuY29tcHV0ZVdpZHRoKToK
KyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5jb21wdXRlSGVpZ2h0KToKKyAg
ICAgICAgKEZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5tYXJnaW5Ub3ApOgorICAgICAgICAo
Rm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLm1hcmdpbkxlZnQpOgorICAgICAgICAoRm9ybWF0
dGluZ0NvbnRleHQucHJvdG90eXBlLm1hcmdpbkJvdHRvbSk6CisgICAgICAgIChGb3JtYXR0aW5n
Q29udGV4dC5wcm90b3R5cGUubWFyZ2luUmlnaHQpOgorICAgICAgICAoRm9ybWF0dGluZ0NvbnRl
eHQucHJvdG90eXBlLmFic29sdXRlTWFyZ2luQm94KToKKyAgICAgICAgKEZvcm1hdHRpbmdDb250
ZXh0LnByb3RvdHlwZS5hYnNvbHV0ZUJvcmRlckJveCk6CisgICAgICAgIChGb3JtYXR0aW5nQ29u
dGV4dC5wcm90b3R5cGUuYWJzb2x1dGVQYWRkaW5nQm94KToKKyAgICAgICAgKEZvcm1hdHRpbmdD
b250ZXh0LnByb3RvdHlwZS5hYnNvbHV0ZUNvbnRlbnRCb3gpOgorICAgICAgICAqIExheW91dFJl
bG9hZGVkL0luaXRpYWxCbG9ja0NvbnRhaW5lci5qczogQWRkZWQuCisgICAgICAgIChJbml0aWFs
QmxvY2tDb250YWluZXIpOgorICAgICAgICAoSW5pdGlhbEJsb2NrQ29udGFpbmVyLnByb3RvdHlw
ZS5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAoSW5pdGlhbEJs
b2NrQ29udGFpbmVyLnByb3RvdHlwZS5wYWRkaW5nQm94KToKKyAgICAgICAgKEluaXRpYWxCbG9j
a0NvbnRhaW5lci5wcm90b3R5cGUuY29udGVudEJveCk6CisgICAgICAgICogTGF5b3V0UmVsb2Fk
ZWQvSW5saW5lQm94LmpzOiBBZGRlZC4KKyAgICAgICAgKElubGluZUJveCk6CisgICAgICAgIChJ
bmxpbmVCb3gucHJvdG90eXBlLnNldFRleHQpOgorICAgICAgICAoSW5saW5lQm94LnByb3RvdHlw
ZS50ZXh0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5qczogQWRkZWQuCisgICAgICAgIChJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAg
IChJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKElu
bGluZUZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5faGFuZGxlSW5saW5lQm94KToKKyAgICAg
ICAgKElubGluZUZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5faGFuZGxlVGV4dCk6CisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvTGF5b3V0LmpzOiBBZGRlZC4KKyAgICAgICAgKGxheW91dCk6
CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvTGF5b3V0Q29udGV4dC5qczogQWRkZWQuCisgICAg
ICAgIChMYXlvdXRDb250ZXh0KToKKyAgICAgICAgKExheW91dENvbnRleHQucHJvdG90eXBlLmxh
eW91dEZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlvdXRS
ZWxvYWRlZC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGE6IEFkZGVkLgorICAg
ICAgICAqIExheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL3hjc2hhcmVk
ZGF0YS9JREVXb3Jrc3BhY2VDaGVja3MucGxpc3Q6IEFkZGVkLgorICAgICAgICAqIExheW91dFJl
bG9hZGVkL1JFQURNRS5tZDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvVGV4dC5q
czogQWRkZWQuCisgICAgICAgIChUZXh0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9UcmVl
QnVpbGRlci5qczogQWRkZWQuCisgICAgICAgIChUcmVlQnVpbGRlci5wcm90b3R5cGUuY3JlYXRl
VHJlZSk6CisgICAgICAgIChUcmVlQnVpbGRlci5wcm90b3R5cGUuX2NyZWF0ZUFuZEF0dGFjaEJv
eCk6CisgICAgICAgIChUcmVlQnVpbGRlci5wcm90b3R5cGUuX2FwcGVuZENoaWxkKToKKyAgICAg
ICAgKFRyZWVCdWlsZGVyLnByb3RvdHlwZS5fZmluZEJveCk6CisgICAgICAgIChUcmVlQnVpbGRl
ci5wcm90b3R5cGUuX2ZpbmROb2RlKToKKyAgICAgICAgKFRyZWVCdWlsZGVyKToKKyAgICAgICAg
KiBMYXlvdXRSZWxvYWRlZC9VdGlscy5qczogQWRkZWQuCisgICAgICAgIChMYXlvdXRQb2ludCk6
CisgICAgICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUuc2V0TGVmdCk6CisgICAgICAgIChMYXlv
dXRQb2ludC5wcm90b3R5cGUuc2V0VG9wKToKKyAgICAgICAgKExheW91dFBvaW50LnByb3RvdHlw
ZS5sZWZ0KToKKyAgICAgICAgKExheW91dFBvaW50LnByb3RvdHlwZS50b3ApOgorICAgICAgICAo
TGF5b3V0UG9pbnQucHJvdG90eXBlLnNoaWZ0TGVmdCk6CisgICAgICAgIChMYXlvdXRQb2ludC5w
cm90b3R5cGUuc2hpZnRUb3ApOgorICAgICAgICAoTGF5b3V0UG9pbnQucHJvdG90eXBlLm1vdmVC
eSk6CisgICAgICAgIChMYXlvdXRQb2ludC5wcm90b3R5cGUuZXF1YWwpOgorICAgICAgICAoTGF5
b3V0UG9pbnQucHJvdG90eXBlLmNsb25lKToKKyAgICAgICAgKExheW91dFNpemUpOgorICAgICAg
ICAoTGF5b3V0U2l6ZS5wcm90b3R5cGUuc2V0V2lkdGgpOgorICAgICAgICAoTGF5b3V0U2l6ZS5w
cm90b3R5cGUuc2V0SGVpZ2h0KToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBlLndpZHRo
KToKKyAgICAgICAgKExheW91dFNpemUucHJvdG90eXBlLmhlaWdodCk6CisgICAgICAgIChMYXlv
dXRTaXplLnByb3RvdHlwZS5ncm93QnkpOgorICAgICAgICAoTGF5b3V0U2l6ZS5wcm90b3R5cGUu
c2hyaW5rQnkpOgorICAgICAgICAoTGF5b3V0U2l6ZS5wcm90b3R5cGUuaXNFbXB0eSk6CisgICAg
ICAgIChMYXlvdXRTaXplLnByb3RvdHlwZS5lcXVhbCk6CisgICAgICAgIChMYXlvdXRTaXplLnBy
b3RvdHlwZS5jbG9uZSk6CisgICAgICAgIChMYXlvdXRSZWN0KToKKyAgICAgICAgKExheW91dFJl
Y3QucHJvdG90eXBlLnNldFRvcCk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5zZXRM
ZWZ0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldEJvdHRvbSk6CisgICAgICAg
IChMYXlvdXRSZWN0LnByb3RvdHlwZS5zZXRSaWdodCk6CisgICAgICAgIChMYXlvdXRSZWN0LnBy
b3RvdHlwZS5sZWZ0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnRvcCk6CisgICAg
ICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5ib3R0b20pOgorICAgICAgICAoTGF5b3V0UmVjdC5w
cm90b3R5cGUucmlnaHQpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuc2V0VG9wTGVm
dCk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS50b3BMZWZ0KToKKyAgICAgICAgKExh
eW91dFJlY3QucHJvdG90eXBlLnRvcFJpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90
eXBlLmJvdHRvbVJpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldFdpZHRo
KToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90eXBlLnNldEhlaWdodCk6CisgICAgICAgIChM
YXlvdXRSZWN0LnByb3RvdHlwZS5zZXRTaXplKToKKyAgICAgICAgKExheW91dFJlY3QucHJvdG90
eXBlLnNpemUpOgorICAgICAgICAoTGF5b3V0UmVjdC5wcm90b3R5cGUud2lkdGgpOgorICAgICAg
ICAoTGF5b3V0UmVjdC5wcm90b3R5cGUuaGVpZ2h0KToKKyAgICAgICAgKExheW91dFJlY3QucHJv
dG90eXBlLmdyb3dCeSk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5zaHJpbmtCeSk6
CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5tb3ZlQnkpOgorICAgICAgICAoTGF5b3V0
UmVjdC5wcm90b3R5cGUuaXNFbXB0eSk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5l
cXVhbCk6CisgICAgICAgIChMYXlvdXRSZWN0LnByb3RvdHlwZS5pbnRlcnNlY3RzKToKKyAgICAg
ICAgKExheW91dFJlY3QucHJvdG90eXBlLmNvbnRhaW5zKToKKyAgICAgICAgKExheW91dFJlY3Qu
cHJvdG90eXBlLmNsb25lKToKKyAgICAgICAgKEFTU0VSVF9OT1RfUkVBQ0hFRCk6CisgICAgICAg
IChBU1NFUlQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRWYWx1ZSk6CisgICAgICAgIChVdGls
cy5wcm9wZXJ0eUlzQXV0byk6CisgICAgICAgIChVdGlscy5pc1dpZHRoQXV0byk6CisgICAgICAg
IChVdGlscy5pc0hlaWdodEF1dG8pOgorICAgICAgICAoVXRpbHMuaXNUb3BBdXRvKToKKyAgICAg
ICAgKFV0aWxzLmlzTGVmdEF1dG8pOgorICAgICAgICAoVXRpbHMuaXNCb3R0b21BdXRvKToKKyAg
ICAgICAgKFV0aWxzLmlzUmlnaHRBdXRvKToKKyAgICAgICAgKFV0aWxzLndpZHRoKToKKyAgICAg
ICAgKFV0aWxzLmhlaWdodCk6CisgICAgICAgIChVdGlscy50b3ApOgorICAgICAgICAoVXRpbHMu
Ym90dG9tKToKKyAgICAgICAgKFV0aWxzLmxlZnQpOgorICAgICAgICAoVXRpbHMucmlnaHQpOgor
ICAgICAgICAoVXRpbHMuaGFzQm9yZGVyVG9wKToKKyAgICAgICAgKFV0aWxzLmhhc0JvcmRlckJv
dHRvbSk6CisgICAgICAgIChVdGlscy5oYXNQYWRkaW5nVG9wKToKKyAgICAgICAgKFV0aWxzLmhh
c1BhZGRpbmdCb3R0b20pOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRNYXJnaW5Ub3ApOgorICAg
ICAgICAoVXRpbHMuY29tcHV0ZWRNYXJnaW5MZWZ0KToKKyAgICAgICAgKFV0aWxzLmNvbXB1dGVk
TWFyZ2luQm90dG9tKToKKyAgICAgICAgKFV0aWxzLmNvbXB1dGVkTWFyZ2luUmlnaHQpOgorICAg
ICAgICAoVXRpbHMuY29tcHV0ZWRCb3JkZXJUb3BMZWZ0KToKKyAgICAgICAgKFV0aWxzLmNvbXB1
dGVkQm9yZGVyQm90dG9tUmlnaHQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRQYWRkaW5nVG9w
TGVmdCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZFBhZGRpbmdCb3R0b21SaWdodCk6CisgICAg
ICAgIChVdGlscy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdUb3ApOgorICAgICAgICAoVXRpbHMu
Y29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nTGVmdCk6CisgICAgICAgIChVdGlscy5jb21wdXRlZEJv
cmRlckFuZFBhZGRpbmdCb3R0b20pOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRCb3JkZXJBbmRQ
YWRkaW5nUmlnaHQpOgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRIb3Jpem9udGFsQm9yZGVyQW5k
UGFkZGluZyk6CisgICAgICAgIChVdGlscy5jb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGlu
Zyk6CisgICAgICAgIChVdGlscy5oYXNDbGVhcik6CisgICAgICAgIChVdGlscy5oYXNDbGVhckxl
ZnQpOgorICAgICAgICAoVXRpbHMuaGFzQ2xlYXJSaWdodCk6CisgICAgICAgIChVdGlscy5oYXND
bGVhckJvdGgpOgorICAgICAgICAoVXRpbHMuaXNCbG9ja0xldmVsRWxlbWVudCk6CisgICAgICAg
IChVdGlscy5pc0Jsb2NrQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgIChVdGlscy5pc0lubGlu
ZUxldmVsRWxlbWVudCk6CisgICAgICAgIChVdGlscy5pc1RhYmxlRWxlbWVudCk6CisgICAgICAg
IChVdGlscy5pc1JlbGF0aXZlUG9zaXRpb25lZCk6CisgICAgICAgIChVdGlscy5pc0Fic29sdXRl
UG9zaXRpb25lZCk6CisgICAgICAgIChVdGlscy5pc0ZpeGVkUG9zaXRpb25lZCk6CisgICAgICAg
IChVdGlscy5pc092ZXJmbG93VmlzaWJsZSk6CisgICAgICAgIChVdGlscy5pc0Zsb2F0aW5nUG9z
aXRpb25lZCk6CisgICAgICAgIChVdGlscy5pc0Zsb2F0aW5nTGVmdCk6CisgICAgICAgIChVdGls
cy5tYXBUb0NvbnRhaW5lcik6CisgICAgICAgIChVdGlscy5tYXBTdGF0aWNUb0Fic29sdXRlKToK
KyAgICAgICAgKFV0aWxzLmNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50cyk6CisgICAgICAgIChV
dGlscy5uZXh0QnJlYWtpbmdPcHBvcnR1bml0eSk6CisgICAgICAgIChVdGlscy5tZWFzdXJlVGV4
dCk6CisgICAgICAgIChVdGlscy5sYXlvdXRUcmVlRHVtcCk6CisgICAgICAgIChVdGlscy5fZHVt
cEJveCk6CisgICAgICAgIChVdGlscy5fZHVtcFRyZWUpOgorICAgICAgICAoVXRpbHMpOgorICAg
ICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2g6IEFk
ZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0NvbnRhaW5l
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNj
L2hlYWRlcnMvQmxvY2tNYXJnaW5Db2xsYXBzZS5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC9taXNjL2hlYWRlcnMvQm94Lmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9Db250YWluZXIuaDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvbWlzYy9oZWFkZXJzL0Zsb2F0aW5nQ29udGV4dC5oOiBBZGRlZC4KKyAgICAgICAgKiBM
YXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRm9ybWF0dGluZ0NvbnRleHQuaDogQWRkZWQuCisg
ICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0NvbnRhaW5l
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvSW5saW5l
Qm94Lmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9MYXlv
dXRDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVy
cy9UZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvVGVzdEhhcm5l
c3MuanM6IEFkZGVkLgorICAgICAgICAodmVyaWZ5TGF5b3V0VHJlZUR1bXApOgorICAgICAgICAo
cnVuTGF5b3V0KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWF1dG8t
d2l0aC1zaWJsaW5nLW1hcmdpbi1ib3R0b20uaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0
UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1ib3R0b20uaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1oZWlnaHQtc3RyZXRjaC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWxlZnQtYXV0by5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWxlZnQtcmlnaHQtdG9w
LWJvdHRvbS1hdXRvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3Qv
YWJzb2x1dGUtbmVzdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rl
c3QvYWJzb2x1dGUtbmVzdGVkMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRl
ZC90ZXN0L2Fic29sdXRlLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxv
YWRlZC90ZXN0L2Fic29sdXRlLXdpZHRoLXNocmluay10by1maXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zdHJldGNoLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2l0aC1pbmxpbmUt
cHJlZmVycmVkLXdpZHRoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rl
c3QvYWJzb2x1dGUtd2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvYWxtb3N0LWludHJ1ZGluZy1sZWZ0LWZs
b2F0LXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Jv
cmRlci1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9m
aXhlZC1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9m
bG9hdC1sZWZ0LXdoZW4tY29udGFpbmVyLWhhcy1wYWRkaW5nLW1hcmdpbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1jbGVhci1ib3RoLXNp
bXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5n
LWJveC1jbGVhci1yaWdodC1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVsdGlwbGUtd2l0aC10b3At
b2Zmc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctYm94LWxlZnQtYW5kLXJpZ2h0LW11bHRpcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXJpZ2h0LXNpbXBsZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNp
YmxpbmdzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctYm94LXdpdGgtY2xlYXItc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJl
bG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtbmV3LWZvcm1hdHRpbmctY29udGV4dC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRo
LXJlbGF0aXZlLXBvc2l0aW9uZWQtc2libGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlv
dXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWxlZnQtcmlnaHQtc2ltcGxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbGVmdC1yaWdodC13aXRoLWFs
bC1tYXJnaW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxv
YXRpbmctbGVmdHMtYW5kLXJpZ2h0cy1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1pbi1ib2R5Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbXVsdGlwbGUtbGVm
dHMtbXVsdGlwbGUtbGluZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlv
dXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBM
YXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZzIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmczLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctd2l0aC1uZXctYmxvY2stZm9ybWF0
dGluZy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3Qv
aW5kZXguaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmxpbmUt
Y29udGVudC1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVz
dC9pbnRydWRpbmctbGVmdC1mbG9hdC1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtYm90dG9tLWJvdHRvbS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20t
bmVzdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2lu
LWNvbGxhcHNlLWZpcnN0LWxhc3QtYXJlLWZsb2F0aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXNpbXBsZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS10b3AtbmVzdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxh
cHNlLXdoZW4tY2hpbGQtaGFzLXBhZGRpbmctYm9yZGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IExheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXdpdGgtYmxvY2stZm9ybWF0dGlu
Zy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvbWFy
Z2luLWNvbGxhcHNlLXdpdGgtYmxvY2stZm9ybWF0dGluZy1jb250ZXh0Mi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1sZWZ0LXJpZ2h0LXNpemluZy1v
dXQtb2YtZmxvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L21h
cmdpbi1sZWZ0LXJpZ2h0LXNpemluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxv
YWRlZC90ZXN0L21hcmdpbi1wcm9wYWdhdGlvbi1zaW1wbGUtY29udGVudC1oZWlnaHQuaHRtbDog
QWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2libGluZy1jb2xs
YXBzZS1wcm9wYWdhdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rl
c3QvbWFyZ2luLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90
ZXN0L25lZ2F0aXZlLW1hcmdpbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0
UmVsb2FkZWQvdGVzdC9wYWRkaW5nLW5lc3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlv
dXRSZWxvYWRlZC90ZXN0L3BhZGRpbmctc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExh
eW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by13aXRoLXBhcmVudC1vZmZzZXQuaHRtbDog
QWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1hdXRvLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYm90dG9tLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtcmlnaHQu
aHRtbDogQWRkZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1zaWJs
aW5ncy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZl
LXNpbXBsZS5odG1sOiBBZGRlZC4KKwogMjAxOC0wMy0wOCAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW1dQRV0gVXBkYXRlIGV4cGVjdGF0aW9ucyBmb3IgQVBJIHRlc3Rz
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9CbG9ja0NvbnRhaW5lci5qcyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL0Jsb2NrQ29udGFpbmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5NDkxYzE5
OTA4ODRmZDY5ZGUwZGNhNGM3OGZmNGZmNTZiN2Q5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9CbG9ja0NvbnRhaW5lci5qcwpAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgQmxvY2tDb250
YWluZXIgZXh0ZW5kcyBDb250YWluZXIgeworICAgIGNvbnN0cnVjdG9yKG5vZGUsIGlkKSB7Cisg
ICAgICAgIHN1cGVyKG5vZGUsIGlkKTsKKyAgICB9CisKKyAgICBlc3RhYmxpc2hlc0lubGluZUZv
cm1hdHRpbmdDb250ZXh0KCkgeworICAgICAgICAvLyA5LjQuMiBJbmxpbmUgZm9ybWF0dGluZyBj
b250ZXh0cworICAgICAgICAvLyBBbiBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IGlzIGVzdGFi
bGlzaGVkIGJ5IGEgYmxvY2sgY29udGFpbmVyIGJveCB0aGF0IGNvbnRhaW5zIG5vIGJsb2NrLWxl
dmVsIGJveGVzLgorICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHRoaXMuZmlyc3RJbkZsb3dDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0SW5GbG93U2libGluZygpKSB7CisgICAgICAg
ICAgICBpZiAoY2hpbGQuaXNCbG9ja0xldmVsQm94KCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLmhhc0luRmxvd0NoaWxkKCk7
CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTRlNzI4YzI4NTA4Nzc5NDMzZWUxMzc1OGM2ZjE0OWRjNTlmNDRi
ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuanMKQEAgLTAsMCArMSwzMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworY2xhc3MgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCBleHRlbmRzIEZv
cm1hdHRpbmdDb250ZXh0IHsKKyAgICBjb25zdHJ1Y3Rvcihyb290KSB7CisgICAgICAgIHN1cGVy
KHJvb3QpOworICAgICAgICAvLyBOZXcgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFsd2F5cyBl
c3RhYmxpc2hlcyBhIG5ldyBmbG9hdGluZyBjb250ZXh0LgorICAgICAgICB0aGlzLm1fZmxvYXRp
bmdDb250ZXh0ID0gbmV3IEZsb2F0aW5nQ29udGV4dCh0aGlzKTsKKyAgICB9CisKKyAgICBsYXlv
dXQobGF5b3V0Q29udGV4dCkgeworICAgICAgICAvLyA5LjQuMSBCbG9jayBmb3JtYXR0aW5nIGNv
bnRleHRzCisgICAgICAgIC8vIEluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LCBib3hlcyBh
cmUgbGFpZCBvdXQgb25lIGFmdGVyIHRoZSBvdGhlciwgdmVydGljYWxseSwgYmVnaW5uaW5nIGF0
IHRoZSB0b3Agb2YgYSBjb250YWluaW5nIGJsb2NrLgorICAgICAgICAvLyBUaGUgdmVydGljYWwg
ZGlzdGFuY2UgYmV0d2VlbiB0d28gc2libGluZyBib3hlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSAn
bWFyZ2luJyBwcm9wZXJ0aWVzLgorICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zIGJldHdlZW4g
YWRqYWNlbnQgYmxvY2stbGV2ZWwgYm94ZXMgaW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQg
Y29sbGFwc2UuCisgICAgICAgIGlmICghdGhpcy5yb290Q29udGFpbmVyKCkuZmlyc3RDaGlsZCgp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBUaGlzIGlzIGEgcG9zdC1vcmRlciB0
cmVlIHRyYXZlcnNhbCBsYXlvdXQuCisgICAgICAgIGxldCBsYXlvdXRTdGFjayA9IG5ldyBBcnJh
eSgpOworICAgICAgICAvLyBUaGUgcm9vdCBjb250YWluZXIgbGF5b3V0IGlzIGRvbmUgaW4gdGhl
IGZvcm1hdHRpbmcgY29udGV4dCBpdCBsaXZlcyBpbiwgbm90IHRoYXQgb25lIGl0IGNyZWF0ZXMs
IHNvIGxldCdzIHN0YXJ0IHdpdGggdGhlIGZpcnN0IGNoaWxkLgorICAgICAgICBsYXlvdXRTdGFj
ay5wdXNoKHRoaXMucm9vdENvbnRhaW5lcigpLmZpcnN0Q2hpbGQoKSk7CisgICAgICAgIC8vIDEu
IEdvIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIGxlYWYgbm9kZQorICAgICAgICAvLyAyLiBDb21w
dXRlIHN0YXRpYyBwb3NpdGlvbiBhbmQgd2lkdGggYXMgd2UgdHJhdmVycyBkb3duCisgICAgICAg
IC8vIDMuIEFzIHdlIGNsaW1iIGJhY2sgb24gdGhlIHRyZWUsIGNvbXB1dGUgaGVpZ2h0IGFuZCBm
aW5pYWxpemUgcG9zaXRpb24KKyAgICAgICAgLy8gKEFueSBzdWJ0cmVlcyB3aXRoIG5ldyBmb3Jt
YXR0aW5nIGNvbnRleHRzIG5lZWQgdG8gbGF5b3V0IHN5bmNocm9ub3VzbHkpCisgICAgICAgIHdo
aWxlIChsYXlvdXRTdGFjay5sZW5ndGgpIHsKKyAgICAgICAgICAgIC8vIFRyYXZlcnMgZG93biBv
biB0aGUgZGVzY2VuZGFudHMgdW50aWwgd2UgZmluZCBhIGxlYWYgbm9kZS4KKyAgICAgICAgICAg
IHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgbGV0IGJveCA9IGxheW91dFN0YWNrW2xh
eW91dFN0YWNrLmxlbmd0aCAtIDFdOworICAgICAgICAgICAgICAgIGJveC5zZXRXaWR0aCh0aGlz
LmNvbXB1dGVXaWR0aChib3gpKTsKKyAgICAgICAgICAgICAgICBib3guc2V0VG9wTGVmdCh0aGlz
Ll9jb21wdXRlU3RhdGljUG9zaXRpb24oYm94KSk7CisgICAgICAgICAgICAgICAgaWYgKGJveC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGF5
b3V0Q29udGV4dC5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dChib3guZXN0YWJsaXNoZWRGb3JtYXR0
aW5nQ29udGV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmICghYm94LmlzQ29udGFpbmVyKCkgfHwgIWJveC5oYXND
aGlsZCgpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBsYXlv
dXRTdGFjay5wdXNoKGJveC5maXJzdENoaWxkKCkpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAvLyBDbGltYiBiYWNrIG9uIHRoZSBhbmNlc3RvcnMgYW5kIGNvbXB1dGUgaGVpZ2h0L2Zp
bmFsIHBvc2l0aW9uLgorICAgICAgICAgICAgd2hpbGUgKGxheW91dFN0YWNrLmxlbmd0aCkgewor
ICAgICAgICAgICAgICAgIC8vIEFsbCBpbmZsb3cgZGVzY2VuZGFudHMgKGlmIHRoZXJlIGFyZSBh
bnkpIGFyZSBsYWlkIG91dCBieSBub3cuIExldCdzIGNvbXB1dGUgdGhlIGJveCdzIGhlaWdodC4K
KyAgICAgICAgICAgICAgICBsZXQgYm94ID0gbGF5b3V0U3RhY2sucG9wKCk7CisgICAgICAgICAg
ICAgICAgYm94LnNldEhlaWdodCh0aGlzLmNvbXB1dGVIZWlnaHQoYm94KSk7CisgICAgICAgICAg
ICAgICAgLy8gQWRqdXN0IHBvc2l0aW9uIG5vdyB0aGF0IHdlIGhhdmUgYWxsIHRoZSBwcmV2aW91
cyBmbG9hdHMgcGxhY2VkIGluIHRoaXMgY29udGV4dCAtaWYgbmVlZGVkLgorICAgICAgICAgICAg
ICAgIGJveC5zZXRUb3BMZWZ0KHRoaXMuZmxvYXRpbmdDb250ZXh0KCkuY29tcHV0ZVBvc2l0aW9u
KGJveCkpOworICAgICAgICAgICAgICAgIC8vIE1vdmUgcG9zaXRpb25lZCBjaGlsZHJlbiB0byB0
aGVpciBmaW5hbCBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoYm94LmlzQ29udGFpbmVy
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hp
bGRyZW4oYm94KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gUGxhY2UgdGhlIG91dCBvZiBmbG93
IGNvbnRlbnQuCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BsYWNlT3V0T2ZGbG93RGVzY2Vu
ZGFudHMoYm94KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJveC5u
ZXh0U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgICAgIGxheW91dFN0YWNrLnB1c2goYm94
Lm5leHRTaWJsaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gQW5kIGZpbmFsbHkg
cGxhY2UgdGhlIG91dCBvZiBmbG93IGRlc2NlbmRhbnRzIGZvciB0aGUgcm9vdC4KKyAgICAgICAg
dGhpcy5fcGxhY2VPdXRPZkZsb3dEZXNjZW5kYW50cyh0aGlzLnJvb3RDb250YWluZXIoKSk7Cisg
ICB9CisKKyAgICBjb21wdXRlV2lkdGgoYm94KSB7CisgICAgICAgIGlmIChib3guaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcHV0ZU91dE9mRmxv
d1dpZHRoKGJveCk7CisgICAgICAgIGlmIChib3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9jb21wdXRlRmxvYXRpbmdXaWR0aChib3gpOworICAgICAg
ICByZXR1cm4gdGhpcy5fY29tcHV0ZUluRmxvd1dpZHRoKGJveCk7CisgICAgfQorCisgICAgY29t
cHV0ZUhlaWdodChib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21wdXRlT3V0T2ZGbG93SGVpZ2h0KGJveCk7
CisgICAgICAgIGlmIChib3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9jb21wdXRlRmxvYXRpbmdIZWlnaHQoYm94KTsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX2NvbXB1dGVJbkZsb3dIZWlnaHQoYm94KTsKKyAgICB9CisKKyAgICBtYXJnaW5Ub3AoYm94
KSB7CisgICAgICAgIHJldHVybiBCbG9ja01hcmdpbkNvbGxhcHNlLm1hcmdpblRvcChib3gpOwor
ICAgIH0KKworICAgIG1hcmdpbkJvdHRvbShib3gpIHsKKyAgICAgICAgcmV0dXJuIEJsb2NrTWFy
Z2luQ29sbGFwc2UubWFyZ2luQm90dG9tKGJveCk7CisgICAgfQorCisgICAgX2NvbXB1dGVTdGF0
aWNQb3NpdGlvbihib3gpIHsKKyAgICAgICAgLy8gSW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRl
eHQsIGJveGVzIGFyZSBsYWlkIG91dCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCB2ZXJ0aWNhbGx5LCBi
ZWdpbm5pbmcgYXQgdGhlIHRvcCBvZiBhIGNvbnRhaW5pbmcgYmxvY2suCisgICAgICAgIC8vIFRo
ZSB2ZXJ0aWNhbCBkaXN0YW5jZSBiZXR3ZWVuIHR3byBzaWJsaW5nIGJveGVzIGlzIGRldGVybWlu
ZWQgYnkgdGhlICdtYXJnaW4nIHByb3BlcnRpZXMuCisgICAgICAgIC8vIFZlcnRpY2FsIG1hcmdp
bnMgYmV0d2VlbiBhZGphY2VudCBibG9jay1sZXZlbCBib3hlcyBpbiBhIGJsb2NrIGZvcm1hdHRp
bmcgY29udGV4dCBjb2xsYXBzZS4KKyAgICAgICAgbGV0IHBhcmVudCA9IGJveC5wYXJlbnQoKTsK
KyAgICAgICAgLy8gU3RhcnQgZnJvbSB0aGUgdG9wIG9mIHRoZSBjb250YWluZXIncyBjb250ZW50
IGJveC4KKyAgICAgICAgbGV0IHByZXZpb3VzSW5GbG93U2libGluZyA9IGJveC5wcmV2aW91c0lu
Rmxvd1NpYmxpbmcoKTsKKyAgICAgICAgbGV0IGNvbnRlbnRCb3R0b20gPSBwcmV2aW91c0luRmxv
d1NpYmxpbmcgPyBwcmV2aW91c0luRmxvd1NpYmxpbmcuYm90dG9tUmlnaHQoKS50b3AoKSArIHRo
aXMubWFyZ2luQm90dG9tKHByZXZpb3VzSW5GbG93U2libGluZykgOiBwYXJlbnQuY29udGVudEJv
eCgpLnRvcCgpOworICAgICAgICBsZXQgcG9zaXRpb24gPSBuZXcgTGF5b3V0UG9pbnQoY29udGVu
dEJvdHRvbSwgcGFyZW50LmNvbnRlbnRCb3goKS5sZWZ0KCkpOworICAgICAgICBwb3NpdGlvbi5t
b3ZlQnkobmV3IExheW91dFNpemUodGhpcy5tYXJnaW5MZWZ0KGJveCksIHRoaXMubWFyZ2luVG9w
KGJveCkpKTsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0KKworICAgIF9wbGFjZUlu
Rmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb250YWluZXIpIHsKKyAgICAgICAgZm9yIChsZXQgaW5G
bG93Q2hpbGQgPSBjb250YWluZXIuZmlyc3RJbkZsb3dDaGlsZCgpOyBpbkZsb3dDaGlsZDsgaW5G
bG93Q2hpbGQgPSBpbkZsb3dDaGlsZC5uZXh0SW5GbG93U2libGluZygpKQorICAgICAgICAgICAg
aW5GbG93Q2hpbGQuc2V0VG9wTGVmdCh0aGlzLl9jb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0
aW9uKGluRmxvd0NoaWxkKSk7CisgICAgfQorCisgICAgX3BsYWNlT3V0T2ZGbG93RGVzY2VuZGFu
dHMoY29udGFpbmVyKSB7CisgICAgICAgIGxldCBvdXRPZkZsb3dEZXNjZW5kYW50cyA9IFV0aWxz
LmNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50cyhjb250YWluZXIpOworICAgICAgICBmb3IgKGxl
dCBvdXRPZkZsb3dCb3ggb2Ygb3V0T2ZGbG93RGVzY2VuZGFudHMpCisgICAgICAgICAgICBvdXRP
ZkZsb3dCb3guc2V0VG9wTGVmdCh0aGlzLl9jb21wdXRlT3V0T2ZGbG93UG9zaXRpb24ob3V0T2ZG
bG93Qm94KSk7CisgICAgfQorCisgICAgX2NvbXB1dGVPdXRPZkZsb3dXaWR0aChib3gpIHsKKyAg
ICAgICAgLy8gMTAuMy43IEFic29sdXRlbHkgcG9zaXRpb25lZCwgbm9uLXJlcGxhY2VkIGVsZW1l
bnRzCisKKyAgICAgICAgLy8gMS4gJ2xlZnQnIGFuZCAnd2lkdGgnIGFyZSAnYXV0bycgYW5kICdy
aWdodCcgaXMgbm90ICdhdXRvJywgdGhlbiB0aGUgd2lkdGggaXMgc2hyaW5rLXRvLWZpdC4gVGhl
biBzb2x2ZSBmb3IgJ2xlZnQnCisgICAgICAgIC8vIDIuICdsZWZ0JyBhbmQgJ3JpZ2h0JyBhcmUg
J2F1dG8nIGFuZCAnd2lkdGgnIGlzIG5vdCAnYXV0bycsIHRoZW4gaWYgdGhlICdkaXJlY3Rpb24n
IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGVzdGFibGlzaGluZworICAgICAgICAvLyAgICAgdGhl
IHN0YXRpYy1wb3NpdGlvbiBjb250YWluaW5nIGJsb2NrIGlzICdsdHInIHNldCAnbGVmdCcgdG8g
dGhlIHN0YXRpYyBwb3NpdGlvbiwgb3RoZXJ3aXNlIHNldCAncmlnaHQnIHRvIHRoZSBzdGF0aWMg
cG9zaXRpb24uCisgICAgICAgIC8vICAgICBUaGVuIHNvbHZlIGZvciAnbGVmdCcgKGlmICdkaXJl
Y3Rpb24gaXMgJ3J0bCcpIG9yICdyaWdodCcgKGlmICdkaXJlY3Rpb24nIGlzICdsdHInKS4KKyAg
ICAgICAgLy8gMy4gJ3dpZHRoJyBhbmQgJ3JpZ2h0JyBhcmUgJ2F1dG8nIGFuZCAnbGVmdCcgaXMg
bm90ICdhdXRvJywgdGhlbiB0aGUgd2lkdGggaXMgc2hyaW5rLXRvLWZpdCAuIFRoZW4gc29sdmUg
Zm9yICdyaWdodCcKKyAgICAgICAgLy8gNC4gJ2xlZnQnIGlzICdhdXRvJywgJ3dpZHRoJyBhbmQg
J3JpZ2h0JyBhcmUgbm90ICdhdXRvJywgdGhlbiBzb2x2ZSBmb3IgJ2xlZnQnCisgICAgICAgIC8v
IDUuICd3aWR0aCcgaXMgJ2F1dG8nLCAnbGVmdCcgYW5kICdyaWdodCcgYXJlIG5vdCAnYXV0bycs
IHRoZW4gc29sdmUgZm9yICd3aWR0aCcKKyAgICAgICAgLy8gNi4gJ3JpZ2h0JyBpcyAnYXV0bycs
ICdsZWZ0JyBhbmQgJ3dpZHRoJyBhcmUgbm90ICdhdXRvJywgdGhlbiBzb2x2ZSBmb3IgJ3JpZ2h0
JworICAgICAgICBsZXQgd2lkdGggPSBOdW1iZXIuTmFOOworICAgICAgICBpZiAoVXRpbHMuaXNX
aWR0aEF1dG8oYm94KSAmJiBVdGlscy5pc0xlZnRBdXRvKGJveCkgJiYgVXRpbHMuaXNSaWdodEF1
dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRoID0gdGhpcy5fc2hyaW5rVG9GaXRXaWR0aChib3gp
OworICAgICAgICBlbHNlIGlmIChVdGlscy5pc0xlZnRBdXRvKGJveCkgJiYgVXRpbHMuaXNXaWR0
aEF1dG8oYm94KSAmJiAhVXRpbHMuaXNSaWdodEF1dG8oYm94KSkKKyAgICAgICAgICAgIHdpZHRo
ID0gdGhpcy5fc2hyaW5rVG9GaXRXaWR0aChib3gpOyAvLyAxCisgICAgICAgIGVsc2UgaWYgKFV0
aWxzLmlzTGVmdEF1dG8oYm94KSAmJiBVdGlscy5pc1JpZ2h0QXV0byhib3gpICYmICFVdGlscy5p
c1dpZHRoQXV0byhib3gpKQorICAgICAgICAgICAgd2lkdGggPSBVdGlscy53aWR0aChib3gpOyAv
LyAyCisgICAgICAgIGVsc2UgaWYgKFV0aWxzLmlzV2lkdGhBdXRvKGJveCkgJiYgVXRpbHMuaXNS
aWdodEF1dG8oYm94KSAmJiAhVXRpbHMuaXNMZWZ0QXV0byhib3gpKQorICAgICAgICAgICAgd2lk
dGggPSB0aGlzLl9zaHJpbmtUb0ZpdFdpZHRoKGJveCk7IC8vIDMKKyAgICAgICAgZWxzZSBpZiAo
VXRpbHMuaXNMZWZ0QXV0byhib3gpICYmICFVdGlscy5pc1dpZHRoQXV0byhib3gpICYmICFVdGls
cy5pc1JpZ2h0QXV0byhib3gpKQorICAgICAgICAgICAgd2lkdGggPSBVdGlscy53aWR0aChib3gp
OyAvLyA0CisgICAgICAgIGVsc2UgaWYgKFV0aWxzLmlzV2lkdGhBdXRvKGJveCkgJiYgIVV0aWxz
LmlzTGVmdEF1dG8oYm94KSAmJiAhVXRpbHMuaXNSaWdodEF1dG8oYm94KSkKKyAgICAgICAgICAg
IHdpZHRoID0gTWF0aC5tYXgoMCwgYm94LmNvbnRhaW5pbmdCbG9jaygpLmNvbnRlbnRCb3goKS53
aWR0aCgpIC0gVXRpbHMucmlnaHQoYm94KSAtIFV0aWxzLmxlZnQoYm94KSk7IC8vIDUKKyAgICAg
ICAgZWxzZSBpZiAoVXRpbHMuaXNSaWdodEF1dG8oYm94KSAmJiAhVXRpbHMuaXNMZWZ0QXV0byhi
b3gpICYmICFVdGlscy5pc1dpZHRoQXV0byhib3gpKQorICAgICAgICAgICAgd2lkdGggPSBVdGls
cy53aWR0aChib3gpOyAvLyA2CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gd2lkdGggKyBVdGlscy5jb21wdXRlZEhvcml6b250
YWxCb3JkZXJBbmRQYWRkaW5nKGJveCk7CisgICAgfQorCisgICAgX2NvbXB1dGVGbG9hdGluZ1dp
ZHRoKGJveCkgeworICAgICAgICAvLyBGSVhNRTogbWlzc2luZyBjYXNlcworICAgICAgICByZXR1
cm4gVXRpbHMud2lkdGgoYm94KSArIFV0aWxzLmNvbXB1dGVkSG9yaXpvbnRhbEJvcmRlckFuZFBh
ZGRpbmcoYm94KTsKKyAgICB9CisKKyAgICBfY29tcHV0ZUluRmxvd1dpZHRoKGJveCkgeworICAg
ICAgICBpZiAoVXRpbHMuaXNXaWR0aEF1dG8oYm94KSkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9jb21wdXRlSG9yaXpvbnRhbENvbnN0cmFpbnQoYm94KTsKKyAgICAgICAgcmV0dXJuIFV0aWxz
LndpZHRoKGJveCkgKyBVdGlscy5jb21wdXRlZEhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nKGJv
eCk7CisgICAgfQorCisgICAgX2NvbXB1dGVPdXRPZkZsb3dIZWlnaHQoYm94KSB7CisgICAgICAg
IC8vIDEuIElmIGFsbCB0aHJlZSBvZiAndG9wJywgJ2hlaWdodCcsIGFuZCAnYm90dG9tJyBhcmUg
YXV0bywgc2V0ICd0b3AnIHRvIHRoZSBzdGF0aWMgcG9zaXRpb24gYW5kIGFwcGx5IHJ1bGUgbnVt
YmVyIHRocmVlIGJlbG93LgorICAgICAgICAvLyAyLiBJZiBub25lIG9mIHRoZSB0aHJlZSBhcmUg
J2F1dG8nOiBJZiBib3RoICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIGFyZSAnYXV0
bycsIHNvbHZlIHRoZSBlcXVhdGlvbiB1bmRlcgorICAgICAgICAvLyAgICB0aGUgZXh0cmEgY29u
c3RyYWludCB0aGF0IHRoZSB0d28gbWFyZ2lucyBnZXQgZXF1YWwgdmFsdWVzLiBJZiBvbmUgb2Yg
J21hcmdpbi10b3AnIG9yICdtYXJnaW4tYm90dG9tJyBpcyAnYXV0bycsCisgICAgICAgIC8vICAg
IHNvbHZlIHRoZSBlcXVhdGlvbiBmb3IgdGhhdCB2YWx1ZS4gSWYgdGhlIHZhbHVlcyBhcmUgb3Zl
ci1jb25zdHJhaW5lZCwgaWdub3JlIHRoZSB2YWx1ZSBmb3IgJ2JvdHRvbScgYW5kIHNvbHZlIGZv
ciB0aGF0IHZhbHVlLgorICAgICAgICAvLyBPdGhlcndpc2UsIHBpY2sgdGhlIG9uZSBvZiB0aGUg
Zm9sbG93aW5nIHNpeCBydWxlcyB0aGF0IGFwcGxpZXMuCisKKyAgICAgICAgLy8gMy4gJ3RvcCcg
YW5kICdoZWlnaHQnIGFyZSAnYXV0bycgYW5kICdib3R0b20nIGlzIG5vdCAnYXV0bycsIHRoZW4g
dGhlIGhlaWdodCBpcyBiYXNlZCBvbiB0aGUgY29udGVudCBwZXIgMTAuNi43LAorICAgICAgICAv
LyAgICBzZXQgJ2F1dG8nIHZhbHVlcyBmb3IgJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2luLWJvdHRv
bScgdG8gMCwgYW5kIHNvbHZlIGZvciAndG9wJworICAgICAgICAvLyA0LiAndG9wJyBhbmQgJ2Jv
dHRvbScgYXJlICdhdXRvJyBhbmQgJ2hlaWdodCcgaXMgbm90ICdhdXRvJywgdGhlbiBzZXQgJ3Rv
cCcgdG8gdGhlIHN0YXRpYyBwb3NpdGlvbiwgc2V0ICdhdXRvJyB2YWx1ZXMKKyAgICAgICAgLy8g
ICAgZm9yICdtYXJnaW4tdG9wJyBhbmQgJ21hcmdpbi1ib3R0b20nIHRvIDAsIGFuZCBzb2x2ZSBm
b3IgJ2JvdHRvbScKKyAgICAgICAgLy8gNS4gJ2hlaWdodCcgYW5kICdib3R0b20nIGFyZSAnYXV0
bycgYW5kICd0b3AnIGlzIG5vdCAnYXV0bycsIHRoZW4gdGhlIGhlaWdodCBpcyBiYXNlZCBvbiB0
aGUgY29udGVudCBwZXIgMTAuNi43LAorICAgICAgICAvLyAgICBzZXQgJ2F1dG8nIHZhbHVlcyBm
b3IgJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2luLWJvdHRvbScgdG8gMCwgYW5kIHNvbHZlIGZvciAn
Ym90dG9tJworICAgICAgICAvLyA2LiAndG9wJyBpcyAnYXV0bycsICdoZWlnaHQnIGFuZCAnYm90
dG9tJyBhcmUgbm90ICdhdXRvJywgdGhlbiBzZXQgJ2F1dG8nIHZhbHVlcyBmb3IgJ21hcmdpbi10
b3AnIGFuZCAnbWFyZ2luLWJvdHRvbScgdG8gMCwgYW5kIHNvbHZlIGZvciAndG9wJworICAgICAg
ICAvLyA3LiAnaGVpZ2h0JyBpcyAnYXV0bycsICd0b3AnIGFuZCAnYm90dG9tJyBhcmUgbm90ICdh
dXRvJywgdGhlbiAnYXV0bycgdmFsdWVzIGZvciAnbWFyZ2luLXRvcCcgYW5kICdtYXJnaW4tYm90
dG9tJyBhcmUgc2V0IHRvIDAgYW5kIHNvbHZlIGZvciAnaGVpZ2h0JworICAgICAgICAvLyA4LiAn
Ym90dG9tJyBpcyAnYXV0bycsICd0b3AnIGFuZCAnaGVpZ2h0JyBhcmUgbm90ICdhdXRvJywgdGhl
biBzZXQgJ2F1dG8nIHZhbHVlcyBmb3IgJ21hcmdpbi10b3AnIGFuZCAnbWFyZ2luLWJvdHRvbScg
dG8gMCBhbmQgc29sdmUgZm9yICdib3R0b20nCisgICAgICAgIGxldCBoZWlnaHQgPSBOdW1iZXIu
TmFOOworICAgICAgICBpZiAoVXRpbHMuaXNIZWlnaHRBdXRvKGJveCkgJiYgVXRpbHMuaXNCb3R0
b21BdXRvKGJveCkgJiYgVXRpbHMuaXNUb3BBdXRvKGJveCkpCisgICAgICAgICAgICBoZWlnaHQg
PSB0aGlzLl9jb21wdXRlQ29udGVudEhlaWdodChib3gpOyAvLyAxCisgICAgICAgIGVsc2UgaWYg
KFV0aWxzLmlzVG9wQXV0bygoYm94KSkgJiYgVXRpbHMuaXNIZWlnaHRBdXRvKChib3gpKSAmJiAh
VXRpbHMuaXNCb3R0b21BdXRvKChib3gpKSkKKyAgICAgICAgICAgIGhlaWdodCA9IHRoaXMuX2Nv
bXB1dGVDb250ZW50SGVpZ2h0KGJveCk7IC8vIDMKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNU
b3BBdXRvKChib3gpKSAmJiBVdGlscy5pc0JvdHRvbUF1dG8oKGJveCkpICYmICFVdGlscy5pc0hl
aWdodEF1dG8oKGJveCkpKQorICAgICAgICAgICAgaGVpZ2h0ID0gVXRpbHMuaGVpZ2h0KGJveCk7
IC8vIDQKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNIZWlnaHRBdXRvKChib3gpKSAmJiBVdGls
cy5pc0JvdHRvbUF1dG8oKGJveCkpICYmICFVdGlscy5pc1RvcEF1dG8oKGJveCkpKQorICAgICAg
ICAgICAgaGVpZ2h0ID0gdGhpcy5fY29tcHV0ZUNvbnRlbnRIZWlnaHQoYm94KTsgLy8gNQorICAg
ICAgICBlbHNlIGlmIChVdGlscy5pc1RvcEF1dG8oKGJveCkpICYmICFVdGlscy5pc0hlaWdodEF1
dG8oKGJveCkpICYmICFVdGlscy5pc0JvdHRvbUF1dG8oKGJveCkpKQorICAgICAgICAgICAgaGVp
Z2h0ID0gVXRpbHMuaGVpZ2h0KGJveCk7IC8vIDYKKyAgICAgICAgZWxzZSBpZiAoVXRpbHMuaXNI
ZWlnaHRBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNUb3BBdXRvKChib3gpKSAmJiAhVXRpbHMuaXNC
b3R0b21BdXRvKChib3gpKSkKKyAgICAgICAgICAgIGhlaWdodCA9IE1hdGgubWF4KDAsIGJveC5j
b250YWluaW5nQmxvY2soKS5jb250ZW50Qm94KCkuaGVpZ2h0KCkgLSBVdGlscy5ib3R0b20oYm94
KSAtIFV0aWxzLnRvcChib3gpKTsgLy8gNworICAgICAgICBlbHNlIGlmIChVdGlscy5pc0JvdHRv
bUF1dG8oKGJveCkpICYmICFVdGlscy5pc1RvcEF1dG8oKGJveCkpICYmICFVdGlscy5pc0hlaWdo
dEF1dG8oKGJveCkpKQorICAgICAgICAgICAgaGVpZ2h0ID0gVXRpbHMuaGVpZ2h0KGJveCk7IC8v
IDgKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBoZWlnaHQgKyBVdGlscy5jb21wdXRlZFZlcnRpY2FsQm9yZGVyQW5kUGFkZGlu
Zyhib3gpOworICAgIH0KKworICAgIF9jb21wdXRlRmxvYXRpbmdIZWlnaHQoYm94KSB7CisgICAg
ICAgIC8vIEZJWE1FOiBtaXNzaW5nIGNhc2VzCisgICAgICAgIHJldHVybiBVdGlscy5oZWlnaHQo
Ym94KSArIFV0aWxzLmNvbXB1dGVkVmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKGJveCk7CisgICAg
fQorCisgICAgX2NvbXB1dGVJbkZsb3dIZWlnaHQoYm94KSB7CisgICAgICAgIGlmIChVdGlscy5p
c0hlaWdodEF1dG8oYm94KSkgeworICAgICAgICAgICAgLy8gT25seSBjaGlsZHJlbiBpbiB0aGUg
bm9ybWFsIGZsb3cgYXJlIHRha2VuIGludG8gYWNjb3VudCAoaS5lLiwgZmxvYXRpbmcgYm94ZXMg
YW5kIGFic29sdXRlbHkgcG9zaXRpb25lZCBib3hlcyBhcmUgaWdub3JlZCwKKyAgICAgICAgICAg
IC8vIGFuZCByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgYm94ZXMgYXJlIGNvbnNpZGVyZWQgd2l0aG91
dCB0aGVpciBvZmZzZXQpLiBOb3RlIHRoYXQgdGhlIGNoaWxkIGJveCBtYXkgYmUgYW4gYW5vbnlt
b3VzIGJsb2NrIGJveC4KKworICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQncyBoZWlnaHQgaXMg
dGhlIGRpc3RhbmNlIGZyb20gaXRzIHRvcCBjb250ZW50IGVkZ2UgdG8gdGhlIGZpcnN0IGFwcGxp
Y2FibGUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgICAgIC8vIDEuIHRoZSBib3R0b20gZWRn
ZSBvZiB0aGUgbGFzdCBsaW5lIGJveCwgaWYgdGhlIGJveCBlc3RhYmxpc2hlcyBhIGlubGluZSBm
b3JtYXR0aW5nIGNvbnRleHQgd2l0aCBvbmUgb3IgbW9yZSBsaW5lcworICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2NvbXB1dGVDb250ZW50SGVpZ2h0KGJveCkgKyBVdGlscy5jb21wdXRlZFZlcnRp
Y2FsQm9yZGVyQW5kUGFkZGluZyhib3gpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBVdGls
cy5oZWlnaHQoYm94KSArIFV0aWxzLmNvbXB1dGVkVmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKGJv
eCk7CisgICAgfQorCisgICAgX2NvbXB1dGVIb3Jpem9udGFsQ29uc3RyYWludChib3gpIHsKKyAg
ICAgICAgbGV0IGhvcml6b250YWxDb25zdHJhaW50ID0gYm94LmNvbnRhaW5pbmdCbG9jaygpLmNv
bnRlbnRCb3goKS53aWR0aCgpOworICAgICAgICBob3Jpem9udGFsQ29uc3RyYWludCAtPSB0aGlz
Lm1hcmdpbkxlZnQoYm94KSArIHRoaXMubWFyZ2luUmlnaHQoYm94KTsKKyAgICAgICAgcmV0dXJu
IGhvcml6b250YWxDb25zdHJhaW50OworICAgIH0KKworICAgIF9jb21wdXRlQ29udGVudEhlaWdo
dChib3gpIHsKKyAgICAgICAgLy8gMTAuNi4zIEJsb2NrLWxldmVsIG5vbi1yZXBsYWNlZCBlbGVt
ZW50cyBpbiBub3JtYWwgZmxvdyB3aGVuICdvdmVyZmxvdycgY29tcHV0ZXMgdG8gJ3Zpc2libGUn
CisgICAgICAgIC8vIFRoZSBlbGVtZW50J3MgaGVpZ2h0IGlzIHRoZSBkaXN0YW5jZSBmcm9tIGl0
cyB0b3AgY29udGVudCBlZGdlIHRvIHRoZSBmaXJzdCBhcHBsaWNhYmxlIG9mIHRoZSBmb2xsb3dp
bmc6CisgICAgICAgIC8vIDEuIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgbGFzdCBsaW5lIGJveCwg
aWYgdGhlIGJveCBlc3RhYmxpc2hlcyBhIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgd2l0aCBv
bmUgb3IgbW9yZSBsaW5lcworICAgICAgICAvLyAyLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGJv
dHRvbSAocG9zc2libHkgY29sbGFwc2VkKSBtYXJnaW4gb2YgaXRzIGxhc3QgaW4tZmxvdyBjaGls
ZCwgaWYgdGhlIGNoaWxkJ3MgYm90dG9tIG1hcmdpbiBkb2VzIG5vdCBjb2xsYXBzZQorICAgICAg
ICAvLyAgICB3aXRoIHRoZSBlbGVtZW50J3MgYm90dG9tIG1hcmdpbgorICAgICAgICAvLyAzLiB0
aGUgYm90dG9tIGJvcmRlciBlZGdlIG9mIHRoZSBsYXN0IGluLWZsb3cgY2hpbGQgd2hvc2UgdG9w
IG1hcmdpbiBkb2Vzbid0IGNvbGxhcHNlIHdpdGggdGhlIGVsZW1lbnQncyBib3R0b20gbWFyZ2lu
CisgICAgICAgIC8vIDQuIHplcm8sIG90aGVyd2lzZQorICAgICAgICAvLyBPbmx5IGNoaWxkcmVu
IGluIHRoZSBub3JtYWwgZmxvdyBhcmUgdGFrZW4gaW50byBhY2NvdW50LgorICAgICAgICBpZiAo
IWJveC5pc0NvbnRhaW5lcigpIHx8ICFib3guaGFzSW5GbG93Q2hpbGQoKSkKKyAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICBsZXQgdG9wID0gYm94LmNvbnRlbnRCb3goKS50b3AoKTsKKyAg
ICAgICAgbGV0IGxhc3RJbkZsb3dDaGlsZCA9IGJveC5sYXN0SW5GbG93Q2hpbGQoKTsKKworICAg
ICAgICBsZXQgYm90dG9tID0gbGFzdEluRmxvd0NoaWxkLnJlY3QoKS5ib3R0b20oKSArIHRoaXMu
bWFyZ2luQm90dG9tKGxhc3RJbkZsb3dDaGlsZCk7CisgICAgICAgIC8vIEZJWE1FOiBtYXJnaW4g
Zm9yIGJvZHkKKyAgICAgICAgaWYgKGxhc3RJbkZsb3dDaGlsZC5uYW1lKCkgPT0gIlJlbmRlckJv
ZHkiICYmIFV0aWxzLmlzSGVpZ2h0QXV0byhsYXN0SW5GbG93Q2hpbGQpICYmICFsYXN0SW5GbG93
Q2hpbGQuY29udGVudEJveCgpLmhlaWdodCgpKQorICAgICAgICAgICAgYm90dG9tIC09IHRoaXMu
bWFyZ2luQm90dG9tKGxhc3RJbkZsb3dDaGlsZCk7CisgICAgICAgIC8vIEZJWE1FOiBmaWd1cmUg
b3V0IHdoeSBmbG9hdGluZ3MgcGFydCBvZiB0aGUgaW5pdGlhbCBibG9jayBmb3JtYXR0aW5nIGNv
bnRleHQgZ2V0IHByb3BhZ2F0ZWQgdG8gSFRNTAorICAgICAgICBpZiAoYm94Lm5vZGUoKS50YWdO
YW1lID09ICJIVE1MIikgeworICAgICAgICAgICAgbGV0IGZsb2F0aW5nQm90dG9tID0gdGhpcy5m
bG9hdGluZ0NvbnRleHQoKS5ib3R0b20oKTsKKyAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFO
KGZsb2F0aW5nQm90dG9tKSkKKyAgICAgICAgICAgICAgICBib3R0b20gPSBNYXRoLm1heChmbG9h
dGluZ0JvdHRvbSwgYm90dG9tKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYm90dG9tIC0g
dG9wOworICAgIH0KKworICAgIF9jb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKGJveCkg
eworICAgICAgICAvLyBTdGFydCB3aXRoIHRoZSBvcmlnaW5hbCwgc3RhdGljIHBvc2l0aW9uLgor
ICAgICAgICBsZXQgcmVsYXRpdmVQb3NpdGlvbiA9IGJveC50b3BMZWZ0KCk7CisgICAgICAgIC8v
IFRvcC9ib3R0b20KKyAgICAgICAgaWYgKCFVdGlscy5pc1RvcEF1dG8oYm94KSkKKyAgICAgICAg
ICAgIHJlbGF0aXZlUG9zaXRpb24uc2hpZnRUb3AoVXRpbHMudG9wKGJveCkpOworICAgICAgICBl
bHNlIGlmICghVXRpbHMuaXNCb3R0b21BdXRvKGJveCkpCisgICAgICAgICAgICByZWxhdGl2ZVBv
c2l0aW9uLnNoaWZ0VG9wKC1VdGlscy5ib3R0b20oYm94KSk7CisgICAgICAgIC8vIExlZnQvcmln
aHQKKyAgICAgICAgaWYgKCFVdGlscy5pc0xlZnRBdXRvKGJveCkpCisgICAgICAgICAgICByZWxh
dGl2ZVBvc2l0aW9uLnNoaWZ0TGVmdChVdGlscy5sZWZ0KGJveCkpOworICAgICAgICBlbHNlIGlm
ICghVXRpbHMuaXNSaWdodEF1dG8oYm94KSkKKyAgICAgICAgICAgIHJlbGF0aXZlUG9zaXRpb24u
c2hpZnRMZWZ0KC1VdGlscy5yaWdodChib3gpKTsKKyAgICAgICAgcmV0dXJuIHJlbGF0aXZlUG9z
aXRpb247CisgICAgfQorCisgICAgX2NvbXB1dGVPdXRPZkZsb3dQb3NpdGlvbihib3gpIHsKKyAg
ICAgICAgbGV0IGNvbnRhaW5lclNpemUgPSBib3guY29udGFpbmluZ0Jsb2NrKCkuY29udGVudEJv
eCgpLnNpemUoKTsKKyAgICAgICAgLy8gVG9wL2JvdHRvbQorICAgICAgICBsZXQgdG9wID0gTnVt
YmVyLk5hTjsKKyAgICAgICAgaWYgKFV0aWxzLmlzVG9wQXV0byhib3gpICYmIFV0aWxzLmlzQm90
dG9tQXV0byhib3gpKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0IHN0YXRpYyBwb3NpdGlvbiB0
byBhYnNvbHV0ZS4KKyAgICAgICAgICAgIHRvcCA9IFV0aWxzLm1hcFN0YXRpY1RvQWJzb2x1dGUo
Ym94KS50b3AoKTsKKyAgICAgICAgfSBlbHNlIGlmICghVXRpbHMuaXNUb3BBdXRvKGJveCkpCisg
ICAgICAgICAgICB0b3AgPSBVdGlscy50b3AoYm94KSArIHRoaXMubWFyZ2luVG9wKGJveCk7Cisg
ICAgICAgIGVsc2UgaWYgKCFVdGlscy5pc0JvdHRvbUF1dG8oYm94KSkKKyAgICAgICAgICAgIHRv
cCA9IGNvbnRhaW5lclNpemUuaGVpZ2h0KCkgLSBVdGlscy5ib3R0b20oYm94KSAtIGJveC5yZWN0
KCkuaGVpZ2h0KCkgLSB0aGlzLm1hcmdpbkJvdHRvbShib3gpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgLy8gTGVmdC9yaWdodAorICAg
ICAgICBsZXQgbGVmdCA9IE51bWJlci5OYU47CisgICAgICAgIGlmIChVdGlscy5pc0xlZnRBdXRv
KGJveCkgJiYgVXRpbHMuaXNSaWdodEF1dG8oYm94KSkgeworICAgICAgICAgICAgLy8gQ29udmVy
dCBzdGF0aWMgcG9zaXRpb24gdG8gYWJzb2x1dGUuCisgICAgICAgICAgICBsZWZ0ID0gVXRpbHMu
bWFwU3RhdGljVG9BYnNvbHV0ZShib3gpLmxlZnQoKTsKKyAgICAgICAgfSBlbHNlIGlmICghVXRp
bHMuaXNMZWZ0QXV0byhib3gpKQorICAgICAgICAgICAgbGVmdCA9IFV0aWxzLmxlZnQoYm94KSAr
IHRoaXMubWFyZ2luTGVmdChib3gpOworICAgICAgICBlbHNlIGlmICghVXRpbHMuaXNSaWdodEF1
dG8oYm94KSkKKyAgICAgICAgICAgIGxlZnQgPSBjb250YWluZXJTaXplLndpZHRoKCkgLSBVdGls
cy5yaWdodChib3gpIC0gYm94LnJlY3QoKS53aWR0aCgpIC0gdGhpcy5tYXJnaW5SaWdodChib3gp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBMYXlvdXRQb2ludCh0b3AsIGxlZnQpOworICAgIH0KKworICAgIF9zaHJp
bmtUb0ZpdFdpZHRoKGJveCkgeworICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBuYWl2ZS4KKyAg
ICAgICAgQVNTRVJUKFV0aWxzLmlzV2lkdGhBdXRvKGJveCkpOworICAgICAgICBpZiAoIWJveC5p
c0NvbnRhaW5lcigpIHx8ICFib3guaGFzQ2hpbGQoKSkKKyAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICBsZXQgd2lkdGggPSAwOworICAgICAgICBmb3IgKGxldCBpbkZsb3dDaGlsZCA9IGJv
eC5maXJzdEluRmxvd0NoaWxkKCk7IGluRmxvd0NoaWxkOyBpbkZsb3dDaGlsZCA9IGluRmxvd0No
aWxkLm5leHRJbkZsb3dTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGxldCB3aWR0aENhbmRpZGF0
ZSA9IFV0aWxzLmlzV2lkdGhBdXRvKGluRmxvd0NoaWxkKSA/IHRoaXMuX3Nocmlua1RvRml0V2lk
dGgoaW5GbG93Q2hpbGQpIDogVXRpbHMud2lkdGgoaW5GbG93Q2hpbGQpOworICAgICAgICAgICAg
d2lkdGggPSBNYXRoLm1heCh3aWR0aCwgd2lkdGhDYW5kaWRhdGUgKyBVdGlscy5jb21wdXRlZEhv
cml6b250YWxCb3JkZXJBbmRQYWRkaW5nKGluRmxvd0NoaWxkKSk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvQmxvY2tNYXJnaW5Db2xsYXBzZS5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Jsb2Nr
TWFyZ2luQ29sbGFwc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgyNTlhNTk5OGExMzdlNjUyODFlNzcyMWEy
MzMwYTVjNzdhODFjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Js
b2NrTWFyZ2luQ29sbGFwc2UuanMKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworY2xhc3MgQmxvY2tNYXJnaW5Db2xsYXBzZSB7CisK
KyAgICBzdGF0aWMgbWFyZ2luVG9wKGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3Vz
KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgLy8gVE9ETzogdGFrZSBfaGFzQWRq
b2luaW5nTWFyZ2luVG9wQW5kQm90dG9tKCkgaW50byBhY2NvdW50LgorICAgICAgICBpZiAodGhp
cy5faXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoUGFyZW50KGJveCkpCisgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgLy8gRmxvYXRzIGFuZCBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGJveGVz
IGRvIG5vdCBjb2xsYXBzZSB0aGVpciBtYXJnaW5zLgorICAgICAgICBpZiAoIXRoaXMuX2lzTWFy
Z2luVG9wQ29sbGFwc2VkV2l0aFNpYmxpbmcoYm94KSkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9ub25Db2xsYXBzZWRNYXJnaW5Ub3AoYm94KTsKKyAgICAgICAgLy8gVGhlIGJvdHRvbSBtYXJn
aW4gb2YgYW4gaW4tZmxvdyBibG9jay1sZXZlbCBlbGVtZW50IGFsd2F5cyBjb2xsYXBzZXMgd2l0
aCB0aGUgdG9wIG1hcmdpbiBvZiBpdHMgbmV4dCBpbi1mbG93IGJsb2NrLWxldmVsIHNpYmxpbmcs
CisgICAgICAgIC8vIHVubGVzcyB0aGF0IHNpYmxpbmcgaGFzIGNsZWFyYW5jZS4KKyAgICAgICAg
bGV0IHByZXZpb3VzSW5GbG93U2libGluZyA9IGJveC5wcmV2aW91c0luRmxvd1NpYmxpbmcoKTsK
KyAgICAgICAgaWYgKHByZXZpb3VzSW5GbG93U2libGluZykgeworICAgICAgICAgICAgbGV0IHBy
ZXZpb3VzU2libGluZ01hcmdpbkJvdHRvbSA9IHRoaXMuX25vbkNvbGxhcHNlZE1hcmdpbkJvdHRv
bShwcmV2aW91c0luRmxvd1NpYmxpbmcpOworICAgICAgICAgICAgbGV0IG1hcmdpblRvcCA9IHRo
aXMuX25vbkNvbGxhcHNlZE1hcmdpblRvcChib3gpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X21hcmdpblZhbHVlKG1hcmdpblRvcCwgcHJldmlvdXNTaWJsaW5nTWFyZ2luQm90dG9tKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fbm9uQ29sbGFwc2VkTWFyZ2luVG9wKGJveCk7
CisgICAgfQorCisgICAgc3RhdGljIG1hcmdpbkJvdHRvbShib3gpIHsKKyAgICAgICAgaWYgKGJv
eC5pc0Fub255bW91cygpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIFRPRE86
IHRha2UgX2hhc0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbSgpIGludG8gYWNjb3VudC4KKyAg
ICAgICAgaWYgKHRoaXMuX2lzTWFyZ2luQm90dG9tQ29sbGFwc2VkV2l0aFBhcmVudChib3gpKQor
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIEZsb2F0cyBhbmQgb3V0IG9mIGZsb3cg
cG9zaXRpb25lZCBib3hlcyBkbyBub3QgY29sbGFwc2UgdGhlaXIgbWFyZ2lucy4KKyAgICAgICAg
aWYgKCF0aGlzLl9pc01hcmdpbkJvdHRvbUNvbGxhcHNlZFdpdGhTaWJsaW5nKGJveCkpCisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fbm9uQ29sbGFwc2VkTWFyZ2luQm90dG9tKGJveCk7CisgICAg
ICAgIC8vIFRoZSBib3R0b20gbWFyZ2luIG9mIGFuIGluLWZsb3cgYmxvY2stbGV2ZWwgZWxlbWVu
dCBhbHdheXMgY29sbGFwc2VzIHdpdGggdGhlIHRvcCBtYXJnaW4gb2YgaXRzIG5leHQgaW4tZmxv
dyBibG9jay1sZXZlbCBzaWJsaW5nLAorICAgICAgICAvLyB1bmxlc3MgdGhhdCBzaWJsaW5nIGhh
cyBjbGVhcmFuY2UuCisgICAgICAgIGlmIChib3gubmV4dEluRmxvd1NpYmxpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gdGhpcy5fbm9uQ29sbGFwc2VkTWFyZ2lu
Qm90dG9tKGJveCk7CisgICAgfQorCisgICAgc3RhdGljIF9pc01hcmdpblRvcENvbGxhcHNlZFdp
dGhTaWJsaW5nKGJveCkgeworICAgICAgICBpZiAoYm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghYm94LmlzUG9zaXRpb25l
ZCgpIHx8IGJveC5pc0luRmxvd1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAvLyBPdXQgb2YgZmxvdyBwb3NpdGlvbmVkLgorICAgICAgICBBU1NFUlQoYm94
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmlzVG9wQXV0
byhib3gpOworICAgIH0KKworICAgIHN0YXRpYyBfaXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRXaXRo
U2libGluZyhib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWJveC5pc1Bvc2l0aW9uZWQo
KSB8fCBib3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgLy8gT3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KKyAgICAgICAgQVNTRVJUKGJveC5p
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CisgICAgICAgIHJldHVybiBVdGlscy5pc0JvdHRvbUF1
dG8oYm94KTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2lzTWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBh
cmVudChib3gpIHsKKyAgICAgICAgLy8gVGhlIGZpcnN0IGluZmxvdyBjaGlsZCBjb3VsZCBwcm9w
YWdhdGUgaXRzIHRvcCBtYXJnaW4gdG8gcGFyZW50LgorICAgICAgICAvLyBodHRwczovL3d3dy53
My5vcmcvVFIvQ1NTMjEvYm94Lmh0bWwjY29sbGFwc2luZy1tYXJnaW5zCisgICAgICAgIGlmIChi
b3guaXNBbm9ueW1vdXMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KGJveC5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGxldCBwYXJlbnQgPSBib3gucGFyZW50KCk7CisgICAgICAgIC8v
IElzIHRoaXMgYm94IHRoZSBmaXJzdCBpbmxmbG93IGNoaWxkPworICAgICAgICBpZiAocGFyZW50
LmZpcnN0SW5GbG93Q2hpbGQoKSAhPSBib3gpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGlmIChwYXJlbnQuZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIE1hcmdpbnMgb2YgdGhlIHJvb3Qg
ZWxlbWVudCdzIGJveCBkbyBub3QgY29sbGFwc2UuCisgICAgICAgIGlmIChwYXJlbnQuaXNSb290
RWxlbWVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoVXRpbHMu
aGFzQm9yZGVyVG9wKHBhcmVudCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmIChVdGlscy5oYXNQYWRkaW5nVG9wKHBhcmVudCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBfaXNNYXJnaW5C
b3R0b21Db2xsYXBzZWRXaXRoUGFyZW50KGJveCkgeworICAgICAgICAvLyBsYXN0IGluZmxvdyBi
b3ggdG8gcGFyZW50LgorICAgICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjEvYm94
Lmh0bWwjY29sbGFwc2luZy1tYXJnaW5zCisgICAgICAgIGlmIChib3guaXNBbm9ueW1vdXMoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGJveC5pc0Zsb2F0aW5nT3JP
dXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGxldCBwYXJlbnQgPSBib3gucGFyZW50KCk7CisgICAgICAgIC8vIElzIHRoaXMgdGhlIGxhc3Qg
aW5sZmxvdyBjaGlsZD8KKyAgICAgICAgaWYgKHBhcmVudC5sYXN0SW5GbG93Q2hpbGQoKSAhPSBi
b3gpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChwYXJlbnQuZXN0YWJs
aXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIC8vIE1hcmdpbnMgb2YgdGhlIHJvb3QgZWxlbWVudCdzIGJveCBkbyBub3QgY29s
bGFwc2UuCisgICAgICAgIGlmIChwYXJlbnQuaXNSb290RWxlbWVudCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoVXRpbHMuaGFzQm9yZGVyVG9wKHBhcmVudCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChVdGlscy5oYXNQYWRkaW5nVG9w
KHBhcmVudCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghVXRpbHMu
aXNIZWlnaHRBdXRvKHBhcmVudCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBfbm9uQ29sbGFwc2VkTWFyZ2luVG9w
KGJveCkgeworICAgICAgICAvLyBOb24gY29sbGFwc2VkIG1hcmdpbiB0b3AgaW5jbHVkZXMgY29s
bGFwc2VkIG1hcmdpbiBmcm9tIGluZmxvdyBmaXJzdCBjaGlsZC4KKyAgICAgICAgcmV0dXJuIHRo
aXMuX21hcmdpblZhbHVlKFV0aWxzLmNvbXB1dGVkTWFyZ2luVG9wKGJveCksIHRoaXMuX2NvbGxh
cHNlZE1hcmdpblRvcEZyb21GaXJzdENoaWxkKGJveCkpOworICAgIH0KKworICAgIHN0YXRpYyBf
bm9uQ29sbGFwc2VkTWFyZ2luQm90dG9tKGJveCkgeworICAgICAgICAvLyBOb24gY29sbGFwc2Vk
IG1hcmdpbiBib3R0b20gaW5jbHVkZXMgY29sbGFwc2VkIG1hcmdpbiBmcm9tIGluZmxvdyBsYXN0
IGNoaWxkLgorICAgICAgICByZXR1cm4gdGhpcy5fbWFyZ2luVmFsdWUoVXRpbHMuY29tcHV0ZWRN
YXJnaW5Cb3R0b20oYm94KSwgdGhpcy5fY29sbGFwc2VkTWFyZ2luQm90dG9tRnJvbUxhc3RDaGls
ZChib3gpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgX2NvbGxhcHNlZE1hcmdpblRvcEZyb21GaXJz
dENoaWxkKGJveCkgeworICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgY2hpbGQgY29sbGFw
c2VzIGl0cyBtYXJnaW4gdG9wLgorICAgICAgICBpZiAoIWJveC5pc0NvbnRhaW5lcigpIHx8ICFi
b3guZmlyc3RJbkZsb3dDaGlsZCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGxl
dCBmaXJzdEluRmxvd0NoaWxkID0gYm94LmZpcnN0SW5GbG93Q2hpbGQoKTsKKyAgICAgICAgaWYg
KCF0aGlzLl9pc01hcmdpblRvcENvbGxhcHNlZFdpdGhQYXJlbnQoZmlyc3RJbkZsb3dDaGlsZCkp
CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgLy8gQ29sbGVjdCBjb2xsYXBzZWQgbWFy
Z2luIHRvcCByZWN1cnNpdmVseS4KKyAgICAgICAgcmV0dXJuIHRoaXMuX21hcmdpblZhbHVlKFV0
aWxzLmNvbXB1dGVkTWFyZ2luVG9wKGZpcnN0SW5GbG93Q2hpbGQpLCB0aGlzLl9jb2xsYXBzZWRN
YXJnaW5Ub3BGcm9tRmlyc3RDaGlsZChmaXJzdEluRmxvd0NoaWxkKSk7CisgICAgfQorCisgICAg
c3RhdGljIF9jb2xsYXBzZWRNYXJnaW5Cb3R0b21Gcm9tTGFzdENoaWxkKGJveCkgeworICAgICAg
ICAvLyBDaGVjayBpZiB0aGUgbGFzdCBjaGlsZCBwcm9wYWdhdGVzIGl0cyBtYXJnaW4gYm90dG9t
LgorICAgICAgICBpZiAoIWJveC5pc0NvbnRhaW5lcigpIHx8ICFib3gubGFzdEluRmxvd0NoaWxk
KCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgbGV0IGxhc3RJbkZsb3dDaGlsZCA9
IGJveC5sYXN0SW5GbG93Q2hpbGQoKTsKKyAgICAgICAgaWYgKCF0aGlzLl9pc01hcmdpbkJvdHRv
bUNvbGxhcHNlZFdpdGhQYXJlbnQobGFzdEluRmxvd0NoaWxkKSkKKyAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAvLyBDb2xsZWN0IGNvbGxhcHNlZCBtYXJnaW4gYm90dG9tIHJlY3Vyc2l2
ZWx5LgorICAgICAgICByZXR1cm4gdGhpcy5fbWFyZ2luVmFsdWUoVXRpbHMuY29tcHV0ZWRNYXJn
aW5Cb3R0b20obGFzdEluRmxvd0NoaWxkKSwgdGhpcy5fY29sbGFwc2VkTWFyZ2luQm90dG9tRnJv
bUxhc3RDaGlsZChsYXN0SW5GbG93Q2hpbGQpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgX21hcmdp
blZhbHVlKGN1cnJlbnRNYXJnaW5WYWx1ZSwgY2FuZGlkYXRlTWFyZ2luVmFsdWUpIHsKKyAgICAg
ICAgaWYgKCFjYW5kaWRhdGVNYXJnaW5WYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50
TWFyZ2luVmFsdWU7CisgICAgICAgIGlmICghY3VycmVudE1hcmdpblZhbHVlKQorICAgICAgICAg
ICAgcmV0dXJuIGNhbmRpZGF0ZU1hcmdpblZhbHVlOworICAgICAgICAvLyBCb3RoIG1hcmdpbnMg
YXJlIHBvc2l0aXZlLgorICAgICAgICBpZiAoY2FuZGlkYXRlTWFyZ2luVmFsdWUgPiAwICYmIGN1
cnJlbnRNYXJnaW5WYWx1ZSA+IDApCisgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoY2FuZGlk
YXRlTWFyZ2luVmFsdWUsIGN1cnJlbnRNYXJnaW5WYWx1ZSkKKyAgICAgICAgLy8gQm90aCBtYXJn
aW5zIGFyZSBuZWdhdGl2ZS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZU1hcmdpblZhbHVlIDwgMCAm
JiBjdXJyZW50TWFyZ2luVmFsdWUgPCAwKQorICAgICAgICAgICAgcmV0dXJuIDAgLSBNYXRoLm1h
eChNYXRoLmFicyhjYW5kaWRhdGVNYXJnaW5WYWx1ZSksIE1hdGguYWJzKGN1cnJlbnRNYXJnaW5W
YWx1ZSkpCisgICAgICAgIC8vIE9uZSBvZiB0aGUgbWFyZ2lucyBpcyBuZWdhdGl2ZS4KKyAgICAg
ICAgcmV0dXJuIGN1cnJlbnRNYXJnaW5WYWx1ZSArIGNhbmRpZGF0ZU1hcmdpblZhbHVlOworICAg
IH0KKworICAgIHN0YXRpYyBfaGFzQWRqb2luaW5nTWFyZ2luVG9wQW5kQm90dG9tKGJveCkgewor
ICAgICAgICAvLyBUd28gbWFyZ2lucyBhcmUgYWRqb2luaW5nIGlmIGFuZCBvbmx5IGlmOgorICAg
ICAgICAvLyAxLiBib3RoIGJlbG9uZyB0byBpbi1mbG93IGJsb2NrLWxldmVsIGJveGVzIHRoYXQg
cGFydGljaXBhdGUgaW4gdGhlIHNhbWUgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0CisgICAgICAg
IC8vIDIuIG5vIGxpbmUgYm94ZXMsIG5vIGNsZWFyYW5jZSwgbm8gcGFkZGluZyBhbmQgbm8gYm9y
ZGVyIHNlcGFyYXRlIHRoZW0gKE5vdGUgdGhhdCBjZXJ0YWluIHplcm8taGVpZ2h0IGxpbmUgYm94
ZXMgKHNlZSA5LjQuMikgYXJlIGlnbm9yZWQgZm9yIHRoaXMgcHVycG9zZS4pCisgICAgICAgIC8v
IDMuIGJvdGggYmVsb25nIHRvIHZlcnRpY2FsbHktYWRqYWNlbnQgYm94IGVkZ2VzLCBpLmUuIGZv
cm0gb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFpcnM6CisgICAgICAgIC8vICAgICAgICB0b3AgbWFy
Z2luIG9mIGEgYm94IGFuZCB0b3AgbWFyZ2luIG9mIGl0cyBmaXJzdCBpbi1mbG93IGNoaWxkCisg
ICAgICAgIC8vICAgICAgICBib3R0b20gbWFyZ2luIG9mIGJveCBhbmQgdG9wIG1hcmdpbiBvZiBp
dHMgbmV4dCBpbi1mbG93IGZvbGxvd2luZyBzaWJsaW5nCisgICAgICAgIC8vICAgICAgICBib3R0
b20gbWFyZ2luIG9mIGEgbGFzdCBpbi1mbG93IGNoaWxkIGFuZCBib3R0b20gbWFyZ2luIG9mIGl0
cyBwYXJlbnQgaWYgdGhlIHBhcmVudCBoYXMgJ2F1dG8nIGNvbXB1dGVkIGhlaWdodAorICAgICAg
ICAvLyAgICAgICAgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvZiBhIGJveCB0aGF0IGRvZXMgbm90
IGVzdGFibGlzaCBhIG5ldyBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgYW5kIHRoYXQgaGFzIHpl
cm8gY29tcHV0ZWQgJ21pbi1oZWlnaHQnLAorICAgICAgICAvLyAgICAgICAgemVybyBvciAnYXV0
bycgY29tcHV0ZWQgJ2hlaWdodCcsIGFuZCBubyBpbi1mbG93IGNoaWxkcmVuCisgICAgICAgIC8v
IEEgY29sbGFwc2VkIG1hcmdpbiBpcyBjb25zaWRlcmVkIGFkam9pbmluZyB0byBhbm90aGVyIG1h
cmdpbiBpZiBhbnkgb2YgaXRzIGNvbXBvbmVudCBtYXJnaW5zIGlzIGFkam9pbmluZyB0byB0aGF0
IG1hcmdpbi4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL0JveC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0JveC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNTZiMDhhN2IwYWM3MDE0NjdkZjU5MTQ5NTU5ZTA2YmY2ZTI2YThhCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvQm94LmpzCkBAIC0wLDAgKzEsMjU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3Mg
Qm94IHsKKyAgICBjb25zdHJ1Y3Rvcihub2RlLCBpZCkgeworICAgICAgICB0aGlzLm1faWQgPSBp
ZDsKKyAgICAgICAgdGhpcy5tX3JlbmRlcmVyTmFtZSA9IG51bGw7CisgICAgICAgIHRoaXMubV9u
b2RlID0gbm9kZTsKKyAgICAgICAgdGhpcy5tX3BhcmVudCA9IG51bGw7CisgICAgICAgIHRoaXMu
bV9uZXh0U2libGluZyA9IG51bGw7CisgICAgICAgIHRoaXMubV9wcmV2aW91c1NpYmxpbmcgPSBu
dWxsOworICAgICAgICB0aGlzLm1faXNBbm9ueW1vdXMgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5t
X3JlY3QgPSBuZXcgTGF5b3V0UmVjdChuZXcgTGF5b3V0UG9pbnQoMCwgMCksIG5ldyBMYXlvdXRT
aXplKDAsIDApKTsKKyAgICAgICAgdGhpcy5tX2VzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQg
PSBudWxsOworICAgIH0KKworICAgIGlkKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2lkOwor
ICAgIH0KKworICAgIHNldFJlbmRlcmVyTmFtZShuYW1lKSB7CisgICAgICAgIHRoaXMubV9yZW5k
ZXJlck5hbWUgPSBuYW1lOworICAgIH0KKworICAgIG5hbWUoKSB7CisgICAgICAgIHJldHVybiB0
aGlzLm1fcmVuZGVyZXJOYW1lOworICAgIH0KKworICAgIG5vZGUoKSB7CisgICAgICAgIHJldHVy
biB0aGlzLm1fbm9kZTsKKyAgICB9CisKKyAgICBwYXJlbnQoKSB7CisgICAgICAgIHJldHVybiB0
aGlzLm1fcGFyZW50OworICAgIH0KKworICAgIG5leHRTaWJsaW5nKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX25leHRTaWJsaW5nOworICAgIH0KKworICAgIG5leHRJbkZsb3dTaWJsaW5nKCkg
eworICAgICAgICBsZXQgbmV4dEluRmxvd1NpYmxpbmcgPSB0aGlzLm5leHRTaWJsaW5nKCk7Cisg
ICAgICAgIHdoaWxlIChuZXh0SW5GbG93U2libGluZykgeworICAgICAgICAgICAgaWYgKG5leHRJ
bkZsb3dTaWJsaW5nLmlzSW5GbG93KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRJbkZs
b3dTaWJsaW5nOworICAgICAgICAgICAgbmV4dEluRmxvd1NpYmxpbmcgPSBuZXh0SW5GbG93U2li
bGluZy5uZXh0U2libGluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAg
IH0KKworICAgIHByZXZpb3VzU2libGluZygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9wcmV2
aW91c1NpYmxpbmc7CisgICAgfQorCisgICAgcHJldmlvdXNJbkZsb3dTaWJsaW5nKCkgeworICAg
ICAgICBsZXQgcHJldmlvdXNJbkZsb3dTaWJsaW5nID0gdGhpcy5wcmV2aW91c1NpYmxpbmcoKTsK
KyAgICAgICAgd2hpbGUgKHByZXZpb3VzSW5GbG93U2libGluZykgeworICAgICAgICAgICAgaWYg
KHByZXZpb3VzSW5GbG93U2libGluZy5pc0luRmxvdygpKQorICAgICAgICAgICAgICAgIHJldHVy
biBwcmV2aW91c0luRmxvd1NpYmxpbmc7CisgICAgICAgICAgICBwcmV2aW91c0luRmxvd1NpYmxp
bmcgPSBwcmV2aW91c0luRmxvd1NpYmxpbmcucHJldmlvdXNTaWJsaW5nKCk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc2V0UGFyZW50KHBhcmVudCkgewor
ICAgICAgICB0aGlzLm1fcGFyZW50ID0gcGFyZW50OworICAgIH0KKworICAgIHNldE5leHRTaWJs
aW5nKG5leHRTaWJsaW5nKSB7CisgICAgICAgIHRoaXMubV9uZXh0U2libGluZyA9IG5leHRTaWJs
aW5nOworICAgIH0KKyAgICAKKyAgICBzZXRQcmV2aW91c1NpYmxpbmcocHJldmlvdXNTaWJsaW5n
KSB7CisgICAgICAgIHRoaXMubV9wcmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmc7Cisg
ICAgfQorCisgICAgcmVjdCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9yZWN0LmNsb25lKCk7
CisgICAgfQorCisgICAgdG9wTGVmdCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMucmVjdCgpLnRv
cExlZnQoKTsKKyAgICB9CisKKyAgICBib3R0b21SaWdodCgpIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMucmVjdCgpLmJvdHRvbVJpZ2h0KCk7CisgICAgfQorCisgICAgc2V0VG9wTGVmdCh0b3BMZWZ0
KSB7CisgICAgICAgIHRoaXMubV9yZWN0LnNldFRvcExlZnQodG9wTGVmdCk7CisgICAgfQorCisg
ICAgc2V0U2l6ZShzaXplKSB7CisgICAgICAgIHRoaXMubV9yZWN0LnNldFNpemUoc2l6ZSk7Cisg
ICAgfQorCisgICAgc2V0V2lkdGgod2lkdGgpIHsKKyAgICAgICAgdGhpcy5tX3JlY3Quc2V0V2lk
dGgod2lkdGgpOworICAgIH0KKworICAgIHNldEhlaWdodChoZWlnaHQpIHsKKyAgICAgICAgdGhp
cy5tX3JlY3Quc2V0SGVpZ2h0KGhlaWdodCk7CisgICAgfQorCisgICAgaXNDb250YWluZXIoKSB7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpc0Jsb2NrTGV2ZWxCb3goKSB7
CisgICAgICAgIHJldHVybiBVdGlscy5pc0Jsb2NrTGV2ZWxFbGVtZW50KHRoaXMubm9kZSgpKTsK
KyAgICB9CisKKyAgICBpc0Jsb2NrQ29udGFpbmVyQm94KCkgeworICAgICAgICByZXR1cm4gVXRp
bHMuaXNCbG9ja0NvbnRhaW5lckVsZW1lbnQodGhpcy5ub2RlKCkpOworICAgIH0KKworICAgIGlz
SW5saW5lTGV2ZWxCb3goKSB7CisgICAgICAgIHJldHVybiBVdGlscy5pc0lubGluZUxldmVsRWxl
bWVudCh0aGlzLm5vZGUoKSk7CisgICAgfQorCisgICAgc2V0SXNBbm9ueW1vdXMoKSB7CisgICAg
ICAgIHRoaXMubV9pc0Fub255bW91cyA9IHRydWU7CisgICAgfQorCisgICAgaXNBbm9ueW1vdXMo
KSB7CisgICAgICAgIHJldHVybiB0aGlzLm1faXNBbm9ueW1vdXM7CisgICAgfQorCisgICAgZXN0
YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpIHsKKyAgICAgICAgaWYgKHRoaXMuaXNBbm9ueW1v
dXMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRoaXMuZXN0
YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgfHwgdGhpcy5lc3RhYmxpc2hlc0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0KCk7CisgICAgfQorCisgICAgZXN0YWJsaXNoZWRGb3JtYXR0aW5n
Q29udGV4dCgpIHsKKyAgICAgICAgaWYgKHRoaXMuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4
dCgpICYmICF0aGlzLm1fZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCkKKyAgICAgICAgICAg
IHRoaXMubV9lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0ID0gdGhpcy5lc3RhYmxpc2hlc0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQoKSA/IG5ldyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KHRoaXMp
IDogbmV3IElubGluZUZvcm1hdHRpbmdDb250ZXh0KHRoaXMpOworICAgICAgICByZXR1cm4gdGhp
cy5tX2VzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQ7CisgICAgfQorCisgICAgZXN0YWJsaXNo
ZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgeworICAgICAgICAvLyA5LjQuMSBCbG9jayBmb3Jt
YXR0aW5nIGNvbnRleHRzCisgICAgICAgIC8vIEZsb2F0cywgYWJzb2x1dGVseSBwb3NpdGlvbmVk
IGVsZW1lbnRzLCBibG9jayBjb250YWluZXJzIChzdWNoIGFzIGlubGluZS1ibG9ja3MsIHRhYmxl
LWNlbGxzLCBhbmQgdGFibGUtY2FwdGlvbnMpCisgICAgICAgIC8vIHRoYXQgYXJlIG5vdCBibG9j
ayBib3hlcywgYW5kIGJsb2NrIGJveGVzIHdpdGggJ292ZXJmbG93JyBvdGhlciB0aGFuICd2aXNp
YmxlJyAoZXhjZXB0IHdoZW4gdGhhdCB2YWx1ZSBoYXMgYmVlbiBwcm9wYWdhdGVkIHRvIHRoZSB2
aWV3cG9ydCkKKyAgICAgICAgLy8gZXN0YWJsaXNoIG5ldyBibG9jayBmb3JtYXR0aW5nIGNvbnRl
eHRzIGZvciB0aGVpciBjb250ZW50cy4KKyAgICAgICAgcmV0dXJuIHRoaXMuaXNGbG9hdGluZ1Bv
c2l0aW9uZWQoKSB8fCB0aGlzLmlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgfHwgKHRoaXMuaXNCbG9j
a0NvbnRhaW5lckJveCgpICYmICF0aGlzLmlzQmxvY2tMZXZlbEJveCgpKQorICAgICAgICAgICAg
fHwgKHRoaXMuaXNCbG9ja0xldmVsQm94KCkgJiYgIVV0aWxzLmlzT3ZlcmZsb3dWaXNpYmxlKHRo
aXMpKTsKKyAgICB9CisKKyAgICBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkg
eworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaXNQb3NpdGlvbmVkKCkgewor
ICAgICAgICByZXR1cm4gdGhpcy5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCB0aGlzLmlzUmVs
YXRpdmVQb3NpdGlvbmVkKCk7CisgICAgfQorCisgICAgaXNSZWxhdGl2ZVBvc2l0aW9uZWQoKSB7
CisgICAgICAgIHJldHVybiBVdGlscy5pc1JlbGF0aXZlUG9zaXRpb25lZCh0aGlzKTsKKyAgICB9
CisKKyAgICBpc0Fic29sdXRlUG9zaXRpb25lZCgpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmlz
QWJzb2x1dGVQb3NpdGlvbmVkKHRoaXMpOworICAgIH0KKworICAgIGlzRml4ZWRQb3NpdGlvbmVk
KCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaXNGaXhlZFBvc2l0aW9uZWQodGhpcyk7CisgICAg
fQorCisgICAgaXNJbkZsb3coKSB7CisgICAgICAgIGlmICh0aGlzLmlzQW5vbnltb3VzKCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuICF0aGlzLmlzRmxvYXRpbmdP
ck91dE9mRmxvd1Bvc2l0aW9uZWQoKTsKKyAgICB9CisKKyAgICBpc091dE9mRmxvd1Bvc2l0aW9u
ZWQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgfHwgdGhp
cy5pc0ZpeGVkUG9zaXRpb25lZCgpOworICAgIH0KKworICAgIGlzSW5GbG93UG9zaXRpb25lZCgp
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaXNQb3NpdGlvbmVkKCkgJiYgIXRoaXMuaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCk7CisgICAgfQorCisgICAgaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSB7Cisg
ICAgICAgIHJldHVybiBVdGlscy5pc0Zsb2F0aW5nUG9zaXRpb25lZCh0aGlzKTsKKyAgICB9CisK
KyAgICBpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkgeworICAgICAgICByZXR1cm4g
dGhpcy5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IHRoaXMuaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCk7CisgICAgfQorCisgICAgaXNSb290RWxlbWVudCgpIHsKKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGp1c3QgYmUgYSBzaW1wbGUgaW5zdGFuY2VvZiBjaGVjaywgYnV0IHdlIGFyZSBp
biB0aGUgbWFpbmZyYW1lIHdoaWxlIHRoZSB0ZXN0IGRvY3VtZW50IGlzIGluIGFuIGlmcmFtZQor
ICAgICAgICAvLyBMZXQncyBqdXN0IHJldHVybiByb290IGZvciBib3RoIHRoZSBSZW5kZXJWaWV3
IGFuZCB0aGUgPGh0bWw+IGVsZW1lbnQuCisgICAgICAgIHJldHVybiAhdGhpcy5wYXJlbnQoKSB8
fCAhdGhpcy5wYXJlbnQoKS5wYXJlbnQoKTsKKyAgICB9CisKKyAgICBjb250YWluaW5nQmxvY2so
KSB7CisgICAgICAgIGlmICghdGhpcy5wYXJlbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxs
OworICAgICAgICBpZiAoIXRoaXMuaXNQb3NpdGlvbmVkKCkgfHwgdGhpcy5pc0luRmxvd1Bvc2l0
aW9uZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudCgpOworICAgICAgICBsZXQg
cGFyZW50ID0gdGhpcy5wYXJlbnQoKTsKKyAgICAgICAgd2hpbGUgKHBhcmVudC5wYXJlbnQoKSkg
eworICAgICAgICAgICAgaWYgKHRoaXMuaXNBYnNvbHV0ZVBvc2l0aW9uZWQoKSAmJiBwYXJlbnQu
aXNQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDsKKyAgICAgICAg
ICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
cGFyZW50OworICAgIH0KKworICAgIGJvcmRlckJveCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBM
YXlvdXRSZWN0KG5ldyBMYXlvdXRQb2ludCgwLCAwKSwgdGhpcy5yZWN0KCkuc2l6ZSgpKTsKKyAg
ICB9CisKKyAgICBwYWRkaW5nQm94KCkgeworICAgICAgICBsZXQgcGFkZGluZ0JveCA9IHRoaXMu
Ym9yZGVyQm94KCk7CisgICAgICAgIGxldCBib3JkZXJTaXplID0gVXRpbHMuY29tcHV0ZWRCb3Jk
ZXJUb3BMZWZ0KHRoaXMpOworICAgICAgICBwYWRkaW5nQm94Lm1vdmVCeShib3JkZXJTaXplKTsK
KyAgICAgICAgcGFkZGluZ0JveC5zaHJpbmtCeShib3JkZXJTaXplKTsKKyAgICAgICAgcGFkZGlu
Z0JveC5zaHJpbmtCeShVdGlscy5jb21wdXRlZEJvcmRlckJvdHRvbVJpZ2h0KHRoaXMpKTsKKyAg
ICAgICAgcmV0dXJuIHBhZGRpbmdCb3g7CisgICAgfQorCisgICAgY29udGVudEJveCgpIHsKKyAg
ICAgICAgbGV0IGNvbnRlbnRCb3ggPSB0aGlzLnBhZGRpbmdCb3goKTsKKyAgICAgICAgbGV0IHBh
ZGRpbmdTaXplID0gVXRpbHMuY29tcHV0ZWRQYWRkaW5nVG9wTGVmdCh0aGlzKTsKKyAgICAgICAg
Y29udGVudEJveC5tb3ZlQnkocGFkZGluZ1NpemUpOworICAgICAgICBjb250ZW50Qm94LnNocmlu
a0J5KHBhZGRpbmdTaXplKTsKKyAgICAgICAgY29udGVudEJveC5zaHJpbmtCeShVdGlscy5jb21w
dXRlZFBhZGRpbmdCb3R0b21SaWdodCh0aGlzKSk7CisgICAgICAgIHJldHVybiBjb250ZW50Qm94
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0NvbnRhaW5lci5q
cyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0NvbnRhaW5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGY2MzEw
MmZlYTBmMGQyYWM2MDNlNTU4MGJjMzZiYmJkMWQ0YmE0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvQ29udGFpbmVyLmpzCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBDb250YWluZXIgZXh0
ZW5kcyBCb3ggeworICAgIGNvbnN0cnVjdG9yKG5vZGUsIGlkKSB7CisgICAgICAgIHN1cGVyKG5v
ZGUsIGlkKTsKKyAgICAgICAgdGhpcy5tX2ZpcnN0Q2hpbGQgPSBudWxsOworICAgICAgICB0aGlz
Lm1fbGFzdENoaWxkID0gbnVsbDsKKyAgICB9CisKKyAgICBpc0NvbnRhaW5lcigpIHsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc2V0Rmlyc3RDaGlsZChmaXJzdENoaWxkKSB7
CisgICAgICAgIHRoaXMubV9maXJzdENoaWxkID0gZmlyc3RDaGlsZDsKKyAgICB9CisgICAgCisg
ICAgc2V0TGFzdENoaWxkKGxhc3RDaGlsZCkgeworICAgICAgICB0aGlzLm1fbGFzdENoaWxkID0g
bGFzdENoaWxkOworICAgIH0KKworICAgIGZpcnN0Q2hpbGQoKSB7CisgICAgICAgIHJldHVybiB0
aGlzLm1fZmlyc3RDaGlsZDsKKyAgICB9CisKKyAgICBmaXJzdEluRmxvd0NoaWxkKCkgeworICAg
ICAgICBpZiAoIXRoaXMuaGFzQ2hpbGQoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAg
ICAgICBsZXQgZmlyc3RDaGlsZCA9IHRoaXMuZmlyc3RDaGlsZCgpOworICAgICAgICBpZiAoZmly
c3RDaGlsZC5pc0luRmxvdygpKQorICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7CisgICAg
ICAgIHJldHVybiBmaXJzdENoaWxkLm5leHRJbkZsb3dTaWJsaW5nKCk7CisgICAgfQorCisgICAg
bGFzdENoaWxkKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2xhc3RDaGlsZDsKKyAgICB9CisK
KyAgICBsYXN0SW5GbG93Q2hpbGQoKSB7CisgICAgICAgIGlmICghdGhpcy5oYXNDaGlsZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIGxldCBsYXN0Q2hpbGQgPSB0aGlzLmxh
c3RDaGlsZCgpOworICAgICAgICBpZiAobGFzdENoaWxkLmlzSW5GbG93KCkpCisgICAgICAgICAg
ICByZXR1cm4gbGFzdENoaWxkOworICAgICAgICByZXR1cm4gbGFzdENoaWxkLnByZXZpb3VzSW5G
bG93U2libGluZygpOworICAgIH0KKworICAgIGhhc0NoaWxkKCkgeworICAgICAgICByZXR1cm4g
ISF0aGlzLmZpcnN0Q2hpbGQoKTsKKyAgICB9CisKKyAgICBoYXNJbkZsb3dDaGlsZCgpIHsKKyAg
ICAgICAgcmV0dXJuICEhdGhpcy5maXJzdEluRmxvd0NoaWxkKCk7CisgICAgfQorfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRmxvYXRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvRmxvYXRpbmdDb250ZXh0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MzIxMjhkNGQ2NTk3
ZGRkOWE1NTE3ZmVmY2I4ODViYTZmNzA5MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC9GbG9hdGluZ0NvbnRleHQuanMKQEAgLTAsMCArMSwxOTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBGbG9hdGluZ0NvbnRl
eHQgeworICAgIGNvbnN0cnVjdG9yKGZvcm1hdHRpbmdDb250ZXh0KSB7CisgICAgICAgIHRoaXMu
bV9sZWZ0RmxvYXRpbmdCb3hTdGFjayA9IG5ldyBBcnJheSgpOworICAgICAgICB0aGlzLm1fcmln
aHRGbG9hdGluZ0JveFN0YWNrID0gbmV3IEFycmF5KCk7CisgICAgICAgIHRoaXMubV9sYXN0Rmxv
YXRpbmcgPSBudWxsOworICAgICAgICB0aGlzLm1fZm9ybWF0dGluZ0NvbnRleHQgPSBmb3JtYXR0
aW5nQ29udGV4dDsKKyAgICB9CisKKyAgICBjb21wdXRlUG9zaXRpb24oYm94KSB7CisgICAgICAg
IGlmIChib3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gYm94
LnRvcExlZnQoKTsKKyAgICAgICAgaWYgKGJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKSB7Cisg
ICAgICAgICAgICBsZXQgcG9zaXRpb24gPSB0aGlzLl9wb3NpdGlvbkZvckZsb2F0aW5nKGJveCk7
CisgICAgICAgICAgICB0aGlzLl9hZGRGbG9hdGluZyhib3gpOworICAgICAgICAgICAgcmV0dXJu
IHBvc2l0aW9uOworICAgICAgICB9CisgICAgICAgIGlmIChVdGlscy5oYXNDbGVhcihib3gpKQor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uRm9yQ2xlYXIoYm94KTsKKyAgICAgICAg
Ly8gSW50cnVkaW5nIGZsb2F0cyBtaWdodCBmb3JjZSB0aGlzIGJveCBtb3ZlLgorICAgICAgICBy
ZXR1cm4gdGhpcy5fY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEludHJ1ZGluZ0Zsb2F0cyhib3gpOwor
ICAgIH0KKworICAgIGJvdHRvbSgpIHsKKyAgICAgICAgbGV0IGxlZnRCb3R0b20gPSB0aGlzLl9i
b3R0b20odGhpcy5tX2xlZnRGbG9hdGluZ0JveFN0YWNrKTsKKyAgICAgICAgbGV0IHJpZ2h0Qm90
dG9tID0gdGhpcy5fYm90dG9tKHRoaXMubV9yaWdodEZsb2F0aW5nQm94U3RhY2spOworICAgICAg
ICBpZiAoTnVtYmVyLmlzTmFOKGxlZnRCb3R0b20pICYmIE51bWJlci5pc05hTihyaWdodEJvdHRv
bSkpCisgICAgICAgICAgICByZXR1cm4gTnVtYmVyLk5hTjsKKyAgICAgICAgaWYgKCFOdW1iZXIu
aXNOYU4obGVmdEJvdHRvbSkgJiYgIU51bWJlci5pc05hTihyaWdodEJvdHRvbSkpCisgICAgICAg
ICAgICByZXR1cm4gTWF0aC5tYXgobGVmdEJvdHRvbSwgcmlnaHRCb3R0b20pOworICAgICAgICBp
ZiAoIU51bWJlci5pc05hTihsZWZ0Qm90dG9tKSkKKyAgICAgICAgICAgIHJldHVybiBsZWZ0Qm90
dG9tOworICAgICAgICByZXR1cm4gcmlnaHRCb3R0b207CisgICAgfQorCisgICAgX3Bvc2l0aW9u
Rm9yRmxvYXRpbmcoZmxvYXRpbmdCb3gpIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZGp1c3RlZEZsb2F0aW5nUG9zaXRpb24oZmxvYXRp
bmdCb3gsIHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJnaW5Cb3goZmxvYXRp
bmdCb3gpLnRvcCgpKTsKKyAgICAgICAgbGV0IHZlcnRpY2FsUG9zaXRpb24gPSBNYXRoLm1heCh0
aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nQm94KS50
b3AoKSwgdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJveCh0aGlzLm1f
bGFzdEZsb2F0aW5nKS50b3AoKSk7CisgICAgICAgIGxldCBzcGFjZU5lZWRlZCA9IHRoaXMuX2Zv
cm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJnaW5Cb3goZmxvYXRpbmdCb3gpLndpZHRoKCk7
CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBsZXQgZmxvYXRpbmdQYWlyID0g
dGhpcy5fZmluZElubmVyTW9zdExlZnRBbmRSaWdodCh2ZXJ0aWNhbFBvc2l0aW9uKTsKKyAgICAg
ICAgICAgIGlmICh0aGlzLl9hdmFpbGFibGVTcGFjZShmbG9hdGluZ0JveC5jb250YWluaW5nQmxv
Y2soKSwgZmxvYXRpbmdQYWlyKSA+PSBzcGFjZU5lZWRlZCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gdGhpcy5fYWRqdXN0ZWRGbG9hdGluZ1Bvc2l0aW9uKGZsb2F0aW5nQm94LCB2ZXJ0aWNhbFBv
c2l0aW9uLCBmbG9hdGluZ1BhaXIpOworICAgICAgICAgICAgdmVydGljYWxQb3NpdGlvbiA9IHRo
aXMuX21vdmVUb05leHRWZXJ0aWNhbFBvc2l0aW9uKGZsb2F0aW5nUGFpcik7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIE1hdGguTmFuOworICAgIH0KKworICAgIF9wb3NpdGlvbkZvckNsZWFy
KGJveCkgeworICAgICAgICBBU1NFUlQoVXRpbHMuaGFzQ2xlYXIoYm94KSk7CisgICAgICAgIGlm
ICh0aGlzLl9pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gYm94LnRvcExlZnQoKTsKKwor
ICAgICAgICBsZXQgbGVmdEJvdHRvbSA9IE51bWJlci5OYU47CisgICAgICAgIGxldCByaWdodEJv
dHRvbSA9IE51bWJlci5OYU47CisgICAgICAgIGlmIChVdGlscy5oYXNDbGVhckxlZnQoYm94KSB8
fCBVdGlscy5oYXNDbGVhckJvdGgoYm94KSkKKyAgICAgICAgICAgIGxlZnRCb3R0b20gPSB0aGlz
Ll9ib3R0b20odGhpcy5tX2xlZnRGbG9hdGluZ0JveFN0YWNrKTsKKyAgICAgICAgaWYgKFV0aWxz
Lmhhc0NsZWFyUmlnaHQoYm94KSB8fCBVdGlscy5oYXNDbGVhckJvdGgoYm94KSkKKyAgICAgICAg
ICAgIHJpZ2h0Qm90dG9tID0gdGhpcy5fYm90dG9tKHRoaXMubV9yaWdodEZsb2F0aW5nQm94U3Rh
Y2spOworCisgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKGxlZnRCb3R0b20pICYmICFOdW1iZXIu
aXNOYU4ocmlnaHRCb3R0b20pKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRQb2ludChN
YXRoLm1heChsZWZ0Qm90dG9tLCByaWdodEJvdHRvbSksIGJveC5yZWN0KCkubGVmdCgpKTsKKyAg
ICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obGVmdEJvdHRvbSkpCisgICAgICAgICAgICByZXR1cm4g
bmV3IExheW91dFBvaW50KGxlZnRCb3R0b20sIGJveC5yZWN0KCkubGVmdCgpKTsKKyAgICAgICAg
aWYgKCFOdW1iZXIuaXNOYU4ocmlnaHRCb3R0b20pKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBM
YXlvdXRQb2ludChyaWdodEJvdHRvbSwgYm94LnJlY3QoKS5sZWZ0KCkpOworICAgICAgICByZXR1
cm4gYm94LnRvcExlZnQoKTsKKyAgICB9CisKKyAgICBfY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZElu
dHJ1ZGluZ0Zsb2F0cyhib3gpIHsKKyAgICAgICAgaWYgKCFib3guZXN0YWJsaXNoZXNCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0KCkgfHwgdGhpcy5faXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJu
IGJveC50b3BMZWZ0KCk7CisgICAgICAgIC8vIFRoZSBib3JkZXIgYm94IG9mIGEgdGFibGUsIGEg
YmxvY2stbGV2ZWwgcmVwbGFjZWQgZWxlbWVudCwgb3IgYW4gZWxlbWVudCBpbiB0aGUgbm9ybWFs
IGZsb3cgdGhhdCBlc3RhYmxpc2hlcworICAgICAgICAvLyBhIG5ldyBibG9jayBmb3JtYXR0aW5n
IGNvbnRleHQgKHN1Y2ggYXMgYW4gZWxlbWVudCB3aXRoICdvdmVyZmxvdycgb3RoZXIgdGhhbiAn
dmlzaWJsZScpIG11c3Qgbm90IG92ZXJsYXAgdGhlCisgICAgICAgIC8vIG1hcmdpbiBib3ggb2Yg
YW55IGZsb2F0cyBpbiB0aGUgc2FtZSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgYXMgdGhlIGVs
ZW1lbnQgaXRzZWxmLgorICAgICAgICAvLyBGb3Igc29tZSByZWFzb24sIHdlIHBvc2l0aW9uIHRo
aXMgYXMgaWYgaXQgd2FzIGZsb2F0aW5nIGxlZnQuCisgICAgICAgIHJldHVybiB0aGlzLl9wb3Np
dGlvbkZvckZsb2F0aW5nKGJveCk7CisgICAgfQorCisgICAgX2FkZEZsb2F0aW5nKGZsb2F0aW5n
Qm94KSB7CisgICAgICAgIHRoaXMubV9sYXN0RmxvYXRpbmcgPSBmbG9hdGluZ0JveDsKKyAgICAg
ICAgaWYgKFV0aWxzLmlzRmxvYXRpbmdMZWZ0KGZsb2F0aW5nQm94KSkgeworICAgICAgICAgICAg
dGhpcy5tX2xlZnRGbG9hdGluZ0JveFN0YWNrLnB1c2goZmxvYXRpbmdCb3gpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRoaXMubV9yaWdodEZsb2F0aW5nQm94U3Rh
Y2sucHVzaChmbG9hdGluZ0JveCk7CisgICAgfQorCisgICAgX2ZpbmRJbm5lck1vc3RMZWZ0QW5k
UmlnaHQodmVydGljYWxQb3NpdGlvbikgeworICAgICAgICBsZXQgbGVmdEZsb2F0aW5nID0gdGhp
cy5fZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKHZlcnRpY2FsUG9zaXRpb24sIHRoaXMu
bV9sZWZ0RmxvYXRpbmdCb3hTdGFjayk7CisgICAgICAgIGxldCByaWdodEZsb2F0aW5nID0gdGhp
cy5fZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKHZlcnRpY2FsUG9zaXRpb24sIHRoaXMu
bV9yaWdodEZsb2F0aW5nQm94U3RhY2spOworICAgICAgICByZXR1cm4geyBsZWZ0OiBsZWZ0Rmxv
YXRpbmcsIHJpZ2h0OiByaWdodEZsb2F0aW5nIH07CisgICAgfQorCisgICAgX21vdmVUb05leHRW
ZXJ0aWNhbFBvc2l0aW9uKGZsb2F0aW5nUGFpcikgeworICAgICAgICBpZiAoIWZsb2F0aW5nUGFp
ci5sZWZ0ICYmICFmbG9hdGluZ1BhaXIucmlnaHQpCisgICAgICAgICAgICByZXR1cm4gTWF0aC5O
YU47CisgICAgICAgIGxldCBsZWZ0Qm90dG9tID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwor
ICAgICAgICBsZXQgcmlnaHRCb3R0b20gPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAg
ICAgIGlmIChmbG9hdGluZ1BhaXIubGVmdCkKKyAgICAgICAgICAgIGxlZnRCb3R0b20gPSB0aGlz
Ll9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0aW5nUGFpci5sZWZ0
KS5ib3R0b20oKTsKKyAgICAgICAgaWYgKGZsb2F0aW5nUGFpci5yaWdodCkKKyAgICAgICAgICAg
IHJpZ2h0Qm90dG9tID0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZU1hcmdpbkJv
eChmbG9hdGluZ1BhaXIucmlnaHQpLmJvdHRvbSgpOworICAgICAgICByZXR1cm4gTWF0aC5taW4o
bGVmdEJvdHRvbSwgcmlnaHRCb3R0b20pOworICAgIH0KKworICAgIF9hdmFpbGFibGVTcGFjZShj
b250YWluaW5nQmxvY2ssIGZsb2F0aW5nUGFpcikgeworICAgICAgICBpZiAoZmxvYXRpbmdQYWly
LmxlZnQgJiYgZmxvYXRpbmdQYWlyLnJpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zv
cm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJnaW5Cb3goZmxvYXRpbmdQYWlyLnJpZ2h0KS5s
ZWZ0KCkgLSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2luQm94KGZsb2F0
aW5nUGFpci5sZWZ0KS5yaWdodCgpOworICAgICAgICBpZiAoZmxvYXRpbmdQYWlyLmxlZnQpCisg
ICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrLmNvbnRlbnRCb3goKS53aWR0aCgpIC0g
KHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVNYXJnaW5Cb3goZmxvYXRpbmdQYWly
LmxlZnQpLnJpZ2h0KCkgLSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlQm9yZGVy
Qm94KGNvbnRhaW5pbmdCbG9jaykubGVmdCgpKTsKKyAgICAgICAgaWYgKGZsb2F0aW5nUGFpci5y
aWdodCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29s
dXRlTWFyZ2luQm94KGZsb2F0aW5nUGFpci5yaWdodCkubGVmdCgpOworICAgICAgICByZXR1cm4g
Y29udGFpbmluZ0Jsb2NrLmNvbnRlbnRCb3goKS53aWR0aCgpOworICAgIH0KKworICAgIF9maW5k
RmxvYXRpbmdBdFZlcnRpY2FsUG9zaXRpb24odmVydGljYWxQb3NpdGlvbiwgZmxvYXRpbmdTdGFj
aykgeworICAgICAgICBsZXQgaW5kZXggPSBmbG9hdGluZ1N0YWNrLmxlbmd0aDsKKyAgICAgICAg
d2hpbGUgKC0taW5kZXggPj0gMCAmJiB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRl
TWFyZ2luQm94KGZsb2F0aW5nU3RhY2tbaW5kZXhdKS5ib3R0b20oKSA8PSB2ZXJ0aWNhbFBvc2l0
aW9uKTsKKyAgICAgICAgcmV0dXJuIGluZGV4ID49IDAgPyBmbG9hdGluZ1N0YWNrW2luZGV4XSA6
IG51bGw7CisgICAgfQorCisgICAgX2lzRW1wdHkoKSB7CisgICAgICAgIHJldHVybiAhdGhpcy5t
X2xlZnRGbG9hdGluZ0JveFN0YWNrLmxlbmd0aCAmJiAhdGhpcy5tX3JpZ2h0RmxvYXRpbmdCb3hT
dGFjay5sZW5ndGg7CisgICAgfQorCisgICAgX2FkanVzdGVkRmxvYXRpbmdQb3NpdGlvbihmbG9h
dGluZ0JveCwgdmVydGljYWxQb3NpdGlvbiwgbGVmdFJpZ2h0RmxvYXRpbmdzKSB7CisgICAgICAg
IGxldCBjb250YWluaW5nQmxvY2sgPSBmbG9hdGluZ0JveC5jb250YWluaW5nQmxvY2soKTsKKyAg
ICAgICAgLy8gQ29udmVydCBhbGwgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gZm9ybWF0dGluZyBj
b250ZXh0J3Mgcm9vdC4KKyAgICAgICAgbGV0IGxlZnQgPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4
dCgpLmFic29sdXRlQ29udGVudEJveChjb250YWluaW5nQmxvY2spLmxlZnQoKTsKKyAgICAgICAg
bGV0IHJpZ2h0ID0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQoKS5hYnNvbHV0ZUNvbnRlbnRCb3go
Y29udGFpbmluZ0Jsb2NrKS5yaWdodCgpOworICAgICAgICBpZiAobGVmdFJpZ2h0RmxvYXRpbmdz
KSB7CisgICAgICAgICAgICBpZiAobGVmdFJpZ2h0RmxvYXRpbmdzLmxlZnQpIHsKKyAgICAgICAg
ICAgICAgICBsZXQgZmxvYXRpbmdCb3hSaWdodCA9IHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCku
YWJzb2x1dGVNYXJnaW5Cb3gobGVmdFJpZ2h0RmxvYXRpbmdzLmxlZnQpLnJpZ2h0KCk7CisgICAg
ICAgICAgICAgICAgaWYgKGZsb2F0aW5nQm94UmlnaHQgPiBsZWZ0KQorICAgICAgICAgICAgICAg
ICAgICBsZWZ0ID0gZmxvYXRpbmdCb3hSaWdodDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKGxlZnRSaWdodEZsb2F0aW5ncy5yaWdodCkgeworICAgICAgICAgICAgICAgIGxldCBm
bG9hdGluZ0JveExlZnQgPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLmFic29sdXRlTWFyZ2lu
Qm94KGxlZnRSaWdodEZsb2F0aW5ncy5yaWdodCkubGVmdCgpOworICAgICAgICAgICAgICAgIGlm
IChmbG9hdGluZ0JveExlZnQgPCByaWdodCkKKyAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSBm
bG9hdGluZ0JveExlZnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbGVmdCAr
PSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLm1hcmdpbkxlZnQoZmxvYXRpbmdCb3gpOworICAg
ICAgICByaWdodCAtPSB0aGlzLl9mb3JtYXR0aW5nQ29udGV4dCgpLm1hcmdpblJpZ2h0KGZsb2F0
aW5nQm94KTsKKyAgICAgICAgdmVydGljYWxQb3NpdGlvbiArPSB0aGlzLl9mb3JtYXR0aW5nQ29u
dGV4dCgpLm1hcmdpblRvcChmbG9hdGluZ0JveCk7CisgICAgICAgIC8vIE5vIGNvbnZlcnQgdGhl
bSBiYWNrIHJlbGF0aXZlIHRvIHRoZSBmbG9hdGluZ0JveCdzIGNvbnRhaW5pbmcgYmxvY2suCisg
ICAgICAgIGxldCBjb250YWluaW5nQmxvY2tMZWZ0ID0gdGhpcy5fZm9ybWF0dGluZ0NvbnRleHQo
KS5hYnNvbHV0ZUJvcmRlckJveChjb250YWluaW5nQmxvY2spLmxlZnQoKTsKKyAgICAgICAgbGV0
IGNvbnRhaW5pbmdCbG9ja1RvcCA9IHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJzb2x1dGVC
b3JkZXJCb3goY29udGFpbmluZ0Jsb2NrKS50b3AoKTsKKyAgICAgICAgbGVmdCAtPSBjb250YWlu
aW5nQmxvY2tMZWZ0OworICAgICAgICByaWdodCAtPSBjb250YWluaW5nQmxvY2tMZWZ0OworICAg
ICAgICB2ZXJ0aWNhbFBvc2l0aW9uIC09IGNvbnRhaW5pbmdCbG9ja1RvcDsKKworICAgICAgICBp
ZiAoVXRpbHMuaXNGbG9hdGluZ0xlZnQoZmxvYXRpbmdCb3gpIHx8ICFVdGlscy5pc0Zsb2F0aW5n
UG9zaXRpb25lZChmbG9hdGluZ0JveCkpCisgICAgICAgICAgICByZXR1cm4gbmV3IExheW91dFBv
aW50KHZlcnRpY2FsUG9zaXRpb24sIGxlZnQpOworICAgICAgICByZXR1cm4gbmV3IExheW91dFBv
aW50KHZlcnRpY2FsUG9zaXRpb24sIHJpZ2h0IC0gZmxvYXRpbmdCb3gucmVjdCgpLndpZHRoKCkp
OworICAgIH0KKworICAgIF9ib3R0b20oZmxvYXRpbmdTdGFjaykgeworICAgICAgICBpZiAoIWZs
b2F0aW5nU3RhY2sgfHwgIWZsb2F0aW5nU3RhY2subGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJu
IE51bWJlci5OYU47CisgICAgICAgIGxldCBtYXggPSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7
CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmxvYXRpbmdTdGFjay5sZW5ndGg7ICsraSkK
KyAgICAgICAgICAgIG1heCA9IE1hdGgubWF4KHRoaXMuX2Zvcm1hdHRpbmdDb250ZXh0KCkuYWJz
b2x1dGVNYXJnaW5Cb3goZmxvYXRpbmdTdGFja1tpXSkuYm90dG9tKCksIG1heCk7CisgICAgICAg
IHJldHVybiBtYXg7CisgICAgfQorCisgICAgX2Zvcm1hdHRpbmdDb250ZXh0KCkgeworICAgICAg
ICByZXR1cm4gdGhpcy5tX2Zvcm1hdHRpbmdDb250ZXh0OworICAgIH0KK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMyYzNjMjQ5YTMzZTUw
NjU2NDlmMjg0MzFmODNhNWQ3M2YwYmU3NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0LmpzCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBGb3JtYXR0aW5nQ29u
dGV4dCB7CisgICAgY29uc3RydWN0b3Iocm9vdENvbnRhaW5lcikgeworICAgICAgICB0aGlzLm1f
cm9vdENvbnRhaW5lciA9IHJvb3RDb250YWluZXI7CisgICAgICAgIHRoaXMubV9mbG9hdGluZ0Nv
bnRleHQgPSBudWxsOworICAgIH0KKworICAgIHJvb3RDb250YWluZXIoKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLm1fcm9vdENvbnRhaW5lcjsKKyAgICB9CisKKyAgICBmbG9hdGluZ0NvbnRleHQo
KSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fZmxvYXRpbmdDb250ZXh0OworICAgIH0KKworICAg
IGxheW91dChsYXlvdXRDb250ZXh0KSB7CisgICAgfQorCisgICAgY29tcHV0ZVdpZHRoKGJveCkg
eworICAgIH0KKworICAgIGNvbXB1dGVIZWlnaHQoYm94KSB7CisgICAgfQorCisgICAgbWFyZ2lu
VG9wKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRNYXJnaW5Ub3AoYm94KTsK
KyAgICB9CisgICAgCisgICAgbWFyZ2luTGVmdChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxz
LmNvbXB1dGVkTWFyZ2luTGVmdChib3gpOworICAgIH0KKyAgICAKKyAgICBtYXJnaW5Cb3R0b20o
Ym94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5jb21wdXRlZE1hcmdpbkJvdHRvbShib3gpOwor
ICAgIH0KKyAgICAKKyAgICBtYXJnaW5SaWdodChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxz
LmNvbXB1dGVkTWFyZ2luUmlnaHQoYm94KTsKKyAgICB9CisKKyAgICBhYnNvbHV0ZU1hcmdpbkJv
eChib3gpIHsKKyAgICAgICAgbGV0IGFic29sdXRlQ29udGVudEJveCA9IFV0aWxzLm1hcFRvQ29u
dGFpbmVyKGJveCwgdGhpcy5yb290Q29udGFpbmVyKCkpOworICAgICAgICBhYnNvbHV0ZUNvbnRl
bnRCb3gubW92ZUJ5KG5ldyBMYXlvdXRTaXplKC10aGlzLm1hcmdpbkxlZnQoYm94KSwgLXRoaXMu
bWFyZ2luVG9wKGJveCkpKTsKKyAgICAgICAgYWJzb2x1dGVDb250ZW50Qm94Lmdyb3dCeShuZXcg
TGF5b3V0U2l6ZSh0aGlzLm1hcmdpbkxlZnQoYm94KSArIHRoaXMubWFyZ2luUmlnaHQoYm94KSwg
dGhpcy5tYXJnaW5Ub3AoYm94KSArIHRoaXMubWFyZ2luQm90dG9tKGJveCkpKTsKKyAgICAgICAg
cmV0dXJuIGFic29sdXRlQ29udGVudEJveDsKKyAgICB9CisKKyAgICBhYnNvbHV0ZUJvcmRlckJv
eChib3gpIHsKKyAgICAgICAgbGV0IGJvcmRlckJveCA9IGJveC5ib3JkZXJCb3goKTsKKyAgICAg
ICAgbGV0IGFic29sdXRlUmVjdCA9IG5ldyBMYXlvdXRSZWN0KFV0aWxzLm1hcFRvQ29udGFpbmVy
KGJveCwgdGhpcy5yb290Q29udGFpbmVyKCkpLnRvcExlZnQoKSwgYm9yZGVyQm94LnNpemUoKSk7
CisgICAgICAgIGFic29sdXRlUmVjdC5tb3ZlQnkoYm9yZGVyQm94LnRvcExlZnQoKSk7CisgICAg
ICAgIHJldHVybiBhYnNvbHV0ZVJlY3Q7CisgICAgfQorCisgICAgYWJzb2x1dGVQYWRkaW5nQm94
KGJveCkgeworICAgICAgICBsZXQgcGFkZGluZ0JveCA9IGJveC5wYWRkaW5nQm94KCk7CisgICAg
ICAgIGxldCBhYnNvbHV0ZVJlY3QgPSBuZXcgTGF5b3V0UmVjdChVdGlscy5tYXBUb0NvbnRhaW5l
cihib3gsIHRoaXMucm9vdENvbnRhaW5lcigpKS50b3BMZWZ0KCksIHBhZGRpbmdCb3guc2l6ZSgp
KTsKKyAgICAgICAgYWJzb2x1dGVSZWN0Lm1vdmVCeShwYWRkaW5nQm94LnRvcExlZnQoKSk7Cisg
ICAgICAgIHJldHVybiBhYnNvbHV0ZVJlY3Q7CisgICAgfQorCisgICAgYWJzb2x1dGVDb250ZW50
Qm94KGJveCkgeworICAgICAgICBsZXQgY29udGVudEJveCA9IGJveC5jb250ZW50Qm94KCk7Cisg
ICAgICAgIGxldCBhYnNvbHV0ZVJlY3QgPSBuZXcgTGF5b3V0UmVjdChVdGlscy5tYXBUb0NvbnRh
aW5lcihib3gsIHRoaXMucm9vdENvbnRhaW5lcigpKS50b3BMZWZ0KCksIGNvbnRlbnRCb3guc2l6
ZSgpKTsKKyAgICAgICAgYWJzb2x1dGVSZWN0Lm1vdmVCeShjb250ZW50Qm94LnRvcExlZnQoKSk7
CisgICAgICAgIHJldHVybiBhYnNvbHV0ZVJlY3Q7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmpzIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvSW5pdGlhbEJsb2NrQ29udGFpbmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYWI1NDhlMTdh
NWU0ZWFhZjdhNTQxM2JjMjE1OThmMWJmMzc4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC9Jbml0aWFsQmxvY2tDb250YWluZXIuanMKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NsYXNzIEluaXRp
YWxCbG9ja0NvbnRhaW5lciBleHRlbmRzIEJsb2NrQ29udGFpbmVyIHsKKyAgICBjb25zdHJ1Y3Rv
cihkb2N1bWVudCwgaWQsIG5hbWUpIHsKKyAgICAgICAgc3VwZXIoZG9jdW1lbnQsIGlkKTsKKyAg
ICB9CisKKyAgICBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSB7CisgICAgICAg
IC8vIElDQiBhbHdheXMgY3JlYXRlcyBhIG5ldyAoaW5pdGFsKSBibG9jayBmb3JtYXR0aW5nIGNv
bnRleHQuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHBhZGRpbmdCb3goKSB7
CisgICAgICAgIHJldHVybiB0aGlzLmJvcmRlckJveCgpOworICAgIH0KKworICAgIGNvbnRlbnRC
b3goKSB7CisgICAgICAgIHJldHVybiB0aGlzLmJvcmRlckJveCgpOworICAgIH0KK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0lubGluZUJveC5qcyBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL0lubGluZUJveC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTJlZDUwNDMwN2MxOGRkMWU5M2Y4MzRl
YTA2MzI5NmY3ZGZlZGFhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
SW5saW5lQm94LmpzCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitjbGFzcyBJbmxpbmVCb3ggZXh0ZW5kcyBCb3ggeworICAgIGNv
bnN0cnVjdG9yKG5vZGUsIGlkKSB7CisgICAgICAgIHN1cGVyKG5vZGUsIGlkKTsKKyAgICAgICAg
dGhpcy5tX3RleHQgPSBudWxsOworICAgIH0KKworICAgIHNldFRleHQodGV4dCkgeworICAgICAg
ICB0aGlzLm1fdGV4dCA9IHRleHQ7CisgICAgfQorCisgICAgdGV4dCgpIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMubV90ZXh0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZiMDNmNjZlZWQ3OWI2OGQ2MjQ0
Y2EyZGVmMjdkM2ZkNDkwNDllMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworY2xhc3MgSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5nQ29udGV4dCB7CisgICAgY29uc3RydWN0b3Iocm9v
dCkgeworICAgICAgICBzdXBlcihyb290KTsKKyAgICAgICAgLy8gSWYgdGhlIGJsb2NrIGNvbnRh
aW5lciBib3ggdGhhdCBpbml0aWF0ZXMgdGhpcyBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXggYWxz
byBlc3RhYmxpc2hlcyBhIGJsb2NrIGNvbnRleHQsIGNyZWF0ZSBhIG5ldyBmbG9hdCBmb3IgdXMu
CisgICAgICAgIEFTU0VSVChyb290LmlzQmxvY2tDb250YWluZXJCb3goKSk7CisgICAgICAgIGlm
IChyb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICAgICAg
dGhpcy5tX2Zsb2F0aW5nQ29udGV4dCA9IG5ldyBGbG9hdGluZ0NvbnRleHQodGhpcyk7CisgICAg
fQorCisgICAgbGF5b3V0KGxheW91dENvbnRleHQpIHsKKyAgICAgICAgLy8gOS40LjIgSW5saW5l
IGZvcm1hdHRpbmcgY29udGV4dHMKKyAgICAgICAgLy8gSW4gYW4gaW5saW5lIGZvcm1hdHRpbmcg
Y29udGV4dCwgYm94ZXMgYXJlIGxhaWQgb3V0IGhvcml6b250YWxseSwgb25lIGFmdGVyIHRoZSBv
dGhlciwgYmVnaW5uaW5nIGF0IHRoZSB0b3Agb2YgYSBjb250YWluaW5nIGJsb2NrLgorICAgICAg
ICBpZiAoIXRoaXMucm9vdENvbnRhaW5lcigpLmZpcnN0Q2hpbGQoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3JkZXIgdHJlZSB0cmF2ZXJzYWwgbGF5
b3V0LgorICAgICAgICBsZXQgbGF5b3V0U3RhY2sgPSBuZXcgQXJyYXkoKTsKKyAgICAgICAgLy8g
VGhlIHJvb3QgY29udGFpbmVyIGxheW91dCBpcyBkb25lIGluIHRoZSBmb3JtYXR0aW5nIGNvbnRl
eHQgaXQgbGl2ZXMgaW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVhdGVzLCBzbyBsZXQncyBzdGFydCB3
aXRoIHRoZSBmaXJzdCBjaGlsZC4KKyAgICAgICAgbGF5b3V0U3RhY2sucHVzaCh0aGlzLnJvb3RD
b250YWluZXIoKS5maXJzdENoaWxkKCkpOworICAgICAgICB3aGlsZSAobGF5b3V0U3RhY2subGVu
Z3RoKSB7CisgICAgICAgICAgICAvLyBUcmF2ZXJzIGRvd24gb24gdGhlIGRlc2NlbmRhbnRzIHVu
dGlsIHdlIGZpbmQgYSBsZWFmIG5vZGUuCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAg
ICAgICAgICAgICAgIGxldCBib3ggPSBsYXlvdXRTdGFja1tsYXlvdXRTdGFjay5sZW5ndGggLSAx
XTsKKyAgICAgICAgICAgICAgICBpZiAoYm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQo
KSkgeworICAgICAgICAgICAgICAgICAgICBsYXlvdXRDb250ZXh0LmxheW91dEZvcm1hdHRpbmdD
b250ZXh0KGJveC5lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KCkpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFi
b3guaXNDb250YWluZXIoKSB8fCAhYm94Lmhhc0NoaWxkKCkpCisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGxheW91dFN0YWNrLnB1c2goYm94LmZpcnN0Q2hpbGQo
KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAobGF5b3V0U3RhY2subGVuZ3Ro
KSB7CisgICAgICAgICAgICAgICAgbGV0IGJveCA9IGxheW91dFN0YWNrLnBvcCgpOworICAgICAg
ICAgICAgICAgIHRoaXMuX2hhbmRsZUlubGluZUJveChib3gpOworICAgICAgICAgICAgICAgIGlm
IChib3gubmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGFjay5w
dXNoKGJveC5uZXh0U2libGluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIEFuZCBm
aW5hbGx5IHBsYWNlIHRoZSBvdXQgb2YgZmxvdyBkZXNjZW5kYW50cyBmb3IgdGhlIHJvb3QuCisg
ICAgICAgIC8vdGhpcy5fcGxhY2VPdXRPZkZsb3dEZXNjZW5kYW50cyh0aGlzLnJvb3RDb250YWlu
ZXIoKSk7CisgICB9CisKKyAgICBfaGFuZGxlSW5saW5lQm94KGlubGluZUJveCkgeworICAgICAg
ICBpZiAoaW5saW5lQm94LnRleHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYW5kbGVU
ZXh0KGlubGluZUJveCk7CisgICAgfQorCisgICAgX2hhbmRsZVRleHQoaW5saW5lQm94KSB7Cisg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgZXh0cmVtZWx5IHNpbXBsZSBsaW5lIGJyZWFraW5n
IGFsZ29yaXRobS4KKyAgICAgICAgbGV0IGVuZFBvc2l0aW9uID0gaW5saW5lQm94LnRleHQoKS5s
ZW5naHQoKSAtIDE7CisgICAgICAgIGxldCBjdXJyZW50UG9zaXRpb24gPSAwOworICAgICAgICB3
aGlsZSAoY3VycmVudFBvc2l0aW9uIDwgZW5kUG9zaXRpb24pIHsKKyAgICAgICAgICAgIGxldCBi
cmVha2luZ1Bvc2l0aW9uID0gVXRpbHMubmV4dEJyZWFraW5nT3Bwb3J0dW5pdHkoaW5saW5lQm94
LnRleHQoKSwgY3VycmVudFBvc2l0aW9uKTsKKyAgICAgICAgICAgIGxldCBmcmFnbWVudFdpZHRo
ID0gVXRpbHMubWVhc3VyZVRleHQoaW5saW5lQm94LCBjdXJyZW50UG9zaXRpb24sIGJyZWFraW5n
UG9zaXRpb24pOworICAgICAgICAgICAgaWYgKHRoaXMubGluZSgpLmF2YWlsYWJsZVdpZHRoKCkg
Pj0gZnJhZ21lbnRXaWR0aCB8fCB0aGlzLmxpbmUoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLmxpbmUoKS5hcHBlbmRGcmFnbWVudChjdXJyZW50UG9zaXRpb24sIGJyZWFraW5n
UG9zaXRpb24sIGZyYWdtZW50V2lkdGgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLmxpbmUoKS5jb21taXRDdXJyZW50TGluZSgpOworICAgICAgICAgICAgICAg
IHRoaXMubGluZSgpLmFwcGVuZEZyYWdtZW50KGN1cnJlbnRQb3NpdGlvbiwgYnJlYWtpbmdQb3Np
dGlvbiwgZnJhZ21lbnRXaWR0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50
UG9zaXRpb24gPSBicmVha2luZ1Bvc2l0aW9uOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYg
LS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXQuanMgYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC9MYXlvdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5ODRhNGRkYjliYzUxNWIwZTI3NDE5NmJiNWRi
ZWIxOGEyMzMxZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91
dC5qcwpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworZnVuY3Rpb24gbGF5b3V0KHdpbmRvdywgdmlld3BvcnRTaXplKSB7CisgICAg
bGV0IHRyZWVCdWlsZGVyID0gbmV3IFRyZWVCdWlsZGVyKCk7CisgICAgbGV0IGluaXRpYWxDb250
YWluaW5nQmxvY2sgPSB0cmVlQnVpbGRlci5jcmVhdGVUcmVlKHdpbmRvdy5kb2N1bWVudCwgd2lu
ZG93LnJlbmRlclRyZWVTdHJ1Y3R1cmUpOworICAgIGluaXRpYWxDb250YWluaW5nQmxvY2suc2V0
U2l6ZSh2aWV3cG9ydFNpemUpOworCisgICAgbGV0IGxheW91dENvbnRleHQgPSBuZXcgTGF5b3V0
Q29udGV4dChpbml0aWFsQ29udGFpbmluZ0Jsb2NrKTsKKyAgICBsYXlvdXRDb250ZXh0LmxheW91
dEZvcm1hdHRpbmdDb250ZXh0KGluaXRpYWxDb250YWluaW5nQmxvY2suZXN0YWJsaXNoZWRGb3Jt
YXR0aW5nQ29udGV4dCgpKTsKKyAgICByZXR1cm4gVXRpbHMubGF5b3V0VHJlZUR1bXAoaW5pdGlh
bENvbnRhaW5pbmdCbG9jayk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9M
YXlvdXRDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0Q29udGV4dC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44MTRhMmYxMDgzNTlmMjczMTkwNmY3ZTAxOWU0ZGE0MWI3YjY0Y2FiCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0Q29udGV4dC5qcwpAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworY2xhc3MgTGF5b3V0Q29udGV4dCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgfQorCisg
ICAgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRleHQpIHsKKyAgICAgICAg
Zm9ybWF0dGluZ0NvbnRleHQubGF5b3V0KHRoaXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL2NvbnRlbnRzLnhj
d29ya3NwYWNlZGF0YSBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29y
a3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNlZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWE1Mjg5MGM2NWUw
YjYzYmQyYmVmYjY5MTcxNTY5ZDE3OWNkMTBkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvTGF5b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UvY29udGVudHMueGN3b3Jrc3Bh
Y2VkYXRhCkBAIC0wLDAgKzEsOTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8V29ya3NwYWNlCisgICB2ZXJzaW9uID0gIjEuMCI+CisgICA8R3JvdXAKKyAgICAg
IGxvY2F0aW9uID0gImNvbnRhaW5lcjoiCisgICAgICBuYW1lID0gIlRlc3QiPgorICAgICAgPEZp
bGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3VwOnRlc3QvaW5kZXguaHRtbCI+CisgICAg
ICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6
dGVzdC9UZXN0SGFybmVzcy5qcyI+CisgICAgICA8L0ZpbGVSZWY+CisgICA8L0dyb3VwPgorICAg
PEdyb3VwCisgICAgICBsb2NhdGlvbiA9ICJjb250YWluZXI6IgorICAgICAgbmFtZSA9ICJNaXNj
Ij4KKyAgICAgIDxGaWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hlYWRl
cnMvTGF5b3V0Q29udGV4dC5oIj4KKyAgICAgIDwvRmlsZVJlZj4KKyAgICAgIDxGaWxlUmVmCisg
ICAgICAgICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hlYWRlcnMvRm9ybWF0dGluZ0NvbnRleHQu
aCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24g
PSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCI+CisgICAgICA8
L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlz
Yy9oZWFkZXJzL0Zsb2F0aW5nQ29udGV4dC5oIj4KKyAgICAgIDwvRmlsZVJlZj4KKyAgICAgIDxG
aWxlUmVmCisgICAgICAgICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hlYWRlcnMvQmxvY2tNYXJn
aW5Db2xsYXBzZS5oIj4KKyAgICAgIDwvRmlsZVJlZj4KKyAgICAgIDxGaWxlUmVmCisgICAgICAg
ICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hlYWRlcnMvQm94LmgiPgorICAgICAgPC9GaWxlUmVm
PgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3VwOm1pc2MvaGVhZGVy
cy9Db250YWluZXIuaCI+CisgICAgICA8L0ZpbGVSZWY+CisgICAgICA8RmlsZVJlZgorICAgICAg
ICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJzL0Jsb2NrQ29udGFpbmVyLmgiPgorICAg
ICAgPC9GaWxlUmVmPgorICAgICAgPEZpbGVSZWYKKyAgICAgICAgIGxvY2F0aW9uID0gImdyb3Vw
Om1pc2MvaGVhZGVycy9Jbml0aWFsQmxvY2tDb250YWluZXIuaCI+CisgICAgICA8L0ZpbGVSZWY+
CisgICAgICA8RmlsZVJlZgorICAgICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6bWlzYy9oZWFkZXJz
L0lubGluZUJveC5oIj4KKyAgICAgIDwvRmlsZVJlZj4KKyAgICAgIDxGaWxlUmVmCisgICAgICAg
ICBsb2NhdGlvbiA9ICJncm91cDptaXNjL2hlYWRlcnMvVGV4dC5oIj4KKyAgICAgIDwvRmlsZVJl
Zj4KKyAgIDwvR3JvdXA+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6UkVB
RE1FLm1kIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJn
cm91cDpMYXlvdXQuanMiPgorICAgPC9GaWxlUmVmPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0
aW9uID0gImdyb3VwOkxheW91dENvbnRleHQuanMiPgorICAgPC9GaWxlUmVmPgorICAgPEZpbGVS
ZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkZvcm1hdHRpbmdDb250ZXh0LmpzIj4KKyAgIDwv
RmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2Nh
dGlvbiA9ICJncm91cDpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcyI+CisgICA8L0ZpbGVSZWY+
CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6RmxvYXRpbmdDb250ZXh0Lmpz
Ij4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpC
bG9ja01hcmdpbkNvbGxhcHNlLmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxlUmVmCisgICAg
ICBsb2NhdGlvbiA9ICJncm91cDpCb3guanMiPgorICAgPC9GaWxlUmVmPgorICAgPEZpbGVSZWYK
KyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkNvbnRhaW5lci5qcyI+CisgICA8L0ZpbGVSZWY+Cisg
ICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6QmxvY2tDb250YWluZXIuanMiPgor
ICAgPC9GaWxlUmVmPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkluaXRp
YWxCbG9ja0NvbnRhaW5lci5qcyI+CisgICA8L0ZpbGVSZWY+CisgICA8RmlsZVJlZgorICAgICAg
bG9jYXRpb24gPSAiZ3JvdXA6SW5saW5lQm94LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAgIDxGaWxl
UmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpUZXh0LmpzIj4KKyAgIDwvRmlsZVJlZj4KKyAg
IDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpVdGlscy5qcyI+CisgICA8L0ZpbGVS
ZWY+CisgICA8RmlsZVJlZgorICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6VHJlZUJ1aWxkZXIuanMi
PgorICAgPC9GaWxlUmVmPgorPC9Xb3Jrc3BhY2U+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEvSURFV29ya3Nw
YWNlQ2hlY2tzLnBsaXN0IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0UmVsb2FkZWQueGN3
b3Jrc3BhY2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5wbGlzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOGQ5ODEwMDNkNjhkMDU0NmM0ODA0YWMyZmY0N2RkOTdjNmU3OTIxCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UveGNz
aGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5wbGlzdApAQCAtMCwwICsxLDggQEAKKzw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElD
ICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERz
L1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJ
PGtleT5JREVEaWRDb21wdXRlTWFjMzJCaXRXYXJuaW5nPC9rZXk+CisJPHRydWUvPgorPC9kaWN0
PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL1JFQURNRS5tZCBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGQyNmY5ODIyOGZl
ZWNhODYxYTdiMTA0ODBjOGVmNTgwNmUzMTJmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNDUgQEAKK1Zpc3VhbCBmb3JtYXR0aW5n
IG1vZGVsIGltcGxlbWVudGF0aW9uLgorU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMi92
aXN1cmVuLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKK1dlYkNvcmUKKzEuIHJlY3Vyc2l2
ZSBsYXlvdXQKKzIuIGxheW91dCBsb2dpYyBsaXZlcyBpbiB0aGUgcmVuZGVyZXJzIG1peGluZyBi
bG9jayB3aXRoIGlubGluZSBldGMuCisKK0xheW91dFJlbG9hZGVkCisxLiBpdGVyYXRpdmUgbGF5
b3V0IHdpdGhpbiBhIGZvcm1hdHRpbmcgY29udGV4dCwgcmVjdXJzaXZlIGFjcm9zcyBuZXN0ZWQg
Zm9ybWF0dGluZyBjb250ZXh0cyAKKzIuIGZvcm1hdHRpbmcgY29udGV4dCBpcyByZXNwb25zaWJs
ZSBmb3IgY29tcHV0aW5nIHNpemUvcG9zaXRpb25zIGZvciBhbGwgdGhlIGJveGVzIHRoYXQgbGl2
ZSBpbiB0aGUKK2NvbnRleHQgaW5jbHVkaW5nIGluL291dC1vZi1mbG93IGFuZCBmbG9hdGluZyBi
b3hlcyAgCiszLiBJbml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgY3JlYXRlcyB0aGUgdG9wIGxldmVs
IChpbml0aWFsKSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQKKzQuIEZsb2F0cyBhcmUgcmVzaXRy
aWNlZCB0byB0aGVpciBjb250YWluaW5nIGJsb2Nrcy4KKworCitJbnN0cnVjdGlvbnM6CisxLiBh
cHBseSAuL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2gKKzIuIGNvbXBpbGUgV2ViS2l0
CiszLiBsb2FkIC4vdGVzdC9pbmRleC5odG1sCisKK0Rlc2lnbjoKK0Zvcm1hdHRpbmdDb250ZXh0
CisgLSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0CisgLSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCAo
bm90IHlldCBpbXBsZW1lbnRlZCkKKyAtIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQgKG5vdCB5ZXQg
aW1wbGVtZW50ZWQpCisgLSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQgKG5vdCB5ZXQgaW1wbGVtZW50
ZWQpCisgLSBldGMuCisKK0JveAorIC0gQ29udGFpbmVyCisgIC0gQmxvY2tDb250YWluZXIKKyAg
IC0gSW5pdGlhbEJsb2NrQ29udGFpbmVyCisgIC0gSW5saW5lQ29udGFpbmVyIChub3QgeWV0KQor
IC0gSW5saW5lQm94IChub3QgeWV0KQorIAorCitQYXJ0aWFsbHkgZG9uZToKK0Jsb2NrIGZvcm1h
dHRpbmcgY29udGV4dDoKKy0gc3RhdGljLCByZWxhdGl2ZSBhbmQgb3V0IG9mIGZsb3cgcG9zaXRp
b25pbmcKKy0gbWFyZ2luIGNvbGxhcHNpbmcKKy0gZmxvYXRzCisKK01pc3Npbmc6CistIElubGlu
ZSBmb3JtYXR0aW5nIGNvbnRleHQKKy0gRXZlcnl0aGluZyBlbHNlCmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9UZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVGV4dC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZWY1ODg4OGVjZTc0Mzk3ZmFlNDdlMDFmOTA3ZDkxMGViNzIzZWEwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVGV4dC5qcwpAQCAtMCwwICsxLDMy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3Mg
VGV4dCB7CisgICAgY29uc3RydWN0b3Iobm9kZSwgaWQsIGlubGluZUJveCkgeworICAgICAgICB0
aGlzLm1fbm9kZSA9IG5vZGU7CisgICAgICAgIHRoaXMubV9pZCA9IGlkOworICAgICAgICB0aGlz
Lm1faW5saW5lQm94ID0gaW5saW5lQm94OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL1RyZWVCdWlsZGVyLmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVHJlZUJ1
aWxkZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODM5YzI0NWY0YTA2YjE5ZDVmOTE0MjU0NjU5OGM3YTEwNWNm
YzFjMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL1RyZWVCdWlsZGVy
LmpzCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworLy8gMSgpUmVuZGVyVmlld3wyKDEpUmVuZGVyQmxvY2t8MygyKVJlbmRlckJv
ZHl8NCgzKVJlbmRlckJsb2NrfDUoMylBbm9ueW1vdXNSZW5kZXJCbG9ja3wKK2NsYXNzIFRyZWVC
dWlsZGVyIHsKKworICAgIGNyZWF0ZVRyZWUoZG9jdW1lbnQsIHJlbmRlclRyZWVEdW1wKSB7Cisg
ICAgICAgIC8vIFJvb3QuCisgICAgICAgIGxldCBpbml0aWFsQmxvY2tDb250YWluZXIgPSBuZXcg
SW5pdGlhbEJsb2NrQ29udGFpbmVyKGRvY3VtZW50LCBwYXJzZUludChyZW5kZXJUcmVlRHVtcC5z
dWJzdHJpbmcoMCwgcmVuZGVyVHJlZUR1bXAuaW5kZXhPZigiKCIpKSkpOworICAgICAgICBpbml0
aWFsQmxvY2tDb250YWluZXIuc2V0UmVuZGVyZXJOYW1lKCJSZW5kZXJWaWV3Iik7CisgICAgICAg
IHJlbmRlclRyZWVEdW1wID0gcmVuZGVyVHJlZUR1bXAuc3Vic3RyaW5nKHJlbmRlclRyZWVEdW1w
LmluZGV4T2YoInwiKSArIDEpOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAg
ICBsZXQgZW5kT2ZJZCA9IHJlbmRlclRyZWVEdW1wLmluZGV4T2YoIigiKTsKKyAgICAgICAgICAg
IGxldCBib3hJZCA9IHBhcnNlSW50KHJlbmRlclRyZWVEdW1wLnN1YnN0cmluZygwLCBlbmRPZklk
KSk7CisgICAgICAgICAgICBsZXQgZW5kT2ZQYXJlbnRJZCA9IHJlbmRlclRyZWVEdW1wLmluZGV4
T2YoIikiKTsKKyAgICAgICAgICAgIGxldCBwYXJlbnRJZCA9IHBhcnNlSW50KHJlbmRlclRyZWVE
dW1wLnN1YnN0cmluZyhlbmRPZklkICsgMSwgZW5kT2ZQYXJlbnRJZCkpOworICAgICAgICAgICAg
bGV0IGVuZE9mTmFtZSA9IHJlbmRlclRyZWVEdW1wLmluZGV4T2YoInwiKTsKKyAgICAgICAgICAg
IGxldCBuYW1lID0gcmVuZGVyVHJlZUR1bXAuc3Vic3RyaW5nKGVuZE9mUGFyZW50SWQgKyAxLCBl
bmRPZk5hbWUpOworCisgICAgICAgICAgICB0aGlzLl9jcmVhdGVBbmRBdHRhY2hCb3goaW5pdGlh
bEJsb2NrQ29udGFpbmVyLCBib3hJZCwgbmFtZSwgcGFyZW50SWQpOworICAgICAgICAgICAgaWYg
KGVuZE9mTmFtZSA9PSByZW5kZXJUcmVlRHVtcC5sZW5ndGggLSAxKQorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgcmVuZGVyVHJlZUR1bXAgPSByZW5kZXJUcmVlRHVtcC5zdWJz
dHJpbmcoZW5kT2ZOYW1lICsgMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluaXRpYWxC
bG9ja0NvbnRhaW5lcjsKKyAgICB9CisKKyAgICBfY3JlYXRlQW5kQXR0YWNoQm94KGluaXRpYWxC
bG9ja0NvbnRhaW5lciwgaWQsIG5hbWUsIHBhcmVudElkKSB7CisgICAgICAgIGxldCBib3ggPSBu
dWxsOworICAgICAgICBsZXQgdGV4dCA9IG51bGw7CisgICAgICAgIGxldCBub2RlID0gdGhpcy5f
ZmluZE5vZGUoaW5pdGlhbEJsb2NrQ29udGFpbmVyLm5vZGUoKSwgaWQsIG5hbWUpOworICAgICAg
ICBpZiAobmFtZSA9PSAiUmVuZGVyQmxvY2siIHx8IG5hbWUgPT0gIlJlbmRlckJvZHkiKQorICAg
ICAgICAgICAgYm94ID0gbmV3IEJsb2NrQ29udGFpbmVyKG5vZGUsIGlkKTsKKyAgICAgICAgZWxz
ZSBpZiAobmFtZSA9PSAiUmVuZGVySW5saW5lIikgeworICAgICAgICAgICAgYm94ID0gbmV3IElu
bGluZUNvbnRhaW5lcihub2RlLCBpZCk7CisgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiUmVu
ZGVyVGV4dCIpIHsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dChub2RlLCBpZCk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgYm94ID0gbmV3IEJveChub2RlLCBpZCk7CisKKyAgICAg
ICAgaWYgKGJveCkKKyAgICAgICAgICAgIGJveC5zZXRSZW5kZXJlck5hbWUobmFtZSk7CisKKyAg
ICAgICAgbGV0IHBhcmVudEJveCA9IHRoaXMuX2ZpbmRCb3goaW5pdGlhbEJsb2NrQ29udGFpbmVy
LCBwYXJlbnRJZCk7CisgICAgICAgIC8vIFdlYktpdCBkb2VzIG5vdCBjb25zdHJ1Y3QgYW5vbnlt
b3VzIGlubGluZSBjb250YWluZXIgZm9yIHRleHQgaWYgdGhlIHRleHQKKyAgICAgICAgLy8gaXMg
YSBkaXJlY3QgY2hpbGQgb2YgYSBibG9jayBjb250YWluZXIuCisgICAgICAgIGlmICh0ZXh0ICYm
ICFwYXJlbnRCb3guaXNJbmxpbmVDb250YWluZXIpIHsKKyAgICAgICAgICAgIGJveCA9IG5ldyBJ
bmxpbmVCb3gobnVsbCwgLTEpOworICAgICAgICAgICAgYm94LnNldElzQW5vbnltb3VzKCk7Cisg
ICAgICAgICAgICBib3guc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9h
cHBlbmRDaGlsZChwYXJlbnRCb3gsIGJveCk7CisgICAgICAgIHJldHVybiBib3g7CisgICAgfQor
CisgICAgX2FwcGVuZENoaWxkKHBhcmVudCwgY2hpbGQpIHsKKyAgICAgICAgY2hpbGQuc2V0UGFy
ZW50KHBhcmVudCk7CisgICAgICAgIGxldCBmaXJzdENoaWxkID0gcGFyZW50LmZpcnN0Q2hpbGQo
KTsKKyAgICAgICAgaWYgKCFmaXJzdENoaWxkKSB7CisgICAgICAgICAgICBwYXJlbnQuc2V0Rmly
c3RDaGlsZChjaGlsZCk7CisgICAgICAgICAgICBwYXJlbnQuc2V0TGFzdENoaWxkKGNoaWxkKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBsZXQgbGFzdENoaWxkID0g
cGFyZW50Lmxhc3RDaGlsZCgpOworICAgICAgICBsYXN0Q2hpbGQuc2V0TmV4dFNpYmxpbmcoY2hp
bGQpOworICAgICAgICBjaGlsZC5zZXRQcmV2aW91c1NpYmxpbmcobGFzdENoaWxkKTsKKyAgICAg
ICAgcGFyZW50LnNldExhc3RDaGlsZChjaGlsZCk7CisgICAgfQorCisgICAgX2ZpbmRCb3gocm9v
dCwgYm94SWQpIHsKKyAgICAgICAgaWYgKHJvb3QuaWQoKSA9PSBib3hJZCkKKyAgICAgICAgICAg
IHJldHVybiByb290OworICAgICAgICAvLyBTdXBlciBpbmVmZmljaWVudCBidXQgdGhpcyBpcyBh
bGwgdGVtcG9yYXJ5IGFueXdheS4KKyAgICAgICAgZm9yIChsZXQgYm94ID0gcm9vdC5maXJzdENo
aWxkKCk7IGJveDsgYm94ID0gYm94Lm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChi
b3guaWQoKSA9PSBib3hJZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYm94OworICAgICAgICAg
ICAgaWYgKGJveC5pc0NvbnRhaW5lcigpICYmIGJveC5oYXNDaGlsZCgpKSB7CisgICAgICAgICAg
ICAgICAgbGV0IGNhbmRpZGF0ZSA9IHRoaXMuX2ZpbmRCb3goYm94LCBib3hJZCk7CisgICAgICAg
ICAgICAgICAgaWYgKGNhbmRpZGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRp
ZGF0ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIF9maW5kTm9kZShu
b2RlLCBib3hJZCkgeworICAgICAgICAvLyBTdXBlciBpbmVmZmljaWVudCBidXQgdGhpcyBpcyBh
bGwgdGVtcG9yYXJ5IGFueXdheS4KKyAgICAgICAgZm9yIChsZXQgY3VycmVudE5vZGUgPSBub2Rl
LmZpcnN0Q2hpbGQ7IGN1cnJlbnROb2RlOyBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLm5leHRT
aWJsaW5nKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudE5vZGUucmVuZGVyZXJJZCA9PSBib3hJ
ZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7CisgICAgICAgICAgICBsZXQg
Y2FuZGlkYXRlID0gdGhpcy5fZmluZE5vZGUoY3VycmVudE5vZGUsIGJveElkKTsKKyAgICAgICAg
ICAgIGlmIChjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAg
ICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL1V0aWxz
LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTYyN2RhOTg5
ZTgwMDk5MTZlMmIwNTdlZWYzMGZmMmViNTZmOTU4ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL1V0aWxzLmpzCkBAIC0wLDAgKzEsNTM5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xhc3MgTGF5b3V0UG9pbnQgeworICAg
IGNvbnN0cnVjdG9yKHRvcCwgbGVmdCkgeworICAgICAgICB0aGlzLm1fdG9wID0gdG9wOworICAg
ICAgICB0aGlzLm1fbGVmdCA9IGxlZnQ7CisgICAgfQorCisgICAgc2V0TGVmdChsZWZ0KSB7Cisg
ICAgICAgIHRoaXMubV9sZWZ0ID0gbGVmdDsKKyAgICB9CisKKyAgICBzZXRUb3AodG9wKSB7Cisg
ICAgICAgIHRoaXMubV90b3AgPSB0b3A7CisgICAgfQorCisgICAgbGVmdCgpIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMubV9sZWZ0OworICAgIH0KKworICAgIHRvcCgpIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMubV90b3A7CisgICAgfQorCisgICAgc2hpZnRMZWZ0KGRpc3RhbmNlKSB7CisgICAgICAg
IHRoaXMubV9sZWZ0ICs9IGRpc3RhbmNlOworICAgIH0KKworICAgIHNoaWZ0VG9wKGRpc3RhbmNl
KSB7CisgICAgICAgIHRoaXMubV90b3AgKz0gZGlzdGFuY2U7CisgICAgfQorCisgICAgbW92ZUJ5
KGRpc3RhbmNlKSB7CisgICAgICAgIGlmIChkaXN0YW5jZS50b3AgJiYgZGlzdGFuY2UubGVmdCkg
eworICAgICAgICAgICAgdGhpcy5tX3RvcCArPSBkaXN0YW5jZS50b3AoKTsKKyAgICAgICAgICAg
IHRoaXMubV9sZWZ0ICs9IGRpc3RhbmNlLmxlZnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNl
IGlmIChkaXN0YW5jZS53aWR0aCAmJiBkaXN0YW5jZS5oZWlnaHQpIHsKKyAgICAgICAgICAgIHRo
aXMubV90b3AgKz0gZGlzdGFuY2UuaGVpZ2h0KCk7CisgICAgICAgICAgICB0aGlzLm1fbGVmdCAr
PSBkaXN0YW5jZS53aWR0aCgpOworICAgICAgICB9CisgICAgfQorCisgICAgZXF1YWwob3RoZXIp
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMudG9wKCkgPT0gb3RoZXIudG9wKCkgJiYgdGhpcy5sZWZ0
KCkgPT0gb3RoZXIubGVmdCgpOworICAgIH0KKworICAgIGNsb25lKCkgeworICAgICAgICByZXR1
cm4gbmV3IExheW91dFBvaW50KHRoaXMudG9wKCksIHRoaXMubGVmdCgpKTsKKyAgICB9Cit9CisK
K2NsYXNzIExheW91dFNpemUgeworICAgIGNvbnN0cnVjdG9yKHdpZHRoLCBoZWlnaHQpIHsKKyAg
ICAgICAgdGhpcy5tX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHRoaXMubV9oZWlnaHQgPSBoZWln
aHQ7CisgICAgfQorCisgICAgc2V0V2lkdGgod2lkdGgpIHsKKyAgICAgICAgdGhpcy5tX3dpZHRo
ID0gd2lkdGg7CisgICAgfQorCisgICAgc2V0SGVpZ2h0KGhlaWdodCkgeworICAgICAgICB0aGlz
Lm1faGVpZ2h0ID0gaGVpZ2h0OworICAgIH0KKworICAgIHdpZHRoKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX3dpZHRoOworICAgIH0KKworICAgIGhlaWdodCgpIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMubV9oZWlnaHQ7CisgICAgfQorCisgICAgZ3Jvd0J5KGRpc3RhbmNlKSB7CisgICAgICAg
IHRoaXMubV93aWR0aCArPSBkaXN0YW5jZS53aWR0aCgpOworICAgICAgICB0aGlzLm1faGVpZ2h0
ICs9IGRpc3RhbmNlLmhlaWdodCgpOworICAgIH0KKworICAgIHNocmlua0J5KGRpc3RhbmNlKSB7
CisgICAgICAgIHRoaXMubV93aWR0aCAtPSBkaXN0YW5jZS53aWR0aCgpOworICAgICAgICB0aGlz
Lm1faGVpZ2h0IC09IGRpc3RhbmNlLmhlaWdodCgpOworICAgIH0KKworICAgIGlzRW1wdHkoKSB7
CisgICAgICAgIHJldHVybiB0aGlzLm1fd2lkdGggPD0gMCB8fCB0aGlzLm1faGVpZ2h0IDw9IDA7
CisgICAgfQorCisgICAgZXF1YWwob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMud2lkdGgo
KSA9PSBvdGhlci53aWR0aCgpICYmIHRoaXMuaGVpZ2h0KCkgPT0gb3RoZXIuaGVpZ2h0KCk7Cisg
ICAgfQorCisgICAgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgTGF5b3V0U2l6ZSh0aGlz
LndpZHRoKCksIHRoaXMuaGVpZ2h0KCkpOworICAgIH0KK30KKworY2xhc3MgTGF5b3V0UmVjdCB7
CisgICAgY29uc3RydWN0b3IodG9wTGVmdCwgc2l6ZSkgeworICAgICAgICB0aGlzLm1fdG9wTGVm
dCA9IHRvcExlZnQuY2xvbmUoKTsKKyAgICAgICAgdGhpcy5tX3NpemUgPSBzaXplLmNsb25lKCk7
CisgICAgfQorCisgICAgc2V0VG9wKHRvcCkgeworICAgICAgICB0aGlzLm1fdG9wTGVmdC5zZXRU
b3AodG9wKTsKKyAgICB9CisKKyAgICBzZXRMZWZ0KGxlZnQpIHsKKyAgICAgICAgdGhpcy5tX3Rv
cExlZnQuc2V0TGVmdChsZWZ0KTsKKyAgICB9CisKKyAgICBzZXRCb3R0b20oYm90dG9tKSB7Cisg
ICAgICAgIHRoaXMubV9zaXplLnNldEhlaWdodChib3R0b20gLSB0aGlzLm1fdG9wTGVmdC50b3Ao
KSk7CisgICAgfQorCisgICAgc2V0UmlnaHQocmlnaHQpIHsKKyAgICAgICAgdGhpcy5tX3NpemUu
c2V0V2lkdGgocmlnaHQgLSB0aGlzLm1fdG9wTGVmdC5sZWZ0KCkpOworICAgIH0KKworICAgIGxl
ZnQoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fdG9wTGVmdC5sZWZ0KCk7CisgICAgfQorCisg
ICAgdG9wKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQudG9wKCk7CisgICAgfQor
CisgICAgYm90dG9tKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQudG9wKCkgKyB0
aGlzLm1fc2l6ZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICByaWdodCgpIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMubV90b3BMZWZ0LmxlZnQoKSArIHRoaXMubV9zaXplLndpZHRoKCk7CisgICAgfQor
CisgICAgc2V0VG9wTGVmdCh0b3BMZWZ0KSB7CisgICAgICAgIHRoaXMubV90b3BMZWZ0ID0gdG9w
TGVmdC5jbG9uZSgpOworICAgIH0KKworICAgIHRvcExlZnQoKSB7CisgICAgICAgIHJldHVybiB0
aGlzLm1fdG9wTGVmdC5jbG9uZSgpOworICAgIH0KKworICAgIHRvcFJpZ2h0KCkgeworICAgICAg
ICByZXR1cm4gbmV3IExheW91dFBvaW50KHRoaXMudG9wKCksIHRoaXMucmlnaHQoKSk7CisgICAg
fQorCisgICAgYm90dG9tUmlnaHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgTGF5b3V0UG9pbnQo
dGhpcy5ib3R0b20oKSwgdGhpcy5yaWdodCgpKTsKKyAgICB9CisKKyAgICBzZXRXaWR0aCh3aWR0
aCkgeworICAgICAgICB0aGlzLm1fc2l6ZS5zZXRXaWR0aCh3aWR0aCk7CisgICAgfQorCisgICAg
c2V0SGVpZ2h0KGhlaWdodCkgeworICAgICAgICB0aGlzLm1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0
KTsKKyAgICB9CisKKyAgICBzZXRTaXplKG5ld1NpemUpIHsKKyAgICAgICAgdGhpcy5tX3NpemUg
PSBuZXdTaXplLmNsb25lKCk7CisgICAgfQorCisgICAgc2l6ZSgpIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMubV9zaXplLmNsb25lKCk7CisgICAgfQorCisgICAgd2lkdGgoKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLm1fc2l6ZS53aWR0aCgpOworICAgIH0KKworICAgIGhlaWdodCgpIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMubV9zaXplLmhlaWdodCgpOworICAgIH0KKworICAgIGdyb3dCeShkaXN0
YW5jZSkgeworICAgICAgICB0aGlzLm1fc2l6ZS5ncm93QnkoZGlzdGFuY2UpOworICAgIH0KKwor
ICAgIHNocmlua0J5KGRpc3RhbmNlKSB7CisgICAgICAgIHRoaXMubV9zaXplLnNocmlua0J5KGRp
c3RhbmNlKTsKKyAgICB9CisKKyAgICBtb3ZlQnkoZGlzdGFuY2UpIHsKKyAgICAgICAgdGhpcy5t
X3RvcExlZnQubW92ZUJ5KGRpc3RhbmNlKTsKKyAgICB9CisgICAgCisgICAgaXNFbXB0eSgpIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMubV9zaXplLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICBlcXVh
bChvdGhlcikgeworICAgICAgICByZXR1cm4gdGhpcy5tX3RvcExlZnQuZXF1YWwob3RoZXIudG9w
TGVmdCgpKSAmJiB0aGlzLm1fc2l6ZS5lcXVhbChvdGhlci5zaXplKCkpOworICAgIH0KKworICAg
IGludGVyc2VjdHMob3RoZXIpIHsKKyAgICAgICAgcmV0dXJuICF0aGlzLmlzRW1wdHkoKSAmJiAh
b3RoZXIuaXNFbXB0eSgpCisgICAgICAgICYmIHRoaXMubGVmdCgpIDwgb3RoZXIucmlnaHQoKSAm
JiBvdGhlci5sZWZ0KCkgPCB0aGlzLnJpZ2h0KCkKKyAgICAgICAgJiYgdGhpcy50b3AoKSA8IG90
aGVyLmJvdHRvbSgpICYmIG90aGVyLnRvcCgpIDwgdGhpcy5ib3R0b20oKTsKKyAgICB9CisKKyAg
ICBjb250YWlucyhvdGhlcikgeworICAgICAgICByZXR1cm4gdGhpcy5sZWZ0KCkgPD0gb3RoZXIu
bGVmdCgpICYmIHRoaXMucmlnaHQoKSA+PSBvdGhlci5yaWdodCgpCisgICAgICAgICYmIHRoaXMu
dG9wKCkgPD0gb3RoZXIudG9wKCkgJiYgdGhpcy5ib3R0b20oKSA+PSBvdGhlci5ib3R0b20oKTsK
KyAgICB9CisKKyAgICBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRSZWN0KHRo
aXMudG9wTGVmdCgpLmNsb25lKCksIHRoaXMuc2l6ZSgpLmNsb25lKCkpOworICAgIH0KK30KKwor
ZnVuY3Rpb24gQVNTRVJUX05PVF9SRUFDSEVEKCkgeworICAgIHRocm93IEVycm9yKCJTaG91bGQg
bm90IHJlYWNoISIpOworfQorCitmdW5jdGlvbiBBU1NFUlQoc3RhdGVtZW50KSB7CisgICAgaWYg
KHN0YXRlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIHRocm93IEVycm9yKCJBc3NlcnRpb24g
ZmFpbHVyZSIpOworfQorCitjbGFzcyBVdGlscyB7CisgICAgc3RhdGljIGNvbXB1dGVkVmFsdWUo
c3RyVmFsdWUsIGJhc2VWYWx1ZSkgeworICAgICAgICBpZiAoc3RyVmFsdWUuaW5kZXhPZigicHgi
KSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyVmFsdWUpOworICAgICAg
ICBpZiAoc3RyVmFsdWUuaW5kZXhPZigiJSIpID4gLTEpCisgICAgICAgICAgICByZXR1cm4gcGFy
c2VGbG9hdChzdHJWYWx1ZSkgKiBiYXNlVmFsdWUgLyAxMDA7CisgICAgICAgIHJldHVybiBOdW1i
ZXIuTmFOOworICAgIH0KKworICAgIHN0YXRpYyBwcm9wZXJ0eUlzQXV0byhwcm9wZXJ0eU5hbWUs
IGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJveC5ub2Rl
KCkpLmlzUHJvcGVydHlWYWx1ZUluaXRpYWwocHJvcGVydHlOYW1lKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgaXNXaWR0aEF1dG8oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5wcm9wZXJ0eUlz
QXV0bygid2lkdGgiLCBib3gpOworICAgIH0KKworICAgIHN0YXRpYyBpc0hlaWdodEF1dG8oYm94
KSB7CisgICAgICAgIHJldHVybiBVdGlscy5wcm9wZXJ0eUlzQXV0bygiaGVpZ2h0IiwgYm94KTsK
KyAgICB9CisKKyAgICBzdGF0aWMgaXNUb3BBdXRvKGJveCkgeworICAgICAgICByZXR1cm4gVXRp
bHMucHJvcGVydHlJc0F1dG8oInRvcCIsIGJveCk7CisgICAgfQorCisgICAgc3RhdGljIGlzTGVm
dEF1dG8oYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5wcm9wZXJ0eUlzQXV0bygibGVmdCIs
IGJveCk7CisgICAgfQorCisgICAgc3RhdGljIGlzQm90dG9tQXV0byhib3gpIHsKKyAgICAgICAg
cmV0dXJuIFV0aWxzLnByb3BlcnR5SXNBdXRvKCJib3R0b20iLCBib3gpOworICAgIH0KKworICAg
IHN0YXRpYyBpc1JpZ2h0QXV0byhib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLnByb3BlcnR5
SXNBdXRvKCJyaWdodCIsIGJveCk7CisgICAgfQorCisgICAgc3RhdGljIHdpZHRoKGJveCkgewor
ICAgICAgICBBU1NFUlQoIVV0aWxzLmlzV2lkdGhBdXRvKGJveCkpOworICAgICAgICByZXR1cm4g
cGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS53aWR0aCk7Cisg
ICAgfQorCisgICAgc3RhdGljIGhlaWdodChib3gpIHsKKyAgICAgICAgQVNTRVJUKCFVdGlscy5p
c0hlaWdodEF1dG8oYm94KSk7CisgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGJveC5ub2RlKCkpLmhlaWdodCk7CisgICAgfQorCisgICAgc3RhdGljIHRv
cChib3gpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoYm94Lm5vZGUoKS5zdHlsZS50b3Ap
OworICAgIH0KKworICAgIHN0YXRpYyBib3R0b20oYm94KSB7CisgICAgICAgIHJldHVybiBwYXJz
ZUZsb2F0KGJveC5ub2RlKCkuc3R5bGUuYm90dG9tKTsKKyAgICB9CisKKyAgICBzdGF0aWMgbGVm
dChib3gpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoYm94Lm5vZGUoKS5zdHlsZS5sZWZ0
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgcmlnaHQoYm94KSB7CisgICAgICAgIHJldHVybiBwYXJz
ZUZsb2F0KGJveC5ub2RlKCkuc3R5bGUucmlnaHQpOworICAgIH0KKworICAgIHN0YXRpYyBoYXNC
b3JkZXJUb3AoYm94KSB7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShi
b3gubm9kZSgpKS5ib3JkZXJUb3BXaWR0aCAhPSAiMHB4IjsKKyAgICB9CisKKyAgICBzdGF0aWMg
aGFzQm9yZGVyQm90dG9tKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoYm94Lm5vZGUoKSkuYm9yZGVyQm90dG9tV2lkdGggIT0gIjBweCI7CisgICAgfQorCisg
ICAgc3RhdGljIGhhc1BhZGRpbmdUb3AoYm94KSB7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS5wYWRkaW5nVG9wICE9ICIwcHgiOworICAgIH0KKwor
ICAgIHN0YXRpYyBoYXNQYWRkaW5nQm90dG9tKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkucGFkZGluZ0JvdHRvbSAhPSAiMHB4IjsKKyAg
ICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRNYXJnaW5Ub3AoYm94KSB7CisgICAgICAgIHJldHVy
biBVdGlscy5jb21wdXRlZFZhbHVlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJveC5ub2RlKCkp
Lm1hcmdpblRvcCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkTWFyZ2luTGVmdChib3gp
IHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVk
U3R5bGUoYm94Lm5vZGUoKSkubWFyZ2luTGVmdCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1
dGVkTWFyZ2luQm90dG9tKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRWYWx1
ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS5tYXJnaW5Cb3R0b20pOworICAg
IH0KKworICAgIHN0YXRpYyBjb21wdXRlZE1hcmdpblJpZ2h0KGJveCkgeworICAgICAgICByZXR1
cm4gVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgp
KS5tYXJnaW5SaWdodCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkQm9yZGVyVG9wTGVm
dChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAgICByZXR1cm4g
bmV3IExheW91dFNpemUoVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShub2RlKS5ib3JkZXJMZWZ0V2lkdGgpLCBVdGlscy5jb21wdXRlZFZhbHVlKHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKG5vZGUpLmJvcmRlclRvcFdpZHRoKSk7CisgICAgfQorCisgICAgc3RhdGlj
IGNvbXB1dGVkQm9yZGVyQm90dG9tUmlnaHQoYm94KSB7CisgICAgICAgIGxldCBub2RlID0gYm94
Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBMYXlvdXRTaXplKFV0aWxzLmNvbXB1dGVkVmFs
dWUod2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuYm9yZGVyUmlnaHRXaWR0aCksIFV0aWxz
LmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuYm9yZGVyQm90dG9t
V2lkdGgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29tcHV0ZWRQYWRkaW5nVG9wTGVmdChib3gp
IHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAgICByZXR1cm4gbmV3IExh
eW91dFNpemUoVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2Rl
KS5wYWRkaW5nTGVmdCksIFV0aWxzLmNvbXB1dGVkVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5
bGUobm9kZSkucGFkZGluZ1RvcCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZFBhZGRp
bmdCb3R0b21SaWdodChib3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAg
ICAgICByZXR1cm4gbmV3IExheW91dFNpemUoVXRpbHMuY29tcHV0ZWRWYWx1ZSh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShub2RlKS5wYWRkaW5nUmlnaHQpLCBVdGlscy5jb21wdXRlZFZhbHVlKHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRpbmdCb3R0b20pKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgY29tcHV0ZWRCb3JkZXJBbmRQYWRkaW5nVG9wKGJveCkgeworICAgICAgICByZXR1
cm4gVXRpbHMuY29tcHV0ZWRCb3JkZXJUb3BMZWZ0KGJveCkuaGVpZ2h0KCkgKyBVdGlscy5jb21w
dXRlZFBhZGRpbmdUb3BMZWZ0KGJveCkuaGVpZ2h0KCk7CisgICAgfQorCisgICAgc3RhdGljIGNv
bXB1dGVkQm9yZGVyQW5kUGFkZGluZ0xlZnQoYm94KSB7CisgICAgICAgIHJldHVybiBVdGlscy5j
b21wdXRlZEJvcmRlclRvcExlZnQoYm94KS53aWR0aCgpICsgVXRpbHMuY29tcHV0ZWRQYWRkaW5n
VG9wTGVmdChib3gpLndpZHRoKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbXB1dGVkQm9yZGVy
QW5kUGFkZGluZ1RvcChib3gpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkQm9yZGVy
VG9wTGVmdChib3gpLmhlaWdodCgpICsgVXRpbHMuY29tcHV0ZWRQYWRkaW5nVG9wTGVmdChib3gp
LmhlaWdodCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlckFuZFBhZGRpbmdM
ZWZ0KGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRCb3JkZXJUb3BMZWZ0KGJv
eCkud2lkdGgoKSArIFV0aWxzLmNvbXB1dGVkUGFkZGluZ1RvcExlZnQoYm94KS53aWR0aCgpOwor
ICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlckFuZFBhZGRpbmdCb3R0b20oYm94KSB7
CisgICAgICAgIHJldHVybiBVdGlscy5jb21wdXRlZEJvcmRlckJvdHRvbVJpZ2h0KGJveCkuaGVp
Z2h0KCkgKyBVdGlscy5jb21wdXRlZFBhZGRpbmdCb3R0b21SaWdodChib3gpLmhlaWdodCgpOwor
ICAgIH0KKworICAgIHN0YXRpYyBjb21wdXRlZEJvcmRlckFuZFBhZGRpbmdSaWdodChib3gpIHsK
KyAgICAgICAgcmV0dXJuIFV0aWxzLmNvbXB1dGVkQm9yZGVyQm90dG9tUmlnaHQoYm94KS53aWR0
aCgpICsgVXRpbHMuY29tcHV0ZWRQYWRkaW5nQm90dG9tUmlnaHQoYm94KS53aWR0aCgpOworICAg
IH0KKworICAgIHN0YXRpYyBjb21wdXRlZEhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nKGJveCkg
eworICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdMZWZ0KGJveCkg
KyB0aGlzLmNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ1JpZ2h0KGJveCk7CisgICAgfQorCisgICAg
c3RhdGljIGNvbXB1dGVkVmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKGJveCkgeworICAgICAgICBy
ZXR1cm4gdGhpcy5jb21wdXRlZEJvcmRlckFuZFBhZGRpbmdUb3AoYm94KSArIHRoaXMuY29tcHV0
ZWRCb3JkZXJBbmRQYWRkaW5nQm90dG9tKGJveCk7CisgICAgfQorCisgICAgc3RhdGljIGhhc0Ns
ZWFyKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuaGFzQ2xlYXJMZWZ0KGJveCkgfHwgVXRp
bHMuaGFzQ2xlYXJSaWdodChib3gpIHx8IFV0aWxzLmhhc0NsZWFyQm90aChib3gpOworICAgIH0K
KworICAgIHN0YXRpYyBoYXNDbGVhckxlZnQoYm94KSB7CisgICAgICAgIGxldCBub2RlID0gYm94
Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJveC5ub2Rl
KCkpLmNsZWFyID09ICJsZWZ0IjsKKyAgICB9CisKKyAgICBzdGF0aWMgaGFzQ2xlYXJSaWdodChi
b3gpIHsKKyAgICAgICAgbGV0IG5vZGUgPSBib3gubm9kZSgpOworICAgICAgICByZXR1cm4gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5vZGUoKSkuY2xlYXIgPT0gInJpZ2h0IjsKKyAgICB9
CisKKyAgICBzdGF0aWMgaGFzQ2xlYXJCb3RoKGJveCkgeworICAgICAgICBsZXQgbm9kZSA9IGJv
eC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9k
ZSgpKS5jbGVhciA9PSAiYm90aCI7CisgICAgfQorCisgICAgc3RhdGljIGlzQmxvY2tMZXZlbEVs
ZW1lbnQobm9kZSkgeworICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGxldCBkaXNwbGF5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSku
ZGlzcGxheTsKKyAgICAgICAgcmV0dXJuICBkaXNwbGF5ID09ICJibG9jayIgfHwgZGlzcGxheSA9
PSAibGlzdC1pdGVtIiB8fCBkaXNwbGF5ID09ICJ0YWJsZSI7CisgICAgfQorCisgICAgc3RhdGlj
IGlzQmxvY2tDb250YWluZXJFbGVtZW50KG5vZGUpIHsKKyAgICAgICAgbGV0IGRpc3BsYXkgPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5kaXNwbGF5OworICAgICAgICByZXR1cm4gIGRp
c3BsYXkgPT0gImJsb2NrIiB8fCBkaXNwbGF5ID09ICJsaXN0LWl0ZW0iIHx8IGRpc3BsYXkgPT0g
ImlubGluZS1ibG9jayIgfHwgZGlzcGxheSA9PSAidGFibGUtY2VsbCIgfHwgZGlzcGxheSA9PSAi
dGFibGUtY2FwdGlvbiI7IC8vVE9ETyAmJiAhcmVwbGFjZWQgZWxlbWVudAorICAgIH0KKworICAg
IHN0YXRpYyBpc0lubGluZUxldmVsRWxlbWVudChub2RlKSB7CisgICAgICAgIGxldCBkaXNwbGF5
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheTsKKyAgICAgICAgcmV0dXJu
ICBkaXNwbGF5ID09ICJpbmxpbmUiIHx8IGRpc3BsYXkgPT0gImlubGluZS1ibG9jayIgfHwgZGlz
cGxheSA9PSAiaW5saW5lLXRhYmxlIjsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNUYWJsZUVsZW1l
bnQobm9kZSkgeworICAgICAgICBsZXQgZGlzcGxheSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KG5vZGUpLmRpc3BsYXk7CisgICAgICAgIHJldHVybiAgZGlzcGxheSA9PSAidGFibGUiIHx8IGRp
c3BsYXkgPT0gImlubGluZS10YWJsZSI7CisgICAgfQorCisgICAgc3RhdGljIGlzUmVsYXRpdmVQ
b3NpdGlvbmVkKGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAg
ICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBvc2l0aW9uID09ICJyZWxh
dGl2ZSI7CisgICAgfQorCisgICAgc3RhdGljIGlzQWJzb2x1dGVQb3NpdGlvbmVkKGJveCkgewor
ICAgICAgICBpZiAoYm94LmlzQW5vbnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGxldCBub2RlID0gYm94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBvc2l0aW9uID09ICJhYnNvbHV0ZSI7CisgICAgfQorCisg
ICAgc3RhdGljIGlzRml4ZWRQb3NpdGlvbmVkKGJveCkgeworICAgICAgICBpZiAoYm94LmlzQW5v
bnltb3VzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGxldCBub2RlID0g
Ym94Lm5vZGUoKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUp
LnBvc2l0aW9uID09ICJmaXhlZCI7CisgICAgfQorCisgICAgc3RhdGljIGlzT3ZlcmZsb3dWaXNp
YmxlKGJveCkgeworICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94Lm5v
ZGUoKSkub3ZlcmZsb3cgPT0gInZpc2libGUiOworICAgIH0KKworICAgIHN0YXRpYyBpc0Zsb2F0
aW5nUG9zaXRpb25lZChib3gpIHsKKyAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBsZXQgbm9kZSA9IGJveC5ub2RlKCk7Cisg
ICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5mbG9hdCAhPSAibm9u
ZSI7CisgICAgfQorCisgICAgc3RhdGljIGlzRmxvYXRpbmdMZWZ0KGJveCkgeworICAgICAgICBs
ZXQgbm9kZSA9IGJveC5ub2RlKCk7CisgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShub2RlKS5mbG9hdCA9PSAibGVmdCI7CisgICAgfQorCisgICAgc3RhdGljIG1hcFRvQ29u
dGFpbmVyKGJveCwgY29udGFpbmVyKSB7CisgICAgICAgIGxldCB0b3BMZWZ0ID0gYm94LnJlY3Qo
KS50b3BMZWZ0KCk7CisgICAgICAgIGxldCBhc2NlbmRhbnQgPSBib3gucGFyZW50KCk7CisgICAg
ICAgIHdoaWxlIChhc2NlbmRhbnQgJiYgYXNjZW5kYW50ICE9IGNvbnRhaW5lcikgeworICAgICAg
ICAgICAgdG9wTGVmdC5tb3ZlQnkoYXNjZW5kYW50LnJlY3QoKS50b3BMZWZ0KCkpOworICAgICAg
ICAgICAgYXNjZW5kYW50ID0gYXNjZW5kYW50LnBhcmVudCgpOworICAgICAgICB9CisgICAgICAg
IEFTU0VSVChhc2NlbmRhbnQpOworICAgICAgICByZXR1cm4gbmV3IExheW91dFJlY3QodG9wTGVm
dCwgYm94LnJlY3QoKS5zaXplKCkpOworICAgIH0KKworICAgIHN0YXRpYyBtYXBTdGF0aWNUb0Fi
c29sdXRlKGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMubWFwVG9Db250YWluZXIoYm94LCBi
b3guY29udGFpbmluZ0Jsb2NrKCkpOworICAgIH0KKworICAgIHN0YXRpYyBjb2xsZWN0T3V0T2ZG
bG93RGVzY2VuZGFudHMoY29udGFpbnRCbG9jaykgeworICAgICAgICBsZXQgb3V0T2ZGbG93Qm94
ZXMgPSBuZXcgQXJyYXkoKTsKKyAgICAgICAgbGV0IGRlc2NlbmRhbnRzID0gbmV3IEFycmF5KCk7
CisgICAgICAgIGZvciAobGV0IGNoaWxkID0gY29udGFpbnRCbG9jay5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICBkZXNjZW5kYW50
cy5wdXNoKGNoaWxkKTsKKyAgICAgICAgd2hpbGUgKGRlc2NlbmRhbnRzLmxlbmd0aCkgeworICAg
ICAgICAgICAgbGV0IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50cy5wb3AoKTsKKyAgICAgICAgICAg
IGlmIChkZXNjZW5kYW50LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIGRlc2NlbmRhbnQuY29u
dGFpbmluZ0Jsb2NrKCkgPT0gY29udGFpbnRCbG9jaykKKyAgICAgICAgICAgICAgICBvdXRPZkZs
b3dCb3hlcy5wdXNoKGRlc2NlbmRhbnQpOworICAgICAgICAgICAgaWYgKCFkZXNjZW5kYW50Lmlz
Q29udGFpbmVyKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBmb3Ig
KGxldCBjaGlsZCA9IGRlc2NlbmRhbnQubGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LnByZXZpb3VzU2libGluZygpKQorICAgICAgICAgICAgICAgIGRlc2NlbmRhbnRzLnB1c2goY2hp
bGQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXRPZkZsb3dCb3hlczsKKyAgICB9CisK
KyAgICBzdGF0aWMgbmV4dEJyZWFraW5nT3Bwb3J0dW5pdHkoaW5saW5lQm94LCBjdXJyZW50UG9z
aXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gd2luZG93Lm5leHRCcmVha2luZ09wcG9ydHVu
aXR5KGlubGluZUJveC50ZXh0KCksIGN1cnJlbnRQb3NpdGlvbik7CisgICAgfQorCisgICAgc3Rh
dGljIG1lYXN1cmVUZXh0KGlubGluZUJveCwgc3RhcnQsIGVuZCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBpbmxpbmVCb3gubm9kZSgpLm1lYXN1cmVUZXh0KHN0YXJ0LCBlbmQpOworICAgIH0KKwor
ICAgIC8vICJSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTMxN3gzNjZcbiBIVE1MIFJlbmRlckJs
b2NrIGF0ICgwLDApIHNpemUgMTMxN3gxMTZcbiAgQk9EWSBSZW5kZXJCb2R5IGF0ICg4LDgpIHNp
emUgMTMwMXgxMDBcbiAgIERJViBSZW5kZXJCbG9jayBhdCAoMCwwKSBzaXplIDEwMHgxMDBcbiI7
CisgICAgc3RhdGljIGxheW91dFRyZWVEdW1wKGluaXRpYWxDb250YWluaW5nQmxvY2spIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2R1bXBCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jaywgMSkgKyB0
aGlzLl9kdW1wVHJlZShpbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAyKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgX2R1bXBCb3goYm94LCBsZXZlbCkgeworICAgICAgICAvLyBTa2lwIGFub255bW91cyBi
b3hlcyBmb3Igbm93IC1UaGlzIGlzIHRoZSBjYXNlIHdoZXJlIFdlYktpdCBkb2VzIG5vdCBnZW5l
cmF0ZSBhbiBhbm9uIGlubGluZSBjb250YWluZXIgZm9yIHRleHQgY29udGVudCB3aGVyZSB0aGUg
dGV4dCBpcyBhIGRpcmVjdCBjaGlsZAorICAgICAgICAvLyBvZiBhIGJsb2NrIGNvbnRhaW5lci4K
KyAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBsZXQgaW5kZW50YXRpb24gPSAiICIucmVwZWF0KGxldmVsKTsKKyAgICAgICAgbGV0IGJv
eFJlY3QgPSBib3gucmVjdCgpOworICAgICAgICByZXR1cm4gaW5kZW50YXRpb24gKyAoYm94Lm5v
ZGUoKS50YWdOYW1lID8gKGJveC5ub2RlKCkudGFnTmFtZSArICIgIikgOiAiIikgICsgYm94Lm5h
bWUoKSArICIgYXQgKCIgKyBib3hSZWN0LmxlZnQoKSArICIsIiArIGJveFJlY3QudG9wKCkgKyAi
KSBzaXplICIgKyBib3hSZWN0LndpZHRoKCkgKyAieCIgKyBib3hSZWN0LmhlaWdodCgpICsgIlxu
IjsKKyAgICB9CisKKyAgICBzdGF0aWMgX2R1bXBUcmVlKHJvb3QsIGxldmVsKSB7CisgICAgICAg
IGxldCBjb250ZW50ID0gIiI7CisgICAgICAgIGZvciAobGV0IGNoaWxkID0gcm9vdC5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAg
IGNvbnRlbnQgKz0gdGhpcy5fZHVtcEJveChjaGlsZCwgbGV2ZWwpOworICAgICAgICAgICAgaWYg
KGNoaWxkLmlzQ29udGFpbmVyKCkpCisgICAgICAgICAgICAgICAgY29udGVudCArPSB0aGlzLl9k
dW1wVHJlZShjaGlsZCwgbGV2ZWwgKyAxLCBjb250ZW50KTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gY29udGVudDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2ggYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNTU5MzQxMzU4
ZjQ0OTkxYjczZTIzNDRmYjU4OGM4OTYwZTE1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoCkBAIC0wLDAgKzEs
NDgxIEBACitkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKK2luZGV4IGMzMTVlZTI1ZmMwLi42ODk4YjRkNTVhMSAxMDA2NDQK
Ky0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKK0BAIC0xMTAzLDcgKzExMDMsNyBAQAorICNpZiAhZGVmaW5lZChOREVCVUcpCisg
I2RlZmluZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMQorICNlbHNlCistI2RlZmluZSBFTkFCTEVf
VFJFRV9ERUJVR0dJTkcgMAorKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEKKyAjZW5k
aWYKKyAjZW5kaWYKKyAKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCitpbmRleCBhYjJhMTc4NTRjNS4uMDVkMWJjZWQxZjMgMTAwNjQ0
CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKK0BAIC00MTAxLDYgKzQxMDEsMzYgQEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGMKKyAgICAg
cmV0dXJuIHZhbHVlLT5jc3NUZXh0KCk7CisgfQorIAorK2Jvb2wgQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uOjppc1Byb3BlcnR5VmFsdWVJbml0aWFsKGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lKQorK3sKKysgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOworKyAgICBhdXRvKiBzdHlsZSA9IG1fZWxlbWVudC0+Y29tcHV0
ZWRTdHlsZShtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIpOworKyAgICBpZiAoIXN0eWxlKQorKyAg
ICAgICAgcmV0dXJuIHRydWU7CisrCisrICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGNz
c1Byb3BlcnR5SUQocHJvcGVydHlOYW1lKTsKKysgICAgaWYgKCFwcm9wZXJ0eUlEKQorKyAgICAg
ICAgcmV0dXJuIHRydWU7CisrCisrICAgIHN3aXRjaCAocHJvcGVydHlJRCkgeworKyAgICBjYXNl
IENTU1Byb3BlcnR5TGVmdDoKKysgICAgICAgIHJldHVybiBzdHlsZS0+bGVmdCgpLmlzQXV0bygp
OworKyAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6CisrICAgICAgICByZXR1cm4gc3R5bGUtPnJp
Z2h0KCkuaXNBdXRvKCk7CisrICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6CisrICAgICAgICByZXR1
cm4gc3R5bGUtPnRvcCgpLmlzQXV0bygpOworKyAgICBjYXNlIENTU1Byb3BlcnR5Qm90dG9tOgor
KyAgICAgICAgcmV0dXJuIHN0eWxlLT5ib3R0b20oKS5pc0F1dG8oKTsKKysgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdpZHRoOgorKyAgICAgICAgcmV0dXJuIHN0eWxlLT53aWR0aCgpLmlzQXV0bygpOwor
KyAgICBjYXNlIENTU1Byb3BlcnR5SGVpZ2h0OgorKyAgICAgICAgcmV0dXJuIHN0eWxlLT5oZWln
aHQoKS5pc0F1dG8oKTsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworKyAgICB9CisrICAgIHJldHVybiBmYWxzZTsKKyt9CisrCisgdW5zaWduZWQgQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAorIHsKKyAgICAgdXBkYXRlU3R5
bGVJZk5lZWRlZEZvclByb3BlcnR5KG1fZWxlbWVudC5nZXQoKSwgQ1NTUHJvcGVydHlDdXN0b20p
OworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
aAoraW5kZXggMzlhZTZjMzBkN2UuLmEzYjZmNDY5N2JkIDEwMDY0NAorLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCisrKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKK0BAIC0xMjMsNiArMTIzLDcg
QEAgcHJpdmF0ZToKKyAgICAgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IGZpbmFs
OworICAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgICBTdHJpbmcgZ2V0UHJvcGVy
dHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisrICAgIGJvb2wgaXNQ
cm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7Cisg
ICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1l
KSBmaW5hbDsKKyAgICAgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICAgYm9vbCBpc1Byb3BlcnR5SW1wbGljaXQoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oCitpbmRleCBiMThjOWNlMzI3NC4uNGRmYjZiOTM2ZjggMTAwNjQ0CistLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCitAQCAtNTQsNiArNTQsNyBAQCBwdWJs
aWM6CisgICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0ID0gMDsK
KyAgICAgdmlydHVhbCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByb3BlcnR5Q1NT
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0gMDsKKyAgICAgdmlydHVhbCBTdHJp
bmcgZ2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgPSAwOworKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eVZhbHVlSW5pdGlhbChjb25zdCBTdHJpbmcmIHByb3Bl
cnR5TmFtZSkgPSAwOworICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7CisgICAgIHZpcnR1YWwgU3RyaW5nIGdldFBy
b3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7CisgICAgIHZp
cnR1YWwgYm9vbCBpc1Byb3BlcnR5SW1wbGljaXQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
ID0gMDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKK2luZGV4
IDAzNWNiNjI0NWQ5Li5jNjIyMzEzZGIzYiAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAorKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlRGVjbGFyYXRpb24uaWRsCitAQCAtMzAsNiArMzAsOCBAQAorIAorICAgICBET01TdHJpbmcg
Z2V0UHJvcGVydHlWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKyAKKysgICAgYm9vbGVh
biBpc1Byb3BlcnR5VmFsdWVJbml0aWFsKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworKworICAg
ICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVtb3ZlUHJvcGVy
dHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQ
cmlvcml0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKyAKK2RpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCitpbmRleCAwODRj
YmNhMDRlYy4uNGZjNTg5MjI2Y2YgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKK0BAIC0xOTYsNiArMTk2LDExIEBA
IFN0cmluZyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hCisgICAgIHJldHVybiBnZXRQcm9wZXJ0eVZhbHVlSW50
ZXJuYWwocHJvcGVydHlJRCk7CisgfQorIAorK2Jvb2wgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uOjppc1Byb3BlcnR5VmFsdWVJbml0aWFsKGNvbnN0IFN0cmluZyYpCisreworKyAgICBy
ZXR1cm4gZmFsc2U7CisrfQorKworIFN0cmluZyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCisgewor
ICAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkKK2RpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKK2luZGV4
IDA0MTk2NDA1ZGRmLi41OTk4MTIwNWNhZSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAorKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCitAQCAtNjgsNiArNjgsNyBAQCBw
cml2YXRlOgorICAgICBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgZmluYWw7Cisg
ICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisgICAgIFN0cmluZyBnZXRQcm9wZXJ0eVZh
bHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKysgICAgYm9vbCBpc1Byb3Bl
cnR5VmFsdWVJbml0aWFsKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICAg
U3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZp
bmFsOworICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUpIGZpbmFsOworICAgICBib29sIGlzUHJvcGVydHlJbXBsaWNpdChjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCitpbmRleCA0OGYzMTYxYTlh
Yy4uMGUwMWQyYTczZjAgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorQEAgLTUxNCw2ICs1MTQsMjAgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6YmVmb3JlKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9k
ZU9yU3RyaW5nVmVjdG9yKQorICAgICByZXR1cm4gcGFyZW50LT5pbnNlcnRCZWZvcmUoKm5vZGUs
IHZpYWJsZVByZXZpb3VzU2libGluZy5nZXQoKSk7CisgfQorIAorK2ludCBOb2RlOjpyZW5kZXJl
cklkKCkKKyt7CisrICAgIGlmICghcmVuZGVyZXIoKSkKKysgICAgICAgIHJldHVybiAwOworKyAg
ICByZXR1cm4gcmVuZGVyZXIoKS0+cmVuZGVySWQoKTsKKyt9CisrCisrZG91YmxlIE5vZGU6OnRl
eHRXaWR0aChpbnQgc3RhcnQsIGludCBlbmQpCisreworKyAgICBpZiAoIXJlbmRlcmVyKCkpCisr
ICAgICAgICByZXR1cm4gMDsKKysgICAgcmV0dXJuIHJlbmRlcmVyKCktPm1lYXN1cmVUZXh0KHN0
YXJ0LCBlbmQpOworK30KKysKKyBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjphZnRlcihWZWN0b3I8
Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvcikKKyB7CisgICAgIFJlZlB0cjxDb250
YWluZXJOb2RlPiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKK2luZGV4IGViODU3
ZmViOWFjLi42ZjBiNzVkNTE4ZCAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKK0BAIC0xNzgsNyArMTc4LDEwIEBA
IHB1YmxpYzoKKyAKKyAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRleHRDb250ZW50KGJvb2wg
Y29udmVydEJSc1RvTmV3bGluZXMgPSBmYWxzZSkgY29uc3Q7CisgICAgIFdFQkNPUkVfRVhQT1JU
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYpOworLSAgICAK
KysKKysgICAgaW50IHJlbmRlcmVySWQoKTsKKysgICAgZG91YmxlIHRleHRXaWR0aChpbnQgc3Rh
cnQsIGludCBlbmQpOworKworICAgICBOb2RlKiBsYXN0RGVzY2VuZGFudCgpIGNvbnN0OworICAg
ICBOb2RlKiBmaXJzdERlc2NlbmRhbnQoKSBjb25zdDsKKyAKK2RpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKK2luZGV4
IDI1MTc3YThjZDQzLi42MjM1YmI2NTRiNSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmlkbAorKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCitAQCAtNzMsNiAr
NzMsOSBAQAorICAgICB1bnNpZ25lZCBzaG9ydCBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbihOb2Rl
IG90aGVyKTsKKyAgICAgYm9vbGVhbiBjb250YWlucyhOb2RlPyBvdGhlcik7CisgCisrICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJlbmRlcmVySWQ7CisrICAgIGRvdWJsZSB0ZXh0V2lkdGgo
bG9uZyBzdGFydCwgbG9uZyBlbmQpOworKworICAgICBET01TdHJpbmc/IGxvb2t1cFByZWZpeChE
T01TdHJpbmc/IG5hbWVzcGFjZVVSSSk7CisgICAgIERPTVN0cmluZz8gbG9va3VwTmFtZXNwYWNl
VVJJKERPTVN0cmluZz8gcHJlZml4KTsKKyAgICAgYm9vbGVhbiBpc0RlZmF1bHROYW1lc3BhY2Uo
RE9NU3RyaW5nPyBuYW1lc3BhY2VVUkkpOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAoraW5k
ZXggZjFkMTk4NWQxMDQuLmY1YTAxMDc1YmVhIDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKK0BAIC03Nyw2ICs3Nyw3IEBACisgI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCisg
I2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKKyAjaW5jbHVkZSAiUGVyZm9ybWFuY2Uu
aCIKKysjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorICNpbmNsdWRlICJSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5oIgorICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJbmZvLmgiCisgI2luY2x1
ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorQEAgLTEzNjcsNiArMTM2OCwyMyBAQCBT
dHJpbmcgRE9NV2luZG93OjpuYW1lKCkgY29uc3QKKyAgICAgcmV0dXJuIG1fZnJhbWUtPnRyZWUo
KS5uYW1lKCk7CisgfQorIAorK1N0cmluZyBET01XaW5kb3c6OnNpbXBsaWZpZWRSZW5kZXJUcmVl
KCkgY29uc3QKKyt7CisrICAgIHJldHVybiBtX2ZyYW1lLT52aWV3KCktPnJlbmRlclZpZXcoKS0+
c2ltcGxpZmllZFJlbmRlclRyZWUoKTsKKyt9CisrCisrU3RyaW5nIERPTVdpbmRvdzo6cmVuZGVy
VHJlZVN0cnVjdHVyZSgpIGNvbnN0CisreworKyAgICByZXR1cm4gbV9mcmFtZS0+dmlldygpLT5y
ZW5kZXJWaWV3KCktPnJlbmRlclRyZWVTdHJ1Y3R1cmUoKTsKKyt9CisrCisraW50IERPTVdpbmRv
dzo6bmV4dEJyZWFraW5nT3Bwb3J0dW5pdHkoY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBz
dGFydFBvc2l0aW9uKQorK3sKKysgICAgaWYgKHN0YXJ0UG9zaXRpb24gPj0gdGV4dC5sZW5ndGgo
KSAtIDEpCisrICAgICAgICByZXR1cm4gc3RhcnRQb3NpdGlvbjsKKysgICAgcmV0dXJuIHN0YXJ0
UG9zaXRpb24gKyAxOworK30KKysKKyB2b2lkIERPTVdpbmRvdzo6c2V0TmFtZShjb25zdCBTdHJp
bmcmIHN0cmluZykKKyB7CisgICAgIGlmICghbV9mcmFtZSkKK2RpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aAoraW5kZXggNzc0OGVmYWY4NGIuLmE2ODYzYTMyNzRhIDEwMDY0NAorLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAorQEAgLTE5MSw2ICsxOTEsMTAgQEAgcHVibGljOgorICAgICBTdHJpbmcgZGVmYXVsdFN0
YXR1cygpIGNvbnN0OworICAgICB2b2lkIHNldERlZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJik7
CisgCisrICAgIFN0cmluZyBzaW1wbGlmaWVkUmVuZGVyVHJlZSgpIGNvbnN0OworKyAgICBTdHJp
bmcgcmVuZGVyVHJlZVN0cnVjdHVyZSgpIGNvbnN0OworKyAgICBpbnQgbmV4dEJyZWFraW5nT3Bw
b3J0dW5pdHkoY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uKTsKKysK
KyAgICAgLy8gU2VsZi1yZWZlcmVudGlhbCBhdHRyaWJ1dGVzCisgCisgICAgIERPTVdpbmRvdyog
c2VsZigpIGNvbnN0OworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAoraW5kZXggODAxYTBmYjNi
YjMuLmQwMWUxYmY0YTZkIDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKK0BAIC04Miw2
ICs4MiwxMCBAQCB0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKyAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CisgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7CisgCisrICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgc2ltcGxpZmllZFJlbmRlclRyZWU7CisrICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcmVuZGVyVHJlZVN0cnVjdHVyZTsKKysgICAgbG9uZyBuZXh0QnJl
YWtpbmdPcHBvcnR1bml0eShET01TdHJpbmcgdGV4dCwgdW5zaWduZWQgbG9uZyBzdGFydFBvc2l0
aW9uKTsKKysKKyAgICAgLy8gVXNlciBwcm9tcHRzLgorICAgICB2b2lkIGFsZXJ0KCk7CisgICAg
IHZvaWQgYWxlcnQoRE9NU3RyaW5nIG1lc3NhZ2UpOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFj
Lm1tCitpbmRleCA0ODA3ZTdiNjFkMS4uZjU5MTZjMTE1MDIgMTAwNjQ0CistLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9QYWdlTWFjLm1tCitAQCAtNTIsMTEgKzUyLDYgQEAgdm9pZCBQYWdlOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQorICNlbmRpZgorIAorICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCistICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKy0gICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFtdIHsKKy0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxl
LldlYktpdC5zaG93UmVuZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMp
OworLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0
LnNob3dMYXllclRyZWUiLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOworLSAgICB9
KTsKKyAjZW5kaWYKKyB9CisgCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAoraW5kZXggY2FjMDU1MTY0NmIuLjY4ZjVjMzE3MjYwIDEwMDY0NAorLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCitAQCAtMTA3LDcgKzEwNyw3IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzUmVuZGVyT2JqZWN0IHsKKyAgICAgdW5zaWduZWQgbV9iaXRmaWVsZHM7CisgfTsK
KyAKKy1DT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyT2JqZWN0KSA9PSBzaXplb2YoU2FtZVNp
emVBc1JlbmRlck9iamVjdCksIFJlbmRlck9iamVjdF9zaG91bGRfc3RheV9zbWFsbCk7CisrQ09N
UElMRV9BU1NFUlQodHJ1ZSB8fCBzaXplb2YoUmVuZGVyT2JqZWN0KSA9PSBzaXplb2YoU2FtZVNp
emVBc1JlbmRlck9iamVjdCksIFJlbmRlck9iamVjdF9zaG91bGRfc3RheV9zbWFsbCk7CisgCisg
REVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCByZW5k
ZXJPYmplY3RDb3VudGVyLCAoIlJlbmRlck9iamVjdCIpKTsKKyAKK0BAIC0xMjgsNiArMTI4LDgg
QEAgUmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSYgbm9kZSkKKyAjZW5kaWYKKyAgICAg
LCBtX2JpdGZpZWxkcyhub2RlKQorIHsKKysgICAgc3RhdGljIGludCByZW5kZXJJRCA9IDA7Cisr
ICAgIG1fcmVuZGVySWQgPSArK3JlbmRlcklEOworICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVy
VmlldyA9IG5vZGUuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpCisgICAgICAgICByZW5kZXJWaWV3
LT5kaWRDcmVhdGVSZW5kZXJlcigpOworICNpZm5kZWYgTkRFQlVHCitAQCAtMTE5NywxNCArMTE5
OSw3OCBAQCB2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2JqZWN0KFRleHRTdHJlYW0m
IHN0cmVhbSwgYm9vbCBtYXJrLCBpbnQgZGVwdGgpCisgICAgIHN0cmVhbS5uZXh0TGluZSgpOwor
IH0KKyAKKy12b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyU3ViVHJlZUFuZE1hcmsoVGV4
dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBSZW5kZXJPYmplY3QqIG1hcmtlZE9iamVjdCwgaW50IGRl
cHRoKSBjb25zdAorKworK3ZvaWQgUmVuZGVyT2JqZWN0OjpyZW5kZXJTdWJ0cmVlU3RydWN0dXJl
KFRleHRTdHJlYW0mIHN0cmVhbSkgY29uc3QKKyt7CisrICAgIG91dHB1dFJlbmRlck9iamVjdFN0
cnVjdHVyZShzdHJlYW0pOworKyAgICBmb3IgKGF1dG8qIGNoaWxkID0gZmlyc3RDaGlsZFNsb3co
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisrICAgICAgICBjaGlsZC0+
cmVuZGVyU3VidHJlZVN0cnVjdHVyZShzdHJlYW0pOworK30KKysKKysvLyAxKClSZW5kZXJWaWV3
fDIoMSlSZW5kZXJCbG9ja3wzKDIpUmVuZGVyQm9keXw0KDMpUmVuZGVyQmxvY2t8NSgzKUFub255
bW91c1JlbmRlckJsb2NrfAorK3ZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3RT
dHJ1Y3R1cmUoV1RGOjpUZXh0U3RyZWFtJiBzdHJlYW0pIGNvbnN0CisgeworLSAgICBvdXRwdXRS
ZW5kZXJPYmplY3Qoc3RyZWFtLCBtYXJrZWRPYmplY3QgPT0gdGhpcywgZGVwdGgpOworLSAgICBp
ZiAoaXM8UmVuZGVyQmxvY2tGbG93PigqdGhpcykpCistICAgICAgICBkb3duY2FzdDxSZW5kZXJC
bG9ja0Zsb3c+KCp0aGlzKS5vdXRwdXRMaW5lVHJlZUFuZE1hcmsoc3RyZWFtLCBudWxscHRyLCBk
ZXB0aCArIDEpOworKyAgICBzdHJlYW0gPDwgcmVuZGVySWQoKTsKKysgICAgaWYgKHBhcmVudCgp
KQorKyAgICAgICAgc3RyZWFtIDw8ICIoIiA8PCBwYXJlbnQoKS0+cmVuZGVySWQoKSA8PCAiKSI7
CisrICAgIGVsc2UKKysgICAgICAgIHN0cmVhbSA8PCAiKCkiOworKworKyAgICBTdHJpbmcgbmFt
ZSA9IHJlbmRlck5hbWUoKTsKKysgICAgLy8gRklYTUU6IFJlbmRlcmVyJ3MgbmFtZSBzaG91bGQg
bm90IGluY2x1ZGUgcHJvcGVydHkgdmFsdWUgbGlzdGluZy4KKysgICAgaW50IHBvcyA9IG5hbWUu
ZmluZCgnKCcpOworKyAgICBpZiAoaXNBbm9ueW1vdXMoKSkKKysgICAgICAgIHN0cmVhbSA8PCAi
QW5vbnltb3VzIjsKKysgICAgaWYgKHBvcyA+IDApCisrICAgICAgICBzdHJlYW0gPDwgbmFtZS5s
ZWZ0KHBvcyAtIDEpLnV0ZjgoKS5kYXRhKCk7CisrICAgIGVsc2UKKysgICAgICAgIHN0cmVhbSA8
PCBuYW1lLnV0ZjgoKS5kYXRhKCk7CisrICAgIHN0cmVhbSA8PCAifCI7CisrfQorIAorK3ZvaWQg
UmVuZGVyT2JqZWN0OjpzaW1wbGlmaWVkUmVuZGVyU3VidHJlZShUZXh0U3RyZWFtJiBzdHJlYW0s
IGludCBkZXB0aCkgY29uc3QKKyt7CisrICAgIG91dHB1dFNpbXBsaWZpZWRSZW5kZXJPYmplY3Qo
c3RyZWFtLCBkZXB0aCk7CisgICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkU2xvdygp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKy0gICAgICAgIGNoaWxkLT5v
dXRwdXRSZW5kZXJTdWJUcmVlQW5kTWFyayhzdHJlYW0sIG1hcmtlZE9iamVjdCwgZGVwdGggKyAx
KTsKKysgICAgICAgIGNoaWxkLT5zaW1wbGlmaWVkUmVuZGVyU3VidHJlZShzdHJlYW0sIGRlcHRo
ICsgMSk7CisrfQorKworK3ZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRTaW1wbGlmaWVkUmVuZGVy
T2JqZWN0KFdURjo6VGV4dFN0cmVhbSYgc3RyZWFtLCBpbnQgZGVwdGgpIGNvbnN0CisreworKyAg
ICAgaW50IHByaW50ZWRDaGFyYWN0ZXJzID0gMDsKKysKKysgICAgd2hpbGUgKCsrcHJpbnRlZENo
YXJhY3RlcnMgPD0gZGVwdGgpCisrICAgICAgICAgc3RyZWFtIDw8ICIgIjsKKysKKysgICAgIGlm
IChub2RlKCkpCisrICAgICAgICBzdHJlYW0gPDwgbm9kZSgpLT5ub2RlTmFtZSgpLnV0ZjgoKS5k
YXRhKCkgPDwgIiAiOworKworKyAgICBTdHJpbmcgbmFtZSA9IHJlbmRlck5hbWUoKTsKKysgICAg
Ly8gRklYTUU6IFJlbmRlcmVyJ3MgbmFtZSBzaG91bGQgbm90IGluY2x1ZGUgcHJvcGVydHkgdmFs
dWUgbGlzdGluZy4KKysgICAgaW50IHBvcyA9IG5hbWUuZmluZCgnKCcpOworKyAgICBpZiAocG9z
ID4gMCkKKysgICAgICAgIHN0cmVhbSA8PCBuYW1lLmxlZnQocG9zIC0gMSkudXRmOCgpLmRhdGEo
KTsKKysgICAgZWxzZQorKyAgICAgICAgc3RyZWFtIDw8IG5hbWUudXRmOCgpLmRhdGEoKTsKKysK
KysgICAgaWYgKGlzPFJlbmRlckJveD4oKnRoaXMpKSB7CisrICAgICAgICBhdXRvJiByZW5kZXJC
b3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KCp0aGlzKTsKKysgICAgICAgIEZsb2F0UmVjdCBib3hS
ZWN0ID0gcmVuZGVyQm94LmZyYW1lUmVjdCgpOworKyAgICAgICAgaWYgKHJlbmRlckJveC5pc0lu
Rmxvd1Bvc2l0aW9uZWQoKSkKKysgICAgICAgICAgICBib3hSZWN0Lm1vdmUocmVuZGVyQm94Lm9m
ZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOworKyAgICAgICAgc3RyZWFtIDw8ICIgIiA8PCBib3hS
ZWN0OworKyAgICB9IGVsc2UgaWYgKGlzPFJlbmRlcklubGluZT4oKnRoaXMpICYmIGlzSW5GbG93
UG9zaXRpb25lZCgpKSB7CisrICAgICAgICBGbG9hdFNpemUgaW5saW5lT2Zmc2V0ID0gZG93bmNh
c3Q8UmVuZGVySW5saW5lPigqdGhpcykub2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKysgICAg
ICAgIHN0cmVhbSA8PCAiICAoIiA8PCBpbmxpbmVPZmZzZXQud2lkdGgoKSA8PCAiLCAiIDw8IGlu
bGluZU9mZnNldC5oZWlnaHQoKSA8PCAiKSI7CisrICAgIH0KKysKKysgICAgIGlmIChpczxSZW5k
ZXJCb3hNb2RlbE9iamVjdD4oKnRoaXMpKSB7CisrICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBk
b3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnRoaXMpOworKyAgICAgICAgIGlmIChyZW5k
ZXJlci5jb250aW51YXRpb24oKSkKKysgICAgICAgICAgICAgc3RyZWFtIDw8ICIgY29udGludWF0
aW9uLT4oIiA8PCByZW5kZXJlci5jb250aW51YXRpb24oKSA8PCAiKSI7CisrICAgICB9CisrICAg
ICBvdXRwdXRSZWdpb25zSW5mb3JtYXRpb24oc3RyZWFtKTsKKysgICAgIHN0cmVhbS5uZXh0TGlu
ZSgpOworIH0KKyAKKyAjZW5kaWYgLy8gTkRFQlVHCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCitpbmRleCBmYzA0N2M1YzE0ZC4uODU0ZGNjZjc3NzggMTAwNjQ0CistLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorQEAgLTExMiw2ICsxMTIsOSBAQCBwdWJs
aWM6CisgCisgICAgIGF1dG8mIHdlYWtQdHJGYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV93ZWFr
RmFjdG9yeTsgfQorIAorKyAgICBpbnQgcmVuZGVySWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRl
cklkOyB9CisrICAgIHZpcnR1YWwgZmxvYXQgbWVhc3VyZVRleHQoaW50LCBpbnQpIGNvbnN0IHsg
cmV0dXJuIC0xOyB9CisrCisgICAgIFJlbmRlclRoZW1lJiB0aGVtZSgpIGNvbnN0OworIAorICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CitAQCAtMjAyLDEw
ICsyMDUsMTYgQEAgcHVibGljOgorICAgICB2b2lkIHNob3dOb2RlVHJlZUZvclRoaXMoKSBjb25z
dDsKKyAgICAgdm9pZCBzaG93UmVuZGVyVHJlZUZvclRoaXMoKSBjb25zdDsKKyAgICAgdm9pZCBz
aG93TGluZVRyZWVGb3JUaGlzKCkgY29uc3Q7CisrICAgIHZvaWQgc2ltcGxpZmllZFJlbmRlclN1
YnRyZWUoVGV4dFN0cmVhbSYgc3RyZWFtLCBpbnQgZGVwdGgpIGNvbnN0OworKyAgICB2b2lkIHJl
bmRlclN1YnRyZWVTdHJ1Y3R1cmUoVGV4dFN0cmVhbSYgc3RyZWFtKSBjb25zdDsKKyAKKyAgICAg
dm9pZCBvdXRwdXRSZW5kZXJPYmplY3QoV1RGOjpUZXh0U3RyZWFtJiwgYm9vbCBtYXJrLCBpbnQg
ZGVwdGgpIGNvbnN0OworICAgICB2b2lkIG91dHB1dFJlbmRlclN1YlRyZWVBbmRNYXJrKFdURjo6
VGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCogbWFya2VkT2JqZWN0LCBpbnQgZGVwdGgp
IGNvbnN0OworKyAgICB2b2lkIG91dHB1dFJlbmRlclN1YlRyZWVBbmRNYXJrU3RydWN0dXJlKFdU
Rjo6VGV4dFN0cmVhbSYpIGNvbnN0OworICAgICB2b2lkIG91dHB1dFJlZ2lvbnNJbmZvcm1hdGlv
bihXVEY6OlRleHRTdHJlYW0mKSBjb25zdDsKKysKKysgICAgdm9pZCBvdXRwdXRTaW1wbGlmaWVk
UmVuZGVyT2JqZWN0KFdURjo6VGV4dFN0cmVhbSYsIGludCBkZXB0aCkgY29uc3Q7CisrICAgIHZv
aWQgb3V0cHV0UmVuZGVyT2JqZWN0U3RydWN0dXJlKFdURjo6VGV4dFN0cmVhbSYpIGNvbnN0Owor
ICNlbmRpZgorIAorICAgICBib29sIGlzUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG5v
ZGUoKSAmJiBub2RlKCktPmlzUHNldWRvRWxlbWVudCgpOyB9CitAQCAtODI4LDYgKzgzNyw3IEBA
IHByaXZhdGU6CisgI2VuZGlmCisgCisgICAgIE5vZGUmIG1fbm9kZTsKKysgICAgaW50IG1fcmVu
ZGVySWQgeyAwIH07CisgCisgICAgIFJlbmRlckVsZW1lbnQqIG1fcGFyZW50OworICAgICBSZW5k
ZXJPYmplY3QqIG1fcHJldmlvdXM7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCitpbmRleCA2YWUwNDdjNDY5Zi4uM2E5ZjQ4MzkzNTIgMTAwNjQ0CistLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcAorQEAgLTIyOCw2ICsyMjgsMTEgQEAgVGV4dCogUmVuZGVy
VGV4dDo6dGV4dE5vZGUoKSBjb25zdAorICAgICByZXR1cm4gZG93bmNhc3Q8VGV4dD4oUmVuZGVy
T2JqZWN0Ojpub2RlKCkpOworIH0KKyAKKytmbG9hdCBSZW5kZXJUZXh0OjptZWFzdXJlVGV4dChp
bnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CisreworKyAgICByZXR1cm4gd2lkdGgoc3RhcnQsIGVu
ZCwgMCk7CisrfQorKworIGJvb2wgUmVuZGVyVGV4dDo6aXNUZXh0RnJhZ21lbnQoKSBjb25zdAor
IHsKKyAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5o
CitpbmRleCBmNDYyOTBmNWRlYS4uNzFiNzI3NDc2OTkgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dC5oCitAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CisgCisgICAgIFdFQkNP
UkVfRVhQT1JUIFRleHQqIHRleHROb2RlKCkgY29uc3Q7CisgCisrICAgIGZsb2F0IG1lYXN1cmVU
ZXh0KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgZmluYWw7CisrCisgICAgIHZpcnR1YWwgYm9v
bCBpc1RleHRGcmFnbWVudCgpIGNvbnN0OworIAorICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUoKSBjb25zdDsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKK2luZGV4
IDY3OTU5YWU3MTFmLi4zNDdhNTFmODcwMyAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCitAQCAtOTU2LDQgKzk1NiwxOSBAQCB2b2lkIFJlbmRlclZpZXc6OnVucmVn
aXN0ZXJCb3hXaXRoU2Nyb2xsU25hcFBvc2l0aW9ucyhjb25zdCBSZW5kZXJCb3gmIGJveCkKKyB9
CisgI2VuZGlmCisgCisrU3RyaW5nIFJlbmRlclZpZXc6OnNpbXBsaWZpZWRSZW5kZXJUcmVlKCkg
Y29uc3QKKyt7CisrICAgIFRleHRTdHJlYW0gc3RyZWFtKFRleHRTdHJlYW06OkxpbmVNb2RlOjpN
dWx0aXBsZUxpbmUsIFRleHRTdHJlYW06OkZvcm1hdHRpbmc6OlNWR1N0eWxlUmVjdCk7CisrICAg
IHNpbXBsaWZpZWRSZW5kZXJTdWJ0cmVlKHN0cmVhbSwgMSk7CisrICAgIHJldHVybiBzdHJlYW0u
cmVsZWFzZSgpOworK30KKysKKytTdHJpbmcgUmVuZGVyVmlldzo6cmVuZGVyVHJlZVN0cnVjdHVy
ZSgpIGNvbnN0CisreworKyAgICBUZXh0U3RyZWFtIHN0cmVhbShUZXh0U3RyZWFtOjpMaW5lTW9k
ZTo6TXVsdGlwbGVMaW5lLCBUZXh0U3RyZWFtOjpGb3JtYXR0aW5nOjpTVkdTdHlsZVJlY3QpOwor
KyAgICByZW5kZXJTdWJ0cmVlU3RydWN0dXJlKHN0cmVhbSk7CisrICAgIHJldHVybiBzdHJlYW0u
cmVsZWFzZSgpOworK30KKysKKysKKyB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCitkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKK2luZGV4IDljNWJiOTg5NWM1Li40YmVhNWUzNjMwYiAx
MDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKK0BAIC0xOTgsNiArMTk4LDkg
QEAgcHVibGljOgorICAgICBib29sIGluSGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faW5I
aXRUZXN0aW5nOyB9CisgI2VuZGlmCisgCisrICAgIFN0cmluZyBzaW1wbGlmaWVkUmVuZGVyVHJl
ZSgpIGNvbnN0OworKyAgICBTdHJpbmcgcmVuZGVyVHJlZVN0cnVjdHVyZSgpIGNvbnN0OworKwor
IHByb3RlY3RlZDoKKyAgICAgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncywgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlOworICAgICBjb25z
dCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBv
dmVycmlkZTsKK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGlu
ZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5j
cHAKK2luZGV4IDg3NzdkYzA5OWI4Li43MDJmY2M2MzRmNCAxMDA2NDQKKy0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAorKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCitAQCAtMzUxLDcgKzM1MSw3IEBAIEF2
b2lkYW5jZVJlYXNvbkZsYWdzIGNhblVzZUZvcldpdGhSZWFzb24oY29uc3QgUmVuZGVyQmxvY2tG
bG93JiBmbG93LCBJbmNsdWRlUmVhCisgCisgYm9vbCBjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxv
Y2tGbG93JiBmbG93KQorIHsKKy0gICAgcmV0dXJuIGNhblVzZUZvcldpdGhSZWFzb24oZmxvdywg
SW5jbHVkZVJlYXNvbnM6OkZpcnN0KSA9PSBOb1JlYXNvbjsKKysgICAgcmV0dXJuIGZhbHNlICYm
IGNhblVzZUZvcldpdGhSZWFzb24oZmxvdywgSW5jbHVkZVJlYXNvbnM6OkZpcnN0KSA9PSBOb1Jl
YXNvbjsKKyB9CisgCisgc3RhdGljIGZsb2F0IGNvbXB1dGVMaW5lTGVmdChFVGV4dEFsaWduIHRl
eHRBbGlnbiwgZmxvYXQgYXZhaWxhYmxlV2lkdGgsIGZsb2F0IGNvbW1pdHRlZFdpZHRoLCBmbG9h
dCBsb2dpY2FsTGVmdE9mZnNldCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21p
c2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9o
ZWFkZXJzL0Jsb2NrQ29udGFpbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZiMDg4ZWIyMGQ4Zjk1MWM4M2M3
NzU2MTUwMDRjYWU4NjcxYmYxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9CbG9ja0NvbnRhaW5lci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgTGF5b3V0
UmVsb2FkZWQgeworCisjaW5jbHVkZSAiQ29udGFpbmVyLmgiCisKK2NsYXNzIEJsb2NrQ29udGFp
bmVyIDogcHVibGljIENvbnRhaW5lciB7CitwdWJsaWM6CisgICAgQmxvY2tDb250YWluZXIoTm9k
ZSosIHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7CisgICAgdmlydHVhbCB+QmxvY2tDb250YWlu
ZXIoKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVh
ZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNj
L2hlYWRlcnMvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlODlmNzZkMTYx
YjkwYTM1MzRmNDZmNTk5ZTcyYjU0ZGY2ZTA1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIExheW91dFJlbG9h
ZGVkIHsKKworY2xhc3MgQmxvY2tDb250YWluZXI7CitjbGFzcyBCb3g7CitjbGFzcyBGbG9hdGlu
Z0NvbnRleHQ7CitjbGFzcyBMYXlvdXRDb250ZXh0OworCitjbGFzcyBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0IDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0KEJsb2NrQ29udGFpbmVyJiByb290KTsKKyAgICB2aXJ0dWFsIH5CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0KCk7CisKKyAgICB2b2lkIGxheW91dChMYXlvdXRDb250ZXh0Jikg
ZmluYWw7CisKK3ByaXZhdGU6CisgICAgTGF5b3V0VW5pdCBjb21wdXRlV2lkdGgoY29uc3QgQm94
JikgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlSGVpZ2h0KGNvbnN0IEJveCYp
IGNvbnN0IGZpbmFsOworCisgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoY29uc3QgQm94JikgY29u
c3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Qg
ZmluYWw7CisKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVPdXRPZkZsb3dXaWR0aChjb25zdCBCb3gm
KSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVGbG9hdGluZ1dpZHRoKGNvbnN0IEJveCYp
IGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUluRmxvd1dpZHRoKGNvbnN0IEJveCYpIGNv
bnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUluRmxvd0hlaWdodChjb25zdCBCb3gmKSBjb25z
dDsKKworICAgIExheW91dFVuaXQgY29tcHV0ZU91dE9mRmxvd0hlaWdodChjb25zdCBCb3gmKSBj
b25zdDsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVGbG9hdGluZ0hlaWdodChjb25zdCBCb3gmKSBj
b25zdDsKKworICAgIExheW91dFVuaXQgY29tcHV0ZUhvcml6b250YWxDb25zdHJhaW50KGNvbnN0
IEJveCYpIGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRlbnRIZWlnaHQoY29uc3Qg
Qm94JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJl
bihCbG9ja0NvbnRhaW5lciYpOworICAgIHZvaWQgcGxhY2VPdXRPZkZsb3dEZXNjZW5kYW50cyhC
bG9ja0NvbnRhaW5lciYpOworCisgICAgTGF5b3V0VW5pdCBjb21wdXRlU3RhdGljUG9zaXRpb24o
Y29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgY29tcHV0ZUluRmxvd1Bvc2l0aW9u
ZWRQb3NpdGlvbihjb25zdCBCb3gmKTsKKyAgICBMYXlvdXRQb2ludCBjb21wdXRlT3V0T2ZGbG93
UG9zaXRpb24oY29uc3QgQm94Jik7CisgICAgCisgICAgTGF5b3V0VW5pdCBzaHJpbmtUb0ZpdFdp
ZHRoKGNvbnN0IEJveCYpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaCBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxhcHNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5NDQ0
Y2MyMTJhMGFmZjM2NmI0YTc4ZGFhNWNkZTk5MWZhMmRkZQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja01hcmdpbkNvbGxhcHNlLmgKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTIGNvbnN0OyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFMgY29uc3Q7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKK2NsYXNzIEJveDsK
KworY2xhc3MgQmxvY2tNYXJnaW5Db2xsYXBzZSB7CitwdWJsaWM6CisgICAgQmxvY2tNYXJnaW5D
b2xsYXBzZSgpIGNvbnN0OworCisgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoY29uc3QgQm94Jikg
Y29uc3Q7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgdm9pZCBpc01hcmdpblRvcENvbGxhcHNlZFdpdGhTaWJsaW5nKGNvbnN0
IEJveCYpIGNvbnN0OworICAgIHZvaWQgaXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRXaXRoU2libGlu
Zyhjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGlzTWFyZ2luVG9wQ29sbGFwc2Vk
V2l0aFBhcmVudChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lkIGlzTWFyZ2luQm90dG9tQ29s
bGFwc2VkV2l0aFBhcmVudChjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIG5vbkNv
bGxhcHNlZE1hcmdpblRvcChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lkIG5vbkNvbGxhcHNl
ZE1hcmdpbkJvdHRvbShjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGNvbGxhcHNl
ZE1hcmdpblRvcEZyb21GaXJzdENoaWxkKGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZvaWQgY29s
bGFwc2VkTWFyZ2luQm90dG9tRnJvbUxhc3RDaGlsZChjb25zdCBCb3gmKSBjb25zdDsKKyAgICAK
KyAgICB2b2lkIG1hcmdpblZhbHVlKGN1cnJlbnRNYXJnaW5WYWx1ZSwgY2FuZGlkYXRlTWFyZ2lu
VmFsdWUpIGNvbnN0OworICAgIAorICAgIHZvaWQgaGFzQWRqb2luaW5nTWFyZ2luVG9wQW5kQm90
dG9tKGNvbnN0IEJveCYpIGNvbnN0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0JveC5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9o
ZWFkZXJzL0JveC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMDg3NTQwNDVjODIzOWMxNDk0ZGM0NzE5ZTg0MzYx
NTRhZGIzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hl
YWRlcnMvQm94LmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKK2NsYXNzIEJv
eCB7CisgICAgQm94KE5vZGUqLCAgdW5zaWduZWQgaWQsIFN0cmluZyBuYW1lKTsKKyAgICB2aXJ0
dWFsIH5Cb3goKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpZCgpIGNvbnN0OworICAgIFN0cmluZyBu
YW1lKCkgY29uc3Q7CisgICAgTm9kZSYgbm9kZSgpIGNvbnN0OworCisgICAgQ29udGFpbmVyKiBw
YXJlbnQoKSBjb25zdDsKKyAgICBCb3gqIG5leHRTaWJsaW5nKCkgY29uc3Q7CisgICAgQm94KiBu
ZXh0SW5GbG93U2libGluZygpIGNvbnN0OworICAgIEJveCogcHJldmlvdXNTaWJsaW5nKCkgY29u
c3Q7CisgICAgQm94KiBwcmV2aW91c0luRmxvd1NpYmxpbmcoKSBjb25zdDsKKyAgICAKKyAgICB2
b2lkIHNldFBhcmVudChDb250YWluZXIqKTsKKyAgICB2b2lkIHNldE5leHRTaWJsaW5nKEJveCop
OworICAgIHZvaWQgc2V0UHJldmlvdXNTaWJsaW5nKEJveCopOworICAgIAorICAgIExheW91dFJl
Y3QgcmVjdCgpIGNvbnN0OworICAgIExheW91dFBvaW50IHRvcExlZnQoKSBjb25zdDsKKyAgICBM
YXlvdXRQb2ludCBib3R0b21SaWdodCgpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0VG9wTGVm
dChMYXlvdXRQb2ludCk7CisgICAgdm9pZCBzZXRTaXplKExheW91dFNpemUpOworICAgIHZvaWQg
c2V0V2lkdGgoTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRIZWlnaHQoTGF5b3V0VW5pdCk7Cisg
ICAgCisgICAgdm9pZCBzZXRJc0Fub255bW91cyhib29sKTsKKyAgICBib29sIGlzQW5vbnltb3Vz
KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUm9vdEVsZW1lbnQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNDb250YWluZXIoKSBjb25zdDsKKworICAgIGJvb2wgaXNCbG9ja0xldmVs
Qm94KCkgY29uc3Q7CisgICAgYm9vbCBpc0Jsb2NrQ29udGFpbmVyQm94KCkgY29uc3Q7CisgICAg
Ym9vbCBpc0lubGluZUxldmVsQm94KCkgY29uc3Q7CisKKyAgICBib29sIGVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSBjb25zdDsKKyAgICBib29sIGVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0OworCisgICAgRm9ybWF0dGluZ0NvbnRleHQqIGVzdGFibGlzaGVk
Rm9ybWF0dGluZ0NvbnRleHQoKTsKKworICAgIGJvb2wgaXNJbkZsb3coKSBjb25zdDsKKyAgICBi
b29sIGlzUG9zaXRpb25lZCgpIGNvbnN0OworICAgIGJvb2wgaXNSZWxhdGl2ZVBvc2l0aW9uZWQo
KSBjb25zdDsKKyAgICBib29sIGlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9v
bCBpc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0OworICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9uZWQoKSBjb25zdDsKKyAgICBi
b29sIGlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0Zsb2F0aW5nT3JP
dXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgCisgICAgQmxvY2tDb250YWluZXIqIGNv
bnRhaW5pbmdCbG9jaygpIGNvbnN0OworCisgICAgTGF5b3V0UmVjdCYgYm9yZGVyQm94KCkgY29u
c3Q7CisgICAgTGF5b3V0UmVjdCYgcGFkZGluZ0JveCgpIGNvbnN0OworICAgIExheW91dFJlY3Qm
IGNvbnRlbnRCb3goKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9pZDsK
KyAgICBTdHJpbmcgbV9yZW5kZXJlck5hbWU7CisgICAgTm9kZSogbV9ub2RlIHsgbnVsbHB0ciB9
OworICAgIENvbnRhaW5lciogbV9wYXJlbnQgeyBudWxscHRyIH07CisgICAgQm94KiBtX25leHRT
aWJsaW5nIHsgbnVsbHB0ciB9OworICAgIEJveCogbV9wcmV2aW91c1NpYmxpbmcgeyBudWxscHRy
IH07CisgICAgYm9vbCBtX2lzQW5vbnltb3VzIHsgZmFsc2UgfTsKKyAgICBMYXlvdXRSZWN0IG1f
cmVjdDsKKyAgICBGb3JtYXR0aW5nQ29udGV4dCogbV9lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250
ZXh0IHsgbnVsbHB0ciB9OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5lci5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9o
ZWFkZXJzL0NvbnRhaW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhMTYwYWZlM2U0YzgyMTEyOGU3NWNkNDhm
ODMwYjM5OWRlMDg2MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9t
aXNjL2hlYWRlcnMvQ29udGFpbmVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJCb3guaCIKKworbmFtZXNw
YWNlIExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgQ29udGFpbmVyIDogcHVibGljIEJveCB7Cisg
ICAgQ29udGFpbmVyKE5vZGUqLCAgdW5zaWduZWQgaWQsIFN0cmluZyBuYW1lKTsKKyAgICB2aXJ0
dWFsIH5Db250YWluZXIoKTsKKyAgICAKKyAgICBib29sIGlzQ29udGFpbmVyKCkgY29uc3QgZmlu
YWw7CisKKyAgICB2b2lkIHNldEZpcnN0Q2hpbGQoQm94Kik7CisgICAgdm9pZCBzZXRMYXN0Q2hp
bGQoQm94Kik7CisKKyAgICBCb3gqIGZpcnN0Q2hpbGQoKSBjb25zdDsKKyAgICBCb3gqIGZpcnN0
SW5GbG93Q2hpbGQoKSBjb25zdDsKKyAgICBCb3gqIGxhc3RDaGlsZCgpIGNvbnN0OworICAgIEJv
eCogbGFzdEluRmxvd0NoaWxkKCkgY29uc3Q7CisKKyAgICBib29sIGhhc0NoaWxkKCkgY29uc3Q7
CisgICAgYm9vbCBoYXNJbkZsb3dDaGlsZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIEJveCog
bV9maXJzdENoaWxkIHsgbnVsbHB0ciB9OworICAgIEJveCogbV9sYXN0Q2hpbGQgeyBudWxscHRy
IH07Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVy
cy9GbG9hdGluZ0NvbnRleHQuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9G
bG9hdGluZ0NvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI5ZTlkMDRlZWE4NzU4YjBlZDRkM2MxODJm
YjRkZDM5ZDgwZjJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlz
Yy9oZWFkZXJzL0Zsb2F0aW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgTGF5b3V0UmVsb2Fk
ZWQgeworCitjbGFzcyBCb3g7CitjbGFzcyBGb3JtYXR0aW5nQ29udGV4dDsKKworY2xhc3MgRmxv
YXRpbmdDb250ZXh0IHsKK3B1YmxpYzoKKyAgICBGbG9hdGluZ0NvbnRleHQoY29uc3QgRm9ybWF0
dGluZ0NvbnRleHQmKTsKKworICAgIExheW91dFBvaW50IGNvbXB1dGVQb3NpdGlvbihjb25zdCBC
b3gmKTsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSgpOworCitwcml2YXRlOgorICAgIExheW91dFBv
aW50IHBvc2l0aW9uRm9yRmxvYXRpbmcoY29uc3QgQm94JiBmbG9hdGluZ0JveCk7CisgICAgTGF5
b3V0UG9pbnQgcG9zaXRpb25Gb3JDbGVhcihjb25zdCBCb3gmKTsKKyAgICBMYXlvdXRQb2ludCBj
b21wdXRlUG9zaXRpb25Ub0F2b2lkSW50cnVkaW5nRmxvYXRzKGNvbnN0IEJveCYpOworICAgIAor
ICAgIHZvaWQgYWRkRmxvYXRpbmcoY29uc3QgQm94JiBmbG9hdGluZ0JveCk7CisgICAgCisgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdD
b250ZXh0KCkgY29uc3Q7CisKKyAgICBzdGQ6OnBhaXI8Qm94JiwgQm94Jj4gZmluZElubmVyTW9z
dExlZnRBbmRSaWdodChMYXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb24pOworICAgIExheW91dFVu
aXQgbW92ZVRvTmV4dFZlcnRpY2FsUG9zaXRpb24oc3RkOjpwYWlyPEJveCYsIEJveCY+JiBmbG9h
dGluZ1BhaXIpOworICAgIEJveCogZmluZEZsb2F0aW5nQXRWZXJ0aWNhbFBvc2l0aW9uKExheW91
dFVuaXQgdmVydGljYWxQb3NpdGlvbiwgVmVjdG9yPEJveCo+IGZsb2F0aW5nU3RhY2spOworCisg
ICAgTGF5b3V0VW5pdCBhdmFpbGFibGVTcGFjZShjb25zdCBDb250YWluZXImIGNvbnRhaW5pbmdC
bG9jaywgc3RkOjpwYWlyPEJveCYsIEJveCY+JiBmbG9hdGluZ1BhaXIpOworCisgICAgdm9pZCBh
ZGp1c3RlZEZsb2F0aW5nUG9zaXRpb24oY29uc3QgQm94JiBmbG9hdGluZ0JveCwgTGF5b3V0VW5p
dCB2ZXJ0aWNhbFBvc2l0aW9uLCBzdGQ6OnBhaXI8Qm94JiwgQm94Jj4mIGxlZnRSaWdodEZsb2F0
aW5ncyk7CisKKyAgICBMYXlvdXRVbml0IGZpbmRCb3R0b20oZmxvYXRpbmdTdGFjayk7Cit9Owor
Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRm9ybWF0
dGluZ0NvbnRleHQuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Gb3JtYXR0
aW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZjA5YmE2Y2UyZTE0ZDY3MzIxMzdjZTVkOWYyOTU4
NTFkMGIzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hl
YWRlcnMvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbmFtZXNwYWNlIExheW91dFJlbG9hZGVk
IHsKKworY2xhc3MgQm94OworY2xhc3MgQ29udGFpbmVyOworY2xhc3MgRmxvYXRpbmdDb250ZXh0
OworY2xhc3MgTGF5b3V0Q29udGV4dDsKKworY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQgeworcHVi
bGljOgorICAgIEZvcm1hdHRpbmdDb250ZXh0KENvbnRhaW5lciYgcm9vdENvbnRhaW5lcik7CisK
KyAgICBDb250YWluZXImIHJvb3RDb250YWluZXIoKSBjb25zdDsKKyAgICBGbG9hdGluZ0NvbnRl
eHQmIGZsb2F0aW5nQ29udGV4dCgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGxheW91dChj
b25zdCBMYXlvdXRDb250ZXh0JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBMYXlv
dXRVbml0IGNvbXB1dGVXaWR0aChjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91
dFVuaXQgY29tcHV0ZUhlaWdodChjb25zdCBCb3gmKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtYXJnaW5MZWZ0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRV
bml0IG1hcmdpblJpZ2h0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIAorICAgIExheW91dFJlY3Qg
YWJzb2x1dGVNYXJnaW5Cb3goY29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBhYnNv
bHV0ZUJvcmRlckJveChjb25zdCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGFic29sdXRl
UGFkZGluZ0JveChjb25zdCBCb3gmKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGFic29sdXRlQ29u
dGVudEJveChjb25zdCBCb3gmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGbG9hdGluZ0NvbnRl
eHQmIG1fZmxvYXRpbmdDb250ZXh0OworfTsKKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0NvbnRhaW5lci5oIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0NvbnRhaW5lci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ2YTYyOWQzMzZiMzk4YzlhNWQyNDlhNDZkODg2N2FiNTQ0MjI4OTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvSW5pdGlhbEJsb2NrQ29u
dGFpbmVyLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJCbG9ja0NvbnRhaW5lci5oIgorCituYW1lc3BhY2Ug
TGF5b3V0UmVsb2FkZWQgeworCitjbGFzcyBJbml0aWFsQmxvY2tDb250YWluZXIgOiBwdWJsaWMg
QmxvY2tDb250YWluZXIgeworcHVibGljOgorICAgIEluaXRpYWxCbG9ja0NvbnRhaW5lcihEb2N1
bWVudCYsIHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7CisgICAgCisgICAgYm9vbCBlc3RhYmxp
c2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCBmaW5hbDsKKworICAgIC8vIEZJWE1F
OiBUaGVzZSBzaG91bGQgbm90IHJlYWxseSBiZSB2aXJ0dWFsLgorICAgIExheW91dFJlY3QgcGFk
ZGluZ0JveCgpIGNvbnN0OworICAgIExheW91dFJlY3QgY29udGVudEJveCgpIGNvbnN0OworfTsK
KworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0lubGlu
ZUJveC5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0lubGluZUJveC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc5ZTg4MTI4MGE2MTk4MDRiZWZlYTNiYmZlYzE5NTVhZjI3ZmY1NGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvSW5saW5lQm94
LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK25hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7CisKKyNpbmNsdWRlICJCb3guaCIK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgSW5saW5lQm94IDogcHVibGljIEJveCB7CitwdWJsaWM6
CisgICAgSW5saW5lQm94KE5vZGUqLCB1bnNpZ25lZCBpZCwgU3RyaW5nIG5hbWUpOworICAgIHZp
cnR1YWwgfklubGluZUJveCgpOworCisgICAgdm9pZCBzZXRUZXh0KFRleHQmKTsKKworcHJpdmF0
ZToKKyAgICBUZXh0JiBtX3RleHQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9taXNjL2hlYWRlcnMvTGF5b3V0Q29udGV4dC5oIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTc4YjE0MWYzNDk5
N2Q1ZjYxZDE1MmJjOTNkZGU1NjY2OGYxNjg2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaApAQCAtMCwwICsxLDM3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbmFtZXNwYWNl
IExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CisKK2NsYXNzIExh
eW91dENvbnRleHQgeworcHVibGljOgorICAgIExheW91dENvbnRleHQoKTsKKyAgICAKKyAgICB2
b2lkIGxheW91dEZvcm1hdHRpbmdDb250ZXh0KEZvcm1hdHRpbmdDb250ZXh0Jik7Cit9OworCit9
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvVGV4dC5oIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTk5
ZGU5N2E3ZDVjM2ZiMTJlYzU5OTQ5NDU5Yzk5YTY3ZmUzZTgzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbmFtZXNwYWNl
IExheW91dFJlbG9hZGVkIHsKKworY2xhc3MgSW5saW5lQ29udGFpbmVyOworCitjbGFzcyBUZXh0
IHsKK3B1YmxpYzoKKyAgICBUZXh0KE5vZGUqLCB1bnNpZ25lZCBpZCwgSW5saW5lQm94JiBwYXJl
bnQpOworICAgIH5UZXh0KCk7CisKK3ByaXZhdGU6CisgICAgSW5saW5lQm94JiBtX3BhcmVudDsK
K307CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvVGVzdEhhcm5l
c3MuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L1Rlc3RIYXJuZXNzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVhYzRhZGZiYTE4ZjE4MTBjMmRmZDQ0MWY3YTY1M2Q3ZjQzNjdlNWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L1Rlc3RIYXJuZXNzLmpzCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitm
dW5jdGlvbiB2ZXJpZnlMYXlvdXRUcmVlRHVtcChyZW5kZXJUcmVlRHVtcCwgbGF5b3V0VHJlZUR1
bXApCit7CisgICAgY29uc29sZS5sb2coIldlYktpdDpcbiIgKyByZW5kZXJUcmVlRHVtcCArIHJl
bmRlclRyZWVEdW1wLmxlbmd0aCk7CisgICAgY29uc29sZS5sb2coIlJlbG9hZGVkOlxuIiArIGxh
eW91dFRyZWVEdW1wICsgbGF5b3V0VHJlZUR1bXAubGVuZ3RoKTsKKyAgICBpZiAocmVuZGVyVHJl
ZUR1bXAgPT0gbGF5b3V0VHJlZUR1bXApCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBmYWxzZTsKK30KKworZnVuY3Rpb24gcnVuTGF5b3V0KHRlc3RXaW5kb3cpIHsKKyAgICB0ZXN0
V2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgIGxldCB2aWV3cG9ydFNpemUg
PSBuZXcgTGF5b3V0U2l6ZShwYXJzZUZsb2F0KHRlc3RXaW5kb3cuaW5uZXJXaWR0aCksIHBhcnNl
RmxvYXQodGVzdFdpbmRvdy5pbm5lckhlaWdodCkpOworICAgIGxldCBsYXlvdXRUcmVlRHVtcCA9
IGxheW91dCh0ZXN0V2luZG93LCB2aWV3cG9ydFNpemUpOworICAgIHJldHVybiB2ZXJpZnlMYXlv
dXRUcmVlRHVtcCh0ZXN0V2luZG93LnNpbXBsaWZpZWRSZW5kZXJUcmVlLCBsYXlvdXRUcmVlRHVt
cCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWF1
dG8td2l0aC1zaWJsaW5nLW1hcmdpbi1ib3R0b20uaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvYWJzb2x1dGUtYXV0by13aXRoLXNpYmxpbmctbWFyZ2luLWJvdHRvbS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZjZmQ3MzI5ZDVhNzQ1N2Y2ZTRjNDA4NGQzNzU1ZTcwZTE1ZTg3YzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWF1dG8td2l0aC1z
aWJsaW5nLW1hcmdpbi1ib3R0b20uaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImhlaWdodDogNTBweDsgbWFyZ2luOiAxMDBw
eDsiPjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgcG9zaXRp
b246IGFic29sdXRlOyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLWJvdHRvbS5odG1sIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1ib3R0b20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjU1ZjRlNzc4
YWU5YWZhMDFkZjM1ZDYwYzJkODc0NzNiNGZiYzZmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1ib3R0b20uaHRtbApAQCAtMCwwICsxLDcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0
ZS1oZWlnaHQtc3RyZXRjaC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0
ZS1oZWlnaHQtc3RyZXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmOWYxODFlODgwZDE5YmY5MWM3YzRm
MDYxOGM0MjkzYTllNzkwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Fic29sdXRlLWhlaWdodC1zdHJldGNoLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHJpZ2h0OiAzMHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwMHB4
OyI+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyByaWdo
dDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyBib3R0b206IDMwcHg7IHdpZHRoOiAyMHB4OyI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L2Fic29sdXRlLWxlZnQtYXV0by5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9h
YnNvbHV0ZS1sZWZ0LWF1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2FkYjhhNzUzNjgzNDAyYWM5ZWVl
Y2YyYjk0YzIzZDhkYjRhZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvdGVzdC9hYnNvbHV0ZS1sZWZ0LWF1dG8uaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxMDBweDsg
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiBhdXRvOyBib3R0b206IDhweDsgd2lkdGg6IDMwcHg7
IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBy
aWdodDogYXV0bzsgYm90dG9tOiA4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rp
dj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBhdXRvOyBsZWZ0OiA4cHg7
IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgYm90dG9tOiBhdXRvOyBsZWZ0OiA4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6
IDIwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1yaWdodC10b3AtYm90dG9tLWF1dG8uaHRtbCBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbGVmdC1yaWdodC10b3AtYm90dG9t
LWF1dG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjNlNzUzYThkMTQ0MGJhOGY1ZjAwOWNkODViYWQ2NjFm
ZTc3ODMwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNv
bHV0ZS1sZWZ0LXJpZ2h0LXRvcC1ib3R0b20tYXV0by5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgcmln
aHQ6IDEwcHg7IHRvcDogYXV0bzsgd2lkdGg6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PGRpdiBzdHlsZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IGF1dG87IHdpZHRoOiAzMHB4
OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMHB4OyBoZWlnaHQ6
IDIwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogYXV0
bzsgdG9wOiBhdXRvOyB3aWR0aDogMzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0
eWxlPSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IGF1dG87IHRvcDogMTBweDsgd2lkdGg6IDMwcHg7IGhlaWdo
dDogMjBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiBh
dXRvOyBib3R0b206IDEwcHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJz
b2x1dGUtbmVzdGVkLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29sdXRlLW5l
c3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMDg1ZDQzY2JlNzk2ZmY1MmY1MjA1MzZlZmJkOGQyMWM3
ZGJjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fic29s
dXRlLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwcHg7IHRvcDog
MHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9Indp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbmVz
dGVkMi5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1uZXN0ZWQyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGJkMGVhNDAzMmEyNTg5MzA1Yzg3MjM5OGViYjk3NmY0YzhjZTBhYgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtbmVz
dGVkMi5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cisg
ICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyB0b3A6IDIwcHg7
IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiA1MHB4OyB0b3A6IDUwcHg7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMTAwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7
Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2
PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjllZDlhYWNmOTRmYjM5ODU1
ODMzMGI5NDUxNjlmZWVkOWMzNjRiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvYWJzb2x1dGUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDIwcHg7IHRvcDogMTBweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9hYnNvbHV0ZS13aWR0aC1zaHJpbmstdG8tZml0Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Fic29sdXRlLXdpZHRoLXNocmluay10by1maXQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MGIy
OGQ0ZGQ3NzY4N2JjM2M0YzY5ODkxM2EzYzUwOTVkMGViNDY2Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zaHJpbmstdG8tZml0Lmh0
bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRp
diBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogYXV0bzsgaGVpZ2h0OiAxMDBweDsg
cGFkZGluZzogMTBweCI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAxMDBweDsgd2lkdGg6IGF1dG87IGhlaWdodDogMTAwcHg7IHBhZGRpbmc6IDEwcHgiPgorICAg
IDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+CisgICAgPGRp
diBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRp
diBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMDBweDsgd2lkdGg6IGF1dG87IGhl
aWdodDogMTAwcHg7IHBhZGRpbmc6IDEwcHgiPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDBw
eDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDVweDsgbWFy
aW5nOiAxMHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgIDwvZGl2
PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAxMDBweDsg
d2lkdGg6IGF1dG87IGhlaWdodDogMTAwcHg7IHBhZGRpbmc6IDEwcHgiPgorICAgIDxkaXYgc3R5
bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1h
cmdpbjogMTVweDsgcGFkZGluZy1sZWZ0OiA1cHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4
OyI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgtc3RyZXRjaC5odG1s
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aWR0aC1zdHJldGNoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjBkYWZmYzdiMzdjMTZjYmM5ZWQyNDZiMmYyYTVkOWVjNTc2YTNlYQotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2lkdGgt
c3RyZXRjaC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyByaWdodDog
MzBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IHdpZHRoOiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMTBweDsgcmlnaHQ6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Fi
c29sdXRlLXdpdGgtaW5saW5lLXByZWZlcnJlZC13aWR0aC5odG1sIGIvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLWlubGluZS1wcmVmZXJyZWQtd2lkdGguaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jZWU0ZWRjMDViYzUwMzdiNGE3ZjdiNzY5N2UxYjdmZTFjMGQ1ZmYwCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNvbHV0ZS13aXRoLWlubGlu
ZS1wcmVmZXJyZWQtd2lkdGguaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitpbWcgeworIHZlcnRpY2FsLWFsaWduOiBib3R0b207
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IHRvcDogMTBweDsgbGVmdDogMTBweDsiPmZvb2JhciBmb29iYXIgZm9vYmFyPC9kaXY+
Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwcHg7IGxlZnQ6IDEwcHg7
Ij48aW1nIHNyYz0iZm9vLmpwZyIgd2lkdGg9MTAwcHggaGVpZ2h0PTEwMHB4PjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9hYnNv
bHV0ZS13aXRoLXN0YXRpYy1ibG9jay1wb3NpdGlvbi1uZXN0ZWQuaHRtbCBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUtd2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmY3YTUzODc5NDc5ZGM4YmQ0YmQyNGNiMTNhNjhiYTI3YzVlZGMy
NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWJzb2x1dGUt
d2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMDBw
eDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBhdXRvOyBsZWZ0
OiBhdXRvOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWxtb3N0
LWludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9hbG1vc3QtaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmFlMTVhOGZlZmQ4NzU0ZmQxMTBkNGVhNmQzZWQ2ZGU2OTBiNjY5NwotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYWxtb3N0LWludHJ1ZGluZy1sZWZ0LWZsb2F0
LXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhw
eDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0
OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lk
dGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJtYXJn
aW4tbGVmdDogNTBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L2JvcmRlci1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvYm9yZGVy
LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmMWU4ZTc0YjNjNTQwZDZjNmY3NTFkYzU0YWQ0MjYz
Zjk0NjRiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Jv
cmRlci1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5n
OiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJib3JkZXI6
IDEwcHggc29saWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgorICAgIDxk
aXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDog
MjAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDogNXB4IHNvbGlk
IGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJi
b3JkZXItYm90dG9tOiAxcHggc29saWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBw
eDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXI6IDEwcHggc29saWQgZ3JlZW47
IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6
IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAw
cHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyOiAxMHB4IHNvbGlkIGdyZWVu
OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46
IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAw
cHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAxMHB4OyB3aWR0aDogMjAwcHg7IGhl
aWdodDogMjAwcHg7Ij4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogMTBweDsgYm9y
ZGVyOiAxcHggc29saWQgZ3JlZW47IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9maXhlZC1uZXN0ZWQuaHRtbCBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZml4ZWQtbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjgwOGE5YmE1MzYwNDMxZGZlNGMzNzQwZGQ4Njg5OTAzYWJkMDU3NgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZml4ZWQtbmVzdGVkLmh0bWwKQEAgLTAsMCAr
MSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDIwcHg7IHRvcDogMTBweDsgd2lk
dGg6IDMwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhl
ZDsgbGVmdDogMTIwcHg7IHRvcDogMTAwcHg7IHdpZHRoOiAyMzBweDsgaGVpZ2h0OiA0MHB4OyI+
CisgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9w
OiAxMHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgICAgICAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgICAgICAgICAgICAgPGRpdiBz
dHlsZT0icG9zaXRpb246IGZpeGVkOyBsZWZ0OiAyMjBweDsgdG9wOiAxMDBweDsgd2lkdGg6IDMw
cHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0LWxlZnQtd2hlbi1jb250YWluZXItaGFzLXBh
ZGRpbmctbWFyZ2luLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0LWxlZnQt
d2hlbi1jb250YWluZXItaGFzLXBhZGRpbmctbWFyZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmNjg4
NTkwMDY5YjM5ZWEwZmY4NzJmMTQ0YWI4MGI3YjM5NGVjMQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXQtbGVmdC13aGVuLWNvbnRhaW5lci1oYXMtcGFk
ZGluZy1tYXJnaW4uaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5n
OiA4cHg7Cit9CitkaXYgeyBvdXRsaW5lOiAxcHggc29saWQgZ3JlZW47IH0KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbjogMTBweDsgcGFkZGluZzogMTBweDsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJm
bG9hdDogbGVmdDsgd2lkdGg6IDcwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYg
c3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8
L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtY2xlYXItYm90aC1zaW1wbGUuaHRtbCBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLWJvdGgtc2ltcGxlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzZkY2VjMjQ2ODlkY2VlMzdlMTM4MjFhYWQ4OTMyM2E5MjI3M2RlMAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNs
ZWFyLWJvdGgtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFk
ZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lk
dGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0
OyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZs
b2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2
IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+
Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAx
MDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTBweDsgaGVp
Z2h0OiAzNTBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTBw
eDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7IHdpZHRo
OiAxMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsg
d2lkdGg6IDUwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBy
aWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMzUwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNs
ZWFyLXJpZ2h0LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGlu
Zy1ib3gtY2xlYXItcmlnaHQtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEyOTRjNzc0OWZhMWY3
NjRkYTViNGMzYzA5NzUzNGFlMjQ5MDE0NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LWNsZWFyLXJpZ2h0LXNpbXBsZS5odG1sCkBAIC0w
LDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Jv
ZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDBweDsi
PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUw
cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBo
ZWlnaHQ6IDI1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0
aDogNTBweDsgaGVpZ2h0OiAyNTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9h
dDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMzUwcHg7Ij48L2Rpdj4KKzxkaXYg
c3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4K
KzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwv
ZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwMHB4
OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6
IDM1MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS13aXRo
LXRvcC1vZmZzZXQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94
LWxlZnQtYW5kLXJpZ2h0LW11bHRpcGxlLXdpdGgtdG9wLW9mZnNldC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU4NjMxN2VjNGU3M2RiMzNjYWJjZDg3ZmJmZjExN2I1NDBlY2IyMGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1sZWZ0LWFuZC1yaWdo
dC1tdWx0aXBsZS13aXRoLXRvcC1vZmZzZXQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBw
eDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9CitkaXYgeyBvdXRsaW5lOiBzb2xpZCBncmVlbiAxcHg7
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBhZGRpbmc6IDEwMHB4
OyB3aWR0aDogMjAwcHg7IGhlaWdodDogNDAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEzMHB4OyBoZWlnaHQ6IDE1cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDEyNXB4OyI+PC9kaXY+CisgICAg
PGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA2MHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEzMHB4OyBoZWlnaHQ6IDEw
cHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAzMHB4OyBo
ZWlnaHQ6IDEyNXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRo
OiAxMzBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJp
Z2h0OyB3aWR0aDogMzBweDsgaGVpZ2h0OiAxMjVweDsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5n
LWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmlnaHQtbXVsdGlwbGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MTFmZmU3ZGRjNGRiMzY1NGZjYTM2MWE2YmJhZWM5ZGI0MjA3YTE5Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtbGVmdC1hbmQtcmln
aHQtbXVsdGlwbGUuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5n
OiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDog
MjAwcHg7IGhlaWdodDogNDAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lk
dGg6IDEwcHg7IGhlaWdodDogMjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBy
aWdodDsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyB3aWR0aDogNjBweDsgaGVpZ2h0OiAxNXB4OyI+PC9kaXY+CisgICAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDk1cHg7Ij48L2Rpdj4K
KyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDEyNXB4
OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTBweDsgaGVp
Z2h0OiAzNXB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA3
MHB4OyBoZWlnaHQ6IDk1cHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1ib3gtcmlnaHQtc2lt
cGxlLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC1yaWdodC1z
aW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODliOWUxOTA5OTg5ZGMzYTRhZTJkMTIzODE1YmNjYmE3
NWRhNTJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9h
dGluZy1ib3gtcmlnaHQtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7Cisg
ICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHls
ZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxNTBweDsiPjwvZGl2PgorICAg
IDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTUwcHg7Ij48
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiA4MHB4OyBoZWlnaHQ6
IDE1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogODBw
eDsgaGVpZ2h0OiAxNTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAw
cHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6
IDIwcHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmln
aHQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+Cis8L2Rpdj4KKyAgICA8ZGl2
IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+
CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogODBweDsgaGVpZ2h0OiAxNTBw
eDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDgwcHg7IGhl
aWdodDogMTUwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2libGluZ3MuaHRt
bCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2li
bGluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmY3NjVlMTRhNDYxMDMzMzk4NWM3Y2Q3NjU0ZGM0YjBm
YTZlYTkxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9h
dGluZy1ib3gtd2l0aC1jbGVhci1zaWJsaW5ncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjog
MHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0i
ZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9kaXY+Cis8L2Rpdj4K
KzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTBweDsgaGVpZ2h0OiAxNTBweDsiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9h
dGluZy1ib3gtd2l0aC1jbGVhci1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMyYTli
MDRjNGI2MDU5Yzc4NzVlMDY1MWZmNTBjM2U1NTBlM2Q1YwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2ltcGxlLmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdo
dDogMTUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDUw
cHg7IGhlaWdodDogMjUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iY2xlYXI6IGJv
dGg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgt
bmV3LWZvcm1hdHRpbmctY29udGV4dC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9m
bG9hdGluZy1ib3gtd2l0aC1uZXctZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mzg3YmYzMzllNDQwODRlMGI3NDg1OTVjMmMzNGM3NmI4MzBkMzQwNAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtbmV3LWZvcm1h
dHRpbmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRp
bmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0
aW9uOiByZWxhdGl2ZTsgdG9wOiAwcHg7IGxlZnQ6IDMwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0
OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lk
dGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctYm94LXdpdGgtcmVsYXRp
dmUtcG9zaXRpb25lZC1zaWJsaW5nLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zs
b2F0aW5nLWJveC13aXRoLXJlbGF0aXZlLXBvc2l0aW9uZWQtc2libGluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzNTljNDVkMTFiOTg4ODI0ODBhNjM2NTlmYmE0NmM4NmQ2YTkyZDUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWJveC13aXRoLXJlbGF0
aXZlLXBvc2l0aW9uZWQtc2libGluZy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4Owor
ICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5
bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAxMHB4OyBsZWZ0OiAzMHB4OyB3aWR0aDogMTAw
cHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDog
MTAwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAzMHB4OyBsZWZ0OiAzMHB4OyB3aWR0aDogMTAwcHg7IGhl
aWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7
IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsg
d2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9z
aXRpb246IHJlbGF0aXZlOyB0b3A6IDQwcHg7IGxlZnQ6IDMwcHg7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiA0MHB4OyI+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsg
aGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3
aWR0aDogMTBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXNp
bXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0LXJpZ2h0
LXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOTUwNDk1OTA0YzNkNTE5ZGVkYWI1NWQ3NjAxNGUz
MGM2ZTUzMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zs
b2F0aW5nLWxlZnQtcmlnaHQtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7
CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBz
dHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLWxlZnQtcmlnaHQt
d2l0aC1hbGwtbWFyZ2lucy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGlu
Zy1sZWZ0LXJpZ2h0LXdpdGgtYWxsLW1hcmdpbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmI0NGNmZDg1
M2Q4ZjMzYzdhMzFlYjEwZjc1ZDY1MDdhZGJhYjI0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0LXJpZ2h0LXdpdGgtYWxsLW1hcmdpbnMu
aHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9CisK
K2RpdiB7IG91dGxpbmU6IDFweCBzb2xpZCBncmVlbjsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgPGRpdiBz
dHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1sZWZ0
OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsg
aGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0i
ZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4
OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0
OiAyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6
IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsiPjwvZGl2Pgor
ICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgbWFy
Z2luOiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVp
Z2h0OiA1MHB4OyI+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxv
YXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7
Ij48L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0
OiAyMHB4OyBtYXJnaW4tbGVmdDogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1yaWdodDogMTBweDsiPjwv
ZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIw
cHg7IG1hcmdpbjogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8
ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogNTBweDsiPgorICA8ZGl2IHN0eWxlPSJm
bG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4
OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDIwcHg7IGhlaWdo
dDogMjBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0
OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDogMTBweDsiPjwv
ZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBw
eDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRo
OiA1MDBweDsgaGVpZ2h0OiA1MHB4OyI+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0
aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tbGVmdDogNDAwcHg7Ij48L2Rpdj4KKyAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1y
aWdodDogODBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhl
aWdodDogNTBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBo
ZWlnaHQ6IDIwcHg7IG1hcmdpbi1sZWZ0OiA0MDBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJm
bG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1yaWdodDogODBw
eDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogNTBw
eDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBw
eDsgbWFyZ2luLWxlZnQ6IDQwMHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdo
dDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLXJpZ2h0OiA4MHB4OyI+PC9kaXY+
Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMjBweDsiPgorICA8
ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdp
bjogMTBweDsiPjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4
OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi10b3A6IDUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBz
dHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgPGRpdiBzdHlsZT0iZmxvYXQ6
IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbjogMTBweDsiPjwvZGl2Pgor
ICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1h
cmdpbjogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhl
aWdodDogODBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMjBweDsgbWFyZ2luOiA1MHB4OyI+PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZsb2F0OiBy
aWdodDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0
eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogNjBweDsiPgorICA8ZGl2IHN0eWxlPSJmbG9hdDog
cmlnaHQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi10b3A6IDUwcHg7Ij48L2Rp
dj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAg
PGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJn
aW46IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0cy1hbmQtcmlnaHRzLXNpbXBs
ZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1sZWZ0cy1hbmQtcmln
aHRzLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZmFmZDdlYzcxMTg4ODg3OTc5MTJlMTA2OWJi
YzU3ZjJkYjRiMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L2Zsb2F0aW5nLWxlZnRzLWFuZC1yaWdodHMtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFy
Z2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNDBweDsgaGVpZ2h0OiAyNXB4
OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Ij48
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6
IDE2cHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1pbi1ib2R5Lmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLWlu
LWJvZHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjJiZDYzY2NkZjcwMDhkOWE5NDAzODU1YTg2OTQ5NWNi
MzYyMjM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9h
dGluZy1tdWx0aXBsZS1sZWZ0cy1pbi1ib2R5Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAw
cHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNDBweDsgaGVpZ2h0OiAyNXB4OyI+PC9k
aXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Ij48L2Rpdj4K
KyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTZweDsi
PjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogOTBweDsgaGVpZ2h0
OiAxM3B4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwcHg7IGhl
aWdodDogMTZweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDog
MjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTUwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxl
PSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHgiPjwvZGl2PgorICAgIDxkaXYg
c3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2Pgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLW11bHRpcGxlLWxpbmVzLmh0bWwgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLW11bHRpcGxlLWxp
bmVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmEyNzUyMzNmMzc0NmU0ZTdlNGRhZGU4YzgwODRiMDJiZjFl
NDU1YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRp
bmctbXVsdGlwbGUtbGVmdHMtbXVsdGlwbGUtbGluZXMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJn
aW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTg1cHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0
eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQwcHg7IGhlaWdodDogMjVweDsiPjwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzYTM4MzFhNmMy
MGQ0YTJkOWZhOTQzOGJkMDdjYzdhOTBlMjc3YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMuaHRtbApAQCAtMCwwICsx
LDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsK
KyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTg1cHg7IGhlaWdodDogMjAwcHg7Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDQwcHg7IGhlaWdodDogMjVweDsiPjwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAx
NnB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA5MHB4OyBo
ZWlnaHQ6IDEzcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6
IDIwcHg7IGhlaWdodDogMTZweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0
OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBz
dHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDE1MHB4OyI+PC9kaXY+Cisg
ICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMHB4OyI+
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvZmxvYXRpbmctc2l6aW5nLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L2Zsb2F0aW5nLXNpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhmZGQ0OTNlN2M4Y2E0
M2MwN2RlNTIxOThkNDliMzFiNzA1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjog
MHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KK2ltZyB7CisgICAgdmVydGljYWwtYWxpZ246IHRv
cDsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7Ij5mb288L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+Zm9vYmFyPC9kaXY+Cis8
ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsiPmZvb2JhciBmb29iYXI8L2Rpdj4KKzxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyI+Zm9vYmFyIGZvb2JhciBmb29iYXI8L2Rpdj4KKzxkaXYgc3R5bGU9ImZs
b2F0OiBsZWZ0OyI+PGltZyB3aWR0aD04MDBweCBoZWlnaHQ9MTAwcHggc3JjPSJmb28uanBnIj48
L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPmJhcjwvZGl2PgorPGRpdiBzdHlsZT0i
ZmxvYXQ6IHJpZ2h0OyI+YmFyZm9vIGJhcjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0
OyI+YmFyZm9vIGJhcmZvbyBiYXI8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPmJh
cmZvbyBiYXJmb28gYmFyZm9vIGJhcjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcyLmh0bWwgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZzIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
Mzg0ZDhhODVjY2JjY2JkYTM5NjNmMTI1OTg2YTE2ZTEyMDg0ZDM2Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmcyLmh0bWwKQEAgLTAs
MCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9k
eSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQoraW1nIHsKKyAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8c3Bh
biBzdHlsZT0iZmxvYXQ6IGxlZnQ7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsiPmZvb2JhcmZvb2JhcmZv
b2JhcmZvb2JhcjwvZGl2PgorPC9zcGFuPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmczLmh0bWwgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXNpemluZzMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjcx
YzhjMTU5OGZhN2NlMjBkNzUwOTBmNWMxYzVhYTU0MDIzYzBmCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy1zaXppbmczLmh0bWwKQEAgLTAsMCAr
MSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorCis8c3R5bGU+Citib2R5
IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8c3BhbiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWln
aHQ6IDEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZWQiPjwvZGl2PgorPHNwYW4gc3R5bGU9ImZs
b2F0OiBsZWZ0OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCBy
ZWQiPjwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTAwcHg7IGhlaWdo
dDogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmVkIj48L2Rpdj4KKworPGRpdiBzdHlsZT0iaGVp
Z2h0OiAzMHB4OyB3aWR0aDogMjAwcHg7Ij4KKyAgPHNwYW4gc3R5bGU9ImZsb2F0OiBsZWZ0OyI+
Zm9vb29vb29vbyAwMG9nPC9zcGFuPjEKKzwvZGl2PgorPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7
IGhlaWdodDogMzAwcHg7IHdpZHRoOiA1MDBweDsiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2Zsb2F0aW5nLXdpdGgtbmV3
LWJsb2NrLWZvcm1hdHRpbmctY29udGV4dC5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVz
dC9mbG9hdGluZy13aXRoLW5ldy1ibG9jay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iYTdkZDk4OGViODA1MTc2YjVkOTM5ZDJmZTFmOTNiYTMxNWEzZjUzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9mbG9hdGluZy13aXRoLW5ldy1ibG9j
ay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAg
ICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogNDAwcHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjVweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+CisgICAgPGRp
diBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2Pgor
ICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA0MHB4OyI+
PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTgwcHg7IGhlaWdo
dDogODBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9Im92ZXJmbG93OmhpZGRlbjsgd2lkdGg6
IDUwcHg7IGhlaWdodDogNTBweDsiPgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJvdmVyZmxvdzpoaWRk
ZW47IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sIGIvVG9v
bHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2Y2I5YjZjMDMx
Y2Q1ODkwZjRlZjg4NTU4NzY3MTk4MTc4ODUxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxMzYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lmcmFtZSB7CisgICAgYm9yZGVyOiAw
cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2xldCB0ZXN0RmlsZXMgPSBbCisgICAgInJlbGF0
aXZlLXNpbXBsZS5odG1sIiwKKyAgICAicmVsYXRpdmUtYm90dG9tLmh0bWwiLAorICAgICJyZWxh
dGl2ZS1yaWdodC5odG1sIiwKKyAgICAicmVsYXRpdmUtYXV0by5odG1sIiwKKyAgICAicmVsYXRp
dmUtYXV0by13aXRoLXBhcmVudC1vZmZzZXQuaHRtbCIsCisgICAgInJlbGF0aXZlLXNpYmxpbmdz
Lmh0bWwiLAorICAgICJwYWRkaW5nLXNpbXBsZS5odG1sIiwKKyAgICAicGFkZGluZy1uZXN0ZWQu
aHRtbCIsCisgICAgImJvcmRlci1zaW1wbGUuaHRtbCIsCisgICAgIm1hcmdpbi1zaW1wbGUuaHRt
bCIsCisgICAgIm1hcmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRtbCIsCisgICAg
Im1hcmdpbi1wcm9wYWdhdGlvbi1zaW1wbGUtY29udGVudC1oZWlnaHQuaHRtbCIsCisgICAgIm1h
cmdpbi1sZWZ0LXJpZ2h0LXNpemluZy5odG1sIiwKKyAgICAibWFyZ2luLWxlZnQtcmlnaHQtc2l6
aW5nLW91dC1vZi1mbG93Lmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9jay1m
b3JtYXR0aW5nLWNvbnRleHQyLmh0bWwiLAorICAgICJtYXJnaW4tY29sbGFwc2Utd2l0aC1ibG9j
ay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xsYXBzZS13aGVuLWNo
aWxkLWhhcy1wYWRkaW5nLWJvcmRlci5odG1sIiwKKyAgICAibWFyZ2luLWNvbGxhcHNlLXRvcC1u
ZXN0ZWQuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xsYXBzZS1zaW1wbGUuaHRtbCIsCisgICAgIm1h
cmdpbi1jb2xsYXBzZS1maXJzdC1sYXN0LWFyZS1mbG9hdGluZy5odG1sIiwKKyAgICAibWFyZ2lu
LWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbCIsCisgICAgIm1hcmdpbi1jb2xsYXBzZS1ib3R0
b20tYm90dG9tLmh0bWwiLAorICAgICJhYnNvbHV0ZS1hdXRvLXdpdGgtc2libGluZy1tYXJnaW4t
Ym90dG9tLmh0bWwiLAorICAgICJhYnNvbHV0ZS1ib3R0b20uaHRtbCIsCisgICAgImFic29sdXRl
LWhlaWdodC1zdHJldGNoLmh0bWwiLAorICAgICJhYnNvbHV0ZS1sZWZ0LWF1dG8uaHRtbCIsCisg
ICAgImFic29sdXRlLWxlZnQtcmlnaHQtdG9wLWJvdHRvbS1hdXRvLmh0bWwiLAorICAgICJhYnNv
bHV0ZS1uZXN0ZWQuaHRtbCIsCisgICAgImFic29sdXRlLW5lc3RlZDIuaHRtbCIsCisgICAgImFi
c29sdXRlLXNpbXBsZS5odG1sIiwKKyAgICAiYWJzb2x1dGUtd2lkdGgtc2hyaW5rLXRvLWZpdC5o
dG1sIiwKKyAgICAiYWJzb2x1dGUtd2lkdGgtc3RyZXRjaC5odG1sIiwKKyAgICAiYWJzb2x1dGUt
d2l0aC1zdGF0aWMtYmxvY2stcG9zaXRpb24tbmVzdGVkLmh0bWwiLAorICAgICJmaXhlZC1uZXN0
ZWQuaHRtbCIsCisgICAgImZsb2F0aW5nLWJveC1sZWZ0LWFuZC1yaWdodC1tdWx0aXBsZS5odG1s
IiwKKyAgICAiZmxvYXRpbmctYm94LXJpZ2h0LXNpbXBsZS5odG1sIiwKKyAgICAiZmxvYXRpbmct
bGVmdC1yaWdodC1zaW1wbGUuaHRtbCIsCisgICAgImZsb2F0aW5nLWxlZnQtcmlnaHQtd2l0aC1h
bGwtbWFyZ2lucy5odG1sIiwKKyAgICAiZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMtaW4tYm9keS5o
dG1sIiwKKyAgICAiZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMtbXVsdGlwbGUtbGluZXMuaHRtbCIs
CisgICAgImZsb2F0aW5nLW11bHRpcGxlLWxlZnRzLmh0bWwiLAorICAgICJmbG9hdGluZy1ib3gt
d2l0aC1yZWxhdGl2ZS1wb3NpdGlvbmVkLXNpYmxpbmcuaHRtbCIsCisgICAgImZsb2F0aW5nLWxl
ZnRzLWFuZC1yaWdodHMtc2ltcGxlLmh0bWwiLAorICAgICJmbG9hdGluZy13aXRoLW5ldy1ibG9j
ay1mb3JtYXR0aW5nLWNvbnRleHQuaHRtbCIsCisgICAgImZsb2F0aW5nLWJveC1jbGVhci1yaWdo
dC1zaW1wbGUuaHRtbCIsCisgICAgImZsb2F0aW5nLWJveC13aXRoLWNsZWFyLXNpbXBsZS5odG1s
IiwKKyAgICAiZmxvYXRpbmctYm94LXdpdGgtY2xlYXItc2libGluZ3MuaHRtbCIsCisgICAgImZs
b2F0aW5nLWJveC1jbGVhci1ib3RoLXNpbXBsZS5odG1sIiwKKyAgICAiYWxtb3N0LWludHJ1ZGlu
Zy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sIiwKKyAgICAibmVnYXRpdmUtbWFyZ2luLXNpbXBsZS5o
dG1sIiwKKyAgICAiaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWwiCitdOworCitsZXQg
ZGVidWdUaGlzID0gWworXTsKKworZnVuY3Rpb24gYWRkSlMoZmlsZU5hbWUpIHsKKyAgICBsZXQg
c2NyaXB0ID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7CisgICAgbGV0IGltcG9ydGVkID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgaW1wb3J0ZWQuc3JjID0gZmls
ZU5hbWU7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpbXBvcnRlZCk7Cit9CisKK2Fk
ZEpTKCIuL1Rlc3RIYXJuZXNzLmpzIik7CithZGRKUygiLi4vVXRpbHMuanMiKTsKK2FkZEpTKCIu
Li9MYXlvdXQuanMiKTsKK2FkZEpTKCIuLi9UcmVlQnVpbGRlci5qcyIpOworYWRkSlMoIi4uL0xh
eW91dENvbnRleHQuanMiKTsKK2FkZEpTKCIuLi9Cb3guanMiKTsKK2FkZEpTKCIuLi9Db250YWlu
ZXIuanMiKTsKK2FkZEpTKCIuLi9CbG9ja0NvbnRhaW5lci5qcyIpOworYWRkSlMoIi4uL0luaXRp
YWxCbG9ja0NvbnRhaW5lci5qcyIpOworYWRkSlMoIi4uL0lubGluZUJveC5qcyIpOworYWRkSlMo
Ii4uL1RleHQuanMiKTsKK2FkZEpTKCIuLi9Gb3JtYXR0aW5nQ29udGV4dC5qcyIpOworYWRkSlMo
Ii4uL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMiKTsKK2FkZEpTKCIuLi9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5qcyIpOworYWRkSlMoIi4uL0Zsb2F0aW5nQ29udGV4dC5qcyIpOworYWRkSlMo
Ii4uL0Jsb2NrTWFyZ2luQ29sbGFwc2UuanMiKQorCitsZXQgZmFpbGVkVGVzdHMgPSBbXTsKKwor
ZnVuY3Rpb24gcHJpbnRSZXN1bHQoZmlsZXMsIGN1cnJlbnRUZXN0SW5kZXgpIHsKKyAgICBsZXQg
cmVzdWx0Q29udGVudCA9IGN1cnJlbnRUZXN0SW5kZXggIT0gbnVsbCA/ICgiVGVzdGluZy4uLiIg
KyBjdXJyZW50VGVzdEluZGV4ICsgIiBvdXQgb2YgIiArIGZpbGVzLmxlbmd0aCkgOiAoIk51bWJl
ciBvZiB0ZXN0czogIiArIGZpbGVzLmxlbmd0aCkgOworICAgIHJlc3VsdENvbnRlbnQgKz0gIjxi
cj48YnI+UGFzc2VkOiAiICsgKChjdXJyZW50VGVzdEluZGV4ICE9IG51bGwgPyBjdXJyZW50VGVz
dEluZGV4IDogZmlsZXMubGVuZ3RoKSAtIGZhaWxlZFRlc3RzLmxlbmd0aCkgKyAiPGJyPkZhaWxl
ZDogIiArIGZhaWxlZFRlc3RzLmxlbmd0aDsKKyAgICBpZiAoZmFpbGVkVGVzdHMubGVuZ3RoID4g
MCkgeworICAgICAgICByZXN1bHRDb250ZW50ICs9ICI8YnI+PGJyPkZhaWxlZCBjYXNlczoiCisg
ICAgICAgIGZhaWxlZFRlc3RzLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAgICAgICAgICAg
cmVzdWx0Q29udGVudCArPSAiPGJyPjxhIGhyZWY9XCIiICsgZmlsZXNbaXRlbV0gKyAiXCI+IiAr
IGZpbGVzW2l0ZW1dICsgIjwvYT4iOworICAgICAgICB9KTsKKyAgICB9CisgICAgcmVzdWx0Lmlu
bmVySFRNTCA9IHJlc3VsdENvbnRlbnQ7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoZmlsZXMsIGN1
cnJlbnRUZXN0SW5kZXgpIHsKKyAgICBwcmludFJlc3VsdChmaWxlcywgY3VycmVudFRlc3RJbmRl
eCk7CisgICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgIGlmcmFtZS5zcmMgPSBmaWxlc1tjdXJyZW50VGVzdEluZGV4XTsKKyAgICBpZnJhbWUuaWQg
PSAidGVzdEZyYW1lIjsKKyAgICBpZnJhbWUud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKKyAg
ICBpZnJhbWUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OworICAgIGlmcmFtZS5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKyAgICAgICAgbGV0IHBhc3NlZCA9IHJ1bkxheW91dCh0ZXN0
RnJhbWUuY29udGVudFdpbmRvdyk7CisgICAgICAgIHRlc3RGcmFtZS5yZW1vdmUoKTsKKyAgICAg
ICAgaWYgKCFwYXNzZWQpCisgICAgICAgICAgICBmYWlsZWRUZXN0cy5wdXNoKGN1cnJlbnRUZXN0
SW5kZXgpOworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYg
KGN1cnJlbnRUZXN0SW5kZXggPCBmaWxlcy5sZW5ndGggLSAxKQorICAgICAgICAgICAgICAgIHJ1
blRlc3QoZmlsZXMsICsrY3VycmVudFRlc3RJbmRleCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgcHJpbnRSZXN1bHQoZmlsZXMpOworICAgICAgICB9LCAwKTsKKyAgICB9Owor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKworZnVuY3Rpb24gcnVu
VGVzdHMoKSB7CisgICAgcnVuVGVzdChkZWJ1Z1RoaXMubGVuZ3RoID8gZGVidWdUaGlzIDogdGVz
dEZpbGVzLCAwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
cygpIj4KKzxwcmUgaWQ9cmVzdWx0PjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmxpbmUtY29udGVudC1zaW1wbGUuaHRtbCBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5saW5lLWNvbnRlbnQtc2ltcGxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjE3NDc4YzUxZDY5N2UxZTVmM2QzOGM2MGJmYjFjYjE4ZTkwZjRlNQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5saW5lLWNvbnRlbnQtc2lt
cGxlLmh0bWwKQEAgLTAsMCArMSw0IEBACis8Ym9keT5mb29iYXIgZm9vYmFyIGZvb2JhcjwvYm9k
eT4KKzxzY3JpcHQ+CithbGVydChkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoKTsKKzwvc2NyaXB0
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJl
bG9hZGVkL3Rlc3QvaW50cnVkaW5nLWxlZnQtZmxvYXQtc2ltcGxlLmh0bWwgYi9Ub29scy9MYXlv
dXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0LWZsb2F0LXNpbXBsZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZlMWU1MDAyODYwMDcwZmNkNGZlNDA5MDU0YmI3OTBjMTdmOWFkNjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2ludHJ1ZGluZy1sZWZ0LWZsb2F0LXNp
bXBsZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3
aWR0aDogMTFweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6
IDEycHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwcHg7IGhlaWdodDogNDBweDsiPgorICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0
aDogMTNweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZsb2F0
OiBsZWZ0OyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJm
bG9hdDogbGVmdDsgd2lkdGg6IDE1cHg7IGhlaWdodDogODBweDsiPjwvZGl2PgorPGRpdiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDQwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJmbG9hdDog
bGVmdDsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9
ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEy
NzE1ZWJjZGY4Y2Q5MmExNjI5NzZlMTE0Nzk0MTU4MjA3ZDY1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1ib3R0b20u
aHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwcHg7IGhl
aWdodDogYXV0bzsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4OyB3
aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBz
dHlsZT0ibWFyZ2luLXRvcDogMTBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2
PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBib3JkZXI6IDBweCBz
b2xpZCB0cmFuc3BhcmVudDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMjBweDsg
d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYg
c3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWJvdHRvbS1uZXN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZGM5OWE2NTQ0YzQzMjllYmZiOTgwMmQxZWI1MzgwMWFiZmYyNjVlCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtYm90dG9tLW5lc3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBweDsg
aGVpZ2h0OiBhdXRvOyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDFweDsg
d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPgorICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFy
Z2luLWJvdHRvbTogNXB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgICAg
ICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDIwcHg7IGhlaWdo
dDogMjBweDsiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9t
OiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+CisgICAgICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+
CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDog
MjBweDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtZmlyc3QtbGFzdC1hcmUtZmxvYXRpbmcuaHRt
bCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLWZpcnN0LWxhc3Qt
YXJlLWZsb2F0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyZWQ0NzQyNTMxNjYxNjRiNzNmZGFkZmUy
OTE3MzZhNzBhNGM2ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvbWFyZ2luLWNvbGxhcHNlLWZpcnN0LWxhc3QtYXJlLWZsb2F0aW5nLmh0bWwKQEAgLTAsMCAr
MSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7
CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+Cisg
ICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDEwcHg7Ij48
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDEwcHg7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6
IDUwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDEwMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAzMHB4OyB3aWR0aDogNTBweDsgaGVp
Z2h0OiA1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAy
MHB4OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luOiA0
MHB4OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS1z
aW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXNp
bXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZDZmNjI2OTAxOTAyODA2NDUzZDY3ODgwOTQ1OWI5MGI4
M2IxYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdp
bi1jb2xsYXBzZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBw
YWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHls
ZT0ibWFyZ2luOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyI+CisgICAgICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXRvcC1uZXN0ZWQuaHRtbCBiL1Rvb2xz
L0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXRvcC1uZXN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zOTJlMTdkZjc2NjIyMTQ1YjMyYzEyZWE3MWVhMTViYWU0MGMzZGJkCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2UtdG9w
LW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhw
eDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4t
Ym90dG9tOiAxMHB4OyB3aWR0aDogNjBweDsgaGVpZ2h0OiA0MHB4OyI+CisgICAgICAgIDxkaXYg
c3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiA2MHB4OyBoZWlnaHQ6IDQwcHg7Ij4K
KyAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIwcHg7IHdpZHRoOiA2MHB4
OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdp
bi1jb2xsYXBzZS13aGVuLWNoaWxkLWhhcy1wYWRkaW5nLWJvcmRlci5odG1sIGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMtcGFkZGluZy1i
b3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjBmNjIxMWNlMjQ0ZWM3MDFkMjFjY2QwNmFiYjA3Yjhj
ZGQyM2RmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJn
aW4tY29sbGFwc2Utd2hlbi1jaGlsZC1oYXMtcGFkZGluZy1ib3JkZXIuaHRtbApAQCAtMCwwICsx
LDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsK
KyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsiPgorICAg
IDxkaXYgc3R5bGU9Im1hcmdpbjogLTEwcHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDIwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAyMDBweDsg
aGVpZ2h0OiAyMHB4OyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAxMHB4OyBib3JkZXI6IDVw
eDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNv
bGxhcHNlLXdpdGgtYmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM1NWQ0ZWY5NjU3NjVjYTM5ZTkyNzc0ZWIwOGVjOGU0ZDI5ZTc2
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1j
b2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsMTcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAg
IG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMjBweDsgaGVp
Z2h0OiBhdXRvOyI+CisgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIwcHg7IHdp
ZHRoOiAyMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMHB4OyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0
L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4dDIuaHRtbCBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWNvbGxhcHNlLXdpdGgtYmxvY2stZm9ybWF0
dGluZy1jb250ZXh0Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNTQxODkyMTdjODI1YjU4OTMwMzI1NjQz
OTIzYWRjMjRiNWQzNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L21hcmdpbi1jb2xsYXBzZS13aXRoLWJsb2NrLWZvcm1hdHRpbmctY29udGV4dDIuaHRtbApA
QCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGhpZGRlbjsgd2lk
dGg6IDMwcHg7IGhlaWdodDogYXV0bzsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90
dG9tOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiA1MHB4OyI+CisgICAgICAgICAgICA8ZGl2
IHN0eWxlPSJtYXJnaW4tYm90dG9tOiA0MHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiA1MHB4OyI+
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9Im92ZXJm
bG93OiBoaWRkZW47IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IGF1dG87Ij4KKyAgICAgICAgPGRpdiBz
dHlsZT0ibWFyZ2luLWJvdHRvbTogNTBweDsgd2lkdGg6IDQwcHg7IGhlaWdodDogNTBweDsiPjwv
ZGl2PgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA2MHB4OyB3aWR0aDogNDBweDsg
aGVpZ2h0OiA1MHB4OyI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2lu
LXRvcDogNTBweDsgd2lkdGg6IDQwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tbGVm
dC1yaWdodC1zaXppbmctb3V0LW9mLWZsb3cuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rl
c3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLW91dC1vZi1mbG93Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2VlMmRiMTBmYmFjNmRhNDA3MDlhODk3ZGFlNjcwYjNhY2QzMDU2ZQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLWxlZnQtcmlnaHQtc2l6aW5nLW91
dC1vZi1mbG93Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwcHg7CisgICAgcGFkZGluZzog
OHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDEwcHg7IGxlZnQ6IDEwcHg7IG1hcmdpbi1sZWZ0OiAyMDBweDsgd2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgdG9wOiA2MHB4OyByaWdodDogMTBweDsgbWFyZ2luLXJpZ2h0OiA0MDBweDsgd2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgdG9wOiA5MHB4OyBtYXJnaW4tbGVmdDogNDAwcHg7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiA1MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDog
MTQwcHg7IG1hcmdpbi1yaWdodDogNDAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+
PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTkwcHg7IG1hcmdp
bjogNDAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1sZWZ0
LXJpZ2h0LXNpemluZy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tbGVm
dC1yaWdodC1zaXppbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTc3NThiZGIxODUwYzdmOGMxNGZmOWY3
NDExMjEzMzI0MWRkNWYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9tYXJnaW4tbGVmdC1yaWdodC1zaXppbmcuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJnaW46
IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMjAwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMjBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRp
diBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRp
diBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAtMjBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRp
diBzdHlsZT0ibWFyZ2luOiAyMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tcHJv
cGFnYXRpb24tc2ltcGxlLWNvbnRlbnQtaGVpZ2h0Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC90ZXN0L21hcmdpbi1wcm9wYWdhdGlvbi1zaW1wbGUtY29udGVudC1oZWlnaHQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YjcwNzhmYjRkOTIzOTNiMWQxNThlM2NhMGUzZTRhMTMyZjRkNTg5Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tcHJvcGFnYXRpb24t
c2ltcGxlLWNvbnRlbnQtaGVpZ2h0Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPjxkaXYgc3R5bGU9IndpZHRoOiAxMHB4OyBo
ZWlnaHQ6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7Ij48L2Rpdj48L2Rpdj4KKzxkaXYgc3R5bGU9
Im1hcmdpbi1ib3R0b206IDEwcHg7Ij48ZGl2IHN0eWxlPSJ3aWR0aDogMTBweDsgaGVpZ2h0OiAx
MHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1zaWJsaW5nLWNv
bGxhcHNlLXByb3BhZ2F0ZWQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2lu
LXNpYmxpbmctY29sbGFwc2UtcHJvcGFnYXRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5YzViYzYyMThl
NDlhOWZmMzA0ZDE1MzI0NjYwYjNjNmE4NmVhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC90ZXN0L21hcmdpbi1zaWJsaW5nLWNvbGxhcHNlLXByb3BhZ2F0ZWQuaHRt
bApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+Citib2R5IHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTBweDsgaGVpZ2h0OiBh
dXRvOyI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMTUwcHg7IHdpZHRoOiAxMHB4
OyBoZWlnaHQ6IDEwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDog
LTEwMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij48L2Rpdj4KKworPGRpdiBzdHls
ZT0id2lkdGg6IDEwcHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4t
Ym90dG9tOiAxNTBweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsiPjwvZGl2PgorPC9kaXY+
Cis8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAtMTAwcHg7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAy
MDBweDsiPjwvZGl2PgorCis8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxNTBweDsgd2lkdGg6
IDEwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IC0x
MDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9kaXY+CisKKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXNpbXBs
ZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9tYXJnaW4tc2ltcGxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjg2NWU4MjdkODQyZmJmY2FlMTdmNmM3M2NhNjA4YzhiZWUxODk5NAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbWFyZ2luLXNpbXBsZS5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7IHdpZHRo
OiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRv
bTogMjBweDsgd2lkdGg6IDYwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0i
bWFyZ2luLXRvcDogMjBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L25l
Z2F0aXZlLW1hcmdpbi1zaW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvbmVn
YXRpdmUtbWFyZ2luLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwY2I4NjM5OTQ0MTg4NDgxZDk1
NmJhODdhZjJiNjMwZDMwYjUzY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC90ZXN0L25lZ2F0aXZlLW1hcmdpbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDI0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJn
aW46IDBweDsKKyAgICBwYWRkaW5nOiA4cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW46IC00cHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMjBw
eDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJtYXJnaW46IC0xMHB4OyB3aWR0aDogMjAw
cHg7IGhlaWdodDogMjAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00cHg7IHBhZGRp
bmc6IDVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2
IHN0eWxlPSJtYXJnaW46IC0xMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00cHg7IHBhZGRpbmc6IDVweDsgd2lkdGg6IDEwcHg7IGhl
aWdodDogMjBweDsiPgorICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IC00cHg7IHBhZGRpbmc6
IDVweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L3BhZGRpbmctbmVzdGVkLmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3BhZGRp
bmctbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAzNmM0MjlkNGRmN2Y3YjQ0MDFmZTU4OTU0NDQ3
YzAyOWFjYjUxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3Qv
cGFkZGluZy1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7
IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiPgorICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6
IDEwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9wYWRkaW5n
LXNpbXBsZS5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9wYWRkaW5nLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZiYzBhNGQ5ZWM3ZDRkZmViYjFmZDViNThiZmJiMmMyNWU2MjJiNGUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3BhZGRpbmctc2lt
cGxlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by13aXRoLXBhcmVudC1vZmZzZXQu
aHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by13aXRoLXBhcmVu
dC1vZmZzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDFhNTU0OWE2MWQ3NWRlYTJjZjU2YzRhYTJmNmZl
ZDE2YjgwNGFiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9y
ZWxhdGl2ZS1hdXRvLXdpdGgtcGFyZW50LW9mZnNldC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdp
bjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogYXV0bzsgdG9wOiBhdXRvOyB3
aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8uaHRtbCBiL1Rv
b2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYXV0by5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0
ZGYzMzdlYTg2MjY5N2Y3ZjZmN2QxOGMzNDRjYTFmN2YwZWE0NjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWF1dG8uaHRtbApAQCAtMCwwICsx
LDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiBhdXRvOyB0b3A6IGF1dG87IHdp
ZHRoOiAzMHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtYm90dG9tLmh0bWwgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWJvdHRvbS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM2ZTI2NjhmZjRiODg1NWIzM2YxOThmODc3ZjM1ZDI0NjgyZjAxZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L3JlbGF0aXZlLWJvdHRvbS5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Jv
ZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhweDsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiBhdXRv
OyBib3R0b206IDhweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBz
dHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDEwcHg7IGJvdHRvbTogMThweDsgd2lkdGg6
IDMwcHg7IGhlaWdodDogNDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0
aXZlOyBib3R0b206IDI4cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDcwcHg7Ij48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVs
YXRpdmUtcmlnaHQuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtcmln
aHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42OWVlYWE4MTIzMTcwZThhNmUzZDAzN2I3MjNlMGNmY2NlZjg4
NWNkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2
ZS1yaWdodC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK2JvZHkgeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDhw
eDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsgbGVmdDogYXV0bzsgcmlnaHQ6IDhweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNzBw
eDsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvdGVzdC9yZWxhdGl2ZS1zaWJsaW5ncy5odG1sIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
dGVzdC9yZWxhdGl2ZS1zaWJsaW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNWVhMDkyMmFkNDZhYjFj
M2E0YTFlZmMyMzE5ZDdlODQ5ZTRhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC90ZXN0L3JlbGF0aXZlLXNpYmxpbmdzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2lu
OiAwcHg7CisgICAgcGFkZGluZzogOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyByaWdodDogOHB4OyB3aWR0aDogMzBweDsg
aGVpZ2h0OiA3MHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHJp
Z2h0OiA4cHg7IHRvcDogMTAwcHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4K
KzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogOHB4OyB3aWR0aDogMzBweDsg
aGVpZ2h0OiAzMHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTMwcHg7IGhlaWdodDog
NDBweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiA4cHg7
IHRvcDogMjBweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9yZWxhdGl2ZS1z
aW1wbGUuaHRtbCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtc2ltcGxlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjhjNzU4MDcyZDcyYWM5YmNkYjI0ZGY4OTRjYzMxODliYWFjOWUzMgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvcmVsYXRpdmUtc2lt
cGxlLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8L2hlYWQ+Cis8Ym9keT48ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
Ij48L2Rpdj48L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>