<?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>160424</bug_id>
          
          <creation_ts>2016-08-01 13:55:02 -0700</creation_ts>
          <short_desc>Freeze all the DOMHTML* Objective-C bindings</short_desc>
          <delta_ts>2016-08-02 12:25:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1216254</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-01 13:55:02 -0700</bug_when>
    <thetext>Freeze all the DOMHTML* Objective-C bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216265</commentid>
    <comment_count>1</comment_count>
      <attachid>285040</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-01 14:08:39 -0700</bug_when>
    <thetext>Created attachment 285040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216269</commentid>
    <comment_count>2</comment_count>
      <attachid>285040</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-08-01 14:09:56 -0700</bug_when>
    <thetext>Comment on attachment 285040
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216272</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-01 14:18:00 -0700</bug_when>
    <thetext>Committed r203988: &lt;http://trac.webkit.org/changeset/203988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216509</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-02 09:55:11 -0700</bug_when>
    <thetext>I just noticed that we are generating a lot of Objective-C bindings that then are not migrated by MigrateHeaders. I wonder if we can get away with just not generating any of those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216547</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 12:01:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I just noticed that we are generating a lot of Objective-C bindings that
&gt; then are not migrated by MigrateHeaders. I wonder if we can get away with
&gt; just not generating any of those?

Yeah, I&apos;ve noticed that too. There are a couple of DOMEvent headers that aren&apos;t being installed, but they&apos;re used in 

Class kitClass(WebCore::Event* impl)

I think we can simply fall back to DOMEvent for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216548</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 12:02:58 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; I just noticed that we are generating a lot of Objective-C bindings that
&gt; &gt; then are not migrated by MigrateHeaders. I wonder if we can get away with
&gt; &gt; just not generating any of those?
&gt; 
&gt; Yeah, I&apos;ve noticed that too. There are a couple of DOMEvent headers that
&gt; aren&apos;t being installed, but they&apos;re used in 
&gt; 
&gt; Class kitClass(WebCore::Event* impl)
&gt; 
&gt; I think we can simply fall back to DOMEvent for them.

There are also CSS related classes that aren&apos;t installed but used in

Class kitClass(WebCore::CSSRule* impl)

and

Class kitClass(WebCore::CSSValue* impl)

We can probably get away with returning [DOMCSSRule class] and [DOMCSSValue class] respectively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216559</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-02 12:15:43 -0700</bug_when>
    <thetext>There are also lots of others, like the Apple Pay ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216564</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 12:25:01 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; There are also lots of others, like the Apple Pay ones.

Yes, those aren&apos;t even built!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285040</attachid>
            <date>2016-08-01 14:08:39 -0700</date>
            <delta_ts>2016-08-01 14:09:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160424-20160801140719.patch</filename>
            <type>text/plain</type>
            <size>761785</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRkNTA3YWNlZmIwYWNj
YTQzYTIzODVmMjBiYTJkZDQ0MDA0NWYzNy4uMGUwYTgzNWFmZGVhYWI4ZmU0ZTY0OTRjNmVkMDQ4
MzgyZjhkNmE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4OCBAQAogMjAxNi0wOC0wMSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIEZyZWV6ZSBhbGwg
dGhlIERPTUhUTUwqIE9iamVjdGl2ZS1DIGJpbmRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NSFRNTEFuY2hvckVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01IVE1MQW5jaG9yRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01IVE1MQW5jaG9yRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTEFwcGxldEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MQXBwbGV0RWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MQXBwbGV0RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEFyZWFFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvRE9NSFRNTEFyZWFFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUhUTUxBcmVhRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEJSRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUhUTUxCUkVsZW1lbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL29iamMvRE9NSFRNTEJSRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTEJhc2VFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL29iamMvRE9NSFRNTEJhc2VFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUhUTUxCYXNlRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTEJhc2VGb250RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRm9udEVsZW1lbnQubW06IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvRE9NSFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEJvZHlFbGVtZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEJvZHlFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxCb2R5RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MQnV0dG9uRWxlbWVudC5tbTogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MQnV0dG9uRWxlbWVudEludGVybmFsLmg6IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTENhbnZhc0VsZW1lbnQuaDogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MQ2FudmFzRWxlbWVudC5tbTogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFs
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTENvbGxlY3Rpb24uaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MQ29sbGVjdGlvbi5tbTogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmg6
IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERMaXN0RWxlbWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxETGlzdEVsZW1lbnQubW06IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERMaXN0RWxlbWVudEludGVybmFs
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERpcmVjdG9yeUVsZW1l
bnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRGlyZWN0b3J5RWxl
bWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRGlyZWN0b3J5
RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRN
TERpdkVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRGl2
RWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRGl2RWxl
bWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERv
Y3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERvY3VtZW50
Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxEb2N1bWVudEludGVy
bmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEVsZW1lbnQuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRWxlbWVudC5tbTogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRWxlbWVudEludGVybmFsLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEVtYmVkRWxlbWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQubW06IEFkZGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEVtYmVkRWxlbWVudEludGVybmFsLmg6IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxGaWVsZFNldEVsZW1lbnQubW06
IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudElu
dGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZvbnRFbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZvbnRFbGVtZW50
Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxGb250RWxlbWVudElu
dGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZvcm1FbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZvcm1FbGVtZW50
Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxGb3JtRWxlbWVudElu
dGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZyYW1lRWxl
bWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZUVsZW1l
bnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZyYW1lRWxlbWVu
dEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZyYW1l
U2V0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFt
ZVNldEVsZW1lbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEZy
YW1lU2V0RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NSFRNTEhSRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhU
TUxIUkVsZW1lbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEhS
RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRN
TEhlYWRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEhl
YWRFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFk
RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRN
TEhlYWRpbmdFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRN
TEhlYWRpbmdFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhU
TUxIZWFkaW5nRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSFRNTEh0bWxFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NSFRNTEh0bWxFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUhUTUxIdG1sRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NSFRNTElGcmFtZUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MSUZyYW1lRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MSUZyYW1lRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL29iamMvRE9NSFRNTEltYWdlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUhUTUxJbWFnZUVsZW1lbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NSFRNTEltYWdlRWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTElucHV0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUhUTUxJbnB1dEVsZW1lbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL29iamMvRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvRE9NSFRNTElucHV0RWxlbWVudFByaXZhdGUuaDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTElFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvRE9NSFRNTExJRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MTElFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICog
YmluZGluZ3Mvb2JqYy9ET01IVE1MTGFiZWxFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTExhYmVsRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MTGFiZWxFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTGVnZW5kRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxMZWdlbmRFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxMZWdlbmRFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTGlua0VsZW1lbnQuaDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTGlua0VsZW1lbnQubW06IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTExpbmtFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWFwRWxlbWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxNYXBFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxNYXBFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWFycXVlZUVsZW1lbnQuaDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWFycXVlZUVsZW1lbnQubW06IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaDogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVkaWFFbGVtZW50Lmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE1lZGlhRWxlbWVudC5tbTogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVkaWFFbGVtZW50SW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVudUVsZW1lbnQuaDogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVudUVsZW1lbnQubW06IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWV0YUVsZW1lbnQuaDogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTWV0YUVsZW1lbnQubW06IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE1ldGFFbGVtZW50SW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MTW9kRWxlbWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxNb2RFbGVtZW50Lm1tOiBBZGRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxNb2RFbGVtZW50SW50ZXJuYWwuaDogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MT0xpc3RFbGVtZW50Lmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE9MaXN0RWxlbWVudC5tbTogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MT0xpc3RFbGVtZW50SW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MT2JqZWN0RWxlbWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmplY3RFbGVtZW50Lm1tOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmplY3RFbGVtZW50SW50ZXJu
YWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MT2JqZWN0RWxlbWVu
dFByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0R3Jv
dXBFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE9wdEdy
b3VwRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0
R3JvdXBFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9E
T01IVE1MT3B0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUhUTUxPcHRpb25FbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW06IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uSW50ZXJuYWwuaDogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50Lm1tOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJu
YWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFyYW1FbGVtZW50
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFBhcmFtRWxlbWVudC5t
bTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFyYW1FbGVtZW50SW50
ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MUHJlRWxlbWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxQcmVFbGVtZW50Lm1t
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxQcmVFbGVtZW50SW50ZXJu
YWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MUXVvdGVFbGVtZW50
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFF1b3RlRWxlbWVudC5t
bTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MUXVvdGVFbGVtZW50SW50
ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MU2NyaXB0RWxl
bWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxTY3JpcHRFbGVt
ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxTY3JpcHRFbGVt
ZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MU2Vs
ZWN0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxTZWxl
Y3RFbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxTZWxl
Y3RFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01I
VE1MU3R5bGVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRN
TFN0eWxlRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1M
U3R5bGVFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9E
T01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDZWxsRWxlbWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50Lm1tOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50SW50ZXJu
YWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDb2xFbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlQ29sRWxl
bWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDb2xF
bGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1M
VGFibGVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFRh
YmxlRWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFi
bGVFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01I
VE1MVGFibGVSb3dFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9N
SFRNTFRhYmxlUm93RWxlbWVudC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9E
T01IVE1MVGFibGVSb3dFbGVtZW50SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50SW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVmlkZW9FbGVtZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFZpZGVvRWxlbWVudC5tbTogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVmlkZW9FbGVtZW50SW50ZXJuYWwu
aDogQWRkZWQuCisKKzIwMTYtMDgtMDEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KKwogICAgICAgICBGcmVlemUgRE9NSFRNTFRpdGxlRWxlbWVudCBhbmQgRE9NSFRNTFVM
aXN0RWxlbWVudCBiaW5kaW5ncwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYwNDE1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1NDMxOTIzNTA2NzJmNjlh
ZTBiNzYyMmFiYTE2OWZhMzVkZDE4ZDU4Li5lNDkyNDM2ZmUxNWJiODgwYjYzODdmNzhmYjA0MDUx
YWQxNWVkZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDgtMDEg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBGcmVlemUg
YWxsIHRoZSBET01IVE1MKiBPYmplY3RpdmUtQyBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNDI0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgbWlncmF0ZSBET01IVE1MRW1iZWRF
bGVtZW50UHJpdmF0ZS5oIC0gaXQgd2FzIGp1c3QgYW4gZW1wdHkgaGVhZGVyLgorCisgICAgICAg
ICogTWlncmF0ZUhlYWRlcnMubWFrZToKKwogMjAxNi0wNy0yOCAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkZXByZWNhdGVkIFNQSSBm
b3IgdmlkZW8gaW5saW5lIC8gZnVsbHNjcmVlbiBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZTVlZTUwMjkzY2VmODczMWZiMmExODdmNDAzODk3MjI4YWJiNzExZS4u
NmI0Yjc5MDM5OTBhNTFjNThkNWM3MDczYjZhYzRmM2FlZGIxYjY1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0zNTcsODMgKzM1Nyw2IEBAIEpTX0FORF9PQkpDX0JJTkRJTkdf
SURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvRE9NVG9rZW5MaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL0RPTVVSTC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5p
ZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwgXAotICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dGFjaG1l
bnRFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEJh
c2VGb250RWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MQm9keUVsZW1lbnQu
aWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsIFwKLSAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0
bWwvSFRNTENvbGxlY3Rpb24uaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTERMaXN0RWxl
bWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MRGF0YUVsZW1lbnQuaWRsIFwKLSAg
ICAkKFdlYkNvcmUpL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TERpcmVjdG9yeUVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTERpdkVsZW1l
bnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTERvY3VtZW50LmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9odG1sL0hUTUxFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MRm9udEVsZW1lbnQuaWRsIFwKLSAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsIFwKLSAgICAkKFdl
YkNvcmUpL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hU
TUxGcmFtZUVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MSFJFbGVtZW50LmlkbCBcCi0gICAg
JChXZWJDb3JlKS9odG1sL0hUTUxIZWFkRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRt
bC9IVE1MSGVhZGluZ0VsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEh0bWxF
bGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxIeXBlcmxpbmtFbGVtZW50VXRp
bHMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsIFwKLSAg
ICAkKFdlYkNvcmUpL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxMSUVsZW1lbnQuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwv
SFRNTE1lbnVFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmlkbCBcCi0gICAg
JChXZWJDb3JlKS9odG1sL0hUTUxNb2RFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1s
L0hUTUxPTGlzdEVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwg
XAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwgXAotICAgICQoV2Vi
Q29yZSkvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0
bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFBhcmFn
cmFwaEVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5p
ZGwgXAotCSQoV2ViQ29yZSkvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MUXVvdGVFbGVt
ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBcCi0g
ICAgJChXZWJDb3JlKS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxTbG90RWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MU291
cmNlRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MU3BhbkVsZW1lbnQuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGwgXAotICAgICQoV2Vi
Q29yZSkvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkv
aHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1M
VGFibGVDb2xFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwgXAot
ICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwgXAotICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9o
dG1sL0hUTUxUaW1lRWxlbWVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwg
XAotICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9odG1sL0ltYWdlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUNvbnRy
b2xsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvTWVkaWFFcnJvci5pZGwgXApAQCAtNTcw
LDkgKzQ5Myw4NiBAQCBKU19BTkRfT0JKQ19CSU5ESU5HX0lETFMgPSBcCiAjCiAKIEpTX09OTFlf
QklORElOR19JRExTID0gXAorCSQoV2ViQ29yZSkvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwg
XAorCSQoV2ViQ29yZSkvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwgXAorCSQoV2ViQ29yZSkv
aHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTEJSRWxlbWVu
dC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaWRsIFwKKwkkKFdlYkNv
cmUpL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRs
IFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIFwKKwkkKFdlYkNvcmUp
L2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvSFRNTERMaXN0RWxl
bWVudC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9IVE1MRGF0YUVsZW1lbnQuaWRsIFwKKwkkKFdl
YkNvcmUpL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1s
L0hUTUxBbGxDb2xsZWN0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRhY2ht
ZW50RWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MQXVkaW9FbGVtZW50Lmlk
bCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9o
dG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxE
aXZFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxEb2N1bWVudC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9IVE1MRW1iZWRFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEZvbnRFbGVtZW50LmlkbCBc
CisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
aHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTEhSRWxlbWVudC5pZGwg
XAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hU
TUxIdG1sRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MSHlwZXJsaW5rRWxl
bWVudFV0aWxzLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxJRnJhbWVFbGVtZW50Lmlk
bCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTElFbGVtZW50
LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0
bWwvSFRNTExpbmtFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxNYXBFbGVt
ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTWV0
YUVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5pZGwg
XAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTW9kRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbCBcCisgICAgJChXZWJD
b3JlKS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hU
TUxQYXJhZ3JhcGhFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxTbG90RWxlbWVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MU291cmNlRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRt
bC9IVE1MU3BhbkVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5p
ZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwgXAorICAg
ICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTFRpbWVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L0hUTUxUaXRsZUVsZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFRyYWNrRWxl
bWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9zdmcvU1ZHQUVs
ZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYzk3
ZWYwYTNiNjRmN2IwN2UzMGI3ODgxMDhkM2E0MGFjNzM0YTBlLi43ZjIxNmM2MGJlMTY3YThhMWVj
OTVjZjUwZDYwODkxNjgzNWI1ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NjUsNiArNzY1LDkwIEBACiAJCTFBNThFODY3
MUQxOUQ4MEUwMEMwRUE3MyAvKiBQYXltZW50UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU4RTg2MzFEMTlENERGMDBDMEVBNzMgLyog
UGF5bWVudFJlcXVlc3QuY3BwICovOyB9OwogCQkxQTU4RTg2RDFEMTlFNDJEMDBDMEVBNzMgLyog
UGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBNThFODZCMUQxOUU0MkQwMEMwRUE3MyAvKiBQYXltZW50Q29vcmRpbmF0
b3IuY3BwICovOyB9OwogCQkxQTU4RTg2RTFEMTlFNDJEMDBDMEVBNzMgLyogUGF5bWVudENvb3Jk
aW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTU4RTg2QzFEMTlFNDJEMDBDMEVBNzMgLyogUGF5bWVudENvb3JkaW5hdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGNDUxRDRGRTQy
MjAwNDEyQUM3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTRDMEFDNUQ1MzQwMDUzMjcw
RiAvKiBET01IVE1MQW5jaG9yRWxlbWVudEludGVybmFsLmggKi87IH07CisJCTFBNjdCRjQ2MUQ0
RkU0MjIwMDQxMkFDNyAvKiBET01IVE1MQXBwbGV0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNDdDRDBBRDg1MEI4MDAx
MjA5M0IgLyogRE9NSFRNTEFwcGxldEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3QkY0
NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEFyZWFFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTREMEFDNUQ1MzQw
MDUzMjcwRiAvKiBET01IVE1MQXJlYUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3QkY0
ODFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEJhc2VFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTRFMEFDNUQ1MzQw
MDUzMjcwRiAvKiBET01IVE1MQmFzZUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3QkY0
OTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0RjBBQzVE
NTM0MDA1MzI3MEYgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmggKi87IH07CisJ
CTFBNjdCRjRBMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MQm9keUVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTAw
QUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxCb2R5RWxlbWVudEludGVybmFsLmggKi87IH07CisJ
CTFBNjdCRjRCMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MQlJFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTUxMEFD
NUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQlJFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2
N0JGNEMxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxCdXR0b25FbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTUyMEFD
NUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQnV0dG9uRWxlbWVudEludGVybmFsLmggKi87IH07CisJ
CTFBNjdCRjREMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE1MzBB
QzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5hbC5oICovOyB9OworCQkx
QTY3QkY0RTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzEx
NTQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxEaXJlY3RvcnlFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGNEYxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxEaXZFbGVtZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
RTcxMTU1MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MRGl2RWxlbWVudEludGVybmFsLmggKi87
IH07CisJCTFBNjdCRjUwMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MRExpc3RFbGVtZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
RTcxMTU2MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MRExpc3RFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGNTExRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxEb2N1bWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3
MTE1NzBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTERvY3VtZW50SW50ZXJuYWwuaCAqLzsgfTsK
KwkJMUE2N0JGNTIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxFbWJlZEVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1MjQ3
Q0UwQUQ4NTBCODAwMTIwOTNCIC8qIERPTUhUTUxFbWJlZEVsZW1lbnRJbnRlcm5hbC5oICovOyB9
OworCQkxQTY3QkY1MzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NUU3MTE1OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudEludGVybmFs
LmggKi87IH07CisJCTFBNjdCRjU0MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MRm9udEVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVFNzExNUEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb250RWxlbWVudEludGVybmFs
LmggKi87IH07CisJCTFBNjdCRjU1MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MRm9ybUVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVFNzExNUIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb3JtRWxlbWVudEludGVybmFs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2
N0JGNTYxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxGcmFtZUVsZW1lbnRJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNUMwQUM1
RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGcmFtZUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkx
QTY3QkY1NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE1
RDBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudEludGVybmFsLmggKi87
IH07CisJCTFBNjdCRjU4MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MSGVhZEVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNUUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIZWFkRWxlbWVudEludGVybmFsLmggKi87
IH07CisJCTFBNjdCRjU5MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MSGVhZGluZ0VsZW1lbnRJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVFNzExNUYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIZWFkaW5nRWxlbWVudEludGVybmFs
LmggKi87IH07CisJCTFBNjdCRjVBMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MSFJFbGVtZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1RTcxMTYwMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSFJFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGNUIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxIdG1sRWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NUU3MTE2MTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEh0bWxFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGNUMxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxJRnJhbWVFbGVtZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1RTcxMTYyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSUZyYW1lRWxlbWVudEludGVybmFs
LmggKi87IH07CisJCTFBNjdCRjVEMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MSW1hZ2VFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1RTcxMTYzMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSW1hZ2VFbGVtZW50SW50ZXJu
YWwuaCAqLzsgfTsKKwkJMUE2N0JGNUUxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxJbnB1dEVs
ZW1lbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0NBNzMyMTEwQURENDNFMDBGRDQ0MEQgLyogRE9NSFRNTElucHV0RWxlbWVudFByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkx
QTY3QkY1RjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTExhYmVsRWxlbWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2NjBB
QzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTExhYmVsRWxlbWVudEludGVybmFsLmggKi87IH07CisJ
CTFBNjdCRjYwMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTGVnZW5kRWxlbWVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2
NzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnRJbnRlcm5hbC5oICovOyB9
OworCQkxQTY3QkY2MTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTExJRWxlbWVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2
ODBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTExJRWxlbWVudEludGVybmFsLmggKi87IH07CisJ
CTFBNjdCRjYyMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTGlua0VsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNjkw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxMaW5rRWxlbWVudEludGVybmFsLmggKi87IH07CisJ
CTFBNjdCRjYzMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTWFwRWxlbWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2QTBB
QzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE1hcEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkx
QTY3QkY2NDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTE1NkU3
MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFycXVlZUVsZW1lbnRJbnRlcm5hbC5oICovOyB9
OworCQkxQTY3QkY2NTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE1lZGlhRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVD
NjY1MDFDODJEMDA4MDA5OTg0NkEgLyogRE9NSFRNTE1lZGlhRWxlbWVudEludGVybmFsLmggKi87
IH07CisJCTFBNjdCRjY2MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTWVudUVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNkIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxNZW51RWxlbWVudEludGVybmFsLmggKi87
IH07CisJCTFBNjdCRjY3MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTWV0YUVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNkMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxNZXRhRWxlbWVudEludGVybmFsLmggKi87
IH07CisJCTFBNjdCRjY4MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTW9kRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3
MTE2RDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE1vZEVsZW1lbnRJbnRlcm5hbC5oICovOyB9
OworCQkxQTY3QkY2OTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNkUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPYmplY3RFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGNkExRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQyOUFBRkYwQ0I4NEVDMzAwNzY0N0M1IC8qIERPTUhUTUxPYmplY3RFbGVtZW50UHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNjdC
RjZCMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwNzBBQTY4ODY4MDA4ODA1
MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTFBNjdCRjZDMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1M
T0xpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RTcxMTZGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT0xpc3RFbGVt
ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2N0JGNkQxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhU
TUxPcHRHcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1RjMyQUU2MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVt
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MUE2N0JGNkUxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzEx
NzAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oICov
OyB9OworCQkxQTY3QkY2RjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3NTY2
MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNjdCRjcwMUQ0RkU0MjMwMDQx
MkFDNyAvKiBET01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzU2ODBBRDZDQkY5MDA2MjBDNTcgLyog
RE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3QkY3MTFENEZFNDIz
MDA0MTJBQzcgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkY5OTBBQTNDQUU1MDBBRDY0QzUgLyog
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGNzIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxP
cHRpb25zQ29sbGVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE3MTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uSW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2N0JGNzMxRDRGRTQyMzAwNDEyQUM3
IC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTE4M0IzQzBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFBh
cmFncmFwaEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkxQTY3QkY3NDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFBhcmFncmFwaEVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVFNzExNzIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50
SW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2N0JGNzUxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxQ
YXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1RUNCRUU5MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1FbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGNzYx
RDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNzMwQUM1RDUzNTAw
NTMyNzBGIC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3QkY3
NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFByZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MTgzQjNFMEFBNjkyNjEwMEYxOUZBMyAv
KiBET01IVE1MUHJlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTFBNjdCRjc4MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MUHJlRWxl
bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUU3MTE3NDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFByZUVsZW1lbnRJbnRlcm5h
bC5oICovOyB9OworCQkxQTY3QkY3OTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFF1b3RlRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUx
ODNCNDAwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxRdW90ZUVsZW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQTY3QkY3QTFENEZFNDIz
MDA0MTJBQzcgLyogRE9NSFRNTFF1b3RlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE3NTBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTFF1b3RlRWxlbWVudEludGVybmFsLmggKi87IH07CisJCTFBNjdCRjdCMUQ0RkU0
MjMwMDQxMkFDNyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgxOTMwQUE3N0U0QjAwNDg2QUQ3IC8qIERP
TUhUTUxTY3JpcHRFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMUE2N0JGN0MxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxTY3JpcHRF
bGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1RTcxMTc2MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU2NyaXB0RWxlbWVudElu
dGVybmFsLmggKi87IH07CisJCTFBNjdCRjdEMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MU2Vs
ZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVGMzJBRTgwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGN0Ux
RDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTc3MEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MU2VsZWN0RWxlbWVudEludGVybmFsLmggKi87IH07CisJCTFBNjdC
RjdGMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MU3R5bGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NTBBQTVFM0JEMDBCNjk0
QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTFBNjdCRjgwMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1M
U3R5bGVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RTcxMTc4MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU3R5bGVFbGVt
ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2N0JGODExRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NURGODIxMzBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkxQTY3QkY4MjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVFNzExNzkwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2N0JGODMxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NURGODIxNTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQkxQTY3QkY4NDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExN0EwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZUNlbGxFbGVtZW50SW50ZXJuYWwu
aCAqLzsgfTsKKwkJMUE2N0JGODUxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxUYWJsZUNvbEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
REY4MjE3MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDb2xFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGODYxRDRG
RTQyMzAwNDEyQUM3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExN0IwQUM1RDUzNTAw
NTMyNzBGIC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3
QkY4NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgyNkUwQUE3OEI4QTAwNDg2
QUQ3IC8qIERPTUhUTUxUYWJsZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkxQTY3QkY4ODFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRN
TFRhYmxlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUU3MTE3QzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlRWxl
bWVudEludGVybmFsLmggKi87IH07CisJCTFBNjdCRjg5MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01I
VE1MVGFibGVSb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NURGODIxOTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlUm93RWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTFBNjdCRjhBMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MVGFibGVSb3dFbGVtZW50SW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcx
MTdEMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGFibGVSb3dFbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGOEIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NURGODIxQjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQTY3QkY4
QzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExN0Uw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50SW50ZXJuYWwuaCAq
LzsgfTsKKwkJMUE2N0JGOEQxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUFD
OEE2MUQ0RDdFNTQwMDkwOTc5MSAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGOEUxRDRGRTQy
MzAwNDEyQUM3IC8qIERPTUhUTUxUZXh0QXJlYUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQUM4QUExRDREN0Y2MzAwOTA5
NzkxIC8qIERPTUhUTUxUZXh0QXJlYUVsZW1lbnRJbnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNjdCRjhGMUQ0RkU0MjMwMDQxMkFD
NyAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQUM4QUIxRDREN0Y2MzAwOTA5NzkxIC8qIERP
TUhUTUxUZXh0QXJlYUVsZW1lbnRQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JGOTAxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhU
TUxUaXRsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1OTkyRUI4MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE2N0JG
OTExRDRGRTQyNDAwNDEyQUM3IC8qIERPTUhUTUxUaXRsZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExODAwQUM1RDUz
NTAwNTMyNzBGIC8qIERPTUhUTUxUaXRsZUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQkxQTY3
QkY5MjFENEZFNDI0MDA0MTJBQzcgLyogRE9NSFRNTFVMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTREMDkwQUE2ODg2ODAwODgw
NTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkxQTY3QkY5MzFENEZFNDI0MDA0MTJBQzcgLyogRE9NSFRN
TFVMaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUU3MTE4MTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFVMaXN0RWxl
bWVudEludGVybmFsLmggKi87IH07CisJCTFBNjdCRjk0MUQ0RkU0MjQwMDQxMkFDNyAvKiBET01I
VE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREVDNjY0QjFDODJDRkJGMDA5OTg0NkEgLyogRE9NSFRNTFZpZGVvRWxlbWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNjdC
Rjk1MUQ0RkU0MjQwMDQxMkFDNyAvKiBET01IVE1MVmlkZW9FbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERUM2NjREMUM4MkNG
QkYwMDk5ODQ2QSAvKiBET01IVE1MVmlkZW9FbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMUE2
N0JGOTkxRDRGRTY1OTAwNDEyQUM3IC8qIERPTUhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY3QkY5NjFENEZFNjQ1MDA0
MTJBQzcgLyogRE9NSFRNTENhbnZhc0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQTY3QkY5QTFENEZFNjYwMDA0MTJBQzcgLyogRE9N
SFRNTENhbnZhc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTY3QkY5NzFENEZFNjQ1MDA0MTJBQzcgLyogRE9NSFRNTENhbnZhc0VsZW1l
bnQubW0gKi87IH07CisJCTFBNjdCRjlCMUQ0RkU2NjMwMDQxMkFDNyAvKiBET01IVE1MQ2FudmFz
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTY3QkY5ODFENEZFNjQ1MDA0MTJBQzcgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJ
bnRlcm5hbC5oICovOyB9OwogCQkxQTcxRDU3QjBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmll
clJlcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTcxRDU3OTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi87IH07CiAJCTFB
NzFENTdDMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUg
LyogSWRlbnRpZmllclJlcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFBNzUwRDVDMEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE3NTBENUEw
QTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtlci5jcHAgKi87IH07CkBAIC05OTQsMTAgKzEw
NzgsNyBAQAogCQkxQzA5MzlFQjFBMTNFMTI5MDBCNzg4RTUgLyogQ2FjaGVkU1ZHRm9udC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwOTM5RTkxQTEz
RTEyOTAwQjc4OEU1IC8qIENhY2hlZFNWR0ZvbnQuaCAqLzsgfTsKIAkJMUMxMUNDQjYwQUE2MDkz
NzAwREFEQjIwIC8qIERPTUNvbW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0QxMEE5OEM0MjcwMEEyNzVBQSAv
KiBET01Db21tZW50LmggKi87IH07CiAJCTFDMTFDQ0I3MEFBNjA5MzcwMERBREIyMCAvKiBET01O
YW1lZE5vZGVNYXAuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1MThERDc2MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5v
ZGVNYXAuaCAqLzsgfTsKLQkJMUMxMUNDQjgwQUE2MDkzNzAwREFEQjIwIC8qIERPTUhUTUxPcHRp
b25zQ29sbGVjdGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjJGOTkwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oICovOyB9OwogCQkxQzExQ0NCOTBBQTYwOTM3MDBEQURCMjAgLyog
RE9NRW50aXR5UmVmZXJlbmNlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTA4OUNENTBBOThDNDI4MDBBMjc1QUEgLyogRE9N
RW50aXR5UmVmZXJlbmNlLmggKi87IH07Ci0JCTFDMTFDQ0JBMEFBNjA5MzcwMERBREIyMCAvKiBE
T01IVE1MQ29sbGVjdGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjJGOEMwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhU
TUxDb2xsZWN0aW9uLmggKi87IH07Ci0JCTFDMTFDQ0JCMEFBNjA5MzcwMERBREIyMCAvKiBET01I
VE1MRm9ybUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REYyQzEwMEFBMzQxRjYwMEFENjRDNSAvKiBET01IVE1M
Rm9ybUVsZW1lbnQuaCAqLzsgfTsKIAkJMUMxMUNDQkMwQUE2MDkzNzAwREFEQjIwIC8qIERPTUF0
dHIuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1RDM4OUIwMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRyLmggKi87IH07CiAJ
CTFDMTFDQ0JEMEFBNjA5MzcwMERBREIyMCAvKiBET01Eb2N1bWVudC5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0FCQUUw
QTlDQUY4MDAwNjcxRTkwIC8qIERPTURvY3VtZW50LmggKi87IH07CiAJCTFDMTFDQ0JFMEFBNjA5
MzcwMERBREIyMCAvKiBET01Ob2RlTGlzdC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0FBODkwQTlCNzU5QzAwNjcxRTkw
IC8qIERPTU5vZGVMaXN0LmggKi87IH07CkBAIC0xMDEwLDcgKzEwOTEsNiBAQAogCQkxQzExQ0ND
NTBBQTYwOTM3MDBEQURCMjAgLyogRE9NQ2hhcmFjdGVyRGF0YS5oIGluIENvcHkgR2VuZXJhdGVk
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0E5ODQwQTlC
NTIwMzAwNjcxRTkwIC8qIERPTUNoYXJhY3RlckRhdGEuaCAqLzsgfTsKIAkJMUMxMUNDQzYwQUE2
MDkzNzAwREFEQjIwIC8qIERPTURvY3VtZW50RnJhZ21lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0QzMEE5OEM0
MjgwMEEyNzVBQSAvKiBET01Eb2N1bWVudEZyYWdtZW50LmggKi87IH07CiAJCTFDMTFDQ0M3MEFB
NjA5MzcwMERBREIyMCAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0NGMEE5OEM0Mjcw
MEEyNzVBQSAvKiBET01DREFUQVNlY3Rpb24uaCAqLzsgfTsKLQkJMUMxMUNDQzgwQUE2MDkzNzAw
REFEQjIwIC8qIERPTUhUTUxFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkVFQjBBQTM4N0NCMDBBRDY0QzUg
LyogRE9NSFRNTEVsZW1lbnQuaCAqLzsgfTsKIAkJMUMxOERBNTgxODFBRjZBNTAwQzRFRjIyIC8q
IFRleHRQYWludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDMThEQTU2MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5jcHAgKi87IH07
CiAJCTFDMThEQTU5MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOERBNTcxODFBRjZBNTAwQzRF
RjIyIC8qIFRleHRQYWludGVyLmggKi87IH07CiAJCTFDMjFFNTdDMTgzRUQxRkYwMDFDMjg5RCAv
KiBJT1N1cmZhY2VQb29sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDMjFFNTdBMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmNwcCAq
LzsgfTsKQEAgLTEwMzgsOSArMTExOCw3IEBACiAJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAv
KiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0FGMzQ4MDBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDQjQyMTRBMEFGMkIyQ0EwMDg1QUQ5MSAvKiBET01Eb2N1bWVudEludGVybmFsLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUU3MTE0NjBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1lbnRJbnRlcm5hbC5oICov
OyB9OwogCQkxQ0I0MjE0QjBBRjJCMkNBMDA4NUFEOTEgLyogRE9NRWxlbWVudEludGVybmFsLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUU3MTE0OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NRWxlbWVudEludGVybmFsLmggKi87
IH07Ci0JCTFDQjQyMTRDMEFGMkIyQ0EwMDg1QUQ5MSAvKiBET01IVE1MRWxlbWVudEludGVybmFs
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUU3MTE1ODBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEVsZW1lbnRJbnRlcm5h
bC5oICovOyB9OwogCQkxQ0I0MjE0RDBBRjJCMkNBMDA4NUFEOTEgLyogRE9NUmFuZ2VJbnRlcm5h
bC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODUzOEYwNUEwQUQ3MjJGMTAwNkE4MUQxIC8qIERPTVJhbmdlSW50ZXJuYWwuaCAq
LzsgfTsKLQkJMUNDQTczMjIxMEFERDQ0QTAwRkQ0NDBEIC8qIERPTUhUTUxJbnB1dEVsZW1lbnRQ
cml2YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQ0NBNzMyMTEwQURENDNFMDBGRDQ0MEQgLyogRE9NSFRNTElucHV0RWxl
bWVudFByaXZhdGUuaCAqLzsgfTsKIAkJMUNDREY1QkQxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1Rv
T1RGRm9udENvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUNDREY1QkIxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZl
cnNpb24uY3BwICovOyB9OwogCQkxQ0NERjVCRTE5OTAzMzI0MDBCQ0VCQUQgLyogU1ZHVG9PVEZG
b250Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNDREY1QkMxOTkwMzMyNDAwQkNFQkFEIC8qIFNWR1RvT1RGRm9udENvbnZlcnNpb24u
aCAqLzsgfTsKIAkJMUNGNkJERkEwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0Y2QkRG
ODBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIuaCAqLzsgfTsKQEAgLTEyMDAs
OCArMTI3OCw2IEBACiAJCTJEM0VGNDRCMTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXll
ckV4dHJhcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEM0VGNDQ3MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5tbSAqLzsg
fTsKIAkJMkQ0MTNGNjExQTE4N0EzRjAwNDFBNTIxIC8qIExvb2t1cFNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0MTNGNjAxQTE4N0EzRjAwNDFB
NTIxIC8qIExvb2t1cFNQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJENDE1MERFMUMxRjg2OEMwMDBBM0JBMiAvKiBKU01vY2tQYWdlT3Zlcmxh
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDZG
M0U5MjFDMUY4NTU1MDA2MURCRDQgLyogSlNNb2NrUGFnZU92ZXJsYXkuY3BwICovOyB9OwotCQky
RDQ0NDY5ODFDODRDQ0NGMDAyNEM4ODkgLyogRE9NSFRNTE1lZGlhRWxlbWVudC5oIGluIENvcHkg
R2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRF
QzY2NEUxQzgyQ0ZGNjAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCAqLzsgfTsKLQkJ
MkQ0NDQ2OTkxQzg0Q0NENzAwMjRDODg5IC8qIERPTUhUTUxWaWRlb0VsZW1lbnQuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
RUM2NjRCMUM4MkNGQkYwMDk5ODQ2QSAvKiBET01IVE1MVmlkZW9FbGVtZW50LmggKi87IH07CiAJ
CTJENDQ0NjlCMUM4NENEMDUwMDI0Qzg4OSAvKiBET01NZWRpYUVycm9yLmggaW4gQ29weSBHZW5l
cmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVDNjY3
NTFDODQwM0MzMDA5OTg0NkEgLyogRE9NTWVkaWFFcnJvci5oICovOyB9OwogCQkyRDQ0NDY5RjFD
ODRDRDA2MDAyNEM4ODkgLyogRE9NVGltZVJhbmdlcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFQzY2NkYxQzgzRjJBRjAw
OTk4NDZBIC8qIERPTVRpbWVSYW5nZXMuaCAqLzsgfTsKIAkJMkQ0NkYwNEUxN0I5NkZCRDAwNTY0
N0YwIC8qIEludFBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENDZGMDREMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5jcHAgKi87IH07
CkBAIC0xMjU5LDExICsxMzM1LDggQEAKIAkJMkRDQjgzN0ExOUY5OUJCQTAwQTdGQkU0IC8qIE5T
U2hhcmluZ1NlcnZpY2VTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEQ0I4Mzc4MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1NoYXJpbmdTZXJ2aWNlU1BJ
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkRE
Qjk3RjQxOUY5QUVDQTAwMjAyNUQ4IC8qIE5TRXh0ZW5zaW9uU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRERCOTdGMzE5RjlBRUNBMDAyMDI1RDgg
LyogTlNFeHRlbnNpb25TUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkyREU3MDAyMzE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgg
Ki87IH07Ci0JCTJERUM2NjUxMUM4MkQwMTYwMDk5ODQ2QSAvKiBET01IVE1MTWVkaWFFbGVtZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJERUM2NjUwMUM4MkQwMDgwMDk5ODQ2QSAvKiBET01IVE1MTWVkaWFFbGVtZW50SW50ZXJuYWwu
aCAqLzsgfTsKLQkJMkRFQzY2NTIxQzgyRDAxRjAwOTk4NDZBIC8qIERPTUhUTUxWaWRlb0VsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkRFQzY2NEQxQzgyQ0ZCRjAwOTk4NDZBIC8qIERPTUhUTUxWaWRlb0VsZW1lbnRJbnRlcm5h
bC5oICovOyB9OwogCQkyREVDNjY1MzFDODJEMDJFMDA5OTg0NkEgLyogRE9NSFRNTFZpZGVvRWxl
bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
RUM2NjRDMUM4MkNGQkYwMDk5ODQ2QSAvKiBET01IVE1MVmlkZW9FbGVtZW50Lm1tICovOyB9Owot
CQkyREVDNjY1NDFDODJEMDM1MDA5OTg0NkEgLyogRE9NSFRNTFZpZGVvRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFQzY2NEIxQzgyQ0ZC
RjAwOTk4NDZBIC8qIERPTUhUTUxWaWRlb0VsZW1lbnQuaCAqLzsgfTsKLQkJMkRFQzY2NTUxQzgy
RDA0MTAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERUM2NjRFMUM4MkNGRjYwMDk5ODQ2QSAvKiBE
T01IVE1MTWVkaWFFbGVtZW50LmggKi87IH07CisJCTJERUM2NjU1MUM4MkQwNDEwMDk5ODQ2QSAv
KiBET01IVE1MTWVkaWFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREVDNjY0RTFDODJDRkY2MDA5OTg0NkEgLyogRE9NSFRNTE1lZGlhRWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTJERUM2NjU2MUM4MkQwNDQwMDk5ODQ2QSAvKiBET01IVE1MTWVkaWFFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFQzY2NEYxQzgyQ0ZG
NjAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQubW0gKi87IH07CiAJCTJERUM2NjcyMUM4
M0YyQUYwMDk5ODQ2QSAvKiBET01UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREVDNjY2RjFDODNGMkFGMDA5OTg0NkEgLyogRE9NVGlt
ZVJhbmdlcy5oICovOyB9OwogCQkyREVDNjY3MzFDODNGMkFGMDA5OTg0NkEgLyogRE9NVGltZVJh
bmdlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
RUM2NjcwMUM4M0YyQUYwMDk5ODQ2QSAvKiBET01UaW1lUmFuZ2VzLm1tICovOyB9OwpAQCAtMTc0
MCw5ICsxODEzLDYgQEAKIAkJNDNGNkZEOTYxM0JDRDBCMTAwMjI0MDUyIC8qIFNWR0FuaW1hdGVk
SW50ZWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0M0Y2RkQ5NTEzQkNEMEIxMDAyMjQwNTIgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCAqLzsg
fTsKIAkJNDQxNTI5MkUwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MTUyOTJD
MEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQxNTI5MkYwRTFBRThBMDAw
QzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwICovOyB9OwotCQk0NDFCMDU1QzBDRDc3QTJEMDA3QzFG
MTggLyogRE9NSFRNTEVtYmVkRWxlbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjlBQUZCMENCODRFODgw
MDc2NDdDNSAvKiBET01IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oICovOyB9OwotCQk0NDFCMDU1
RTBDRDc3QTQ4MDA3QzFGMTggLyogRE9NSFRNTElGcmFtZUVsZW1lbnRQcml2YXRlLmggaW4gQ29w
eSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NDI5QUFGRDBDQjg0RUE1MDA3NjQ3QzUgLyogRE9NSFRNTElGcmFtZUVsZW1lbnRQcml2YXRlLmgg
Ki87IH07Ci0JCTQ0MUIwNTYwMENENzdBNjUwMDdDMUYxOCAvKiBET01IVE1MT2JqZWN0RWxlbWVu
dFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0MjlBQUZGMENCODRFQzMwMDc2NDdDNSAvKiBET01IVE1MT2JqZWN0
RWxlbWVudFByaXZhdGUuaCAqLzsgfTsKIAkJNDQyQUJDRDYxN0Q5MjYyRjAwRDMwNzE1IC8qIFN5
bmNocm9ub3VzTG9hZGVyQ2xpZW50Q0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyQUJDRDUxN0Q5MjYyRjAwRDMwNzE1IC8qIFN5bmNocm9u
b3VzTG9hZGVyQ2xpZW50Q0ZOZXQuY3BwICovOyB9OwogCQk0NDJBRjdBOTEwMkNEREVBMDA4RkQ0
RDMgLyogUXVpY2tMb29rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NDJBRjdBNzEwMkNEREVBMDA4RkQ0RDMgLyogUXVpY2tMb29rLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQyQUY3QUExMDJDRERF
QTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0MkFGN0E4MTAyQ0RERUEwMDhGRDREMyAvKiBRdWlja0xvb2subW0g
Ki87IH07CkBAIC0yNTQxLDcgKzI2MTEsNiBAQAogCQk2NTkzOTIzNzA5QUU0MzQ2MDAyQzUzMUYg
LyogVVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDY1OTM5MjM1MDlBRTQzNDYwMDJDNTMxRiAvKiBVUkwuY3BwICovOyB9OwogCQk2NTkzOTIzODA5
QUU0MzQ2MDAyQzUzMUYgLyogVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTkzOTIzNjA5QUU0MzQ2MDAyQzUzMUYgLyogVVJMLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU5MzkyM0EwOUFFNDM1
QzAwMkM1MzFGIC8qIFVSTE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1OTM5MjM5MDlBRTQzNUMwMDJDNTMxRiAvKiBVUkxNYWMubW0gKi87IH07
Ci0JCTY1OTZGMkIzMEI4NzMxREYwMDEzMjZCRCAvKiBET01IVE1MSW5wdXRFbGVtZW50SW50ZXJu
YWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1RTcxMTY0MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSW5wdXRFbGVtZW50
SW50ZXJuYWwuaCAqLzsgfTsKIAkJNjU5QTdEMTMwQjZEQjREOTAwMTE1NUIzIC8qIFN1YnN0aXR1
dGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTlBN0QxMjBCNkRCNEQ5MDAxMTU1QjMgLyogU3Vic3RpdHV0ZURhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTlEREM4MjA5RTE5OEJBMDAx
QkYzQzYgLyogSlNEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTlEREM4MDA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5jcHAg
Ki87IH07CiAJCTY1OUREQzgzMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0RvY3VtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTlEREM4MTA5RTE5OEJB
MDAxQkYzQzYgLyogSlNEb2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0zMTMxLDIxICszMjAwLDEzIEBACiAJCTg1MEI0MUMyMEFEOUU3
RTcwMEE2RUQ0RiAvKiBET01Ob2RlSXRlcmF0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwQjQxQzAwQUQ5RTdFNzAwQTZFRDRGIC8q
IERPTU5vZGVJdGVyYXRvckludGVybmFsLmggKi87IH07CiAJCTg1MEI0MUMzMEFEOUU3RTcwMEE2
RUQ0RiAvKiBET01UcmVlV2Fsa2VySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MEI0MUMxMEFEOUU3RTcwMEE2RUQ0RiAvKiBET01UcmVl
V2Fsa2VySW50ZXJuYWwuaCAqLzsgfTsKIAkJODUxNzRFQzJCQ0NBRjE3RUFFM0Y0NkY4IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVBOTE0NjlFOEU5Rjg0ODVDMzdBMjg3NiAvKiBKU1NWR0dyYXBoaWNzRWxl
bWVudC5jcHAgKi87IH07Ci0JCTg1MTgzQjQyMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MQlJF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTE4M0IzODBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEJSRWxlbWVudC5oICovOyB9OworCQk4
NTE4M0I0MjBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEJSRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUxODNCMzgwQUE2OTI2MTAwRjE5
RkEzIC8qIERPTUhUTUxCUkVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NTE4M0I0MzBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEJS
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1MTgzQjM5MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MQlJFbGVtZW50Lm1tICovOyB9Owot
CQk4NTE4M0I0NDBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEhlYWRpbmdFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTE4M0IzQTBBQTY5
MjYxMDBGMTlGQTMgLyogRE9NSFRNTEhlYWRpbmdFbGVtZW50LmggKi87IH07CisJCTg1MTgzQjQ0
MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MSGVhZGluZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MTgzQjNBMEFBNjkyNjEwMEYxOUZB
MyAvKiBET01IVE1MSGVhZGluZ0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTE4M0I0NTBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRN
TEhlYWRpbmdFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODUxODNCM0IwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxIZWFkaW5nRWxlbWVu
dC5tbSAqLzsgfTsKLQkJODUxODNCNDYwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTE4M0IzQzBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaCAq
LzsgfTsKIAkJODUxODNCNDcwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUx
ODNCM0QwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50Lm1tICovOyB9
OwotCQk4NTE4M0I0ODBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFByZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MTgzQjNFMEFBNjky
NjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVudC5oICovOyB9OwogCQk4NTE4M0I0OTBBQTY5
MjYxMDBGMTlGQTMgLyogRE9NSFRNTFByZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTE4M0IzRjBBQTY5MjYxMDBGMTlGQTMgLyogRE9N
SFRNTFByZUVsZW1lbnQubW0gKi87IH07Ci0JCTg1MTgzQjRBMEFBNjkyNjEwMEYxOUZBMyAvKiBE
T01IVE1MUXVvdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTE4M0I0MDBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFF1b3RlRWxlbWVu
dC5oICovOyB9OwogCQk4NTE4M0I0QjBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFF1b3RlRWxl
bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
MTgzQjQxMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUXVvdGVFbGVtZW50Lm1tICovOyB9Owot
CQk4NTE4M0I1OTBBQTY5Mjg2MDBGMTlGQTMgLyogRE9NSFRNTEJSRWxlbWVudC5oIGluIENvcHkg
R2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUx
ODNCMzgwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxCUkVsZW1lbnQuaCAqLzsgfTsKLQkJODUx
ODNCNUEwQUE2OTI4NjAwRjE5RkEzIC8qIERPTUhUTUxIZWFkaW5nRWxlbWVudC5oIGluIENvcHkg
R2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUx
ODNCM0EwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxIZWFkaW5nRWxlbWVudC5oICovOyB9Owot
CQk4NTE4M0I1QjBBQTY5Mjg2MDBGMTlGQTMgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1MTgzQjNDMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudC5o
ICovOyB9OwotCQk4NTE4M0I1QzBBQTY5Mjg2MDBGMTlGQTMgLyogRE9NSFRNTFByZUVsZW1lbnQu
aCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1MTgzQjNFMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVudC5oICov
OyB9OwotCQk4NTE4M0I1RDBBQTY5Mjg2MDBGMTlGQTMgLyogRE9NSFRNTFF1b3RlRWxlbWVudC5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUxODNCNDAwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxRdW90ZUVsZW1lbnQuaCAq
LzsgfTsKIAkJODUxOERDRTkwQTlDQzgwRDAwOTFCN0E2IC8qIERPTURPTUltcGxlbWVudGF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTE4RENF
NzBBOUNDODBDMDA5MUI3QTYgLyogRE9NRE9NSW1wbGVtZW50YXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NTE4RENFQTBBOUNDODBEMDA5MUI3QTYgLyog
RE9NRE9NSW1wbGVtZW50YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTE4RENFODBBOUNDODBEMDA5MUI3QTYgLyogRE9NRE9NSW1wbGVtZW50
YXRpb24ubW0gKi87IH07CiAJCTg1MThERDc4MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5v
ZGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
MThERDc2MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5vZGVNYXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtMzE2OSwxNCArMzIzMCw5IEBACiAJCTg1NDA3
NTI2MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcgLyog
RE9NTm9kZUZpbHRlci5oICovOyB9OwogCQk4NTQwNzUzRTBBRDZDNkRDMDA2MjBDNTcgLyogRE9N
RXZlbnRUYXJnZXQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRh
cmdldC5oICovOyB9OwogCQk4NTQwNzUzRjBBRDZDNkRDMDA2MjBDNTcgLyogRE9NTm9kZUZpbHRl
ci5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODU0MDc1MjUwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0ZXIuaCAqLzsg
fTsKLQkJODU0MDc1NjkwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzU2NDBB
RDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQuaCAqLzsgfTsKLQkJODU0MDc1
NkEwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3NTY1MEFENkNCRjkwMDYyMEM1
NyAvKiBET01IVE1MRW1iZWRFbGVtZW50LmggKi87IH07Ci0JCTg1NDA3NTZCMEFENkNCRjkwMDYy
MEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxP
cHRpb25FbGVtZW50LmggKi87IH07CisJCTg1NDA3NTY5MEFENkNCRjkwMDYyMEM1NyAvKiBET01I
VE1MQXBwbGV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODU0MDc1NjQwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODU0
MDc1NkEwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3NTY1MEFENkNCRjkwMDYy
MEM1NyAvKiBET01IVE1MRW1iZWRFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhU
TUxPcHRpb25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODU0MDc1NjcwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
Lm1tICovOyB9OwotCQk4NTQwNzU2RDBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU0MDc1NjgwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50SW50
ZXJuYWwuaCAqLzsgfTsKLQkJODU0MDc1ODMwQUQ2Q0YxNDAwNjIwQzU3IC8qIERPTUhUTUxBcHBs
ZXRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzU2NDBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTEFwcGxl
dEVsZW1lbnQuaCAqLzsgfTsKLQkJODU0MDc1ODQwQUQ2Q0YxNDAwNjIwQzU3IC8qIERPTUhUTUxF
bWJlZEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3NTY1MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MRW1i
ZWRFbGVtZW50LmggKi87IH07Ci0JCTg1NDA3NTg1MEFENkNGMTQwMDYyMEM1NyAvKiBET01IVE1M
T3B0aW9uRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxP
cHRpb25FbGVtZW50LmggKi87IH07CiAJCTg1NDJBNzkzMEFFNUM5M0YwMERGNThERiAvKiBKU1NW
R1JlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
NzREMUY4MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1JlY3QuaCAqLzsgfTsKIAkJODU0MkE3OTQw
QUU1Qzk0MDAwREY1OERGIC8qIEpTU1ZHUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGNzBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdS
ZWN0LmNwcCAqLzsgfTsKIAkJODU0MkE3OTUwQUU1Qzk0MTAwREY1OERGIC8qIEpTU1ZHUG9pbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUY2
MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1BvaW50LmggKi87IH07CkBAIC0zMTk0LDggKzMyNTAs
NiBAQAogCQk4NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyRDBBMjI5N0JFMDA1
OEQ3QUQgLyogVHJhdmVyc2FsLmggKi87IH07CiAJCTg1NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAv
KiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1NEZFNzJFMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCAqLzsgfTsK
IAkJODU0RkU3MzkwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzJGMEEyMjk3QkUwMDU4RDdB
RCAvKiBUcmVlV2Fsa2VyLmggKi87IH07Ci0JCTg1NTI0N0NGMEFEODUwQjgwMDEyMDkzQiAvKiBE
T01IVE1MQXBwbGV0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNDdDRDBBRDg1MEI4MDAxMjA5M0IgLyogRE9NSFRNTEFw
cGxldEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NTUyNDdEMDBBRDg1MEI4MDAxMjA5M0Ig
LyogRE9NSFRNTEVtYmVkRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTUyNDdDRTBBRDg1MEI4MDAxMjA5M0IgLyogRE9NSFRN
TEVtYmVkRWxlbWVudEludGVybmFsLmggKi87IH07CiAJCTg1NTI2QzM3MEFCMEExN0UwMDAzMDJF
QSAvKiBET01Ob2RlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1NTI2QzM1MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3Iu
aCAqLzsgfTsKIAkJODU1MjZDMzgwQUIwQTE3RTAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2QzM2
MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IubW0gKi87IH07CiAJCTg1NTI2Qzcy
MEFCMEFFMkYwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCBpbiBDb3B5IEdlbmVyYXRlZCBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2QzM1MEFCMEEx
N0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCAqLzsgfTsKQEAgLTMyMDYsMTMgKzMyNjAs
NiBAQAogCQk4NTVEMzU4RDBBRDcwN0NDMDAxOUFBQzcgLyogRE9NUkdCQ29sb3IuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
NUQzNTg5MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oICovOyB9OwogCQk4NTZDOEFF
NDBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZDOEFFMjBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2Jq
ZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODU2QzhBRTUwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NkM4QUUzMEE5MTI2NDkwMDVDNjg3QiAv
KiBET01PYmplY3QubW0gKi87IH07Ci0JCTg1NzVERjdFMEFBNjEyN0UwMEY1REJCNSAvKiBET01I
VE1MU3R5bGVFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TFN0eWxlRWxlbWVudC5oICovOyB9OwotCQk4NTc1REY4MDBBQTYxMkQ2MDBGNURCQjUgLyogRE9N
SFRNTEJhc2VFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMzRDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TEJhc2VFbGVtZW50LmggKi87IH07Ci0JCTg1NzVERjgxMEFBNjEyRDYwMEY1REJCNSAvKiBET01I
VE1MQm9keUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5QzNGMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1M
Qm9keUVsZW1lbnQuaCAqLzsgfTsKLQkJODU3NURGODMwQUE2MTJENjAwRjVEQkI1IC8qIERPTUhU
TUxNZXRhRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODU5QTlDNDMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxN
ZXRhRWxlbWVudC5oICovOyB9OwotCQk4NTc1REY4NDBBQTYxMzBFMDBGNURCQjUgLyogRE9NSFRN
TEhlYWRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhl
YWRFbGVtZW50LmggKi87IH07Ci0JCTg1NzVERjg1MEFBNjEzMEUwMEY1REJCNSAvKiBET01IVE1M
SHRtbEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI0MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRt
bEVsZW1lbnQuaCAqLzsgfTsKLQkJODU3NURGODYwQUE2MTMwRTAwRjVEQkI1IC8qIERPTUhUTUxM
aW5rRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjYwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5r
RWxlbWVudC5oICovOyB9OwogCQk4NTdFMEIyNTBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3
RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLzsgfTsKIAkJODU3RTBC
MjYwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyog
RE9NTW91c2VFdmVudC5tbSAqLzsgfTsKIAkJODU3RTBCMzEwQUIwNDQ3ODAwMzZFNDQ3IC8qIERP
TU1vdXNlRXZlbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2
ZW50LmggKi87IH07CkBAIC0zMjUxLDIxICszMjk4LDE5IEBACiAJCTg1OTg5RENGMEFDQzhCQkQw
MEEwQkM1MSAvKiBET01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTg5REM4MEFDQzhCQkQwMEEwQkM1MSAvKiBE
T01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJODU5ODlERDAwQUNDOEJCRDAwQTBC
QzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU5ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJ
bnRlcm5hbC5oICovOyB9OwogCQk4NTk4OUREMTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NV2hlZWxF
dmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NV2hlZWxFdmVudEludGVybmFsLmgg
Ki87IH07Ci0JCTg1OTkyRUJBMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUIy
MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk4NTk5MkVCQTBBQTUwNjk1MDBBQzA3ODUgLyogRE9N
SFRNTEhlYWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU5OTJF
QkIwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUIzMEFBNTA2OTUwMEFDMDc4
NSAvKiBET01IVE1MSGVhZEVsZW1lbnQubW0gKi87IH07Ci0JCTg1OTkyRUJDMEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI0MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRt
bEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk4NTk5
MkVCQzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCNDBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU5OTJFQkQwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxI
dG1sRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1OTkyRUI1MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQubW0gKi87
IH07Ci0JCTg1OTkyRUJFMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI2MEFB
NTA2OTUwMEFDMDc4NSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9ICgpOyB9OyB9OworCQk4NTk5MkVCRTBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRN
TExpbmtFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTk5MkVCNjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU5OTJFQkYw
QUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI3MEFBNTA2OTUwMEFDMDc4NSAv
KiBET01IVE1MTGlua0VsZW1lbnQubW0gKi87IH07Ci0JCTg1OTkyRUMwMEFBNTA2OTUwMEFDMDc4
NSAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCODBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxl
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTg1OTky
RUMxMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjkwQUE1MDY5NTAwQUMw
Nzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQubW0gKi87IH07Ci0JCTg1OUE5QzQ3MEFBNUUzQkQw
MEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5QzNEMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1M
QmFzZUVsZW1lbnQuaCAqLzsgfTsKKwkJODU5QTlDNDcwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhU
TUxCYXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU5QTlDM0QwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1OUE5QzQ4
MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMzRTBBQTVFM0JEMDBCNjk0QjIg
LyogRE9NSFRNTEJhc2VFbGVtZW50Lm1tICovOyB9OwotCQk4NTlBOUM0OTBBQTVFM0JEMDBCNjk0
QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMzRjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlF
bGVtZW50LmggKi87IH07CisJCTg1OUE5QzQ5MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9k
eUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1OUE5QzNGMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTlBOUM0QTBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5QTlDNDAwQUE1RTNCRDAwQjY5NEIyIC8qIERP
TUhUTUxCb2R5RWxlbWVudC5tbSAqLzsgfTsKLQkJODU5QTlDNEQwQUE1RTNCRDAwQjY5NEIyIC8q
IERPTUhUTUxNZXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU5QTlDNDMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVu
dC5oICovOyB9OworCQk4NTlBOUM0RDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlB
OUM0MzBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU5QTlDNEUwQUE1RTNCRDAw
QjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5QzQ0MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1M
TWV0YUVsZW1lbnQubW0gKi87IH07Ci0JCTg1OUE5QzRGMEFBNUUzQkQwMEI2OTRCMiAvKiBET01I
VE1MU3R5bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTlBOUM0NTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5o
ICovOyB9OwogCQk4NTlBOUM1MDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5
QzQ2MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50Lm1tICovOyB9OwogCQk4
NUFDQTk4NjBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hhcmFjdGVyRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0E5ODQwQTlCNTIwMzAwNjcx
RTkwIC8qIERPTUNoYXJhY3RlckRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgp
OyB9OyB9OwogCQk4NUFDQTk4NzBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hhcmFjdGVyRGF0YS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBOTg1
MEE5QjUyMDMwMDY3MUU5MCAvKiBET01DaGFyYWN0ZXJEYXRhLm1tICovOyB9OwpAQCAtMzI4NCwz
OSArMzMyOSwyNyBAQAogCQk4NUI0OThGNTBBREIzMzdBMDA5MjVDQkIgLyogRE9NRXZlbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVC
NDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJODVC
NDk4RkIwQURCMzQwMjAwOTI1Q0JCIC8qIERPTU5vZGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCNDk4RkEwQURCMzQwMjAwOTI1Q0JC
IC8qIERPTU5vZGVJbnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07
IH07CiAJCTg1QjQ5OEZGMEFEQjM0ODEwMDkyNUNCQiAvKiBET01TdHlsZVNoZWV0SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QjQ5OEZF
MEFEQjM0ODEwMDkyNUNCQiAvKiBET01TdHlsZVNoZWV0SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVC
QTRDREQwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENENTBBQTY4NjFCMDA4
ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCAqLzsgfTsKKwkJODVCQTRDREQwQUE2ODYx
QjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENENTBBQTY4NjFCMDA4ODA1MkQgLyogRE9N
SFRNTEJ1dHRvbkVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4NUJBNENERTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NUJBNENENjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0gKi87IH07
Ci0JCTg1QkE0Q0RGMEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MRmllbGRTZXRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENENzBB
QTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oICovOyB9OworCQk4NUJB
NENERjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTRDRDcwQUE2ODYxQjAw
ODgwNTJEIC8qIERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUJBNENFMDBBQTY4NjFCMDA4ODA1MkQgLyog
RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1QkE0Q0Q4MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MRmllbGRT
ZXRFbGVtZW50Lm1tICovOyB9OwotCQk4NUJBNENFMTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRN
TExhYmVsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVCQTRDRDkwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMYWJlbEVsZW1lbnQuaCAq
LzsgfTsKKwkJODVCQTRDRTEwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMYWJlbEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0Q0Q5
MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVtZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVCQTRDRTIwQUE2ODYxQjAwODgw
NTJEIC8qIERPTUhUTUxMYWJlbEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENEQTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTExh
YmVsRWxlbWVudC5tbSAqLzsgfTsKLQkJODVCQTRDRTMwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhU
TUxMZWdlbmRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUJBNENEQjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQu
aCAqLzsgfTsKKwkJODVCQTRDRTMwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMZWdlbmRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJB
NENEQjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUJBNENFNDBBQTY4NjFC
MDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENEQzBBQTY4NjFCMDA4ODA1MkQgLyogRE9N
SFRNTExlZ2VuZEVsZW1lbnQubW0gKi87IH07Ci0JCTg1QkE0Q0U1MEFBNjg2NTEwMDg4MDUyRCAv
KiBET01IVE1MQnV0dG9uRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTRDRDUwQUE2ODYxQjAwODgwNTJEIC8q
IERPTUhUTUxCdXR0b25FbGVtZW50LmggKi87IH07Ci0JCTg1QkE0Q0U2MEFBNjg2NTEwMDg4MDUy
RCAvKiBET01IVE1MRmllbGRTZXRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENENzBBQTY4NjFCMDA4ODA1
MkQgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oICovOyB9OwotCQk4NUJBNENFNzBBQTY4NjUx
MDA4ODA1MkQgLyogRE9NSFRNTExhYmVsRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTRDRDkwQUE2ODYxQjAw
ODgwNTJEIC8qIERPTUhUTUxMYWJlbEVsZW1lbnQuaCAqLzsgfTsKLQkJODVCQTRDRTgwQUE2ODY1
MTAwODgwNTJEIC8qIERPTUhUTUxMZWdlbmRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENEQjBBQTY4NjFC
MDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQuaCAqLzsgfTsKLQkJODVCQTREMEIwQUE2
ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENGRDBBQTY4ODY4MDA4ODA1MkQg
LyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCAqLzsgfTsKKwkJODVCQTREMEIwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENGRDBBQTY4ODY4MDA4ODA1MkQgLyogRE9N
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NUJBNEQwQzBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpcmVj
dG9yeUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUJBNENGRTBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQu
bW0gKi87IH07Ci0JCTg1QkE0RDBEMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MRGl2RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTRD
RkYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50LmggKi87IH07CisJCTg1QkE0
RDBEMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MRGl2RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTRDRkYwQUE2ODg2ODAwODgwNTJE
IC8qIERPTUhUTUxEaXZFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODVCQTREMEUwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZF
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVCQTREMDAwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50Lm1tICovOyB9Owot
CQk4NUJBNEQwRjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERMaXN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTREMDEwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxETGlzdEVsZW1lbnQuaCAqLzsgfTsKKwkJODVCQTREMEYwQUE2
ODg2ODAwODgwNTJEIC8qIERPTUhUTUxETGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0RDAxMEFBNjg4NjgwMDg4MDUyRCAvKiBE
T01IVE1MRExpc3RFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODVCQTREMTAwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxETGlzdEVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NUJBNEQwMjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERMaXN0RWxlbWVudC5tbSAqLzsgfTsK
LQkJODVCQTREMTEwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxMSUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0RDAzMEFBNjg4Njgw
MDg4MDUyRCAvKiBET01IVE1MTElFbGVtZW50LmggKi87IH07CisJCTg1QkE0RDExMEFBNjg4Njgw
MDg4MDUyRCAvKiBET01IVE1MTElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwMzBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTExJ
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg1QkE0RDEyMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTElFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTREMDQwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxMSUVsZW1lbnQubW0gKi87IH07Ci0JCTg1QkE0RDEzMEFBNjg4
NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0RDA1MEFBNjg4NjgwMDg4MDUyRCAvKiBET01I
VE1MTWVudUVsZW1lbnQuaCAqLzsgfTsKKwkJODVCQTREMTMwQUE2ODg2ODAwODgwNTJEIC8qIERP
TUhUTUxNZW51RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVCQTREMDUwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxNZW51RWxlbWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1QkE0
RDE0MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwNjBBQTY4ODY4MDA4ODA1
MkQgLyogRE9NSFRNTE1lbnVFbGVtZW50Lm1tICovOyB9OwotCQk4NUJBNEQxNTBBQTY4ODY4MDA4
ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTREMDcwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxP
TGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhU
TUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUJBNEQwODBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5t
bSAqLzsgfTsKLQkJODVCQTREMTcwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0
RDA5MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MVUxpc3RFbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVCQTREMTgwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwQTBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRN
TFVMaXN0RWxlbWVudC5tbSAqLzsgfTsKLQkJODVCQTREMjgwQUE2ODg5RjAwODgwNTJEIC8qIERP
TUhUTUxEaXJlY3RvcnlFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENGRDBBQTY4ODY4MDA4ODA1MkQgLyog
RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCAqLzsgfTsKLQkJODVCQTREMjkwQUE2ODg5RjAwODgw
NTJEIC8qIERPTUhUTUxEaXZFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNENGRjBBQTY4ODY4MDA4ODA1MkQg
LyogRE9NSFRNTERpdkVsZW1lbnQuaCAqLzsgfTsKLQkJODVCQTREMkEwQUE2ODg5RjAwODgwNTJE
IC8qIERPTUhUTUxETGlzdEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0RDAxMEFBNjg4NjgwMDg4MDUyRCAv
KiBET01IVE1MRExpc3RFbGVtZW50LmggKi87IH07Ci0JCTg1QkE0RDJCMEFBNjg4OUYwMDg4MDUy
RCAvKiBET01IVE1MTElFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwMzBBQTY4ODY4MDA4ODA1MkQgLyog
RE9NSFRNTExJRWxlbWVudC5oICovOyB9OwotCQk4NUJBNEQyQzBBQTY4ODlGMDA4ODA1MkQgLyog
RE9NSFRNTE1lbnVFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwNTBBQTY4ODY4MDA4ODA1MkQgLyogRE9N
SFRNTE1lbnVFbGVtZW50LmggKi87IH07Ci0JCTg1QkE0RDJEMEFBNjg4OUYwMDg4MDUyRCAvKiBE
T01IVE1MT0xpc3RFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwNzBBQTY4ODY4MDA4ODA1MkQgLyogRE9N
SFRNTE9MaXN0RWxlbWVudC5oICovOyB9OwotCQk4NUJDQkMxMzBBQkJBODdEMDAzODExNjAgLyog
RE9NSFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUJDQkMxMTBBQkJBODdEMDAzODExNjAgLyogRE9NSFRNTERvY3VtZW50LmggKi87
IH07CisJCTg1QkNCQzEzMEFCQkE4N0QwMDM4MTE2MCAvKiBET01IVE1MRG9jdW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkNCQzExMEFCQkE4
N0QwMDM4MTE2MCAvKiBET01IVE1MRG9jdW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUJDQkMxNDBBQkJBODdEMDAzODExNjAgLyogRE9N
SFRNTERvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVCQ0JDMTIwQUJCQTg3RDAwMzgxMTYwIC8qIERPTUhUTUxEb2N1bWVudC5tbSAqLzsg
fTsKIAkJODVDMDUwQkEwQUQ4NEY1RTAwNTUzMkU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDMDUwQjgw
QUQ4NEY1RTAwNTUzMkU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50Lm1tICovOyB9OwogCQk4NUMw
NTBCQjBBRDg0RjVFMDA1NTMyRTcgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzA1MEI5MEFEODRGNUUwMDU1
MzJFNyAvKiBET01IVE1MRW1iZWRFbGVtZW50Lm1tICovOyB9OwpAQCAtMzMzOSw1NyArMzM3Miwz
NiBAQAogCQk4NUQyQUQ2RDBBQjFBNDgyMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5oIGlu
IENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLzsgfTsK
IAkJODVEMzg5QjIwQTk5MUE3RjAwMjgyMTQ1IC8qIERPTUF0dHIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDM4OUIwMEE5OTFBN0YwMDI4MjE0NSAv
KiBET01BdHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJODVE
Mzg5QjMwQTk5MUE3RjAwMjgyMTQ1IC8qIERPTUF0dHIubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUQzODlCMTBBOTkxQTdGMDAyODIxNDUgLyogRE9N
QXR0ci5tbSAqLzsgfTsKLQkJODVERjJDNUMwQUEzNDFGNjAwQUQ2NEM1IC8qIERPTUhUTUxGb3Jt
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVERjJDMTAwQUEzNDFGNjAwQUQ2NEM1IC8qIERPTUhUTUxGb3JtRWxlbWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJCTg1REYyQzVDMEFBMzQxRjYwMEFENjRD
NSAvKiBET01IVE1MRm9ybUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1REYyQzEwMEFBMzQxRjYwMEFENjRDNSAvKiBET01IVE1MRm9ybUVs
ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4NURGMkM1RDBBQTM0MUY2MDBBRDY0QzUgLyogRE9NSFRNTEZvcm1FbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjJDMTEwQUEzNDFG
NjAwQUQ2NEM1IC8qIERPTUhUTUxGb3JtRWxlbWVudC5tbSAqLzsgfTsKLQkJODVERjJFRUQwQUEz
ODdDQjAwQUQ2NEM1IC8qIERPTUhUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkVFQjBBQTM4N0NCMDBBRDY0QzUgLyogRE9NSFRN
TEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk4NURG
MkVFRDBBQTM4N0NCMDBBRDY0QzUgLyogRE9NSFRNTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REYyRUVCMEFBMzg3Q0IwMEFENjRDNSAv
KiBET01IVE1MRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg1REYyRUVFMEFBMzg3Q0IwMEFENjRDNSAvKiBET01IVE1MRWxlbWVudC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REYyRUVD
MEFBMzg3Q0IwMEFENjRDNSAvKiBET01IVE1MRWxlbWVudC5tbSAqLzsgfTsKLQkJODVERjJGOEUw
QUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkY4QzBBQTNDODgxMDBBRDY0QzUgLyog
RE9NSFRNTENvbGxlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9
OworCQk4NURGMkY4RTBBQTNDODgxMDBBRDY0QzUgLyogRE9NSFRNTENvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REYyRjhDMEFBM0M4
ODEwMEFENjRDNSAvKiBET01IVE1MQ29sbGVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1REYyRjhGMEFBM0M4ODEwMEFENjRDNSAvKiBE
T01IVE1MQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1REYyRjhEMEFBM0M4ODEwMEFENjRDNSAvKiBET01IVE1MQ29sbGVjdGlvbi5t
bSAqLzsgfTsKLQkJODVERjJGOUIwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVERjJGOTkwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTg1REYyRjlDMEFBM0NBRTUw
MEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkY5QTBBQTNDQUU1MDBBRDY0QzUgLyog
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tICovOyB9OwogCQk4NURGMzQ1RDBBQUZDMkQ0MDBF
NTlBRTMgLyogRE9NTXV0YXRpb25FdmVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1QkMwQUFGQjdDQzAwNDAxNERE
IC8qIERPTU11dGF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJODVERjM0NUYwQUFGQzJENDAwRTU5QUUz
IC8qIERPTU92ZXJmbG93RXZlbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBE
T01PdmVyZmxvd0V2ZW50LmggKi87IH07CiAJCTg1REYzNDYwMEFBRkMyRDQwMEU1OUFFMyAvKiBE
T01XaGVlbEV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjVFNTBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxF
dmVudC5oICovOyB9OwogCQk4NURGMzQ2MjBBQUZDMkQ0MDBFNTlBRTMgLyogRE9NS2V5Ym9hcmRF
dmVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQu
aCAqLzsgfTsKLQkJODVERjgxMjcwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURG
ODEyMTBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTEFuY2hvckVsZW1lbnQuaCAqLzsgfTsKKwkJ
ODVERjgxMjcwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODEyMTBBQTc3ODcy
MDA0ODZBRDcgLyogRE9NSFRNTEFuY2hvckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NURGODEyODBBQTc3ODcyMDA0ODZBRDcgLyog
RE9NSFRNTEFuY2hvckVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NURGODEyMjBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTEFuY2hvckVs
ZW1lbnQubW0gKi87IH07Ci0JCTg1REY4MTI5MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MSW1h
Z2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NURGODEyMzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTEltYWdlRWxlbWVudC5oICovOyB9
OworCQk4NURGODEyOTBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTEltYWdlRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgxMjMwQUE3
Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxJbWFnZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NURGODEyQTBBQTc3ODcyMDA0ODZBRDcg
LyogRE9NSFRNTEltYWdlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1REY4MTI0MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VF
bGVtZW50Lm1tICovOyB9OwotCQk4NURGODEyQjBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9i
amVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1REY4MTI1MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5oICov
OyB9OworCQk4NURGODEyQjBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTI1
MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1REY4MTJDMEFBNzc4NzIwMDQ4
NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTI2MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1M
T2JqZWN0RWxlbWVudC5tbSAqLzsgfTsKLQkJODVERjgxMkQwQUE3NzhBMzAwNDg2QUQ3IC8qIERP
TUhUTUxBbmNob3JFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODEyMTBBQTc3ODcyMDA0ODZBRDcgLyogRE9N
SFRNTEFuY2hvckVsZW1lbnQuaCAqLzsgfTsKLQkJODVERjgxMkUwQUE3NzhBMzAwNDg2QUQ3IC8q
IERPTUhUTUxJbWFnZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTIzMEFBNzc4NzIwMDQ4NkFENyAvKiBE
T01IVE1MSW1hZ2VFbGVtZW50LmggKi87IH07Ci0JCTg1REY4MTJGMEFBNzc4QTMwMDQ4NkFENyAv
KiBET01IVE1MT2JqZWN0RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgxMjUwQUE3Nzg3MjAwNDg2QUQ3IC8q
IERPTUhUTUxPYmplY3RFbGVtZW50LmggKi87IH07Ci0JCTg1REY4MTk1MEFBNzdFNEIwMDQ4NkFE
NyAvKiBET01IVE1MRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NURGODE4RDBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1l
RWxlbWVudC5oICovOyB9OworCQk4NURGODE5NTBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZy
YW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVERjgxOEQwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxGcmFtZUVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NURGODE5NjBB
QTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MThFMEFBNzdFNEIwMDQ4NkFENyAv
KiBET01IVE1MRnJhbWVFbGVtZW50Lm1tICovOyB9OwotCQk4NURGODE5NzBBQTc3RTRCMDA0ODZB
RDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgxOEYwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxG
cmFtZVNldEVsZW1lbnQuaCAqLzsgfTsKKwkJODVERjgxOTcwQUE3N0U0QjAwNDg2QUQ3IC8qIERP
TUhUTUxGcmFtZVNldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1REY4MThGMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVTZXRF
bGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODVERjgxOTgwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxGcmFtZVNldEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODE5MDBB
QTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5tbSAqLzsgfTsKLQkJODVE
RjgxOTkwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODE5MTBBQTc3RTRCMDA0
ODZBRDcgLyogRE9NSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgfTsKKwkJODVERjgxOTkwQUE3N0U0
QjAwNDg2QUQ3IC8qIERPTUhUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODE5MTBBQTc3RTRCMDA0ODZBRDcgLyogRE9N
SFRNTElGcmFtZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4NURGODE5QTBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTElGcmFtZUVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NURGODE5MjBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTElGcmFtZUVsZW1lbnQubW0gKi87IH07
Ci0JCTg1REY4MTlCMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgxOTMwQUE3
N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxTY3JpcHRFbGVtZW50LmggKi87IH07CiAJCTg1REY4MTlD
MEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTk0MEFBNzdFNEIwMDQ4NkFE
NyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5tbSAqLzsgfTsKLQkJODVERjgxOUQwQUE3N0U3RTAw
NDg2QUQ3IC8qIERPTUhUTUxGcmFtZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MThEMEFBNzdFNEIwMDQ4
NkFENyAvKiBET01IVE1MRnJhbWVFbGVtZW50LmggKi87IH07Ci0JCTg1REY4MTlFMEFBNzdFN0Uw
MDQ4NkFENyAvKiBET01IVE1MRnJhbWVTZXRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODE4RjBBQTc3RTRC
MDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oICovOyB9OwotCQk4NURGODE5RjBB
QTc3RTdFMDA0ODZBRDcgLyogRE9NSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTkxMEFB
NzdFNEIwMDQ4NkFENyAvKiBET01IVE1MSUZyYW1lRWxlbWVudC5oICovOyB9OwotCQk4NURGODFB
MDBBQTc3RTdFMDA0ODZBRDcgLyogRE9NSFRNTFNjcmlwdEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTkz
MEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5oICovOyB9OwotCQk4NURG
ODIxRDBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MjEzMEFBNzg0
OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oICovOyB9OwogCQk4NURG
ODIxRTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODIxNDBBQTc4
NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQubW0gKi87IH07Ci0JCTg1
REY4MjFGMEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDZWxsRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgyMTUwQUE3ODQ5
RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmggKi87IH07CiAJCTg1REY4MjIw
MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDZWxsRWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MjE2MEFBNzg0OUUwMDQ4
NkFENyAvKiBET01IVE1MVGFibGVDZWxsRWxlbWVudC5tbSAqLzsgfTsKLQkJODVERjgyMjEwQUE3
ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MjE3MEFBNzg0OUUwMDQ4NkFENyAv
KiBET01IVE1MVGFibGVDb2xFbGVtZW50LmggKi87IH07CiAJCTg1REY4MjIyMEFBNzg0OUUwMDQ4
NkFENyAvKiBET01IVE1MVGFibGVDb2xFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgyMTgwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhU
TUxUYWJsZUNvbEVsZW1lbnQubW0gKi87IH07Ci0JCTg1REY4MjIzMEFBNzg0OUUwMDQ4NkFENyAv
KiBET01IVE1MVGFibGVSb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NURGODIxOTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxl
Um93RWxlbWVudC5oICovOyB9OwogCQk4NURGODIyNDBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRN
TFRhYmxlUm93RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1REY4MjFBMEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVSb3dFbGVt
ZW50Lm1tICovOyB9OwotCQk4NURGODIyNTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1REY4MjFCMEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oICovOyB9OwogCQk4NURGODIyNjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NURGODIxQzBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQubW0gKi87IH07Ci0JCTg1REY4MjJGMEFBNzg2NjgwMDQ4NkFENyAvKiBET01IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgyMTMwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmggKi87IH07Ci0JCTg1REY4MjMwMEFBNzg2NjgwMDQ4NkFE
NyAvKiBET01IVE1MVGFibGVDZWxsRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgyMTUwQUE3ODQ5RTAwNDg2
QUQ3IC8qIERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmggKi87IH07Ci0JCTg1REY4MjMxMEFBNzg2
NjgwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDb2xFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODIxNzBBQTc4
NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oICovOyB9OwotCQk4NURGODIz
MjBBQTc4NjY4MDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlUm93RWxlbWVudC5oIGluIENvcHkgR2Vu
ZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgy
MTkwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaCAqLzsgfTsKLQkJ
ODVERjgyMzMwQUE3ODY2ODAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NURGODIxQjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuaCAqLzsgfTsKLQkJODVERjgyNzAwQUE3OEI4QjAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
REY4MjZFMEFBNzhCOEEwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50LmggKi87IH07CiAJ
CTg1REY4MjcxMEFBNzhCOEIwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgyNkYwQUE3OEI4
QTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUVsZW1lbnQubW0gKi87IH07Ci0JCTg1REY4Mjc0MEFB
NzhDNzMwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGODI2RTBBQTc4
QjhBMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlRWxlbWVudC5oICovOyB9OwogCQk4NUU3MTE4RDBB
QzVENTM1MDA1MzI3MEYgLyogRE9NQXR0ckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTEzRTBBQzVENTM0MDA1MzI3MEYgLyogRE9N
QXR0ckludGVybmFsLmggKi87IH07CiAJCTg1RTcxMThFMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01D
REFUQVNlY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFNzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNEQVRBU2VjdGlvbklu
dGVybmFsLmggKi87IH07CiAJCTg1RTcxMThGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01DaGFyYWN0
ZXJEYXRhSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1RTcxMTQwMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DaGFyYWN0ZXJEYXRhSW50ZXJu
YWwuaCAqLzsgfTsKQEAgLTM0MDQsNTggKzM0MTYsOCBAQAogCQk4NUU3MTE5ODBBQzVENTM1MDA1
MzI3MEYgLyogRE9NRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NRWxlbWVu
dEludGVybmFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJODVF
NzExOTkwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUVudGl0eUludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0QTBBQzVENTM0MDA1MzI3
MEYgLyogRE9NRW50aXR5SW50ZXJuYWwuaCAqLzsgfTsKIAkJODVFNzExOUEwQUM1RDUzNTAwNTMy
NzBGIC8qIERPTUVudGl0eVJlZmVyZW5jZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0QjBBQzVENTM0MDA1MzI3MEYgLyogRE9N
RW50aXR5UmVmZXJlbmNlSW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExOUIwQUM1RDUzNTAwNTMy
NzBGIC8qIERPTUhUTUxBbmNob3JFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTRDMEFDNUQ1MzQwMDUzMjcwRiAvKiBE
T01IVE1MQW5jaG9yRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMTlDMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MQXJlYUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNEQwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTUhUTUxBcmVhRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMTlEMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MQmFzZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNEUwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTUhUTUxCYXNlRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMTlFMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MQmFzZUZvbnRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTRGMEFDNUQ1MzQwMDUzMjcw
RiAvKiBET01IVE1MQmFzZUZvbnRFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExOUYw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxCb2R5RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE1MDBBQzVENTM0MDA1
MzI3MEYgLyogRE9NSFRNTEJvZHlFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQTAw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxCUkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTEwQUM1RDUzNDAwNTMy
NzBGIC8qIERPTUhUTUxCUkVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFBMTBBQzVE
NTM1MDA1MzI3MEYgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTIwQUM1RDUzNDAwNTMy
NzBGIC8qIERPTUhUTUxCdXR0b25FbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQTIw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxDb2xsZWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTUzMEFDNUQ1MzQwMDUz
MjcwRiAvKiBET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUEzMEFD
NUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE1NDBBQzVENTM0
MDA1MzI3MEYgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4
NUU3MTFBNDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTERpdkVsZW1lbnRJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTUwQUM1
RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxEaXZFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVF
NzExQTUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxETGlzdEVsZW1lbnRJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTYwQUM1
RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxETGlzdEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4
NUU3MTFBNjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTERvY3VtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTU3MEFDNUQ1
MzQwMDUzMjcwRiAvKiBET01IVE1MRG9jdW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFB
NzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNTgwQUM1RDUzNDAwNTMy
NzBGIC8qIERPTUhUTUxFbGVtZW50SW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OwotCQk4NUU3MTFBODBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEZpZWxk
U2V0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUU3MTE1OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEZpZWxkU2V0RWxl
bWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUE5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MRm9udEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODVFNzExNUEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb250RWxl
bWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUFBMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MRm9ybUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODVFNzExNUIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb3JtRWxl
bWVudEludGVybmFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJODVFNzExQUIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxGcmFtZUVsZW1lbnRJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVFNzExNUMwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGcmFtZUVsZW1lbnRJbnRlcm5hbC5o
ICovOyB9OwotCQk4NUU3MTFBQzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEZyYW1lU2V0RWxl
bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUU3MTE1RDBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudElu
dGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUFEMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSGVh
ZEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVFNzExNUUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIZWFkRWxlbWVudElu
dGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUFFMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSGVh
ZGluZ0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFNzExNUYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIZWFkaW5nRWxl
bWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUFGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MSFJFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RTcxMTYwMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSFJFbGVtZW50
SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQjAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxI
dG1sRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUU3MTE2MTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEh0bWxFbGVtZW50
SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQjEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJ
RnJhbWVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RTcxMTYyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSUZyYW1lRWxl
bWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUIyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MSW1hZ2VFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RTcxMTYzMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSW1hZ2VF
bGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQjMwQUM1RDUzNTAwNTMyNzBGIC8qIERP
TUhUTUxJbnB1dEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODVFNzExNjQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJbnB1
dEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFCNTBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTExhYmVsRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2NjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTExh
YmVsRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUI2MEFDNUQ1MzUwMDUzMjcwRiAv
KiBET01IVE1MTGVnZW5kRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2NzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRN
TExlZ2VuZEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFCNzBBQzVENTM1MDA1MzI3
MEYgLyogRE9NSFRNTExJRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2ODBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRN
TExJRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUI4MEFDNUQ1MzUwMDUzMjcwRiAv
KiBET01IVE1MTGlua0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNjkwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxM
aW5rRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUI5MEFDNUQ1MzUwMDUzMjcwRiAv
KiBET01IVE1MTWFwRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE2QTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE1h
cEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFCQTBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTZCMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWVu
dUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFCQjBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTE1ldGFFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTZDMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWV0
YUVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFCQzBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTE1vZEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODVFNzExNkQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxNb2RF
bGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQkQwQUM1RDUzNTAwNTMyNzBGIC8qIERP
TUhUTUxPYmplY3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTZFMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT2Jq
ZWN0RWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUJFMEFDNUQ1MzUwMDUzMjcwRiAv
KiBET01IVE1MT0xpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTZGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1M
T0xpc3RFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQkYwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNzAwQUM1RDUzNTAwNTMyNzBGIC8qIERP
TUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFDMDBBQzVENTM1
MDA1MzI3MEYgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTcxMEFDNUQ1MzUwMDUz
MjcwRiAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb25JbnRlcm5hbC5oICovOyB9OwotCQk4NUU3
MTFDMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNzIw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJuYWwuaCAqLzsg
fTsKLQkJODVFNzExQzIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNzMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oICov
OyB9OwotCQk4NUU3MTFDMzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFByZUVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNzQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQcmVFbGVtZW50SW50ZXJuYWwuaCAqLzsg
fTsKLQkJODVFNzExQzQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxRdW90ZUVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
NzExNzUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxRdW90ZUVsZW1lbnRJbnRlcm5hbC5oICov
OyB9OwotCQk4NUU3MTFDNTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFNjcmlwdEVsZW1lbnRJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVFNzExNzYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTY3JpcHRFbGVtZW50SW50ZXJuYWwu
aCAqLzsgfTsKLQkJODVFNzExQzYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTZWxlY3RFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1RTcxMTc3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU2VsZWN0RWxlbWVudEludGVy
bmFsLmggKi87IH07Ci0JCTg1RTcxMUM3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU3R5bGVF
bGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1RTcxMTc4MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU3R5bGVFbGVtZW50SW50
ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQzgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RTcxMTc5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGFibGVD
YXB0aW9uRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcxMUM5MEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01IVE1MVGFibGVDZWxsRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE3QTBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFDQTBBQzVE
NTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlQ29sRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE3QjBBQzVENTM1MDA1
MzI3MEYgLyogRE9NSFRNTFRhYmxlQ29sRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCTg1RTcx
MUNCMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGFibGVFbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTdDMEFDNUQ1
MzUwMDUzMjcwRiAvKiBET01IVE1MVGFibGVFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVF
NzExQ0MwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExN0Qw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnRJbnRlcm5hbC5oICovOyB9
OwotCQk4NUU3MTFDRDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVFNzExN0UwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
SW50ZXJuYWwuaCAqLzsgfTsKLQkJODVFNzExQ0YwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxU
aXRsZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFNzExODAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUaXRsZUVsZW1l
bnRJbnRlcm5hbC5oICovOyB9OwotCQk4NUU3MTFEMDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRN
TFVMaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUU3MTE4MTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFVMaXN0RWxl
bWVudEludGVybmFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODVFNzExQTcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxFbGVtZW50SW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcx
MTU4MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MRWxlbWVudEludGVybmFsLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODVFNzExQjMwQUM1RDUz
NTAwNTMyNzBGIC8qIERPTUhUTUxJbnB1dEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNjQwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTUhUTUxJbnB1dEVsZW1lbnRJbnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1RTcxMUQxMEFDNUQ1MzUwMDUzMjcwRiAvKiBE
T01NZWRpYUxpc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFNzExODIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU1lZGlhTGlzdEludGVy
bmFsLmggKi87IH07CiAJCTg1RTcxMUQyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01OYW1lZE5vZGVN
YXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVFNzExODMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5hbWVkTm9kZU1hcEludGVybmFsLmgg
Ki87IH07CiAJCTg1RTcxMUQzMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01Ob2RlTGlzdEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE4
NDBBQzVENTM1MDA1MzI3MEYgLyogRE9NTm9kZUxpc3RJbnRlcm5hbC5oICovOyB9OwpAQCAtMzQ3
NCwzNyArMzQzNiwyMyBAQAogCQk4NUU5RTBBQTBBQjNBMTE5MDAwNjlDRDAgLyogRE9NWFBhdGhO
U1Jlc29sdmVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NUU5RTA5RTBBQjNBMEM3MDAwNjlDRDAgLyogRE9NWFBhdGhOU1Jl
c29sdmVyLmggKi87IH07CiAJCTg1RTlFMEFCMEFCM0ExMTkwMDA2OUNEMCAvKiBET01YUGF0aFJl
c3VsdC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFOUUwOUYwQUIzQTBDNzAwMDY5Q0QwIC8qIERPTVhQYXRoUmVzdWx0Lmgg
Ki87IH07CiAJCTg1RUM5QUZCMEE3MUEyQzYwMEVFRUFFRCAvKiBMYW5ndWFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQzlBRjkwQTcxQTJDNjAw
RUVFQUVEIC8qIExhbmd1YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJODVFQ0JFRUIwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxBcmVhRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVF
Q0JFREQwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxBcmVhRWxlbWVudC5oICovOyB9OworCQk4
NUVDQkVFQjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTEFyZWFFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUVDQkVERDBBQTc2MjY4MDA1
NDRGMEIgLyogRE9NSFRNTEFyZWFFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVFQ0JFRUMwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhU
TUxBcmVhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1RUNCRURFMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MQXJlYUVsZW1lbnQubW0g
Ki87IH07Ci0JCTg1RUNCRUVEMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MQmFzZUZvbnRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUVD
QkVERjBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudC5oICovOyB9Owor
CQk4NUVDQkVFRDBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQ0JFREYwQUE3
NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxCYXNlRm9udEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUVDQkVFRTBBQTc2MjY5MDA1NDRG
MEIgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUNCRUUwMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1M
QmFzZUZvbnRFbGVtZW50Lm1tICovOyB9OwotCQk4NUVDQkVFRjBBQTc2MjY5MDA1NDRGMEIgLyog
RE9NSFRNTEZvbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUVDQkVFMTBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEZvbnRFbGVtZW50
LmggKi87IH07CisJCTg1RUNCRUVGMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MRm9udEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUNC
RUUxMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MRm9udEVsZW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUVDQkVGMDBBQTc2MjY5MDA1
NDRGMEIgLyogRE9NSFRNTEZvbnRFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQ0JFRTIwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxG
b250RWxlbWVudC5tbSAqLzsgfTsKLQkJODVFQ0JFRjEwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhU
TUxIUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1RUNCRUUzMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MSFJFbGVtZW50LmggKi87IH07
CisJCTg1RUNCRUYxMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MSFJFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUVDQkVFMzBBQTc2MjY4
MDA1NDRGMEIgLyogRE9NSFRNTEhSRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1RUNCRUYyMEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MSFJFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVFQ0JFRTQwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQubW0gKi87
IH07Ci0JCTg1RUNCRUYzMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTWFwRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQ0JFRTUwQUE3
NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNYXBFbGVtZW50LmggKi87IH07CisJCTg1RUNCRUYzMEFB
NzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTWFwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQ0JFRTUwQUE3NjI2ODAwNTQ0RjBCIC8qIERP
TUhUTUxNYXBFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODVFQ0JFRjQwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNYXBFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFQ0JF
RTYwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNYXBFbGVtZW50Lm1tICovOyB9OwotCQk4NUVD
QkVGNTBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUNCRUU3MEFBNzYyNjgwMDU0NEYw
QiAvKiBET01IVE1MTW9kRWxlbWVudC5oICovOyB9OworCQk4NUVDQkVGNTBBQTc2MjY5MDA1NDRG
MEIgLyogRE9NSFRNTE1vZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RUNCRUU3MEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg1RUNCRUY2MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUNCRUU4MEFBNzYyNjkw
MDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVudC5tbSAqLzsgfTsKLQkJODVFQ0JFRjcwQUE3NjI2
OTAwNTQ0RjBCIC8qIERPTUhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUNCRUU5MEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MUGFyYW1FbGVtZW50LmggKi87IH07CiAJCTg1RUNCRUY4MEFBNzYyNjkwMDU0NEYwQiAvKiBE
T01IVE1MUGFyYW1FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFQ0JFRUEwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxQYXJhbUVsZW1l
bnQubW0gKi87IH07Ci0JCTg1RUNCRjA4MEFBNzYyODkwMDU0NEYwQiAvKiBET01IVE1MQXJlYUVs
ZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RUNCRUREMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MQXJlYUVsZW1l
bnQuaCAqLzsgfTsKLQkJODVFQ0JGMDkwQUE3NjI4OTAwNTQ0RjBCIC8qIERPTUhUTUxCYXNlRm9u
dEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RUNCRURGMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MQmFzZUZv
bnRFbGVtZW50LmggKi87IH07Ci0JCTg1RUNCRjBBMEFBNzYyODkwMDU0NEYwQiAvKiBET01IVE1M
Rm9udEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1RUNCRUUxMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MRm9u
dEVsZW1lbnQuaCAqLzsgfTsKLQkJODVFQ0JGMEIwQUE3NjI4OTAwNTQ0RjBCIC8qIERPTUhUTUxI
UkVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RUNCRUUzMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MSFJFbGVt
ZW50LmggKi87IH07Ci0JCTg1RUNCRjBDMEFBNzYyODkwMDU0NEYwQiAvKiBET01IVE1MTWFwRWxl
bWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVFQ0JFRTUwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNYXBFbGVtZW50
LmggKi87IH07Ci0JCTg1RUNCRjBEMEFBNzYyODkwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVu
dC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVFQ0JFRTcwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lmgg
Ki87IH07Ci0JCTg1RUNCRjBFMEFBNzYyODkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1FbGVtZW50
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUVDQkVFOTBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTFBhcmFtRWxlbWVudC5o
ICovOyB9OwotCQk4NUYyNjRCMjBBQkJBQTU4MDA5Njk0NEIgLyogRE9NSFRNTERvY3VtZW50Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUJDQkMxMTBBQkJBODdEMDAzODExNjAgLyogRE9NSFRNTERvY3VtZW50LmggKi87IH07
Ci0JCTg1RjMyQUVDMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MSW5wdXRFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUYzMkFFNDBBQTYz
Qjg3MDBGRjMxODQgLyogRE9NSFRNTElucHV0RWxlbWVudC5oICovOyB9OworCQk4NUYzMkFFQzBB
QTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGMzJBRTQwQUE2M0I4NzAwRkYzMTg0IC8q
IERPTUhUTUxJbnB1dEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NUYzMkFFRDBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTElucHV0
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1RjMyQUU1MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MSW5wdXRFbGVtZW50Lm1tICovOyB9
OwotCQk4NUYzMkFFRTBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGMzJBRTYw
QUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQuaCAqLzsgfTsKIAkJODVG
MzJBRUYwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUYzMkFFNzBBQTYzQjg3
MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSAqLzsgfTsKLQkJODVGMzJBRjAw
QUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUYzMkFFODBBQTYzQjg3MDBGRjMxODQg
LyogRE9NSFRNTFNlbGVjdEVsZW1lbnQuaCAqLzsgfTsKIAkJODVGMzJBRjEwQUE2M0I4NzAwRkYz
MTg0IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODVGMzJBRTkwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxT
ZWxlY3RFbGVtZW50Lm1tICovOyB9OwotCQk4NUYzMkI0MDBBQTY0MDFBMDBGRjMxODQgLyogRE9N
SFRNTElucHV0RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGMzJBRTQwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhU
TUxJbnB1dEVsZW1lbnQuaCAqLzsgfTsKLQkJODVGMzJCNDEwQUE2NDAxQTAwRkYzMTg0IC8qIERP
TUhUTUxPcHRHcm91cEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RjMyQUU2MEFBNjNCODcwMEZGMzE4NCAvKiBE
T01IVE1MT3B0R3JvdXBFbGVtZW50LmggKi87IH07Ci0JCTg1RjMyQjQyMEFBNjQwMUEwMEZGMzE4
NCAvKiBET01IVE1MU2VsZWN0RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGMzJBRTgwQUE2M0I4NzAwRkYzMTg0
IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCTg1RjU2QTdBMEE5OENFMzcwMEFE
QjYwQSAvKiBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RjU2QTc4MEE5OENFMzcwMEFEQjYwQSAvKiBET01Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9
OyB9OwogCQk4NUY1NkE3QjBBOThDRTM3MDBBREI2MEEgLyogRE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVG
NTZBNzkwQTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5tbSAqLzsg
fTsKIAkJODVGNzRFMDEwQUE4REY4QzAwMERDMjg0IC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4g
Q29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUuaCAqLzsgfTsK
QEAgLTM3NDksMTAgKzM2OTcsNyBAQAogCQk5MzlCMDJFRTBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi87IH07
CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OwogCQk5M0EzOEI0QjBEMEU1ODA4MDA2ODcy
QzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5j
cHAgKi87IH07Ci0JCTkzQUFDOEE4MUQ0RDdFNTQwMDkwOTc5MSAvKiBET01IVE1MVGV4dEFyZWFF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0FBQzhBNjFENEQ3RTU0MDA5MDk3OTEgLyogRE9NSFRNTFRleHRBcmVhRWxlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQUFDOEE5MUQ0
RDdFNTQwMDkwOTc5MSAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQUM4QTcxRDREN0U1NDAwOTA5Nzkx
IC8qIERPTUhUTUxUZXh0QXJlYUVsZW1lbnQubW0gKi87IH07Ci0JCTkzQUFDOEFDMUQ0RDdGNjMw
MDkwOTc5MSAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUFDOEFBMUQ0RDdGNjMwMDkwOTc5
MSAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50SW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0FBQzhBRDFENEQ3RjYzMDA5MDk3OTEg
LyogRE9NSFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUFDOEFCMUQ0RDdGNjMwMDkwOTc5MSAvKiBET01I
VE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzQjJEODE2MEY5OTIwRDIwMDZBRTZCMiAvKiBTdWRkZW5U
ZXJtaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNCMkQ4MTUwRjk5MjBEMjAwNkFFNkIyIC8qIFN1ZGRlblRlcm1pbmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNCMkQ4MTgwRjk5
MjBFRTAwNkFFNkIyIC8qIFN1ZGRlblRlcm1pbmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMkQ4MTcwRjk5MjBFRTAwNkFFNkIyIC8qIFN1
ZGRlblRlcm1pbmF0aW9uLm1tICovOyB9OwogCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0EgLyog
Q29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjZBMEU1MEIwQkNBNUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNzc5LDggKzM3MjQsNiBA
QAogCQk5M0M0RjZFQjExMDhGOUE1MDA5OUQwREIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNEY2RTkx
MTA4RjlBNTAwOTlEMERCIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaCAqLzsgfTsKIAkJOTND
Q0YwMjcwQUY2QzUyOTAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQ0NGMDI2MEFGNkM1MjkwMDAxOEU4
OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNDQ0YwNjAwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25B
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNDQ0YwNUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovOyB9Owot
CQk5M0QzQzE1OTBGOTdBOUQ3MDA1M0MwMTMgLyogRE9NSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDNDMTU4MEY5N0E5
RDcwMDUzQzAxMyAvKiBET01IVE1MQ2FudmFzRWxlbWVudC5oICovOyB9OwotCQk5M0QzQzE3RDBG
OTdBQTc2MDA1M0MwMTMgLyogRE9NSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDNDMTU4MEY5
N0E5RDcwMDUzQzAxMyAvKiBET01IVE1MQ2FudmFzRWxlbWVudC5oICovOyB9OwogCQk5M0Q5RDUz
QzBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMg
LyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNFMjI3RTAwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi87IH07CiAJCTkz
RTIyN0UzMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdERTBBRjU4OUFEMDBENDgz
MjQgLyogUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OwpAQCAtMzgzNSw4ICszNzc4LDYgQEAKIAkJ
OTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1
NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAw
N0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0
b25Hcm91cHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0Y5MjU0NDBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOTI1NDIwRjdF
RjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmNwcCAqLzsgfTsKLQkJOTNGOUI2NTcw
QkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2NTQwQkEwRjM1RTAwODU0MDY0
IC8qIERPTUhUTUxDYW52YXNFbGVtZW50Lm1tICovOyB9OwotCQk5M0Y5QjY1ODBCQTBGMzVFMDA4
NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2NTUwQkEwRjM1RTAwODU0MDY0IC8q
IERPTUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNGOUI2RTAwQkEwRkI3
MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmNw
cCAqLzsgfTsKIAkJOTNGOUI2RTEwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REYwQkEwRkI3
MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovOyB9OwogCQk5M0Y5QjdBMDBCQTYwMzI2MDA4NTQw
NjQgLyogSlNDREFUQVNlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9u
LmNwcCAqLzsgfTsKQEAgLTQyMzMsOSArNDE3NCw2IEBACiAJCUE0MDlDOTg1MTE2RDBEREQwMDcx
OTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MDlDOTgzMTE2RDBEREQwMDcxOTdCRCAv
KiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCAqLzsgfTsKIAkJQTQyMjZFNUExMTYz
RDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU1OTExNjNENjY3MDA4QjgzOTcg
LyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTQyMjZFNUMxMTYzRDY5NTAw
OEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFNUIxMTYzRDY5NTAwOEI4Mzk3IC8qIEpTSFRN
TFByb2dyZXNzRWxlbWVudC5oICovOyB9OwotCQlBNDIyNkU5NTExNjNENzNBMDA4QjgzOTcgLyog
RE9NSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTQyMjZFOTIxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVz
c0VsZW1lbnQuaCAqLzsgfTsKLQkJQTQyMjZFOTYxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQ
cm9ncmVzc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNDIyNkU5MzExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVu
dC5tbSAqLzsgfTsKLQkJQTQyMjZFOTkxMTYzRDdDQzAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVz
c0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTQyMjZFOTgxMTYzRDdDQzAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1l
bnRJbnRlcm5hbC5oICovOyB9OwogCQlBNDNCRjU5ODExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAgKi87IH07CiAJCUE0M0JGNTk5MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDNC
RjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovOyB9OwogCQlB
NDNCRjU5QzExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQzQkY1OUExMTQ5MjkyODAwQzY0
M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLzsgfTsKQEAgLTQyOTksOSArNDIzNyw2IEBACiAJ
CUE1RjZFMTZCMTMyRUQ0NkUwMDhFREFFMyAvKiBBdXRvY2FwaXRhbGl6ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUY2RTE2QzEzMkVENDZFMDA4
RURBRTMgLyogQXV0b2NhcGl0YWxpemUuY3BwICovOyB9OwogCQlBNUY4Q0QxMjFEMThGMzJFMDBB
QzBFNTMgLyogUGFnZUhlYXBBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTVGOENEMTExRDE4RUVDMzAwQUMwRTUzIC8qIFBhZ2VIZWFwQWdlbnQu
aCAqLzsgfTsKIAkJQTVGOENEMTMxRDE4RjMzMTAwQUMwRTUzIC8qIFBhZ2VIZWFwQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVGOENEMTAx
RDE4RUVDMzAwQUMwRTUzIC8qIFBhZ2VIZWFwQWdlbnQuY3BwICovOyB9OwotCQlBNjE0OEE2MjEy
RTQxRDNBMDA0NEE3ODQgLyogRE9NSFRNTEtleWdlbkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYxNDhBNjExMkU0MUQzQTAw
NDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKLQkJQTYxNDhB
NjcxMkU0MUQ5NDAwNDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjE0OEE2NTEyRTQxRDk0MDA0NEE3
ODQgLyogRE9NSFRNTEtleWdlbkVsZW1lbnQuaCAqLzsgfTsKLQkJQTYxNDhBNjgxMkU0MUQ5NDAw
NDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYxNDhBNjYxMkU0MUQ5NDAwNDRBNzg0IC8qIERPTUhU
TUxLZXlnZW5FbGVtZW50Lm1tICovOyB9OwogCQlBNjE0OEE3ODEyRTQxRTNCMDA0NEE3ODQgLyog
SlNIVE1MS2V5Z2VuRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNjE0OEE3NjEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxl
bWVudC5jcHAgKi87IH07CiAJCUE2MTQ4QTc5MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXln
ZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNjE0OEE3NzEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oICovOyB9
OwogCQlBNkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MTEzNDZCNDlCMDAw
RUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi87IH07CkBAIC01NTg5LDEwICs1NTI0LDggQEAKIAkJ
QkM0OTFCNzkwQzAyM0VGRDAwOUQ2MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MUI3NzBDMDIzRUZE
MDA5RDYzMTYgLyogSlNIVE1MTWFycXVlZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0RURFRjQwQzA4
RjNGQjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0RURFRjMwQzA4RjNGQjAwN0VE
RDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQzUxMTU2RTEy
QjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxMTU2RDEyQjE3NDlDMDBDOTY3NTQgLyog
U2Nyb2xsQW5pbWF0b3JNYWMubW0gKi87IH07Ci0JCUJDNTE1NkU4MEMwM0I3NDEwMDhCQjBFRSAv
KiBET01IVE1MTWFycXVlZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTE1NkU1MEMwM0I3NDEwMDhCQjBFRSAv
KiBET01IVE1MTWFycXVlZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM1MTU2RTkwQzAzQjc0MTAwOEJC
MEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTE1NkU2MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1M
TWFycXVlZUVsZW1lbnQubW0gKi87IH07Ci0JCUJDNTE1NkVBMEMwM0I3NDEwMDhCQjBFRSAvKiBE
T01IVE1MTWFycXVlZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1MTU2RTcwQzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxN
YXJxdWVlRWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCUJDNTE1NzlGMEMwM0JCRDMwMDhCQjBF
RSAvKiBET01IVE1MTWFycXVlZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTE1NkU1MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFy
cXVlZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM1MTU3OUYwQzAzQkJEMzAwOEJCMEVFIC8qIERPTUhU
TUxNYXJxdWVlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM1MTU2RTUwQzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
NTE1ODBCMEMwM0Q0MDQwMDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxNTgwQTBDMDNENDA0
MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQzUzQzVGNTBE
QTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTND
NjA4MERBNTZDNTcwMDIxRUI1RCAvKiBHcmFkaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUzQzYwNzBEQTU2QzU3MDAyMUVCNUQgLyogR3Jh
ZGllbnQuY3BwICovOyB9OwpAQCAtNjM2Nyw5ICs2MzAwLDYgQEAKIAkJRDMwMjc1NEExMkE1RkU4
NDAwNEJEODI4IC8qIFJlbmRlckRldGFpbHNNYXJrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzMDI3NTQ2MTJBNUZFODQwMDRCRDgyOCAvKiBSZW5k
ZXJEZXRhaWxzTWFya2VyLmggKi87IH07CiAJCUQzNTlENzg5MTI5Q0EyNzEwMDA2RTVEMiAvKiBI
VE1MRGV0YWlsc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDM1OUQ3ODYxMjlDQTI3MTAwMDZFNUQyIC8qIEhUTUxEZXRhaWxzRWxlbWVu
dC5jcHAgKi87IH07CiAJCUQzNTlENzhBMTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0Vs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
NTlENzg3MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuaCAqLzsgfTsKLQkJ
RDM1OUQ3OTExMjlDQTNDMDAwMDZFNUQyIC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM1OUQ3OEUxMjlDQTND
MDAwMDZFNUQyIC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudC5oICovOyB9OwotCQlEMzU5RDc5MjEy
OUNBM0MwMDAwNkU1RDIgLyogRE9NSFRNTERldGFpbHNFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM1OUQ3OEYxMjlDQTNDMDAwMDZFNUQy
IC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudC5tbSAqLzsgfTsKLQkJRDM1OUQ3OTMxMjlDQTNDMDAw
MDZFNUQyIC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzU5RDc5MDEyOUNBM0MwMDAwNkU1RDIg
LyogRE9NSFRNTERldGFpbHNFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJRDM1OUQ4QkUxMjlD
QTU1QzAwMDZFNUQyIC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzNTlEOEJDMTI5Q0E1NUMwMDA2RTVEMiAv
KiBKU0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgKi87IH07CiAJCUQzNTlEOEJGMTI5Q0E1NUMwMDA2
RTVEMiAvKiBKU0hUTUxEZXRhaWxzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDM1OUQ4QkQxMjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRNTERl
dGFpbHNFbGVtZW50LmggKi87IH07CiAJCUQzQTk0QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRp
YVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwICovOyB9
OwpAQCAtNjg5Nyw5ICs2ODI3LDYgQEAKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAq
LzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQx
RDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlG
NUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKLQkJRjVDMDQxRTMwRkZDQTk2
RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBE
T01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07Ci0JCUY1QzA0MUU0MEZGQ0E5NkQwMDgzOUQ0
QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREYwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxE
YXRhTGlzdEVsZW1lbnQubW0gKi87IH07Ci0JCUY1QzA0MUU1MEZGQ0E5NkQwMDgzOUQ0QSAvKiBE
T01IVE1MRGF0YUxpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUwMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1M
RGF0YUxpc3RFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJRjVDMDQxRTYwRkZDQTk2RDAwODM5
RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFFMTBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1M
RGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQxRTcwRkZDQTk2RDAwODM5RDRBIC8q
IEpTSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRTIwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0
RWxlbWVudC5oICovOyB9OwogCQlGNUUwQzY1QjE2NDNDNDJDMDBENkNCNjkgLyogQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVFMEM2NTkxNjQzQzQyQzAwRDZDQjY5IC8qIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTczNDEsNjkgKzcyNjgs
NiBAQAogCQkJCUJDMDBGMDM4MEUwQTE5REIwMEZEMDRFMyAvKiBET01GaWxlTGlzdC5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJQkMwMEYwMzkwRTBBMTlEQjAwRkQwNEUzIC8q
IERPTUZpbGVMaXN0SW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJ
CUExQzc5NzE4MTg4M0REODIwMDBGNUUxRiAvKiBET01HZXN0dXJlRXZlbnQuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1REY4MTJEMEFBNzc4QTMwMDQ4NkFENyAvKiBET01I
VE1MQW5jaG9yRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODU0
MDc1ODMwQUQ2Q0YxNDAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50LmggaW4gQ29weSBH
ZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NUVDQkYwODBBQTc2Mjg5MDA1NDRGMEIgLyogRE9N
SFRNTEFyZWFFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NTc1
REY4MDBBQTYxMkQ2MDBGNURCQjUgLyogRE9NSFRNTEJhc2VFbGVtZW50LmggaW4gQ29weSBHZW5l
cmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NUVDQkYwOTBBQTc2Mjg5MDA1NDRGMEIgLyogRE9NSFRN
TEJhc2VGb250RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODU3
NURGODEwQUE2MTJENjAwRjVEQkI1IC8qIERPTUhUTUxCb2R5RWxlbWVudC5oIGluIENvcHkgR2Vu
ZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODUxODNCNTkwQUE2OTI4NjAwRjE5RkEzIC8qIERPTUhU
TUxCUkVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1QkE0Q0U1
MEFBNjg2NTEwMDg4MDUyRCAvKiBET01IVE1MQnV0dG9uRWxlbWVudC5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8sCi0JCQkJOTNEM0MxN0QwRjk3QUE3NjAwNTNDMDEzIC8qIERPTUhUTUxD
YW52YXNFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQkxQzExQ0NC
QTBBQTYwOTM3MDBEQURCMjAgLyogRE9NSFRNTENvbGxlY3Rpb24uaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovLAotCQkJCTg1QkE0RDI4MEFBNjg4OUYwMDg4MDUyRCAvKiBET01IVE1MRGly
ZWN0b3J5RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVCQTRE
MjkwQUE2ODg5RjAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0
ZWQgSGVhZGVycyAqLywKLQkJCQk4NUJBNEQyQTBBQTY4ODlGMDA4ODA1MkQgLyogRE9NSFRNTERM
aXN0RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVGMjY0QjIw
QUJCQUE1ODAwOTY5NDRCIC8qIERPTUhUTUxEb2N1bWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8sCi0JCQkJMUMxMUNDQzgwQUE2MDkzNzAwREFEQjIwIC8qIERPTUhUTUxFbGVtZW50
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQkxQ0I0MjE0QzBBRjJCMkNBMDA4
NUFEOTEgLyogRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8sCi0JCQkJODU0MDc1ODQwQUQ2Q0YxNDAwNjIwQzU3IC8qIERPTUhUTUxFbWJlZEVsZW1l
bnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTQ0MUIwNTVDMENENzdBMkQw
MDdDMUYxOCAvKiBET01IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVk
IEhlYWRlcnMgKi8sCi0JCQkJODVCQTRDRTYwQUE2ODY1MTAwODgwNTJEIC8qIERPTUhUTUxGaWVs
ZFNldEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1RUNCRjBB
MEFBNzYyODkwMDU0NEYwQiAvKiBET01IVE1MRm9udEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovLAotCQkJCTFDMTFDQ0JCMEFBNjA5MzcwMERBREIyMCAvKiBET01IVE1MRm9y
bUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1REY4MTlEMEFB
NzdFN0UwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLywKLQkJCQk4NURGODE5RTBBQTc3RTdFMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1l
U2V0RWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODU3NURGODQw
QUE2MTMwRTAwRjVEQkI1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVk
IEhlYWRlcnMgKi8sCi0JCQkJODUxODNCNUEwQUE2OTI4NjAwRjE5RkEzIC8qIERPTUhUTUxIZWFk
aW5nRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVFQ0JGMEIw
QUE3NjI4OTAwNTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBI
ZWFkZXJzICovLAotCQkJCTg1NzVERjg1MEFBNjEzMEUwMEY1REJCNSAvKiBET01IVE1MSHRtbEVs
ZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1REY4MTlGMEFBNzdF
N0UwMDQ4NkFENyAvKiBET01IVE1MSUZyYW1lRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8sCi0JCQkJNDQxQjA1NUUwQ0Q3N0E0ODAwN0MxRjE4IC8qIERPTUhUTUxJRnJhbWVF
bGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVERjgx
MkUwQUE3NzhBMzAwNDg2QUQ3IC8qIERPTUhUTUxJbWFnZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovLAotCQkJCTg1RjMyQjQwMEFBNjQwMUEwMEZGMzE4NCAvKiBET01IVE1M
SW5wdXRFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk2NTk2RjJC
MzBCODczMURGMDAxMzI2QkQgLyogRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmggaW4gQ29w
eSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQkxQ0NBNzMyMjEwQURENDRBMDBGRDQ0MEQgLyog
RE9NSFRNTElucHV0RWxlbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
LAotCQkJCTg1QkE0Q0U3MEFBNjg2NTEwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVtZW50Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NUJBNENFODBBQTY4NjUxMDA4ODA1
MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
LAotCQkJCTg1QkE0RDJCMEFBNjg4OUYwMDg4MDUyRCAvKiBET01IVE1MTElFbGVtZW50LmggaW4g
Q29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NTc1REY4NjBBQTYxMzBFMDBGNURCQjUg
LyogRE9NSFRNTExpbmtFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJ
CQk4NUVDQkYwQzBBQTc2Mjg5MDA1NDRGMEIgLyogRE9NSFRNTE1hcEVsZW1lbnQuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCUJDNTE1NkU4MEMwM0I3NDEwMDhCQjBFRSAvKiBE
T01IVE1MTWFycXVlZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJ
CTJENDQ0Njk4MUM4NENDQ0YwMDI0Qzg4OSAvKiBET01IVE1MTWVkaWFFbGVtZW50LmggaW4gQ29w
eSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NUJBNEQyQzBBQTY4ODlGMDA4ODA1MkQgLyog
RE9NSFRNTE1lbnVFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4
NTc1REY4MzBBQTYxMkQ2MDBGNURCQjUgLyogRE9NSFRNTE1ldGFFbGVtZW50LmggaW4gQ29weSBH
ZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NUVDQkYwRDBBQTc2Mjg5MDA1NDRGMEIgLyogRE9N
SFRNTE1vZEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1REY4
MTJGMEFBNzc4QTMwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5oIGluIENvcHkgR2Vu
ZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJNDQxQjA1NjAwQ0Q3N0E2NTAwN0MxRjE4IC8qIERPTUhU
TUxPYmplY3RFbGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0J
CQkJODVCQTREMkQwQUE2ODg5RjAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1RjMyQjQxMEFBNjQwMUEwMEZGMzE4NCAv
KiBET01IVE1MT3B0R3JvdXBFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywK
LQkJCQk4NTQwNzU4NTBBRDZDRjE0MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTFDMTFDQ0I4MEFBNjA5MzcwMERBREIy
MCAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovLAotCQkJCTg1MTgzQjVCMEFBNjkyODYwMEYxOUZBMyAvKiBET01IVE1MUGFyYWdyYXBoRWxl
bWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVFQ0JGMEUwQUE3NjI4
OTAwNTQ0RjBCIC8qIERPTUhUTUxQYXJhbUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovLAotCQkJCTg1MTgzQjVDMEFBNjkyODYwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVu
dC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODUxODNCNUQwQUE2OTI4NjAw
RjE5RkEzIC8qIERPTUhUTUxRdW90ZUVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovLAotCQkJCTg1REY4MUEwMEFBNzdFN0UwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVu
dC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVGMzJCNDIwQUE2NDAxQTAw
RkYzMTg0IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLywKLQkJCQk4NTc1REY3RTBBQTYxMjdFMDBGNURCQjUgLyogRE9NSFRNTFN0eWxlRWxlbWVu
dC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVERjgyMkYwQUE3ODY2ODAw
NDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLywKLQkJCQk4NURGODIzMDBBQTc4NjY4MDA0ODZBRDcgLyogRE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1REY4MjMx
MEFBNzg2NjgwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDb2xFbGVtZW50LmggaW4gQ29weSBHZW5l
cmF0ZWQgSGVhZGVycyAqLywKLQkJCQk4NURGODI3NDBBQTc4QzczMDA0ODZBRDcgLyogRE9NSFRN
TFRhYmxlRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0JCQkJODVERjgy
MzIwQUE3ODY2ODAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTg1REY4MjMzMEFBNzg2NjgwMDQ4NkFENyAvKiBET01I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCi0J
CQkJMkQ0NDQ2OTkxQzg0Q0NENzAwMjRDODg5IC8qIERPTUhUTUxWaWRlb0VsZW1lbnQuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTg1REYzNDYyMEFBRkMyRDQwMEU1OUFFMyAv
KiBET01LZXlib2FyZEV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQky
RDQ0NDY5QjFDODRDRDA1MDAyNEM4ODkgLyogRE9NTWVkaWFFcnJvci5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8sCiAJCQkJODUwNjU3OUYwQUFCNEE4RTAwMkQxNUMwIC8qIERPTU1lZGlh
TGlzdC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCkBAIC04MjgzLDYgKzgxNDcsOSBA
QAogCQkxQTU4RTg2NDFEMTlENERGMDBDMEVBNzMgLyogUGF5bWVudFJlcXVlc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUE1OEU4NkIxRDE5RTQyRDAwQzBFQTczIC8qIFBheW1lbnRDb29y
ZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50
Q29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU4RTg2QzFE
MTlFNDJEMDBDMEVBNzMgLyogUGF5bWVudENvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBheW1lbnRDb29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTY3QkY5NjFENEZFNjQ1MDA0MTJBQzcgLyogRE9NSFRNTENhbnZhc0VsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENhbnZhc0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE2N0JGOTcxRDRGRTY0NTAwNDEy
QUM3IC8qIERPTUhUTUxDYW52YXNFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NSFRNTENhbnZhc0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFBNjdCRjk4MUQ0RkU2NDUwMDQxMkFDNyAvKiBET01IVE1MQ2FudmFzRWxl
bWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxD
YW52YXNFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE3
MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRlbnRpZmllclJlcC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkZW50aWZpZXJSZXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE3NTBEM0MwQTkwREUzNTAwMEZGMjE1IC8qIFRy
ZWVXYWxrZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRyZWVXYWxrZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTM2NSw4ICs5MjMyLDYgQEAKIAkJNDNGNkZEOTUx
M0JDRDBCMTAwMjI0MDUyIC8qIFNWR0FuaW1hdGVkSW50ZWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZEludGVnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MTUyOTJE
MEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NDI5QUFGQjBDQjg0RTg4MDA3NjQ3QzUgLyog
RE9NSFRNTEVtYmVkRWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUhUTUxFbWJlZEVsZW1lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ0MjlBQUZEMENCODRFQTUwMDc2NDdDNSAvKiBET01IVE1MSUZyYW1lRWxlbWVu
dFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxJRnJh
bWVFbGVtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDI5QUFG
RjBDQjg0RUMzMDA3NjQ3QzUgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT2JqZWN0RWxlbWVudFByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyOUFCMDcwQ0I4NEY4MTAwNzY0N0M1
IC8qIERPTVRleHRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01UZXh0RXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDJBQkNENTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5l
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c0xv
YWRlckNsaWVudENGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODk0
LDkgKzEwNzU5LDkgQEAKIAkJODUwODlDRDYwQTk4QzQyODAwQTI3NUFBIC8qIERPTUVudGl0eVJl
ZmVyZW5jZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01F
bnRpdHlSZWZlcmVuY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MEI0MUMw
MEFEOUU3RTcwMEE2RUQ0RiAvKiBET01Ob2RlSXRlcmF0b3JJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTm9kZUl0ZXJhdG9ySW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUwQjQxQzEwQUQ5RTdFNzAwQTZFRDRGIC8qIERPTVRy
ZWVXYWxrZXJJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
VHJlZVdhbGtlckludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MTgz
QjM4MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MQlJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MQlJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTg1MTgzQjM5MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MQlJFbGVtZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxCUkVs
ZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MTgzQjNBMEFBNjkyNjEw
MEYxOUZBMyAvKiBET01IVE1MSGVhZGluZ0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUhUTUxIZWFkaW5nRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTE4M0IzODBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEJSRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhU
TUxCUkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmlj
YXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MTgzQjM5MEFBNjky
NjEwMEYxOUZBMyAvKiBET01IVE1MQlJFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQlJFbGVtZW50Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUxODNCM0EwQUE2OTI2MTAwRjE5RkEzIC8qIERP
TUhUTUxIZWFkaW5nRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5k
aW5nID0gMDsgcGF0aCA9IERPTUhUTUxIZWFkaW5nRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKIAkJODUxODNCM0IwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxIZWFkaW5nRWxl
bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1M
SGVhZGluZ0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MTgzQjND
MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUxODNCM0QwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhU
TUxQYXJhZ3JhcGhFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTA5MjMsOCArMTA3ODgsOCBAQAogCQk4NTNCRjREQTBBQkI2QjU1MDA4NjQ3QkIg
LyogRE9NTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzUxRjBBRDZDNUZC
MDA2MjBDNTcgLyogRE9NRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
NDA3NTI1MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01Ob2RlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1NDA3NTY0MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MQXBwbGV0RWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEFwcGxldEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU0MDc1NjUwQUQ2Q0JGOTAwNjIw
QzU3IC8qIERPTUhUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUhUTUxFbWJlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODU0MDc1NjQwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEFw
cGxldEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmlj
YXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1NDA3NTY1MEFENkNC
RjkwMDYyMEM1NyAvKiBET01IVE1MRW1iZWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEVtYmVkRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4
Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhU
TUxPcHRpb25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01I
VE1MT3B0aW9uRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2
NzBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NDA3NTY4MEFENkNCRjkwMDYyMEM1NyAvKiBE
T01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDkzNyw3ICsxMDgwMiw3IEBACiAJCTg1NEZFNzJEMEEyMjk3QkUwMDU4
RDdBRCAvKiBUcmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRy
YXZlcnNhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRGRTcyRTBBMjI5N0JF
MDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVHJlZVdhbGtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUcmVlV2Fsa2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg1NTI0N0NEMEFEODUwQjgwMDEyMDkzQiAvKiBET01IVE1MQXBwbGV0RWxlbWVudEludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MQXBwbGV0RWxl
bWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1NTI0N0NEMEFE
ODUwQjgwMDEyMDkzQiAvKiBET01IVE1MQXBwbGV0RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEFwcGxldEVs
ZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU1MjQ3Q0UwQUQ4
NTBCODAwMTIwOTNCIC8qIERPTUhUTUxFbWJlZEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEVtYmVkRWxlbWVudEludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NTI2QzM1MEFCMEExN0UwMDAzMDJFQSAvKiBE
T01Ob2RlSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5v
ZGVJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTUyNkMzNjBBQjBB
MTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTU5vZGVJdGVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwOTk5LDcgKzEwODY0LDcgQEAKIAkJODU5ODlEQzgwQUNDOEJCRDAwQTBC
QzUxIC8qIERPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NT3ZlcmZsb3dFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1OTg5REM5MEFDQzhCQkQwMEEwQkM1MSAvKiBET01VSUV2ZW50SW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVVJRXZlbnRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTk4OURDQTBBQ0M4QkJEMDBBMEJD
NTEgLyogRE9NV2hlZWxFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01XaGVlbEV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODU5OTJFQjIwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEhlYWRFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUIyMEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSGVhZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01IVE1MSGVhZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7
IH07CiAJCTg1OTkyRUIzMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEhlYWRFbGVt
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTk5MkVCNDBBQTUwNjk1MDBB
QzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01IVE1MSHRtbEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODU5OTJFQjUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MSHRtbEVsZW1lbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTAwNywxMCArMTA4NzIsMTAgQEAK
IAkJODU5OTJFQjcwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MTGlua0VsZW1lbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1OTkyRUI4MEFBNTA2OTUwMEFDMDc4
NSAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MVGl0bGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg1OTkyRUI5MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxUaXRsZUVsZW1lbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OUE5QzNEMEFBNUUzQkQwMEI2OTRC
MiAvKiBET01IVE1MQmFzZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUhUTUxCYXNlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NTlBOUMzRTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxCYXNlRWxlbWVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5QTlDM0YwQUE1RTNCRDAwQjY5NEIyIC8q
IERPTUhUTUxCb2R5RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NSFRNTEJvZHlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OUE5
QzQwMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEJvZHlFbGVtZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTlBOUMzRDBBQTVFM0JEMDBCNjk0QjIgLyogRE9N
SFRNTEJhc2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NSFRNTEJhc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTlBOUMzRTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBE
T01IVE1MQmFzZUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VT
cGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTlBOUMz
RjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEJvZHlFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmll
ciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTlBOUM0MDBBQTVFM0JEMDBCNjk0QjIgLyog
RE9NSFRNTEJvZHlFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQm9keUVsZW1lbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NTlBOUM0MzBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MTWV0YUVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU5QTlDNDQwQUE1RTNCRDAw
QjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01IVE1MTWV0YUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1OUE5QzQ1MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MU3R5bGVFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTAzNywyMCArMTA5MDIsMjAg
QEAKIAkJODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50SW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVCNDk4RkEwQURCMzQwMjAwOTI1Q0JCIC8qIERPTU5v
ZGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTm9kZUlu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QjQ5OEZFMEFEQjM0ODEw
MDkyNUNCQiAvKiBET01TdHlsZVNoZWV0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVN0eWxlU2hlZXRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NUJBNENENTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxCdXR0b25FbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QkE0Q0Q2MEFBNjg2MUIwMDg4
MDUyRCAvKiBET01IVE1MQnV0dG9uRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01IVE1MQnV0dG9uRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODVCQTRDRDcwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxGaWVsZFNl
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxGaWVs
ZFNldEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVCQTRDRDUwQUE2
ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1QkE0Q0Q2MEFBNjg2MUIwMDg4MDUyRCAvKiBE
T01IVE1MQnV0dG9uRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2Rl
Lmxhbmcub2JqY3BwOyB9OworCQk4NUJBNENENzBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEZp
ZWxkU2V0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0g
MDsgcGF0aCA9IERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7
IH07CiAJCTg1QkE0Q0Q4MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MRmllbGRTZXRFbGVtZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxGaWVs
ZFNldEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QkE0Q0Q5MEFB
Njg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01IVE1MTGFiZWxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1QkE0Q0RBMEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxM
YWJlbEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QkE0Q0RCMEFB
Njg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGVnZW5kRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTExlZ2VuZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODVCQTRDREMwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMZWdlbmRF
bGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhU
TUxMZWdlbmRFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUJBNENG
RDBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QkE0Q0ZFMEFBNjg4NjgwMDg4MDUyRCAvKiBET01I
VE1MRGlyZWN0b3J5RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01IVE1MRGlyZWN0b3J5RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJODVCQTRDRkYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MRGl2RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUJBNEQwMDBBQTY4ODY4MDA4ODA1MkQgLyog
RE9NSFRNTERpdkVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRE9NSFRNTERpdkVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1QkE0RDAxMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MRExpc3RFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MRExpc3RFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QkE0RDAyMEFBNjg4NjgwMDg4MDUyRCAvKiBET01I
VE1MRExpc3RFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTUhUTUxETGlzdEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTg1QkE0Q0ZEMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MRGlyZWN0b3J5RWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxE
aXJlY3RvcnlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVj
aWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUJBNENGRTBB
QTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxEaXJl
Y3RvcnlFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVCQTRDRkYwQUE2
ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTERpdkVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1QkE0RDAwMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1M
RGl2RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gRE9NSFRNTERpdkVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OworCQk4NUJBNEQwMTBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERMaXN0RWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhU
TUxETGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNp
ZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1QkE0RDAyMEFB
Njg4NjgwMDg4MDUyRCAvKiBET01IVE1MRExpc3RFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MRExpc3RFbGVt
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklk
ZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODVCQTREMDMwQUE2ODg2ODAwODgw
NTJEIC8qIERPTUhUTUxMSUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUhUTUxMSUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVC
QTREMDQwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxMSUVsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTExJRWxlbWVudC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVCQTREMDUwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhU
TUxNZW51RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRN
TE1lbnVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTA1OSw5ICsx
MDkyNCw5IEBACiAJCTg1QkE0RDA4MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxP
TGlzdEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QkE0RDA5MEFB
Njg4NjgwMDg4MDUyRCAvKiBET01IVE1MVUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01IVE1MVUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1QkE0RDBBMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MVUxpc3RFbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxV
TGlzdEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QkNCQzExMEFC
QkE4N0QwMDM4MTE2MCAvKiBET01IVE1MRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUhUTUxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4NUJDQkMxMTBBQkJBODdEMDAzODExNjAgLyogRE9NSFRNTERvY3VtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTERvY3Vt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUJDQkMxMjBBQkJBODdEMDAzODEx
NjAgLyogRE9NSFRNTERvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERPTUhUTUxEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODVDMDUwQjgwQUQ4NEY1RTAwNTUzMkU3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxBcHBsZXRFbGVt
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUMwNTBCODBBRDg0RjVFMDA1
NTMyRTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxBcHBsZXRFbGVtZW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZp
ZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODVDMDUwQjkwQUQ4NEY1RTAwNTUzMkU3IC8q
IERPTUhUTUxFbWJlZEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRE9NSFRNTEVtYmVkRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODVDNTZDNUIwQUE4N0FGRDAwRDk1NzU1IC8qIE1lZGlhTGlzdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1QzU2Q0ExMEFBODlBQjQwMEQ5NTc1NSAvKiBDU1NTdHlsZVJ1bGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTEwODcsMjUgKzEwOTUyLDI1IEBACiAJCTg1RDJBRDY3MEFCMUE0MEEwMEMzMTNF
QSAvKiBET01FdmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01FdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RDM4
OUIwMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01BdHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RDM4
OUIxMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUF0dHIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg1REYyQzEwMEFBMzQxRjYwMEFENjRDNSAvKiBET01IVE1MRm9ybUVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxGb3JtRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NURGMkMxMDBBQTM0MUY2MDBBRDY0QzUgLyogRE9N
SFRNTEZvcm1FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NSFRNTEZvcm1FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OwogCQk4NURGMkMxMTBBQTM0MUY2MDBBRDY0QzUgLyogRE9NSFRNTEZvcm1FbGVtZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxGb3JtRWxlbWVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVERjJFRUIwQUEzODdDQjAwQUQ2
NEM1IC8qIERPTUhUTUxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01IVE1MRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NURGMkVF
QjBBQTM4N0NCMDBBRDY0QzUgLyogRE9NSFRNTEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29k
ZS5sYW5nLm9iamNwcDsgfTsKIAkJODVERjJFRUMwQUEzODdDQjAwQUQ2NEM1IC8qIERPTUhUTUxF
bGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhU
TUxFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkY2OTBBQTND
NzQzMDBBRDY0QzUgLyogSFRNTENvbGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBIVE1MQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1REYy
RjhDMEFBM0M4ODEwMEFENjRDNSAvKiBET01IVE1MQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTENvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODVERjJGOEQwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0
aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxD
b2xsZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NURGMkY4QzBBQTND
ODgxMDBBRDY0QzUgLyogRE9NSFRNTENvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29k
ZS5sYW5nLm9iamNwcDsgfTsKKwkJODVERjJGOEQwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxD
b2xsZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01IVE1MQ29sbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7
IH07CiAJCTg1REYyRjkyMEFBM0M5QjYwMEFENjRDNSAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkY5OTBBQTNDQUU1MDBBRDY0QzUgLyog
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODVERjJGOUEwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MT3B0
aW9uc0NvbGxlY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1REY4MTIx
MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEFuY2hvckVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODVERjgxMjIwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNo
b3JFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUhUTUxBbmNob3JFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NURG
ODEyMTBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTEFuY2hvckVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQW5jaG9yRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklk
ZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVERjgxMjIwQUE3Nzg3MjAwNDg2
QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQW5jaG9yRWxlbWVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1REY4MTIzMEFBNzc4NzIwMDQ4NkFENyAvKiBE
T01IVE1MSW1hZ2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01IVE1MSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1REY4
MTI0MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VFbGVtZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxJbWFnZUVsZW1lbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1REY4MTI1MEFBNzc4NzIwMDQ4NkFENyAvKiBE
T01IVE1MT2JqZWN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NSFRNTE9iamVjdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVE
RjgxMjYwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxPYmplY3RFbGVtZW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NURGODE4RDBBQTc3RTRCMDA0ODZBRDcg
LyogRE9NSFRNTEZyYW1lRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NSFRNTEZyYW1lRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
NURGODE4RDBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxGcmFtZUVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1REY4MThFMEFBNzdFNEIwMDQ4
NkFENyAvKiBET01IVE1MRnJhbWVFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERPTUhUTUxGcmFtZUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTg1REY4MThGMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVTZXRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MRnJhbWVT
ZXRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1REY4MThGMEFBNzdF
NEIwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVTZXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZp
ZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODVERjgxOTAwQUE3N0U0QjAwNDg2QUQ3IC8q
IERPTUhUTUxGcmFtZVNldEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODVERjgxOTEwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxJRnJhbWVFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MSUZyYW1lRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGODE5MjBBQTc3RTRCMDA0
ODZBRDcgLyogRE9NSFRNTElGcmFtZUVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTElGcmFtZUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTEzNywxNiArMTEwMDIsMTYgQEAKIAkJODVFNzExNDkwQUM1RDUz
NDAwNTMyNzBGIC8qIERPTUVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg1RTcxMTRBMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01FbnRpdHlJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRW50aXR5SW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVFNzExNEIwQUM1RDUzNDAwNTMyNzBGIC8qIERP
TUVudGl0eVJlZmVyZW5jZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01FbnRpdHlSZWZlcmVuY2VJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk4NUU3MTE0QzBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEFuY2hvckVsZW1lbnRJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEFuY2hv
ckVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUU3MTE0
RDBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEFyZWFFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxBcmVhRWxlbWVudEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RTcxMTRFMEFDNUQ1MzQwMDUzMjcwRiAv
KiBET01IVE1MQmFzZUVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NSFRNTEJhc2VFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJODVFNzExNEYwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxCYXNlRm9udEVs
ZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRN
TEJhc2VGb250RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1RTcxMTUwMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQm9keUVsZW1lbnRJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEJvZHlFbGVtZW50SW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVFNzExNTEwQUM1RDUzNDAw
NTMyNzBGIC8qIERPTUhUTUxCUkVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSFRNTEJSRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg1RTcxMTUyMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQnV0dG9u
RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01I
VE1MQnV0dG9uRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1RTcxMTUzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MQ29sbGVjdGlvbkludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RTcxMTU0MEFDNUQ1MzQwMDUz
MjcwRiAvKiBET01IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RTcxMTU1MEFDNUQ1MzQwMDUzMjcwRiAvKiBE
T01IVE1MRGl2RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MRGl2RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1RTcxMTRDMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQW5jaG9yRWxlbWVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NSFRNTEFuY2hvckVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsg
fTsKKwkJODVFNzExNEQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxBcmVhRWxlbWVudEludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NSFRNTEFyZWFFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJ
CTg1RTcxMTRFMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQmFzZUVsZW1lbnRJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhU
TUxCYXNlRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUU3
MTE0RjBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRN
TEJhc2VGb250RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NUU3MTE1MDBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEJvZHlFbGVtZW50SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1M
Qm9keUVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVFNzEx
NTEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxCUkVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxCUkVsZW1l
bnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVFNzExNTIwQUM1RDUz
NDAwNTMyNzBGIC8qIERPTUhUTUxCdXR0b25FbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQnV0dG9uRWxlbWVu
dEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0
aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUU3MTE1MzBBQzVENTM0
MDA1MzI3MEYgLyogRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxDb2xsZWN0aW9uSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVu
dGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1RTcxMTU0MEFDNUQ1MzQwMDUzMjcw
RiAvKiBET01IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTERpcmVjdG9yeUVsZW1lbnRJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlv
bklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVFNzExNTUwQUM1RDUzNDAw
NTMyNzBGIC8qIERPTUhUTUxEaXZFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MRGl2RWxlbWVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUU3MTE1NjBBQzVENTM0MDA1MzI3MEYg
LyogRE9NSFRNTERMaXN0RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01IVE1MRExpc3RFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODVFNzExNTcwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxEb2N1bWVu
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MRG9j
dW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE1ODBB
QzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTEyMDQsMTMgKzExMDY5LDEzIEBACiAJCTg1RTlFMDlGMEFC
M0EwQzcwMDA2OUNEMCAvKiBET01YUGF0aFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NWFBhdGhSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODVFOUUwQTAwQUIzQTBDNzAwMDY5Q0QwIC8qIERPTVhQYXRoUmVzdWx0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVhQYXRoUmVzdWx0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQgLyogTGFu
Z3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhbmd1YWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RUNCRUREMEFBNzYyNjgwMDU0NEYwQiAvKiBE
T01IVE1MQXJlYUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUhUTUxBcmVhRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUVDQkVE
RTBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEFyZWFFbGVtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxBcmVhRWxlbWVudC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVFQ0JFREYwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhU
TUxCYXNlRm9udEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUhUTUxCYXNlRm9udEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVF
Q0JFRTAwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxCYXNlRm9udEVsZW1lbnQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEJhc2VGb250RWxlbWVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVFQ0JFRTEwQUE3NjI2ODAwNTQ0
RjBCIC8qIERPTUhUTUxGb250RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NSFRNTEZvbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTg1RUNCRUREMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MQXJlYUVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQXJlYUVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1RUNCRURFMEFBNzYyNjgwMDU0
NEYwQiAvKiBET01IVE1MQXJlYUVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUhUTUxBcmVhRWxlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0g
eGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1RUNCRURGMEFBNzYyNjgwMDU0NEYwQiAvKiBET01I
VE1MQmFzZUZvbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gRE9NSFRNTEJhc2VGb250RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODVFQ0JFRTAwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxCYXNlRm9udEVs
ZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0g
MDsgcGF0aCA9IERPTUhUTUxCYXNlRm9udEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OworCQk4NUVDQkVFMTBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEZvbnRFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRN
TEZvbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUVDQkVFMjBBQTc2
MjY4MDA1NDRGMEIgLyogRE9NSFRNTEZvbnRFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxGb250RWxlbWVudC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODVFQ0JFRTMwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxIUkVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxIUkVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVFQ0JFRTMwQUE3NjI2ODAwNTQ0
RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGlu
ZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MSFJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2Jq
Y3BwOyB9OwogCQk4NUVDQkVFNDBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEhSRWxlbWVudC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MSFJFbGVt
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUVDQkVFNTBBQTc2MjY4MDA1
NDRGMEIgLyogRE9NSFRNTE1hcEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUhUTUxNYXBFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg1RUNCRUU2MEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MTWFwRWxlbWVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MTWFwRWxlbWVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTI4LDcgKzExMzkzLDYgQEAKIAkJOTND
QTRDQTIwOURGOTNGQTAwREY4Njc3IC8qIHN2Zy5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
c3ZnLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNDQ0YwMjYwQUY2QzUyOTAw
MDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmF2aWdhdGlvbkFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0NDRjA1RjBBRjZDQTc2MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0aW9uQWN0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNEM0MxNTgwRjk3QTlENzAwNTNDMDEzIC8qIERPTUhU
TUxDYW52YXNFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhU
TUxDYW52YXNFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNC
MERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMy
NCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU2OSw4ICsxMTQzMyw2IEBACiAJCTkzRjhCMzA3MEEz
MDBGRUEwMEY2MUFCOCAvKiBnZW5lcmF0ZS1iaW5kaW5ncy5wbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnBlcmw7IG5hbWUgPSAiZ2VuZXJhdGUtYmluZGluZ3MucGwiOyBwYXRoID0gInNjcmlwdHMv
Z2VuZXJhdGUtYmluZGluZ3MucGwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmFkaW9CdXR0b25Hcm91cHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGOTI1NDIwRjdFRjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3Jv
dXBzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhZGlvQnV0dG9u
R3JvdXBzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGOUI2NTQwQkEwRjM1
RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTENhbnZhc0VsZW1lbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2Fu
dmFzRWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNGOUI2REUwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29tbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDREFUQVNlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIwMzksOSArMTE5MDEsNiBA
QAogCQlBNDA5Qzk4MzExNkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlQ
cm9ncmVzc0luZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNDIyNkU1
OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE0MjI2RTVCMTE2M0Q2OTUwMDhCODM5NyAvKiBK
U0hUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNIVE1MUHJvZ3Jlc3NFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE0
MjI2RTkyMTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTQyMjZFOTMxMTYzRDczQTAwOEI4Mzk3IC8qIERP
TUhUTUxQcm9ncmVzc0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBNDIyNkU5ODExNjNEN0NDMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVu
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxQcm9n
cmVzc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNDIy
NkVBNTExNjNEODREMDA4QjgzOTcgLyogSFRNTFByb2dyZXNzRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTFByb2dyZXNzRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE0M0JGNTk2MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNDNCRjU5NzExNDky
OTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MUHJvZ3Jlc3NFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMjExMCw5ICsxMTk2OSw2IEBACiAJCUE1RjZFMTZDMTMyRUQ0NkUwMDhFREFF
MyAvKiBBdXRvY2FwaXRhbGl6ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBdXRvY2FwaXRhbGl6ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1
RjhDRDEwMUQxOEVFQzMwMEFDMEU1MyAvKiBQYWdlSGVhcEFnZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VIZWFwQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNUY4Q0QxMTFEMThFRUMzMDBBQzBFNTMgLyogUGFnZUhlYXBBZ2Vu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlSGVhcEFnZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE2MTQ4QTYxMTJFNDFEM0EwMDQ0QTc4NCAvKiBE
T01IVE1MS2V5Z2VuRWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUhUTUxLZXlnZW5FbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTYxNDhBNjUxMkU0MUQ5NDAwNDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxLZXlnZW5FbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE2MTQ4QTY2MTJFNDFEOTQwMDQ0
QTc4NCAvKiBET01IVE1MS2V5Z2VuRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERPTUhUTUxLZXlnZW5FbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNjE0OEE3NjEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxLZXln
ZW5FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTYxNDhBNzcxMkU0
MUUzQjAwNDRBNzg0IC8qIEpTSFRNTEtleWdlbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNIVE1MS2V5Z2VuRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNjE0OEE3RjEyRTQxRUQxMDA0NEE3ODQgLyogSFRNTEtleWdlbkVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxLZXlnZW5FbGVtZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDg5LDkgKzE0MzQ1LDYgQEAKIAkJRDM1OUQ3ODYx
MjlDQTI3MTAwMDZFNUQyIC8qIEhUTUxEZXRhaWxzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGV0YWlsc0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEMzU5RDc4NzEyOUNBMjcxMDAwNkU1RDIgLyogSFRNTERldGFp
bHNFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEZXRhaWxz
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMzU5RDc4ODEyOUNBMjcx
MDAwNkU1RDIgLyogSFRNTERldGFpbHNFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBIVE1MRGV0YWlsc0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlE
MzU5RDc4RTEyOUNBM0MwMDAwNkU1RDIgLyogRE9NSFRNTERldGFpbHNFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxEZXRhaWxzRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEMzU5RDc4RjEyOUNBM0MwMDAwNkU1RDIgLyogRE9N
SFRNTERldGFpbHNFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRE9NSFRNTERldGFpbHNFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlEMzU5RDc5MDEyOUNBM0MwMDAwNkU1RDIgLyogRE9NSFRNTERldGFpbHNFbGVtZW50SW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTERldGFpbHNF
bGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM1OUQ4QkMx
MjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTERldGFpbHNFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDM1OUQ4QkQxMjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRN
TERldGFpbHNFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRN
TERldGFpbHNFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQTk0QTMx
MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNTA3OSw5ICsxNDkzMiw2IEBACiAJCUY1QzA0MUQ3MEZGQ0E3Q0UwMDgz
OUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ5MEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
RGF0YUxpc3RFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjVDMDQx
REUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGNUMwNDFERjBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRN
TERhdGFMaXN0RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTUhUTUxEYXRhTGlzdEVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUY1QzA0MUUwMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50SW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTERhdGFMaXN0
RWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUUx
MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRTIwRkZDQTk2RDAwODM5RDRBIC8qIEpT
SFRNTERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0hUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVF
MEM2NTkxNjQzQzQyQzAwRDZDQjY5IC8qIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2Mzk2LDYgKzE2MjQ2LDE3NiBAQAogCQkxQUQyRDE1QzFENEZENkIyMDBCN0RFMzYgLyog
SFRNTCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJODVE
RjgxMjEwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50LmggKi8sCisJCQkJ
ODVERjgxMjIwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50Lm1tICovLAor
CQkJCTg1RTcxMTRDMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQW5jaG9yRWxlbWVudEludGVy
bmFsLmggKi8sCisJCQkJODU0MDc1NjQwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRF
bGVtZW50LmggKi8sCisJCQkJODVDMDUwQjgwQUQ4NEY1RTAwNTUzMkU3IC8qIERPTUhUTUxBcHBs
ZXRFbGVtZW50Lm1tICovLAorCQkJCTg1NTI0N0NEMEFEODUwQjgwMDEyMDkzQiAvKiBET01IVE1M
QXBwbGV0RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVFQ0JFREQwQUE3NjI2ODAwNTQ0RjBC
IC8qIERPTUhUTUxBcmVhRWxlbWVudC5oICovLAorCQkJCTg1RUNCRURFMEFBNzYyNjgwMDU0NEYw
QiAvKiBET01IVE1MQXJlYUVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNEQwQUM1RDUzNDAwNTMy
NzBGIC8qIERPTUhUTUxBcmVhRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODU5QTlDM0QwQUE1
RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICovLAorCQkJCTg1OUE5QzNFMEFB
NUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNEUw
QUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxCYXNlRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJ
ODVFQ0JFREYwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxCYXNlRm9udEVsZW1lbnQuaCAqLywK
KwkJCQk4NUVDQkVFMDBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEJhc2VGb250RWxlbWVudC5t
bSAqLywKKwkJCQk4NUU3MTE0RjBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEJhc2VGb250RWxl
bWVudEludGVybmFsLmggKi8sCisJCQkJODU5QTlDM0YwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhU
TUxCb2R5RWxlbWVudC5oICovLAorCQkJCTg1OUE5QzQwMEFBNUUzQkQwMEI2OTRCMiAvKiBET01I
VE1MQm9keUVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNTAwQUM1RDUzNDAwNTMyNzBGIC8qIERP
TUhUTUxCb2R5RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODUxODNCMzgwQUE2OTI2MTAwRjE5
RkEzIC8qIERPTUhUTUxCUkVsZW1lbnQuaCAqLywKKwkJCQk4NTE4M0IzOTBBQTY5MjYxMDBGMTlG
QTMgLyogRE9NSFRNTEJSRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE1MTBBQzVENTM0MDA1MzI3
MEYgLyogRE9NSFRNTEJSRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVCQTRDRDUwQUE2ODYx
QjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggKi8sCisJCQkJODVCQTRDRDYwQUE2
ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50Lm1tICovLAorCQkJCTg1RTcxMTUy
MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQnV0dG9uRWxlbWVudEludGVybmFsLmggKi8sCisJ
CQkJMUE2N0JGOTYxRDRGRTY0NTAwNDEyQUM3IC8qIERPTUhUTUxDYW52YXNFbGVtZW50LmggKi8s
CisJCQkJMUE2N0JGOTcxRDRGRTY0NTAwNDEyQUM3IC8qIERPTUhUTUxDYW52YXNFbGVtZW50Lm1t
ICovLAorCQkJCTFBNjdCRjk4MUQ0RkU2NDUwMDQxMkFDNyAvKiBET01IVE1MQ2FudmFzRWxlbWVu
dEludGVybmFsLmggKi8sCisJCQkJODVERjJGOEMwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxD
b2xsZWN0aW9uLmggKi8sCisJCQkJODVERjJGOEQwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxD
b2xsZWN0aW9uLm1tICovLAorCQkJCTg1RTcxMTUzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1M
Q29sbGVjdGlvbkludGVybmFsLmggKi8sCisJCQkJODVCQTRDRkQwQUE2ODg2ODAwODgwNTJEIC8q
IERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmggKi8sCisJCQkJODVCQTRDRkUwQUE2ODg2ODAwODgw
NTJEIC8qIERPTUhUTUxEaXJlY3RvcnlFbGVtZW50Lm1tICovLAorCQkJCTg1RTcxMTU0MEFDNUQ1
MzQwMDUzMjcwRiAvKiBET01IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJ
ODVCQTRDRkYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50LmggKi8sCisJCQkJ
ODVCQTREMDAwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXZFbGVtZW50Lm1tICovLAorCQkJ
CTg1RTcxMTU1MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MRGl2RWxlbWVudEludGVybmFsLmgg
Ki8sCisJCQkJODVCQTREMDEwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxETGlzdEVsZW1lbnQu
aCAqLywKKwkJCQk4NUJBNEQwMjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERMaXN0RWxlbWVu
dC5tbSAqLywKKwkJCQk4NUU3MTE1NjBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTERMaXN0RWxl
bWVudEludGVybmFsLmggKi8sCisJCQkJODVCQ0JDMTEwQUJCQTg3RDAwMzgxMTYwIC8qIERPTUhU
TUxEb2N1bWVudC5oICovLAorCQkJCTg1QkNCQzEyMEFCQkE4N0QwMDM4MTE2MCAvKiBET01IVE1M
RG9jdW1lbnQubW0gKi8sCisJCQkJODVFNzExNTcwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxE
b2N1bWVudEludGVybmFsLmggKi8sCisJCQkJODVERjJFRUIwQUEzODdDQjAwQUQ2NEM1IC8qIERP
TUhUTUxFbGVtZW50LmggKi8sCisJCQkJODVERjJFRUMwQUEzODdDQjAwQUQ2NEM1IC8qIERPTUhU
TUxFbGVtZW50Lm1tICovLAorCQkJCTg1RTcxMTU4MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1M
RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODU0MDc1NjUwQUQ2Q0JGOTAwNjIwQzU3IC8qIERP
TUhUTUxFbWJlZEVsZW1lbnQuaCAqLywKKwkJCQk4NUMwNTBCOTBBRDg0RjVFMDA1NTMyRTcgLyog
RE9NSFRNTEVtYmVkRWxlbWVudC5tbSAqLywKKwkJCQk4NTUyNDdDRTBBRDg1MEI4MDAxMjA5M0Ig
LyogRE9NSFRNTEVtYmVkRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVCQTRDRDcwQUE2ODYx
QjAwODgwNTJEIC8qIERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaCAqLywKKwkJCQk4NUJBNENEODBB
QTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5tbSAqLywKKwkJCQk4NUU3
MTE1OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudEludGVybmFsLmgg
Ki8sCisJCQkJODVFQ0JFRTEwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxGb250RWxlbWVudC5o
ICovLAorCQkJCTg1RUNCRUUyMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MRm9udEVsZW1lbnQu
bW0gKi8sCisJCQkJODVFNzExNUEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb250RWxlbWVu
dEludGVybmFsLmggKi8sCisJCQkJODVERjJDMTAwQUEzNDFGNjAwQUQ2NEM1IC8qIERPTUhUTUxG
b3JtRWxlbWVudC5oICovLAorCQkJCTg1REYyQzExMEFBMzQxRjYwMEFENjRDNSAvKiBET01IVE1M
Rm9ybUVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNUIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhU
TUxGb3JtRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVERjgxOEQwQUE3N0U0QjAwNDg2QUQ3
IC8qIERPTUhUTUxGcmFtZUVsZW1lbnQuaCAqLywKKwkJCQk4NURGODE4RTBBQTc3RTRCMDA0ODZB
RDcgLyogRE9NSFRNTEZyYW1lRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE1QzBBQzVENTM0MDA1
MzI3MEYgLyogRE9NSFRNTEZyYW1lRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVERjgxOEYw
QUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaCAqLywKKwkJCQk4NURG
ODE5MDBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5tbSAqLywKKwkJ
CQk4NUU3MTE1RDBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudEludGVy
bmFsLmggKi8sCisJCQkJODU5OTJFQjIwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxl
bWVudC5oICovLAorCQkJCTg1OTkyRUIzMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVs
ZW1lbnQubW0gKi8sCisJCQkJODVFNzExNUUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIZWFk
RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODUxODNCM0EwQUE2OTI2MTAwRjE5RkEzIC8qIERP
TUhUTUxIZWFkaW5nRWxlbWVudC5oICovLAorCQkJCTg1MTgzQjNCMEFBNjkyNjEwMEYxOUZBMyAv
KiBET01IVE1MSGVhZGluZ0VsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNUYwQUM1RDUzNTAwNTMy
NzBGIC8qIERPTUhUTUxIZWFkaW5nRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVFQ0JFRTMw
QUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQuaCAqLywKKwkJCQk4NUVDQkVFNDBB
QTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEhSRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE2MDBB
QzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEhSRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODU5
OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5oICovLAorCQkJCTg1
OTkyRUI1MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQubW0gKi8sCisJCQkJ
ODVFNzExNjEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIdG1sRWxlbWVudEludGVybmFsLmgg
Ki8sCisJCQkJODVERjgxOTEwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxJRnJhbWVFbGVtZW50
LmggKi8sCisJCQkJODVERjgxOTIwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxJRnJhbWVFbGVt
ZW50Lm1tICovLAorCQkJCTg1RTcxMTYyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSUZyYW1l
RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVERjgxMjMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxJbWFnZUVsZW1lbnQuaCAqLywKKwkJCQk4NURGODEyNDBBQTc3ODcyMDA0ODZBRDcgLyog
RE9NSFRNTEltYWdlRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE2MzBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTEltYWdlRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVGMzJBRTQwQUE2M0I4
NzAwRkYzMTg0IC8qIERPTUhUTUxJbnB1dEVsZW1lbnQuaCAqLywKKwkJCQk4NUYzMkFFNTBBQTYz
Qjg3MDBGRjMxODQgLyogRE9NSFRNTElucHV0RWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE2NDBB
QzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJ
MUNDQTczMjExMEFERDQzRTAwRkQ0NDBEIC8qIERPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgg
Ki8sCisJCQkJODVCQTRDRDkwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMYWJlbEVsZW1lbnQu
aCAqLywKKwkJCQk4NUJBNENEQTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTExhYmVsRWxlbWVu
dC5tbSAqLywKKwkJCQk4NUU3MTE2NjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTExhYmVsRWxl
bWVudEludGVybmFsLmggKi8sCisJCQkJODVCQTRDREIwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhU
TUxMZWdlbmRFbGVtZW50LmggKi8sCisJCQkJODVCQTRDREMwQUE2ODYxQjAwODgwNTJEIC8qIERP
TUhUTUxMZWdlbmRFbGVtZW50Lm1tICovLAorCQkJCTg1RTcxMTY3MEFDNUQ1MzUwMDUzMjcwRiAv
KiBET01IVE1MTGVnZW5kRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVCQTREMDMwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxMSUVsZW1lbnQuaCAqLywKKwkJCQk4NUJBNEQwNDBBQTY4ODY4
MDA4ODA1MkQgLyogRE9NSFRNTExJRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE2ODBBQzVENTM1
MDA1MzI3MEYgLyogRE9NSFRNTExJRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODU5OTJFQjYw
QUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oICovLAorCQkJCTg1OTkyRUI3
MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MTGlua0VsZW1lbnQubW0gKi8sCisJCQkJODVFNzEx
NjkwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxMaW5rRWxlbWVudEludGVybmFsLmggKi8sCisJ
CQkJODVFQ0JFRTUwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNYXBFbGVtZW50LmggKi8sCisJ
CQkJODVFQ0JFRTYwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNYXBFbGVtZW50Lm1tICovLAor
CQkJCTg1RTcxMTZBMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWFwRWxlbWVudEludGVybmFs
LmggKi8sCisJCQkJQkM1MTU2RTUwQzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxl
bWVudC5oICovLAorCQkJCUJDNTE1NkU2MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFycXVl
ZUVsZW1lbnQubW0gKi8sCisJCQkJQkM1MTU2RTcwQzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxN
YXJxdWVlRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJMkRFQzY2NEUxQzgyQ0ZGNjAwOTk4NDZB
IC8qIERPTUhUTUxNZWRpYUVsZW1lbnQuaCAqLywKKwkJCQkyREVDNjY0RjFDODJDRkY2MDA5OTg0
NkEgLyogRE9NSFRNTE1lZGlhRWxlbWVudC5tbSAqLywKKwkJCQkyREVDNjY1MDFDODJEMDA4MDA5
OTg0NkEgLyogRE9NSFRNTE1lZGlhRWxlbWVudEludGVybmFsLmggKi8sCisJCQkJODVCQTREMDUw
QUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxNZW51RWxlbWVudC5oICovLAorCQkJCTg1QkE0RDA2
MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQubW0gKi8sCisJCQkJODVFNzEx
NkIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxNZW51RWxlbWVudEludGVybmFsLmggKi8sCisJ
CQkJODU5QTlDNDMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oICovLAor
CQkJCTg1OUE5QzQ0MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1lbnQubW0gKi8s
CisJCQkJODVFNzExNkMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxNZXRhRWxlbWVudEludGVy
bmFsLmggKi8sCisJCQkJODVFQ0JFRTcwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50LmggKi8sCisJCQkJODVFQ0JFRTgwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50Lm1tICovLAorCQkJCTg1RTcxMTZEMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTW9kRWxl
bWVudEludGVybmFsLmggKi8sCisJCQkJODVERjgxMjUwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhU
TUxPYmplY3RFbGVtZW50LmggKi8sCisJCQkJODVERjgxMjYwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50Lm1tICovLAorCQkJCTg1RTcxMTZFMEFDNUQ1MzUwMDUzMjcwRiAv
KiBET01IVE1MT2JqZWN0RWxlbWVudEludGVybmFsLmggKi8sCisJCQkJNDQyOUFBRkYwQ0I4NEVD
MzAwNzY0N0M1IC8qIERPTUhUTUxPYmplY3RFbGVtZW50UHJpdmF0ZS5oICovLAorCQkJCTg1QkE0
RDA3MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggKi8sCisJCQkJODVC
QTREMDgwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gKi8sCisJCQkJ
ODVFNzExNkYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPTGlzdEVsZW1lbnRJbnRlcm5hbC5o
ICovLAorCQkJCTg1RjMyQUU2MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVt
ZW50LmggKi8sCisJCQkJODVGMzJBRTcwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91
cEVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNzAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxP
cHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1NDA3NTY2MEFENkNCRjkwMDYyMEM1
NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5oICovLAorCQkJCTg1NDA3NTY3MEFENkNCRjkwMDYy
MEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSAqLywKKwkJCQk4NTQwNzU2ODBBRDZDQkY5
MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1REYy
Rjk5MEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLywKKwkJ
CQk4NURGMkY5QTBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1t
ICovLAorCQkJCTg1RTcxMTcxMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT3B0aW9uc0NvbGxl
Y3Rpb25JbnRlcm5hbC5oICovLAorCQkJCTg1MTgzQjNDMEFBNjkyNjEwMEYxOUZBMyAvKiBET01I
VE1MUGFyYWdyYXBoRWxlbWVudC5oICovLAorCQkJCTg1MTgzQjNEMEFBNjkyNjEwMEYxOUZBMyAv
KiBET01IVE1MUGFyYWdyYXBoRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE3MjBBQzVENTM1MDA1
MzI3MEYgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1RUNC
RUU5MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1FbGVtZW50LmggKi8sCisJCQkJODVF
Q0JFRUEwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxQYXJhbUVsZW1lbnQubW0gKi8sCisJCQkJ
ODVFNzExNzMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5o
ICovLAorCQkJCTg1MTgzQjNFMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVudC5o
ICovLAorCQkJCTg1MTgzQjNGMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVudC5t
bSAqLywKKwkJCQk4NUU3MTE3NDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFByZUVsZW1lbnRJ
bnRlcm5hbC5oICovLAorCQkJCTg1MTgzQjQwMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUXVv
dGVFbGVtZW50LmggKi8sCisJCQkJODUxODNCNDEwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxR
dW90ZUVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExNzUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhU
TUxRdW90ZUVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1REY4MTkzMEFBNzdFNEIwMDQ4NkFE
NyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5oICovLAorCQkJCTg1REY4MTk0MEFBNzdFNEIwMDQ4
NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE3NjBBQzVENTM1
MDA1MzI3MEYgLyogRE9NSFRNTFNjcmlwdEVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1RjMy
QUU4MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2VsZWN0RWxlbWVudC5oICovLAorCQkJCTg1
RjMyQUU5MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2VsZWN0RWxlbWVudC5tbSAqLywKKwkJ
CQk4NUU3MTE3NzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFNlbGVjdEVsZW1lbnRJbnRlcm5h
bC5oICovLAorCQkJCTg1OUE5QzQ1MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVt
ZW50LmggKi8sCisJCQkJODU5QTlDNDYwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxTdHlsZUVs
ZW1lbnQubW0gKi8sCisJCQkJODVFNzExNzgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTdHls
ZUVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1REY4MjEzMEFBNzg0OUUwMDQ4NkFENyAvKiBE
T01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oICovLAorCQkJCTg1REY4MjE0MEFBNzg0OUUwMDQ4
NkFENyAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE3OTBB
QzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRJbnRlcm5hbC5oICov
LAorCQkJCTg1REY4MjE1MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDZWxsRWxlbWVu
dC5oICovLAorCQkJCTg1REY4MjE2MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDZWxs
RWxlbWVudC5tbSAqLywKKwkJCQk4NUU3MTE3QTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1REY4MjE3MEFBNzg0OUUwMDQ4NkFE
NyAvKiBET01IVE1MVGFibGVDb2xFbGVtZW50LmggKi8sCisJCQkJODVERjgyMTgwQUE3ODQ5RTAw
NDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnQubW0gKi8sCisJCQkJODVFNzExN0IwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJ
CTg1REY4MjZFMEFBNzhCOEEwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50LmggKi8sCisJ
CQkJODVERjgyNkYwQUE3OEI4QTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUVsZW1lbnQubW0gKi8s
CisJCQkJODVFNzExN0MwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZUVsZW1lbnRJbnRl
cm5hbC5oICovLAorCQkJCTg1REY4MjE5MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVS
b3dFbGVtZW50LmggKi8sCisJCQkJODVERjgyMUEwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxU
YWJsZVJvd0VsZW1lbnQubW0gKi8sCisJCQkJODVFNzExN0QwQUM1RDUzNTAwNTMyNzBGIC8qIERP
TUhUTUxUYWJsZVJvd0VsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTg1REY4MjFCMEFBNzg0OUUw
MDQ4NkFENyAvKiBET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oICovLAorCQkJCTg1REY4MjFD
MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5tbSAqLywKKwkJ
CQk4NUU3MTE3RTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRJ
bnRlcm5hbC5oICovLAogCQkJCTkzQUFDOEE2MUQ0RDdFNTQwMDkwOTc5MSAvKiBET01IVE1MVGV4
dEFyZWFFbGVtZW50LmggKi8sCiAJCQkJOTNBQUM4QTcxRDREN0U1NDAwOTA5NzkxIC8qIERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQubW0gKi8sCiAJCQkJOTNBQUM4QUExRDREN0Y2MzAwOTA5NzkxIC8q
IERPTUhUTUxUZXh0QXJlYUVsZW1lbnRJbnRlcm5hbC5oICovLApAQCAtMTY0MDYsNiArMTY0MjYs
OSBAQAogCQkJCTg1QkE0RDA5MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MVUxpc3RFbGVtZW50
LmggKi8sCiAJCQkJODVCQTREMEEwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1l
bnQubW0gKi8sCiAJCQkJODVFNzExODEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxVTGlzdEVs
ZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCTJERUM2NjRCMUM4MkNGQkYwMDk5ODQ2QSAvKiBET01I
VE1MVmlkZW9FbGVtZW50LmggKi8sCisJCQkJMkRFQzY2NEMxQzgyQ0ZCRjAwOTk4NDZBIC8qIERP
TUhUTUxWaWRlb0VsZW1lbnQubW0gKi8sCisJCQkJMkRFQzY2NEQxQzgyQ0ZCRjAwOTk4NDZBIC8q
IERPTUhUTUxWaWRlb0VsZW1lbnRJbnRlcm5hbC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBIVE1M
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE4Nzc1LDEzNCArMTg3OTgsNiBAQAog
CQkJCTJFM0JDMTA3MTE3RDQ3OTgwMEI5NDA5QSAvKiBET01GaWxlRXJyb3IubW0gKi8sCiAJCQkJ
QkMwMEYwMDEwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGVMaXN0LmggKi8sCiAJCQkJQkMwMEYw
MDIwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGVMaXN0Lm1tICovLAotCQkJCTg1REY4MTIxMEFB
Nzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5oICovLAotCQkJCTg1REY4MTIy
MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5tbSAqLywKLQkJCQk4NTQw
NzU2NDBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQuaCAqLywKLQkJCQk4
NUMwNTBCODBBRDg0RjVFMDA1NTMyRTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQubW0gKi8sCi0J
CQkJODVFQ0JFREQwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxBcmVhRWxlbWVudC5oICovLAot
CQkJCTg1RUNCRURFMEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MQXJlYUVsZW1lbnQubW0gKi8s
Ci0JCQkJODU5QTlDM0QwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICov
LAotCQkJCTg1OUE5QzNFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0g
Ki8sCi0JCQkJODVFQ0JFREYwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxCYXNlRm9udEVsZW1l
bnQuaCAqLywKLQkJCQk4NUVDQkVFMDBBQTc2MjY4MDA1NDRGMEIgLyogRE9NSFRNTEJhc2VGb250
RWxlbWVudC5tbSAqLywKLQkJCQk4NTlBOUMzRjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJv
ZHlFbGVtZW50LmggKi8sCi0JCQkJODU5QTlDNDAwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxC
b2R5RWxlbWVudC5tbSAqLywKLQkJCQk4NTE4M0IzODBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRN
TEJSRWxlbWVudC5oICovLAotCQkJCTg1MTgzQjM5MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1M
QlJFbGVtZW50Lm1tICovLAotCQkJCTg1QkE0Q0Q1MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1M
QnV0dG9uRWxlbWVudC5oICovLAotCQkJCTg1QkE0Q0Q2MEFBNjg2MUIwMDg4MDUyRCAvKiBET01I
VE1MQnV0dG9uRWxlbWVudC5tbSAqLywKLQkJCQk5M0QzQzE1ODBGOTdBOUQ3MDA1M0MwMTMgLyog
RE9NSFRNTENhbnZhc0VsZW1lbnQuaCAqLywKLQkJCQk5M0Y5QjY1NDBCQTBGMzVFMDA4NTQwNjQg
LyogRE9NSFRNTENhbnZhc0VsZW1lbnQubW0gKi8sCi0JCQkJODVERjJGOEMwQUEzQzg4MTAwQUQ2
NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLmggKi8sCi0JCQkJODVERjJGOEQwQUEzQzg4MTAwQUQ2
NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLm1tICovLAotCQkJCUY1QzA0MURFMEZGQ0E5NkQwMDgz
OUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi8sCi0JCQkJRjVDMDQxREYwRkZDQTk2
RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQubW0gKi8sCi0JCQkJRDM1OUQ3OEUx
MjlDQTNDMDAwMDZFNUQyIC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudC5oICovLAotCQkJCUQzNTlE
NzhGMTI5Q0EzQzAwMDA2RTVEMiAvKiBET01IVE1MRGV0YWlsc0VsZW1lbnQubW0gKi8sCi0JCQkJ
RDM1OUQ3OTAxMjlDQTNDMDAwMDZFNUQyIC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudEludGVybmFs
LmggKi8sCi0JCQkJODVCQTRDRkQwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXJlY3RvcnlF
bGVtZW50LmggKi8sCi0JCQkJODVCQTRDRkUwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXJl
Y3RvcnlFbGVtZW50Lm1tICovLAotCQkJCTg1QkE0Q0ZGMEFBNjg4NjgwMDg4MDUyRCAvKiBET01I
VE1MRGl2RWxlbWVudC5oICovLAotCQkJCTg1QkE0RDAwMEFBNjg4NjgwMDg4MDUyRCAvKiBET01I
VE1MRGl2RWxlbWVudC5tbSAqLywKLQkJCQk4NUJBNEQwMTBBQTY4ODY4MDA4ODA1MkQgLyogRE9N
SFRNTERMaXN0RWxlbWVudC5oICovLAotCQkJCTg1QkE0RDAyMEFBNjg4NjgwMDg4MDUyRCAvKiBE
T01IVE1MRExpc3RFbGVtZW50Lm1tICovLAotCQkJCTg1QkNCQzExMEFCQkE4N0QwMDM4MTE2MCAv
KiBET01IVE1MRG9jdW1lbnQuaCAqLywKLQkJCQk4NUJDQkMxMjBBQkJBODdEMDAzODExNjAgLyog
RE9NSFRNTERvY3VtZW50Lm1tICovLAotCQkJCTg1REYyRUVCMEFBMzg3Q0IwMEFENjRDNSAvKiBE
T01IVE1MRWxlbWVudC5oICovLAotCQkJCTg1REYyRUVDMEFBMzg3Q0IwMEFENjRDNSAvKiBET01I
VE1MRWxlbWVudC5tbSAqLywKLQkJCQk4NTQwNzU2NTBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRN
TEVtYmVkRWxlbWVudC5oICovLAotCQkJCTg1QzA1MEI5MEFEODRGNUUwMDU1MzJFNyAvKiBET01I
VE1MRW1iZWRFbGVtZW50Lm1tICovLAotCQkJCTQ0MjlBQUZCMENCODRFODgwMDc2NDdDNSAvKiBE
T01IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oICovLAotCQkJCTg1QkE0Q0Q3MEFBNjg2MUIwMDg4
MDUyRCAvKiBET01IVE1MRmllbGRTZXRFbGVtZW50LmggKi8sCi0JCQkJODVCQTRDRDgwQUE2ODYx
QjAwODgwNTJEIC8qIERPTUhUTUxGaWVsZFNldEVsZW1lbnQubW0gKi8sCi0JCQkJODVFQ0JFRTEw
QUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxGb250RWxlbWVudC5oICovLAotCQkJCTg1RUNCRUUy
MEFBNzYyNjgwMDU0NEYwQiAvKiBET01IVE1MRm9udEVsZW1lbnQubW0gKi8sCi0JCQkJODVERjJD
MTAwQUEzNDFGNjAwQUQ2NEM1IC8qIERPTUhUTUxGb3JtRWxlbWVudC5oICovLAotCQkJCTg1REYy
QzExMEFBMzQxRjYwMEFENjRDNSAvKiBET01IVE1MRm9ybUVsZW1lbnQubW0gKi8sCi0JCQkJODVE
RjgxOEQwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxGcmFtZUVsZW1lbnQuaCAqLywKLQkJCQk4
NURGODE4RTBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lRWxlbWVudC5tbSAqLywKLQkJ
CQk4NURGODE4RjBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oICov
LAotCQkJCTg1REY4MTkwMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVTZXRFbGVtZW50
Lm1tICovLAotCQkJCTg1OTkyRUIyMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1l
bnQuaCAqLywKLQkJCQk4NTk5MkVCMzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVt
ZW50Lm1tICovLAotCQkJCTg1MTgzQjNBMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MSGVhZGlu
Z0VsZW1lbnQuaCAqLywKLQkJCQk4NTE4M0IzQjBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEhl
YWRpbmdFbGVtZW50Lm1tICovLAotCQkJCTg1RUNCRUUzMEFBNzYyNjgwMDU0NEYwQiAvKiBET01I
VE1MSFJFbGVtZW50LmggKi8sCi0JCQkJODVFQ0JFRTQwQUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhU
TUxIUkVsZW1lbnQubW0gKi8sCi0JCQkJODU5OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhU
TUxIdG1sRWxlbWVudC5oICovLAotCQkJCTg1OTkyRUI1MEFBNTA2OTUwMEFDMDc4NSAvKiBET01I
VE1MSHRtbEVsZW1lbnQubW0gKi8sCi0JCQkJODVERjgxOTEwQUE3N0U0QjAwNDg2QUQ3IC8qIERP
TUhUTUxJRnJhbWVFbGVtZW50LmggKi8sCi0JCQkJODVERjgxOTIwQUE3N0U0QjAwNDg2QUQ3IC8q
IERPTUhUTUxJRnJhbWVFbGVtZW50Lm1tICovLAotCQkJCTQ0MjlBQUZEMENCODRFQTUwMDc2NDdD
NSAvKiBET01IVE1MSUZyYW1lRWxlbWVudFByaXZhdGUuaCAqLywKLQkJCQk4NURGODEyMzBBQTc3
ODcyMDA0ODZBRDcgLyogRE9NSFRNTEltYWdlRWxlbWVudC5oICovLAotCQkJCTg1REY4MTI0MEFB
Nzc4NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VFbGVtZW50Lm1tICovLAotCQkJCTg1RjMyQUU0
MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MSW5wdXRFbGVtZW50LmggKi8sCi0JCQkJODVGMzJB
RTUwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxJbnB1dEVsZW1lbnQubW0gKi8sCi0JCQkJMUND
QTczMjExMEFERDQzRTAwRkQ0NDBEIC8qIERPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmggKi8s
Ci0JCQkJQTYxNDhBNjUxMkU0MUQ5NDAwNDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVtZW50Lmgg
Ki8sCi0JCQkJQTYxNDhBNjYxMkU0MUQ5NDAwNDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVtZW50
Lm1tICovLAotCQkJCTg1QkE0Q0Q5MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVt
ZW50LmggKi8sCi0JCQkJODVCQTRDREEwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMYWJlbEVs
ZW1lbnQubW0gKi8sCi0JCQkJODVCQTRDREIwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMZWdl
bmRFbGVtZW50LmggKi8sCi0JCQkJODVCQTRDREMwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxM
ZWdlbmRFbGVtZW50Lm1tICovLAotCQkJCTg1QkE0RDAzMEFBNjg4NjgwMDg4MDUyRCAvKiBET01I
VE1MTElFbGVtZW50LmggKi8sCi0JCQkJODVCQTREMDQwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhU
TUxMSUVsZW1lbnQubW0gKi8sCi0JCQkJODU5OTJFQjYwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhU
TUxMaW5rRWxlbWVudC5oICovLAotCQkJCTg1OTkyRUI3MEFBNTA2OTUwMEFDMDc4NSAvKiBET01I
VE1MTGlua0VsZW1lbnQubW0gKi8sCi0JCQkJODVFQ0JFRTUwQUE3NjI2ODAwNTQ0RjBCIC8qIERP
TUhUTUxNYXBFbGVtZW50LmggKi8sCi0JCQkJODVFQ0JFRTYwQUE3NjI2ODAwNTQ0RjBCIC8qIERP
TUhUTUxNYXBFbGVtZW50Lm1tICovLAotCQkJCUJDNTE1NkU1MEMwM0I3NDEwMDhCQjBFRSAvKiBE
T01IVE1MTWFycXVlZUVsZW1lbnQuaCAqLywKLQkJCQlCQzUxNTZFNjBDMDNCNzQxMDA4QkIwRUUg
LyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50Lm1tICovLAotCQkJCTJERUM2NjRFMUM4MkNGRjYwMDk5
ODQ2QSAvKiBET01IVE1MTWVkaWFFbGVtZW50LmggKi8sCi0JCQkJMkRFQzY2NEYxQzgyQ0ZGNjAw
OTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnQubW0gKi8sCi0JCQkJODVCQTREMDUwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxNZW51RWxlbWVudC5oICovLAotCQkJCTg1QkE0RDA2MEFBNjg4
NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQubW0gKi8sCi0JCQkJODU5QTlDNDMwQUE1
RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oICovLAotCQkJCTg1OUE5QzQ0MEFB
NUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1lbnQubW0gKi8sCi0JCQkJODVFQ0JFRTcw
QUE3NjI2ODAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50LmggKi8sCi0JCQkJODVFQ0JFRTgw
QUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tICovLAotCQkJCTg1REY4MTI1
MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5oICovLAotCQkJCTg1REY4
MTI2MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5tbSAqLywKLQkJCQk0
NDI5QUFGRjBDQjg0RUMzMDA3NjQ3QzUgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmgg
Ki8sCi0JCQkJODVCQTREMDcwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQu
aCAqLywKLQkJCQk4NUJBNEQwODBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVu
dC5tbSAqLywKLQkJCQk4NUYzMkFFNjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3Vw
RWxlbWVudC5oICovLAotCQkJCTg1RjMyQUU3MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0
R3JvdXBFbGVtZW50Lm1tICovLAotCQkJCTg1NDA3NTY2MEFENkNCRjkwMDYyMEM1NyAvKiBET01I
VE1MT3B0aW9uRWxlbWVudC5oICovLAotCQkJCTg1NDA3NTY3MEFENkNCRjkwMDYyMEM1NyAvKiBE
T01IVE1MT3B0aW9uRWxlbWVudC5tbSAqLywKLQkJCQk4NTQwNzU2ODBBRDZDQkY5MDA2MjBDNTcg
LyogRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1REYyRjk5MEFBM0NB
RTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLywKLQkJCQk4NURGMkY5
QTBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tICovLAotCQkJ
CTg1MTgzQjNDMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oICov
LAotCQkJCTg1MTgzQjNEMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVu
dC5tbSAqLywKLQkJCQk4NUVDQkVFOTBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTFBhcmFtRWxl
bWVudC5oICovLAotCQkJCTg1RUNCRUVBMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1F
bGVtZW50Lm1tICovLAotCQkJCTg1MTgzQjNFMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJl
RWxlbWVudC5oICovLAotCQkJCTg1MTgzQjNGMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJl
RWxlbWVudC5tbSAqLywKLQkJCQlBNDIyNkU5MjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFBy
b2dyZXNzRWxlbWVudC5oICovLAotCQkJCUE0MjI2RTkzMTE2M0Q3M0EwMDhCODM5NyAvKiBET01I
VE1MUHJvZ3Jlc3NFbGVtZW50Lm1tICovLAotCQkJCTg1MTgzQjQwMEFBNjkyNjEwMEYxOUZBMyAv
KiBET01IVE1MUXVvdGVFbGVtZW50LmggKi8sCi0JCQkJODUxODNCNDEwQUE2OTI2MTAwRjE5RkEz
IC8qIERPTUhUTUxRdW90ZUVsZW1lbnQubW0gKi8sCi0JCQkJODVERjgxOTMwQUE3N0U0QjAwNDg2
QUQ3IC8qIERPTUhUTUxTY3JpcHRFbGVtZW50LmggKi8sCi0JCQkJODVERjgxOTQwQUE3N0U0QjAw
NDg2QUQ3IC8qIERPTUhUTUxTY3JpcHRFbGVtZW50Lm1tICovLAotCQkJCTg1RjMyQUU4MEFBNjNC
ODcwMEZGMzE4NCAvKiBET01IVE1MU2VsZWN0RWxlbWVudC5oICovLAotCQkJCTg1RjMyQUU5MEFB
NjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2VsZWN0RWxlbWVudC5tbSAqLywKLQkJCQk4NTlBOUM0
NTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oICovLAotCQkJCTg1OUE5
QzQ2MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50Lm1tICovLAotCQkJCTg1
REY4MjEzMEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oICov
LAotCQkJCTg1REY4MjE0MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5tbSAqLywKLQkJCQk4NURGODIxNTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaCAqLywKLQkJCQk4NURGODIxNjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQubW0gKi8sCi0JCQkJODVERjgyMTcwQUE3ODQ5RTAwNDg2QUQ3IC8q
IERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaCAqLywKLQkJCQk4NURGODIxODBBQTc4NDlFMDA0ODZB
RDcgLyogRE9NSFRNTFRhYmxlQ29sRWxlbWVudC5tbSAqLywKLQkJCQk4NURGODI2RTBBQTc4QjhB
MDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlRWxlbWVudC5oICovLAotCQkJCTg1REY4MjZGMEFBNzhC
OEEwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50Lm1tICovLAotCQkJCTg1REY4MjE5MEFB
Nzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVSb3dFbGVtZW50LmggKi8sCi0JCQkJODVERjgy
MUEwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnQubW0gKi8sCi0JCQkJ
ODVERjgyMUIwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmgg
Ki8sCi0JCQkJODVERjgyMUMwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50Lm1tICovLAotCQkJCTJERUM2NjRCMUM4MkNGQkYwMDk5ODQ2QSAvKiBET01IVE1MVmlk
ZW9FbGVtZW50LmggKi8sCi0JCQkJMkRFQzY2NEMxQzgyQ0ZCRjAwOTk4NDZBIC8qIERPTUhUTUxW
aWRlb0VsZW1lbnQubW0gKi8sCiAJCQkJMkRFQzY2NzUxQzg0MDNDMzAwOTk4NDZBIC8qIERPTU1l
ZGlhRXJyb3IuaCAqLywKIAkJCQkyREVDNjY3NjFDODQwM0MzMDA5OTg0NkEgLyogRE9NTWVkaWFF
cnJvci5tbSAqLywKIAkJCQkyREVDNjY2RjFDODNGMkFGMDA5OTg0NkEgLyogRE9NVGltZVJhbmdl
cy5oICovLApAQCAtMTg5NDksNjUgKzE4ODQ0LDYgQEAKIAkJCQkyRTNCQzEwQTExN0Q0N0M4MDBC
OTQwOUEgLyogRE9NRmlsZUVycm9ySW50ZXJuYWwuaCAqLywKIAkJCQlCQzAwRjAwMDBFMEExODU1
MDBGRDA0RTMgLyogRE9NRmlsZUludGVybmFsLmggKi8sCiAJCQkJQkMwMEYwMDMwRTBBMTg1NTAw
RkQwNEUzIC8qIERPTUZpbGVMaXN0SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE0QzBBQzVENTM0
MDA1MzI3MEYgLyogRE9NSFRNTEFuY2hvckVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1NTI0
N0NEMEFEODUwQjgwMDEyMDkzQiAvKiBET01IVE1MQXBwbGV0RWxlbWVudEludGVybmFsLmggKi8s
Ci0JCQkJODVFNzExNEQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxBcmVhRWxlbWVudEludGVy
bmFsLmggKi8sCi0JCQkJODVFNzExNEUwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxCYXNlRWxl
bWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNEYwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhU
TUxCYXNlRm9udEVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTUwMEFDNUQ1MzQwMDUz
MjcwRiAvKiBET01IVE1MQm9keUVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTUxMEFD
NUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MQlJFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3
MTE1MjBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnRJbnRlcm5hbC5oICov
LAotCQkJCTkzRjlCNjU1MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudElu
dGVybmFsLmggKi8sCi0JCQkJODVFNzExNTMwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxDb2xs
ZWN0aW9uSW50ZXJuYWwuaCAqLywKLQkJCQlGNUMwNDFFMDBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNTQwQUM1RDUzNDAw
NTMyNzBGIC8qIERPTUhUTUxEaXJlY3RvcnlFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3
MTE1NTBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTERpdkVsZW1lbnRJbnRlcm5hbC5oICovLAot
CQkJCTg1RTcxMTU2MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MRExpc3RFbGVtZW50SW50ZXJu
YWwuaCAqLywKLQkJCQk4NUU3MTE1NzBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTERvY3VtZW50
SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE1ODBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEVs
ZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1NTI0N0NFMEFEODUwQjgwMDEyMDkzQiAvKiBET01I
VE1MRW1iZWRFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE1OTBBQzVENTM0MDA1MzI3
MEYgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNUEw
QUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb250RWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJ
ODVFNzExNUIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGb3JtRWxlbWVudEludGVybmFsLmgg
Ki8sCi0JCQkJODVFNzExNUMwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUhUTUxGcmFtZUVsZW1lbnRJ
bnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTVEMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01IVE1MRnJh
bWVTZXRFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE1RTBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTEhlYWRFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE1RjBBQzVENTM1
MDA1MzI3MEYgLyogRE9NSFRNTEhlYWRpbmdFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3
MTE2MDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEhSRWxlbWVudEludGVybmFsLmggKi8sCi0J
CQkJODVFNzExNjEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIdG1sRWxlbWVudEludGVybmFs
LmggKi8sCi0JCQkJODVFNzExNjIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJRnJhbWVFbGVt
ZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE2MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRN
TEltYWdlRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNjQwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTUhUTUxJbnB1dEVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCUE2MTQ4QTYxMTJFNDFE
M0EwMDQ0QTc4NCAvKiBET01IVE1MS2V5Z2VuRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVF
NzExNjYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxMYWJlbEVsZW1lbnRJbnRlcm5hbC5oICov
LAotCQkJCTg1RTcxMTY3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTGVnZW5kRWxlbWVudElu
dGVybmFsLmggKi8sCi0JCQkJODVFNzExNjgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxMSUVs
ZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTY5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MTGlua0VsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTZBMEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01IVE1MTWFwRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJQkM1MTU2RTcwQzAzQjc0
MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJMkRF
QzY2NTAxQzgyRDAwODAwOTk4NDZBIC8qIERPTUhUTUxNZWRpYUVsZW1lbnRJbnRlcm5hbC5oICov
LAotCQkJCTg1RTcxMTZCMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWVudUVsZW1lbnRJbnRl
cm5hbC5oICovLAotCQkJCTg1RTcxMTZDMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWV0YUVs
ZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTZEMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MTW9kRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNkUwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTUhUTUxPYmplY3RFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE2RjBBQzVE
NTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0RWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVF
NzExNzAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5o
ICovLAotCQkJCTg1RTcxMTcxMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT3B0aW9uc0NvbGxl
Y3Rpb25JbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTcyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MUGFyYWdyYXBoRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNzMwQUM1RDUzNTAw
NTMyNzBGIC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTc0
MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUHJlRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJ
QTQyMjZFOTgxMTYzRDdDQzAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5h
bC5oICovLAotCQkJCTg1RTcxMTc1MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUXVvdGVFbGVt
ZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE3NjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRN
TFNjcmlwdEVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTc3MEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01IVE1MU2VsZWN0RWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNzgwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTdHlsZUVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1
RTcxMTc5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudEludGVy
bmFsLmggKi8sCi0JCQkJODVFNzExN0EwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50SW50ZXJuYWwuaCAqLywKLQkJCQk4NUU3MTE3QjBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTFRhYmxlQ29sRWxlbWVudEludGVybmFsLmggKi8sCi0JCQkJODVFNzExN0MwQUM1RDUz
NTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZUVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcx
MTdEMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGFibGVSb3dFbGVtZW50SW50ZXJuYWwuaCAq
LywKLQkJCQk4NUU3MTE3RTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTJERUM2NjREMUM4MkNGQkYwMDk5ODQ2QSAvKiBET01I
VE1MVmlkZW9FbGVtZW50SW50ZXJuYWwuaCAqLywKIAkJCQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJD
NTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8sCiAJCQkJMkRFQzY2NzcxQzg0MDND
MzAwOTk4NDZBIC8qIERPTU1lZGlhRXJyb3JJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTgyMEFD
NUQ1MzUwMDUzMjcwRiAvKiBET01NZWRpYUxpc3RJbnRlcm5hbC5oICovLApAQCAtMjUzMzQsNiAr
MjUxNzAsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJRkUxMTVGQUIxNjc5ODhDRDAwMjQ5MTM0IC8q
IEFic3RyYWN0RGF0YWJhc2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFCMUQxMEZG
NTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2
N0JGNDYxRDRGRTQyMjAwNDEyQUM3IC8qIERPTUhUTUxBcHBsZXRFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTI5QTgxMjJFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzMzBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmggaW4gSGVhZGVycyAqLywKIAkJCQky
OTE0RTMwODFDQUI1QTQ0MDA0OTk2NkYgLyogQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU0MTIsNiArMjUyNDksNyBAQAogCQkJCUZENjI5RUEzMTU0QjQ3MTYw
MDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkQzMTVGRjcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDMxNUZGOTEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9CdWZmZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjYxMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1M
TElFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTY4NkNDMTNBQzE4MTQw
MEI2OUM2OCAvKiBBdWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMx
NUZGQzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjU1ODEsNiArMjU0MTksNyBAQAogCQkJCUZFMzZGRDE1MTZDNzgyNjUwMEY4
ODdDMSAvKiBDaGFuZ2VWZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzY5REQx
NTA1RjA3NjAwMUI3NEFDIC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNUZGRjEyQjAyNjc2MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFBNjdCRjRBMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MQm9keUVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMDIxMkIwMjY3NjAwQzFB
MzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEw
MDk5REYwMjcwMDkwRDc4MSAvKiBDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
NTU5MkY3ODFBOTJBQTI4MDAxRjg4NjIgLyogQ2hhcmFjdGVyUHJvcGVydGllcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTYyMSw5ICsyNTQ2MCwxMSBAQAogCQkJCUUxRkUxMzc1MTg0MDJBNjcwMDg5
MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOTNG
MzRBMUFBNkJBNUUwMEE5OEJBQiAvKiBDb21waWxlZENvbnRlbnRFeHRlbnNpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTM3QzIzNjExMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjZBMUQ0RkU0MjMwMDQxMkFDNyAvKiBE
T01IVE1MT2JqZWN0RWxlbWVudFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QkE1MDkw
MUJDRkJEOTUwMEUzNEVGNyAvKiBDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDRGQTE4NTFCQ0E2QjVBMDA5MUI2RUYgLyogQ29tcG9zZWRUcmVlSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE2MEU2RTFEQTcwMEJGNjA4OCAvKiBD
b21wb3NpdGVBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjdCMUQ0RkU0MjMw
MDQxMkFDNyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlEREQwOTlFNjQ5MjAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3OUYyRjVBMjEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOEYxMkIwMjZGNzAwQzFBMzU5IC8qIENvbmUuaCBp
biBIZWFkZXJzICovLApAQCAtMjU2ODAsNiArMjU1MjEsNyBAQAogCQkJCTkzOTJGMTRDMEFEMTg2
MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBCMDU1Njgw
OUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTRDNzY2RTBDRTkyM0ExMDA3RUYzQ0QgLyogQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUE2N0JGNUExRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxIUkVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5MjkxN0ExOTg1RUYzOTAwRjRCNjYxIC8qIENyZWRl
bnRpYWxCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzkyOTE3RTE5ODc2NzhGMDBGNEI2NjEg
LyogQ3JlZGVudGlhbENvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUEwNTIzMzEwNTg3NzRG
MDBDQzlFOTUgLyogQ3JlZGVudGlhbFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjU3NDIs
NiArMjU1ODQsNyBAQAogCQkJCTRBOUNDODE4MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0
U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3
NyAvKiBDU1NGaWx0ZXJJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0QjRENjBD
QjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdC
RjVGMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTGFiZWxFbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQwOUVCREIxMTZCN0VFNzEwMENCQTNGQyAvKiBDU1NGb250RmFjZUxv
YWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzI2MDE3QTQxQzcyREM5OTAw
Rjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1Nzk3LDEwICsy
NTY0MCwxNCBAQAogCQkJCUZDNTREMDU3MTZBNzY3MzEwMDU3NUU0RCAvKiBDU1NTdXBwb3J0c1J1
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODBDOTg4MENEMjk0RUUwMEEwQjdCMyAvKiBDU1NU
aW1pbmdGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QUIxRjM4MDE4RTI0ODlB
MDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUE2N0JGOEExRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNzUxRDRGRTQyMzAwNDEyQUM3IC8qIERP
TUhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4ODJEQTIzMTU5Mzg0OEQw
MDAxMTVFRCAvKiBDU1NUb1N0eWxlTWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY2OTFE
NEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzcxRjUzRTkwRDI3MDRGOTAwRUNFMEQ1IC8qIENTU1VuaWNvZGVSYW5nZVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NT
VW5rbm93blJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0
MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY1ODFENEZFNDIz
MDA0MTJBQzcgLyogRE9NSFRNTEhlYWRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MEU2Q0VFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2NTgxNTEwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MEU2Q0U5MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3Qu
aCBpbiBIZWFkZXJzICovLApAQCAtMjU4NjksNiArMjU3MTYsNyBAQAogCQkJCTMxRkIxQTU5MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMUZCMUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzFGQjFBNUQxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY4RTFENEZFNDIzMDA0MTJBQzcgLyogRE9N
SFRNTFRleHRBcmVhRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4RjFE
ODExQTY5NTIwMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkzMDlBMTMxMUY0QUU2QTAwMjUwNjAzIC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTk3MCw2
ICsyNTgxOCw3IEBACiAJCQkJODUwMzJERTEwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1QjQ5OEVEMEFEQjMyRkIwMDkyNUNCQiAvKiBET01DU1NS
dWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMyREUzMEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGOTQxRDRGRTQy
NDAwNDEyQUM3IC8qIERPTUhUTUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1
RTcxMTkyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01DU1NSdWxlTGlzdEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NTAzMkRFNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExOTMwQUM1RDUzNTAwNTMyNzBGIC8q
IERPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjAy
NywxMzEgKzI1ODc2LDQ2IEBACiAJCQkJMEY1NERDRTIxODgwRjkwMTAwM0VFREJCIC8qIERPTUdl
c3R1cmVFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBMzdCNjA5N0M3MTVG
MDAxOUYzRDggLyogRE9NSFRNTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxMjcwQUE3Nzg3
MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4
NUU3MTE5QjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEFuY2hvckVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1NjkwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxB
cHBsZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTUyNDdDRjBBRDg1MEI4MDAxMjA5
M0IgLyogRE9NSFRNTEFwcGxldEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVFQ0JFRUIwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxBcmVhRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJODVFNzExOUMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxBcmVhRWxlbWVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTlBOUM0NzBBQTVFM0JEMDBCNjk0QjIg
LyogRE9NSFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTE5RDBBQzVE
NTM1MDA1MzI3MEYgLyogRE9NSFRNTEJhc2VFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg1RUNCRUVEMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MQmFzZUZvbnRFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTE5RTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRN
TEJhc2VGb250RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTlBOUM0OTBB
QTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk4NUU3MTE5RjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEJvZHlFbGVtZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1MTgzQjQyMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1M
QlJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFBMDBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTEJSRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUJBNENE
RDBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTg1RTcxMUExMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MQnV0dG9uRWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0QzQzE1OTBGOTdBOUQ3MDA1M0MwMTMgLyog
RE9NSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzRjlCNjU4MEJBMEYz
NUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NURGMkY4RTBBQTNDODgxMDBBRDY0QzUgLyogRE9NSFRNTENvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovLAotCQkJCTg1RTcxMUEyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MQ29s
bGVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNUMwNDFFMzBGRkNBOTZEMDA4
MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjVD
MDQxRTUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRDM1OUQ3OTExMjlDQTNDMDAwMDZFNUQyIC8qIERPTUhUTUxE
ZXRhaWxzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRDM1OUQ3OTMxMjlDQTNDMDAwMDZF
NUQyIC8qIERPTUhUTUxEZXRhaWxzRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NUJBNEQwQjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCTg1RTcxMUEzMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MRGly
ZWN0b3J5RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUJBNEQwRDBBQTY4
ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpdkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1
RTcxMUE0MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MRGl2RWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NUJBNEQwRjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERMaXN0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQTUwQUM1RDUzNTAwNTMyNzBGIC8q
IERPTUhUTUxETGlzdEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCQ0JD
MTMwQUJCQTg3RDAwMzgxMTYwIC8qIERPTUhUTUxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJODVFNzExQTYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxEb2N1bWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NURGMkVFRDBBQTM4N0NCMDBBRDY0QzUgLyogRE9NSFRNTEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUE3MEFDNUQ1MzUwMDUzMjcwRiAvKiBE
T01IVE1MRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzU2QTBBRDZD
QkY5MDA2MjBDNTcgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
ODU1MjQ3RDAwQUQ4NTBCODAwMTIwOTNCIC8qIERPTUhUTUxFbWJlZEVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVCQTRDREYwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxG
aWVsZFNldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RTcxMUE4MEFDNUQ1MzUwMDUz
MjcwRiAvKiBET01IVE1MRmllbGRTZXRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1RUNCRUVGMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MRm9udEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTg1RTcxMUE5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MRm9udEVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjJDNUMwQUEzNDFGNjAwQUQ2
NEM1IC8qIERPTUhUTUxGb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQUEw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxGb3JtRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NURGODE5NTBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQUIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhU
TUxGcmFtZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjgxOTcwQUE3
N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTg1RTcxMUFDMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MRnJhbWVTZXRFbGVtZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1OTkyRUJBMEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSGVhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RTcxMUFEMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MSGVhZEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODUxODNCNDQwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxIZWFkaW5nRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQUUwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIZWFk
aW5nRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVGMTBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTEhSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzEx
QUYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIUkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODU5OTJFQkMwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQjAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhU
TUxIdG1sRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NURGODE5OTBBQTc3
RTRCMDA0ODZBRDcgLyogRE9NSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTg1RTcxMUIxMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSUZyYW1lRWxlbWVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NURGODEyOTBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRN
TEltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQjIwQUM1RDUzNTAwNTMy
NzBGIC8qIERPTUhUTUxJbWFnZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVGMzJBRUMwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1RTcxMUIzMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSW5wdXRFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE2MTQ4QTY3MTJFNDFEOTQwMDQ0QTc4
NCAvKiBET01IVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTYxNDhBNjIx
MkU0MUQzQTAwNDRBNzg0IC8qIERPTUhUTUxLZXlnZW5FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1QkE0Q0UxMEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFCNTBBQzVENTM1MDA1MzI3MEYgLyogRE9N
SFRNTExhYmVsRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUJBNENFMzBB
QTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTg1RTcxMUI2MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTGVnZW5kRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUJBNEQxMTBBQTY4ODY4MDA4ODA1MkQgLyogRE9N
SFRNTExJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQjcwQUM1RDUzNTAwNTMy
NzBGIC8qIERPTUhUTUxMSUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5
OTJFQkUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJODVFNzExQjgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxMaW5rRWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVGMzBBQTc2MjY5MDA1NDRGMEIgLyog
RE9NSFRNTE1hcEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RTcxMUI5MEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MTWFwRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzUxNTc5RjBDMDNCQkQzMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQzUxNTZFQTBDMDNCNzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1
ZWVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERUM2NjU1MUM4MkQwNDEw
MDk5ODQ2QSAvKiBET01IVE1MTWVkaWFFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkyREVD
NjY1MTFDODJEMDE2MDA5OTg0NkEgLyogRE9NSFRNTE1lZGlhRWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NUJBNEQxMzBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE1lbnVF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFCQTBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1OUE5QzRE
MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTg1RTcxMUJCMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWV0YUVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFQ0JFRjUwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhU
TUxNb2RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFCQzBBQzVENTM1MDA1MzI3
MEYgLyogRE9NSFRNTE1vZEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2
N0JGNkQxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1REY4MTJCMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQkQwQUM1RDUzNTAwNTMyNzBGIC8qIERP
TUhUTUxPYmplY3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1QkE0RDE1
MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk4NUU3MTFCRTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0RWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUYzMkFFRTBBQTYzQjg3MDBGRjMxODQgLyogRE9N
SFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQkYwQUM1RDUz
NTAwNTMyNzBGIC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJODU0MDc1NkIwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTQwNzU2RDBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRN
TE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVERjJGOUIwQUEz
Q0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJODVFNzExQzAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlv
bkludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTE4M0I0NjBBQTY5MjYxMDBGMTlGQTMg
LyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RTcxMUMx
MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKLQkJCQk4NUVDQkVGNzBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTFBhcmFt
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQzIwQUM1RDUzNTAwNTMyNzBGIC8q
IERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODUxODNC
NDgwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQcmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk4NUU3MTFDMzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFByZUVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTQyMjZFOTUxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhU
TUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE0MjI2RTk5MTE2M0Q3Q0Mw
MDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAotCQkJCTg1MTgzQjRBMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUXVvdGVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFDNDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFF1
b3RlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NURGODE5QjBBQTc3RTRC
MDA0ODZBRDcgLyogRE9NSFRNTFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1
RTcxMUM1MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU2NyaXB0RWxlbWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk4NUYzMkFGMDBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTFNl
bGVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RTcxMUM2MEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01IVE1MU2VsZWN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk4
NTlBOUM0RjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJODVFNzExQzcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTdHlsZUVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVERjgyMUQwQUE3ODQ5RTAwNDg2QUQ3
IC8qIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3
MTFDODBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVERjgyMUYwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFDOTBBQzVENTM1
MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJODVERjgyMjEwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1RTcxMUNBMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01I
VE1MVGFibGVDb2xFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1REY4Mjcw
MEFBNzhCOEIwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk4NUU3MTFDQjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFRhYmxlRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NURGODIyMzBBQTc4NDlFMDA0ODZBRDcgLyogRE9N
SFRNTFRhYmxlUm93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODVFNzExQ0MwQUM1RDUz
NTAwNTMyNzBGIC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJODVERjgyMjUwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFDRDBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
ODU5OTJFQzAwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTg1RTcxMUNGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MVGl0bGVFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1QkE0RDE3MEFBNjg4NjgwMDg4MDUy
RCAvKiBET01IVE1MVUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NUU3MTFEMDBB
QzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFVMaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkyREVDNjY1NDFDODJEMDM1MDA5OTg0NkEgLyogRE9NSFRNTFZpZGVvRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkRFQzY2NTIxQzgyRDAxRjAwOTk4NDZBIC8qIERPTUhU
TUxWaWRlb0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2
NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzFBMzdCOTA5N0M3MTVGMDAxOUYzRDggLyogRE9NSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI2MTY0LDYgKzI1OTI4LDcgQEAKIAkJCQk3NTc5M0VENTBEMENFODVCMDA3
RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
QUNBRjREMEU3OTFBQUYwMDg3RDEyQiAvKiBET01NZXNzYWdlUG9ydC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFBREVERDUwRTc2QkQ2MDAwNEExQTVFIC8qIERPTU1lc3NhZ2VQb3J0SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjhGMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1M
VGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU0RTQwRDc0
NUUwNTAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRF
ODBENzQ1RTE4MDA2NDQyRTkgLyogRE9NTWltZVR5cGVBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODU3RTBCMjUwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjYxNzEsNyArMjU5MzYsNiBAQAogCQkJCTg1QzdGNUJGMEFBRkI3Q0MwMDQwMTRE
RCAvKiBET01NdXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTk4OURDRTBBQ0M4
QkJEMDBBMEJDNTEgLyogRE9NTXV0YXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MkI2QzlDMzE1RTNGNERGMDA2OTBCMDUgLyogRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTNBQUM4QUQxRDREN0Y2MzAwOTA5NzkxIC8qIERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTE4REQ3ODBBOUNG
MzFCMDA5MUI3QTYgLyogRE9NTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3
MTFEMjBBQzVENTM1MDA1MzI3MEYgLyogRE9NTmFtZWROb2RlTWFwSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1M0JGNERCMEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2RlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI2MjAxLDYgKzI1OTY1LDcgQEAKIAkJCQk4NTM4RjA1RDBBRDcyMkYxMDA2
QTgxRDEgLyogRE9NUmFuZ2VJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUzOEYwODUw
QUQ3MkNCNjAwNkE4MUQxIC8qIERPTVJhbmdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU4QzM4
QTcwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdC
Rjc5MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MUXVvdGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUU3MTFENjBBQzVENTM1MDA1MzI3MEYgLyogRE9NUmVjdEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTg1RkNCNzFCQjRDNzY3MDAxMjg5OEYgLyogRE9NUmVxdWVzdFN0
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTVEMzU4QTBBRDcwNzMxMDAxOUFBQzcgLyogRE9N
UkdCQ29sb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjYyNDYsNyArMjYwMTEsOSBAQAogCQkJCTMx
QzBGRjRCMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0Qw
MEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQTY3QkY3NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFByZUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5ODM5MTUwMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRD
U1NNYXRyaXguaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjRGMUQ0RkU0MjMwMDQxMkFDNyAv
KiBET01IVE1MRGl2RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1
MjBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCThBRDBBNTk2MTRDODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRDU1NSZWdp
b25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUQwQTU5ODE0Qzg4MzU4MDAwRDgzQzUgLyog
RE9NV2ViS2l0Q1NTUmVnaW9uUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzAz
LDYgKzI2MDcwLDcgQEAKIAkJCQlFNDZBMkIxRTE3Q0E3NkIxMDAwREJDRDggLyogRWxlbWVudENo
aWxkSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1QjdBMTcxMTdDMTBBQzAwMEU0QUEw
QSAvKiBFbGVtZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBRTdDMTYxN0QxQkI5NTAw
MDlGQjMxIC8qIEVsZW1lbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNkUx
RDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTYzRjVENEY3MEU4QzRCNzEwMEMwQkQw
NCAvKiBFbGVtZW50UmFyZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUZCREI2MTlGMTZENjAz
NjUwMEJCMzM5NCAvKiBFbGVtZW50UnVsZUNvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjM5OCw2ICsyNjE2Niw3IEBACiAJCQkJQjI3NTM1NjkwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0
UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRTI3Q0EwMEIwRjJCMDkwMEYxN0M3QiAvKiBG
bG9hdFBvaW50M0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFQzQ4MEEyMTZFQTYzOEEwMEE0OERD
QiAvKiBGbG9hdFBvbHlnb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjYwMUQ0RkU0MjMw
MDQxMkFDNyAvKiBET01IVE1MTGVnZW5kRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkQ3MjM4MjBFQzhCRDkzMDBDQTVERDcgLyogRmxvYXRRdWFkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjc1MzU2QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RTBFNTY5QzE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNjQxNyw2ICsyNjE4Niw3IEBACiAJCQkJQjJDM0RBNjYwRDAw
NkNENjAwRUY2RjI2IC8qIEZvbnREZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM2
NjI2MTExQzZFN0NBNjAwQUI1MjdDIC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QzI0RUVBNTFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFBNjdCRjVDMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MSUZyYW1lRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTZFOUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9u
dEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAw
OTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTMyMEQ2QjEyMkEy
NEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjQ5
Niw3ICsyNjI2Niw2IEBACiAJCQkJNzdBMTdBN0IxMkYyODkwQjAwNEUwMkY2IC8qIEdyYXBoaWNz
VHlwZXMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRTI1MUMxODA0NkIwNjAwRTI3RjU2IC8q
IEdyaWRBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGNEZENzE3RTg1QzhGMDBBRUUyNEIg
LyogR3JpZExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTNBQUM4QTgxRDREN0U1NDAwOTA5
NzkxIC8qIERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMjcw
NUMzMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNERjc0ODNGMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExMkExMDUwMTY2NDQ0RkQwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXpl
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTM0LDYgKzI2MzAzLDcgQEAKIAkJCQk5M0YxOTlFNTA4
MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY4MDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRN
TFN0eWxlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNFNTEwQTE4REY4
RjM1MDBDMTEyRjcgLyogSFRNTENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxMjBD
NzExQzU2RjNGQjAwMUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjVDMDQxREIwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY2MDUsNiArMjYzNzUsNyBAQAogCQkJCUE4NzFENDU2MEExMjdDQkMw
MEIxMkE2OCAvKiBIVE1MUGx1Z0luRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQxNTI5
MkUwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4RUE3Q0IwMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUHJlRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGN0MxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxTY3Jp
cHRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODczMTIyODgzRTkw
MEI4MUZGOCAvKiBIVE1MUHJlbG9hZFNjYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0M0JG
NTk5MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOENGRjdBMzBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTFF1b3RlRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNjY2Niw2ICsyNjQzNyw3IEBACiAJCQkJNTE4NUZDN0UxQkI0QzRF
ODAwMTI4OThGIC8qIElEQkN1cnNvcldpdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
NUZDODExQkI0QzRFODAwMTI4OThGIC8qIElEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTg1RkM4MzFCQjRDNEU4MDAxMjg5OEYgLyogSURCRGF0YWJhc2VFcnJvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMUE2N0JGNkIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPTGlzdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQzg1MUJCNEM0RTgwMDEyODk4RiAvKiBJREJE
YXRhYmFzZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDODcxQkI0QzRFODAw
MTI4OThGIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFC
QTRBQzQxQkJCNUNEODAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjcxMyw2ICsyNjQ4NSw3IEBACiAJCQkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1MUI5IC8q
IEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1
IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCNjEyMzkyOTEw
MDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNzQx
RDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY1NUIzREMyMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdl
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyog
SW1hZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk0MywxMiArMjY3MTYsMTQgQEAK
IAkJCQk4OTg3ODVGMTEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzAwRjAxNzBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkU5NEY0M0MxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGODgxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhU
TUxUYWJsZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1RjUxMjJF
MUVBQzAwM0FBQkRBIC8qIEpTRmlsZVJlYWRlclN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2
RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxOEY1MDAyMTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjcwMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1M
T3B0aW9uRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENB
QzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgw
REE2NDBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkU4MERBNjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjcwMTAsNiArMjY3ODUsNyBAQAogCQkJCUE4MEU3RTk5MEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDhBMjlCRjBB
NDZEOUNCMDAzMDc1OUYgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTRBRDAxNzNEMTI3RTgyODYwMDE1MDM1RiAvKiBKU0hUTUxPdXRwdXRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY1MjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEVt
YmVkRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyQUJBNzBBMUNFOTA1
MDBCNDJCMjUgLyogSlNIVE1MUGFyYWdyYXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFMkFCQTkwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFBhcmFtRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMzRDg1QkMxQzBFMkU3QTAwRDNCNjEwIC8qIEpTSFRNTFBpY3R1cmVFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDU3LDYgKzI2ODMzLDcgQEAKIAkJCQkxNTk3NDFE
QjFCN0QxNDAxMDAyMDFDOTIgLyogSlNNZWRpYURldmljZUluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTE1NzM5QkJCMUI0MjAxMkQwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQyM0ExMjYxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY1QjFENEZFNDIzMDA0MTJB
QzcgLyogRE9NSFRNTEh0bWxFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
NDYxNDE5MENENjgyNjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDM0MzOUI3MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBp
biBIZWFkZXJzICovLApAQCAtMjcxODgsNiArMjY5NjUsNyBAQAogCQkJCUIyRkEzRDQxMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkZBM0Q0MzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZExlbmd0aExpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyRkEzRDQ1MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVk
TnVtYmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY4NjFENEZFNDIzMDA0MTJBQzcgLyog
RE9NSFRNTFRhYmxlQ29sRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZB
M0Q0NzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZE51bWJlckxpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyRkEzRDRCMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENEQwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjA1LDYg
KzI2OTgzLDcgQEAKIAkJCQlCMkZBM0Q2MzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdEZWZzRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENjUwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHRGVzY0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDY3MEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR0RvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY0RTFENEZF
NDIzMDA0MTJBQzcgLyogRE9NSFRNTERpcmVjdG9yeUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMkY2OUQwQUI3NzFCODAwMjJFRkFEIC8qIEpTU1ZHRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODU0MkE3OTkwQUU1Qzk0NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q2OTBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdFbGxpcHNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzI0Miw4
ICsyNzAyMSwxMCBAQAogCQkJCUE4M0I3OEZFMENDQUZGMTUwMDBCMDgyNSAvKiBKU1NWR0ZvbnRG
YWNlU3JjRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgzQjc4RkMwQ0NBRkYxNTAwMEIw
ODI1IC8qIEpTU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZB
M0Q5OTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMUE2N0JGNzYxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxQYXJhbUVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEOUIwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyN0IyODI4MENFRjBD
MDcwMEQzOUQ1NCAvKiBKU1NWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2
N0JGNTQxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxGb250RWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyNEQ5MTI5QTEzQ0E5NzE0MDBEMjE5MTUgLyogSlNTVkdHbHlwaFJl
ZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDlEMEFCNzVBNkYwMDBFNUFDNCAv
KiBKU1NWR0dyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0JFNzQyNzM4MUZB
OTA2RkJCNEYwRjJDIC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI3MjU2LDYgKzI3MDM3LDcgQEAKIAkJCQlCMkZBM0RBOTBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdNYXJrZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0RBQjBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdNYXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEQUQw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3
QkY4QjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyRkEzREFGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR01ldGFkYXRh
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3QjI4MkEwQ0VGMEMwNzAwRDM5RDU0IC8q
IEpTU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ5NkUzQTAx
Mzk4MTNBNTAwM0VFMzJBIC8qIEpTU1ZHTVBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI3Mjk1LDYgKzI3MDc3LDcgQEAKIAkJCQlCMkZBM0RFRTBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdSZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNERjEwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0RG
MzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdTY3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQTY3QkY4MzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREY1MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1Nl
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREY3MEFCNzVBNkYwMDBFNUFDNCAv
KiBKU1NWR1N0b3BFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0RGOTBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdTdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MzUxLDcg
KzI3MTM0LDYgQEAKIAkJCQk3RUEzMEY2QTE3RUZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFM0ZBRDM5MTQ3MzNGNDAw
MEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RUU4QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0FBQzhBQzFENEQ3RjYzMDA5MDk3OTEgLyogRE9NSFRN
TFRleHRBcmVhRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJDQkY0RTE0
MEYxQUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkUzRkFEMzkxNDczM0Y0MDExRTQyMzA3IC8qIEpTV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDIyRTQyMzA3IC8qIEpTV2ViR0xE
ZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc0NzksNiArMjcyNjEsNyBAQAogCQkJ
CTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDBDNjBFM0YxM0Q3NkQ3RTAwOTJBMjc1IC8qIE1hcmt1cFRva2VuaXplcklu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY1MTA1OUMxRUIwMEQ5OTlERCAvKiBN
YXRoTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY0NzFENEZFNDIzMDA0MTJB
QzcgLyogRE9NSFRNTEFyZWFFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0
QTI4QUFDMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRoTUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEJDRjgzRjcxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEZyYWN0aW9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFCRTcyRjcxMDU5QzFFQjAwRDk5OUREIC8qIE1h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc0OTksNyAr
MjcyODIsOSBAQAogCQkJCTA3Mzc5NEUyMTlFRTJEMUIwMEU1QTA0NSAvKiBNZWRpYUNvbnN0cmFp
bnRzTW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3MjUzQUIxMzU0QkJCQzAwMzYwRjJBIC8q
IE1lZGlhQ29udHJvbEVsZW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlERUJDQ0RENDE2NjQ2
RUFGMDBBNDUyRTEgLyogTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQTY3QkY4RDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRleHRBcmVhRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGOTkxRDRGRTY1OTAwNDEyQUM3IC8q
IERPTUhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY2NUNDQTE0NUI0
NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxRjNDM0JFQjEzNUNBRjNDMDBCOEMxQUMgLyogTWVkaWFDb250cm9scy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE1N0FGODAxMkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJvbHNBcHBs
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzUwOCw2ICsyNzI5Myw3IEBACiAJCQkJMTUxNDVCOTAx
QjNBMUNFMDAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUVBNzI1RDMxQUNBQkQ0NzAwRUFEMTdCIC8qIE1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDczOTRFQ0ExQkFCMkNENzAwQkU5OUNEIC8qIE1lZGlhRGV2aWNlc1JlcXVlc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTFBNjdCRjYzMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MTWFw
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCODEyMzkyOTEwMDBC
MTczODAgLyogTWVkaWFEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ2RjI1MkQxM0Y1
RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxlbWVudFNlc3Npb24u
aCBpbiBIZWFkZXJzICovLApAQCAtMjc1NDMsNiArMjczMjksNyBAQAogCQkJCTRFMTk1OTJFMEEz
OURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0E5
NEEzOTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQzQTk0QTNCMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY5MjFENEZFNDI0MDA0MTJBQzcgLyogRE9NSFRNTFVM
aXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJC
IC8qIE1lZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTA4NDNEMDFCMThF
NDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjc1NzgsNiArMjczNjUsNyBAQAogCQkJCTA3RkZERTY5MTgxQUVENDIwMDcy
RDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2
MzA2RDAxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjMwNkUzMTdFMjJBNDMwMDVBN0M0RSAvKiBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdC
RjU3MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MRnJhbWVTZXRFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCUNENjQxRUMwMTgxOUIzNjAwMEVFNEM0MSAvKiBNZWRpYVRpbWVB
VkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNENjBDMEM3MTkzRTg3QzcwMDNDNjU2
QiAvKiBNZWRpYVRpbWVRVEtpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwNTg1MjExN0ZEQzE0
MDAwNUYyQkNCIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3
NjAxLDYgKzI3Mzg5LDcgQEAKIAkJCQk0MUJGNzAwQzBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2Fn
ZVBvcnRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhFNTI3MDEzNDZCRDE3MDBBRDlD
MzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0REQ0RBNTEz
ODQ1MDFDMDAwOEI3OTMgLyogTUhUTUxBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3
QkY3QTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFF1b3RlRWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzN0REQ0RBNzEzODQ1MDFDMDAwOEI3OTMgLyogTUhUTUxQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUzQjg5NUFGMTlEQzdFRDkwMDlDQUE5MyAvKiBNaWNyb3Rh
c2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0REQ0Q5NTEzODQ0RkQ1MDAwOEI3OTMgLyogTUlN
RUhlYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzYyMSw2ICsyNzQxMCw3IEBACiAJCQkJQzZE
NzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQzYxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNTkxRDRGRTQyMzAwNDEyQUM3IC8qIERP
TUhUTUxIZWFkaW5nRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2
MzA5QUM0Q0U2MDBBNkFBQjQgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODUwMzFCNDgwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlUmVsYXRlZEV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURGQzA5OUU2NDkyMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2NjIsNiArMjc0NTIsNyBA
QAogCQkJCTg1NEZFNzMxMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTRGRTczMzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0RkU3MzUwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGOTMxRDRGRTQyNDAwNDEyQUM3IC8q
IERPTUhUTUxVTGlzdEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODcy
MUIwOTc3RDNDMDAwNTgyNkQ5IC8qIE5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0VB
QzEwNzFCNDgzRDFEMDAzMzQ0ODIgLyogTm9kZU9yU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2MzE4OUFFMzBFODNBMzMzMDAwMTJFNDEgLyogTm9kZVJhcmVEYXRhLmggaW4gSGVhZGVycyAq
LywKQEAgLTI3Njc1LDYgKzI3NDY2LDcgQEAKIAkJCQkzMTI4Q0E2QjE0NzMzMTYzMDA3NEM3MkEg
LyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGRTZERkEx
NTAwNEMyQTAwMDRFQkM0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOThFQjFGOTUxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVk
LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY3MjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRN
TE9wdGlvbnNDb2xsZWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDBC
MEQ3RTJCODIwMDdDMzk4MyAvKiBOUF9qc29iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5
MjdGRDIxNDE2QTE1QjAwM0E4M0M4IC8qIG5wYXBpLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTIx
OUIzQjBEQ0E4N0FCMDA0MEUzQTAgLyogbnBmdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjc3NzksOCArMjc1NzEsMTAgQEAKIAkJCQkyRDUwMDJGQzFCNTZENzk5MDAyMEFBRjcgLyogUGF0
aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThGQTZFNUQwRTRDRkRFRDAwRDVDRjQ5
IC8qIFBhdHRlcm4uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTcxMEQwMEJGMjIwMDcxQjc4
MiAvKiBQYXR0ZXJuQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNDkxRDRG
RTQyMzAwNDEyQUM3IC8qIERPTUhUTUxCYXNlRm9udEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE4QTY0M0ExRDE5RkM1MzAwRDBFMDBGIC8qIFBheW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRTk2QTg4MUQxQTBDRUIwMEI4Njc2OCAvKiBQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNUUxRDRGRTQyMzAwNDEyQUM3
IC8qIERPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThB
NjQzQjFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudENvbnRhY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBNThFODZFMUQxOUU0MkQwMEMwRUE3MyAvKiBQYXltZW50Q29vcmRpbmF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNThFODY2MUQxOUQ0RjAwMEMwRUE3MyAvKiBQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3OTUsNiArMjc1ODksOCBAQAogCQkJ
CTVFQkI4OTM5MUM3N0MzOTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFEZXNjcmlwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCThBODQ0RDA1MTFEM0MxOEUwMDE0MDY1QyAvKiBQZXJmb3Jt
YW5jZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNDgxRDRGRTQyMzAwNDEyQUM3IC8qIERP
TUhUTUxCYXNlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY4QzFE
NEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODZCRTM0MDExNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNl
RW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QkUzNDA0MTUwNThDQjIwMENFMEZEOCAvKiBQ
ZXJmb3JtYW5jZUVudHJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEFGNEU1NTYxMURDNUEz
NjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NzgyNCw2ICsyNzYyMCw3IEBACiAJCQkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QzE5REIzM0RDMDAzODc2RDcg
LyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzBF
MDkxOTE4NzVFRUZDMDAzQTFEM0MgLyogUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFBNjdCRjgxMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFCRjcw
MTAwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3ODU4LDYgKzI3NjU1LDcgQEAKIAkJCQlCQzNCRTEy
QjBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3RjU2N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQTY3QkY4NDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMkMxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZB
RjJFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzQ2QUYzMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKQEAgLTI3ODg5LDYgKzI3Njg3LDcgQEAKIAkJCQk0NDM5MTgwMDFBOTFCMkY4
MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTI1
MjM5MUExNjZGQTAwMDg2NDQ4MCAvKiBRdWlja0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3MkFFMUU4MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGODkxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxU
YWJsZVJvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OUUzNzE3MTM3MzZBNjYwMEI5
RTkxOSAvKiBRdW90ZWRQcmludGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVBNTc0RjI5MTMx
REI5NkQwMDQ3MUI4OCAvKiBRdW90ZXNEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3
MjBEMDBCRjIyMDA3MUI3ODIgLyogUmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI3OTA5LDYgKzI3NzA4LDcgQEAKIAkJCQk0QTBGRkFBNjFBQUY1RUY2MDA2Mjgw
M0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEE0RjY1NzQxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTUxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2
N0JGN0QxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQzNjhFODBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQ0NUE5NTgxNzVENDE0QzAwQzIxRUM4IC8qIFJlY3RhbmdsZVNoYXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5ODMxQUU0QTE1NDIyNUM5MDBGRTI2NDQgLyogUmVmZXJyZXJQb2xp
Y3kuaCBpbiBIZWFkZXJzICovLApAQCAtMjc5MjgsMTIgKzI3NzI4LDE0IEBACiAJCQkJQkMxMEQ3
NjgxN0Q4RUU3MTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY5QjFENEZFNjYzMDA0MTJBQzcgLyogRE9NSFRNTENh
bnZhc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlG
NTAwNTJFQUU5IC8qIFJlbmRlckJveFJlZ2lvbkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RUE0ODY2MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJCdXR0b24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUI1NjU3OUI1MTgyNEQxMkEwMEU3OUYyMyAvKiBSZW5kZXJDaGlsZEl0ZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0U0NDEzNDEyRjc0OEUyMDA5Qjg0QjggLyogUmVuZGVyQ29tYmlu
ZVRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBS
ZW5kZXJDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg2RTA5N0Q5MzAyMDA5NEM5
RTQgLyogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmggaW4gSGVhZGVycyAqLywKKwkJCQkx
QTY3QkY2RjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzNkRBQTA2MUNFQUI4MEQwMEEyQjcwNyAvKiBSZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzMDI3NTRBMTJBNUZFODQwMDRCRDgyOCAv
KiBSZW5kZXJEZXRhaWxzTWFya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzZFNUY3RjEzNUUw
RENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yODA5MCw2ICsyNzg5Miw3IEBACiAJCQkJRTQyOTVGQTQxMkIwNjE0RTAwRDFBQ0UwIC8qIFJl
c291cmNlTG9hZFByaW9yaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTkyOUNBNzFDNTk4QUE5
MDA0REYyMjYgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0FEM0NEREExQzhBMDFBNDAwRjEyNjk4IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGODIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCThBODFCRjg1
MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdFRTY4NDZEMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxNEM3NjdEMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RC
YXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MTAwLDYgKzI3OTAzLDcgQEAKIAkJCQlBNTA3MUU4
NTFDNTZEMERDMDA5OTUxQkUgLyogUmVzb3VyY2VVc2FnZURhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUFEQkFENkVGMUJDREQ5NTcwMDM4MTMyNSAvKiBSZXNvdXJjZVVzYWdlT3ZlcmxheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTUwNzFFODcxQzU2RDBFMTAwOTk1MUJFIC8qIFJlc291cmNlVXNh
Z2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNjdCRjUwMUQ0RkU0MjMwMDQxMkFDNyAv
KiBET01IVE1MRExpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2
MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2
MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJBY2N1bXVsYXRpb25CdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MEE5MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJDb252b2x2ZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMjgxNjUsNiArMjc5NjksNyBAQAogCQkJCTlCRDBCRjkzMTJB
NDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTQxMjk5MDFDNjAxQUNDMDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNFQzAxQkUwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUE2N0JGNkMxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPTGlzdEVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg0RDgyQzExMUQzNDc0ODAwOTcyOTkwIC8qIFNjcmlw
dGFibGVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMUQyMUYwRUYzNUMy
QTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNCNzBENzAwOUVCMEM3QzAwOUQ4NDY4IC8qIFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjgxNzMsNiArMjc5NzgsNyBAQAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlE
QiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYwNjZF
NDBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAzNjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGN0YxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxTdHls
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAv
KiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNENDMTBBMEVEQjIyMzkwMEE2
NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUM3NjBCMTBF
REUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxOTQs
MTEgKzI4MDAwLDEzIEBACiAJCQkJMEY2MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGlu
Z0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1
NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzRFNDBE
MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdDb29yZGluYXRvcklPUy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUE2N0JGN0UxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAv
KiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhCRkYx
NjQ0NzNDNzAwMDkxRUIyIC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVBM0U3QjE5MUIyRkM1MDAwRjFCNTUgLyogU2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUNCRDBEMTYxQTQ0RTkwMEU0Qzg3
NCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTg0MTkx
QjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNEMxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxCdXR0
b25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUNCRDBGMTYxQTQ0RTkw
MEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQjg4OTBGMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUNCRDExMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxp
bmdTdGF0ZVRyZWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyMTEsNiArMjgwMTksNyBAQAogCQkJ
CTBGQzRFNDEwMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlSU9TLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU1ODA2NDE5MzI3QTYyMDBERTMyRUIgLyogU2Nyb2xsaW5nVHJlZU1hYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQURERTQxNERDOEM4RjAwQUY2NEIzIC8qIFNjcm9sbGlu
Z1RyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY3ODFENEZFNDIzMDA0MTJBQzcg
LyogRE9NSFRNTFByZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTNF
ODAxOTFCMzE2OTAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTFBOTlEMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCODg5MEExNjdEMkZB
MTAwMTBDREE1IC8qIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI4MjMyLDEyICsyODA0MSwxNCBAQAogCQkJCTJENUJDNDI3MTZGODgyRUUwMDcwNDhEMCAvKiBT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI1
RTE4QkU5ODRBMDA2Q0VCQ0MgLyogU2VnbWVudGVkSW5wdXRTdG9yYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREEyRjBEMDA2QzFEMDBFRjZGMjYgLyogU2VnbWVudGVkU3RyaW5nLmggaW4g
SGVhZGVycyAqLywKKwkJCQkxQTY3QkY1NTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTEZvcm1F
bGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFQTgwN0M5MEY3MTRBMDMwMDUy
NDE5OSAvKiBTZWxlY3Rpb25SZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQwNUM4OTE5MEIw
MTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRENGQUJCRDE4QzBBRjc4MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0NEI0QkI0MTQxNjUwRDcwMDJCMUQ4QiAvKiBTZWxlY3RvckNoZWNr
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzMkQzRkU4MThBODY1ODQwMEQ3REMwMyAvKiBTZWxl
Y3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNkI5OTk5NzE4
MDRENTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUE2N0JGNjgxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxNb2RFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNTA3MTU4MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZp
bHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDMxMDdCRTIxOENDMTlERTAwQ0MxOEU4IC8qIFNl
bGVjdG9yUHNldWRvVHlwZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ1MzIyQUMxNDBDRTI2
NzAwNUEwRjkyIC8qIFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjgzMTgsNiAr
MjgxMjksNyBAQAogCQkJCTdFNDc0RTFGMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNDc0RTFFMTI0OTREQzkwMDIzNTM2NCAv
KiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1QTY4
NDIyMEZGQUJFOTgwMEQyNDY4OSAvKiBTUUxpdGVGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQTY3QkY0RDFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQkRCNEIxQzQ1NkZGQTAwNjQ5NERGIC8qIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMzAxQzUwQUJGNTAw
MzJGOTgzIC8qIFNRTGl0ZUlEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxMkMx
QzUwQUJCRjAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTI4MzYyLDYgKzI4MTc0LDcgQEAKIAkJCQk5MzkzRTYwNTE1MUE5QTE4MDAwNjZGMDYgLyog
U3R5bGVDYWNoZWRJbWFnZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQwMUUwQTQxQzNDMEI4
MzAwRjM0RDEwIC8qIFN0eWxlQ2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5REFDN0M1NzFB
RjJDQjY0MDA0MzdDNDQgLyogU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUE2N0JGNTMxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxGaWVsZFNldEVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NzlFMTcxQkIyMjdDQTAwQ0FBOEJG
IC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjY3
RjBFODFENEE3MDBCMjU5NjUgLyogU3R5bGVEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QzRBN0ZEMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI4NTE1LDYgKzI4MzI4LDcgQEAKIAkJCQlCMjIyN0EyQTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FC
NjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk2NTBGQkYyQjBEOUFGMDQ3MDA4RkMyOTIgLyogU1ZHSEtlcm5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQTY3QkY2MjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTExpbmtFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNTU5OUE0MEQwMEQ4QkEwMEJCODI1
QyAvKiBTVkdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGODU5RDUxNDYzRjlDRDAwNjdE
OTMzIC8qIFNWR0ltYWdlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTJEMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjg1MjMs
NiArMjgzMzcsOCBAQAogCQkJCTA4NTRCMDFGMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVG
bG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAyMTEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHSW5saW5lVGV4dEJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBMzAwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR0xhbmdTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNTExRDRG
RTQyMzAwNDEyQUM3IC8qIERPTUhUTUxEb2N1bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxQTY3QkY2NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE1ldGFFbGVtZW50SW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTMzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdM
ZW5ndGguaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMzQ0OTZFMTQ2OTQxQjMwMDcyMDMxMiAvKiBT
VkdMZW5ndGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzNjBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODU0NCw2ICsyODM2
MCw3IEBACiAJCQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1Bh
cnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAy
IC8qIFNWR1BhdGhCbGVuZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY2NjFENEZFNDIz
MDA0MTJBQzcgLyogRE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0
aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NTg3LDYgKzI4NDA0LDcg
QEAKIAkJCQk4NDE5RDJCQTEyMEUwQzc2MDAxNDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg0MzAwQkQ2MTIwQzlBQUMwMDIxOTU0QSAvKiBTVkdQYXRo
U3RyaW5nU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEM1QjJGQjEyMTZEQzgxMDA4OEI1
M0EgLyogU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUE2N0JGOTUxRDRGRTQyNDAwNDEyQUM3IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTg4MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOEMwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1BvaW50TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODYzNCw2ICsy
ODQ1Miw3IEBACiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRF
bmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZD
QTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
OEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFBNjdCRjczMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzExNzQ0NTkxNEJDMzRFQzAwRUU1RkM4IC8qIFNWR1Rl
eHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQ0UwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1RleHRQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
RDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjg2NjgsOSArMjg0ODcsMTEgQEAKIAkJCQlDNjUwNDZBOTE2N0JGQjU1MDBD
QzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1NTBCNkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQTY3QkY5MTFENEZFNDI0MDA0MTJBQzcgLyogRE9NSFRNTFRpdGxlRWxlbWVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNzA5OUU2NDkyMDA1NkU1ODEgLyogVGV4dEFm
ZmluaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCNTE1ODZBQkFEMDA5OEIzRkEgLyog
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0RENFNjE4
ODEwNTFEMDAzRUVEQkIgLyogVGV4dEF1dG9TaXppbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTFB
NjdCRjg1MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MVGFibGVDb2xFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREEzNDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJvdW5kYXJpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3MTUxQkQ4MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hl
Y2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3RDAwMTIxMzNCMEFFQjAwRDY2NThD
IC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODcwNSw2ICsyODUyNiw3IEBA
CiAJCQkJQkNFRjQ1RTkwRTY4Nzc2NzAwMUMxMjg3IC8qIFRleHRNZXRyaWNzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNEQ5ODhCNDE3QkZEMUY2MDA4NEZCODggLyogVGV4dE5vZGVUcmF2ZXJzYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFDMThEQTU5MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFp
bnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2N0JGNTYxRDRGRTQyMzAwNDEyQUM3IC8qIERP
TUhUTUxGcmFtZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRDOTFBMEUx
ODAyMzQzMTAwQTE3RjZEIC8qIFRleHRQYWludFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0YxOThGNjA4MjQ1RTU5MDAxRTlBQkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgyNEI0NjUwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBIZWFk
ZXJzICovLApAQCAtMjg3MTYsNiArMjg1MzgsNyBAQAogCQkJCTk3NTlFOTQ2MTRFRjFDRjgwMDI2
QTJERCAvKiBUZXh0VHJhY2tDdWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzY5NzA4NzE0
NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFB
RDRFNzQxM0ExMkE0NjAwODQ2QjI3IC8qIFRleHRUcmFja0xvYWRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUE2N0JGNDUxRDRGRTQyMjAwNDEyQUM3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQ5MTgwRTEzOEIwMDhCOEU2NSAvKiBU
ZXh0VHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlGQUY0QjYxOTVBQjA4
OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0OTg3NzBGMTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODcyNyw2ICsyODU1MCw3IEBACiAJCQkJQkNFNjU5QTkwRUE5MjdCOTAwN0U0NTMzIC8q
IFRoZW1lVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2Qzk1MTIyQjhBM0QwMDFGRDFG
NyAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwQjkwNTYx
QjBGMjU3OEJGMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUE2N0JGNjUxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxNZWRpYUVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEI5MDU2MUMwRjI1NzhCRjAwOTVGRjZBIC8qIFRocmVh
ZGFibGVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0UzQzI5MTcxMDk5NzMw
MDM2NzkzNSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTdBQUJEMTcxNEZBMDlENTAwNzQ1N0FFIC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NzUwLDcgKzI4NTc0LDkgQEAKIAkJCQk0OUU5MTJB
RTBFRkFDOTA2MDA5RDBDQUYgLyogVGltaW5nRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNTRERDA4MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1NEREMDkxODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFBNjdCRjkwMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjU0REQwQTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hMaXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY4NzFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTFRh
YmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1
IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4
RDk4IC8qIFRyYWNrTGlzdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOTEzRDgwMTgxRUY5
MjQwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4Nzgw
LDYgKzI4NjA2LDggQEAKIAkJCQk5QjJEOEE3OTE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjNFMjAxMTM0MzQxMjAwMDI3NDkyNiAvKiBVbmljb2Rl
QmlkaS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4ODY0RTExQkJBRjU3NDAwRTU0MEM5IC8qIFVu
aXF1ZUlEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY2NDFENEZFNDIzMDA0
MTJBQzcgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFBNjdCRjVEMUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MSW1hZ2VFbGVtZW50SW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOThGN0E1MUJCREI3OTMwMEUyQ0M1RiAvKiBVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOThGN0E5MUJC
REQzODUwMEUyQ0M1RiAvKiBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNEFGQ0ZBNTBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yODgxNSw2ICsyODY0Myw3IEBACiAJCQkJQkM4QkYxNTExMDU4MTNCRjAw
QTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCRjE1QTEw
NTgxNDE4MDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTY3QkY0QjFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRN
TEJSRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0
MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTNCQkYwODEx
NjJEQTExMDBCOTQwOUEgLyogVVVJRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjVBMTU0MjgxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
OTUwLDYgKzI4Nzc5LDcgQEAKIAkJCQlBNURFQkRBNDE2RkI5MDg3MDA4MzZGRTAgLyogV2ViS2l0
UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0
QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzA5RThDRjFENDEzRDlBMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQTY3QkY3MTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBG
MkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDlENzhG
MUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKQEAgLTI5OTE4LDEwICsyOTc0OCw3IEBACiAJCQkJODU5QTlDNEEwQUE1RTNCRDAwQjY5NEIy
IC8qIERPTUhUTUxCb2R5RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MTgzQjQzMEFB
NjkyNjEwMEYxOUZBMyAvKiBET01IVE1MQlJFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVCQTRDREUwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJOTNGOUI2NTcwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNF
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOEYwQUEzQzg4MTAwQUQ2NEM1IC8q
IERPTUhUTUxDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJRjVDMDQxRTQwRkZDQTk2
RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKLQkJ
CQlEMzU5RDc5MjEyOUNBM0MwMDAwNkU1RDIgLyogRE9NSFRNTERldGFpbHNFbGVtZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMEMwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxEaXJl
Y3RvcnlFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMEUwQUE2ODg2ODAwODgw
NTJEIC8qIERPTUhUTUxEaXZFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTAw
QUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxETGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywK
QEAgLTI5OTQwLDcgKzI5NzY3LDYgQEAKIAkJCQk4NURGODE5QTBBQTc3RTRCMDA0ODZBRDcgLyog
RE9NSFRNTElGcmFtZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODEyQTBBQTc3
ODcyMDA0ODZBRDcgLyogRE9NSFRNTEltYWdlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg1RjMyQUVEMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MSW5wdXRFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTYxNDhBNjgxMkU0MUQ5NDAwNDRBNzg0IC8qIERPTUhUTUxLZXlnZW5F
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTRDRTIwQUE2ODYxQjAwODgwNTJEIC8q
IERPTUhUTUxMYWJlbEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUJBNENFNDBBQTY4
NjFCMDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk4NUJBNEQxMjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTExJRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLApAQCAtMjk5NTksNyArMjk3ODUsNiBAQAogCQkJCTg1MTgzQjQ3MEFBNjkyNjEwMEYx
OUZBMyAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
RUNCRUY4MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1FbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODUxODNCNDkwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQcmVFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQTQyMjZFOTYxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhU
TUxQcm9ncmVzc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTE4M0I0QjBBQTY5MjYx
MDBGMTlGQTMgLyogRE9NSFRNTFF1b3RlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
REY4MTlDMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1RjMyQUYxMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2VsZWN0RWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLApAQCAtMzA2ODMsNiArMzA1MDgsNyBAQAogCQkJCUUwRkVG
MzcyQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNjA5MDIwMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBNjdCRjlBMUQ0RkU2NjAwMDQxMkFDNyAvKiBE
T01IVE1MQ2FudmFzRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMzMTRBQ0VCMTA4OTIw
ODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzI0
RUQzMzExQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzJGMUFEQTUxQTM5MEI5RjAwMDE0RTE4IC8qIEpTRVhURnJhZ0RlcHRoLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MQW5jaG9yRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMzM5MDIyY2ZlNzE0NGM3YTMzYWUyNzA2
OWM5ZmM2YjA0YzJhN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxBbmNob3JFbGVtZW50LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CitAY2xhc3MgTlNVUkw7CisK
K1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJm
YWNlIERPTUhUTUxBbmNob3JFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSAoY29w
eSkgTlNTdHJpbmcgKmNoYXJzZXQ7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpjb29yZHM7
CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpocmVmbGFuZzsKK0Bwcm9wZXJ0eSAoY29weSkg
TlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpyZWw7CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICpyZXY7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzaGFw
ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnRhcmdldDsKK0Bwcm9wZXJ0eSAoY29weSkg
TlNTdHJpbmcgKnR5cGU7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphY2Nlc3NLZXkgV0VC
S0lUX0RFUFJFQ0FURURfTUFDKDEwXzQsIDEwXzgpOworQHByb3BlcnR5IChyZWFkb25seSwgY29w
eSkgTlNTdHJpbmcgKnRleHQgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkg
KHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqYWJzb2x1dGVMaW5rVVJMIFdFQktJVF9BVkFJTEFCTEVf
TUFDKDEwXzUpOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqaHJlZjsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpwcm90b2NvbCBXRUJLSVRfQVZBSUxBQkxFX01BQygx
MF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpob3N0IFdFQktJVF9B
VkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcg
Kmhvc3RuYW1lIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25s
eSwgY29weSkgTlNTdHJpbmcgKnBvcnQgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJv
cGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqcGF0aG5hbWUgV0VCS0lUX0FWQUlMQUJM
RV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqc2VhcmNo
IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkg
TlNTdHJpbmcgKmhhc2hOYW1lIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQW5jaG9yRWxlbWVu
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEFuY2hvckVsZW1lbnQu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDVhYWE5MDg5NjQwODA0MTlhZmM3ZDk2MDQ0Y2QxNzljZmNjYWE1Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEFu
Y2hvckVsZW1lbnQubW0KQEAgLTAsMCArMSwyODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RE9NSFRNTEFuY2hvckVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01ET01Ub2tlbkxp
c3RJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Q
cml2YXRlLmgiCisjaW1wb3J0ICJET01Ub2tlbkxpc3QuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhh
bmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5h
bWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVh
ZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZh
dGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0
PFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpO
b2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxBbmNob3JFbGVtZW50
CisKKy0gKE5TU3RyaW5nICopY2hhcnNldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6Y2hhcnNldEF0dHIpOworfQorCistICh2b2lkKXNldENoYXJzZXQ6KE5TU3RyaW5n
ICopbmV3Q2hhcnNldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6Y2hhcnNldEF0dHIsIG5ld0NoYXJzZXQpOworfQorCistIChOU1N0cmluZyAq
KWNvb3JkcworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y29vcmRzQXR0
cik7Cit9CisKKy0gKHZvaWQpc2V0Q29vcmRzOihOU1N0cmluZyAqKW5ld0Nvb3JkcworeworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y29vcmRzQXR0
ciwgbmV3Q29vcmRzKTsKK30KKworI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJVVEUpCistIChO
U1N0cmluZyAqKWRvd25sb2FkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
Ojpkb3dubG9hZEF0dHIpOworfQorCistICh2b2lkKXNldERvd25sb2FkOihOU1N0cmluZyAqKW5l
d0Rvd25sb2FkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpkb3dubG9hZEF0dHIsIG5ld0Rvd25sb2FkKTsKK30KKyNlbmRpZgorCistIChOU1N0
cmluZyAqKWhyZWZsYW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpo
cmVmbGFuZ0F0dHIpOworfQorCistICh2b2lkKXNldEhyZWZsYW5nOihOU1N0cmluZyAqKW5ld0hy
ZWZsYW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjpocmVmbGFuZ0F0dHIsIG5ld0hyZWZsYW5nKTsKK30KKworLSAoTlNTdHJpbmcgKiluYW1l
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5nZXROYW1lQXR0cmlidXRlKCk7Cit9CisKKy0gKHZvaWQpc2V0TmFtZTooTlNTdHJp
bmcgKiluZXdOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6
SFRNTE5hbWVzOjpuYW1lQXR0ciwgbmV3TmFtZSk7Cit9CisKKy0gKE5TU3RyaW5nICopcGluZwor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cGluZ0F0dHIpOworfQorCist
ICh2b2lkKXNldFBpbmc6KE5TU3RyaW5nICopbmV3UGluZworeworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cGluZ0F0dHIsIG5ld1BpbmcpOworfQor
CistIChOU1N0cmluZyAqKXJlbAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6cmVsQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UmVsOihOU1N0cmluZyAqKW5ld1JlbAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVsQXR0
ciwgbmV3UmVsKTsKK30KKworLSAoTlNTdHJpbmcgKilyZXYKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OnJldkF0dHIpOworfQorCistICh2b2lkKXNldFJldjooTlNTdHJp
bmcgKiluZXdSZXYKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OnJldkF0dHIsIG5ld1Jldik7Cit9CisKKy0gKE5TU3RyaW5nICopc2hhcGUKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnNoYXBlQXR0cik7Cit9CisKKy0g
KHZvaWQpc2V0U2hhcGU6KE5TU3RyaW5nICopbmV3U2hhcGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnNoYXBlQXR0ciwgbmV3U2hhcGUpOwor
fQorCistIChOU1N0cmluZyAqKXRhcmdldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6dGFyZ2V0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0VGFyZ2V0OihOU1N0cmluZyAq
KW5ld1RhcmdldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6dGFyZ2V0QXR0ciwgbmV3VGFyZ2V0KTsKK30KKworLSAoTlNTdHJpbmcgKil0eXBl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp0eXBlQXR0cik7Cit9CisK
Ky0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKiluZXdUeXBlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp0eXBlQXR0ciwgbmV3VHlwZSk7Cit9
CisKKy0gKE5TU3RyaW5nICopYWNjZXNzS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjphY2Nlc3NrZXlBdHRyKTsKK30KKworLSAodm9pZClzZXRBY2Nlc3NLZXk6KE5T
U3RyaW5nICopbmV3QWNjZXNzS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjphY2Nlc3NrZXlBdHRyLCBuZXdBY2Nlc3NLZXkpOworfQorCist
IChOU1N0cmluZyAqKXRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnRleHQoKTsKK30KKworLSAoTlNVUkwgKilhYnNvbHV0
ZUxpbmtVUkwKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIFtzZWxmIF9nZXRVUkxBdHRyaWJ1dGU6QCJocmVmIl07Cit9CisKKy0gKERPTURP
TVRva2VuTGlzdCAqKXJlbExpc3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5yZWxMaXN0KCkpKTsK
K30KKworLSAoTlNTdHJpbmcgKilocmVmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpocmVmQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0SHJlZjooTlNTdHJpbmcgKilu
ZXdIcmVmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjpocmVmQXR0ciwgbmV3SHJlZik7Cit9CisKKy0gKE5TU3RyaW5nICopb3JpZ2luCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5vcmlnaW4oKTsKK30KKworLSAoTlNTdHJpbmcgKilwcm90b2NvbAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+cHJvdG9jb2wo
KTsKK30KKworLSAoTlNTdHJpbmcgKilob3N0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5ob3N0KCk7Cit9CisKKy0gKE5TU3Ry
aW5nICopaG9zdG5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmhvc3RuYW1lKCk7Cit9CisKKy0gKE5TU3RyaW5nICopcG9y
dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+cG9ydCgpOworfQorCistIChOU1N0cmluZyAqKXBhdGhuYW1lCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5wYXRo
bmFtZSgpOworfQorCistIChOU1N0cmluZyAqKXNlYXJjaAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2VhcmNoKCk7Cit9CisK
Ky0gKE5TU3RyaW5nICopaGFzaE5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc2goKTsKK30KKworQGVuZAorCitXZWJD
b3JlOjpIVE1MQW5jaG9yRWxlbWVudCogY29yZShET01IVE1MQW5jaG9yRWxlbWVudCAqd3JhcHBl
cikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRN
TEFuY2hvckVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTEFu
Y2hvckVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudCogdmFsdWUpCit7Cisg
ICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NSFRNTEFuY2hvckVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MQW5jaG9yRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxBbmNob3JFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjIw
NjZkM2YzMTFjMGM3OWUxNDE1ODdmMzFlZjZhMThmNjlkZmJmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQW5jaG9yRWxlbWVudEludGVybmFs
LmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MQW5jaG9yRWxlbWVudC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MQW5jaG9yRWxlbWVudDsKK30KKworV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQqIGNvcmUoRE9NSFRNTEFuY2hv
ckVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MQW5jaG9yRWxlbWVudCAqa2l0KFdl
YkNvcmU6OkhUTUxBbmNob3JFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxBcHBsZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxBcHBsZXRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFmYTAxNDdhZDQ5
ZDhlZWQ0NGQ5ZTg4YTE2MWRlOTYwMGRlMGM2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEFwcGxldEVsZW1lbnQuaApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKKwor
V0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZh
Y2UgRE9NSFRNTEFwcGxldEVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChjb3B5
KSBOU1N0cmluZyAqYWxpZ247CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphbHQ7CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICphcmNoaXZlOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmlu
ZyAqY29kZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNvZGVCYXNlOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqaGVpZ2h0OworQHByb3BlcnR5IGludCBoc3BhY2U7CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqb2Jq
ZWN0OworQHByb3BlcnR5IGludCB2c3BhY2U7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp3
aWR0aDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTEFwcGxldEVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxBcHBsZXRFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3N2M3N2Q4YWM3NThhNGZlOGRmODEzZjQx
M2Q5NzlmMzA1YTRjMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxBcHBsZXRFbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTg5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTUhUTUxBcHBsZXRF
bGVtZW50LmgiCisKKyNpbXBvcnQgIkRPTUhUTUxBcHBsZXRFbGVtZW50SW50ZXJuYWwuaCIKKyNp
bXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIK
KyNpbXBvcnQgIkhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNp
bXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIK
KyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2lt
cG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
SFRNTEFwcGxldEVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50
ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTEFwcGxldEVsZW1lbnQKKworLSAoTlNT
dHJpbmcgKilhbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxp
Z25BdHRyKTsKK30KKworLSAodm9pZClzZXRBbGlnbjooTlNTdHJpbmcgKiluZXdBbGlnbgorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25B
dHRyLCBuZXdBbGlnbik7Cit9CisKKy0gKE5TU3RyaW5nICopYWx0Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphbHRBdHRyKTsKK30KKworLSAodm9pZClzZXRBbHQ6KE5T
U3RyaW5nICopbmV3QWx0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjphbHRBdHRyLCBuZXdBbHQpOworfQorCistIChOU1N0cmluZyAqKWFyY2hp
dmUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFyY2hpdmVBdHRyKTsK
K30KKworLSAodm9pZClzZXRBcmNoaXZlOihOU1N0cmluZyAqKW5ld0FyY2hpdmUKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFyY2hpdmVBdHRy
LCBuZXdBcmNoaXZlKTsKK30KKworLSAoTlNTdHJpbmcgKiljb2RlCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjb2RlQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q29kZToo
TlNTdHJpbmcgKiluZXdDb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjb2RlQXR0ciwgbmV3Q29kZSk7Cit9CisKKy0gKE5TU3RyaW5nICop
Y29kZUJhc2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvZGViYXNl
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q29kZUJhc2U6KE5TU3RyaW5nICopbmV3Q29kZUJhc2UK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNv
ZGViYXNlQXR0ciwgbmV3Q29kZUJhc2UpOworfQorCistIChOU1N0cmluZyAqKWhlaWdodAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aGVpZ2h0QXR0cik7Cit9CisKKy0g
KHZvaWQpc2V0SGVpZ2h0OihOU1N0cmluZyAqKW5ld0hlaWdodAoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgbmV3SGVpZ2h0
KTsKK30KKworLSAoaW50KWhzcGFjZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpoc3BhY2VBdHRyKTsKK30KKworLSAodm9pZClzZXRIc3BhY2U6KGludClu
ZXdIc3BhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpoc3BhY2VB
dHRyLCBuZXdIc3BhY2UpOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldE5hbWVB
dHRyaWJ1dGUoKTsKK30KKworLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAqKW5ld05hbWUKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om5hbWVB
dHRyLCBuZXdOYW1lKTsKK30KKworLSAoTlNTdHJpbmcgKilvYmplY3QKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJp
YnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6Om9iamVjdEF0dHIpOworfQorCistICh2b2lkKXNldE9i
amVjdDooTlNTdHJpbmcgKiluZXdPYmplY3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om9iamVjdEF0dHIsIG5ld09iamVjdCk7Cit9CisKKy0g
KGludCl2c3BhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6dnNwYWNlQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0VnNwYWNlOihpbnQpbmV3VnNwYWNlCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNl
dEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dnNwYWNlQXR0ciwgbmV3VnNw
YWNlKTsKK30KKworLSAoTlNTdHJpbmcgKil3aWR0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6d2lkdGhBdHRyKTsKK30KKworLSAodm9pZClzZXRXaWR0aDooTlNTdHJp
bmcgKiluZXdXaWR0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6d2lkdGhBdHRyLCBuZXdXaWR0aCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6
SFRNTEFwcGxldEVsZW1lbnQqIGNvcmUoRE9NSFRNTEFwcGxldEVsZW1lbnQgKndyYXBwZXIpCit7
CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxBcHBs
ZXRFbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxBcHBsZXRF
bGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqIHZhbHVlKQoreworICAgIFdl
YkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERPTUhUTUxBcHBsZXRFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUq
Pih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTEFwcGxldEVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MQXBwbGV0RWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE2ZDMyMDQ0
YWYwZGNmYzg1OGI4YjdhZmQ1YjVkMTFiYWM0OGZkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEFwcGxldEVsZW1lbnRJbnRlcm5hbC5oCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEFwcGxldEVsZW1lbnQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7Cit9CisKK1dFQkNPUkVf
RVhQT1JUIFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50KiBjb3JlKERPTUhUTUxBcHBsZXRFbGVt
ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTEFwcGxldEVsZW1lbnQgKmtpdChXZWJDb3Jl
OjpIVE1MQXBwbGV0RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTEFyZWFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWYyZDY5ODJlOTU4YTY3NTllZmQy
ODg4ZGNmZmY3OWQ3MDAxNTQ0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTEFyZWFFbGVtZW50LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2Vi
Q29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CitAY2xhc3MgTlNVUkw7
CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIERPTUhUTUxBcmVhRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKGNv
cHkpIE5TU3RyaW5nICphbHQ7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpjb29yZHM7CitA
cHJvcGVydHkgQk9PTCBub0hyZWY7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzaGFwZTsK
K0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnRhcmdldDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKmFjY2Vzc0tleSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfOCk7CitAcHJv
cGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqYWJzb2x1dGVMaW5rVVJMIFdFQktJVF9BVkFJ
TEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqaHJlZjsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpwcm90b2NvbCBXRUJLSVRfQVZBSUxBQkxF
X01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpob3N0IFdF
QktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNT
dHJpbmcgKmhvc3RuYW1lIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChy
ZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnBvcnQgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7
CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqcGF0aG5hbWUgV0VCS0lUX0FW
QUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAq
c2VhcmNoIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSwg
Y29weSkgTlNTdHJpbmcgKmhhc2hOYW1lIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQXJlYUVs
ZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxBcmVhRWxlbWVu
dC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZjEyMDg0NDgwNmUyNWNkNTVjM2VmYjc2MGY3YWIxYjg3ODNhN2Fm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
QXJlYUVsZW1lbnQubW0KQEAgLTAsMCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RE9NSFRNTEFyZWFFbGVtZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRE9NVG9rZW5MaXN0
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NUHJp
dmF0ZS5oIgorI2ltcG9ydCAiRE9NVG9rZW5MaXN0LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMu
aCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hl
Y2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
IgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6SFRNTEFyZWFFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4o
X2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxBcmVhRWxlbWVudAorCistIChO
U1N0cmluZyAqKWFsdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YWx0
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QWx0OihOU1N0cmluZyAqKW5ld0FsdAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YWx0QXR0ciwgbmV3
QWx0KTsKK30KKworLSAoTlNTdHJpbmcgKiljb29yZHMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OmNvb3Jkc0F0dHIpOworfQorCistICh2b2lkKXNldENvb3JkczooTlNT
dHJpbmcgKiluZXdDb29yZHMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OmNvb3Jkc0F0dHIsIG5ld0Nvb3Jkcyk7Cit9CisKKy0gKEJPT0wpbm9I
cmVmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6bm9ocmVmQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Tm9IcmVmOihCT09MKW5ld05v
SHJlZgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bm9ocmVmQXR0ciwg
bmV3Tm9IcmVmKTsKK30KKworLSAoTlNTdHJpbmcgKilwaW5nCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpwaW5nQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UGluZzooTlNT
dHJpbmcgKiluZXdQaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpwaW5nQXR0ciwgbmV3UGluZyk7Cit9CisKKy0gKE5TU3RyaW5nICopcmVs
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWxBdHRyKTsKK30KKwor
LSAodm9pZClzZXRSZWw6KE5TU3RyaW5nICopbmV3UmVsCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWxBdHRyLCBuZXdSZWwpOworfQorCist
IChOU1N0cmluZyAqKXNoYXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpzaGFwZUF0dHIpOworfQorCistICh2b2lkKXNldFNoYXBlOihOU1N0cmluZyAqKW5ld1NoYXBl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpz
aGFwZUF0dHIsIG5ld1NoYXBlKTsKK30KKworLSAoTlNTdHJpbmcgKil0YXJnZXQKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdldEF0dHIpOworfQorCistICh2b2lk
KXNldFRhcmdldDooTlNTdHJpbmcgKiluZXdUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdldEF0dHIsIG5ld1RhcmdldCk7Cit9
CisKKy0gKE5TU3RyaW5nICopYWNjZXNzS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjphY2Nlc3NrZXlBdHRyKTsKK30KKworLSAodm9pZClzZXRBY2Nlc3NLZXk6KE5T
U3RyaW5nICopbmV3QWNjZXNzS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjphY2Nlc3NrZXlBdHRyLCBuZXdBY2Nlc3NLZXkpOworfQorCist
IChOU1VSTCAqKWFic29sdXRlTGlua1VSTAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gW3NlbGYgX2dldFVSTEF0dHJpYnV0ZTpAImhyZWYi
XTsKK30KKworLSAoRE9NRE9NVG9rZW5MaXN0ICopcmVsTGlzdAoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElN
UEwtPnJlbExpc3QoKSkpOworfQorCistIChOU1N0cmluZyAqKWhyZWYKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFVSTEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmhyZWZBdHRyKTsKK30KKworLSAodm9pZClzZXRI
cmVmOihOU1N0cmluZyAqKW5ld0hyZWYKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OmhyZWZBdHRyLCBuZXdIcmVmKTsKK30KKworLSAoTlNTdHJp
bmcgKilvcmlnaW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPm9yaWdpbigpOworfQorCistIChOU1N0cmluZyAqKXByb3RvY29s
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5wcm90b2NvbCgpOworfQorCistIChOU1N0cmluZyAqKWhvc3QKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhvc3Qo
KTsKK30KKworLSAoTlNTdHJpbmcgKilob3N0bmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aG9zdG5hbWUoKTsKK30KKwor
LSAoTlNTdHJpbmcgKilwb3J0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5wb3J0KCk7Cit9CisKKy0gKE5TU3RyaW5nICopcGF0
aG5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPnBhdGhuYW1lKCk7Cit9CisKKy0gKE5TU3RyaW5nICopc2VhcmNoCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5zZWFyY2goKTsKK30KKworLSAoTlNTdHJpbmcgKiloYXNoTmFtZQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzaCgpOwor
fQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxBcmVhRWxlbWVudCogY29yZShET01IVE1MQXJlYUVs
ZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQor
CitET01IVE1MQXJlYUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQqIHZhbHVl
KQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PERPTUhUTUxBcmVhRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJD
b3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxBcmVhRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxBcmVhRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc0
NGZmM2JkYWIxYWZlNjZjMmZjZjAwMjM1MTEzMTE1NmY2ODBjYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEFyZWFFbGVtZW50SW50ZXJuYWwu
aApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxBcmVhRWxlbWVudC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MQXJlYUVsZW1lbnQ7Cit9CisKK1dFQkNPUkVf
RVhQT1JUIFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudCogY29yZShET01IVE1MQXJlYUVsZW1lbnQg
Kik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MQXJlYUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1M
QXJlYUVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTEJSRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
QlJFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUzNjU2ZDU5MjcxNjIzNzU4N2QwZjFjMDQ5ZDliZWNh
MDQzODQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTEJSRWxlbWVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVs
ZW1lbnQuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01B
QygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01IVE1MQlJFbGVtZW50IDogRE9N
SFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNsZWFyOworQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQlJFbGVtZW50Lm1t
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQlJFbGVtZW50Lm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI4MWQwMDBmNDBjODYwNjRiNjhhNjFmNjI3NjA0OTUzMzlkZTQ1YmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCUkVsZW1lbnQu
bW0KQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MQlJFbGVt
ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTEJSRWxlbWVudC5oIgorI2ltcG9ydCAi
SFRNTE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQg
IlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVj
dFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkhUTUxCUkVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6
Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTEJSRWxlbWVudAor
CistIChOU1N0cmluZyAqKWNsZWFyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjbGVhckF0dHIpOworfQorCistICh2b2lkKXNldENsZWFyOihOU1N0cmluZyAqKW5ld0Ns
ZWFyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElN
UEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVz
OjpjbGVhckF0dHIsIG5ld0NsZWFyKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MQlJFbGVt
ZW50KiBjb3JlKERPTUhUTUxCUkVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBw
ZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxCUkVsZW1lbnQqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTEJSRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxC
UkVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5k
T25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxCUkVsZW1lbnQqPihraXQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQlJFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJSRWxlbWVudEludGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWNhY2YxNDE1NGI1NDg5ODI0ODUzMGU4OTgwOGNhNGI3MTMwNWZjMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJSRWxlbWVudElu
dGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MQlJFbGVtZW50Lmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxCUkVsZW1lbnQ7Cit9CisKK1dFQkNP
UkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxCUkVsZW1lbnQqIGNvcmUoRE9NSFRNTEJSRWxlbWVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxCUkVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MQlJF
bGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQmFz
ZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzRkMGVlMWUzOWQ2NGY0MWIzMTVmYWQyZGY2ZGQ2ZTRl
MmZmZDEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MQmFzZUVsZW1lbnQuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxF
bGVtZW50Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9N
QUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTEJhc2VFbGVtZW50IDog
RE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmhyZWY7CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICp0YXJnZXQ7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTEJhc2VFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMGE5MzFh
MjM4MmQ1YmQ4YjE1OWIwYzhkZmIxZWRlNzc4YTdhYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRWxlbWVudC5tbQpAQCAtMCwwICsx
LDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUhUTUxCYXNlRWxlbWVudEludGVybmFs
LmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFu
ZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxCYXNlRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVz
LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENo
ZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdl
YkNvcmU6OkhUTUxCYXNlRWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MQmFzZUVsZW1lbnQKKworLSAo
TlNTdHJpbmcgKilocmVmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5ocmVmKCk7Cit9CisKKy0gKHZvaWQpc2V0SHJlZjooTlNT
dHJpbmcgKiluZXdIcmVmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEhyZWYobmV3SHJlZik7Cit9CisKKy0gKE5TU3RyaW5nICopdGFy
Z2V0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp0YXJnZXRBdHRyKTsK
K30KKworLSAodm9pZClzZXRUYXJnZXQ6KE5TU3RyaW5nICopbmV3VGFyZ2V0Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp0YXJnZXRBdHRyLCBu
ZXdUYXJnZXQpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxCYXNlRWxlbWVudCogY29yZShE
T01IVE1MQmFzZUVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWlu
dGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxCYXNlRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5h
bCkgOiAwOworfQorCitET01IVE1MQmFzZUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MQmFzZUVs
ZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25l
KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxCYXNlRWxlbWVudCo+KGtpdChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRWxlbWVudEludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRWxlbWVudEludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzc2MGI1YWY5ODc5YzYzNmVhMGI4ZGExZGNmY2U4ZDFmMzk1NmJjMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJhc2VFbGVt
ZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxCYXNlRWxl
bWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MQmFzZUVsZW1lbnQ7Cit9
CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxCYXNlRWxlbWVudCogY29yZShET01IVE1M
QmFzZUVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MQmFzZUVsZW1lbnQgKmtpdChX
ZWJDb3JlOjpIVE1MQmFzZUVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTEJhc2VGb250RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MQmFzZUZvbnRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyMWI1MmM3
OThmYWFkMWZlYjk0ODgwODkzNGJlMDc4ZmRlMWU2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJhc2VGb250RWxlbWVudC5oCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3RyaW5n
OworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGlu
dGVyZmFjZSBET01IVE1MQmFzZUZvbnRFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKmNvbG9yOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqZmFj
ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnNpemU7CitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRm9udEVsZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRm9udEVsZW1lbnQubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2M2Y2M5YzgzNjg1NDcyMzI0ZjNlNTJkNmY3NTI4NTJiMzQ0MjE5NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJhc2VGb250
RWxlbWVudC5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUhU
TUxCYXNlRm9udEVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MQmFzZUZvbnRF
bGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4
ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2lt
cG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgor
CisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTEJhc2VGb250RWxlbWVudCo+
KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1l
bnRhdGlvbiBET01IVE1MQmFzZUZvbnRFbGVtZW50CisKKy0gKE5TU3RyaW5nICopY29sb3IKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbG9yQXR0cik7Cit9CisKKy0g
KHZvaWQpc2V0Q29sb3I6KE5TU3RyaW5nICopbmV3Q29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbG9yQXR0ciwgbmV3Q29sb3IpOwor
fQorCistIChOU1N0cmluZyAqKWZhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OmZhY2VBdHRyKTsKK30KKworLSAodm9pZClzZXRGYWNlOihOU1N0cmluZyAqKW5ld0Zh
Y2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6
OmZhY2VBdHRyLCBuZXdGYWNlKTsKK30KKworLSAoTlNTdHJpbmcgKilzaXplCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzaXplQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
U2l6ZTooTlNTdHJpbmcgKiluZXdTaXplCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpzaXplQXR0ciwgbmV3U2l6ZSk7Cit9CisKK0BlbmQKKwor
V2ViQ29yZTo6SFRNTEJhc2VGb250RWxlbWVudCogY29yZShET01IVE1MQmFzZUZvbnRFbGVtZW50
ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpIVE1MQmFzZUZvbnRFbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisK
K0RPTUhUTUxCYXNlRm9udEVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MQmFzZUZvbnRFbGVtZW50
KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MQmFzZUZvbnRFbGVtZW50Kj4oa2l0KHN0YXRp
Y19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCYXNlRm9udEVsZW1lbnRJbnRlcm5h
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI2M2E3M2JlM2ZjNWQ3ZTA4MTMwNGM2OWNlN2QwMTIwMTU4MTRkMTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxC
YXNlRm9udEVsZW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9N
SFRNTEJhc2VGb250RWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1M
QmFzZUZvbnRFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MQmFzZUZv
bnRFbGVtZW50KiBjb3JlKERPTUhUTUxCYXNlRm9udEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9S
VCBET01IVE1MQmFzZUZvbnRFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEJhc2VGb250RWxlbWVu
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQm9k
eUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJvZHlFbGVt
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTEyNTQ0ZWRhZjA1ODYwYzM1ZDJjZjYyY2M4N2RhYmY1ZDRiYTEx
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TEJvZHlFbGVtZW50LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVu
dC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEw
XzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxCb2R5RWxlbWVudCA6IERPTUhU
TUxFbGVtZW50CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphTGluazsKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmJhY2tncm91bmQ7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpi
Z0NvbG9yOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqbGluazsKK0Bwcm9wZXJ0eSAoY29w
eSkgTlNTdHJpbmcgKnRleHQ7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp2TGluazsKK0Bl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJvZHlF
bGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQm9keUVsZW1l
bnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2JkZjU5YzAyYWU3NTFiMmI0Y2JiNjU2ZGYzNDVlYTc5MGRjMTgz
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TEJvZHlFbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IkRPTUhUTUxCb2R5RWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxCb2R5RWxl
bWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVj
U3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBv
cnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKwor
I2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVudCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlv
biBET01IVE1MQm9keUVsZW1lbnQKKworLSAoTlNTdHJpbmcgKilhTGluaworeworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpbmtBdHRyKTsKK30KKworLSAodm9pZClzZXRB
TGluazooTlNTdHJpbmcgKiluZXdBTGluaworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpbmtBdHRyLCBuZXdBTGluayk7Cit9CisKKy0gKE5T
U3RyaW5nICopYmFja2dyb3VuZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6YmFja2dyb3VuZEF0dHIpOworfQorCistICh2b2lkKXNldEJhY2tncm91bmQ6KE5TU3RyaW5n
ICopbmV3QmFja2dyb3VuZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNv
cmU6OkhUTUxOYW1lczo6YmFja2dyb3VuZEF0dHIsIG5ld0JhY2tncm91bmQpOworfQorCistIChO
U1N0cmluZyAqKWJnQ29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmJnY29sb3JBdHRyKTsKK30KKworLSAodm9pZClzZXRCZ0NvbG9yOihOU1N0cmluZyAqKW5ld0Jn
Q29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OmJnY29sb3JBdHRyLCBuZXdCZ0NvbG9yKTsKK30KKworLSAoTlNTdHJpbmcgKilsaW5rCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpsaW5rQXR0cik7Cit9CisKKy0g
KHZvaWQpc2V0TGluazooTlNTdHJpbmcgKiluZXdMaW5rCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpsaW5rQXR0ciwgbmV3TGluayk7Cit9CisK
Ky0gKE5TU3RyaW5nICopdGV4dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6dGV4dEF0dHIpOworfQorCistICh2b2lkKXNldFRleHQ6KE5TU3RyaW5nICopbmV3VGV4dAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dGV4
dEF0dHIsIG5ld1RleHQpOworfQorCistIChOU1N0cmluZyAqKXZMaW5rCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2bGlua0F0dHIpOworfQorCistICh2b2lkKXNldFZM
aW5rOihOU1N0cmluZyAqKW5ld1ZMaW5rCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjp2bGlua0F0dHIsIG5ld1ZMaW5rKTsKK30KKworQGVuZAor
CitXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQqIGNvcmUoRE9NSFRNTEJvZHlFbGVtZW50ICp3cmFw
cGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpI
VE1MQm9keUVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTEJv
ZHlFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBX
ZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxET01IVE1MQm9keUVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+
KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MQm9keUVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MQm9keUVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMzExMTIzNDZhYzFj
ZDEyOTQ1NDcxZjQxNjVjNjQ5ZDc4N2M4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCb2R5RWxlbWVudEludGVybmFsLmgKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MQm9keUVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgSFRNTEJvZHlFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJD
b3JlOjpIVE1MQm9keUVsZW1lbnQqIGNvcmUoRE9NSFRNTEJvZHlFbGVtZW50ICopOworV0VCQ09S
RV9FWFBPUlQgRE9NSFRNTEJvZHlFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCdXR0
b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCdXR0b25F
bGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2YTczMDE2MjI1YjdhYWE1YjI5ZTU0NDFjN2FkZGZmMTU1
ZDk4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTEJ1dHRvbkVsZW1lbnQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxF
bGVtZW50Lmg+CisKK0BjbGFzcyBET01IVE1MRm9ybUVsZW1lbnQ7CitAY2xhc3MgTlNTdHJpbmc7
CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIERPTUhUTUxCdXR0b25FbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSBC
T09MIGF1dG9mb2N1cyBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF82KTsKK0Bwcm9wZXJ0eSBCT09M
IGRpc2FibGVkOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01IVE1MRm9ybUVsZW1l
bnQgKmZvcm07CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp0eXBlOworQHByb3BlcnR5IChj
b3B5KSBOU1N0cmluZyAqbmFtZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnZhbHVlOwor
QHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB3aWxsVmFsaWRhdGUgV0VCS0lUX0FWQUlMQUJMRV9N
QUMoMTBfNik7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphY2Nlc3NLZXkgV0VCS0lUX0RF
UFJFQ0FURURfTUFDKDEwXzQsIDEwXzgpOworCistICh2b2lkKWNsaWNrIFdFQktJVF9BVkFJTEFC
TEVfTUFDKDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MQnV0dG9uRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA1NjQ4ZWZmMmExZDZhYTUw
OWJjZWY0M2QyYmI3YjIwZGUxNDBlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0KQEAgLTAsMCArMSwyNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTEJ1dHRvbkVsZW1lbnRJbnRlcm5hbC5oIgor
CisjaW1wb3J0ICJET01IVE1MRm9ybUVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlTGlzdEludGVybmFsLmgiCisjaW1wb3J0ICJE
T01WYWxpZGl0eVN0YXRlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgi
CisjaW1wb3J0ICJIVE1MQnV0dG9uRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTEZvcm1FbGVtZW50
LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oIgorI2ltcG9ydCAiTmFtZU5vZGVMaXN0LmgiCisjaW1wb3J0ICJOb2RlTGlzdC5oIgorI2lt
cG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiVmFsaWRpdHlT
dGF0ZS5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3Rm
L0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTEJ1dHRv
bkVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQor
CitAaW1wbGVtZW50YXRpb24gRE9NSFRNTEJ1dHRvbkVsZW1lbnQKKworLSAoQk9PTClhdXRvZm9j
dXMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjphdXRvZm9jdXNBdHRyKTsKK30KKworLSAodm9pZClzZXRBdXRvZm9jdXM6KEJPT0wp
bmV3QXV0b2ZvY3VzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphdXRv
Zm9jdXNBdHRyLCBuZXdBdXRvZm9jdXMpOworfQorCistIChCT09MKWRpc2FibGVkCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5o
YXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlz
YWJsZWRBdHRyKTsKK30KKworLSAodm9pZClzZXREaXNhYmxlZDooQk9PTCluZXdEaXNhYmxlZAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRyLCBuZXdE
aXNhYmxlZCk7Cit9CisKKy0gKERPTUhUTUxGb3JtRWxlbWVudCAqKWZvcm0KK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6Omdl
dFB0cihJTVBMLT5mb3JtKCkpKTsKK30KKworLSAoTlNTdHJpbmcgKilmb3JtQWN0aW9uCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5mb3JtQWN0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0Rm9ybUFjdGlvbjooTlNTdHJpbmcgKilu
ZXdGb3JtQWN0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldEZvcm1BY3Rpb24obmV3Rm9ybUFjdGlvbik7Cit9CisKKy0gKE5TU3Ry
aW5nICopZm9ybUVuY3R5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmZvcm1FbmN0eXBlKCk7Cit9CisKKy0gKHZvaWQpc2V0
Rm9ybUVuY3R5cGU6KE5TU3RyaW5nICopbmV3Rm9ybUVuY3R5cGUKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Rm9ybUVuY3R5cGUobmV3
Rm9ybUVuY3R5cGUpOworfQorCistIChOU1N0cmluZyAqKWZvcm1NZXRob2QKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmZvcm1N
ZXRob2QoKTsKK30KKworLSAodm9pZClzZXRGb3JtTWV0aG9kOihOU1N0cmluZyAqKW5ld0Zvcm1N
ZXRob2QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0Rm9ybU1ldGhvZChuZXdGb3JtTWV0aG9kKTsKK30KKworLSAoTlNTdHJpbmcgKil0
eXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT50eXBlKCk7Cit9CisKKy0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKiluZXdU
eXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElN
UEwtPnNldFR5cGUobmV3VHlwZSk7Cit9CisKKy0gKEJPT0wpZm9ybU5vVmFsaWRhdGUKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwt
Pmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpm
b3Jtbm92YWxpZGF0ZUF0dHIpOworfQorCistICh2b2lkKXNldEZvcm1Ob1ZhbGlkYXRlOihCT09M
KW5ld0Zvcm1Ob1ZhbGlkYXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
Ojpmb3Jtbm92YWxpZGF0ZUF0dHIsIG5ld0Zvcm1Ob1ZhbGlkYXRlKTsKK30KKworLSAoTlNTdHJp
bmcgKilmb3JtVGFyZ2V0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpm
b3JtdGFyZ2V0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Rm9ybVRhcmdldDooTlNTdHJpbmcgKilu
ZXdGb3JtVGFyZ2V0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6
SFRNTE5hbWVzOjpmb3JtdGFyZ2V0QXR0ciwgbmV3Rm9ybVRhcmdldCk7Cit9CisKKy0gKE5TU3Ry
aW5nICopbmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0TmFtZUF0dHJpYnV0ZSgpOworfQorCistICh2b2lkKXNldE5h
bWU6KE5TU3RyaW5nICopbmV3TmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6bmFtZUF0dHIsIG5ld05hbWUpOworfQorCistIChOU1N0cmlu
ZyAqKXZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2YWx1ZUF0
dHIpOworfQorCistICh2b2lkKXNldFZhbHVlOihOU1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp2YWx1ZUF0dHIs
IG5ld1ZhbHVlKTsKK30KKworLSAoQk9PTCl3aWxsVmFsaWRhdGUKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndpbGxWYWxpZGF0
ZSgpOworfQorCistIChET01WYWxpZGl0eVN0YXRlICopdmFsaWRpdHkKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0
cihJTVBMLT52YWxpZGl0eSgpKSk7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3Nh
Z2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPnZhbGlkYXRpb25NZXNzYWdlKCk7Cit9CisKKy0gKERPTU5vZGVMaXN0ICopbGFi
ZWxzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bGFiZWxzKCkpKTsKK30KKworLSAoTlNTdHJpbmcg
KilhY2Nlc3NLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFjY2Vz
c2tleUF0dHIpOworfQorCistICh2b2lkKXNldEFjY2Vzc0tleTooTlNTdHJpbmcgKiluZXdBY2Nl
c3NLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OmFjY2Vzc2tleUF0dHIsIG5ld0FjY2Vzc0tleSk7Cit9CisKKy0gKEJPT0wpY2hlY2tWYWxp
ZGl0eQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+Y2hlY2tWYWxpZGl0eSgpOworfQorCistICh2b2lkKXNldEN1c3RvbVZhbGlk
aXR5OihOU1N0cmluZyAqKWVycm9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEN1c3RvbVZhbGlkaXR5KGVycm9yKTsKK30KKworLSAo
dm9pZCljbGljaworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBJTVBMLT5jbGljaygpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxCdXR0b25FbGVt
ZW50KiBjb3JlKERPTUhUTUxCdXR0b25FbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVudCo+KHdy
YXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MQnV0dG9uRWxlbWVudCAqa2l0KFdl
YkNvcmU6OkhUTUxCdXR0b25FbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlv
bGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MQnV0
dG9uRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCdXR0b25F
bGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJ1
dHRvbkVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2Nzg1MDVkOWFlYmEwY2MxYzE1ZGY4
NTI3ZmJkMjYwZTQ5YTlkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxCdXR0b25FbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0IDxXZWJDb3JlL0RPTUhUTUxCdXR0b25FbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIEhUTUxCdXR0b25FbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3Jl
OjpIVE1MQnV0dG9uRWxlbWVudCogY29yZShET01IVE1MQnV0dG9uRWxlbWVudCAqKTsKK1dFQkNP
UkVfRVhQT1JUIERPTUhUTUxCdXR0b25FbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEJ1dHRvbkVs
ZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTENh
bnZhc0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjg3MGUwZThkZWVlNDIwZjljY2NkODdmNzlmZWZh
YjE0ODQ5NTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9N
SFRNTEVsZW1lbnQuaD4KKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNSkKK1dFQkNP
UkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTENhbnZhc0VsZW1lbnQgOiBET01IVE1MRWxlbWVu
dAorQHByb3BlcnR5IGludCB3aWR0aDsKK0Bwcm9wZXJ0eSBpbnQgaGVpZ2h0OworQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQ2FudmFzRWxlbWVu
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTENhbnZhc0VsZW1lbnQu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDdkMDg5ZTVlNjk3ZTA2YzA4YjUwODYxNzI2YzIxMTMzZGFkYWU3OQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTENh
bnZhc0VsZW1lbnQubW0KQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJE
T01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxDYW52YXNF
bGVtZW50LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFBy
aXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19j
YXN0PFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxDYW52YXNFbGVt
ZW50CisKKy0gKGludCl3aWR0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+d2lkdGgoKTsKK30KKworLSAodm9pZClzZXRXaWR0
aDooaW50KW5ld1dpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldFdpZHRoKG5ld1dpZHRoKTsKK30KKworLSAoaW50KWhlaWdodAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+aGVpZ2h0KCk7Cit9CisKKy0gKHZvaWQpc2V0SGVpZ2h0OihpbnQpbmV3SGVpZ2h0Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNl
dEhlaWdodChuZXdIZWlnaHQpOworfQorCistIChOU1N0cmluZyAqKXRvRGF0YVVSTDooTlNTdHJp
bmcgKil0eXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIE5TU3RyaW5nICpyZXN1bHQg
PSBJTVBMLT50b0RhdGFVUkwodHlwZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJv
cihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudCogY29yZShET01IVE1MQ2FudmFzRWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICBy
ZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTENhbnZhc0VsZW1lbnQg
KmtpdChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
SFRNTENhbnZhc0VsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVl
KSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
Q2FudmFzRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxDYW52YXNFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmFmYTYyMjQzYTA3MTA4
ZjYwZTE0ZjJlMzZkMzFlMTFmMDFmNDc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MQ2FudmFzRWxlbWVudC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQg
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQqIGNvcmUoRE9NSFRNTENhbnZhc0VsZW1lbnQgKik7
CitXRUJDT1JFX0VYUE9SVCBET01IVE1MQ2FudmFzRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxDb2xsZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVkMDNjN2Q1YWJiMGM1Y2Y1NTQwMmYwYjMwYjJm
ZjI3MzA5NWQwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTENvbGxlY3Rpb24uaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTU9i
amVjdC5oPgorCitAY2xhc3MgRE9NTm9kZTsKK0BjbGFzcyBET01Ob2RlTGlzdDsKK0BjbGFzcyBO
U1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NSFRNTENvbGxlY3Rpb24gOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHkpIHVuc2lnbmVkIGxlbmd0aDsKKworLSAoRE9NTm9kZSAqKWl0ZW06KHVuc2lnbmVk
KWluZGV4OworLSAoRE9NTm9kZSAqKW5hbWVkSXRlbTooTlNTdHJpbmcgKiluYW1lOworLSAoRE9N
Tm9kZUxpc3QgKil0YWdzOihOU1N0cmluZyAqKW5hbWUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBf
Nik7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQ29s
bGVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDJlYWE2OWM5ZjQyMDIxZDFlZmE3ZThmYjdjM2U5Zjkx
YzM4MTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MQ29sbGVjdGlvbi5tbQpAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTUludGVybmFs
LmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVMaXN0SW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MQ29s
bGVjdGlvbi5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJO
YW1lTm9kZUxpc3QuaCIKKyNpbXBvcnQgIk5vZGUuaCIKKyNpbXBvcnQgIk5vZGVMaXN0LmgiCisj
aW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJDb3Jl
T2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9y
dCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpIVE1MQ29sbGVjdGlvbio+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxD
b2xsZWN0aW9uCisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVk
dWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbRE9NSFRNTENvbGxlY3Rpb24gY2xhc3NdLCBzZWxm
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKF9pbnRlcm5hbCkKKyAgICAgICAgSU1QTC0+
ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHVuc2lnbmVkKWxlbmd0aAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+bGVuZ3RoKCk7Cit9CisKKy0gKERPTU5vZGUgKilpdGVtOih1bnNpZ25lZClpbmRleAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPml0ZW0oaW5kZXgpKSk7Cit9CisKKy0gKERPTU5vZGUgKilu
YW1lZEl0ZW06KE5TU3RyaW5nICopbmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm5hbWVkSXRl
bShuYW1lKSkpOworfQorCistIChET01Ob2RlTGlzdCAqKXRhZ3M6KE5TU3RyaW5nICopbmFtZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPnRhZ3MobmFtZSkpKTsKK30KKworQGVuZAorCitXZWJDb3Jl
OjpIVE1MQ29sbGVjdGlvbiogY29yZShET01IVE1MQ29sbGVjdGlvbiAqd3JhcHBlcikKK3sKKyAg
ICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTENvbGxlY3Rp
b24qPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTENvbGxlY3Rpb24gKmtp
dChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbiogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZp
b2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4g
bmlsOworICAgIGlmIChET01IVE1MQ29sbGVjdGlvbiAqd3JhcHBlciA9IGdldERPTVdyYXBwZXIo
dmFsdWUpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVyIHJldGFpbl0gYXV0b3JlbGVhc2VdOwor
ICAgIERPTUhUTUxDb2xsZWN0aW9uICp3cmFwcGVyID0gW1traXRDbGFzcyh2YWx1ZSkgYWxsb2Nd
IF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgd3Jh
cHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZh
bHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVyLCB2YWx1
ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5hbC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGYwZTRmYTQxYTFjMzAyMzI4NGFjZDc3ZmExZTE0YWYzNjAzZTNhMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTENvbGxl
Y3Rpb25JbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTENvbGxl
Y3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTENvbGxlY3Rpb247Cit9
CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uKiBjb3JlKERPTUhUTUxD
b2xsZWN0aW9uICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTENvbGxlY3Rpb24gKmtpdChXZWJD
b3JlOjpIVE1MQ29sbGVjdGlvbiopOworQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TERMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRExp
c3RFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmNmEwYmE3NGE5MTcyODQ2MDhkMDVjMGI2M2Y5MTIw
OTNmYjg2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTERMaXN0RWxlbWVudC5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRN
TEVsZW1lbnQuaD4KKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTERMaXN0RWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitA
cHJvcGVydHkgQk9PTCBjb21wYWN0OworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MRExpc3RFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MRExpc3RFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NGEyZWYwZWEx
YTFlN2NjYmFiYTM5NjFjZGQ5NjdmYjhmZjE2YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxETGlzdEVsZW1lbnQubW0KQEAgLTAsMCArMSw2
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MRExpc3RFbGVtZW50SW50ZXJuYWwu
aCIKKworI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSFRNTERMaXN0RWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVz
LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENo
ZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYv
R2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MRExpc3RF
bGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKwor
QGltcGxlbWVudGF0aW9uIERPTUhUTUxETGlzdEVsZW1lbnQKKworLSAoQk9PTCljb21wYWN0Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6Y29tcGFjdEF0dHIpOworfQorCistICh2b2lkKXNldENvbXBhY3Q6KEJPT0wpbmV3Q29tcGFj
dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBM
LT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y29tcGFjdEF0dHIsIG5l
d0NvbXBhY3QpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxETGlzdEVsZW1lbnQqIGNvcmUo
RE9NSFRNTERMaXN0RWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTERMaXN0RWxlbWVudCo+KHdyYXBwZXItPl9pbnRl
cm5hbCkgOiAwOworfQorCitET01IVE1MRExpc3RFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTERM
aXN0RWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91
bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTERMaXN0RWxlbWVudCo+KGtp
dChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxETGlzdEVsZW1lbnRJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRExpc3RFbGVtZW50SW50ZXJu
YWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hOGE1Njk3OTFiNDEyZDU2YTcyODk5MDk0MGNmZThmMjYzMjljNWIz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
RExpc3RFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhU
TUxETGlzdEVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTERMaXN0
RWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTERMaXN0RWxlbWVudCog
Y29yZShET01IVE1MRExpc3RFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTERMaXN0
RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxETGlzdEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NGEzMjYyZjVjMTNiY2UyMTYwYTMwYmFmZGQ0MWI5ZGU0MzczMmIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRGlyZWN0b3J5
RWxlbWVudC5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4K
KworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRl
cmZhY2UgRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5
IEJPT0wgY29tcGFjdDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYmVmMTg4Yzlm
NGRjYmNlYTRmMTc1MzAwZjNlNjNiNTI4MjczNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50Lm1tCkBAIC0wLDAg
KzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTERpcmVjdG9yeUVsZW1lbnRJ
bnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2Vw
dGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2ltcG9y
dCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBv
cnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisj
aW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpIVE1MRGlyZWN0b3J5RWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MRGlyZWN0b3J5RWxlbWVudAor
CistIChCT09MKWNvbXBhY3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjb21wYWN0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q29t
cGFjdDooQk9PTCluZXdDb21wYWN0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjb21wYWN0QXR0ciwgbmV3Q29tcGFjdCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRN
TERpcmVjdG9yeUVsZW1lbnQqIGNvcmUoRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQgKndyYXBwZXIp
Cit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxE
aXJlY3RvcnlFbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxE
aXJlY3RvcnlFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTERpcmVjdG9yeUVsZW1lbnQqIHZhbHVl
KQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PERPTUhUTUxEaXJlY3RvcnlFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0
PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTERpcmVjdG9yeUVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzdlNWYzMjI1NjAxMjc0Yjg2NTM1Y2NiYTA1YzBlNzM1ZDJjNDEwYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERpcmVj
dG9yeUVsZW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRN
TERpcmVjdG9yeUVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTERp
cmVjdG9yeUVsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxEaXJlY3Rv
cnlFbGVtZW50KiBjb3JlKERPTUhUTUxEaXJlY3RvcnlFbGVtZW50ICopOworV0VCQ09SRV9FWFBP
UlQgRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MRGlyZWN0b3J5RWxl
bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
RGl2RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRGl2RWxl
bWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0Y2NjYmFkZTZlMjFlMDVlNGQ3ZDY3N2Q3OGEyNWY3Njg0YThh
OTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxEaXZFbGVtZW50LmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVu
dC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEw
XzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxEaXZFbGVtZW50IDogRE9NSFRN
TEVsZW1lbnQKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmFsaWduOworQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRGl2RWxlbWVudC5tbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERpdkVsZW1lbnQubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjVmNDVjZjE5OGQ5MzU4NTE0ODhmZGEwYmRlNDBkNjVmMzNjNDY0MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERpdkVsZW1lbnQu
bW0KQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MRGl2RWxl
bWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxEaXZFbGVtZW50LmgiCisjaW1wb3J0
ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9y
dCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6SFRNTERpdkVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNv
cmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTERpdkVsZW1l
bnQKKworLSAoTlNTdHJpbmcgKilhbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6YWxpZ25BdHRyKTsKK30KKworLSAodm9pZClzZXRBbGlnbjooTlNTdHJpbmcgKilu
ZXdBbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6YWxpZ25BdHRyLCBuZXdBbGlnbik7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTERp
dkVsZW1lbnQqIGNvcmUoRE9NSFRNTERpdkVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJu
IHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxEaXZFbGVtZW50Kj4od3Jh
cHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxEaXZFbGVtZW50ICpraXQoV2ViQ29y
ZTo6SFRNTERpdkVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25D
aGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxEaXZFbGVtZW50
Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERpdkVsZW1lbnRJbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRGl2RWxlbWVudEludGVy
bmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzA2ZjgwZDg1Y2JhMmU0MmMyNDc1ODc1NWFlYmE4Nzc5ZGY4NDdk
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TERpdkVsZW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRN
TERpdkVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTERpdkVsZW1l
bnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxEaXZFbGVtZW50KiBjb3JlKERP
TUhUTUxEaXZFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTERpdkVsZW1lbnQgKmtp
dChXZWJDb3JlOjpIVE1MRGl2RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTERvY3VtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg5YmRjMzZiYzJlNDk0ZDU0OTQw
NmNlMTkxMmUyZjIyYmMxMWM0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTERvY3VtZW50LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9ET01Eb2N1bWVudC5oPgorCitAY2xhc3MgRE9NSFRNTENvbGxlY3Rpb247CitAY2xhc3MgTlNT
dHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTUhUTUxEb2N1bWVudCA6IERPTURvY3VtZW50CitAcHJvcGVydHkgKHJl
YWRvbmx5LCBzdHJvbmcpIERPTUhUTUxDb2xsZWN0aW9uICplbWJlZHMgV0VCS0lUX0FWQUlMQUJM
RV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUhUTUxDb2xsZWN0
aW9uICpwbHVnaW5zIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFk
b25seSwgc3Ryb25nKSBET01IVE1MQ29sbGVjdGlvbiAqc2NyaXB0cyBXRUJLSVRfQVZBSUxBQkxF
X01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB3aWR0aCBXRUJLSVRfQVZBSUxB
QkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBoZWlnaHQgV0VCS0lUX0FW
QUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpkaXIgV0VCS0lU
X0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpkZXNpZ25N
b2RlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSwgY29w
eSkgTlNTdHJpbmcgKmNvbXBhdE1vZGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNik7CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICpiZ0NvbG9yIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUp
OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqZmdDb2xvciBXRUJLSVRfQVZBSUxBQkxFX01B
QygxMF81KTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmFsaW5rQ29sb3IgV0VCS0lUX0FW
QUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpsaW5rQ29sb3Ig
V0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp2
bGlua0NvbG9yIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworCistICh2b2lkKW9wZW47Cist
ICh2b2lkKWNsb3NlOworLSAodm9pZCl3cml0ZTooTlNTdHJpbmcgKil0ZXh0OworLSAodm9pZCl3
cml0ZWxuOihOU1N0cmluZyAqKXRleHQ7CistICh2b2lkKWNsZWFyIFdFQktJVF9BVkFJTEFCTEVf
TUFDKDEwXzYpOworLSAodm9pZCljYXB0dXJlRXZlbnRzIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEw
XzUpOworLSAodm9pZClyZWxlYXNlRXZlbnRzIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOwor
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRG9j
dW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxEb2N1bWVudC5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lZTNkMmM3YjBhZjhkNGNjNmZiNjIyMDA2ZThjYjQwOTZmMmE1YjJmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRG9j
dW1lbnQubW0KQEAgLTAsMCArMSwyMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRN
TERvY3VtZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbXBvcnQgIkhUTUxEb2N1bWVu
dC5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRD
aGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRl
LmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpIVE1MRG9jdW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihf
aW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTERvY3VtZW50CisKKy0gKERPTUhU
TUxDb2xsZWN0aW9uICopZW1iZWRzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+ZW1iZWRzKCkpKTsK
K30KKworLSAoRE9NSFRNTENvbGxlY3Rpb24gKilwbHVnaW5zCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1Q
TC0+cGx1Z2lucygpKSk7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopc2NyaXB0cworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0
KFdURjo6Z2V0UHRyKElNUEwtPnNjcmlwdHMoKSkpOworfQorCistIChpbnQpd2lkdGgKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwt
PndpZHRoKCk7Cit9CisKKy0gKGludCloZWlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhlaWdodCgpOworfQorCistIChO
U1N0cmluZyAqKWRpcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+ZGlyKCk7Cit9CisKKy0gKHZvaWQpc2V0RGlyOihOU1N0cmlu
ZyAqKW5ld0RpcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBJTVBMLT5zZXREaXIobmV3RGlyKTsKK30KKworLSAoTlNTdHJpbmcgKilkZXNpZ25Nb2Rl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5kZXNpZ25Nb2RlKCk7Cit9CisKKy0gKHZvaWQpc2V0RGVzaWduTW9kZTooTlNTdHJp
bmcgKiluZXdEZXNpZ25Nb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldERlc2lnbk1vZGUobmV3RGVzaWduTW9kZSk7Cit9CisKKy0g
KE5TU3RyaW5nICopY29tcGF0TW9kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y29tcGF0TW9kZSgpOworfQorCistIChOU1N0
cmluZyAqKWJnQ29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmJnQ29sb3IoKTsKK30KKworLSAodm9pZClzZXRCZ0NvbG9y
OihOU1N0cmluZyAqKW5ld0JnQ29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QmdDb2xvcihuZXdCZ0NvbG9yKTsKK30KKworLSAo
TlNTdHJpbmcgKilmZ0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5mZ0NvbG9yKCk7Cit9CisKKy0gKHZvaWQpc2V0RmdD
b2xvcjooTlNTdHJpbmcgKiluZXdGZ0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEZnQ29sb3IobmV3RmdDb2xvcik7Cit9CisK
Ky0gKE5TU3RyaW5nICopYWxpbmtDb2xvcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+YWxpbmtDb2xvcigpOworfQorCistICh2
b2lkKXNldEFsaW5rQ29sb3I6KE5TU3RyaW5nICopbmV3QWxpbmtDb2xvcgoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBbGlua0NvbG9y
KG5ld0FsaW5rQ29sb3IpOworfQorCistIChOU1N0cmluZyAqKWxpbmtDb2xvcgoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bGlu
a0NvbG9yKCk7Cit9CisKKy0gKHZvaWQpc2V0TGlua0NvbG9yOihOU1N0cmluZyAqKW5ld0xpbmtD
b2xvcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRMaW5rQ29sb3IobmV3TGlua0NvbG9yKTsKK30KKworLSAoTlNTdHJpbmcgKil2bGlu
a0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT52bGlua0NvbG9yKCk7Cit9CisKKy0gKHZvaWQpc2V0VmxpbmtDb2xvcjoo
TlNTdHJpbmcgKiluZXdWbGlua0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFZsaW5rQ29sb3IobmV3VmxpbmtDb2xvcik7Cit9
CisKKy0gKHZvaWQpb3BlbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBJTVBMLT5vcGVuKCk7Cit9CisKKy0gKHZvaWQpY2xvc2UKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+Y2xvc2UoKTsKK30K
KworLSAodm9pZCl3cml0ZTooTlNTdHJpbmcgKil0ZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPndyaXRlKHRleHQpOworfQorCistICh2
b2lkKXdyaXRlbG46KE5TU3RyaW5nICopdGV4dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT53cml0ZWxuKHRleHQpOworfQorCistICh2b2lk
KWNsZWFyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPmNsZWFyKCk7Cit9CisKKy0gKHZvaWQpY2FwdHVyZUV2ZW50cworeworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5jYXB0dXJlRXZlbnRz
KCk7Cit9CisKKy0gKHZvaWQpcmVsZWFzZUV2ZW50cworeworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5yZWxlYXNlRXZlbnRzKCk7Cit9CisKK0Bl
bmQKKworV2ViQ29yZTo6SFRNTERvY3VtZW50KiBjb3JlKERPTUhUTUxEb2N1bWVudCAqd3JhcHBl
cikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRN
TERvY3VtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxEb2N1bWVu
dCAqa2l0KFdlYkNvcmU6OkhUTUxEb2N1bWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVh
ZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRN
TERvY3VtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERvY3VtZW50
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTERvY3VtZW50
SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzk4MGIzYmYxNWJlYTNlMzA3ZTA3YjZjNTY1NDQzN2E1
MTQ2N2JkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MRG9jdW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9N
SFRNTERvY3VtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxEb2N1bWVu
dDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTERvY3VtZW50KiBjb3JlKERPTUhU
TUxEb2N1bWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxEb2N1bWVudCAqa2l0KFdlYkNv
cmU6OkhUTUxEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzMGFmZjYwNTQ2YmQwYTAzZGYxY2JkYzVlNzc1YTYw
MGNlOTRlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxFbGVtZW50LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01FbGVtZW50
Lmg+CisKK0BjbGFzcyBET01IVE1MQ29sbGVjdGlvbjsKK0BjbGFzcyBOU1N0cmluZzsKKworV0VC
S0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2Ug
RE9NSFRNTEVsZW1lbnQgOiBET01FbGVtZW50CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp0
aXRsZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmxhbmc7CitAcHJvcGVydHkgKGNvcHkp
IE5TU3RyaW5nICpkaXI7CitAcHJvcGVydHkgaW50IHRhYkluZGV4OworQHByb3BlcnR5IChjb3B5
KSBOU1N0cmluZyAqYWNjZXNzS2V5IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzgpOworQHByb3Bl
cnR5IChjb3B5KSBOU1N0cmluZyAqaW5uZXJUZXh0OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmlu
ZyAqb3V0ZXJUZXh0OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqY29udGVudEVkaXRhYmxl
OworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBpc0NvbnRlbnRFZGl0YWJsZTsKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKmlkTmFtZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykg
RE9NSFRNTENvbGxlY3Rpb24gKmNoaWxkcmVuOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkg
TlNTdHJpbmcgKnRpdGxlRGlzcGxheVN0cmluZyBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsK
KworLSAodm9pZCljbGljayBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF84KTsKK0BlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEVsZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxFbGVtZW50Lm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFlODc2NGRlNjcwYTYyNzBmMzk1ZmM5NzYwM2JkZjEzYTE0YTA4MWEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxFbGVtZW50Lm1tCkBAIC0w
LDAgKzEsMjg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUhUTUxFbGVtZW50SW50ZXJu
YWwuaCIKKworI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1M
Q29sbGVjdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBv
cnQgIkVsZW1lbnQuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJI
VE1MQ29sbGVjdGlvbi5oIgorI2ltcG9ydCAiSFRNTEVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxO
YW1lcy5oIgorI2ltcG9ydCAiSGl0VGVzdFJlc3VsdC5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisj
aW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+
CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MRWxlbWVudCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlv
biBET01IVE1MRWxlbWVudAorCistIChOU1N0cmluZyAqKXRpdGxlCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp0aXRsZUF0dHIpOworfQorCistICh2b2lkKXNldFRpdGxl
OihOU1N0cmluZyAqKW5ld1RpdGxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjp0aXRsZUF0dHIsIG5ld1RpdGxlKTsKK30KKworLSAoTlNTdHJp
bmcgKilsYW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpsYW5nQXR0
cik7Cit9CisKKy0gKHZvaWQpc2V0TGFuZzooTlNTdHJpbmcgKiluZXdMYW5nCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpsYW5nQXR0ciwgbmV3
TGFuZyk7Cit9CisKKy0gKEJPT0wpdHJhbnNsYXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT50cmFuc2xhdGUoKTsKK30KKwor
LSAodm9pZClzZXRUcmFuc2xhdGU6KEJPT0wpbmV3VHJhbnNsYXRlCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFRyYW5zbGF0ZShuZXdU
cmFuc2xhdGUpOworfQorCistIChOU1N0cmluZyAqKWRpcgoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+ZGlyKCk7Cit9CisKKy0g
KHZvaWQpc2V0RGlyOihOU1N0cmluZyAqKW5ld0RpcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXREaXIobmV3RGlyKTsKK30KKworLSAo
aW50KXRhYkluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT50YWJJbmRleCgpOworfQorCistICh2b2lkKXNldFRhYkluZGV4
OihpbnQpbmV3VGFiSW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgSU1QTC0+c2V0VGFiSW5kZXgobmV3VGFiSW5kZXgpOworfQorCistIChCT09M
KWRyYWdnYWJsZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+ZHJhZ2dhYmxlKCk7Cit9CisKKy0gKHZvaWQpc2V0RHJhZ2dhYmxl
OihCT09MKW5ld0RyYWdnYWJsZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXREcmFnZ2FibGUobmV3RHJhZ2dhYmxlKTsKK30KKworLSAo
TlNTdHJpbmcgKil3ZWJraXRkcm9wem9uZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6d2Via2l0ZHJvcHpvbmVBdHRyKTsKK30KKworLSAodm9pZClzZXRXZWJraXRkcm9w
em9uZTooTlNTdHJpbmcgKiluZXdXZWJraXRkcm9wem9uZQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6d2Via2l0ZHJvcHpvbmVBdHRyLCBuZXdX
ZWJraXRkcm9wem9uZSk7Cit9CisKKy0gKEJPT0wpaGlkZGVuCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6aGlkZGVuQXR0cik7Cit9
CisKKy0gKHZvaWQpc2V0SGlkZGVuOihCT09MKW5ld0hpZGRlbgoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6aGlkZGVuQXR0ciwgbmV3SGlkZGVuKTsKK30KKworLSAoTlNT
dHJpbmcgKilhY2Nlc3NLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmFjY2Vzc2tleUF0dHIpOworfQorCistICh2b2lkKXNldEFjY2Vzc0tleTooTlNTdHJpbmcgKilu
ZXdBY2Nlc3NLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OmFjY2Vzc2tleUF0dHIsIG5ld0FjY2Vzc0tleSk7Cit9CisKKy0gKE5TU3RyaW5n
ICopaW5uZXJUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5pbm5lclRleHQoKTsKK30KKworLSAodm9pZClzZXRJbm5lclRl
eHQ6KE5TU3RyaW5nICopbmV3SW5uZXJUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IElNUEwtPnNldElubmVyVGV4dChuZXdJbm5lclRleHQsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlz
ZU9uRE9NRXJyb3IoZWMpOworfQorCistIChOU1N0cmluZyAqKW91dGVyVGV4dAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+b3V0
ZXJUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0T3V0ZXJUZXh0OihOU1N0cmluZyAqKW5ld091dGVy
VGV4dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRPdXRlclRleHQobmV3
T3V0ZXJUZXh0LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKwor
LSAoTlNTdHJpbmcgKiljb250ZW50RWRpdGFibGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNvbnRlbnRFZGl0YWJsZSgpOwor
fQorCistICh2b2lkKXNldENvbnRlbnRFZGl0YWJsZTooTlNTdHJpbmcgKiluZXdDb250ZW50RWRp
dGFibGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0Q29udGVudEVkaXRh
YmxlKG5ld0NvbnRlbnRFZGl0YWJsZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJv
cihlYyk7Cit9CisKKy0gKEJPT0wpaXNDb250ZW50RWRpdGFibGUKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmlzQ29udGVudEVk
aXRhYmxlKCk7Cit9CisKKy0gKEJPT0wpc3BlbGxjaGVjaworeworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c3BlbGxjaGVjaygpOwor
fQorCistICh2b2lkKXNldFNwZWxsY2hlY2s6KEJPT0wpbmV3U3BlbGxjaGVjaworeworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRTcGVsbGNo
ZWNrKG5ld1NwZWxsY2hlY2spOworfQorCistIChOU1N0cmluZyAqKWlkTmFtZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0
SWRBdHRyaWJ1dGUoKTsKK30KKworLSAodm9pZClzZXRJZE5hbWU6KE5TU3RyaW5nICopbmV3SWRO
YW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElN
UEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVz
OjppZEF0dHIsIG5ld0lkTmFtZSk7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopY2hpbGRy
ZW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5jaGlsZHJlbigpKSk7Cit9CisKKy0gKE5TU3RyaW5n
ICopdGl0bGVEaXNwbGF5U3RyaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBXZWJDb3JlOjpkaXNwbGF5U3RyaW5nKElNUEwtPnRpdGxl
KCksIGNvcmUoc2VsZikpOworfQorCistIChET01FbGVtZW50ICopaW5zZXJ0QWRqYWNlbnRFbGVt
ZW50OihOU1N0cmluZyAqKXdoZXJlIGVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGlmICghZWxlbWVu
dCkKKyAgICAgICAgV2ViQ29yZTo6cmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsKKyAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01FbGVtZW50ICpyZXN1bHQgPSBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+aW5zZXJ0QWRqYWNlbnRFbGVtZW50KHdoZXJlLCAqY29yZShlbGVt
ZW50KSwgZWMpKSk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCistICh2b2lkKWluc2VydEFkamFjZW50SFRNTDooTlNTdHJpbmcgKil3
aGVyZSBodG1sOihOU1N0cmluZyAqKWh0bWwKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
SU1QTC0+aW5zZXJ0QWRqYWNlbnRIVE1MKHdoZXJlLCBodG1sLCBlYyk7CisgICAgV2ViQ29yZTo6
cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKworLSAodm9pZClpbnNlcnRBZGphY2VudFRleHQ6KE5T
U3RyaW5nICopd2hlcmUgdGV4dDooTlNTdHJpbmcgKil0ZXh0Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIElNUEwtPmluc2VydEFkamFjZW50VGV4dCh3aGVyZSwgdGV4dCwgZWMpOworICAg
IFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKHZvaWQpY2xpY2sKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+Y2xpY2so
KTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MRWxlbWVudCogY29yZShET01IVE1MRWxlbWVu
dCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6SFRNTEVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRN
TEVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29y
ZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RE9NSFRNTEVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRWxl
bWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxFbGVt
ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDJjMzRkZjE1NTI0NjIzMGFjNWYyZWZlZTZkYjY5
YjQ0ZmYxNTUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9E
T01IVE1MRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MRWxlbWVu
dDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTEVsZW1lbnQqIGNvcmUoRE9NSFRN
TEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MRWxlbWVudCAqa2l0KFdlYkNvcmU6
OkhUTUxFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTEVtYmVkRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNmQzZjkzMDllZTVlYjIwMjBkYjQxMjM3
OTU4NjRmYzg0YjIzY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3Jl
L0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FW
QUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTEVtYmVk
RWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphbGln
bjsKK0Bwcm9wZXJ0eSBpbnQgaGVpZ2h0OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqbmFt
ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnNyYzsKK0Bwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKnR5cGU7CitAcHJvcGVydHkgaW50IHdpZHRoOworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRW1iZWRFbGVtZW50Lm1tIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRW1iZWRFbGVtZW50Lm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkZTkwYmQ2MGQwNGFlYzFkNjEzMThkMzI4NDZmZTExY2Y0ZTMzMWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQubW0K
QEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTEVtYmVkRWxl
bWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbXBv
cnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRP
YmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxX
ZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxFbWJl
ZEVsZW1lbnQKKworLSAoTlNTdHJpbmcgKilhbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyKTsKK30KKworLSAodm9pZClzZXRBbGlnbjooTlNTdHJp
bmcgKiluZXdBbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBuZXdBbGlnbik7Cit9CisKKy0gKGludCloZWlnaHQKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aGVpZ2h0QXR0cik7
Cit9CisKKy0gKHZvaWQpc2V0SGVpZ2h0OihpbnQpbmV3SGVpZ2h0Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEludGVncmFsQXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgbmV3SGVpZ2h0KTsKK30KKworLSAo
TlNTdHJpbmcgKiluYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5nZXROYW1lQXR0cmlidXRlKCk7Cit9CisKKy0gKHZvaWQp
c2V0TmFtZTooTlNTdHJpbmcgKiluZXdOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpuYW1lQXR0ciwgbmV3TmFtZSk7Cit9CisKKy0gKE5T
U3RyaW5nICopc3JjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpz
cmNBdHRyKTsKK30KKworLSAodm9pZClzZXRTcmM6KE5TU3RyaW5nICopbmV3U3JjCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpzcmNBdHRyLCBu
ZXdTcmMpOworfQorCistIChOU1N0cmluZyAqKXR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OnR5cGVBdHRyKTsKK30KKworLSAodm9pZClzZXRUeXBlOihOU1N0cmlu
ZyAqKW5ld1R5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OnR5cGVBdHRyLCBuZXdUeXBlKTsKK30KKworLSAoaW50KXdpZHRoCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5n
ZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0cik7Cit9CisK
Ky0gKHZvaWQpc2V0V2lkdGg6KGludCluZXdXaWR0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgbmV3V2lkdGgpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkhUTUxFbWJlZEVsZW1lbnQqIGNvcmUoRE9NSFRNTEVtYmVkRWxlbWVudCAqd3JhcHBlcikK
K3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTEVt
YmVkRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MRW1iZWRF
bGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudCogdmFsdWUpCit7CisgICAgV2Vi
Q29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RE9NSFRNTEVtYmVkRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4o
dmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxFbWJlZEVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MRW1iZWRFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGM3ZGExYjY2NzE5
MDhlNzdhNjg5NmZjZDU4ODNiZjQyOTk5Mzc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRW1iZWRFbGVtZW50SW50ZXJuYWwuaApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbWJlZEVsZW1lbnQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgSFRNTEVtYmVkRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQg
V2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudCogY29yZShET01IVE1MRW1iZWRFbGVtZW50ICopOwor
V0VCQ09SRV9FWFBPUlQgRE9NSFRNTEVtYmVkRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxFbWJl
ZEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTEZpZWxkU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MRmllbGRTZXRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY0YWU3MzQ5Yjc1ZTdiZTZhOTkzNjcy
ODA1Mzk3Nzc3MDM4YmNlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdl
YkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIERPTUhUTUxGb3JtRWxlbWVudDsKKwor
V0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZh
Y2UgRE9NSFRNTEZpZWxkU2V0RWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKHJl
YWRvbmx5LCBzdHJvbmcpIERPTUhUTUxGb3JtRWxlbWVudCAqZm9ybTsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTJjZWZlNDZiZjIyN2UzMDhlYmQ0NDhlOTFhY2I0ODM2M2QwYjllCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRmll
bGRTZXRFbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IkRPTUhUTUxGaWVsZFNldEVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01IVE1MQ29s
bGVjdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1MRm9ybUVsZW1lbnRJbnRlcm5hbC5o
IgorI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgor
I2ltcG9ydCAiRE9NVmFsaWRpdHlTdGF0ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbXBvcnQgIkhUTUxGaWVs
ZFNldEVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxGb3JtRWxlbWVudC5oIgorI2ltcG9ydCAiSFRN
TE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIlZhbGlkaXR5U3RhdGUuaCIK
KyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIu
aD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxGaWVsZFNldEVsZW1l
bnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1w
bGVtZW50YXRpb24gRE9NSFRNTEZpZWxkU2V0RWxlbWVudAorCistIChCT09MKWRpc2FibGVkCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6ZGlzYWJsZWRBdHRyKTsKK30KKworLSAodm9pZClzZXREaXNhYmxlZDooQk9PTCluZXdEaXNh
YmxlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRy
LCBuZXdEaXNhYmxlZCk7Cit9CisKKy0gKERPTUhUTUxGb3JtRWxlbWVudCAqKWZvcm0KK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChX
VEY6OmdldFB0cihJTVBMLT5mb3JtKCkpKTsKK30KKworLSAoTlNTdHJpbmcgKiluYW1lCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5nZXROYW1lQXR0cmlidXRlKCk7Cit9CisKKy0gKHZvaWQpc2V0TmFtZTooTlNTdHJpbmcgKilu
ZXdOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjpuYW1lQXR0ciwgbmV3TmFtZSk7Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
dHlwZSgpOworfQorCistIChET01IVE1MQ29sbGVjdGlvbiAqKWVsZW1lbnRzCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpn
ZXRQdHIoSU1QTC0+ZWxlbWVudHNGb3JOYXRpdmVCaW5kaW5ncygpKSk7Cit9CisKKy0gKEJPT0wp
d2lsbFZhbGlkYXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT53aWxsVmFsaWRhdGUoKTsKK30KKworLSAoRE9NVmFsaWRpdHlT
dGF0ZSAqKXZhbGlkaXR5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+dmFsaWRpdHkoKSkpOworfQor
CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52YWxpZGF0aW9uTWVzc2Fn
ZSgpOworfQorCistIChCT09MKWNoZWNrVmFsaWRpdHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNoZWNrVmFsaWRpdHkoKTsK
K30KKworLSAodm9pZClzZXRDdXN0b21WYWxpZGl0eTooTlNTdHJpbmcgKillcnJvcgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRDdXN0
b21WYWxpZGl0eShlcnJvcik7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxl
bWVudCogY29yZShET01IVE1MRmllbGRTZXRFbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVy
biB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50
Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxGaWVsZFNldEVsZW1lbnQg
KmtpdChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3Jl
VGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxE
T01IVE1MRmllbGRTZXRFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2
YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTEZpZWxkU2V0RWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxGaWVsZFNldEVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyMDE3Y2Yx
ZDU4MWRjODBkNzRkMjUxMzRlNzUzNjQ5MDk2YmM0MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGaWVsZFNldEVsZW1lbnRJbnRlcm5hbC5o
CkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MRmllbGRTZXRFbGVtZW50OworfQorCitX
RUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50KiBjb3JlKERPTUhUTUxG
aWVsZFNldEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MRmllbGRTZXRFbGVtZW50
ICpraXQoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRm9udEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZvbnRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIyZDUz
YTQ0NTg1N2U5YjE3YThkNTBlNTYzMzkxOGViOTQwZmM4NQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZvbnRFbGVtZW50LmgKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgTlNTdHJpbmc7
CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIERPTUhUTUxGb250RWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKGNv
cHkpIE5TU3RyaW5nICpjb2xvcjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmZhY2U7CitA
cHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzaXplOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRm9udEVsZW1lbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGb250RWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjQ2
NTNlOGM5YzA0NzFhZjlhNDY2NjQ0YmJiMjE0NThjODcyMzk4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRm9udEVsZW1lbnQubW0KQEAgLTAs
MCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MRm9udEVsZW1lbnRJbnRl
cm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlv
bkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxO
YW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJl
YWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2
YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpIVE1MRm9udEVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5v
ZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTEZvbnRFbGVtZW50CisK
Ky0gKE5TU3RyaW5nICopY29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmNvbG9yQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q29sb3I6KE5TU3RyaW5nICopbmV3Q29s
b3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6
OmNvbG9yQXR0ciwgbmV3Q29sb3IpOworfQorCistIChOU1N0cmluZyAqKWZhY2UKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmZhY2VBdHRyKTsKK30KKworLSAodm9pZClz
ZXRGYWNlOihOU1N0cmluZyAqKW5ld0ZhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmZhY2VBdHRyLCBuZXdGYWNlKTsKK30KKworLSAoTlNT
dHJpbmcgKilzaXplCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzaXpl
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U2l6ZTooTlNTdHJpbmcgKiluZXdTaXplCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpzaXplQXR0ciwg
bmV3U2l6ZSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTEZvbnRFbGVtZW50KiBjb3JlKERP
TUhUTUxGb250RWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTEZvbnRFbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFs
KSA6IDA7Cit9CisKK0RPTUhUTUxGb250RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxGb250RWxl
bWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTEZvbnRFbGVtZW50Kj4oa2l0KHN0YXRp
Y19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZvbnRFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZvbnRFbGVtZW50SW50ZXJuYWwuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMjEzNWZlNzZiMjBmN2MwYzBmYTMxZGYzMzAxYjAwZTk0YWU1MjJlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRm9udEVsZW1l
bnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEZvbnRFbGVt
ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxGb250RWxlbWVudDsKK30K
KworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTEZvbnRFbGVtZW50KiBjb3JlKERPTUhUTUxG
b250RWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxGb250RWxlbWVudCAqa2l0KFdl
YkNvcmU6OkhUTUxGb250RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTEZvcm1FbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ4NzRjZmY4YTZkN2E1OTZj
MjI2MjU3MmZhNmJmNDlhZTk0NGU0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTEZvcm1FbGVtZW50LmgKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgRE9NSFRNTENvbGxlY3Rpb247CitA
Y2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJD
T1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxGb3JtRWxlbWVudCA6IERPTUhUTUxFbGVtZW50
CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphY2NlcHRDaGFyc2V0OworQHByb3BlcnR5IChj
b3B5KSBOU1N0cmluZyAqYWN0aW9uOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqZW5jdHlw
ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmVuY29kaW5nIFdFQktJVF9BVkFJTEFCTEVf
TUFDKDEwXzUpOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqbWV0aG9kOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqbmFtZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnRhcmdl
dDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NSFRNTENvbGxlY3Rpb24gKmVsZW1l
bnRzOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IGxlbmd0aDsKKworLSAodm9pZClzdWJtaXQ7
CistICh2b2lkKXJlc2V0OworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MRm9ybUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxGb3JtRWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjU4M2VjMTE2MDcwMTIyZGFm
ODkyYmNhMTY3ZWQ1OTMwOWQ3ZGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MRm9ybUVsZW1lbnQubW0KQEAgLTAsMCArMSwyMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50SW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVy
bmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTENvbGxl
Y3Rpb24uaCIKKyNpbXBvcnQgIkhUTUxGb3JtRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVz
LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENo
ZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdl
YkNvcmU6OkhUTUxGb3JtRWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MRm9ybUVsZW1lbnQKKworLSAo
TlNTdHJpbmcgKilhY2NlcHRDaGFyc2V0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjphY2NlcHRfY2hhcnNldEF0dHIpOworfQorCistICh2b2lkKXNldEFjY2VwdENoYXJz
ZXQ6KE5TU3RyaW5nICopbmV3QWNjZXB0Q2hhcnNldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YWNjZXB0X2NoYXJzZXRBdHRyLCBuZXdBY2Nl
cHRDaGFyc2V0KTsKK30KKworLSAoTlNTdHJpbmcgKilhY3Rpb24KK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFVSTEF0dHJp
YnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFjdGlvbkF0dHIpOworfQorCistICh2b2lkKXNldEFj
dGlvbjooTlNTdHJpbmcgKiluZXdBY3Rpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFjdGlvbkF0dHIsIG5ld0FjdGlvbik7Cit9CisKKy0g
KE5TU3RyaW5nICopYXV0b2NvbXBsZXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5hdXRvY29tcGxldGUoKTsKK30KKworLSAo
dm9pZClzZXRBdXRvY29tcGxldGU6KE5TU3RyaW5nICopbmV3QXV0b2NvbXBsZXRlCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF1dG9j
b21wbGV0ZShuZXdBdXRvY29tcGxldGUpOworfQorCistIChOU1N0cmluZyAqKWVuY3R5cGUKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmVuY3R5cGUoKTsKK30KKworLSAodm9pZClzZXRFbmN0eXBlOihOU1N0cmluZyAqKW5ld0Vu
Y3R5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0RW5jdHlwZShuZXdFbmN0eXBlKTsKK30KKworLSAoTlNTdHJpbmcgKillbmNvZGlu
ZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+ZW5jdHlwZSgpOworfQorCistICh2b2lkKXNldEVuY29kaW5nOihOU1N0cmluZyAq
KW5ld0VuY29kaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldEVuY3R5cGUobmV3RW5jb2RpbmcpOworfQorCistIChOU1N0cmluZyAq
KW1ldGhvZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+bWV0aG9kKCk7Cit9CisKKy0gKHZvaWQpc2V0TWV0aG9kOihOU1N0cmlu
ZyAqKW5ld01ldGhvZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRNZXRob2QobmV3TWV0aG9kKTsKK30KKworLSAoTlNTdHJpbmcgKilu
YW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5nZXROYW1lQXR0cmlidXRlKCk7Cit9CisKKy0gKHZvaWQpc2V0TmFtZTooTlNT
dHJpbmcgKiluZXdOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpuYW1lQXR0ciwgbmV3TmFtZSk7Cit9CisKKy0gKEJPT0wpbm9WYWxpZGF0
ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6Om5vdmFsaWRhdGVBdHRyKTsKK30KKworLSAodm9pZClzZXROb1ZhbGlkYXRlOihCT09M
KW5ld05vVmFsaWRhdGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6Om5v
dmFsaWRhdGVBdHRyLCBuZXdOb1ZhbGlkYXRlKTsKK30KKworLSAoTlNTdHJpbmcgKil0YXJnZXQK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdldEF0dHIpOworfQor
CistICh2b2lkKXNldFRhcmdldDooTlNTdHJpbmcgKiluZXdUYXJnZXQKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdldEF0dHIsIG5ld1Rh
cmdldCk7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopZWxlbWVudHMKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6Omdl
dFB0cihJTVBMLT5lbGVtZW50c0Zvck5hdGl2ZUJpbmRpbmdzKCkpKTsKK30KKworLSAoaW50KWxl
bmd0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+bGVuZ3RoKCk7Cit9CisKKyNpZiBFTkFCTEUoSU9TX0FVVE9DT1JSRUNUX0FO
RF9BVVRPQ0FQSVRBTElaRSkKKy0gKEJPT0wpYXV0b2NvcnJlY3QKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmF1dG9jb3JyZWN0
KCk7Cit9CisKKy0gKHZvaWQpc2V0QXV0b2NvcnJlY3Q6KEJPT0wpbmV3QXV0b2NvcnJlY3QKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0
QXV0b2NvcnJlY3QobmV3QXV0b2NvcnJlY3QpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU9T
X0FVVE9DT1JSRUNUX0FORF9BVVRPQ0FQSVRBTElaRSkKKy0gKE5TU3RyaW5nICopYXV0b2NhcGl0
YWxpemUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmF1dG9jYXBpdGFsaXplKCk7Cit9CisKKy0gKHZvaWQpc2V0QXV0b2NhcGl0
YWxpemU6KE5TU3RyaW5nICopbmV3QXV0b2NhcGl0YWxpemUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXV0b2NhcGl0YWxpemUobmV3
QXV0b2NhcGl0YWxpemUpOworfQorI2VuZGlmCisKKy0gKHZvaWQpc3VibWl0Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnN1Ym1pdCgpOwor
fQorCistICh2b2lkKXJlc2V0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnJlc2V0KCk7Cit9CisKKy0gKEJPT0wpY2hlY2tWYWxpZGl0eQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+Y2hlY2tWYWxpZGl0eSgpOworfQorCisKKyNpZiBFTkFCTEUoUkVRVUVTVF9BVVRPQ09N
UExFVEUpCistICh2b2lkKXJlcXVlc3RBdXRvY29tcGxldGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+cmVxdWVzdEF1dG9jb21wbGV0ZSgp
OworfQorCisjZW5kaWYKKworQGVuZAorCitXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqIGNvcmUo
RE9NSFRNTEZvcm1FbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVp
bnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NSFRNTEZvcm1FbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEZvcm1F
bGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9u
ZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MRm9ybUVsZW1lbnQqPihraXQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRm9ybUVsZW1lbnRJbnRlcm5hbC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRm9ybUVsZW1lbnRJbnRlcm5hbC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA5MjA2MDYwM2UzOGM2NDdhYzFkMTJlODNkNjJjMDIwOWVjMThlNzEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGb3JtRWxl
bWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRm9ybUVs
ZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTEZvcm1FbGVtZW50Owor
fQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqIGNvcmUoRE9NSFRN
TEZvcm1FbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTEZvcm1FbGVtZW50ICpraXQo
V2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTEZyYW1lRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZmViNGU3MTA0Njli
ZjJjYjc3ZjgxMWI4ZjlkM2VjNTMyYjg3NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZUVsZW1lbnQuaApAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBET01BYnN0cmFjdFZpZXc7
CitAY2xhc3MgRE9NRG9jdW1lbnQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19B
VkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxGcmFt
ZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqZnJh
bWVCb3JkZXI7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpsb25nRGVzYzsKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKm1hcmdpbkhlaWdodDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJp
bmcgKm1hcmdpbldpZHRoOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqbmFtZTsKK0Bwcm9w
ZXJ0eSBCT09MIG5vUmVzaXplOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc2Nyb2xsaW5n
OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc3JjOworQHByb3BlcnR5IChyZWFkb25seSwg
c3Ryb25nKSBET01Eb2N1bWVudCAqY29udGVudERvY3VtZW50OworQHByb3BlcnR5IChyZWFkb25s
eSwgc3Ryb25nKSBET01BYnN0cmFjdFZpZXcgKmNvbnRlbnRXaW5kb3cgV0VCS0lUX0FWQUlMQUJM
RV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpsb2NhdGlvbiBXRUJLSVRf
QVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB3aWR0aCBXRUJL
SVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBoZWlnaHQg
V0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZUVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk5ZWMz
YWNiOGJjYjdjMWJlMzg2MzQ3NWZiNTRmMDVjY2MwODE0MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZyYW1lRWxlbWVudC5tbQpAQCAtMCww
ICsxLDE5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MRnJhbWVFbGVtZW50SW50
ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NQWJzdHJhY3RWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTURvY3VtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2lt
cG9ydCAiRE9NV2luZG93LmgiCisjaW1wb3J0ICJEb2N1bWVudC5oIgorI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbXBvcnQgIkhU
TUxOYW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJU
aHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQ
cml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxGcmFtZUVsZW1l
bnQKKworLSAoTlNTdHJpbmcgKilmcmFtZUJvcmRlcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRyKTsKK30KKworLSAodm9pZClzZXRGcmFtZUJv
cmRlcjooTlNTdHJpbmcgKiluZXdGcmFtZUJvcmRlcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRyLCBuZXdGcmFtZUJv
cmRlcik7Cit9CisKKy0gKE5TU3RyaW5nICopbG9uZ0Rlc2MKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OmxvbmdkZXNjQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0TG9uZ0Rl
c2M6KE5TU3RyaW5nICopbmV3TG9uZ0Rlc2MKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmxvbmdkZXNjQXR0ciwgbmV3TG9uZ0Rlc2MpOworfQor
CistIChOU1N0cmluZyAqKW1hcmdpbkhlaWdodAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6bWFyZ2luaGVpZ2h0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0TWFyZ2luSGVp
Z2h0OihOU1N0cmluZyAqKW5ld01hcmdpbkhlaWdodAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bWFyZ2luaGVpZ2h0QXR0ciwgbmV3TWFyZ2lu
SGVpZ2h0KTsKK30KKworLSAoTlNTdHJpbmcgKiltYXJnaW5XaWR0aAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bWFyZ2lud2lkdGhBdHRyKTsKK30KKworLSAodm9pZClz
ZXRNYXJnaW5XaWR0aDooTlNTdHJpbmcgKiluZXdNYXJnaW5XaWR0aAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bWFyZ2lud2lkdGhBdHRyLCBu
ZXdNYXJnaW5XaWR0aCk7Cit9CisKKy0gKE5TU3RyaW5nICopbmFtZQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TmFtZUF0
dHJpYnV0ZSgpOworfQorCistICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmV3TmFtZQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bmFtZUF0
dHIsIG5ld05hbWUpOworfQorCistIChCT09MKW5vUmVzaXplCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bm9yZXNpemVBdHRyKTsK
K30KKworLSAodm9pZClzZXROb1Jlc2l6ZTooQk9PTCluZXdOb1Jlc2l6ZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bm9yZXNpemVBdHRyLCBuZXdOb1Jlc2l6ZSk7Cit9
CisKKy0gKE5TU3RyaW5nICopc2Nyb2xsaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpzY3JvbGxpbmdBdHRyKTsKK30KKworLSAodm9pZClzZXRTY3JvbGxpbmc6KE5T
U3RyaW5nICopbmV3U2Nyb2xsaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjpzY3JvbGxpbmdBdHRyLCBuZXdTY3JvbGxpbmcpOworfQorCist
IChOU1N0cmluZyAqKXNyYworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6c3JjQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U3JjOihOU1N0cmluZyAqKW5ld1NyYworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c3JjQXR0
ciwgbmV3U3JjKTsKK30KKworLSAoRE9NRG9jdW1lbnQgKiljb250ZW50RG9jdW1lbnQKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChX
VEY6OmdldFB0cihJTVBMLT5jb250ZW50RG9jdW1lbnQoKSkpOworfQorCistIChET01BYnN0cmFj
dFZpZXcgKiljb250ZW50V2luZG93Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Y29udGVudFdpbmRv
dygpKSk7Cit9CisKKy0gKE5TU3RyaW5nICopbG9jYXRpb24KK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmxvY2F0aW9uKCk7Cit9
CisKKy0gKHZvaWQpc2V0TG9jYXRpb246KE5TU3RyaW5nICopbmV3TG9jYXRpb24KK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0TG9jYXRp
b24obmV3TG9jYXRpb24pOworfQorCistIChpbnQpd2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndpZHRoKCk7Cit9CisK
Ky0gKGludCloZWlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmhlaWdodCgpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhU
TUxGcmFtZUVsZW1lbnQqIGNvcmUoRE9NSFRNTEZyYW1lRWxlbWVudCAqd3JhcHBlcikKK3sKKyAg
ICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTEZyYW1lRWxl
bWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MRnJhbWVFbGVtZW50
ICpraXQoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
SFRNTEZyYW1lRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUp
KSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxG
cmFtZUVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MRnJhbWVFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2RjMGQ3ZWM5YTkzZTg3NGY0
OWQ0NjBkNjFmOTJlNDg4MzMxMTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MRnJhbWVFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxGcmFtZUVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgSFRNTEZyYW1lRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29y
ZTo6SFRNTEZyYW1lRWxlbWVudCogY29yZShET01IVE1MRnJhbWVFbGVtZW50ICopOworV0VCQ09S
RV9FWFBPUlQgRE9NSFRNTEZyYW1lRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1l
bnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEZy
YW1lU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRnJh
bWVTZXRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg5NzI2OGRhZjBjMDhmNmQ1ODI5YTYwM2MzZDJm
Nzc3YzQ4ZDk4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUv
RE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZB
SUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01IVE1MRnJhbWVT
ZXRFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNv
bHM7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpyb3dzOworQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRnJhbWVTZXRFbGVtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MRnJhbWVTZXRFbGVtZW50Lm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZlM2I0Nzk5MDM3YjQ1Y2YxZGE2NDFiZDgwM2M2OWY2OGRhMGViODcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZVNl
dEVsZW1lbnQubW0KQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01I
VE1MRnJhbWVTZXRFbGVtZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NTm9kZUludGVybmFs
LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTEZyYW1lU2V0
RWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRF
eGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNp
bXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4K
KworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQq
PihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVt
ZW50YXRpb24gRE9NSFRNTEZyYW1lU2V0RWxlbWVudAorCistIChOU1N0cmluZyAqKWNvbHMKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbHNBdHRyKTsKK30KKworLSAo
dm9pZClzZXRDb2xzOihOU1N0cmluZyAqKW5ld0NvbHMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbHNBdHRyLCBuZXdDb2xzKTsKK30KKwor
LSAoTlNTdHJpbmcgKilyb3dzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
Ojpyb3dzQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Um93czooTlNTdHJpbmcgKiluZXdSb3dzCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyb3dz
QXR0ciwgbmV3Um93cyk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVu
dCogY29yZShET01IVE1MRnJhbWVTZXRFbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50Kj4o
d3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxGcmFtZVNldEVsZW1lbnQgKmtp
dChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhy
ZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01I
VE1MRnJhbWVTZXRFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1
ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TEZyYW1lU2V0RWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxGcmFtZVNldEVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwNzNhNzg0MmFm
MjEwYWU1Y2IwMmVmNjQ5NjQ3MjdiMWFkN2JjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxGcmFtZVNldEVsZW1lbnRJbnRlcm5hbC5oCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MRnJhbWVTZXRFbGVtZW50OworfQorCitXRUJD
T1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50KiBjb3JlKERPTUhUTUxGcmFt
ZVNldEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MRnJhbWVTZXRFbGVtZW50ICpr
aXQoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSFJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxIUkVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmE1Zjk4YzA1MzA0
YzkxM2NhOGM1ODMxNmRkZjg4NzU0NTA5YzkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSFJFbGVtZW50LmgKQEAgLTAsMCArMSwzNiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCA8V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJ
VF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERP
TUhUTUxIUkVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChjb3B5KSBOU1N0cmlu
ZyAqYWxpZ247CitAcHJvcGVydHkgQk9PTCBub1NoYWRlOworQHByb3BlcnR5IChjb3B5KSBOU1N0
cmluZyAqc2l6ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKndpZHRoOworQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSFJFbGVtZW50Lm1t
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSFJFbGVtZW50Lm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYxYWEyZDFlZjUyM2EwMjNhYjY3ZmZiNjliZTFkMWU5MTAxZjEzNDIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIUkVsZW1lbnQu
bW0KQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTEhSRWxl
bWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxIUkVsZW1lbnQuaCIKKyNpbXBvcnQg
IkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmpl
Y3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpIVE1MSFJFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxIUkVsZW1lbnQK
KworLSAoTlNTdHJpbmcgKilhbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxO
YW1lczo6YWxpZ25BdHRyKTsKK30KKworLSAodm9pZClzZXRBbGlnbjooTlNTdHJpbmcgKiluZXdB
bGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6YWxpZ25BdHRyLCBuZXdBbGlnbik7Cit9CisKKy0gKEJPT0wpbm9TaGFkZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFz
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om5vc2hh
ZGVBdHRyKTsKK30KKworLSAodm9pZClzZXROb1NoYWRlOihCT09MKW5ld05vU2hhZGUKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9v
bGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6Om5vc2hhZGVBdHRyLCBuZXdOb1NoYWRl
KTsKK30KKworLSAoTlNTdHJpbmcgKilzaXplCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpzaXplQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U2l6ZTooTlNTdHJpbmcgKilu
ZXdTaXplCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjpzaXplQXR0ciwgbmV3U2l6ZSk7Cit9CisKKy0gKE5TU3RyaW5nICopd2lkdGgKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwt
PmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0cik7Cit9CisKKy0gKHZv
aWQpc2V0V2lkdGg6KE5TU3RyaW5nICopbmV3V2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgbmV3V2lkdGgpOworfQor
CitAZW5kCisKK1dlYkNvcmU6OkhUTUxIUkVsZW1lbnQqIGNvcmUoRE9NSFRNTEhSRWxlbWVudCAq
d3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29y
ZTo6SFRNTEhSRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1M
SFJFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEhSRWxlbWVudCogdmFsdWUpCit7CisgICAgV2Vi
Q29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RE9NSFRNTEhSRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFs
dWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxIUkVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MSFJFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTRjNTdlMGIwMmJhOGVkODY3NzU0
MjQ1NDdiMzMwODM4NjBiMTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MSFJFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJDb3JlL0RPTUhUTUxIUkVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgSFRNTEhSRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTEhSRWxl
bWVudCogY29yZShET01IVE1MSFJFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTEhS
RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxIUkVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEhlYWRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFkRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZTQ4
NzliYTcyZjZhZTc2NjNiZGJjOGJhYjE1MjM1ZDdjM2IzOTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFkRWxlbWVudC5oCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3RyaW5n
OworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGlu
dGVyZmFjZSBET01IVE1MSGVhZEVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChj
b3B5KSBOU1N0cmluZyAqcHJvZmlsZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTEhlYWRFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MSGVhZEVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI2ZWM1OWJhNTFm
ZDBhMTMxMzBiZDNhYWE2OGRmNTIwZDgyYjg0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEhlYWRFbGVtZW50Lm1tCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTEhlYWRFbGVtZW50SW50ZXJuYWwuaCIK
KworI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVy
cy5oIgorI2ltcG9ydCAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIK
KyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2su
aCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgor
I2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6SFRNTEhlYWRFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2lu
dGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxIZWFkRWxlbWVudAorCistIChOU1N0
cmluZyAqKXByb2ZpbGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnBy
b2ZpbGVBdHRyKTsKK30KKworLSAodm9pZClzZXRQcm9maWxlOihOU1N0cmluZyAqKW5ld1Byb2Zp
bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6
OnByb2ZpbGVBdHRyLCBuZXdQcm9maWxlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MSGVh
ZEVsZW1lbnQqIGNvcmUoRE9NSFRNTEhlYWRFbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVy
biB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MSGVhZEVsZW1lbnQqPih3
cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTEhlYWRFbGVtZW50ICpraXQoV2Vi
Q29yZTo6SFRNTEhlYWRFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0
aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MSGVhZEVs
ZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSGVhZEVsZW1lbnRJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSGVhZEVsZW1l
bnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxNDU3ZDk3MzFjMGI2NzgyMTc1YTQ5YWIzYTBmOWFi
ZjFkZTM2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxIZWFkRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MSGVhZEVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRN
TEhlYWRFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MSGVhZEVsZW1l
bnQqIGNvcmUoRE9NSFRNTEhlYWRFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTEhl
YWRFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTEhlYWRFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFkaW5nRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSGVhZGluZ0VsZW1lbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MWI1ZTllMmIzZGRhMjBlMmQzNDUwMWE2Y2Q2ODQxZGI2OTlmMzFmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSGVhZGluZ0VsZW1l
bnQuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0Bj
bGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNP
UkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTEhlYWRpbmdFbGVtZW50IDogRE9NSFRNTEVsZW1l
bnQKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmFsaWduOworQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSGVhZGluZ0VsZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFkaW5nRWxlbWVudC5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YTE0NjQ4ZjdiZDVhY2FjZWMyOGQwYzE5MjQ4YzRlZWJmMzE4NTAxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSGVhZGluZ0Vs
ZW1lbnQubW0KQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1M
SGVhZGluZ0VsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIK
KyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MSGVhZGluZ0VsZW1l
bnQuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MSGVhZGluZ0VsZW1lbnQqPihyZWlu
dGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRp
b24gRE9NSFRNTEhlYWRpbmdFbGVtZW50CisKKy0gKE5TU3RyaW5nICopYWxpZ24KK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0cik7Cit9CisKKy0gKHZvaWQp
c2V0QWxpZ246KE5TU3RyaW5nICopbmV3QWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwgbmV3QWxpZ24pOworfQorCitA
ZW5kCisKK1dlYkNvcmU6OkhUTUxIZWFkaW5nRWxlbWVudCogY29yZShET01IVE1MSGVhZGluZ0Vs
ZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OkhUTUxIZWFkaW5nRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01IVE1MSGVhZGluZ0VsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MSGVhZGluZ0VsZW1l
bnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxIZWFkaW5nRWxlbWVudCo+KGtpdChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFkaW5nRWxlbWVudEludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIZWFkaW5nRWxlbWVudEludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjgwNmM4ZDgzMzdiYjA1OTNlMTk0ZTJkZTYwZDFlZWYzOTFlNGI1OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEhl
YWRpbmdFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhU
TUxIZWFkaW5nRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MSGVh
ZGluZ0VsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxIZWFkaW5nRWxl
bWVudCogY29yZShET01IVE1MSGVhZGluZ0VsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01I
VE1MSGVhZGluZ0VsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MSGVhZGluZ0VsZW1lbnQqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEh0bWxFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIdG1sRWxlbWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZjYWJkMWY3NzcxOGM1YjFmNTMxODdkZDU2ODZkYjk5MGVhNjQwMDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxIdG1sRWxl
bWVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKwor
QGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VC
Q09SRV9FWFBPUlQgQGludGVyZmFjZSBET01IVE1MSHRtbEVsZW1lbnQgOiBET01IVE1MRWxlbWVu
dAorQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdmVyc2lvbjsKK0BlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEh0bWxFbGVtZW50Lm1tIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSHRtbEVsZW1lbnQubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmYzNWZmNDNmZGRhOWNkYjc1YTljOTNkZmIzMDhiNzM4NTJmYTVjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEh0bWxFbGVtZW50Lm1t
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTEh0bWxFbGVt
ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW1wb3J0
ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9y
dCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6SFRNTEh0bWxFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxIdG1sRWxl
bWVudAorCistIChOU1N0cmluZyAqKXZlcnNpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnZlcnNpb25BdHRyKTsKK30KKworLSAodm9pZClzZXRWZXJzaW9uOihOU1N0
cmluZyAqKW5ld1ZlcnNpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OnZlcnNpb25BdHRyLCBuZXdWZXJzaW9uKTsKK30KKworLSAoTlNTdHJp
bmcgKiltYW5pZmVzdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
bWFuaWZlc3RBdHRyKTsKK30KKworLSAodm9pZClzZXRNYW5pZmVzdDooTlNTdHJpbmcgKiluZXdN
YW5pZmVzdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6bWFuaWZlc3RBdHRyLCBuZXdNYW5pZmVzdCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6
SFRNTEh0bWxFbGVtZW50KiBjb3JlKERPTUhUTUxIdG1sRWxlbWVudCAqd3JhcHBlcikKK3sKKyAg
ICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTEh0bWxFbGVt
ZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxIdG1sRWxlbWVudCAq
a2l0KFdlYkNvcmU6OkhUTUxIdG1sRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVh
ZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRN
TEh0bWxFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEh0bWxF
bGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEh0
bWxFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmY2YjhkMDYwZWVmMWNhZWJhMjJkNDYz
ZTYwNGQyMDc1YjYxNWU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MSHRtbEVsZW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
PFdlYkNvcmUvRE9NSFRNTEh0bWxFbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEhUTUxIdG1sRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTEh0
bWxFbGVtZW50KiBjb3JlKERPTUhUTUxIdG1sRWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERP
TUhUTUxIdG1sRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxIdG1sRWxlbWVudCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSUZyYW1lRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSUZyYW1lRWxlbWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRhN2RiOGQ3ZDJhODQ0MWYzNTU5NTU0NjI5ZWNjZjI1MDg1MDU0OWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJRnJhbWVF
bGVtZW50LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgor
CitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIERPTURvY3VtZW50OworQGNsYXNzIE5T
U3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBP
UlQgQGludGVyZmFjZSBET01IVE1MSUZyYW1lRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICphbGlnbjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
KmZyYW1lQm9yZGVyOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqaGVpZ2h0OworQHByb3Bl
cnR5IChjb3B5KSBOU1N0cmluZyAqbG9uZ0Rlc2M7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5n
ICptYXJnaW5IZWlnaHQ7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICptYXJnaW5XaWR0aDsK
K0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkgKGNvcHkpIE5TU3Ry
aW5nICpzY3JvbGxpbmc7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzcmM7CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICp3aWR0aDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykg
RE9NRG9jdW1lbnQgKmNvbnRlbnREb2N1bWVudDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9u
ZykgRE9NQWJzdHJhY3RWaWV3ICpjb250ZW50V2luZG93IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEw
XzYpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MSUZyYW1lRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TElGcmFtZUVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y5MDAwYjU0M2YxZTVkYmY5N2Q3MTI1ZTJk
N2JlZTQ1MmMxZDU4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTElGcmFtZUVsZW1lbnQubW0KQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiRE9NSFRNTElGcmFtZUVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0
ICJET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRG9jdW1lbnRJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01XaW5kb3cuaCIK
KyNpbXBvcnQgIkRvY3VtZW50LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2lt
cG9ydCAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9y
dCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2lt
cG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0
IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1M
SUZyYW1lRWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5h
bCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MSUZyYW1lRWxlbWVudAorCistIChOU1N0cmlu
ZyAqKWFsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0
dHIpOworfQorCistICh2b2lkKXNldEFsaWduOihOU1N0cmluZyAqKW5ld0FsaWduCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIs
IG5ld0FsaWduKTsKK30KKworLSAoTlNTdHJpbmcgKilmcmFtZUJvcmRlcgoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRyKTsKK30KKworLSAodm9p
ZClzZXRGcmFtZUJvcmRlcjooTlNTdHJpbmcgKiluZXdGcmFtZUJvcmRlcgoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRy
LCBuZXdGcmFtZUJvcmRlcik7Cit9CisKKy0gKE5TU3RyaW5nICopaGVpZ2h0Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpoZWlnaHRBdHRyKTsKK30KKworLSAodm9pZClz
ZXRIZWlnaHQ6KE5TU3RyaW5nICopbmV3SGVpZ2h0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBuZXdIZWlnaHQpOworfQor
CistIChOU1N0cmluZyAqKWxvbmdEZXNjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpsb25nZGVzY0F0dHIpOworfQorCistICh2b2lkKXNldExvbmdEZXNjOihOU1N0cmlu
ZyAqKW5ld0xvbmdEZXNjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpsb25nZGVzY0F0dHIsIG5ld0xvbmdEZXNjKTsKK30KKworLSAoTlNTdHJp
bmcgKiltYXJnaW5IZWlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
Om1hcmdpbmhlaWdodEF0dHIpOworfQorCistICh2b2lkKXNldE1hcmdpbkhlaWdodDooTlNTdHJp
bmcgKiluZXdNYXJnaW5IZWlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihX
ZWJDb3JlOjpIVE1MTmFtZXM6Om1hcmdpbmhlaWdodEF0dHIsIG5ld01hcmdpbkhlaWdodCk7Cit9
CisKKy0gKE5TU3RyaW5nICopbWFyZ2luV2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6Om1hcmdpbndpZHRoQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0TWFyZ2luV2lk
dGg6KE5TU3RyaW5nICopbmV3TWFyZ2luV2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om1hcmdpbndpZHRoQXR0ciwgbmV3TWFyZ2luV2lk
dGgpOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldE5hbWVBdHRyaWJ1dGUoKTsK
K30KKworLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAqKW5ld05hbWUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om5hbWVBdHRyLCBuZXdOYW1l
KTsKK30KKworLSAoTlNTdHJpbmcgKilzYW5kYm94Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpzYW5kYm94QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U2FuZGJveDooTlNT
dHJpbmcgKiluZXdTYW5kYm94Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2Vi
Q29yZTo6SFRNTE5hbWVzOjpzYW5kYm94QXR0ciwgbmV3U2FuZGJveCk7Cit9CisKKy0gKE5TU3Ry
aW5nICopc2Nyb2xsaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpz
Y3JvbGxpbmdBdHRyKTsKK30KKworLSAodm9pZClzZXRTY3JvbGxpbmc6KE5TU3RyaW5nICopbmV3
U2Nyb2xsaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpzY3JvbGxpbmdBdHRyLCBuZXdTY3JvbGxpbmcpOworfQorCistIChOU1N0cmluZyAq
KXNyYworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6c3JjQXR0cik7
Cit9CisKKy0gKHZvaWQpc2V0U3JjOihOU1N0cmluZyAqKW5ld1NyYworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c3JjQXR0ciwgbmV3U3JjKTsK
K30KKworLSAoTlNTdHJpbmcgKilzcmNkb2MKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnNyY2RvY0F0dHIpOworfQorCistICh2b2lkKXNldFNyY2RvYzooTlNTdHJpbmcg
KiluZXdTcmNkb2MKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OnNyY2RvY0F0dHIsIG5ld1NyY2RvYyk7Cit9CisKKy0gKE5TU3RyaW5nICopd2lk
dGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0cik7Cit9
CisKKy0gKHZvaWQpc2V0V2lkdGg6KE5TU3RyaW5nICopbmV3V2lkdGgKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgbmV3V2lk
dGgpOworfQorCistIChET01Eb2N1bWVudCAqKWNvbnRlbnREb2N1bWVudAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0
UHRyKElNUEwtPmNvbnRlbnREb2N1bWVudCgpKSk7Cit9CisKKy0gKERPTUFic3RyYWN0VmlldyAq
KWNvbnRlbnRXaW5kb3cKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5jb250ZW50V2luZG93KCkpKTsK
K30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudCogY29yZShET01IVE1MSUZy
YW1lRWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0
X2Nhc3Q8V2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDog
MDsKK30KKworRE9NSFRNTElGcmFtZUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MSUZyYW1lRWxl
bWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTElGcmFtZUVsZW1lbnQqPihraXQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSUZyYW1lRWxlbWVudEludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJRnJhbWVFbGVtZW50SW50ZXJuYWwu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYWJkZDhkMTFhN2U0OTRiMGE1YTExZjhjMzMwNjU5NWRlYjdlZWNkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSUZy
YW1lRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1M
SUZyYW1lRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MSUZyYW1l
RWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQq
IGNvcmUoRE9NSFRNTElGcmFtZUVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MSUZy
YW1lRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbWFnZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEltYWdlRWxlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNhMDJlZmQ4NTcyZDk0N2MyMDc2YjhlNzIwZjFjZTRhOTE0ZmUyOTQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbWFnZUVsZW1lbnQu
aApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFz
cyBOU1N0cmluZzsKK0BjbGFzcyBOU1VSTDsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTEltYWdlRWxlbWVudCA6IERP
TUhUTUxFbGVtZW50CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqYWxpZ247CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphbHQ7
CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpib3JkZXI7CitAcHJvcGVydHkgaW50IGhlaWdo
dDsKK0Bwcm9wZXJ0eSBpbnQgaHNwYWNlOworQHByb3BlcnR5IEJPT0wgaXNNYXA7CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICpsb25nRGVzYzsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
KnNyYzsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnVzZU1hcDsKK0Bwcm9wZXJ0eSBpbnQg
dnNwYWNlOworQHByb3BlcnR5IGludCB3aWR0aDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
Y29tcGxldGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5T
U3RyaW5nICpsb3dzcmMgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSBpbnQgbmF0dXJhbEhlaWdodCBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIGludCBuYXR1cmFsV2lkdGggV0VCS0lUX0FWQUlMQUJMRV9NQUMo
MTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgeCBXRUJLSVRfQVZBSUxBQkxFX01BQygx
MF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB5IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEw
XzUpOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmFsdERpc3BsYXlTdHJp
bmcgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5
KSBOU1VSTCAqYWJzb2x1dGVJbWFnZVVSTCBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEltYWdl
RWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEltYWdlRWxl
bWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNDQwZDQ4NGIxZmVjNTk0N2Q2ODJhYWRhZDZlMzdjZTU4OTI3
MGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MSW1hZ2VFbGVtZW50Lm1tCkBAIC0wLDAgKzEsMjk2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIkRPTUhUTUxJbWFnZUVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVByaXZhdGUuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRs
ZXJzLmgiCisjaW1wb3J0ICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMu
aCIKKyNpbXBvcnQgIkhpdFRlc3RSZXN1bHQuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9y
dCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisj
ZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlv
biBET01IVE1MSW1hZ2VFbGVtZW50CisKKy0gKE5TU3RyaW5nICopbmFtZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TmFt
ZUF0dHJpYnV0ZSgpOworfQorCistICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmV3TmFtZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bmFt
ZUF0dHIsIG5ld05hbWUpOworfQorCistIChOU1N0cmluZyAqKWFsaWduCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIpOworfQorCistICh2b2lkKXNldEFs
aWduOihOU1N0cmluZyAqKW5ld0FsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIG5ld0FsaWduKTsKK30KKworLSAoTlNT
dHJpbmcgKilhbHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFsdEF0
dHIpOworfQorCistICh2b2lkKXNldEFsdDooTlNTdHJpbmcgKiluZXdBbHQKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsdEF0dHIsIG5ld0Fs
dCk7Cit9CisKKy0gKE5TU3RyaW5nICopYm9yZGVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpib3JkZXJBdHRyKTsKK30KKworLSAodm9pZClzZXRCb3JkZXI6KE5TU3Ry
aW5nICopbmV3Qm9yZGVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpib3JkZXJBdHRyLCBuZXdCb3JkZXIpOworfQorCistIChOU1N0cmluZyAq
KWNyb3NzT3JpZ2luCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5jcm9zc09yaWdpbigpOworfQorCistICh2b2lkKXNldENyb3Nz
T3JpZ2luOihOU1N0cmluZyAqKW5ld0Nyb3NzT3JpZ2luCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldENyb3NzT3JpZ2luKG5ld0Nyb3Nz
T3JpZ2luKTsKK30KKworLSAoaW50KWhlaWdodAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGVpZ2h0KCk7Cit9CisKKy0gKHZv
aWQpc2V0SGVpZ2h0OihpbnQpbmV3SGVpZ2h0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEhlaWdodChuZXdIZWlnaHQpOworfQorCist
IChpbnQpaHNwYWNlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmhzcGFjZUF0dHIpOworfQorCistICh2b2lkKXNldEhzcGFjZTooaW50KW5ld0hzcGFjZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmhzcGFjZUF0dHIsIG5ld0hz
cGFjZSk7Cit9CisKKy0gKEJPT0wpaXNNYXAKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjppc21hcEF0dHIpOworfQorCistICh2b2lk
KXNldElzTWFwOihCT09MKW5ld0lzTWFwCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjppc21hcEF0dHIsIG5ld0lzTWFwKTsKK30KKworLSAoTlNTdHJpbmcgKilsb25nRGVz
YworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bG9uZ2Rlc2NBdHRy
KTsKK30KKworLSAodm9pZClzZXRMb25nRGVzYzooTlNTdHJpbmcgKiluZXdMb25nRGVzYworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bG9uZ2Rl
c2NBdHRyLCBuZXdMb25nRGVzYyk7Cit9CisKKy0gKE5TU3RyaW5nICopc3JjCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRV
UkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzcmNBdHRyKTsKK30KKworLSAodm9pZClz
ZXRTcmM6KE5TU3RyaW5nICopbmV3U3JjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpzcmNBdHRyLCBuZXdTcmMpOworfQorCistIChOU1N0cmlu
ZyAqKXNyY3NldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6c3Jjc2V0
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U3Jjc2V0OihOU1N0cmluZyAqKW5ld1NyY3NldAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c3Jjc2V0
QXR0ciwgbmV3U3Jjc2V0KTsKK30KKworLSAoTlNTdHJpbmcgKilzaXplcworeworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6c2l6ZXNBdHRyKTsKK30KKworLSAodm9pZClzZXRT
aXplczooTlNTdHJpbmcgKiluZXdTaXplcworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c2l6ZXNBdHRyLCBuZXdTaXplcyk7Cit9CisKKy0gKE5T
U3RyaW5nICopY3VycmVudFNyYworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y3VycmVudFNyYygpOworfQorCistIChOU1N0cmlu
ZyAqKXVzZU1hcAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dXNlbWFw
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0VXNlTWFwOihOU1N0cmluZyAqKW5ld1VzZU1hcAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dXNlbWFw
QXR0ciwgbmV3VXNlTWFwKTsKK30KKworLSAoaW50KXZzcGFjZQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0SW50ZWdyYWxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2c3BhY2VBdHRyKTsKK30KKworLSAodm9pZClz
ZXRWc3BhY2U6KGludCluZXdWc3BhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjp2c3BhY2VBdHRyLCBuZXdWc3BhY2UpOworfQorCistIChpbnQpd2lkdGgKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwt
PndpZHRoKCk7Cit9CisKKy0gKHZvaWQpc2V0V2lkdGg6KGludCluZXdXaWR0aAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRXaWR0aChu
ZXdXaWR0aCk7Cit9CisKKy0gKEJPT0wpY29tcGxldGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNvbXBsZXRlKCk7Cit9CisK
Ky0gKE5TU3RyaW5nICopbG93c3JjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpsb3dzcmNBdHRyKTsKK30KKworLSAodm9pZClzZXRMb3dzcmM6KE5TU3RyaW5nICop
bmV3TG93c3JjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpsb3dzcmNBdHRyLCBuZXdMb3dzcmMpOworfQorCistIChpbnQpbmF0dXJhbEhlaWdo
dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+bmF0dXJhbEhlaWdodCgpOworfQorCistIChpbnQpbmF0dXJhbFdpZHRoCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5uYXR1cmFsV2lkdGgoKTsKK30KKworLSAoaW50KXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPngoKTsKK30KKworLSAoaW50
KXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPnkoKTsKK30KKworLSAoTlNTdHJpbmcgKilhbHREaXNwbGF5U3RyaW5nCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBXZWJD
b3JlOjpkaXNwbGF5U3RyaW5nKElNUEwtPmFsdCgpLCBjb3JlKHNlbGYpKTsKK30KKworLSAoTlNV
UkwgKilhYnNvbHV0ZUltYWdlVVJMCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBbc2VsZiBfZ2V0VVJMQXR0cmlidXRlOkAic3JjIl07Cit9
CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudCogY29yZShET01IVE1MSW1hZ2VF
bGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9
CisKK0RPTUhUTUxJbWFnZUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50KiB2
YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MSW1hZ2VFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0
PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTEltYWdlRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbWFnZUVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlmMTY0MGJiMzBkMjc3ZDBlYzE5ODg1OTIxNzE1YzZiOGZlZmMyZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbWFnZUVsZW1lbnRJ
bnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEltYWdlRWxlbWVu
dC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OworfQor
CitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50KiBjb3JlKERPTUhUTUxJ
bWFnZUVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MSW1hZ2VFbGVtZW50ICpraXQo
V2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxJbnB1dEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmNhNmFkM2IzMTQ0
MmFiM2JiNzZmMjFjYzEwZmQwYjQ4NjM1Yzc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTAsMCArMSw2NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgRE9NRmlsZUxpc3Q7CitA
Y2xhc3MgRE9NSFRNTEZvcm1FbGVtZW50OworQGNsYXNzIE5TU3RyaW5nOworQGNsYXNzIE5TVVJM
OworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGlu
dGVyZmFjZSBET01IVE1MSW5wdXRFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmFjY2VwdDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmFsdDsK
K0Bwcm9wZXJ0eSBCT09MIGF1dG9mb2N1cyBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF82KTsKK0Bw
cm9wZXJ0eSBCT09MIGRlZmF1bHRDaGVja2VkOworQHByb3BlcnR5IEJPT0wgY2hlY2tlZDsKK0Bw
cm9wZXJ0eSBCT09MIGRpc2FibGVkOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01I
VE1MRm9ybUVsZW1lbnQgKmZvcm07CitAcHJvcGVydHkgKHN0cm9uZykgRE9NRmlsZUxpc3QgKmZp
bGVzIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzYpOworQHByb3BlcnR5IEJPT0wgaW5kZXRlcm1p
bmF0ZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSBpbnQgbWF4TGVuZ3Ro
OworQHByb3BlcnR5IEJPT0wgbXVsdGlwbGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNik7CitA
cHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IEJPT0wgcmVhZE9ubHk7
CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzaXplOworQHByb3BlcnR5IChjb3B5KSBOU1N0
cmluZyAqc3JjOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdHlwZTsKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmRlZmF1bHRWYWx1ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
KnZhbHVlOworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB3aWxsVmFsaWRhdGUgV0VCS0lUX0FW
QUlMQUJMRV9NQUMoMTBfNik7CitAcHJvcGVydHkgaW50IHNlbGVjdGlvblN0YXJ0IFdFQktJVF9B
VkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IGludCBzZWxlY3Rpb25FbmQgV0VCS0lUX0FW
QUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphbGlnbjsKK0Bw
cm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnVzZU1hcDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJp
bmcgKmFjY2Vzc0tleSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfOCk7CitAcHJvcGVy
dHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqYWx0RGlzcGxheVN0cmluZyBXRUJLSVRfQVZB
SUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TVVJMICphYnNv
bHV0ZUltYWdlVVJMIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworCistICh2b2lkKXNlbGVj
dDsKKy0gKHZvaWQpc2V0U2VsZWN0aW9uUmFuZ2U6KGludClzdGFydCBlbmQ6KGludCllbmQgV0VC
S0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistICh2b2lkKWNsaWNrOworQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50Lm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkwNzY2YjYzNjNjOTg1OGYyNzkwZTk2ZTYxZjAzZDNiMjJmNGUyZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbnB1dEVsZW1l
bnQubW0KQEAgLTAsMCArMSw3MzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTElu
cHV0RWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTUZpbGVMaXN0SW50ZXJuYWwuaCIK
KyNpbXBvcnQgIkRPTUhUTUxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxGb3Jt
RWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTU5vZGVMaXN0SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0
ICJET01Qcml2YXRlLmgiCisjaW1wb3J0ICJET01WYWxpZGl0eVN0YXRlSW50ZXJuYWwuaCIKKyNp
bXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJGaWxlTGlzdC5oIgorI2ltcG9y
dCAiSFRNTEVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxGb3JtRWxlbWVudC5oIgorI2ltcG9ydCAi
SFRNTElucHV0RWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIaXRU
ZXN0UmVzdWx0LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQg
Ik5hbWVOb2RlTGlzdC5oIgorI2ltcG9ydCAiTm9kZUxpc3QuaCIKKyNpbXBvcnQgIlJlbmRlckVs
ZW1lbnQuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBv
cnQgIlZhbGlkaXR5U3RhdGUuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihf
aW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTElucHV0RWxlbWVudAorCistIChO
U1N0cmluZyAqKWFjY2VwdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
YWNjZXB0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QWNjZXB0OihOU1N0cmluZyAqKW5ld0FjY2Vw
dAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBM
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6
YWNjZXB0QXR0ciwgbmV3QWNjZXB0KTsKK30KKworLSAoTlNTdHJpbmcgKilhbHQKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFsdEF0dHIpOworfQorCistICh2b2lkKXNl
dEFsdDooTlNTdHJpbmcgKiluZXdBbHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsdEF0dHIsIG5ld0FsdCk7Cit9CisKKy0gKE5TU3RyaW5n
ICopYXV0b2NvbXBsZXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5hdXRvY29tcGxldGUoKTsKK30KKworLSAodm9pZClzZXRB
dXRvY29tcGxldGU6KE5TU3RyaW5nICopbmV3QXV0b2NvbXBsZXRlCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF1dG9jb21wbGV0ZShu
ZXdBdXRvY29tcGxldGUpOworfQorCistIChCT09MKWF1dG9mb2N1cworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzQXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmF1dG9mb2N1c0F0
dHIpOworfQorCistICh2b2lkKXNldEF1dG9mb2N1czooQk9PTCluZXdBdXRvZm9jdXMKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9v
bGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmF1dG9mb2N1c0F0dHIsIG5ld0F1dG9m
b2N1cyk7Cit9CisKKy0gKEJPT0wpZGVmYXVsdENoZWNrZWQKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjaGVja2VkQXR0cik7Cit9
CisKKy0gKHZvaWQpc2V0RGVmYXVsdENoZWNrZWQ6KEJPT0wpbmV3RGVmYXVsdENoZWNrZWQKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0
Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNoZWNrZWRBdHRyLCBuZXdEZWZh
dWx0Q2hlY2tlZCk7Cit9CisKKy0gKEJPT0wpY2hlY2tlZAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y2hlY2tlZCgpOworfQor
CistICh2b2lkKXNldENoZWNrZWQ6KEJPT0wpbmV3Q2hlY2tlZAoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRDaGVja2VkKG5ld0NoZWNr
ZWQpOworfQorCistIChOU1N0cmluZyAqKWRpck5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OmRpcm5hbWVBdHRyKTsKK30KKworLSAodm9pZClzZXREaXJOYW1lOihO
U1N0cmluZyAqKW5ld0Rpck5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihX
ZWJDb3JlOjpIVE1MTmFtZXM6OmRpcm5hbWVBdHRyLCBuZXdEaXJOYW1lKTsKK30KKworLSAoQk9P
TClkaXNhYmxlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OmRpc2FibGVkQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0RGlzYWJsZWQ6
KEJPT0wpbmV3RGlzYWJsZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmRpc2FibGVkQXR0ciwgbmV3RGlzYWJsZWQpOworfQorCistIChET01IVE1MRm9ybUVsZW1lbnQg
Kilmb3JtCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Zm9ybSgpKSk7Cit9CisKKy0gKERPTUZpbGVM
aXN0ICopZmlsZXMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5maWxlcygpKSk7Cit9CisKKy0gKHZv
aWQpc2V0RmlsZXM6KERPTUZpbGVMaXN0ICopbmV3RmlsZXMKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgQVNTRVJUKG5ld0ZpbGVzKTsKKworICAgIElN
UEwtPnNldEZpbGVzKGNvcmUobmV3RmlsZXMpKTsKK30KKworLSAoTlNTdHJpbmcgKilmb3JtQWN0
aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5mb3JtQWN0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0Rm9ybUFjdGlvbjooTlNT
dHJpbmcgKiluZXdGb3JtQWN0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEZvcm1BY3Rpb24obmV3Rm9ybUFjdGlvbik7Cit9CisK
Ky0gKE5TU3RyaW5nICopZm9ybUVuY3R5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmZvcm1FbmN0eXBlKCk7Cit9CisKKy0g
KHZvaWQpc2V0Rm9ybUVuY3R5cGU6KE5TU3RyaW5nICopbmV3Rm9ybUVuY3R5cGUKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Rm9ybUVu
Y3R5cGUobmV3Rm9ybUVuY3R5cGUpOworfQorCistIChOU1N0cmluZyAqKWZvcm1NZXRob2QKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmZvcm1NZXRob2QoKTsKK30KKworLSAodm9pZClzZXRGb3JtTWV0aG9kOihOU1N0cmluZyAq
KW5ld0Zvcm1NZXRob2QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgSU1QTC0+c2V0Rm9ybU1ldGhvZChuZXdGb3JtTWV0aG9kKTsKK30KKworLSAoQk9P
TClmb3JtTm9WYWxpZGF0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OmZvcm1ub3ZhbGlkYXRlQXR0cik7Cit9CisKKy0gKHZvaWQp
c2V0Rm9ybU5vVmFsaWRhdGU6KEJPT0wpbmV3Rm9ybU5vVmFsaWRhdGUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJp
YnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmZvcm1ub3ZhbGlkYXRlQXR0ciwgbmV3Rm9ybU5vVmFs
aWRhdGUpOworfQorCistIChOU1N0cmluZyAqKWZvcm1UYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmZvcm10YXJnZXRBdHRyKTsKK30KKworLSAodm9pZClzZXRG
b3JtVGFyZ2V0OihOU1N0cmluZyAqKW5ld0Zvcm1UYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmZvcm10YXJnZXRBdHRyLCBuZXdGb3Jt
VGFyZ2V0KTsKK30KKworLSAodW5zaWduZWQpaGVpZ2h0Cit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oZWlnaHQoKTsKK30KKwor
LSAodm9pZClzZXRIZWlnaHQ6KHVuc2lnbmVkKW5ld0hlaWdodAoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRIZWlnaHQobmV3SGVpZ2h0
KTsKK30KKworLSAoQk9PTClpbmRldGVybWluYXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pbmRldGVybWluYXRlKCk7Cit9
CisKKy0gKHZvaWQpc2V0SW5kZXRlcm1pbmF0ZTooQk9PTCluZXdJbmRldGVybWluYXRlCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldElu
ZGV0ZXJtaW5hdGUobmV3SW5kZXRlcm1pbmF0ZSk7Cit9CisKKyNpZiBFTkFCTEUoREFUQUxJU1Rf
RUxFTUVOVCkKKy0gKERPTUhUTUxFbGVtZW50ICopbGlzdAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwt
Pmxpc3QoKSkpOworfQorI2VuZGlmCisKKy0gKE5TU3RyaW5nICopbWF4Cit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjptYXhBdHRyKTsKK30KKworLSAodm9pZClzZXRNYXg6
KE5TU3RyaW5nICopbmV3TWF4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2Vi
Q29yZTo6SFRNTE5hbWVzOjptYXhBdHRyLCBuZXdNYXgpOworfQorCistIChpbnQpbWF4TGVuZ3Ro
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5tYXhMZW5ndGhGb3JCaW5kaW5ncygpOworfQorCistICh2b2lkKXNldE1heExlbmd0
aDooaW50KW5ld01heExlbmd0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5z
ZXRNYXhMZW5ndGhGb3JCaW5kaW5ncyhuZXdNYXhMZW5ndGgsIGVjKTsKKyAgICBXZWJDb3JlOjpy
YWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistIChOU1N0cmluZyAqKW1pbgoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bWluQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0TWlu
OihOU1N0cmluZyAqKW5ld01pbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6bWluQXR0ciwgbmV3TWluKTsKK30KKworLSAoQk9PTCltdWx0aXBs
ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6Om11bHRpcGxlQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0TXVsdGlwbGU6KEJPT0wpbmV3
TXVsdGlwbGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6Om11bHRpcGxl
QXR0ciwgbmV3TXVsdGlwbGUpOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldE5h
bWVBdHRyaWJ1dGUoKTsKK30KKworLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAqKW5ld05hbWUK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om5h
bWVBdHRyLCBuZXdOYW1lKTsKK30KKworLSAoTlNTdHJpbmcgKilwYXR0ZXJuCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpwYXR0ZXJuQXR0cik7Cit9CisKKy0gKHZvaWQp
c2V0UGF0dGVybjooTlNTdHJpbmcgKiluZXdQYXR0ZXJuCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpwYXR0ZXJuQXR0ciwgbmV3UGF0dGVybik7
Cit9CisKKy0gKE5TU3RyaW5nICopcGxhY2Vob2xkZXIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OnBsYWNlaG9sZGVyQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UGxhY2Vo
b2xkZXI6KE5TU3RyaW5nICopbmV3UGxhY2Vob2xkZXIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnBsYWNlaG9sZGVyQXR0ciwgbmV3UGxhY2Vo
b2xkZXIpOworfQorCistIChCT09MKXJlYWRPbmx5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVhZG9ubHlBdHRyKTsKK30KKwor
LSAodm9pZClzZXRSZWFkT25seTooQk9PTCluZXdSZWFkT25seQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6cmVhZG9ubHlBdHRyLCBuZXdSZWFkT25seSk7Cit9CisKKy0g
KEJPT0wpcmVxdWlyZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjpyZXF1aXJlZEF0dHIpOworfQorCistICh2b2lkKXNldFJlcXVp
cmVkOihCT09MKW5ld1JlcXVpcmVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpyZXF1aXJlZEF0dHIsIG5ld1JlcXVpcmVkKTsKK30KKworLSAoTlNTdHJpbmcgKilzaXpl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBXVEY6OlN0cmluZzo6bnVtYmVyKElNUEwtPnNpemUoKSk7Cit9CisKKy0gKHZvaWQpc2V0U2l6
ZTooTlNTdHJpbmcgKiluZXdTaXplCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldFNpemUoV1RGOjpTdHJpbmcobmV3U2l6ZSkudG9JbnQo
KSk7Cit9CisKKy0gKE5TU3RyaW5nICopc3JjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpzcmNBdHRyKTsKK30KKworLSAodm9pZClzZXRTcmM6KE5TU3RyaW5nICop
bmV3U3JjCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjpzcmNBdHRyLCBuZXdTcmMpOworfQorCistIChOU1N0cmluZyAqKXN0ZXAKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnN0ZXBBdHRyKTsKK30KKworLSAodm9pZClz
ZXRTdGVwOihOU1N0cmluZyAqKW5ld1N0ZXAKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnN0ZXBBdHRyLCBuZXdTdGVwKTsKK30KKworLSAoTlNT
dHJpbmcgKil0eXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT50eXBlKCk7Cit9CisKKy0gKHZvaWQpc2V0VHlwZTooTlNTdHJp
bmcgKiluZXdUeXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldFR5cGUobmV3VHlwZSk7Cit9CisKKy0gKE5TU3RyaW5nICopZGVmYXVs
dFZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5kZWZhdWx0VmFsdWUoKTsKK30KKworLSAodm9pZClzZXREZWZhdWx0VmFs
dWU6KE5TU3RyaW5nICopbmV3RGVmYXVsdFZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldERlZmF1bHRWYWx1ZShuZXdEZWZhdWx0
VmFsdWUpOworfQorCistIChOU1N0cmluZyAqKXZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52YWx1ZSgpOworfQorCist
ICh2b2lkKXNldFZhbHVlOihOU1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFZhbHVlKG5ld1ZhbHVlKTsK
K30KKworLSAoTlNUaW1lSW50ZXJ2YWwpdmFsdWVBc0RhdGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChJTVBMLT52YWx1ZUFzRGF0
ZSgpKTsKK30KKworLSAodm9pZClzZXRWYWx1ZUFzRGF0ZTooTlNUaW1lSW50ZXJ2YWwpbmV3VmFs
dWVBc0RhdGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0VmFsdWVBc0Rh
dGUoY29yZShuZXdWYWx1ZUFzRGF0ZSksIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJy
b3IoZWMpOworfQorCistIChkb3VibGUpdmFsdWVBc051bWJlcgoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+dmFsdWVBc051bWJl
cigpOworfQorCistICh2b2lkKXNldFZhbHVlQXNOdW1iZXI6KGRvdWJsZSluZXdWYWx1ZUFzTnVt
YmVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldFZhbHVlQXNOdW1iZXIo
bmV3VmFsdWVBc051bWJlciwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7
Cit9CisKKy0gKHVuc2lnbmVkKXdpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT53aWR0aCgpOworfQorCistICh2b2lkKXNl
dFdpZHRoOih1bnNpZ25lZCluZXdXaWR0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRXaWR0aChuZXdXaWR0aCk7Cit9CisKKy0gKEJP
T0wpd2lsbFZhbGlkYXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT53aWxsVmFsaWRhdGUoKTsKK30KKworLSAoRE9NVmFsaWRp
dHlTdGF0ZSAqKXZhbGlkaXR5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+dmFsaWRpdHkoKSkpOwor
fQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52YWxpZGF0aW9uTWVz
c2FnZSgpOworfQorCistIChET01Ob2RlTGlzdCAqKWxhYmVscworeworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElN
UEwtPmxhYmVscygpKSk7Cit9CisKKy0gKGludClzZWxlY3Rpb25TdGFydAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2VsZWN0
aW9uU3RhcnQoKTsKK30KKworLSAodm9pZClzZXRTZWxlY3Rpb25TdGFydDooaW50KW5ld1NlbGVj
dGlvblN0YXJ0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnNldFNlbGVjdGlvblN0YXJ0KG5ld1NlbGVjdGlvblN0YXJ0KTsKK30KKworLSAo
aW50KXNlbGVjdGlvbkVuZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2VsZWN0aW9uRW5kKCk7Cit9CisKKy0gKHZvaWQpc2V0
U2VsZWN0aW9uRW5kOihpbnQpbmV3U2VsZWN0aW9uRW5kCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFNlbGVjdGlvbkVuZChuZXdTZWxl
Y3Rpb25FbmQpOworfQorCistIChOU1N0cmluZyAqKXNlbGVjdGlvbkRpcmVjdGlvbgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
c2VsZWN0aW9uRGlyZWN0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0U2VsZWN0aW9uRGlyZWN0aW9u
OihOU1N0cmluZyAqKW5ld1NlbGVjdGlvbkRpcmVjdGlvbgoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRTZWxlY3Rpb25EaXJlY3Rpb24o
bmV3U2VsZWN0aW9uRGlyZWN0aW9uKTsKK30KKworLSAoTlNTdHJpbmcgKilhbGlnbgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyKTsKK30KKworLSAodm9p
ZClzZXRBbGlnbjooTlNTdHJpbmcgKiluZXdBbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBuZXdBbGlnbik7Cit9CisK
Ky0gKE5TU3RyaW5nICopdXNlTWFwCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjp1c2VtYXBBdHRyKTsKK30KKworLSAodm9pZClzZXRVc2VNYXA6KE5TU3RyaW5nICopbmV3
VXNlTWFwCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjp1c2VtYXBBdHRyLCBuZXdVc2VNYXApOworfQorCistIChCT09MKWluY3JlbWVudGFsCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6aW5jcmVtZW50YWxBdHRyKTsKK30KKworLSAodm9pZClzZXRJbmNyZW1lbnRhbDooQk9PTClu
ZXdJbmNyZW1lbnRhbAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aW5j
cmVtZW50YWxBdHRyLCBuZXdJbmNyZW1lbnRhbCk7Cit9CisKKy0gKE5TU3RyaW5nICopYWNjZXNz
S2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphY2Nlc3NrZXlBdHRy
KTsKK30KKworLSAodm9pZClzZXRBY2Nlc3NLZXk6KE5TU3RyaW5nICopbmV3QWNjZXNzS2V5Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphY2Nl
c3NrZXlBdHRyLCBuZXdBY2Nlc3NLZXkpOworfQorCistIChOU1N0cmluZyAqKWFsdERpc3BsYXlT
dHJpbmcKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIFdlYkNvcmU6OmRpc3BsYXlTdHJpbmcoSU1QTC0+YWx0KCksIGNvcmUoc2VsZikpOwor
fQorCistIChOU1VSTCAqKWFic29sdXRlSW1hZ2VVUkwKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgaWYgKCFJTVBMLT5yZW5kZXJlcigpIHx8ICFJTVBM
LT5yZW5kZXJlcigpLT5pc0ltYWdlKCkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJu
IFtzZWxmIF9nZXRVUkxBdHRyaWJ1dGU6QCJzcmMiXTsKK30KKworI2lmIEVOQUJMRShJT1NfQVVU
T0NPUlJFQ1RfQU5EX0FVVE9DQVBJVEFMSVpFKQorLSAoQk9PTClhdXRvY29ycmVjdAoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
YXV0b2NvcnJlY3QoKTsKK30KKworLSAodm9pZClzZXRBdXRvY29ycmVjdDooQk9PTCluZXdBdXRv
Y29ycmVjdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBJTVBMLT5zZXRBdXRvY29ycmVjdChuZXdBdXRvY29ycmVjdCk7Cit9CisjZW5kaWYKKworI2lm
IEVOQUJMRShJT1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9DQVBJVEFMSVpFKQorLSAoTlNTdHJpbmcg
KilhdXRvY2FwaXRhbGl6ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+YXV0b2NhcGl0YWxpemUoKTsKK30KKworLSAodm9pZClz
ZXRBdXRvY2FwaXRhbGl6ZTooTlNTdHJpbmcgKiluZXdBdXRvY2FwaXRhbGl6ZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdXRvY2Fw
aXRhbGl6ZShuZXdBdXRvY2FwaXRhbGl6ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJ
QV9DQVBUVVJFKQorLSAoQk9PTCljYXB0dXJlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2FwdHVyZUF0dHIpOworfQorCistICh2
b2lkKXNldENhcHR1cmU6KEJPT0wpbmV3Q2FwdHVyZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6Y2FwdHVyZUF0dHIsIG5ld0NhcHR1cmUpOworfQorI2VuZGlmCisKKy0g
KHZvaWQpc3RlcFVwOihpbnQpbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5z
dGVwVXAobiwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0g
KHZvaWQpc3RlcERvd246KGludCluCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwt
PnN0ZXBEb3duKG4sIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQor
CistIChCT09MKWNoZWNrVmFsaWRpdHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNoZWNrVmFsaWRpdHkoKTsKK30KKworLSAo
dm9pZClzZXRDdXN0b21WYWxpZGl0eTooTlNTdHJpbmcgKillcnJvcgoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRDdXN0b21WYWxpZGl0
eShlcnJvcik7Cit9CisKKy0gKHZvaWQpc2VsZWN0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNlbGVjdCgpOworfQorCistICh2b2lkKXNl
dFJhbmdlVGV4dDooTlNTdHJpbmcgKilyZXBsYWNlbWVudAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICBJTVBMLT5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnQsIGVjKTsKKyAgICBXZWJDb3Jl
OjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistICh2b2lkKXNldFJhbmdlVGV4dDooTlNTdHJp
bmcgKilyZXBsYWNlbWVudCBzdGFydDoodW5zaWduZWQpc3RhcnQgZW5kOih1bnNpZ25lZCllbmQg
c2VsZWN0aW9uTW9kZTooTlNTdHJpbmcgKilzZWxlY3Rpb25Nb2RlCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIElNUEwtPnNldFJhbmdlVGV4dChyZXBsYWNlbWVudCwgc3RhcnQsIGVuZCwg
c2VsZWN0aW9uTW9kZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9
CisKKy0gKHZvaWQpc2V0U2VsZWN0aW9uUmFuZ2U6KGludClzdGFydCBlbmQ6KGludCllbmQKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0
U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7Cit9CisKKy0gKHZvaWQpY2xpY2sKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+Y2xpY2soKTsK
K30KKworLSAodm9pZClzZXRWYWx1ZUZvclVzZXI6KE5TU3RyaW5nICopaW5WYWx1ZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRWYWx1
ZUZvclVzZXIoaW5WYWx1ZSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dCogY29yZShET01IVE1MSW5wdXRFbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFw
cGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Kj4od3JhcHBl
ci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxJbnB1dEVsZW1lbnQgKmtpdChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9u
Q2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MSW5wdXRFbGVt
ZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTElucHV0RWxlbWVudElu
dGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbnB1dEVsZW1l
bnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1MGZjNGU1MWVkYTY2MWYxZjUxMTc2NTFjNmMzZThl
ZjZiMzY2NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxJbnB1dEVsZW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NSFRNTElucHV0RWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBI
VE1MSW5wdXRFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50KiBjb3JlKERPTUhUTUxJbnB1dEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01I
VE1MSW5wdXRFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50UHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50
UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYjY3NjMzN2E2NjRlNjYzZTA1Y2JkMzZmMDQ4ZDIxM2Zi
NTFkMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9E
T01IVE1MSW5wdXRFbGVtZW50Lmg+CisKK0BjbGFzcyBET01IVE1MRWxlbWVudDsKK0BjbGFzcyBE
T01Ob2RlTGlzdDsKK0BjbGFzcyBET01WYWxpZGl0eVN0YXRlOworCitAaW50ZXJmYWNlIERPTUhU
TUxJbnB1dEVsZW1lbnQgKERPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlKQorQHByb3BlcnR5IChj
b3B5KSBOU1N0cmluZyAqYXV0b2NvbXBsZXRlOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAq
ZGlyTmFtZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmZvcm1BY3Rpb247CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICpmb3JtRW5jdHlwZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJp
bmcgKmZvcm1NZXRob2Q7CitAcHJvcGVydHkgQk9PTCBmb3JtTm9WYWxpZGF0ZTsKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKmZvcm1UYXJnZXQ7CitAcHJvcGVydHkgdW5zaWduZWQgaGVpZ2h0
OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01IVE1MRWxlbWVudCAqbGlzdDsKK0Bw
cm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKm1heDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
Km1pbjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnBhdHRlcm47CitAcHJvcGVydHkgKGNv
cHkpIE5TU3RyaW5nICpwbGFjZWhvbGRlcjsKK0Bwcm9wZXJ0eSBCT09MIHJlcXVpcmVkOworQHBy
b3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc3RlcDsKK0Bwcm9wZXJ0eSBOU1RpbWVJbnRlcnZhbCB2
YWx1ZUFzRGF0ZTsKK0Bwcm9wZXJ0eSBkb3VibGUgdmFsdWVBc051bWJlcjsKK0Bwcm9wZXJ0eSB1
bnNpZ25lZCB3aWR0aDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NVmFsaWRpdHlT
dGF0ZSAqdmFsaWRpdHk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdmFs
aWRhdGlvbk1lc3NhZ2U7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTU5vZGVMaXN0
ICpsYWJlbHM7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpzZWxlY3Rpb25EaXJlY3Rpb247
CitAcHJvcGVydHkgQk9PTCBpbmNyZW1lbnRhbDsKK0Bwcm9wZXJ0eSBCT09MIGF1dG9jb3JyZWN0
OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqYXV0b2NhcGl0YWxpemU7CitAcHJvcGVydHkg
Qk9PTCBjYXB0dXJlOworCistICh2b2lkKXN0ZXBVcDooaW50KW47CistICh2b2lkKXN0ZXBEb3du
OihpbnQpbjsKKy0gKEJPT0wpY2hlY2tWYWxpZGl0eTsKKy0gKHZvaWQpc2V0Q3VzdG9tVmFsaWRp
dHk6KE5TU3RyaW5nICopZXJyb3I7CistICh2b2lkKXNldFJhbmdlVGV4dDooTlNTdHJpbmcgKily
ZXBsYWNlbWVudDsKKy0gKHZvaWQpc2V0UmFuZ2VUZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50
IHN0YXJ0Oih1bnNpZ25lZClzdGFydCBlbmQ6KHVuc2lnbmVkKWVuZCBzZWxlY3Rpb25Nb2RlOihO
U1N0cmluZyAqKXNlbGVjdGlvbk1vZGU7CistICh2b2lkKXNldFZhbHVlRm9yVXNlcjooTlNTdHJp
bmcgKil2YWx1ZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTExJRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MTElFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAyOTI5NGM0OWRiOWQ2YmJjMWZjMzVhYWU2YjMy
MzA5NTM1M2EzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTExJRWxlbWVudC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRN
TEVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxF
X01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01IVE1MTElFbGVtZW50IDog
RE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnR5cGU7CitAcHJvcGVy
dHkgaW50IHZhbHVlOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MTElFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MTElFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlZjljY2I2NmU4ZTMyZjY0YmIwYWM0ODA3
MTQyOGNiNmY1NGI0MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxMSUVsZW1lbnQubW0KQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJET01IVE1MTElFbGVtZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRN
TExJRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIK
KyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIu
aD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxMSUVsZW1lbnQqPihy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50
YXRpb24gRE9NSFRNTExJRWxlbWVudAorCistIChOU1N0cmluZyAqKXR5cGUKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnR5cGVBdHRyKTsKK30KKworLSAodm9pZClzZXRU
eXBlOihOU1N0cmluZyAqKW5ld1R5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OnR5cGVBdHRyLCBuZXdUeXBlKTsKK30KKworLSAoaW50KXZh
bHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbHVl
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0VmFsdWU6KGludCluZXdWYWx1ZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRJbnRlZ3JhbEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbHVlQXR0ciwgbmV3VmFsdWUpOworfQorCitA
ZW5kCisKK1dlYkNvcmU6OkhUTUxMSUVsZW1lbnQqIGNvcmUoRE9NSFRNTExJRWxlbWVudCAqd3Jh
cHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
SFRNTExJRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MTElF
bGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTExJRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29y
ZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RE9NSFRNTExJRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUp
KSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxM
SUVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
TElFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmQyNGY0ZTZjZTk0Y2M4OGFmYzU0ODM3
MzM2MjgzMTJmYmYxZTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MTElFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxX
ZWJDb3JlL0RPTUhUTUxMSUVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
SFRNTExJRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTExJRWxlbWVu
dCogY29yZShET01IVE1MTElFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTExJRWxl
bWVudCAqa2l0KFdlYkNvcmU6OkhUTUxMSUVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTGFiZWxFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgyNDRi
MTlkZGYyZDI4YTE2YTYxYTE3Y2Q4MWMyY2Y5OGQxYTk4YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTExhYmVsRWxlbWVudC5oCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIERPTUhUTUxG
b3JtRWxlbWVudDsKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9N
QUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTExhYmVsRWxlbWVudCA6
IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUhUTUxGb3Jt
RWxlbWVudCAqZm9ybTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmh0bWxGb3I7CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICphY2Nlc3NLZXkgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEw
XzQsIDEwXzgpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MTGFiZWxFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MTGFiZWxFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmYjFhMzFlZmIxZjY1ODg1NDE0NWFk
ZmI1ZDhjZTk5ZDcwZmZlOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxMYWJlbEVsZW1lbnQubW0KQEAgLTAsMCArMSw5NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJET01IVE1MTGFiZWxFbGVtZW50SW50ZXJuYWwuaCIKKworI2ltcG9y
dCAiRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MRm9y
bUVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxO
YW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJl
YWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2
YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpO
b2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxMYWJlbEVsZW1lbnQK
KworLSAoRE9NSFRNTEZvcm1FbGVtZW50ICopZm9ybQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmZv
cm0oKSkpOworfQorCistIChOU1N0cmluZyAqKWh0bWxGb3IKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OmZvckF0dHIpOworfQorCistICh2b2lkKXNldEh0bWxGb3I6KE5T
U3RyaW5nICopbmV3SHRtbEZvcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6Zm9yQXR0ciwgbmV3SHRtbEZvcik7Cit9CisKKy0gKERPTUhUTUxF
bGVtZW50ICopY29udHJvbAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmNvbnRyb2woKSkpOworfQor
CistIChOU1N0cmluZyAqKWFjY2Vzc0tleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6YWNjZXNza2V5QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QWNjZXNzS2V5OihOU1N0
cmluZyAqKW5ld0FjY2Vzc0tleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6YWNjZXNza2V5QXR0ciwgbmV3QWNjZXNzS2V5KTsKK30KKworQGVu
ZAorCitXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50KiBjb3JlKERPTUhUTUxMYWJlbEVsZW1lbnQg
KndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNv
cmU6OkhUTUxMYWJlbEVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9N
SFRNTExhYmVsRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQqIHZhbHVlKQor
eworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PERPTUhUTUxMYWJlbEVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MTGFiZWxFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTExhYmVsRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ1
NmZmNGQ2ZDI3ZWExOWQ4YTg3OTljMzQ5ZGJkYzExNWQ0NzgyNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTExhYmVsRWxlbWVudEludGVybmFs
LmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTGFiZWxFbGVtZW50Lmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxMYWJlbEVsZW1lbnQ7Cit9CisKK1dFQkNP
UkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQqIGNvcmUoRE9NSFRNTExhYmVsRWxl
bWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxMYWJlbEVsZW1lbnQgKmtpdChXZWJDb3Jl
OjpIVE1MTGFiZWxFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxMZWdlbmRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhmNDMwZWRlY2IwYjc1NzBh
YzgxMTgyMWEzMGJiMTAzZjM3NzAzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMCwwICsxLDM2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBET01IVE1MRm9ybUVsZW1lbnQ7
CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitX
RUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxMZWdlbmRFbGVtZW50IDogRE9NSFRNTEVs
ZW1lbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NSFRNTEZvcm1FbGVtZW50ICpm
b3JtOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqYWxpZ247CitAcHJvcGVydHkgKGNvcHkp
IE5TU3RyaW5nICphY2Nlc3NLZXkgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzQsIDEwXzgpOwor
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTGVn
ZW5kRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTExlZ2Vu
ZEVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNiYmVlZmMyOGVjNzkzNTE1OTdiZDcwY2M4MWJkY2Qz
MjgyNzY1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTExlZ2VuZEVsZW1lbnQubW0KQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJET01IVE1MTGVnZW5kRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTUhU
TUxGb3JtRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNp
bXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MRm9ybUVsZW1lbnQuaCIK
KyNpbXBvcnQgIkhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNp
bXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIK
KyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2lt
cG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
SFRNTExlZ2VuZEVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50
ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTExlZ2VuZEVsZW1lbnQKKworLSAoRE9N
SFRNTEZvcm1FbGVtZW50ICopZm9ybQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmZvcm0oKSkpOwor
fQorCistIChOU1N0cmluZyAqKWFsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjphbGlnbkF0dHIpOworfQorCistICh2b2lkKXNldEFsaWduOihOU1N0cmluZyAqKW5l
d0FsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjphbGlnbkF0dHIsIG5ld0FsaWduKTsKK30KKworLSAoTlNTdHJpbmcgKilhY2Nlc3NLZXkK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFjY2Vzc2tleUF0dHIpOwor
fQorCistICh2b2lkKXNldEFjY2Vzc0tleTooTlNTdHJpbmcgKiluZXdBY2Nlc3NLZXkKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFjY2Vzc2tl
eUF0dHIsIG5ld0FjY2Vzc0tleSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTExlZ2VuZEVs
ZW1lbnQqIGNvcmUoRE9NSFRNTExlZ2VuZEVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJu
IHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxMZWdlbmRFbGVtZW50Kj4o
d3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxMZWdlbmRFbGVtZW50ICpraXQo
V2ViQ29yZTo6SFRNTExlZ2VuZEVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRW
aW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxM
ZWdlbmRFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTExlZ2Vu
ZEVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
TGVnZW5kRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhiMDQzOTIxYTdkODU2MzEyMjhi
OTE0ZGQwOThmZmQ4OGE5OTQzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTExlZ2VuZEVsZW1lbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgPFdlYkNvcmUvRE9NSFRNTExlZ2VuZEVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgSFRNTExlZ2VuZEVsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNv
cmU6OkhUTUxMZWdlbmRFbGVtZW50KiBjb3JlKERPTUhUTUxMZWdlbmRFbGVtZW50ICopOworV0VC
Q09SRV9FWFBPUlQgRE9NSFRNTExlZ2VuZEVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MTGVnZW5k
RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTExp
bmtFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FiMTE0MTA3Yzk4YzQ5YTdiZWMxZTk4ZGM4ZDc3NDNm
NjVjYjY0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTExpbmtFbGVtZW50LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1M
RWxlbWVudC5oPgorCitAY2xhc3MgRE9NU3R5bGVTaGVldDsKK0BjbGFzcyBOU1N0cmluZzsKK0Bj
bGFzcyBOU1VSTDsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTExpbmtFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bw
cm9wZXJ0eSBCT09MIGRpc2FibGVkOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqY2hhcnNl
dDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmhyZWY7CitAcHJvcGVydHkgKGNvcHkpIE5T
U3RyaW5nICpocmVmbGFuZzsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKm1lZGlhOworQHBy
b3BlcnR5IChjb3B5KSBOU1N0cmluZyAqcmVsOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAq
cmV2OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdGFyZ2V0OworQHByb3BlcnR5IChjb3B5
KSBOU1N0cmluZyAqdHlwZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NU3R5bGVT
aGVldCAqc2hlZXQgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNCk7CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBjb3B5KSBOU1VSTCAqYWJzb2x1dGVMaW5rVVJMIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEw
XzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MTGlua0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxM
aW5rRWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGRlMzRkOTc5YTNjMmQ0NDI1ODU3MDFjMGU1NGNh
MTI4NWM5OGI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MTGlua0VsZW1lbnQubW0KQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRE9NSFRNTExpbmtFbGVtZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRE9N
VG9rZW5MaXN0SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NUHJpdmF0ZS5oIgorI2ltcG9ydCAiRE9NU3R5bGVTaGVldEludGVybmFsLmgiCisjaW1w
b3J0ICJET01Ub2tlbkxpc3QuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1w
b3J0ICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAi
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJTdHlsZVNoZWV0LmgiCisjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmpl
Y3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNv
cmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTExpbmtFbGVt
ZW50CisKKy0gKEJPT0wpZGlzYWJsZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpkaXNhYmxlZEF0dHIpOworfQorCistICh2b2lk
KXNldERpc2FibGVkOihCT09MKW5ld0Rpc2FibGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpkaXNhYmxlZEF0dHIsIG5ld0Rpc2FibGVkKTsKK30KKworLSAoTlNTdHJp
bmcgKiljaGFyc2V0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjaGFy
c2V0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q2hhcnNldDooTlNTdHJpbmcgKiluZXdDaGFyc2V0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpj
aGFyc2V0QXR0ciwgbmV3Q2hhcnNldCk7Cit9CisKKy0gKE5TU3RyaW5nICopaHJlZgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aHJlZkF0dHIpOworfQorCistICh2
b2lkKXNldEhyZWY6KE5TU3RyaW5nICopbmV3SHJlZgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6aHJlZkF0dHIsIG5ld0hyZWYpOworfQorCist
IChOU1N0cmluZyAqKWhyZWZsYW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpocmVmbGFuZ0F0dHIpOworfQorCistICh2b2lkKXNldEhyZWZsYW5nOihOU1N0cmluZyAq
KW5ld0hyZWZsYW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6
SFRNTE5hbWVzOjpocmVmbGFuZ0F0dHIsIG5ld0hyZWZsYW5nKTsKK30KKworLSAoTlNTdHJpbmcg
KiltZWRpYQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bWVkaWFBdHRy
KTsKK30KKworLSAodm9pZClzZXRNZWRpYTooTlNTdHJpbmcgKiluZXdNZWRpYQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bWVkaWFBdHRyLCBu
ZXdNZWRpYSk7Cit9CisKKy0gKE5TU3RyaW5nICopcmVsCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpyZWxBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWw6KE5TU3RyaW5n
ICopbmV3UmVsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpyZWxBdHRyLCBuZXdSZWwpOworfQorCistIChOU1N0cmluZyAqKXJldgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmV2QXR0cik7Cit9CisKKy0gKHZvaWQp
c2V0UmV2OihOU1N0cmluZyAqKW5ld1JldgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmV2QXR0ciwgbmV3UmV2KTsKK30KKworLSAoTlNTdHJp
bmcgKil0YXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdl
dEF0dHIpOworfQorCistICh2b2lkKXNldFRhcmdldDooTlNTdHJpbmcgKiluZXdUYXJnZXQKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdl
dEF0dHIsIG5ld1RhcmdldCk7Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIpOworfQorCistICh2b2lkKXNldFR5
cGU6KE5TU3RyaW5nICopbmV3VHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIG5ld1R5cGUpOworfQorCistIChOU1N0cmlu
ZyAqKWFzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphc0F0dHIpOwor
fQorCistICh2b2lkKXNldEFzOihOU1N0cmluZyAqKW5ld0FzCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphc0F0dHIsIG5ld0FzKTsKK30KKwor
LSAoTlNTdHJpbmcgKiljcm9zc09yaWdpbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y3Jvc3NPcmlnaW4oKTsKK30KKworLSAo
dm9pZClzZXRDcm9zc09yaWdpbjooTlNTdHJpbmcgKiluZXdDcm9zc09yaWdpbgoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRDcm9zc09y
aWdpbihuZXdDcm9zc09yaWdpbik7Cit9CisKKy0gKERPTVN0eWxlU2hlZXQgKilzaGVldAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0
KFdURjo6Z2V0UHRyKElNUEwtPnNoZWV0KCkpKTsKK30KKworLSAoTlNVUkwgKilhYnNvbHV0ZUxp
bmtVUkwKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIFtzZWxmIF9nZXRVUkxBdHRyaWJ1dGU6QCJocmVmIl07Cit9CisKKy0gKERPTURPTVRv
a2VuTGlzdCAqKXJlbExpc3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5yZWxMaXN0KCkpKTsKK30K
KworQGVuZAorCitXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQqIGNvcmUoRE9NSFRNTExpbmtFbGVt
ZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxX
ZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKwor
RE9NSFRNTExpbmtFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50KiB2YWx1ZSkK
K3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxET01IVE1MTGlua0VsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MTGlua0VsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MTGlua0VsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3Y2I3
Y2ZiYmJiNzc2YzY0NzM2ZmI4MGYxMWI0MTQ3YTRlNjljYzcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxMaW5rRWxlbWVudEludGVybmFsLmgK
QEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTGlua0VsZW1lbnQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTExpbmtFbGVtZW50OworfQorCitXRUJDT1JFX0VY
UE9SVCBXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQqIGNvcmUoRE9NSFRNTExpbmtFbGVtZW50ICop
OworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTExpbmtFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTExp
bmtFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxNYXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxN
YXBFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQzN2I2NGYwOGI0M2Q5MzI3MjUzODIzYTQ5NWYxNTIy
MWE4YjZhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTE1hcEVsZW1lbnQuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxF
bGVtZW50Lmg+CisKK0BjbGFzcyBET01IVE1MQ29sbGVjdGlvbjsKK0BjbGFzcyBOU1N0cmluZzsK
KworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRl
cmZhY2UgRE9NSFRNTE1hcEVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChyZWFk
b25seSwgc3Ryb25nKSBET01IVE1MQ29sbGVjdGlvbiAqYXJlYXM7CitAcHJvcGVydHkgKGNvcHkp
IE5TU3RyaW5nICpuYW1lOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MTWFwRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTE1hcEVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY0NTMwZWZlMjQyYTVjMzBkODZi
NDQxOTdjYmVmOWY5ZDkwZmNmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTE1hcEVsZW1lbnQubW0KQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJET01IVE1MTWFwRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQg
IkRPTUhUTUxDb2xsZWN0aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5o
IgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxDb2xsZWN0aW9u
LmgiCisjaW1wb3J0ICJIVE1MTWFwRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisj
aW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgi
CisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNp
bXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6
OkhUTUxNYXBFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVy
bmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxNYXBFbGVtZW50CisKKy0gKERPTUhUTUxD
b2xsZWN0aW9uICopYXJlYXMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5hcmVhcygpKSk7Cit9CisK
Ky0gKE5TU3RyaW5nICopbmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TmFtZUF0dHJpYnV0ZSgpOworfQorCistICh2
b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmV3TmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bmFtZUF0dHIsIG5ld05hbWUpOworfQorCitA
ZW5kCisKK1dlYkNvcmU6OkhUTUxNYXBFbGVtZW50KiBjb3JlKERPTUhUTUxNYXBFbGVtZW50ICp3
cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpIVE1MTWFwRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1M
TWFwRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxNYXBFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBX
ZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxET01IVE1MTWFwRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4o
dmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxNYXBFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTE1hcEVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMWRmZmRhYjFmMmY0Mjli
MjQ0YTI5MDEwNmM4YjI5M2M0OWE0ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNYXBFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxNYXBFbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIEhUTUxNYXBFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpI
VE1MTWFwRWxlbWVudCogY29yZShET01IVE1MTWFwRWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JU
IERPTUhUTUxNYXBFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTE1hcEVsZW1lbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1hcnF1ZWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNYXJxdWVlRWxlbWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE3M2JhMjVlNjVmZTU0YmVmMDUxZWMyOGEzMjExMDM2ZjA2ZGM2NDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNYXJx
dWVlRWxlbWVudC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQu
aD4KKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNSkKK1dFQkNPUkVfRVhQT1JUIEBp
bnRlcmZhY2UgRE9NSFRNTE1hcnF1ZWVFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKKy0gKHZvaWQp
c3RhcnQ7CistICh2b2lkKXN0b3A7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxNYXJxdWVlRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTE1hcnF1ZWVFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTJlYzBm
ZDVhMjlkZDQ3MTVkMjFhNzY2MjVhZjMyODgzYmY4YTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNYXJxdWVlRWxlbWVudC5tbQpAQCAtMCww
ICsxLDIwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MTWFycXVlZUVsZW1lbnRJ
bnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2Vw
dGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbXBvcnQg
IkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmpl
Y3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdl
YkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTE1hcnF1
ZWVFbGVtZW50CisKKy0gKE5TU3RyaW5nICopYmVoYXZpb3IKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OmJlaGF2aW9yQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QmVoYXZp
b3I6KE5TU3RyaW5nICopbmV3QmVoYXZpb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmJlaGF2aW9yQXR0ciwgbmV3QmVoYXZpb3IpOworfQor
CistIChOU1N0cmluZyAqKWJnQ29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OmJnY29sb3JBdHRyKTsKK30KKworLSAodm9pZClzZXRCZ0NvbG9yOihOU1N0cmluZyAq
KW5ld0JnQ29sb3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OmJnY29sb3JBdHRyLCBuZXdCZ0NvbG9yKTsKK30KKworLSAoTlNTdHJpbmcgKilk
aXJlY3Rpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmRpcmVjdGlv
bkF0dHIpOworfQorCistICh2b2lkKXNldERpcmVjdGlvbjooTlNTdHJpbmcgKiluZXdEaXJlY3Rp
b24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6
OmRpcmVjdGlvbkF0dHIsIG5ld0RpcmVjdGlvbik7Cit9CisKKy0gKE5TU3RyaW5nICopaGVpZ2h0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpoZWlnaHRBdHRyKTsKK30K
KworLSAodm9pZClzZXRIZWlnaHQ6KE5TU3RyaW5nICopbmV3SGVpZ2h0Cit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBuZXdI
ZWlnaHQpOworfQorCistICh1bnNpZ25lZCloc3BhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFVuc2lnbmVkSW50ZWdy
YWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpoc3BhY2VBdHRyKTsKK30KKworLSAodm9p
ZClzZXRIc3BhY2U6KHVuc2lnbmVkKW5ld0hzcGFjZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRVbnNpZ25lZEludGVncmFsQXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aHNwYWNlQXR0ciwgbmV3SHNwYWNlKTsKK30KKworLSAo
aW50KWxvb3AKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPmxvb3AoKTsKK30KKworLSAodm9pZClzZXRMb29wOihpbnQpbmV3TG9v
cAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRMb29wKG5ld0xvb3AsIGVj
KTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistICh1bnNpZ25lZClz
Y3JvbGxBbW91bnQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPnNjcm9sbEFtb3VudCgpOworfQorCistICh2b2lkKXNldFNjcm9s
bEFtb3VudDoodW5zaWduZWQpbmV3U2Nyb2xsQW1vdW50Cit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFNjcm9sbEFtb3VudChuZXdTY3Jv
bGxBbW91bnQpOworfQorCistICh1bnNpZ25lZClzY3JvbGxEZWxheQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2Nyb2xsRGVs
YXkoKTsKK30KKworLSAodm9pZClzZXRTY3JvbGxEZWxheToodW5zaWduZWQpbmV3U2Nyb2xsRGVs
YXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0U2Nyb2xsRGVsYXkobmV3U2Nyb2xsRGVsYXkpOworfQorCistIChCT09MKXRydWVTcGVl
ZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6OnRydWVzcGVlZEF0dHIpOworfQorCistICh2b2lkKXNldFRydWVTcGVlZDooQk9PTClu
ZXdUcnVlU3BlZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnRydWVz
cGVlZEF0dHIsIG5ld1RydWVTcGVlZCk7Cit9CisKKy0gKHVuc2lnbmVkKXZzcGFjZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Z2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZzcGFjZUF0
dHIpOworfQorCistICh2b2lkKXNldFZzcGFjZToodW5zaWduZWQpbmV3VnNwYWNlCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFVuc2ln
bmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2c3BhY2VBdHRyLCBuZXdW
c3BhY2UpOworfQorCistIChOU1N0cmluZyAqKXdpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIpOworfQorCistICh2b2lkKXNldFdpZHRoOihOU1N0
cmluZyAqKW5ld1dpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIG5ld1dpZHRoKTsKK30KKworLSAodm9pZClzdGFydAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
dGFydCgpOworfQorCistICh2b2lkKXN0b3AKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c3RvcCgpOworfQorCitAZW5kCisKK1dlYkNvcmU6
OkhUTUxNYXJxdWVlRWxlbWVudCogY29yZShET01IVE1MTWFycXVlZUVsZW1lbnQgKndyYXBwZXIp
Cit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxN
YXJxdWVlRWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MTWFy
cXVlZUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqIHZhbHVlKQorewor
ICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PERPTUhUTUxNYXJxdWVlRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxNYXJxdWVlRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxNYXJxdWVlRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWIwNjk1OWNhOGFjNTgzZTcwN2I4N2U3ZmZkNzE3OWNiMjE5OGUzMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50
ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxNYXJxdWVlRWxlbWVu
dC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MTWFycXVlZUVsZW1lbnQ7Cit9
CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudCogY29yZShET01I
VE1MTWFycXVlZUVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MTWFycXVlZUVsZW1l
bnQgKmtpdChXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVkaWFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI1
NTZjMmY1MWZkMGU1M2IzYTI1NGQ2YjViYTk4M2RmOTQ1N2RkZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIERPTU1l
ZGlhRXJyb3I7CitAY2xhc3MgRE9NVGltZVJhbmdlczsKK0BjbGFzcyBOU1N0cmluZzsKKworZW51
bSB7CisgICAgRE9NX05FVFdPUktfRU1QVFkgPSAwLAorICAgIERPTV9ORVRXT1JLX0lETEUgPSAx
LAorICAgIERPTV9ORVRXT1JLX0xPQURJTkcgPSAyLAorICAgIERPTV9ORVRXT1JLX05PX1NPVVJD
RSA9IDMsCisgICAgRE9NX0hBVkVfTk9USElORyA9IDAsCisgICAgRE9NX0hBVkVfTUVUQURBVEEg
PSAxLAorICAgIERPTV9IQVZFX0NVUlJFTlRfREFUQSA9IDIsCisgICAgRE9NX0hBVkVfRlVUVVJF
X0RBVEEgPSAzLAorICAgIERPTV9IQVZFX0VOT1VHSF9EQVRBID0gNAorfSBXRUJLSVRfRU5VTV9B
VkFJTEFCTEVfTUFDKDk4NzZfNSk7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDk4NzZf
NSkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTE1lZGlhRWxlbWVudCA6IERPTUhU
TUxFbGVtZW50CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTU1lZGlhRXJyb3IgKmVy
cm9yOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc3JjOworQHByb3BlcnR5IChyZWFkb25s
eSwgY29weSkgTlNTdHJpbmcgKmN1cnJlbnRTcmM7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5n
ICpjcm9zc09yaWdpbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNob3J0IG5ldHdv
cmtTdGF0ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnByZWxvYWQ7CitAcHJvcGVydHkg
KHJlYWRvbmx5LCBzdHJvbmcpIERPTVRpbWVSYW5nZXMgKmJ1ZmZlcmVkOworQHByb3BlcnR5IChy
ZWFkb25seSkgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkp
IEJPT0wgc2Vla2luZzsKK0Bwcm9wZXJ0eSBkb3VibGUgY3VycmVudFRpbWU7CitAcHJvcGVydHkg
KHJlYWRvbmx5KSBkb3VibGUgZHVyYXRpb247CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIHBh
dXNlZDsKK0Bwcm9wZXJ0eSBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZTsKK0Bwcm9wZXJ0eSBk
b3VibGUgcGxheWJhY2tSYXRlOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01UaW1l
UmFuZ2VzICpwbGF5ZWQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTVRpbWVSYW5n
ZXMgKnNlZWthYmxlOworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBlbmRlZDsKK0Bwcm9wZXJ0
eSBCT09MIGF1dG9wbGF5OworQHByb3BlcnR5IEJPT0wgbG9vcDsKK0Bwcm9wZXJ0eSBCT09MIGNv
bnRyb2xzOworQHByb3BlcnR5IGRvdWJsZSB2b2x1bWU7CitAcHJvcGVydHkgQk9PTCBtdXRlZDsK
K0Bwcm9wZXJ0eSBCT09MIGRlZmF1bHRNdXRlZDsKK0Bwcm9wZXJ0eSBCT09MIHdlYmtpdFByZXNl
cnZlc1BpdGNoOworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB3ZWJraXRIYXNDbG9zZWRDYXB0
aW9uczsKK0Bwcm9wZXJ0eSBCT09MIHdlYmtpdENsb3NlZENhcHRpb25zVmlzaWJsZTsKK0Bwcm9w
ZXJ0eSAoY29weSkgTlNTdHJpbmcgKm1lZGlhR3JvdXA7CisKKy0gKHZvaWQpbG9hZDsKKy0gKE5T
U3RyaW5nICopY2FuUGxheVR5cGU6KE5TU3RyaW5nICopdHlwZSBrZXlTeXN0ZW06KE5TU3RyaW5n
ICopa2V5U3lzdGVtOworLSAoTlNUaW1lSW50ZXJ2YWwpZ2V0U3RhcnREYXRlOworLSAodm9pZClw
bGF5OworLSAodm9pZClwYXVzZTsKKy0gKHZvaWQpZmFzdFNlZWs6KGRvdWJsZSl0aW1lOworQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVkaWFF
bGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVkaWFFbGVt
ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE5NDRhYzAzMDRmMmQ1YzQxOTk3MGM3YTEwNzM3OWEyM2E4ZjM3
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxNZWRpYUVsZW1lbnQubW0KQEAgLTAsMCArMSwzNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFZJREVPKQorCisjaW1wb3J0ICJET01IVE1MTWVkaWFFbGVtZW50SW50ZXJuYWwuaCIK
KworI2ltcG9ydCAiRE9NTWVkaWFFcnJvckludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVRpbWVSYW5nZXNJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhj
ZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbXBvcnQg
IkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0
ICJNZWRpYUVycm9yLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVGltZVJh
bmdlcy5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRl
LmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2Rl
Kj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxNZWRpYUVsZW1lbnQKKwor
LSAoRE9NTWVkaWFFcnJvciAqKWVycm9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+ZXJyb3IoKSkp
OworfQorCistIChOU1N0cmluZyAqKXNyYworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6c3JjQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U3JjOihOU1N0cmluZyAqKW5l
d1NyYworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6c3JjQXR0ciwgbmV3U3JjKTsKK30KKworLSAoTlNTdHJpbmcgKiljdXJyZW50U3JjCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5jdXJyZW50U3JjKCk7Cit9CisKKy0gKE5TU3RyaW5nICopY3Jvc3NPcmlnaW4KK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNy
b3NzT3JpZ2luKCk7Cit9CisKKy0gKHZvaWQpc2V0Q3Jvc3NPcmlnaW46KE5TU3RyaW5nICopbmV3
Q3Jvc3NPcmlnaW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0Q3Jvc3NPcmlnaW4obmV3Q3Jvc3NPcmlnaW4pOworfQorCistICh1bnNp
Z25lZCBzaG9ydCluZXR3b3JrU3RhdGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPm5ldHdvcmtTdGF0ZSgpOworfQorCistIChO
U1N0cmluZyAqKXByZWxvYWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnByZWxvYWQoKTsKK30KKworLSAodm9pZClzZXRQcmVs
b2FkOihOU1N0cmluZyAqKW5ld1ByZWxvYWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0UHJlbG9hZChuZXdQcmVsb2FkKTsKK30KKwor
LSAoRE9NVGltZVJhbmdlcyAqKWJ1ZmZlcmVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+YnVmZmVy
ZWQoKSkpOworfQorCistICh1bnNpZ25lZCBzaG9ydClyZWFkeVN0YXRlCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5yZWFkeVN0
YXRlKCk7Cit9CisKKy0gKEJPT0wpc2Vla2luZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2Vla2luZygpOworfQorCistIChk
b3VibGUpY3VycmVudFRpbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmN1cnJlbnRUaW1lKCk7Cit9CisKKy0gKHZvaWQpc2V0
Q3VycmVudFRpbWU6KGRvdWJsZSluZXdDdXJyZW50VGltZQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICBJTVBMLT5zZXRDdXJyZW50VGltZShuZXdDdXJyZW50VGltZSwgZWMpOworICAgIFdl
YkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKGRvdWJsZSlkdXJhdGlvbgorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+ZHVyYXRpb24oKTsKK30KKworLSAoQk9PTClwYXVzZWQKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnBhdXNlZCgpOworfQor
CistIChkb3VibGUpZGVmYXVsdFBsYXliYWNrUmF0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+ZGVmYXVsdFBsYXliYWNrUmF0
ZSgpOworfQorCistICh2b2lkKXNldERlZmF1bHRQbGF5YmFja1JhdGU6KGRvdWJsZSluZXdEZWZh
dWx0UGxheWJhY2tSYXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldERlZmF1bHRQbGF5YmFja1JhdGUobmV3RGVmYXVsdFBsYXliYWNr
UmF0ZSk7Cit9CisKKy0gKGRvdWJsZSlwbGF5YmFja1JhdGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnBsYXliYWNrUmF0ZSgp
OworfQorCistICh2b2lkKXNldFBsYXliYWNrUmF0ZTooZG91YmxlKW5ld1BsYXliYWNrUmF0ZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRQbGF5YmFja1JhdGUobmV3UGxheWJhY2tSYXRlKTsKK30KKworLSAoRE9NVGltZVJhbmdlcyAq
KXBsYXllZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnBsYXllZCgpKSk7Cit9CisKKy0gKERPTVRp
bWVSYW5nZXMgKilzZWVrYWJsZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnNlZWthYmxlKCkpKTsK
K30KKworLSAoQk9PTCllbmRlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+ZW5kZWQoKTsKK30KKworLSAoQk9PTClhdXRvcGxh
eQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6OmF1dG9wbGF5QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QXV0b3BsYXk6KEJPT0wpbmV3
QXV0b3BsYXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmF1dG9wbGF5
QXR0ciwgbmV3QXV0b3BsYXkpOworfQorCistIChCT09MKWxvb3AKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpsb29wQXR0cik7Cit9
CisKKy0gKHZvaWQpc2V0TG9vcDooQk9PTCluZXdMb29wCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpsb29wQXR0ciwgbmV3TG9vcCk7Cit9CisKKy0gKEJPT0wpY29udHJv
bHMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmNvbnRyb2xzKCk7Cit9CisKKy0gKHZvaWQpc2V0Q29udHJvbHM6KEJPT0wpbmV3
Q29udHJvbHMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0Q29udHJvbHMobmV3Q29udHJvbHMpOworfQorCistIChkb3VibGUpdm9sdW1l
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT52b2x1bWUoKTsKK30KKworLSAodm9pZClzZXRWb2x1bWU6KGRvdWJsZSluZXdWb2x1
bWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0Vm9sdW1lKG5ld1ZvbHVt
ZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKEJPT0wp
bXV0ZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPm11dGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0TXV0ZWQ6KEJPT0wpbmV3TXV0
ZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0TXV0ZWQobmV3TXV0ZWQpOworfQorCistIChCT09MKWRlZmF1bHRNdXRlZAoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om11
dGVkQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0RGVmYXVsdE11dGVkOihCT09MKW5ld0RlZmF1bHRN
dXRlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bXV0ZWRBdHRyLCBu
ZXdEZWZhdWx0TXV0ZWQpOworfQorCistIChCT09MKXdlYmtpdFByZXNlcnZlc1BpdGNoCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT53ZWJraXRQcmVzZXJ2ZXNQaXRjaCgpOworfQorCistICh2b2lkKXNldFdlYmtpdFByZXNlcnZl
c1BpdGNoOihCT09MKW5ld1dlYmtpdFByZXNlcnZlc1BpdGNoCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFdlYmtpdFByZXNlcnZlc1Bp
dGNoKG5ld1dlYmtpdFByZXNlcnZlc1BpdGNoKTsKK30KKworLSAoQk9PTCl3ZWJraXRIYXNDbG9z
ZWRDYXB0aW9ucworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+d2Via2l0SGFzQ2xvc2VkQ2FwdGlvbnMoKTsKK30KKworLSAoQk9P
TCl3ZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndlYmtpdENsb3NlZENhcHRpb25z
VmlzaWJsZSgpOworfQorCistICh2b2lkKXNldFdlYmtpdENsb3NlZENhcHRpb25zVmlzaWJsZToo
Qk9PTCluZXdXZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0V2Via2l0Q2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKG5ld1dlYmtpdENsb3NlZENhcHRpb25zVmlzaWJsZSk7Cit9CisKKy0gKE5TU3Ry
aW5nICopbWVkaWFHcm91cAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
bWVkaWFncm91cEF0dHIpOworfQorCistICh2b2lkKXNldE1lZGlhR3JvdXA6KE5TU3RyaW5nICop
bmV3TWVkaWFHcm91cAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6bWVkaWFncm91cEF0dHIsIG5ld01lZGlhR3JvdXApOworfQorCistICh2b2lk
KWxvYWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+bG9hZCgpOworfQorCistIChOU1N0cmluZyAqKWNhblBsYXlUeXBlOihOU1N0cmluZyAq
KXR5cGUga2V5U3lzdGVtOihOU1N0cmluZyAqKWtleVN5c3RlbQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y2FuUGxheVR5cGUo
dHlwZSwga2V5U3lzdGVtKTsKK30KKworLSAoTlNUaW1lSW50ZXJ2YWwpZ2V0U3RhcnREYXRlCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5nZXRTdGFydERhdGUoKTsKK30KKworLSAodm9pZClwbGF5Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnBsYXkoKTsKK30KKworLSAo
dm9pZClwYXVzZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBJTVBMLT5wYXVzZSgpOworfQorCistICh2b2lkKWZhc3RTZWVrOihkb3VibGUpdGltZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5m
YXN0U2Vlayh0aW1lKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50KiBj
b3JlKERPTUhUTUxNZWRpYUVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIg
PyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTE1lZGlhRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVj
a1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxNZWRpYUVsZW1lbnQq
PihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MTWVkaWFFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTE1lZGlhRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBiZTkwNzcx
MGE0NjNiYmRkNGY2MjllMWI4MTEzZGJkOTE5YjViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1lZGlhRWxlbWVudEludGVybmFsLmgKQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTWVkaWFFbGVtZW50Lmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQ
T1JUIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQqIGNvcmUoRE9NSFRNTE1lZGlhRWxlbWVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxNZWRpYUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxNZW51RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MTWVudUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjlmYTQzNzU0MmEwYzZiNjY0ZDI3OGVhMTMy
MjJiMDQwY2Q1NmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MTWVudUVsZW1lbnQuaApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TUhUTUxFbGVtZW50Lmg+CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJD
T1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxNZW51RWxlbWVudCA6IERPTUhUTUxFbGVtZW50
CitAcHJvcGVydHkgQk9PTCBjb21wYWN0OworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVudUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxNZW51RWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2E5MDI4ZWQw
YWU3YTM4NmM1ZjE0NjczNzhlNDBlNTI2ZDY5ZjE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVudUVsZW1lbnQubW0KQEAgLTAsMCArMSw2
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MTWVudUVsZW1lbnRJbnRlcm5hbC5o
IgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRs
ZXJzLmgiCisjaW1wb3J0ICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5o
IgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVj
ay5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dl
dFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTE1lbnVFbGVt
ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworQGlt
cGxlbWVudGF0aW9uIERPTUhUTUxNZW51RWxlbWVudAorCistIChCT09MKWNvbXBhY3QKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwt
Pmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpj
b21wYWN0QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q29tcGFjdDooQk9PTCluZXdDb21wYWN0Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNl
dEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjb21wYWN0QXR0ciwgbmV3Q29t
cGFjdCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTE1lbnVFbGVtZW50KiBjb3JlKERPTUhU
TUxNZW51RWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJw
cmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTE1lbnVFbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6
IDA7Cit9CisKK0RPTUhUTUxNZW51RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVu
dCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTE1lbnVFbGVtZW50Kj4oa2l0KHN0YXRpY19j
YXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1lbnVFbGVtZW50SW50ZXJuYWwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yOTE1YmZjNzYzOTQ5MjA3NTAyNzZkN2ViMDk3Y2M0NjJmMzM1NGM4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWVudUVsZW1lbnRJ
bnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTE1lbnVFbGVtZW50
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxNZW51RWxlbWVudDsKK30KKwor
V0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTE1lbnVFbGVtZW50KiBjb3JlKERPTUhUTUxNZW51
RWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxNZW51RWxlbWVudCAqa2l0KFdlYkNv
cmU6OkhUTUxNZW51RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MTWV0YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTE1ldGFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVmN2ZmNGM2ZDQxNGU2NTMyOTll
ODgyNTY3ZjZiNjFmMzJmOGI1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTE1ldGFFbGVtZW50LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2Vi
Q29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFT
U19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxN
ZXRhRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpj
b250ZW50OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqaHR0cEVxdWl2OworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqbmFtZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnNjaGVt
ZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TE1ldGFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWV0
YUVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY5NTQxMzM3ODViMTg2YTFhNzE5Y2RkMjdkMjJiMjE4
NmY2OWY3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTE1ldGFFbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkRPTUhUTUxNZXRhRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJ
bnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxN
ZXRhRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIK
KyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIu
aD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudCo+
KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1l
bnRhdGlvbiBET01IVE1MTWV0YUVsZW1lbnQKKworLSAoTlNTdHJpbmcgKiljb250ZW50Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjb250ZW50QXR0cik7Cit9CisKKy0g
KHZvaWQpc2V0Q29udGVudDooTlNTdHJpbmcgKiluZXdDb250ZW50Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjb250ZW50QXR0ciwgbmV3Q29u
dGVudCk7Cit9CisKKy0gKE5TU3RyaW5nICopaHR0cEVxdWl2Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpodHRwX2VxdWl2QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0SHR0
cEVxdWl2OihOU1N0cmluZyAqKW5ld0h0dHBFcXVpdgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6aHR0cF9lcXVpdkF0dHIsIG5ld0h0dHBFcXVp
dik7Cit9CisKKy0gKE5TU3RyaW5nICopbmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TmFtZUF0dHJpYnV0ZSgpOwor
fQorCistICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmV3TmFtZQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bmFtZUF0dHIsIG5ld05hbWUp
OworfQorCistIChOU1N0cmluZyAqKXNjaGVtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6c2NoZW1lQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0U2NoZW1lOihOU1N0cmlu
ZyAqKW5ld1NjaGVtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6c2NoZW1lQXR0ciwgbmV3U2NoZW1lKTsKK30KKworQGVuZAorCitXZWJDb3Jl
OjpIVE1MTWV0YUVsZW1lbnQqIGNvcmUoRE9NSFRNTE1ldGFFbGVtZW50ICp3cmFwcGVyKQorewor
ICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MTWV0YUVs
ZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTE1ldGFFbGVtZW50
ICpraXQoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhy
ZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01I
VE1MTWV0YUVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MTWV0
YUVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
TWV0YUVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiNzMzYTM3M2Y5MzQ2Yjg2ZDgwMjQ0
Nzg1Mzk0NmUwNjE0ZDIxMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxNZXRhRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCA8V2ViQ29yZS9ET01IVE1MTWV0YUVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgSFRNTE1ldGFFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1M
TWV0YUVsZW1lbnQqIGNvcmUoRE9NSFRNTE1ldGFFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQg
RE9NSFRNTE1ldGFFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50Kik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNb2RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNb2RFbGVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWQ4MjExNjUzZWJmNTI3Y2RiYzNlMzM0YWFhMDE0MGQ2YWY1MmUyNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1vZEVsZW1lbnQu
aApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFz
cyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTE1vZEVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHBy
b3BlcnR5IChjb3B5KSBOU1N0cmluZyAqY2l0ZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
KmRhdGVUaW1lOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MTW9kRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTE1vZEVsZW1lbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMyOTViMjQ0ZDM5YzEzNzAxMzI5YmEzYTM3
NjBjOTA1Njk4YjRlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTE1vZEVsZW1lbnQubW0KQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJET01IVE1MTW9kRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhU
TUxNb2RFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5o
IgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0
ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTE1vZEVsZW1lbnQq
PihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVt
ZW50YXRpb24gRE9NSFRNTE1vZEVsZW1lbnQKKworLSAoTlNTdHJpbmcgKiljaXRlCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5n
ZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjaXRlQXR0cik7Cit9CisKKy0gKHZv
aWQpc2V0Q2l0ZTooTlNTdHJpbmcgKiluZXdDaXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjaXRlQXR0ciwgbmV3Q2l0ZSk7Cit9CisKKy0g
KE5TU3RyaW5nICopZGF0ZVRpbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmRhdGV0aW1lQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0RGF0ZVRpbWU6KE5TU3RyaW5nICop
bmV3RGF0ZVRpbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OmRhdGV0aW1lQXR0ciwgbmV3RGF0ZVRpbWUpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkhUTUxNb2RFbGVtZW50KiBjb3JlKERPTUhUTUxNb2RFbGVtZW50ICp3cmFwcGVyKQorewor
ICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MTW9kRWxl
bWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MTW9kRWxlbWVudCAq
a2l0KFdlYkNvcmU6OkhUTUxNb2RFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFk
VmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1M
TW9kRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxNb2RFbGVt
ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE1vZEVs
ZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNGM0MWI5YTJmZWUxZTI1ZGI0MmEwNGI3ZmQ3
NmY1MjFmOTA5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxNb2RFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJD
b3JlL0RPTUhUTUxNb2RFbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhU
TUxNb2RFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MTW9kRWxlbWVu
dCogY29yZShET01IVE1MTW9kRWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxNb2RF
bGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTE1vZEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9MaXN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT0xpc3RFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYx
MDEwOGFlOGIwNTY2ZTY2ZmI1YjFkOTJkZjk5YTYxZmYzN2VlZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9MaXN0RWxlbWVudC5oCkBAIC0w
LDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3Ry
aW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBET01IVE1MT0xpc3RFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKK0Bwcm9wZXJ0
eSBCT09MIGNvbXBhY3Q7CitAcHJvcGVydHkgaW50IHN0YXJ0OworQHByb3BlcnR5IChjb3B5KSBO
U1N0cmluZyAqdHlwZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTE9MaXN0RWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTE9MaXN0RWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmQ0MDk2MDAyZDQwZTcyNzlk
ZmE0MWUzNmE3YWU3NmUzM2ZjYmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MT0xpc3RFbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTAyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUhUTUxPTGlzdEVsZW1lbnRJbnRlcm5hbC5oIgorCisj
aW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgi
CisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkhUTUxPTGlzdEVsZW1lbnQuaCIKKyNp
bXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIK
KyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2lt
cG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
SFRNTE9MaXN0RWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRl
cm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MT0xpc3RFbGVtZW50CisKKy0gKEJPT0wp
Y29tcGFjdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OmNvbXBhY3RBdHRyKTsKK30KKworLSAodm9pZClzZXRDb21wYWN0OihCT09M
KW5ld0NvbXBhY3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbXBh
Y3RBdHRyLCBuZXdDb21wYWN0KTsKK30KKworLSAoaW50KXN0YXJ0Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zdGFydCgpOwor
fQorCistICh2b2lkKXNldFN0YXJ0OihpbnQpbmV3U3RhcnQKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U3RhcnQobmV3U3RhcnQpOwor
fQorCistIChCT09MKXJldmVyc2VkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmV2ZXJzZWRBdHRyKTsKK30KKworLSAodm9pZClz
ZXRSZXZlcnNlZDooQk9PTCluZXdSZXZlcnNlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6cmV2ZXJzZWRBdHRyLCBuZXdSZXZlcnNlZCk7Cit9CisKKy0gKE5TU3RyaW5n
ICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIp
OworfQorCistICh2b2lkKXNldFR5cGU6KE5TU3RyaW5nICopbmV3VHlwZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIG5ld1R5
cGUpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxPTGlzdEVsZW1lbnQqIGNvcmUoRE9NSFRN
TE9MaXN0RWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJw
cmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkg
OiAwOworfQorCitET01IVE1MT0xpc3RFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTE9MaXN0RWxl
bWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTE9MaXN0RWxlbWVudCo+KGtpdChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPTGlzdEVsZW1lbnRJbnRlcm5hbC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT0xpc3RFbGVtZW50SW50ZXJuYWwuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNGYzMWMyNDI3OTczMGRlNDRiYjNlODQxNzA5OGZjYWQ5ZmMzMTEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT0xpc3RF
bGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxPTGlz
dEVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTE9MaXN0RWxlbWVu
dDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudCogY29yZShE
T01IVE1MT0xpc3RFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTE9MaXN0RWxlbWVu
dCAqa2l0KFdlYkNvcmU6OkhUTUxPTGlzdEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9iamVjdEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTM3
OGNkOGI1ZTQ5ZTJkOGI4MGJiMjliNWM4YjYyMTk2NjQ5Y2I1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIERPTURv
Y3VtZW50OworQGNsYXNzIERPTUhUTUxGb3JtRWxlbWVudDsKK0BjbGFzcyBOU1N0cmluZzsKK0Bj
bGFzcyBOU1VSTDsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTE9iamVjdEVsZW1lbnQgOiBET01IVE1MRWxlbWVudAor
QHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01IVE1MRm9ybUVsZW1lbnQgKmZvcm07CitA
cHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpjb2RlOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmlu
ZyAqYWxpZ247CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphcmNoaXZlOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqYm9yZGVyOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqY29k
ZUJhc2U7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpjb2RlVHlwZTsKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmRhdGE7CitAcHJvcGVydHkgQk9PTCBkZWNsYXJlOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqaGVpZ2h0OworQHByb3BlcnR5IGludCBoc3BhY2U7CitAcHJvcGVy
dHkgKGNvcHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc3Rh
bmRieTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnR5cGU7CitAcHJvcGVydHkgKGNvcHkp
IE5TU3RyaW5nICp1c2VNYXA7CitAcHJvcGVydHkgaW50IHZzcGFjZTsKK0Bwcm9wZXJ0eSAoY29w
eSkgTlNTdHJpbmcgKndpZHRoOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01Eb2N1
bWVudCAqY29udGVudERvY3VtZW50OworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNVUkwg
KmFic29sdXRlSW1hZ2VVUkwgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmplY3RFbGVtZW50
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT2JqZWN0RWxlbWVudC5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNjU2Nzk0OGZjYzg3ZTQ5ZDc1ZDAwODUyNWViNDFhZWZlZDVlZDI2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT2Jq
ZWN0RWxlbWVudC5tbQpAQCAtMCwwICsxLDMwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJE
T01IVE1MT2JqZWN0RWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTURvY3VtZW50SW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxGb3JtRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0
ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVByaXZhdGUuaCIKKyNpbXBvcnQgIkRP
TVZhbGlkaXR5U3RhdGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRG9jdW1lbnQuaCIKKyNpbXBvcnQg
IkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbXBv
cnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbXBvcnQg
IkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiUmVuZGVyRWxlbWVudC5oIgorI2lt
cG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiVmFsaWRpdHlT
dGF0ZS5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3Rm
L0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTE9iamVj
dEVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQor
CitAaW1wbGVtZW50YXRpb24gRE9NSFRNTE9iamVjdEVsZW1lbnQKKworLSAoRE9NSFRNTEZvcm1F
bGVtZW50ICopZm9ybQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmZvcm0oKSkpOworfQorCistIChO
U1N0cmluZyAqKWNvZGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNv
ZGVBdHRyKTsKK30KKworLSAodm9pZClzZXRDb2RlOihOU1N0cmluZyAqKW5ld0NvZGUKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNvZGVBdHRy
LCBuZXdDb2RlKTsKK30KKworLSAoTlNTdHJpbmcgKilhbGlnbgoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyKTsKK30KKworLSAodm9pZClzZXRBbGlnbjoo
TlNTdHJpbmcgKiluZXdBbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBuZXdBbGlnbik7Cit9CisKKy0gKE5TU3RyaW5n
ICopYXJjaGl2ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YXJjaGl2
ZUF0dHIpOworfQorCistICh2b2lkKXNldEFyY2hpdmU6KE5TU3RyaW5nICopbmV3QXJjaGl2ZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YXJj
aGl2ZUF0dHIsIG5ld0FyY2hpdmUpOworfQorCistIChOU1N0cmluZyAqKWJvcmRlcgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Ym9yZGVyQXR0cik7Cit9CisKKy0gKHZv
aWQpc2V0Qm9yZGVyOihOU1N0cmluZyAqKW5ld0JvcmRlcgoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Ym9yZGVyQXR0ciwgbmV3Qm9yZGVyKTsK
K30KKworLSAoTlNTdHJpbmcgKiljb2RlQmFzZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6Y29kZWJhc2VBdHRyKTsKK30KKworLSAodm9pZClzZXRDb2RlQmFzZTooTlNT
dHJpbmcgKiluZXdDb2RlQmFzZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6Y29kZWJhc2VBdHRyLCBuZXdDb2RlQmFzZSk7Cit9CisKKy0gKE5T
U3RyaW5nICopY29kZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmNvZGV0eXBlQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q29kZVR5cGU6KE5TU3RyaW5nICopbmV3
Q29kZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6OmNvZGV0eXBlQXR0ciwgbmV3Q29kZVR5cGUpOworfQorCistIChOU1N0cmluZyAqKWRh
dGEKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmRhdGFBdHRyKTsK
K30KKworLSAodm9pZClzZXREYXRhOihOU1N0cmluZyAqKW5ld0RhdGEKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmRhdGFBdHRyLCBuZXdEYXRh
KTsKK30KKworLSAoQk9PTClkZWNsYXJlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGVjbGFyZUF0dHIpOworfQorCistICh2b2lk
KXNldERlY2xhcmU6KEJPT0wpbmV3RGVjbGFyZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6ZGVjbGFyZUF0dHIsIG5ld0RlY2xhcmUpOworfQorCistIChOU1N0cmluZyAq
KWhlaWdodAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6aGVpZ2h0QXR0
cik7Cit9CisKKy0gKHZvaWQpc2V0SGVpZ2h0OihOU1N0cmluZyAqKW5ld0hlaWdodAoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6aGVpZ2h0QXR0
ciwgbmV3SGVpZ2h0KTsKK30KKworLSAoaW50KWhzcGFjZQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0SW50ZWdyYWxBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpoc3BhY2VBdHRyKTsKK30KKworLSAodm9pZClzZXRI
c3BhY2U6KGludCluZXdIc3BhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpoc3BhY2VBdHRyLCBuZXdIc3BhY2UpOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmdldE5hbWVBdHRyaWJ1dGUoKTsKK30KKworLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAq
KW5ld05hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6Om5hbWVBdHRyLCBuZXdOYW1lKTsKK30KKworLSAoTlNTdHJpbmcgKilzdGFuZGJ5Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzdGFuZGJ5QXR0cik7Cit9CisK
Ky0gKHZvaWQpc2V0U3RhbmRieTooTlNTdHJpbmcgKiluZXdTdGFuZGJ5Cit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpzdGFuZGJ5QXR0ciwgbmV3
U3RhbmRieSk7Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIpOworfQorCistICh2b2lkKXNldFR5cGU6KE5TU3Ry
aW5nICopbmV3VHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6dHlwZUF0dHIsIG5ld1R5cGUpOworfQorCistIChOU1N0cmluZyAqKXVzZU1h
cAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dXNlbWFwQXR0cik7Cit9
CisKKy0gKHZvaWQpc2V0VXNlTWFwOihOU1N0cmluZyAqKW5ld1VzZU1hcAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dXNlbWFwQXR0ciwgbmV3
VXNlTWFwKTsKK30KKworLSAoaW50KXZzcGFjZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjp2c3BhY2VBdHRyKTsKK30KKworLSAodm9pZClzZXRWc3BhY2U6
KGludCluZXdWc3BhY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgSU1QTC0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2
c3BhY2VBdHRyLCBuZXdWc3BhY2UpOworfQorCistIChOU1N0cmluZyAqKXdpZHRoCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5n
ZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIpOworfQorCistICh2b2lk
KXNldFdpZHRoOihOU1N0cmluZyAqKW5ld1dpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIG5ld1dpZHRoKTsKK30KKwor
LSAoQk9PTCl3aWxsVmFsaWRhdGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndpbGxWYWxpZGF0ZSgpOworfQorCistIChET01W
YWxpZGl0eVN0YXRlICopdmFsaWRpdHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT52YWxpZGl0eSgp
KSk7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2UKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnZhbGlkYXRp
b25NZXNzYWdlKCk7Cit9CisKKy0gKERPTURvY3VtZW50ICopY29udGVudERvY3VtZW50Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+Y29udGVudERvY3VtZW50KCkpKTsKK30KKworLSAoTlNVUkwgKilh
YnNvbHV0ZUltYWdlVVJMCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIGlmICghSU1QTC0+cmVuZGVyZXIoKSB8fCAhSU1QTC0+cmVuZGVyZXIoKS0+aXNJ
bWFnZSgpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVybiBbc2VsZiBfZ2V0VVJMQXR0
cmlidXRlOkAiZGF0YSJdOworfQorCistIChCT09MKWNoZWNrVmFsaWRpdHkKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNoZWNr
VmFsaWRpdHkoKTsKK30KKworLSAodm9pZClzZXRDdXN0b21WYWxpZGl0eTooTlNTdHJpbmcgKill
cnJvcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5zZXRDdXN0b21WYWxpZGl0eShlcnJvcik7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRN
TE9iamVjdEVsZW1lbnQqIGNvcmUoRE9NSFRNTE9iamVjdEVsZW1lbnQgKndyYXBwZXIpCit7Cisg
ICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxPYmplY3RF
bGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxPYmplY3RFbGVt
ZW50ICpraXQoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNv
cmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PERPTUhUTUxPYmplY3RFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2
YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTE9iamVjdEVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MT2JqZWN0RWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjliZTdhYWE0MjJm
YjY4N2U3OTIxMGE1YjI2NzUyNzlmZmVlYTNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9iamVjdEVsZW1lbnRJbnRlcm5hbC5oCkBAIC0w
LDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTE9iamVjdEVsZW1lbnQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTE9iamVjdEVsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQ
T1JUIFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50KiBjb3JlKERPTUhUTUxPYmplY3RFbGVtZW50
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTE9iamVjdEVsZW1lbnQgKmtpdChXZWJDb3JlOjpI
VE1MT2JqZWN0RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MT2JqZWN0RWxlbWVudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlhZGNm
OGNiMzgyY2E3ZWNkMzdiNGNlMmJhZDYzNzVjNmFhMmYwNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmgK
QEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MT2JqZWN0RWxlbWVudC5oPgorCitA
Y2xhc3MgRE9NVmFsaWRpdHlTdGF0ZTsKKworQGludGVyZmFjZSBET01IVE1MT2JqZWN0RWxlbWVu
dCAoRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlKQorQHByb3BlcnR5IChyZWFkb25seSkgQk9P
TCB3aWxsVmFsaWRhdGU7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTVZhbGlkaXR5
U3RhdGUgKnZhbGlkaXR5OworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnZh
bGlkYXRpb25NZXNzYWdlOworCistIChCT09MKWNoZWNrVmFsaWRpdHk7CistICh2b2lkKXNldEN1
c3RvbVZhbGlkaXR5OihOU1N0cmluZyAqKWVycm9yOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRHcm91cEVsZW1lbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOWY4YmFjOTQ0NjUxOTMwYjFjMzg5ODE2OGNlNmY5OGZjNzYwNGVlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0R3JvdXBFbGVtZW50
LmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xh
c3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxPcHRHcm91cEVsZW1lbnQgOiBET01IVE1MRWxlbWVu
dAorQHByb3BlcnR5IEJPT0wgZGlzYWJsZWQ7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICps
YWJlbDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTE9wdEdyb3VwRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTE9wdEdyb3VwRWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTBkNzU2ZDU4MmJlN2FkYTZkOTY4
YThjMzliYzI0OWQ0MDFhYmRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTE9wdEdyb3VwRWxlbWVudEludGVybmFsLmgiCisK
KyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMu
aCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSFRNTE9wdEdyb3VwRWxlbWVudC5o
IgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVj
ay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgi
CisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2Rl
Kj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxPcHRHcm91cEVsZW1lbnQK
KworLSAoQk9PTClkaXNhYmxlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmRpc2FibGVkQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
RGlzYWJsZWQ6KEJPT0wpbmV3RGlzYWJsZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OmRpc2FibGVkQXR0ciwgbmV3RGlzYWJsZWQpOworfQorCistIChOU1N0cmluZyAq
KWxhYmVsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpsYWJlbEF0dHIp
OworfQorCistICh2b2lkKXNldExhYmVsOihOU1N0cmluZyAqKW5ld0xhYmVsCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpsYWJlbEF0dHIsIG5l
d0xhYmVsKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50KiBjb3Jl
KERPTUhUTUxPcHRHcm91cEVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIg
PyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQqPih3cmFwcGVy
LT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTE9wdEdyb3VwRWxlbWVudCAqa2l0KFdlYkNv
cmU6OkhUTUxPcHRHcm91cEVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9s
YXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxPcHRH
cm91cEVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0R3Jv
dXBFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TE9wdEdyb3VwRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg2YTBhZDJhNDY0YzlmMzgy
YTNkZDQ5YmE3ODE3OTIzZjg3ZDJhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTE9wdEdyb3VwRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxPcHRHcm91cEVsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQ
T1JUIFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQqIGNvcmUoRE9NSFRNTE9wdEdyb3VwRWxl
bWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxPcHRHcm91cEVsZW1lbnQgKmtpdChXZWJD
b3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxPcHRpb25FbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVmZThiZGJlNzU1
ZTA5YjE0MmRmOWY5N2UzMjM3YTRmYzU0NWFiYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtMCwwICsxLDQx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBET01IVE1MRm9ybUVs
ZW1lbnQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEw
XzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxPcHRpb25FbGVtZW50IDogRE9N
SFRNTEVsZW1lbnQKK0Bwcm9wZXJ0eSBCT09MIGRpc2FibGVkOworQHByb3BlcnR5IChyZWFkb25s
eSwgc3Ryb25nKSBET01IVE1MRm9ybUVsZW1lbnQgKmZvcm07CitAcHJvcGVydHkgKGNvcHkpIE5T
U3RyaW5nICpsYWJlbDsKK0Bwcm9wZXJ0eSBCT09MIGRlZmF1bHRTZWxlY3RlZDsKK0Bwcm9wZXJ0
eSBCT09MIHNlbGVjdGVkOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdmFsdWU7CitAcHJv
cGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGV4dDsKK0Bwcm9wZXJ0eSAocmVhZG9u
bHkpIGludCBpbmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxPcHRpb25FbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MGUxNWE4YWJmZjBlOThm
ZDg5OGRlMGZkZmU3NzAyZjY5ZWJlYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRpb25FbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCIK
KworI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhU
TUxGb3JtRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MT3B0
aW9uRWxlbWVudC5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmpl
Y3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MT3B0aW9u
RWxlbWVudAorCistIChCT09MKWRpc2FibGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRyKTsKK30KKworLSAo
dm9pZClzZXREaXNhYmxlZDooQk9PTCluZXdEaXNhYmxlZAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRyLCBuZXdEaXNhYmxlZCk7Cit9CisKKy0gKERP
TUhUTUxGb3JtRWxlbWVudCAqKWZvcm0KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5mb3JtKCkpKTsK
K30KKworLSAoTlNTdHJpbmcgKilsYWJlbAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bGFiZWwoKTsKK30KKworLSAodm9pZClz
ZXRMYWJlbDooTlNTdHJpbmcgKiluZXdMYWJlbAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRMYWJlbChuZXdMYWJlbCk7Cit9CisKKy0g
KEJPT0wpZGVmYXVsdFNlbGVjdGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c2VsZWN0ZWRBdHRyKTsKK30KKworLSAodm9pZClz
ZXREZWZhdWx0U2VsZWN0ZWQ6KEJPT0wpbmV3RGVmYXVsdFNlbGVjdGVkCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEJvb2xlYW5BdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzZWxlY3RlZEF0dHIsIG5ld0RlZmF1bHRTZWxlY3Rl
ZCk7Cit9CisKKy0gKEJPT0wpc2VsZWN0ZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnNlbGVjdGVkKCk7Cit9CisKKy0gKHZv
aWQpc2V0U2VsZWN0ZWQ6KEJPT0wpbmV3U2VsZWN0ZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0ZWQobmV3U2VsZWN0ZWQp
OworfQorCistIChOU1N0cmluZyAqKXZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52YWx1ZSgpOworfQorCistICh2b2lk
KXNldFZhbHVlOihOU1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFZhbHVlKG5ld1ZhbHVlKTsKK30KKwor
LSAoTlNTdHJpbmcgKil0ZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT50ZXh0KCk7Cit9CisKKy0gKGludClpbmRleAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+aW5kZXgoKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudCogY29y
ZShET01IVE1MT3B0aW9uRWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/
IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTE9wdGlvbkVsZW1lbnQgKmtpdChXZWJDb3JlOjpI
VE1MT3B0aW9uRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNo
ZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTE9wdGlvbkVsZW1l
bnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0aW9uRWxlbWVudElu
dGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRpb25FbGVt
ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmRmMWI5YzJlZWEwMjU1ZjJmMmVjNWU4NDAwNDky
ZjliNTczODBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2Vi
Q29yZS9ET01IVE1MT3B0aW9uRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBIVE1MT3B0aW9uRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTE9w
dGlvbkVsZW1lbnQqIGNvcmUoRE9NSFRNTE9wdGlvbkVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9S
VCBET01IVE1MT3B0aW9uRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRpb25z
Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDcxMDYxNjQyZDJkMDdhMGNkYWZhYTM2ZGJhMTFk
MzU5OWEwZjdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3Jl
L0RPTU9iamVjdC5oPgorCitAY2xhc3MgRE9NSFRNTE9wdGlvbkVsZW1lbnQ7CitAY2xhc3MgRE9N
Tm9kZTsKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBf
NCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uIDog
RE9NT2JqZWN0CitAcHJvcGVydHkgaW50IHNlbGVjdGVkSW5kZXggV0VCS0lUX0FWQUlMQUJMRV9N
QUMoMTBfNSk7CitAcHJvcGVydHkgdW5zaWduZWQgbGVuZ3RoOworCistIChET01Ob2RlICopbmFt
ZWRJdGVtOihOU1N0cmluZyAqKW5hbWU7CistICh2b2lkKWFkZDooRE9NSFRNTE9wdGlvbkVsZW1l
bnQgKilvcHRpb24gaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEw
XzUpOworLSAodm9pZClyZW1vdmU6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9BVkFJTEFCTEVfTUFD
KDEwXzYpOworLSAoRE9NTm9kZSAqKWl0ZW06KHVuc2lnbmVkKWluZGV4OworQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT3B0aW9uc0NvbGxlY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRpb25zQ29sbGVj
dGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYmUyMDhkYmVhZDA1YTE1N2ZkOWYxNzUzZDk3ZjI5MjE1YThh
OTUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0KQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uSW50ZXJuYWwuaCIKKworI2ltcG9ydCAi
RE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIK
KyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMu
aCIKKyNpbXBvcnQgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAi
Tm9kZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9y
dCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uKj4oX2ludGVybmFsKQorCitAaW1wbGVt
ZW50YXRpb24gRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uCisKKy0gKHZvaWQpZGVhbGxvYworewor
ICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbRE9NSFRN
TE9wdGlvbnNDb2xsZWN0aW9uIGNsYXNzXSwgc2VsZikpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChfaW50ZXJuYWwpCisgICAgICAgIElNUEwtPmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxs
b2NdOworfQorCistIChpbnQpc2VsZWN0ZWRJbmRleAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2VsZWN0ZWRJbmRleCgpOwor
fQorCistICh2b2lkKXNldFNlbGVjdGVkSW5kZXg6KGludCluZXdTZWxlY3RlZEluZGV4Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFNl
bGVjdGVkSW5kZXgobmV3U2VsZWN0ZWRJbmRleCk7Cit9CisKKy0gKHVuc2lnbmVkKWxlbmd0aAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+bGVuZ3RoKCk7Cit9CisKKy0gKHZvaWQpc2V0TGVuZ3RoOih1bnNpZ25lZCluZXdMZW5n
dGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0TGVuZ3RoKG5ld0xlbmd0
aCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKERPTU5v
ZGUgKiluYW1lZEl0ZW06KE5TU3RyaW5nICopbmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm5h
bWVkSXRlbShuYW1lKSkpOworfQorCistICh2b2lkKWFkZDooRE9NSFRNTE9wdGlvbkVsZW1lbnQg
KilvcHRpb24gaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGlmICghb3B0aW9uKQorICAgICAgICBXZWJDb3JlOjpy
YWlzZVR5cGVFcnJvckV4Y2VwdGlvbigpOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIElNUEwtPmFkZCgqY29yZShvcHRpb24pLCBpbmRleCwgZWMpOworICAgIFdlYkNv
cmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKHZvaWQpcmVtb3ZlOih1bnNpZ25lZClp
bmRleAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5yZW1vdmUoaW5kZXgpOworfQorCistIChET01Ob2RlICopaXRlbToodW5zaWduZWQpaW5k
ZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5pdGVtKGluZGV4KSkpOworfQorCitAZW5kCisKK1dl
YkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbiogY29yZShET01IVE1MT3B0aW9uc0NvbGxlY3Rp
b24gKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdl
YkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbio+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24gKmtpdChXZWJDb3JlOjpIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24qIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5k
T25lKCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBpZiAoRE9N
SFRNTE9wdGlvbnNDb2xsZWN0aW9uICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisg
ICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NSFRN
TE9wdGlvbnNDb2xsZWN0aW9uICp3cmFwcGVyID0gW1tET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24g
YWxsb2NdIF9pbml0XTsKKyAgICB3cmFwcGVyLT5faW50ZXJuYWwgPSByZWludGVycHJldF9jYXN0
PERPTU9iamVjdEludGVybmFsKj4odmFsdWUpOworICAgIHZhbHVlLT5yZWYoKTsKKyAgICBhZGRE
T01XcmFwcGVyKHdyYXBwZXIsIHZhbHVlKTsKKyAgICByZXR1cm4gW3dyYXBwZXIgYXV0b3JlbGVh
c2VdOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
T3B0aW9uc0NvbGxlY3Rpb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb25JbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMWY0MmRm
NWU1MDNiMTI1YjRhYjhhZDlmM2FhMzdhODgyM2ZjMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbkludGVybmFs
LmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOwor
fQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24qIGNvcmUo
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uICpraXQoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWRmN2I5NmY4OWYwYmVjMWIyNzM3Y2Y3MmU3NTU1ZjE3MzI3MmY0
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRN
TFBhcmFncmFwaEVsZW1lbnQuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxF
bGVtZW50Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9N
QUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTFBhcmFncmFwaEVsZW1l
bnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqYWxpZ247CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJh
Z3JhcGhFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFy
YWdyYXBoRWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTcwZWE4ZjI1YWE5YWQ5N2M4MTlmNzA5NmNh
YjExZjY4NGE4M2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MUGFyYWdyYXBoRWxlbWVudC5tbQpAQCAtMCwwICsxLDY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkRPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgor
I2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgor
I2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5o
IgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisj
aW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpIVE1MUGFyYWdyYXBoRWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MUGFyYWdyYXBoRWxlbWVudAor
CistIChOU1N0cmluZyAqKWFsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjphbGlnbkF0dHIpOworfQorCistICh2b2lkKXNldEFsaWduOihOU1N0cmluZyAqKW5ld0Fs
aWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElN
UEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVz
OjphbGlnbkF0dHIsIG5ld0FsaWduKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MUGFyYWdy
YXBoRWxlbWVudCogY29yZShET01IVE1MUGFyYWdyYXBoRWxlbWVudCAqd3JhcHBlcikKK3sKKyAg
ICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFBhcmFncmFw
aEVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTFBhcmFncmFw
aEVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MUGFyYWdyYXBoRWxlbWVudCogdmFsdWUpCit7Cisg
ICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MUGFyYWdyYXBoRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJuYWwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jOWRiOTM5OTY2OWM2ZTc2MjNlMTc3NmM5ZDBkYmI3Yjk1YTMzNTczCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFyYWdyYXBoRWxl
bWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MUGFyYWdy
YXBoRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MUGFyYWdyYXBo
RWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTFBhcmFncmFwaEVsZW1l
bnQqIGNvcmUoRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01I
VE1MUGFyYWdyYXBoRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxQYXJhZ3JhcGhFbGVtZW50Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhbUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFBhcmFtRWxlbWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgwNDUxZTBmMjdkMDNkZGE2ZmNiNTBjMmQxZmU3MTdhNjlmMTcxMjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQ
YXJhbUVsZW1lbnQuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50
Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBf
NCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTFBhcmFtRWxlbWVudCA6IERPTUhU
TUxFbGVtZW50CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChj
b3B5KSBOU1N0cmluZyAqdHlwZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnZhbHVlOwor
QHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdmFsdWVUeXBlOworQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFyYW1FbGVtZW50Lm1tIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUGFyYW1FbGVtZW50Lm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA0OGM0N2ZkOWY2ZDNhOWYzYmU0YzlkMGE1OTc1YWI1NjZmYWJhNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhbUVsZW1lbnQu
bW0KQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTFBhcmFt
RWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAi
SFRNTFBhcmFtRWxlbWVudC5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisj
aW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3Jp
cHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1Q
TCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MUGFyYW1FbGVtZW50Kj4ocmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxQ
YXJhbUVsZW1lbnQKKworLSAoTlNTdHJpbmcgKiluYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXROYW1lQXR0cmlidXRl
KCk7Cit9CisKKy0gKHZvaWQpc2V0TmFtZTooTlNTdHJpbmcgKiluZXdOYW1lCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpuYW1lQXR0ciwgbmV3
TmFtZSk7Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6dHlwZUF0dHIpOworfQorCistICh2b2lkKXNldFR5cGU6KE5TU3RyaW5n
ICopbmV3VHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6dHlwZUF0dHIsIG5ld1R5cGUpOworfQorCistIChOU1N0cmluZyAqKXZhbHVlCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2YWx1ZUF0dHIpOworfQorCist
ICh2b2lkKXNldFZhbHVlOihOU1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp2YWx1ZUF0dHIsIG5ld1ZhbHVlKTsK
K30KKworLSAoTlNTdHJpbmcgKil2YWx1ZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnZhbHVldHlwZUF0dHIpOworfQorCistICh2b2lkKXNldFZhbHVlVHlwZToo
TlNTdHJpbmcgKiluZXdWYWx1ZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbHVldHlwZUF0dHIsIG5ld1ZhbHVlVHlwZSk7Cit9CisK
K0BlbmQKKworV2ViQ29yZTo6SFRNTFBhcmFtRWxlbWVudCogY29yZShET01IVE1MUGFyYW1FbGVt
ZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxX
ZWJDb3JlOjpIVE1MUGFyYW1FbGVtZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisK
K0RPTUhUTUxQYXJhbUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MUGFyYW1FbGVtZW50KiB2YWx1
ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxET01IVE1MUGFyYW1FbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdl
YkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTFBhcmFtRWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViMjY3YjUyM2FjOTk0YmQzMmM2MTEzN2NmZWZmMjA3MTYyOGVkMmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQYXJhbUVsZW1lbnRJbnRl
cm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTFBhcmFtRWxlbWVudC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBIVE1MUGFyYW1FbGVtZW50OworfQorCitX
RUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MUGFyYW1FbGVtZW50KiBjb3JlKERPTUhUTUxQYXJh
bUVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MUGFyYW1FbGVtZW50ICpraXQoV2Vi
Q29yZTo6SFRNTFBhcmFtRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MUHJlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MUHJlRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNWUzYjg4OGM0NTU1NTFiMDI5
ZWM0ZjgxOWI0YmM0ODJmNTBlZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxQcmVFbGVtZW50LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2Vi
Q29yZS9ET01IVE1MRWxlbWVudC5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80
KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01IVE1MUHJlRWxlbWVudCA6IERPTUhUTUxF
bGVtZW50CitAcHJvcGVydHkgaW50IHdpZHRoOworQHByb3BlcnR5IEJPT0wgd3JhcCBXRUJLSVRf
QVZBSUxBQkxFX01BQygxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTFByZUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxQcmVFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZGZmZDVhMDAyODRmOWQ3
N2ViMGJhZjk2MjEyYmM3OTMzZTVjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQcmVFbGVtZW50Lm1tCkBAIC0wLDAgKzEsNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTFByZUVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1w
b3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisj
aW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkhUTUxQcmVFbGVtZW50LmgiCisjaW1wb3J0
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1w
b3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisK
KyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MUHJlRWxlbWVudCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlv
biBET01IVE1MUHJlRWxlbWVudAorCistIChpbnQpd2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEludGVncmFsQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6d2lkdGhBdHRyKTsKK30KKworLSAodm9pZClzZXRX
aWR0aDooaW50KW5ld1dpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6d2lkdGhBdHRyLCBuZXdXaWR0aCk7Cit9CisKKy0gKEJPT0wpd3JhcAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzQXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndyYXBBdHRy
KTsKK30KKworLSAodm9pZClzZXRXcmFwOihCT09MKW5ld1dyYXAKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndyYXBBdHRyLCBuZXdXcmFwKTsKK30KKworQGVuZAorCitX
ZWJDb3JlOjpIVE1MUHJlRWxlbWVudCogY29yZShET01IVE1MUHJlRWxlbWVudCAqd3JhcHBlcikK
K3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFBy
ZUVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTFByZUVsZW1l
bnQgKmtpdChXZWJDb3JlOjpIVE1MUHJlRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
SFRNTFByZUVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUHJl
RWxlbWVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxQ
cmVFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzlhMTVhZmFmNjAzMjRlNDU1OGY3Yzg4
Nzk2MTIxNDhlYmM1Njc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MUHJlRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01IVE1MUHJlRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBIVE1MUHJlRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTFByZUVs
ZW1lbnQqIGNvcmUoRE9NSFRNTFByZUVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1M
UHJlRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxQcmVFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxRdW90ZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFF1b3RlRWxlbWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYxNzc4YTUzMDdlMTM2ODczNmVjYjNjNmU3ZWY3MDgyZjlkNzU1OGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxRdW90ZUVsZW1lbnQuaApA
QCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBO
U1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NSFRNTFF1b3RlRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICpjaXRlOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUXVvdGVFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUXVvdGVFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExMzhj
ZGRlYzVmMDY2OWZmOTYyMTY5ODk0NGY5NmM2YjQ1MDQ0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxRdW90ZUVsZW1lbnQubW0KQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MUXVvdGVFbGVtZW50SW50
ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRp
b25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MUXVvdGVF
bGVtZW50LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFBy
aXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19j
YXN0PFdlYkNvcmU6OkhUTUxRdW90ZUVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6
Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTFF1b3RlRWxlbWVu
dAorCistIChOU1N0cmluZyAqKWNpdGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OmNpdGVBdHRyKTsKK30KKworLSAodm9pZClzZXRDaXRlOihOU1N0cmluZyAqKW5l
d0NpdGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OmNpdGVBdHRyLCBuZXdDaXRlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MUXVvdGVF
bGVtZW50KiBjb3JlKERPTUhUTUxRdW90ZUVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJu
IHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxRdW90ZUVsZW1lbnQqPih3
cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTFF1b3RlRWxlbWVudCAqa2l0KFdl
YkNvcmU6OkhUTUxRdW90ZUVsZW1lbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9s
YXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxRdW90
ZUVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MUXVvdGVFbGVt
ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFF1b3Rl
RWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFiNWNhOTEwM2I2ZDczZTNkYjIzYzI1OTVm
YzIzNDZmNTQ4Y2QwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTFF1b3RlRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01IVE1MUXVvdGVFbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEhUTUxRdW90ZUVsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxR
dW90ZUVsZW1lbnQqIGNvcmUoRE9NSFRNTFF1b3RlRWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JU
IERPTUhUTUxRdW90ZUVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MUXVvdGVFbGVtZW50Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTY3JpcHRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTY3JpcHRFbGVtZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGIxZWJlZTEyZWM0YzBmNWQxM2ZlYzNiNGJkYzI4M2YwMWViOGZiOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFNj
cmlwdEVsZW1lbnQuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50
Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBf
NCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NSFRNTFNjcmlwdEVsZW1lbnQgOiBET01I
VE1MRWxlbWVudAorQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdGV4dDsKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmh0bWxGb3I7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpldmVu
dDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNoYXJzZXQ7CitAcHJvcGVydHkgQk9PTCBk
ZWZlcjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnNyYzsKK0Bwcm9wZXJ0eSAoY29weSkg
TlNTdHJpbmcgKnR5cGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxTY3JpcHRFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MU2NyaXB0RWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGQxMzc0YmQwN2Q5Zjhi
NzQzMmNkZjQwZTc3NjAyMmI4MTRlOGY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU2NyaXB0RWxlbWVudC5tbQpAQCAtMCwwICsxLDE3NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MU2NyaXB0RWxlbWVudEludGVybmFsLmgi
CisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxl
cnMuaCIKKyNpbXBvcnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSFRNTFNjcmlwdEVsZW1lbnQu
aCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hl
Y2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
IgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUq
PihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTFNjcmlwdEVsZW1lbnQKKwor
LSAoTlNTdHJpbmcgKil0ZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT50ZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0VGV4dDoo
TlNTdHJpbmcgKiluZXdUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIElNUEwtPnNldFRleHQobmV3VGV4dCk7Cit9CisKKy0gKE5TU3RyaW5nICop
aHRtbEZvcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Zm9yQXR0cik7
Cit9CisKKy0gKHZvaWQpc2V0SHRtbEZvcjooTlNTdHJpbmcgKiluZXdIdG1sRm9yCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpmb3JBdHRyLCBu
ZXdIdG1sRm9yKTsKK30KKworLSAoTlNTdHJpbmcgKilldmVudAoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6ZXZlbnRBdHRyKTsKK30KKworLSAodm9pZClzZXRFdmVudDoo
TlNTdHJpbmcgKiluZXdFdmVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6ZXZlbnRBdHRyLCBuZXdFdmVudCk7Cit9CisKKy0gKE5TU3RyaW5n
ICopY2hhcnNldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2hhcnNl
dEF0dHIpOworfQorCistICh2b2lkKXNldENoYXJzZXQ6KE5TU3RyaW5nICopbmV3Q2hhcnNldAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2hh
cnNldEF0dHIsIG5ld0NoYXJzZXQpOworfQorCistIChCT09MKWFzeW5jCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5hc3luYygp
OworfQorCistICh2b2lkKXNldEFzeW5jOihCT09MKW5ld0FzeW5jCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEFzeW5jKG5ld0FzeW5j
KTsKK30KKworLSAoQk9PTClkZWZlcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmRlZmVyQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
RGVmZXI6KEJPT0wpbmV3RGVmZXIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmRlZmVyQXR0ciwgbmV3RGVmZXIpOworfQorCistIChOU1N0cmluZyAqKXNyYworeworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6c3JjQXR0cik7Cit9CisKKy0gKHZv
aWQpc2V0U3JjOihOU1N0cmluZyAqKW5ld1NyYworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c3JjQXR0ciwgbmV3U3JjKTsKK30KKworLSAoTlNT
dHJpbmcgKil0eXBlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjp0eXBl
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKiluZXdUeXBlCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp0eXBlQXR0ciwg
bmV3VHlwZSk7Cit9CisKKy0gKE5TU3RyaW5nICopY3Jvc3NPcmlnaW4KK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNyb3NzT3Jp
Z2luKCk7Cit9CisKKy0gKHZvaWQpc2V0Q3Jvc3NPcmlnaW46KE5TU3RyaW5nICopbmV3Q3Jvc3NP
cmlnaW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0Q3Jvc3NPcmlnaW4obmV3Q3Jvc3NPcmlnaW4pOworfQorCistIChOU1N0cmluZyAq
KW5vbmNlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpub25jZUF0dHIp
OworfQorCistICh2b2lkKXNldE5vbmNlOihOU1N0cmluZyAqKW5ld05vbmNlCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpub25jZUF0dHIsIG5l
d05vbmNlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudCogY29yZShE
T01IVE1MU2NyaXB0RWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQqPih3cmFwcGVyLT5faW50
ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTFNjcmlwdEVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1M
U2NyaXB0RWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNr
Um91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTFNjcmlwdEVsZW1lbnQq
PihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU2NyaXB0RWxlbWVudEludGVy
bmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTY3JpcHRFbGVtZW50
SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDJlYTEzMGQwNWE2ZTAwMTVkYTJmNmI3MDEyOGQxZjYx
ODc0NzEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MU2NyaXB0RWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MU2NyaXB0RWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBI
VE1MU2NyaXB0RWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTFNjcmlw
dEVsZW1lbnQqIGNvcmUoRE9NSFRNTFNjcmlwdEVsZW1lbnQgKik7CitXRUJDT1JFX0VYUE9SVCBE
T01IVE1MU2NyaXB0RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTZWxlY3RFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTZWxlY3RFbGVtZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjE5OWNiODVjZTI0OGMyNTVhM2Q5YmI3ZTE5YzVlYjJiYTE1Mzk3MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFNl
bGVjdEVsZW1lbnQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50
Lmg+CisKK0BjbGFzcyBET01IVE1MRWxlbWVudDsKK0BjbGFzcyBET01IVE1MRm9ybUVsZW1lbnQ7
CitAY2xhc3MgRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uOworQGNsYXNzIERPTU5vZGU7CitAY2xh
c3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxTZWxlY3RFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQK
K0Bwcm9wZXJ0eSBCT09MIGF1dG9mb2N1cyBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF82KTsKK0Bw
cm9wZXJ0eSBCT09MIGRpc2FibGVkOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01I
VE1MRm9ybUVsZW1lbnQgKmZvcm07CitAcHJvcGVydHkgQk9PTCBtdWx0aXBsZTsKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkgaW50IHNpemU7CitAcHJvcGVydHkg
KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdHlwZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0
cm9uZykgRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uICpvcHRpb25zOworQHByb3BlcnR5IChyZWFk
b25seSkgaW50IGxlbmd0aDsKK0Bwcm9wZXJ0eSBpbnQgc2VsZWN0ZWRJbmRleDsKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKnZhbHVlOworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB3aWxs
VmFsaWRhdGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNik7CisKKy0gKERPTU5vZGUgKilpdGVt
Oih1bnNpZ25lZClpbmRleCBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF82KTsKKy0gKERPTU5vZGUg
KiluYW1lZEl0ZW06KE5TU3RyaW5nICopbmFtZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF82KTsK
Ky0gKHZvaWQpYWRkOihET01IVE1MRWxlbWVudCAqKWVsZW1lbnQgYmVmb3JlOihET01IVE1MRWxl
bWVudCAqKWJlZm9yZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKKy0gKHZvaWQpcmVtb3Zl
OihpbnQpaW5kZXg7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9NSFRNTFNlbGVjdEVsZW1lbnQgKERP
TUhUTUxTZWxlY3RFbGVtZW50RGVwcmVjYXRlZCkKKy0gKHZvaWQpYWRkOihET01IVE1MRWxlbWVu
dCAqKWVsZW1lbnQgOihET01IVE1MRWxlbWVudCAqKWJlZm9yZSBXRUJLSVRfREVQUkVDQVRFRF9N
QUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjkxODZjMDhjZTVkZGQ2
N2M3NmJkZmE4Njk2N2YyOTg0ZTdmMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQpAQCAtMCwwICsxLDI4MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01IVE1MU2VsZWN0RWxlbWVudEludGVybmFsLmgi
CisKKyNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhU
TUxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxGb3JtRWxlbWVudEludGVybmFs
LmgiCisjaW1wb3J0ICJET01IVE1MT3B0aW9uc0NvbGxlY3Rpb25JbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlTGlzdEludGVybmFsLmgiCisj
aW1wb3J0ICJET01WYWxpZGl0eVN0YXRlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhh
bmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MQ29sbGVjdGlvbi5oIgorI2ltcG9ydCAiSFRNTEVsZW1l
bnQuaCIKKyNpbXBvcnQgIkhUTUxGb3JtRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE5hbWVzLmgi
CisjaW1wb3J0ICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbXBvcnQgIkhUTUxTZWxlY3RF
bGVtZW50LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIk5h
bWVOb2RlTGlzdC5oIgorI2ltcG9ydCAiTm9kZS5oIgorI2ltcG9ydCAiTm9kZUxpc3QuaCIKKyNp
bXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIlZhbGlkaXR5
U3RhdGUuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0
Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkK
KworQGltcGxlbWVudGF0aW9uIERPTUhUTUxTZWxlY3RFbGVtZW50CisKKy0gKEJPT0wpYXV0b2Zv
Y3VzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6YXV0b2ZvY3VzQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QXV0b2ZvY3VzOihCT09M
KW5ld0F1dG9mb2N1cworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YXV0
b2ZvY3VzQXR0ciwgbmV3QXV0b2ZvY3VzKTsKK30KKworLSAoQk9PTClkaXNhYmxlZAoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
aGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmRp
c2FibGVkQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0RGlzYWJsZWQ6KEJPT0wpbmV3RGlzYWJsZWQK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+
c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmRpc2FibGVkQXR0ciwgbmV3
RGlzYWJsZWQpOworfQorCistIChET01IVE1MRm9ybUVsZW1lbnQgKilmb3JtCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpn
ZXRQdHIoSU1QTC0+Zm9ybSgpKSk7Cit9CisKKy0gKEJPT0wpbXVsdGlwbGUKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPm11bHRp
cGxlKCk7Cit9CisKKy0gKHZvaWQpc2V0TXVsdGlwbGU6KEJPT0wpbmV3TXVsdGlwbGUKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0TXVs
dGlwbGUobmV3TXVsdGlwbGUpOworfQorCistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldE5h
bWVBdHRyaWJ1dGUoKTsKK30KKworLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAqKW5ld05hbWUK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om5h
bWVBdHRyLCBuZXdOYW1lKTsKK30KKworLSAoQk9PTClyZXF1aXJlZAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFzQXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlcXVpcmVkQXR0
cik7Cit9CisKKy0gKHZvaWQpc2V0UmVxdWlyZWQ6KEJPT0wpbmV3UmVxdWlyZWQKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Qm9vbGVh
bkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlcXVpcmVkQXR0ciwgbmV3UmVxdWlyZWQp
OworfQorCistIChpbnQpc2l6ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2l6ZSgpOworfQorCistICh2b2lkKXNldFNpemU6
KGludCluZXdTaXplCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPnNldFNpemUobmV3U2l6ZSk7Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+dHlwZSgpOworfQorCistIChET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24gKilvcHRpb25z
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b3B0aW9ucygpKSk7Cit9CisKKy0gKGludClsZW5ndGgK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmxlbmd0aCgpOworfQorCistIChET01IVE1MQ29sbGVjdGlvbiAqKXNlbGVjdGVkT3B0
aW9ucworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnNlbGVjdGVkT3B0aW9ucygpKSk7Cit9CisKKy0g
KGludClzZWxlY3RlZEluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zZWxlY3RlZEluZGV4KCk7Cit9CisKKy0gKHZvaWQp
c2V0U2VsZWN0ZWRJbmRleDooaW50KW5ld1NlbGVjdGVkSW5kZXgKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0ZWRJbmRleChu
ZXdTZWxlY3RlZEluZGV4KTsKK30KKworLSAoTlNTdHJpbmcgKil2YWx1ZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+dmFsdWUo
KTsKK30KKworLSAodm9pZClzZXRWYWx1ZTooTlNTdHJpbmcgKiluZXdWYWx1ZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRWYWx1ZShu
ZXdWYWx1ZSk7Cit9CisKKy0gKEJPT0wpd2lsbFZhbGlkYXRlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT53aWxsVmFsaWRhdGUo
KTsKK30KKworLSAoRE9NVmFsaWRpdHlTdGF0ZSAqKXZhbGlkaXR5Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIo
SU1QTC0+dmFsaWRpdHkoKSkpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT52YWxpZGF0aW9uTWVzc2FnZSgpOworfQorCistIChET01Ob2RlTGlzdCAqKWxhYmVs
cworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmxhYmVscygpKSk7Cit9CisKKy0gKE5TU3RyaW5nICop
YXV0b2NvbXBsZXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5hdXRvY29tcGxldGUoKTsKK30KKworLSAodm9pZClzZXRBdXRv
Y29tcGxldGU6KE5TU3RyaW5nICopbmV3QXV0b2NvbXBsZXRlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF1dG9jb21wbGV0ZShuZXdB
dXRvY29tcGxldGUpOworfQorCistIChET01Ob2RlICopaXRlbToodW5zaWduZWQpaW5kZXgKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtp
dChXVEY6OmdldFB0cihJTVBMLT5pdGVtKGluZGV4KSkpOworfQorCistIChET01Ob2RlICopbmFt
ZWRJdGVtOihOU1N0cmluZyAqKWluTmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm5hbWVkSXRl
bShpbk5hbWUpKSk7Cit9CisKKy0gKHZvaWQpYWRkOihET01IVE1MRWxlbWVudCAqKWVsZW1lbnQg
YmVmb3JlOihET01IVE1MRWxlbWVudCAqKWJlZm9yZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIFdlYkNvcmU6
OnJhaXNlVHlwZUVycm9yRXhjZXB0aW9uKCk7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgSU1QTC0+YWRkKCpjb3JlKGVsZW1lbnQpLCBjb3JlKGJlZm9yZSksIGVjKTsK
KyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistICh2b2lkKWFkZDooRE9N
SFRNTEVsZW1lbnQgKillbGVtZW50IDooRE9NSFRNTEVsZW1lbnQgKiliZWZvcmUKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgaWYgKCFlbGVtZW50KQor
ICAgICAgICBXZWJDb3JlOjpyYWlzZVR5cGVFcnJvckV4Y2VwdGlvbigpOworICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPmFkZCgqY29yZShlbGVtZW50KSwgY29y
ZShiZWZvcmUpLCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKwor
LSAodm9pZClyZW1vdmU6KGludClpbmRleAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5yZW1vdmVCeUluZGV4KGluZGV4KTsKK30KKworLSAo
Qk9PTCljaGVja1ZhbGlkaXR5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jaGVja1ZhbGlkaXR5KCk7Cit9CisKKy0gKHZvaWQp
c2V0Q3VzdG9tVmFsaWRpdHk6KE5TU3RyaW5nICopZXJyb3IKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Q3VzdG9tVmFsaWRpdHkoZXJy
b3IpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50KiBjb3JlKERPTUhU
TUxTZWxlY3RFbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRl
cnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5h
bCkgOiAwOworfQorCitET01IVE1MU2VsZWN0RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3Vu
ZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MU2VsZWN0RWxlbWVudCo+KGtp
dChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTZWxlY3RFbGVtZW50SW50ZXJuYWwu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFNlbGVjdEVsZW1lbnRJbnRl
cm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA1OThmNDAzZGE3ZGUzMzA2MGZhYjFlMjhjYzcyNTg5ZWVkNmEw
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxTZWxlY3RFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TUhUTUxTZWxlY3RFbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxT
ZWxlY3RFbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpIVE1MU2VsZWN0RWxl
bWVudCogY29yZShET01IVE1MU2VsZWN0RWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhU
TUxTZWxlY3RFbGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFN0eWxlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU3R5bGVFbGVtZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGFhN2JmYjI2YjE3ZDQ5NjhiOGJkNGE5OWFkOTlmMGJjMTNhNWQxNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFN0eWxlRWxl
bWVudC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKwor
QGNsYXNzIERPTVN0eWxlU2hlZXQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19B
VkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxTdHls
ZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IEJPT0wgZGlzYWJsZWQ7CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICptZWRpYTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
KnR5cGU7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTVN0eWxlU2hlZXQgKnNoZWV0
IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzQpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU3R5bGVFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU3R5bGVFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMzI3
NmU2Zjc1OWIyNWJjNjI1ZWFjMjQ0ZGY4ZDZkYzg1OGE2MTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTdHlsZUVsZW1lbnQubW0KQEAgLTAs
MCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTFN0eWxlRWxlbWVudElu
dGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NU3R5
bGVTaGVldEludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9y
dCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW1wb3J0ICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlN0eWxlU2hlZXQuaCIKKyNpbXBvcnQg
IlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVj
dFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNv
cmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTFN0eWxlRWxl
bWVudAorCistIChCT09MKWRpc2FibGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5kaXNhYmxlZCgpOworfQorCistICh2b2lk
KXNldERpc2FibGVkOihCT09MKW5ld0Rpc2FibGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldERpc2FibGVkKG5ld0Rpc2FibGVkKTsK
K30KKworLSAoTlNTdHJpbmcgKiltZWRpYQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6bWVkaWFBdHRyKTsKK30KKworLSAodm9pZClzZXRNZWRpYTooTlNTdHJpbmcgKilu
ZXdNZWRpYQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6bWVkaWFBdHRyLCBuZXdNZWRpYSk7Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIpOworfQorCistICh2
b2lkKXNldFR5cGU6KE5TU3RyaW5nICopbmV3VHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIG5ld1R5cGUpOworfQorCist
IChET01TdHlsZVNoZWV0ICopc2hlZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5zaGVldCgpKSk7
Cit9CisKKy0gKE5TU3RyaW5nICopbm9uY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6Om5vbmNlQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Tm9uY2U6KE5TU3RyaW5nICop
bmV3Tm9uY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6Om5vbmNlQXR0ciwgbmV3Tm9uY2UpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxT
dHlsZUVsZW1lbnQqIGNvcmUoRE9NSFRNTFN0eWxlRWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICBy
ZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVu
dCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MU3R5bGVFbGVtZW50ICpr
aXQoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVh
ZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRN
TFN0eWxlRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTdHls
ZUVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
U3R5bGVFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGE0NTAzMzljN2Q2ODIwMjJkZmIy
MjMxZWY5ZDNkYmIzYTUyMDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MU3R5bGVFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0IDxXZWJDb3JlL0RPTUhUTUxTdHlsZUVsZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgSFRNTFN0eWxlRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6
SFRNTFN0eWxlRWxlbWVudCogY29yZShET01IVE1MU3R5bGVFbGVtZW50ICopOworV0VCQ09SRV9F
WFBPUlQgRE9NSFRNTFN0eWxlRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1lbnQq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGRkMzBkNTA2NWU2MDkzZGYyYzg4OTQ0
OTU4ODM3YjhmMTNkZWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
PFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRf
Q0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVydHkgKGNvcHkp
IE5TU3RyaW5nICphbGlnbjsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdm
YjBhM2M3ZmU2YzRmOTBlYTNhODgwOTUzYzA4NmQ1NmY4MzliODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50
Lm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIK
KyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNp
bXBvcnQgIkhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRF
eGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNp
bXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4K
KworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworQGlt
cGxlbWVudGF0aW9uIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50CisKKy0gKE5TU3RyaW5nICop
YWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0cik7
Cit9CisKKy0gKHZvaWQpc2V0QWxpZ246KE5TU3RyaW5nICopbmV3QWxpZ24KK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwgbmV3
QWxpZ24pOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiBj
b3JlKERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MVGFibGVDYXB0aW9uRWxl
bWVudCAqa2l0KFdlYkNvcmU6OkhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiB2YWx1ZSkKK3sKKyAg
ICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJD
b3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRJbnRlcm5hbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE4YTEyZTczNmRmNmFkMWMxODhiZGZjNDYwZTUzYjNkYWFkOWRlYTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCogY29yZShET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50ICpraXQoV2ViQ29y
ZTo6SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzhl
NjBjOTgzMzkwYTAyMmRjYWI0M2ZiYjJkZTAzODE4MTgwOTQ3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDZWxsRWxlbWVudC5oCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNsYXNzIE5T
U3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBP
UlQgQGludGVyZmFjZSBET01IVE1MVGFibGVDZWxsRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitA
cHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgY2VsbEluZGV4OworQHByb3BlcnR5IChjb3B5KSBOU1N0
cmluZyAqYWxpZ247CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpheGlzOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqYmdDb2xvcjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNo
OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqY2hPZmY7CitAcHJvcGVydHkgaW50IGNvbFNw
YW47CitAcHJvcGVydHkgaW50IHJvd1NwYW47CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpo
ZWFkZXJzOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqaGVpZ2h0OworQHByb3BlcnR5IEJP
T0wgbm9XcmFwOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdkFsaWduOworQHByb3BlcnR5
IChjb3B5KSBOU1N0cmluZyAqd2lkdGg7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphYmJy
OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc2NvcGU7CitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDZWxsRWxlbWVudC5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNWI3MTdjNjVhNzA2ZGRmN2E1NDgyYjk1MWZmNDZhMmQwMGU1ZjQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVD
ZWxsRWxlbWVudC5tbQpAQCAtMCwwICsxLDIyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJE
T01IVE1MVGFibGVDZWxsRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU5vZGVJbnRl
cm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkhUTUxOYW1l
cy5oIgorI2ltcG9ydCAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbXBvcnQgIkpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5o
IgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0
ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6SFRNTFRhYmxlQ2VsbEVs
ZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitA
aW1wbGVtZW50YXRpb24gRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKKworLSAoaW50KWNlbGxJbmRl
eAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+Y2VsbEluZGV4KCk7Cit9CisKKy0gKE5TU3RyaW5nICopYWxpZ24KK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0cik7Cit9CisKKy0gKHZvaWQp
c2V0QWxpZ246KE5TU3RyaW5nICopbmV3QWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwgbmV3QWxpZ24pOworfQorCist
IChOU1N0cmluZyAqKWF4aXMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmF4aXNBdHRyKTsKK30KKworLSAodm9pZClzZXRBeGlzOihOU1N0cmluZyAqKW5ld0F4aXMKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmF4aXNB
dHRyLCBuZXdBeGlzKTsKK30KKworLSAoTlNTdHJpbmcgKiliZ0NvbG9yCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpiZ2NvbG9yQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
QmdDb2xvcjooTlNTdHJpbmcgKiluZXdCZ0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpiZ2NvbG9yQXR0ciwgbmV3QmdDb2xvcik7Cit9
CisKKy0gKE5TU3RyaW5nICopY2gKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmNoYXJBdHRyKTsKK30KKworLSAodm9pZClzZXRDaDooTlNTdHJpbmcgKiluZXdDaAorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2hhckF0
dHIsIG5ld0NoKTsKK30KKworLSAoTlNTdHJpbmcgKiljaE9mZgoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6Y2hhcm9mZkF0dHIpOworfQorCistICh2b2lkKXNldENoT2Zm
OihOU1N0cmluZyAqKW5ld0NoT2ZmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjpjaGFyb2ZmQXR0ciwgbmV3Q2hPZmYpOworfQorCistIChpbnQp
Y29sU3BhbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Y29sU3BhbkZvckJpbmRpbmdzKCk7Cit9CisKKy0gKHZvaWQpc2V0Q29s
U3BhbjooaW50KW5ld0NvbFNwYW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Q29sU3BhbkZvckJpbmRpbmdzKG5ld0NvbFNwYW4pOwor
fQorCistIChpbnQpcm93U3BhbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+cm93U3BhbkZvckJpbmRpbmdzKCk7Cit9CisKKy0g
KHZvaWQpc2V0Um93U3BhbjooaW50KW5ld1Jvd1NwYW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Um93U3BhbkZvckJpbmRpbmdzKG5l
d1Jvd1NwYW4pOworfQorCistIChOU1N0cmluZyAqKWhlYWRlcnMKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmhlYWRlcnNBdHRyKTsKK30KKworLSAodm9pZClzZXRIZWFk
ZXJzOihOU1N0cmluZyAqKW5ld0hlYWRlcnMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmhlYWRlcnNBdHRyLCBuZXdIZWFkZXJzKTsKK30KKwor
LSAoTlNTdHJpbmcgKiloZWlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmhlaWdodEF0dHIpOworfQorCistICh2b2lkKXNldEhlaWdodDooTlNTdHJpbmcgKiluZXdI
ZWlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OmhlaWdodEF0dHIsIG5ld0hlaWdodCk7Cit9CisKKy0gKEJPT0wpbm9XcmFwCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5o
YXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bm93
cmFwQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Tm9XcmFwOihCT09MKW5ld05vV3JhcAoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCb29s
ZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bm93cmFwQXR0ciwgbmV3Tm9XcmFwKTsK
K30KKworLSAoTlNTdHJpbmcgKil2QWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnZhbGlnbkF0dHIpOworfQorCistICh2b2lkKXNldFZBbGlnbjooTlNTdHJpbmcg
KiluZXdWQWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OnZhbGlnbkF0dHIsIG5ld1ZBbGlnbik7Cit9CisKKy0gKE5TU3RyaW5nICopd2lk
dGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0cik7Cit9
CisKKy0gKHZvaWQpc2V0V2lkdGg6KE5TU3RyaW5nICopbmV3V2lkdGgKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgbmV3V2lk
dGgpOworfQorCistIChOU1N0cmluZyAqKWFiYnIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmFiYnJBdHRyKTsKK30KKworLSAodm9pZClzZXRBYmJyOihOU1N0cmluZyAq
KW5ld0FiYnIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6OmFiYnJBdHRyLCBuZXdBYmJyKTsKK30KKworLSAoTlNTdHJpbmcgKilzY29wZQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+c2NvcGUoKTsKK30KKworLSAodm9pZClzZXRTY29wZTooTlNTdHJpbmcgKiluZXdTY29wZQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRTY29wZShuZXdTY29wZSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6SFRNTFRhYmxlQ2VsbEVs
ZW1lbnQqIGNvcmUoRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0
dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVt
ZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50ICpraXQoV2ViQ29yZTo6SFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHZhbHVlKQoreworICAgIFdl
YkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERPTUhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5v
ZGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDZWxsRWxlbWVudEludGVybmFsLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzQ2MjVmOTQwM2JiNmUyMjYxMDMxYzM5MWJkZjk1ZWQ2MmM1Yjk1ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRJ
bnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTFRhYmxlQ2VsbEVsZW1l
bnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50KiBj
b3JlKERPTUhUTUxUYWJsZUNlbGxFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVudCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDb2xFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNvbEVsZW1l
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMjc4N2JiOTc0MmExNTIwN2NjOGVhMDg3MDE0ODYyYjZlZGI5NDll
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
VGFibGVDb2xFbGVtZW50LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxl
bWVudC5oPgorCitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFD
KDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxUYWJsZUNvbEVsZW1lbnQg
OiBET01IVE1MRWxlbWVudAorQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqYWxpZ247CitAcHJv
cGVydHkgKGNvcHkpIE5TU3RyaW5nICpjaDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNo
T2ZmOworQHByb3BlcnR5IGludCBzcGFuOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdkFs
aWduOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqd2lkdGg7CitAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNvbEVsZW1lbnQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUNvbEVsZW1lbnQubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODhlMTc2NTcyMWUxYjE1OWMzODk5ODM1MWQ3NDA4OTZkZDFkYTNiMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxl
Q29sRWxlbWVudC5tbQpAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJE
T01IVE1MVGFibGVDb2xFbGVtZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NTm9kZUludGVy
bmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTE5hbWVz
LmgiCisjaW1wb3J0ICJIVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW1wb3J0ICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIK
KyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIu
aD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxUYWJsZUNvbEVsZW1l
bnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJuYWwpKQorCitAaW1w
bGVtZW50YXRpb24gRE9NSFRNTFRhYmxlQ29sRWxlbWVudAorCistIChOU1N0cmluZyAqKWFsaWdu
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIpOworfQor
CistICh2b2lkKXNldEFsaWduOihOU1N0cmluZyAqKW5ld0FsaWduCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIG5ld0FsaWdu
KTsKK30KKworLSAoTlNTdHJpbmcgKiljaAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6Y2hhckF0dHIpOworfQorCistICh2b2lkKXNldENoOihOU1N0cmluZyAqKW5ld0No
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpj
aGFyQXR0ciwgbmV3Q2gpOworfQorCistIChOU1N0cmluZyAqKWNoT2ZmCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjaGFyb2ZmQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
Q2hPZmY6KE5TU3RyaW5nICopbmV3Q2hPZmYKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNoYXJvZmZBdHRyLCBuZXdDaE9mZik7Cit9CisKKy0g
KGludClzcGFuCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5zcGFuKCk7Cit9CisKKy0gKHZvaWQpc2V0U3BhbjooaW50KW5ld1Nw
YW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0U3BhbihuZXdTcGFuKTsKK30KKworLSAoTlNTdHJpbmcgKil2QWxpZ24KK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbGlnbkF0dHIpOworfQorCistICh2b2lk
KXNldFZBbGlnbjooTlNTdHJpbmcgKiluZXdWQWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbGlnbkF0dHIsIG5ld1ZBbGlnbik7Cit9
CisKKy0gKE5TU3RyaW5nICopd2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OndpZHRoQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0V2lkdGg6KE5TU3RyaW5nICopbmV3
V2lkdGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OndpZHRoQXR0ciwgbmV3V2lkdGgpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxUYWJs
ZUNvbEVsZW1lbnQqIGNvcmUoRE9NSFRNTFRhYmxlQ29sRWxlbWVudCAqd3JhcHBlcikKK3sKKyAg
ICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFRhYmxlQ29s
RWxlbWVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MVGFibGVDb2xF
bGVtZW50ICpraXQoV2ViQ29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudCogdmFsdWUpCit7CisgICAg
V2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8RE9NSFRNTFRhYmxlQ29sRWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpO
b2RlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxUYWJsZUNvbEVsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDb2xFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZWJhZWZlYTgyNmQ5YjUwOTZmM2FhYjFlMzFmYTlmMzgyMWY0MTAxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVDb2xFbGVtZW50SW50
ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxUYWJsZUNvbEVsZW1l
bnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTFRhYmxlQ29sRWxlbWVudDsK
K30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudCogY29yZShE
T01IVE1MVGFibGVDb2xFbGVtZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTFRhYmxlQ29s
RWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxUYWJsZUNvbEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVFbGVtZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjZiNWJjOTUwZmY1YjNjODc2YzY0YTI1OWE2ZTBlNmJmNzA0MDQ1OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlRWxlbWVudC5o
CkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRWxlbWVudC5oPgorCitAY2xh
c3MgRE9NSFRNTENvbGxlY3Rpb247CitAY2xhc3MgRE9NSFRNTEVsZW1lbnQ7CitAY2xhc3MgRE9N
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7CitAY2xhc3MgRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQp
CitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUhUTUxUYWJsZUVsZW1lbnQgOiBET01IVE1M
RWxlbWVudAorQHByb3BlcnR5IChzdHJvbmcpIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50ICpj
YXB0aW9uOworQHByb3BlcnR5IChzdHJvbmcpIERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50ICp0
SGVhZDsKK0Bwcm9wZXJ0eSAoc3Ryb25nKSBET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqdEZv
b3Q7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUhUTUxDb2xsZWN0aW9uICpyb3dz
OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01IVE1MQ29sbGVjdGlvbiAqdEJvZGll
czsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmFsaWduOworQHByb3BlcnR5IChjb3B5KSBO
U1N0cmluZyAqYmdDb2xvcjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmJvcmRlcjsKK0Bw
cm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNlbGxQYWRkaW5nOworQHByb3BlcnR5IChjb3B5KSBO
U1N0cmluZyAqY2VsbFNwYWNpbmc7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpmcmFtZUJv
cmRlcnM7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpydWxlczsKK0Bwcm9wZXJ0eSAoY29w
eSkgTlNTdHJpbmcgKnN1bW1hcnk7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICp3aWR0aDsK
KworLSAoRE9NSFRNTEVsZW1lbnQgKiljcmVhdGVUSGVhZDsKKy0gKHZvaWQpZGVsZXRlVEhlYWQ7
CistIChET01IVE1MRWxlbWVudCAqKWNyZWF0ZVRGb290OworLSAodm9pZClkZWxldGVURm9vdDsK
Ky0gKERPTUhUTUxFbGVtZW50ICopY3JlYXRlQ2FwdGlvbjsKKy0gKHZvaWQpZGVsZXRlQ2FwdGlv
bjsKKy0gKERPTUhUTUxFbGVtZW50ICopaW5zZXJ0Um93OihpbnQpaW5kZXg7CistICh2b2lkKWRl
bGV0ZVJvdzooaW50KWluZGV4OworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MVGFibGVFbGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMTBkN2UxZTMxYjg0
ZTdhYTk5NGY4MTQ5MWMzMzQzOGNhMDZjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZUVsZW1lbnQubW0KQEAgLTAsMCArMSwyODkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRNTFRhYmxlRWxlbWVudEludGVybmFsLmgi
CisKKyNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhU
TUxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50SW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxl
cnMuaCIKKyNpbXBvcnQgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW1wb3J0ICJIVE1MRWxlbWVudC5o
IgorI2ltcG9ydCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5oIgorI2ltcG9ydCAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9y
dCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6Tm9kZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MVGFibGVF
bGVtZW50CisKKy0gKERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50ICopY2FwdGlvbgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdU
Rjo6Z2V0UHRyKElNUEwtPmNhcHRpb24oKSkpOworfQorCistICh2b2lkKXNldENhcHRpb246KERP
TUhUTUxUYWJsZUNhcHRpb25FbGVtZW50ICopbmV3Q2FwdGlvbgoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBBU1NFUlQobmV3Q2FwdGlvbik7CisKKyAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRDYXB0aW9uKGNv
cmUobmV3Q2FwdGlvbiksIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
fQorCistIChET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqKXRIZWFkCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQ
dHIoSU1QTC0+dEhlYWQoKSkpOworfQorCistICh2b2lkKXNldFRIZWFkOihET01IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCAqKW5ld1RIZWFkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIEFTU0VSVChuZXdUSGVhZCk7CisKKyAgICBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRUSGVhZChjb3JlKG5ld1RIZWFkKSwgZWMp
OworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50ICopdEZvb3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT50Rm9vdCgpKSk7
Cit9CisKKy0gKHZvaWQpc2V0VEZvb3Q6KERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50ICopbmV3
VEZvb3QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
QVNTRVJUKG5ld1RGb290KTsKKworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIElNUEwtPnNldFRGb290KGNvcmUobmV3VEZvb3QpLCBlYyk7CisgICAgV2ViQ29yZTo6cmFp
c2VPbkRPTUVycm9yKGVjKTsKK30KKworLSAoRE9NSFRNTENvbGxlY3Rpb24gKilyb3dzCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+cm93cygpKSk7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICop
dEJvZGllcworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRCb2RpZXMoKSkpOworfQorCistIChOU1N0
cmluZyAqKWFsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphbGln
bkF0dHIpOworfQorCistICh2b2lkKXNldEFsaWduOihOU1N0cmluZyAqKW5ld0FsaWduCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0
dHIsIG5ld0FsaWduKTsKK30KKworLSAoTlNTdHJpbmcgKiliZ0NvbG9yCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpiZ2NvbG9yQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
QmdDb2xvcjooTlNTdHJpbmcgKiluZXdCZ0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpiZ2NvbG9yQXR0ciwgbmV3QmdDb2xvcik7Cit9
CisKKy0gKE5TU3RyaW5nICopYm9yZGVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpib3JkZXJBdHRyKTsKK30KKworLSAodm9pZClzZXRCb3JkZXI6KE5TU3RyaW5nICop
bmV3Qm9yZGVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpib3JkZXJBdHRyLCBuZXdCb3JkZXIpOworfQorCistIChOU1N0cmluZyAqKWNlbGxQ
YWRkaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjZWxscGFkZGlu
Z0F0dHIpOworfQorCistICh2b2lkKXNldENlbGxQYWRkaW5nOihOU1N0cmluZyAqKW5ld0NlbGxQ
YWRkaW5nCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjpjZWxscGFkZGluZ0F0dHIsIG5ld0NlbGxQYWRkaW5nKTsKK30KKworLSAoTlNTdHJpbmcg
KiljZWxsU3BhY2luZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2Vs
bHNwYWNpbmdBdHRyKTsKK30KKworLSAodm9pZClzZXRDZWxsU3BhY2luZzooTlNTdHJpbmcgKilu
ZXdDZWxsU3BhY2luZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6Y2VsbHNwYWNpbmdBdHRyLCBuZXdDZWxsU3BhY2luZyk7Cit9CisKKy0gKE5T
U3RyaW5nICopZnJhbWVCb3JkZXJzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpmcmFtZUF0dHIpOworfQorCistICh2b2lkKXNldEZyYW1lQm9yZGVyczooTlNTdHJpbmcg
KiluZXdGcmFtZUJvcmRlcnMKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OmZyYW1lQXR0ciwgbmV3RnJhbWVCb3JkZXJzKTsKK30KKworLSAoTlNT
dHJpbmcgKilydWxlcworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cnVs
ZXNBdHRyKTsKK30KKworLSAodm9pZClzZXRSdWxlczooTlNTdHJpbmcgKiluZXdSdWxlcworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cnVsZXNB
dHRyLCBuZXdSdWxlcyk7Cit9CisKKy0gKE5TU3RyaW5nICopc3VtbWFyeQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6c3VtbWFyeUF0dHIpOworfQorCistICh2b2lkKXNl
dFN1bW1hcnk6KE5TU3RyaW5nICopbmV3U3VtbWFyeQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c3VtbWFyeUF0dHIsIG5ld1N1bW1hcnkpOwor
fQorCistIChOU1N0cmluZyAqKXdpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjp3aWR0aEF0dHIpOworfQorCistICh2b2lkKXNldFdpZHRoOihOU1N0cmluZyAqKW5l
d1dpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjp3aWR0aEF0dHIsIG5ld1dpZHRoKTsKK30KKworLSAoRE9NSFRNTEVsZW1lbnQgKiljcmVh
dGVUSGVhZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmNyZWF0ZVRIZWFkKCkpKTsKK30KKworLSAo
dm9pZClkZWxldGVUSGVhZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBJTVBMLT5kZWxldGVUSGVhZCgpOworfQorCistIChET01IVE1MRWxlbWVudCAq
KWNyZWF0ZVRGb290Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Y3JlYXRlVEZvb3QoKSkpOworfQor
CistICh2b2lkKWRlbGV0ZVRGb290Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPmRlbGV0ZVRGb290KCk7Cit9CisKKy0gKERPTUhUTUxFbGVt
ZW50ICopY3JlYXRlVEJvZHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5jcmVhdGVUQm9keSgpKSk7
Cit9CisKKy0gKERPTUhUTUxFbGVtZW50ICopY3JlYXRlQ2FwdGlvbgoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPmNyZWF0ZUNhcHRpb24oKSkpOworfQorCistICh2b2lkKWRlbGV0ZUNhcHRpb24KK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+ZGVs
ZXRlQ2FwdGlvbigpOworfQorCistIChET01IVE1MRWxlbWVudCAqKWluc2VydFJvdzooaW50KWlu
ZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIERPTUhUTUxFbGVtZW50ICpyZXN1bHQg
PSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+aW5zZXJ0Um93KGluZGV4LCBlYykpKTsKKyAgICBXZWJD
b3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHZv
aWQpZGVsZXRlUm93OihpbnQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1Q
TC0+ZGVsZXRlUm93KGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVj
KTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50KiBjb3JlKERPTUhUTUxU
YWJsZUVsZW1lbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJl
dF9jYXN0PFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDog
MDsKK30KKworRE9NSFRNTFRhYmxlRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1l
bnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxUYWJsZUVsZW1lbnQqPihraXQoc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVFbGVtZW50SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlRWxlbWVudEludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGJlOWRlYjFjYjA1MGM5NTA1NDJmYjA5MDVhZTRkMTk5NmNlNTRlNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlRWxl
bWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MVGFibGVF
bGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhUTUxUYWJsZUVsZW1lbnQ7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQqIGNvcmUoRE9N
SFRNTFRhYmxlRWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhUTUxUYWJsZUVsZW1lbnQg
KmtpdChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlUm93RWxlbWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAw
MzU2NWFhMTA2OWM4NmEwNmQ3NDEyMjQyNzgzMzc3YTRiOWRhNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BjbGFzcyBE
T01IVE1MQ29sbGVjdGlvbjsKK0BjbGFzcyBET01IVE1MRWxlbWVudDsKK0BjbGFzcyBOU1N0cmlu
ZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBp
bnRlcmZhY2UgRE9NSFRNTFRhYmxlUm93RWxlbWVudCA6IERPTUhUTUxFbGVtZW50CitAcHJvcGVy
dHkgKHJlYWRvbmx5KSBpbnQgcm93SW5kZXg7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgc2Vj
dGlvblJvd0luZGV4OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01IVE1MQ29sbGVj
dGlvbiAqY2VsbHM7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphbGlnbjsKK0Bwcm9wZXJ0
eSAoY29weSkgTlNTdHJpbmcgKmJnQ29sb3I7CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpj
aDsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNoT2ZmOworQHByb3BlcnR5IChjb3B5KSBO
U1N0cmluZyAqdkFsaWduOworCistIChET01IVE1MRWxlbWVudCAqKWluc2VydENlbGw6KGludClp
bmRleDsKKy0gKHZvaWQpZGVsZXRlQ2VsbDooaW50KWluZGV4OworQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVSb3dFbGVtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVSb3dFbGVtZW50Lm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU2M2NiZDRmYWMyMTNjNTQ3MzcwNjg3NWMxMzgwNDVmNDAwNTk1M2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVJv
d0VsZW1lbnQubW0KQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9N
SFRNTFRhYmxlUm93RWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0
aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBv
cnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNp
bXBvcnQgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW1wb3J0ICJIVE1MRWxlbWVudC5oIgorI2ltcG9y
dCAiSFRNTE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW1wb3J0
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1w
b3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQg
PHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxU
YWJsZVJvd0VsZW1lbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihfaW50ZXJu
YWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NSFRNTFRhYmxlUm93RWxlbWVudAorCistIChpbnQp
cm93SW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnJvd0luZGV4KCk7Cit9CisKKy0gKGludClzZWN0aW9uUm93SW5kZXgK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPnNlY3Rpb25Sb3dJbmRleCgpOworfQorCistIChET01IVE1MQ29sbGVjdGlvbiAqKWNl
bGxzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Y2VsbHMoKSkpOworfQorCistIChOU1N0cmluZyAq
KWFsaWduCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIp
OworfQorCistICh2b2lkKXNldEFsaWduOihOU1N0cmluZyAqKW5ld0FsaWduCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIG5l
d0FsaWduKTsKK30KKworLSAoTlNTdHJpbmcgKiliZ0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpiZ2NvbG9yQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0QmdDb2xv
cjooTlNTdHJpbmcgKiluZXdCZ0NvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpiZ2NvbG9yQXR0ciwgbmV3QmdDb2xvcik7Cit9CisKKy0g
KE5TU3RyaW5nICopY2gKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNo
YXJBdHRyKTsKK30KKworLSAodm9pZClzZXRDaDooTlNTdHJpbmcgKiluZXdDaAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2hhckF0dHIsIG5l
d0NoKTsKK30KKworLSAoTlNTdHJpbmcgKiljaE9mZgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6Y2hhcm9mZkF0dHIpOworfQorCistICh2b2lkKXNldENoT2ZmOihOU1N0
cmluZyAqKW5ld0NoT2ZmCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpjaGFyb2ZmQXR0ciwgbmV3Q2hPZmYpOworfQorCistIChOU1N0cmluZyAq
KXZBbGlnbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dmFsaWduQXR0
cik7Cit9CisKKy0gKHZvaWQpc2V0VkFsaWduOihOU1N0cmluZyAqKW5ld1ZBbGlnbgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dmFsaWduQXR0
ciwgbmV3VkFsaWduKTsKK30KKworLSAoRE9NSFRNTEVsZW1lbnQgKilpbnNlcnRDZWxsOihpbnQp
aW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgRE9NSFRNTEVsZW1lbnQgKnJlc3Vs
dCA9IGtpdChXVEY6OmdldFB0cihJTVBMLT5pbnNlcnRDZWxsKGluZGV4LCBlYykpKTsKKyAgICBX
ZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0g
KHZvaWQpZGVsZXRlQ2VsbDooaW50KWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IElNUEwtPmRlbGV0ZUNlbGwoaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJy
b3IoZWMpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQqIGNvcmUo
RE9NSFRNTFRhYmxlUm93RWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/
IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudCo+KHdyYXBwZXIt
Pl9pbnRlcm5hbCkgOiAwOworfQorCitET01IVE1MVGFibGVSb3dFbGVtZW50ICpraXQoV2ViQ29y
ZTo6SFRNTFRhYmxlUm93RWxlbWVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xh
dGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTFRhYmxl
Um93RWxlbWVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4odmFsdWUpKSk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVJv
d0VsZW1lbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
VGFibGVSb3dFbGVtZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmRjNjI2YWZhMGIxYWZmN2Mx
OGJjMDBkMGZjMTdjN2FhYzZjNWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVSb3dFbGVtZW50SW50ZXJuYWwuaApAQCAtMCwwICsx
LDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgSFRNTFRhYmxlUm93RWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBP
UlQgV2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudCogY29yZShET01IVE1MVGFibGVSb3dFbGVt
ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NSFRNTFRhYmxlUm93RWxlbWVudCAqa2l0KFdlYkNv
cmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MTQ2ZDhhNjhmZTEyMmM4YjA0ZTRmNGY3ODE3MzUxM2YwOGE1ZGM1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKworQGNs
YXNzIERPTUhUTUxDb2xsZWN0aW9uOworQGNsYXNzIERPTUhUTUxFbGVtZW50OworQGNsYXNzIE5T
U3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBP
UlQgQGludGVyZmFjZSBET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCA6IERPTUhUTUxFbGVtZW50
CitAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICphbGlnbjsKK0Bwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKmNoOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqY2hPZmY7CitAcHJvcGVydHkg
KGNvcHkpIE5TU3RyaW5nICp2QWxpZ247CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERP
TUhUTUxDb2xsZWN0aW9uICpyb3dzOworCistIChET01IVE1MRWxlbWVudCAqKWluc2VydFJvdzoo
aW50KWluZGV4OworLSAodm9pZClkZWxldGVSb3c6KGludClpbmRleDsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhOTRkNGUwMWVkNmZhNDI5OTA0MWRlNWI4YzlmNWU4NDZk
YzY3YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lm1tCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50SW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiRE9NSFRNTENvbGxlY3Rpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSFRNTEVsZW1l
bnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNl
cHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbXBvcnQgIkhU
TUxFbGVtZW50LmgiCisjaW1wb3J0ICJIVE1MTmFtZXMuaCIKKyNpbXBvcnQgIkhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBv
cnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9i
amVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0
YXRpY19jYXN0PFdlYkNvcmU6OkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4ocmVpbnRlcnByZXRf
Y2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50CisKKy0gKE5TU3RyaW5nICopYWxpZ24KK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0
QWxpZ246KE5TU3RyaW5nICopbmV3QWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwgbmV3QWxpZ24pOworfQorCistIChO
U1N0cmluZyAqKWNoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjaGFy
QXR0cik7Cit9CisKKy0gKHZvaWQpc2V0Q2g6KE5TU3RyaW5nICopbmV3Q2gKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNoYXJBdHRyLCBuZXdD
aCk7Cit9CisKKy0gKE5TU3RyaW5nICopY2hPZmYKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmNoYXJvZmZBdHRyKTsKK30KKworLSAodm9pZClzZXRDaE9mZjooTlNTdHJp
bmcgKiluZXdDaE9mZgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6Y2hhcm9mZkF0dHIsIG5ld0NoT2ZmKTsKK30KKworLSAoTlNTdHJpbmcgKil2
QWxpZ24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbGlnbkF0dHIp
OworfQorCistICh2b2lkKXNldFZBbGlnbjooTlNTdHJpbmcgKiluZXdWQWxpZ24KK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbGlnbkF0dHIs
IG5ld1ZBbGlnbik7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopcm93cworeworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6
Z2V0UHRyKElNUEwtPnJvd3MoKSkpOworfQorCistIChET01IVE1MRWxlbWVudCAqKWluc2VydFJv
dzooaW50KWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIERPTUhUTUxFbGVtZW50
ICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+aW5zZXJ0Um93KGluZGV4LCBlYykpKTsK
KyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKKy0gKHZvaWQpZGVsZXRlUm93OihpbnQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgSU1QTC0+ZGVsZXRlUm93KGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRP
TUVycm9yKGVjKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCogY29yZShET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1
cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogdmFsdWUpCit7
CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6Tm9kZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudEludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50SW50ZXJu
YWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMmMyNmY4MWJkZmIwZjI5ZDc4Y2QxYjkwZmFmODQyY2FhZGJkMTFi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
VGFibGVTZWN0aW9uRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29y
ZTo6SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIGNvcmUoRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqa2l0KFdl
YkNvcmU6OkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTFZpZGVvRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzZTg0NmVm
M2ZmNGViMmYyYmIwMjliNzQ3ODdhOWViNWQ5NmJmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxWaWRlb0VsZW1lbnQuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxNZWRpYUVsZW1lbnQuaD4KKworQGNsYXNzIE5TU3Ry
aW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQyg5ODc2XzUpCitXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTUhUTUxWaWRlb0VsZW1lbnQgOiBET01IVE1MTWVkaWFFbGVtZW50CitA
cHJvcGVydHkgdW5zaWduZWQgd2lkdGg7CitAcHJvcGVydHkgdW5zaWduZWQgaGVpZ2h0OworQHBy
b3BlcnR5IChyZWFkb25seSkgdW5zaWduZWQgdmlkZW9XaWR0aDsKK0Bwcm9wZXJ0eSAocmVhZG9u
bHkpIHVuc2lnbmVkIHZpZGVvSGVpZ2h0OworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqcG9z
dGVyOworQHByb3BlcnR5IEJPT0wgcGxheXNJbmxpbmU7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIHdlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW47CisKKy0gKHZvaWQpd2Via2l0RW50ZXJGdWxsc2Ny
ZWVuOworLSAodm9pZCl3ZWJraXRFeGl0RnVsbHNjcmVlbjsKKy0gKHZvaWQpd2Via2l0RW50ZXJG
dWxsU2NyZWVuOworLSAodm9pZCl3ZWJraXRFeGl0RnVsbFNjcmVlbjsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFZpZGVvRWxlbWVudC5tbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFZpZGVvRWxlbWVudC5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMmU5MGNjOTc4ZTQzNGJhZjA0NzgxZDI4Yzc1MjY2NWQyNzM5YTcxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVmlkZW9FbGVt
ZW50Lm1tCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURF
TykKKworI2ltcG9ydCAiRE9NSFRNTFZpZGVvRWxlbWVudEludGVybmFsLmgiCisKKyNpbXBvcnQg
IkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBv
cnQgIkhUTUxOYW1lcy5oIgorI2ltcG9ydCAiSFRNTFZpZGVvRWxlbWVudC5oIgorI2ltcG9ydCAi
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9y
dCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3
dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkK
KworQGltcGxlbWVudGF0aW9uIERPTUhUTUxWaWRlb0VsZW1lbnQKKworLSAodW5zaWduZWQpd2lk
dGgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
Ojp3aWR0aEF0dHIpOworfQorCistICh2b2lkKXNldFdpZHRoOih1bnNpZ25lZCluZXdXaWR0aAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6d2lkdGhBdHRy
LCBuZXdXaWR0aCk7Cit9CisKKy0gKHVuc2lnbmVkKWhlaWdodAoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0VW5zaWduZWRJ
bnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmhlaWdodEF0dHIpOworfQorCist
ICh2b2lkKXNldEhlaWdodDoodW5zaWduZWQpbmV3SGVpZ2h0Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFVuc2lnbmVkSW50ZWdyYWxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBuZXdIZWlnaHQpOworfQor
CistICh1bnNpZ25lZCl2aWRlb1dpZHRoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52aWRlb1dpZHRoKCk7Cit9CisKKy0gKHVu
c2lnbmVkKXZpZGVvSGVpZ2h0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT52aWRlb0hlaWdodCgpOworfQorCistIChOU1N0cmlu
ZyAqKXBvc3RlcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cG9z
dGVyQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UG9zdGVyOihOU1N0cmluZyAqKW5ld1Bvc3Rlcgor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cG9z
dGVyQXR0ciwgbmV3UG9zdGVyKTsKK30KKworLSAoQk9PTClwbGF5c0lubGluZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aGFz
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnBsYXlz
aW5saW5lQXR0cik7Cit9CisKKy0gKHZvaWQpc2V0UGxheXNJbmxpbmU6KEJPT0wpbmV3UGxheXNJ
bmxpbmUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
SU1QTC0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnBsYXlzaW5saW5l
QXR0ciwgbmV3UGxheXNJbmxpbmUpOworfQorCistIChCT09MKXdlYmtpdFN1cHBvcnRzRnVsbHNj
cmVlbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+d2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKCk7Cit9CisKKy0gKEJPT0wpd2Vi
a2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
KCk7Cit9CisKKy0gKHZvaWQpd2Via2l0RW50ZXJGdWxsc2NyZWVuCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIElNUEwtPndlYmtpdEVudGVyRnVsbHNjcmVlbihlYyk7CisgICAgV2ViQ29y
ZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKworLSAodm9pZCl3ZWJraXRFeGl0RnVsbHNjcmVl
bgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBM
LT53ZWJraXRFeGl0RnVsbHNjcmVlbigpOworfQorCistICh2b2lkKXdlYmtpdEVudGVyRnVsbFNj
cmVlbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT53ZWJraXRFbnRlckZ1bGxT
Y3JlZW4oZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKHZv
aWQpd2Via2l0RXhpdEZ1bGxTY3JlZW4KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+d2Via2l0RXhpdEZ1bGxTY3JlZW4oKTsKK30KKworQGVu
ZAorCitXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50KiBjb3JlKERPTUhUTUxWaWRlb0VsZW1lbnQg
KndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9N
SFRNTFZpZGVvRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqIHZhbHVlKQor
eworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PERPTUhUTUxWaWRlb0VsZW1lbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KHZhbHVlKSkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVmlkZW9FbGVtZW50SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFZpZGVvRWxlbWVu
dEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE2Zjg1ZWVhYmY2YmMxMzNkNTY0MDI2MTJiY2ZlZTk5
YjNiYjNmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTFZpZGVvRWxlbWVudEludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MVmlkZW9FbGVtZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEhU
TUxWaWRlb0VsZW1lbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQqIGNvcmUoRE9NSFRNTFZpZGVvRWxlbWVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUhU
TUxWaWRlb0VsZW1lbnQgKmtpdChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlIGIvU291cmNlL1dlYktp
dC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQppbmRleCBmYzc3ZWQ0OTJkMzMyNmMzMzE1MDAwMTk0
MWI2MGNjZmQ1M2I0ZmM4Li43NWM4ODIzNGYzZWE5NTgxM2VkNTgzZDlmMzQzZTFjY2U0MTA3NjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKQEAgLTk2LDcgKzk2LDYgQEAg
YWxsIDogXAogICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NSFRNTEVsZW1lbnQuaCBcCiAg
ICAgJChJTlRFUk5BTF9IRUFERVJTX0RJUikvRE9NSFRNTEVsZW1lbnRJbnRlcm5hbC5oIFwKICAg
ICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxFbWJlZEVsZW1lbnQuaCBcCi0gICAgJChQ
UklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oIFwKICAgICAk
KFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCiAgICAgJChQ
UklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MRm9udEVsZW1lbnQuaCBcCiAgICAgJChQUklWQVRF
X0hFQURFUlNfRElSKS9ET01IVE1MRm9ybUVsZW1lbnQuaCBcCg==
</data>
<flag name="review"
          id="308696"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>